diff --git a/.gitignore b/.gitignore index b94dfd2b9..288948351 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ *.mo .tx/**/*.po +venv/ +.idea/ +.DS_Store diff --git a/.travis.yml b/.travis.yml index e19f8cd88..a032f15cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,14 @@ language: python -python: 3.6 +dist: xenial +python: 3.7 before_install: - sudo apt-get update - sudo apt-get install -y hunspell hunspell-fr-comprehensive install: - - pip install pospell + - pip install pospell "powrap>=0.3.0" - pospell --version + - powrap --version script: - - - pospell -p dict -l fr *.po library/*.po distributing/*.po installing/*.po install/*.po howto/*.po tutorial/*.po using/*.po whatsnew/*.po - - make CPYTHON_CLONE=/tmp/cpython/ BRANCH=3.7 + - powrap --check --quiet **/*.po + - pospell -p dict -l fr_FR **/*.po + - make CPYTHON_CLONE=/tmp/cpython/ COMMIT=15e7d2432294ec46f1ad84ce958fdeb9d4ca78b1 diff --git a/Makefile b/Makefile index 831c3b900..013b3813a 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,9 @@ # # - 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 fuzzy # To find fuzzy strings # - make progress # To compute current progression @@ -18,31 +21,36 @@ SPHINX_CONF := $(CPYTHON_CLONE)/Doc/conf.py LANGUAGE := fr VENV := ~/.venvs/python-docs-i18n/ PYTHON := $(shell which python3) -MODE := autobuild-dev-html +MODE := html BRANCH = 3.7 -JOBS = 4 +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 is on the wrong branch, got $(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD) expected $(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)") 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='-qaEW -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) + $(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) $(SPHINX_CONF): - git clone --depth 1 --no-single-branch --branch $(BRANCH) https://github.com/python/cpython.git $(CPYTHON_CLONE) + 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 -$(VENV)/bin/activate: upgrade_venv +$(VENV)/bin/activate: $(SPHINX_CONF) + $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) venv + $(VENV)/bin/python3 -m pip install Sphinx==2.2 .PHONY: progress @@ -52,10 +60,29 @@ progress: $(shell msgcat *.po */*.po | grep -c '^msgid') +$(VENV)/bin/potodo: $(VENV)/bin/activate + $(VENV)/bin/pip install potodo + +$(VENV)/bin/powrap: $(VENV)/bin/activate + $(VENV)/bin/pip install powrap + +$(VENV)/bin/pospell: $(VENV)/bin/activate + $(VENV)/bin/pip install pospell + .PHONY: todo -todo: - for file in *.po */*.po; do echo $$(msgattrib --untranslated $$file | grep ^msgid | sed 1d | wc -l ) $$file; done | grep -v ^0 | sort -gr +todo: $(VENV)/bin/potodo + $(VENV)/bin/potodo + +.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 @@ -82,5 +109,5 @@ endif .PHONY: fuzzy -fuzzy: - for file in *.po */*.po; do echo $$(msgattrib --only-fuzzy --no-obsolete "$$file" | grep -c '#, fuzzy') $$file; done | grep -v ^0 | sort -gr +fuzzy: $(VENV)/bin/potodo + $(VENV)/bin/potodo -f diff --git a/README.rst b/README.rst index d4f4da2d1..13c5e1e30 100644 --- a/README.rst +++ b/README.rst @@ -1,267 +1,481 @@ -French Translation of the Python Documentation -============================================== +Traduction française de la documentation Python +=============================================== -.. image:: https://travis-ci.org/python/python-docs-fr.svg?branch=3.7 - :target: https://travis-ci.org/python/python-docs-fr +|build| |progression| -**Translated: 30%** +.. |build| image:: https://travis-ci.org/python/python-docs-fr.svg?branch=3.7 + :target: https://travis-ci.org/python/python-docs-fr + :width: 45% -Documentation Contribution Agreement ------------------------------------- +.. |progression| image:: https://img.shields.io/badge/dynamic/json.svg?label=fr&query=%24.fr&url=http%3A%2F%2Fgce.zhsj.me%2Fpython/newest + :width: 45% -NOTE REGARDING THE LICENSE FOR TRANSLATIONS: Python's documentation is -maintained using a global network of volunteers. By posting this -project on Transifex, Github, and other public places, and inviting -you to participate, we are proposing an agreement that you will -provide your improvements to Python's documentation or the translation -of Python's documentation for the PSF's use under the CC0 license -(available at -https://creativecommons.org/publicdomain/zero/1.0/legalcode). In -return, you may publicly claim credit for the portion of the -translation you contributed and if your translation is accepted by the -PSF, you may (but are not required to) submit a patch including an -appropriate annotation in the Misc/ACKS or TRANSLATORS file. Although -nothing in this Documentation Contribution Agreement obligates the PSF -to incorporate your textual contribution, your participation in the -Python community is welcomed and appreciated. -You signify acceptance of this agreement by submitting your work to -the PSF for inclusion in the documentation. +Accord de contribution à la documentation +----------------------------------------- +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 +acceptez de fournir vos améliorations à la documentation de Python ou à la +traduction de la documentation de Python pour le bénéfice de la PSF sous licence +CC0 (disponible à l'adresse +https://creativecommons.org/publicdomain/zero/1.0/legalcode). En retour, vous +pouvez demander à ce que votre contribution à la documentation soit +publiquement reconnue, et si votre traduction est acceptée par la +PSF, vous pouvez (mais vous n'êtes pas obligé) soumettre un correctif incluant +une modification appropriée dans le fichier Misc/ACKS ou TRANSLATORS. Bien que +rien dans le présent *accord de contribution* à la documentation n'oblige la PSF +à incorporer votre contribution textuelle, votre participation à la communauté +Python est bienvenue et appréciée. -Contributing to the Translation -------------------------------- +En soumettant votre travail à la PSF pour inclusion dans la documentation, +vous signifiez votre acceptation de cet accord. -How to Contribute -~~~~~~~~~~~~~~~~~ -You can contribute using: +Contribuer à la traduction +-------------------------- + +Comment contribuer +~~~~~~~~~~~~~~~~~~ + +Vous pouvez contribuer en utilisant : -- github (preferred solution) -- `transifex `_ -- Or just by opening `an issue on github `_ +- Des *pull requests* Github (solution recommandée). +- En envoyant un patch à la liste `traductions `_. -Contributing using Github -~~~~~~~~~~~~~~~~~~~~~~~~~ +Contribuer en utilisant Github +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Prerequisites: +Prérequis : -- A `github account `_. -- ``git`` `installed `_ (for windows, see +- Un compte `Github `_. +- ``git`` `installé `_ (pour Windows, voir https://gitforwindows.org/). -- A ``.po`` file editor (Use `poedit `_ - if you don't already have one). +- Un éditeur de fichier ``.po`` (utilisez `poedit `_ + si vous n'en avez pas déjà un). -Let's start: +Commencer : -You'll need to fork the `python-docs-fr -`_ clicking its ``Fork`` -button. This creates a copy of the whole project on your github -account: a place where you have the rights to do modifications. +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. -Step by step: +Étape par étape : .. code-block:: bash - # Git clone your github fork using ssh (replace JulienPalard): - git clone git@github.com:JulienPalard/python-docs-fr.git + # 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 - # Go to the cloned directory: + # Allez dans le répertoire cloné : cd python-docs-fr/ - # Add the upstream (the public repository) using HTTPS (won't ask for password): + # 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*. -Now you're ready to start a work session, each time you'll start a new task, start here: +Vous êtes maintenant prêt à commencer une session de travail. Chaque +fois que vous commencerez un nouveau fichier, commencez ainsi : .. code-block:: bash - # To work, we'll need a branch, based on an up-to-date (freshly fetched) - # upstream/3.7 branch, let's say we'll work on glossary so we name - # the branch "glossary": + # 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.7. 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 - git checkout -b glossary upstream/3.7 - - # You can now work on the file, typically using poedit, - poedit directory/file.po - - # After writing your changes to disk, check for correctness: - make - - # Sphinx will tell you if there is any syntax error in the files - # you modified. Note that in the French Translation, we try to keep Sphinx - # warnings to zero. - - # you may want to check if there are semantic errors. - # Open the translated file in your browser to check how it renders. - # Don't forget to verify the typography. The French conventions are not - # the English ones, especially for punctuation. - # Also, Grammalecte, a browser plugin avaliable in your browser store, - # is your friend even if, because of the technical words that appear - # everywhere in the documentation, it points out many false positive. - exo-open ../cpython/Doc/build/html/directory/file.html - - # When everything is clear (syntax errors from Sphinx, html rendering, - # semantics, typography), - # you can commit your work with a nice explicit message: - git commit -a -m "Working on glossary." - - # Then push your modifications to your github clone, - # as they are ephemeral branches, let's not configure git to track them all, - # "origin HEAD" is a "special" syntax to say "Push on origin, - # on a branch with the same name as the local one", - # it's nice as it's exactly what we want: - git push origin HEAD - - # Now you can open the pull request on github, just go to - # https://github.com/python/python-docs-fr/ and a nice "Compare & pull request" - # button should appear after a few seconds telling you can ask for a pull request. - - # Now someone is reviewing your modifications, and you'll want to fix their - # findings, get back to your branch - # (in case you started something else on another branch): + # Créez une nouvelle branche nommée « library-sys » basée sur « upstream/3.7 ». + git checkout -b library-sys upstream/3.7 + + # 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 + poedit library/sys.po + + # 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. + + # Quand vous avez fini de traduire, vous pouvez lancer *pospell* (pip install pospell). + # Cet outil a été conçu pour vérifier si vous n'avez pas d'erreurs de français. + # Vous pouvez exécuter la commande suivante : pospell -p dict -l fr_FR **/*.po pour vérifier + # tous les fichiers ou remplacer **/*.po par le fichier que vous traduisez (recommandé). + # 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. + # pospell -p dict library/sys.po + + # Vous pouvez ensuite lancer *powrap* (pip install powrap) qui va reformater le fichier + # que avez vous avez modifié à la longueur de ligne correcte de `79`. + # Exécutez cette commande : `powrap **/*.po`, ou remplacez `**/*.po` par le fichier + # que vous traduisez + powrap library/sys.po + + # 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 - # Fix the issues, then commit again: - git commit -a -m "glossary: small fixes." - git push origin HEAD + 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.6``, ``3.7``, 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.7, 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. -You may have noted that this looks like a triangle, with a missing segment: +Les *smartquotes* sont également responsables de la transformation de +``--`` en *en-dash* (``-``), de ``-----`` en *em-dash* (``—``), et de +``...`` en ``…``. -- You're fetching from upstream (public common repo on github) -- You're pushing to origin (your clone on github) +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. -So yes it's the work of someone to add the last segment, from your -origin to the public upstream, to "close the loop", that's the role of -the people who merges pull requests after proofreading them. -You may also have noted you never ever commit on a version branch -(``3.6``, ``3.7``, ...), only pull from them, consider them read-only -you'll avoid problems. +Le cas de « :: » +~~~~~~~~~~~~~~~~ -Before commiting, you should use `grammalecte -`_ to check for your translations. +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 ». -What to translate -~~~~~~~~~~~~~~~~~ +Donc, dans du *rst*, en anglais, nous voyons soit « bla bla:: », soit « bla bla. :: ». -You can start with easy tasks like reviewing fuzzy entries to help -keeping the documentation up to date (find them using ``make fuzzy``). +En français, nous mettons une espace insécable devant nos deux-points, comme : +« Et voilà : ». -You can also proofread already translated entries, and finally -translate untranslated ones (find them using ``make todo``).. +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. -- Do not translate content of ``:ref:...`` and ``:term:...`` -- Put english words, if you have to use them, in *italics* (surrounded - by stars). -- ``::`` at the end of some paragraphs have to be translated to `` : - ::`` in French to place the space before the column. -- If you translate a link title, please translate the link too - (typically if it's Wikipedia and the article has a translation). If - no translation of the target exists, do not translate the - title. +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``. -Where to get help -~~~~~~~~~~~~~~~~~ +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 -The coordinator for this translation is `mdk `_. -Feel free to ask your questions on the ``#python-fr`` channel on `freenode -`_ (does not require registration) or the -`AFPy traductions mailing list `_. +Utilisez ``xev`` pour connaitre la bonne correspondance de la touche que vous +voulez assigner ! +Ensuite, dans votre fichier '~/.xsession', ajoutez : -Translation Resources ---------------------- +.. code-block:: shell -- `Le Grand Dictionnaire Terminologique `_ -- IRC channel `#python-fr `_ on freenode. -- The `liste traductions `_. -- The `doc-sig mailing list - `_. -- `Glossaire traduc.org `_ -- `Glossaires et Dictionnaires of traduc.org - `_ -- `glossary.po `_, as it's - already translated. -- `deepl.com/translator `_ + # Gestion des touches clavier + xmodmap $HOME/.Xmodmap -Glossary --------- +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. -For consistency in our translations, here are some propositions and -reminders for frequent terms you'll have to translate, don't hesitate -to open an issue if you disagree. +=> Sous Windows, vous +pouvez utiliser `wincompose `_. -========================== =========================================== -Term Proposed Translation -========================== =========================================== +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 (Don't mix with parameter) +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. +deep copy copie récursive (préféré), ou copie profonde double quote guillemet -e.g. e.g. (pour *exempli gratia*) +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. +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 *namespace*, espace de noms +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). -simple quote guillemet simple, apostrophe (apostrophe - is to glue, guillemet is to surround) -socket *socket* +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* -========================== =========================================== +========================== =============================================== -Project History ---------------- +Historique du projet +-------------------- -This project was started `around 2012 -`_ -by `afpy `_ members, in 2017 this project -became the official french Python documentation translation thanks to -`PEP 545 `_. +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 `_. -Simplify git diffs ------------------- +Simplifier les diffs git +------------------------ -Git diffs are often crowded with useless line number changes, like: +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 -To tell git they are not usefull information, you can do the following -after ensuring ``~/.local/bin/`` is in your ``PATH``. +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 @@ -278,9 +492,9 @@ after ensuring ``~/.local/bin/`` is in your ``PATH``. Maintenance ----------- -All those snippets are to run from the root of a ``python-docs-fr`` -clone, and some expect to find an up-to-date CPython clone near to it, -like:: +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 @@ -288,56 +502,66 @@ like:: ├── python-docs-fr/ └── cpython/ -To clone CPython you may use: +Pour cloner CPython, vous pouvez utiliser : .. code-block:: bash git clone --depth 1 --no-single-branch https://github.com/python/cpython.git -This avoids to download the whole history (not usefull to build -documentation) but still fetches all branches. +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. -Merge pot files from CPython -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Fusionner les fichiers *pot* de CPython +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash make merge -Find fuzzy strings -~~~~~~~~~~~~~~~~~~ +Trouver les chaînes de caractères *fuzzy* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash make fuzzy -Run a test build locally -~~~~~~~~~~~~~~~~~~~~~~~~ +Lancer un *build* en local +~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash make -Synchronize translation with Transifex -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Synchroniser la traduction avec Transifex +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Vous aurez besoin de ``transifex-client`` et ``powrap``, +depuis PyPI. -You'll need the ``transifex-client`` and ``poindent`` -from Pypi. +Vous devrez configurer ``tx`` via ``tx init`` si ce n'est déjà fait. -You'll need to configure ``tx`` via ``tx init`` if not already done. +Propagez d'abord les traductions connues localement : .. code-block:: bash - pomerge --from-files **/*.po - tx pull -f - pomerge --to-files **/*.po + 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 --to-files **/*.po - poindent --modified + pomerge --no-overwrite --mark-as-fuzzy --to-files **/*.po + powrap --modified + git add -p git commit -m "tx pull" - tx push -t -f + tx push -t -f --no-interactive --parallel diff --git a/TRANSLATORS b/TRANSLATORS index 462412f92..0996715ac 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -7,3 +7,9 @@ Mohamed Kiouaz Hervé Sousset Mickaël Bergem Vincent Poulailleau +Jules Lasne +Mathieu Dupuy +Vivien Lambert +Andy Kwok +Aya Keddam +Antoine Wecxsteen diff --git a/about.po b/about.po index 5e5d11542..701509cad 100644 --- a/about.po +++ b/about.po @@ -88,4 +88,4 @@ msgid "" "Python has such wonderful documentation -- Thank You!" msgstr "" "Ce n'est que grâce aux suggestions et contributions de la communauté Python " -"que Python a une documentation si merveilleuse -- Merci !" +"que Python a une documentation si merveilleuse — Merci !" diff --git a/bugs.po b/bugs.po index b19c8cd7d..90492aa42 100644 --- a/bugs.po +++ b/bugs.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-31 19:26+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-08-23 09:13+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.0.4\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/bugs.rst:5 msgid "Dealing with Bugs" -msgstr "S'attaquer aux bugs" +msgstr "S'attaquer aux bogues" #: ../Doc/bugs.rst:7 msgid "" @@ -25,9 +25,9 @@ msgid "" "for stability. In order to maintain this reputation, the developers would " "like to know of any deficiencies you find in Python." msgstr "" -"Python est un langage de programmation mature réputé pour sa stabilité. Afin " -"de maintenir cette réputation, les développeurs souhaitent connaître toute " -"déficience que vous pourriez rencontrer dans Python." +"Python est un langage de programmation robuste réputé pour sa stabilité. " +"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 msgid "" @@ -35,9 +35,9 @@ msgid "" "Python as it streamlines the process and involves less people. Learn how to :" "ref:`contribute `." msgstr "" -"Il est parfois plus rapide de réparer les bugs soi-même et d'en proposer les " -"*patch*, ça simplifie le processus et implique moins de monde. Apprenez à :" -"ref:`contribuer `." +"Il est parfois plus rapide de réparer les bogues soi-même et d'en proposer " +"les correctifs, ça simplifie le processus et implique moins de monde. " +"Apprenez à :ref:`contribuer `." #: ../Doc/bugs.rst:16 msgid "Documentation bugs" @@ -47,7 +47,7 @@ msgstr "Bogues de documentation" 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 `. If you have a suggestion how to fix it, include that as well." +"tracker>`. If you have a suggestion on how to fix it, include that as well." msgstr "" "Si vous trouvez un bogue dans cette documentation ou si vous désirez " "proposer une amélioration, si cela concerne aussi la documentation en " @@ -65,19 +65,19 @@ msgid "" "'docs@' is a mailing list run by volunteers; your request will be noticed, " "though it may take a while to be processed." msgstr "" -"Si vous êtes limités par le temps, vous pouvez aussi envoyer un e-mail à " -"docs@python.org (les bugs de comportement peuvent être envoyés à python-" -"list@python.org). 'docs@' est une liste de diffusion gérée par des " +"Si vous êtes limité par le temps, vous pouvez aussi envoyer un courriel à " +"docs@python.org (les bogues de comportement peuvent être envoyés à python-" +"list@python.org). « docs@ » est une liste de diffusion gérée par des " "volontaires, votre requête sera vue, mais elle peut prendre un moment pour " "être traitée." #: ../Doc/bugs.rst:28 msgid "`Documentation bugs`_ on the Python issue tracker" -msgstr "`Documentation bugs`_ sur le gestionnaire de ticket de Python" +msgstr "`Documentation bugs`_ sur le gestionnaire de tickets de Python" #: ../Doc/bugs.rst:33 msgid "Using the Python issue tracker" -msgstr "Utilisation du gestionnaire de ticket Python" +msgstr "Utilisation du gestionnaire de tickets Python" #: ../Doc/bugs.rst:35 msgid "" @@ -85,10 +85,10 @@ msgid "" "(https://bugs.python.org/). The bug tracker offers a Web form which allows " "pertinent information to be entered and submitted to the developers." msgstr "" -"Les rapports de bugs pour Python lui-même devraient être soumis via le *Bug " -"Tracker Python* (http://bugs.python.org/). Le gestionnaire de ticket propose " -"un formulaire Web permettant de saisir des informations pertinentes à " -"soumettre aux développeurs." +"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." #: ../Doc/bugs.rst:39 msgid "" @@ -118,9 +118,9 @@ msgid "" 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 " +"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 bug de " +"barre latérale. Il n'est pas possible de soumettre un rapport de bogue de " "manière anonyme." #: ../Doc/bugs.rst:51 @@ -140,9 +140,9 @@ msgid "" "\"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 " +"« 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." #: ../Doc/bugs.rst:59 @@ -152,7 +152,7 @@ msgid "" "extension modules were involved, and what hardware and software platform you " "were using (including version information as appropriate)." msgstr "" -"Dans le champ \"Commentaire\", décrivez le problème de manière détaillée, " +"Dans le champ « Commentaire », décrivez le problème de manière détaillée, " "incluant ce à quoi vous vous attendiez et ce qui s'est vraiment produit. " "Assurez-vous d'y inclure les éventuels modules d'extensions impliqués et la " "plateforme matérielle et logicielle vous utilisiez (en incluant les " @@ -173,8 +173,8 @@ msgid "" "`How to Report Bugs Effectively `_" msgstr "" -"`Comment rédiger des bugs de manière efficace `_" +"`Comment signaler des bogues de manière efficace `_ (en anglais)" #: ../Doc/bugs.rst:72 msgid "" @@ -190,8 +190,8 @@ msgid "" "`Bug Writing Guidelines `_" msgstr "" -"`Guide de la rédaction de bugs `_" +"`Guide de la rédaction de rapports de bogues `_" #: ../Doc/bugs.rst:76 msgid "" @@ -213,8 +213,8 @@ msgid "" "the `core-mentorship mailing list`_ is a friendly place to get answers to " "any and all questions pertaining to the process of fixing issues in Python." msgstr "" -"Au delà de simplement remonter les bugs que vous trouvez, vous serez aussi " -"appréciés si vous y attachiez des correctifs. Vous pouvez trouver plus " +"Au-delà de simplement remonter les bogues que vous trouvez, il est aussi " +"apprécié d'y attacher des correctifs. Vous pouvez trouver plus " "d'informations pour débuter la rédaction de correctifs dans le `Python " "Developer's Guide`_. Si vous avez des questions, le `core-mentorship mailing " "list`_ est un endroit amical pour obtenir des réponses à toutes les " diff --git a/c-api/abstract.po b/c-api/abstract.po index c36ad2757..3b331cf8e 100644 --- a/c-api/abstract.po +++ b/c-api/abstract.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-02-15 00:28+0100\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2018-10-17 19:31+0200\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\n" #: ../Doc/c-api/abstract.rst:7 msgid "Abstract Objects Layer" diff --git a/c-api/allocation.po b/c-api/allocation.po index fc6d2e03c..381983e06 100644 --- a/c-api/allocation.po +++ b/c-api/allocation.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: 2017-09-22 10:29+0200\n" +"PO-Revision-Date: 2018-10-20 21:16+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.0.4\n" +"X-Generator: Poedit 2.2\n" #: ../Doc/c-api/allocation.rst:6 msgid "Allocating Objects on the Heap" @@ -38,8 +38,9 @@ msgid "" "This does everything :c:func:`PyObject_Init` does, and also initializes the " "length information for a variable-size object." msgstr "" -"Ça fait tout ce que :c:func:`PyObject_Init` fait, et il initialise également " -"l'information de la longueur pour un objet de taille variable." +"Effectue les mêmes opérations que :c:func:`PyObject_Init` fait, et " +"initialise également l'information de la longueur pour un objet de taille " +"variable." #: ../Doc/c-api/allocation.rst:32 msgid "" @@ -50,10 +51,10 @@ msgid "" "tp_basicsize` field of the type object." msgstr "" "Alloue un nouvel objet Python en utilisant le type de structure C *TYPE* et " -"l'objet de type python *type*. Les champs non définis par l'en-tête de " -"l'objet Python ne sont pas initialisés; le compteur de la référence objet " -"sera un. La taille de l'allocation de la mémoire est déterminé par le champs " -"de l'objet type :c:member:`~PyTypeObject.tp_basicsize`." +"l'objet Python *type*. Les champs non définis par l'en-tête de l'objet " +"Python ne sont pas initialisés; le compteur de la référence objet sera égal " +"à un. La taille de l'allocation mémoire est déterminée par le champ :c:" +"member:`~PyTypeObject.tp_basicsize` de l'objet type." #: ../Doc/c-api/allocation.rst:41 msgid "" @@ -67,14 +68,13 @@ msgid "" "of allocations, improving the memory management efficiency." msgstr "" "Alloue un nouvel objet Python en utilisant le type de structure C *TYPE* et " -"l'objet de type Python *type*. Les champs non définis par l'en-tête de " -"l'objet Python ne sont pas initialisés. La mémoire allouée autorise pour la " -"structure *TYPE* plus *size* champs de la taille donnée par le champ de " -"*type* :c:member:`~PyTypeObject.tp_itemsize`. C'est utile pour " +"l'objet Python de type *type*. Les champs non définis par l'en-tête de " +"l'objet Python ne sont pas initialisés. La mémoire allouée est suffisante " +"pour la structure *TYPE* plus *size* champs de la taille donnée par le champ " +"de *type* :c:member:`~PyTypeObject.tp_itemsize`. Ceci est utile pour " "l'implémentation d'objets comme les tuples, qui sont capables de déterminer " -"leur taille durant le temps de la construction. Intégrer l'array de champs " -"dans la même allocation diminue le nombre d'allocations, mettant à l'épreuve " -"l'efficacité de la gestion de la mémoire." +"leur taille à la construction. Allouer les champs en même temps que l'objet " +"diminue le nombre d'allocations, améliorant ainsi les performances." #: ../Doc/c-api/allocation.rst:53 msgid "" @@ -85,10 +85,10 @@ msgid "" "no longer a valid Python object." msgstr "" "Libère la mémoire allouée à un objet utilisant :c:func:`PyObject_New` ou :c:" -"func:`PyObject_NewVar`. C'est normalement appelé par le gestionnaire :c:" -"member:`~PyTypeObject.tp_dealloc` spécifié dans le type d'objet. Le champ de " -"l'objet ne devrait pas être accessible après cet appel puisque la mémoire " -"n'est plus un objet Python valide." +"func:`PyObject_NewVar`. Ceci est normalement appelé par le gestionnaire :c:" +"member:`~PyTypeObject.tp_dealloc` spécifié dans le type d'objet. Les champs " +"de l'objet ne doivent plus être accédés après cet appel puisque cet " +"emplacement mémoire ne correspond plus à un objet Python valide." #: ../Doc/c-api/allocation.rst:62 msgid "" diff --git a/c-api/arg.po b/c-api/arg.po index 8e652853b..568021fe4 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-08-03 18:36+0200\n" +"PO-Revision-Date: 2018-10-04 12:14+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -88,6 +88,10 @@ msgid "" "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 msgid "" @@ -99,13 +103,12 @@ msgid "" "early abort case)." msgstr "" "Néanmoins, quand une structure :c:type:`Py_buffer` est en cours de " -"remplissage, le buffer sous-jacent est verrouillé pour permettre à " -"l'appelant d'utiliser le buffer par la suite, même à l'intérieur d'un bloc :" -"c:type:`Py_BEGIN_ALLOW_THREADS`. Ceci sans le risque pour les données " -"muables de voir leur taille changée ou d'être supprimées. En conséquence, " -"**il vous appartient d'appeler** :c:func:`PyBuffer_Release` après que vous " -"ayez terminé de traiter les données (ou après une interruption prémataturée " -"du traitement de ces données)." +"remplissage, le tampon sous-jacent est verrouillé pour permettre à " +"l'appelant d'utiliser le tampon par la suite, même à l'intérieur d'un bloc :" +"c:type:`Py_BEGIN_ALLOW_THREADS`, sans risques de voir des données muables se " +"faire redimensionner ou supprimer. En conséquence, **il vous appartient " +"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 msgid "Unless otherwise stated, buffers are not NUL-terminated." @@ -129,8 +132,8 @@ msgid "" "c:type:`Py_ssize_t` and drop :c:type:`int` support. It is best to always " "define :c:macro:`PY_SSIZE_T_CLEAN`." msgstr "" -"Pour toutes les variantes de formats ``#`` (``s#``, ``y#``, etc), le type de " -"l'argument *length* (int ou :c:type:`Py_ssize_t`) est contrôlé en " +"Pour toutes les variantes du marqueur ``#`` (``s#``, ``y#``, etc), le type " +"de l'argument *length* (*int* ou :c:type:`Py_ssize_t`) est contrôlé en " "définissant la macro :c:macro:`PY_SSIZE_T_CLEAN` avant d'inclure le fichier :" "file:`Python.h`. Si la macro est définie, la longueur est de type :c:type:" "`Py_ssize_t` au lieu d'être de type :c:type:`int`. Ce comportement changera " @@ -140,7 +143,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:85 msgid "``s`` (:class:`str`) [const char \\*]" -msgstr "``s`` (:class:`str`) [const char \\*]" +msgstr "``s`` (:class:`str`) [``const char *``]" #: ../Doc/c-api/arg.rst:68 msgid "" @@ -151,6 +154,13 @@ 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 msgid "" @@ -159,16 +169,23 @@ msgid "" "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 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 msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" -msgstr "``s*`` (:class:`str` ou :term:`bytes-like object`) [Py_buffer]" +msgstr "``s*`` (:class:`str` ou :term:`bytes-like object`) [``Py_buffer``]" #: ../Doc/c-api/arg.rst:88 msgid "" @@ -177,12 +194,19 @@ msgid "" "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 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 msgid "" @@ -191,10 +215,15 @@ msgid "" "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 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" -msgstr "``z`` (:class:`str` ou ``None``) [const char \\*]" +msgstr "``z`` (:class:`str` ou ``None``) [``const char *``]" #: ../Doc/c-api/arg.rst:101 msgid "" @@ -208,7 +237,7 @@ msgstr "" msgid "" "``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" msgstr "" -"``z*`` (:class:`str`, :term:`bytes-like object` ou ``None``) [Py_buffer]" +"``z*`` (:class:`str`, :term:`bytes-like object` ou ``None``) [``Py_buffer``]" #: ../Doc/c-api/arg.rst:105 msgid "" @@ -233,6 +262,8 @@ msgstr "" #: ../Doc/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 msgid "" @@ -241,16 +272,22 @@ msgid "" "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 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 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" -msgstr "``y*`` (:term:`bytes-like object`) [Py_buffer]" +msgstr "``y*`` (:term:`bytes-like object`) [``Py_buffer``]" #: ../Doc/c-api/arg.rst:123 msgid "" @@ -272,7 +309,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:134 msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" -msgstr "``S`` (:class:`bytes`) [PyBytesObject \\*]" +msgstr "``S`` (:class:`bytes`) [``PyBytesObject *``]" #: ../Doc/c-api/arg.rst:132 msgid "" @@ -283,7 +320,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:139 msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" -msgstr "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" +msgstr "``Y`` (:class:`bytearray`) [``PyByteArrayObject *``]" #: ../Doc/c-api/arg.rst:137 msgid "" @@ -295,7 +332,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:156 msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]" -msgstr "``u`` (:class:`str`) [const Py_UNICODE \\*]" +msgstr "``u`` (:class:`str`) [``const Py_UNICODE *``]" #: ../Doc/c-api/arg.rst:142 msgid "" @@ -307,6 +344,13 @@ 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 @@ -317,7 +361,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:165 msgid "``u#`` (:class:`str`) [const Py_UNICODE \\*, int]" -msgstr "``u#`` (:class:`str`) [const Py_UNICODE \\*, int]" +msgstr "``u#`` (:class:`str`) [``const Py_UNICODE *``, ``int``]" #: ../Doc/c-api/arg.rst:159 msgid "" @@ -328,7 +372,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:173 msgid "``Z`` (:class:`str` or ``None``) [const Py_UNICODE \\*]" -msgstr "``Z`` (:class:`str` ou ``None``) [const Py_UNICODE \\*]" +msgstr "``Z`` (:class:`str` ou ``None``) [``const Py_UNICODE *``]" #: ../Doc/c-api/arg.rst:168 msgid "" @@ -340,7 +384,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:181 msgid "``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, int]" -msgstr "``Z#`` (:class:`str` ou ``None``) [const Py_UNICODE \\*, int]" +msgstr "``Z#`` (:class:`str` ou ``None``) [``const Py_UNICODE *``, ``int``]" #: ../Doc/c-api/arg.rst:176 msgid "" @@ -352,7 +396,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:186 msgid "``U`` (:class:`str`) [PyObject \\*]" -msgstr "``U`` (:class:`str`) [PyObject \\*]" +msgstr "``U`` (:class:`str`) [``PyObject *``]" #: ../Doc/c-api/arg.rst:184 msgid "" @@ -363,7 +407,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:192 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" -msgstr "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" +msgstr "``w*`` (lecture-écriture :term:`bytes-like object`) [``Py_buffer``]" #: ../Doc/c-api/arg.rst:189 msgid "" @@ -491,31 +535,31 @@ msgstr "Les nombres" #: ../Doc/c-api/arg.rst:257 msgid "``b`` (:class:`int`) [unsigned char]" -msgstr "``b`` (:class:`int`) [unsigned char]" +msgstr "``b`` (:class:`int`) [``unsigned char``]" #: ../Doc/c-api/arg.rst:256 msgid "" "Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :" "c:type:`unsigned char`." msgstr "" -"Convertit un entier Python positif ou nul en un unsigned tiny int, stocké " -"dans un :c:type:`unsigned char` C." +"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 msgid "``B`` (:class:`int`) [unsigned char]" -msgstr "``B`` (:class:`int`) [unsigned char]" +msgstr "``B`` (:class:`int`) [``unsigned char``]" #: ../Doc/c-api/arg.rst:260 msgid "" "Convert a Python integer to a tiny int without overflow checking, stored in " "a C :c:type:`unsigned char`." msgstr "" -"Convertit un entier Python en un tiny int sans vérifier le débordement, " +"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 msgid "``h`` (:class:`int`) [short int]" -msgstr "``h`` (:class:`int`) [short int]" +msgstr "``h`` (:class:`int`) [``short int``]" #: ../Doc/c-api/arg.rst:264 msgid "Convert a Python integer to a C :c:type:`short int`." @@ -523,7 +567,7 @@ msgstr "Convertit un entier Python en un :c:type:`short int` C." #: ../Doc/c-api/arg.rst:268 ../Doc/c-api/arg.rst:603 msgid "``H`` (:class:`int`) [unsigned short int]" -msgstr "``H`` (:class:`int`) [unsigned short int]" +msgstr "``H`` (:class:`int`) [``unsigned short int``]" #: ../Doc/c-api/arg.rst:267 msgid "" @@ -535,7 +579,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:271 ../Doc/c-api/arg.rst:588 msgid "``i`` (:class:`int`) [int]" -msgstr "``i`` (:class:`int`) [int]" +msgstr "``i`` (:class:`int`) [``int``]" #: ../Doc/c-api/arg.rst:271 msgid "Convert a Python integer to a plain C :c:type:`int`." @@ -543,7 +587,7 @@ msgstr "Convertit un entier Python en un :c:type:`int` C." #: ../Doc/c-api/arg.rst:275 ../Doc/c-api/arg.rst:606 msgid "``I`` (:class:`int`) [unsigned int]" -msgstr "``I`` (:class:`int`) [unsigned int]" +msgstr "``I`` (:class:`int`) [``unsigned int``]" #: ../Doc/c-api/arg.rst:274 msgid "" @@ -555,7 +599,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:278 ../Doc/c-api/arg.rst:597 msgid "``l`` (:class:`int`) [long int]" -msgstr "``l`` (:class:`int`) [long int]" +msgstr "``l`` (:class:`int`) [``long int``]" #: ../Doc/c-api/arg.rst:278 msgid "Convert a Python integer to a C :c:type:`long int`." @@ -563,7 +607,7 @@ msgstr "Convertit un entier Python en un :c:type:`long int`." #: ../Doc/c-api/arg.rst:282 ../Doc/c-api/arg.rst:609 msgid "``k`` (:class:`int`) [unsigned long]" -msgstr "``k`` (:class:`int`) [unsigned long]" +msgstr "``k`` (:class:`int`) [``unsigned long``]" #: ../Doc/c-api/arg.rst:281 msgid "" @@ -575,7 +619,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:285 ../Doc/c-api/arg.rst:612 msgid "``L`` (:class:`int`) [long long]" -msgstr "``L`` (:class:`int`) [long long]" +msgstr "``L`` (:class:`int`) [``long long``]" #: ../Doc/c-api/arg.rst:285 msgid "Convert a Python integer to a C :c:type:`long long`." @@ -583,7 +627,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:289 ../Doc/c-api/arg.rst:615 msgid "``K`` (:class:`int`) [unsigned long long]" -msgstr "``K`` (:class:`int`) [unsigned long long]" +msgstr "``K`` (:class:`int`) [``unsigned long long``]" #: ../Doc/c-api/arg.rst:288 msgid "" @@ -593,7 +637,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:292 ../Doc/c-api/arg.rst:618 msgid "``n`` (:class:`int`) [Py_ssize_t]" -msgstr "``n`` (:class:`int`) [Py_ssize_t]" +msgstr "``n`` (:class:`int`) [``Py_ssize_t``]" #: ../Doc/c-api/arg.rst:292 msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." @@ -601,14 +645,14 @@ msgstr "Convertit un entier Python en un :c:type:`short int` C." #: ../Doc/c-api/arg.rst:299 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" -msgstr "``c`` (:class:`bytes` ou :class:`bytearray` of length 1) [char]" +msgstr "``c`` (:class:`bytes` ou :class:`bytearray` de longueur 1) [``char``]" #: ../Doc/c-api/arg.rst:295 msgid "" "Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` " "object of length 1, to a C :c:type:`char`." msgstr "" -"Convertit un octet Python, représenté comme un objet :class:`bytes` ou :" +"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 @@ -617,7 +661,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:303 ../Doc/c-api/arg.rst:626 msgid "``C`` (:class:`str` of length 1) [int]" -msgstr "``C`` (:class:`str` of length 1) [int]" +msgstr "``C`` (:class:`str` de longueur 1) [``int``]" #: ../Doc/c-api/arg.rst:302 msgid "" @@ -629,7 +673,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:306 ../Doc/c-api/arg.rst:632 msgid "``f`` (:class:`float`) [float]" -msgstr "``f`` (:class:`float`) [float]" +msgstr "``f`` (:class:`float`) [``float``]" #: ../Doc/c-api/arg.rst:306 msgid "Convert a Python floating point number to a C :c:type:`float`." @@ -637,7 +681,7 @@ msgstr "Convertit un nombre flottant Python vers un :c:type:`float`." #: ../Doc/c-api/arg.rst:309 ../Doc/c-api/arg.rst:629 msgid "``d`` (:class:`float`) [double]" -msgstr "``d`` (:class:`float`) [double]" +msgstr "``d`` (:class:`float`) [``double``]" #: ../Doc/c-api/arg.rst:309 msgid "Convert a Python floating point number to a C :c:type:`double`." @@ -645,7 +689,7 @@ msgstr "Convertit un nombre flottant Python vers un :c:type:`double` C." #: ../Doc/c-api/arg.rst:312 msgid "``D`` (:class:`complex`) [Py_complex]" -msgstr "``D`` (:class:`complex`) [Py_complex]" +msgstr "``D`` (:class:`complex`) [``Py_complex``]" #: ../Doc/c-api/arg.rst:312 msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." @@ -659,7 +703,7 @@ msgstr "Autres objets" #: ../Doc/c-api/arg.rst:320 ../Doc/c-api/arg.rst:643 msgid "``O`` (object) [PyObject \\*]" -msgstr "``O`` (object) [PyObject \\*]" +msgstr "``O`` (objet) [``PyObject *``]" #: ../Doc/c-api/arg.rst:318 msgid "" @@ -674,7 +718,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:327 msgid "``O!`` (object) [*typeobject*, PyObject \\*]" -msgstr "``O!`` (object) [*typeobject*, PyObject \\*]" +msgstr "``O!`` (objet) [*typeobject*, ``PyObject *``]" #: ../Doc/c-api/arg.rst:323 msgid "" @@ -687,7 +731,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:352 ../Doc/c-api/arg.rst:657 msgid "``O&`` (object) [*converter*, *anything*]" -msgstr "``O&`` (object) [*converter*, *anything*]" +msgstr "``O&`` (objet) [*converter*, *anything*]" #: ../Doc/c-api/arg.rst:332 msgid "" @@ -722,7 +766,7 @@ msgstr "``Py_CLEANUP_SUPPORTED`` à été ajouté." #: ../Doc/c-api/arg.rst:361 msgid "``p`` (:class:`bool`) [int]" -msgstr "``p`` (:class:`bool`) [int]" +msgstr "``p`` (:class:`bool`) [``int``]" #: ../Doc/c-api/arg.rst:355 msgid "" @@ -780,7 +824,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:391 msgid "``$``" -msgstr "" +msgstr "``$``" #: ../Doc/c-api/arg.rst:385 msgid "" @@ -834,7 +878,7 @@ msgid "" "unit in that case." msgstr "" "Les arguments additionnels qui sont donnés à ces fonctions doivent être des " -"adresses de variables dont le type est déterminé par la chaîine de format. " +"adresses de variables dont le type est déterminé par la chaîne de format. " "Elles sont utilisées pour stocker les valeurs du n-uplet d'entrée. Il y a " "quelques cas, comme décrit précédemment dans le liste des unités de formats, " "où ces paramètres sont utilisés comme valeurs d'entrée. Dans ce cas, ils " @@ -987,7 +1031,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:550 msgid "``s`` (:class:`str` or ``None``) [const char \\*]" -msgstr "``s`` (:class:`str` ou ``None``) [const char \\*]" +msgstr "``s`` (:class:`str` ou ``None``) [``const char *``]" #: ../Doc/c-api/arg.rst:549 msgid "" @@ -997,7 +1041,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:555 msgid "``s#`` (:class:`str` or ``None``) [const char \\*, int]" -msgstr "``s#`` (:class:`str` ou ``None``) [const char \\*, int]" +msgstr "``s#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" #: ../Doc/c-api/arg.rst:553 msgid "" @@ -1008,7 +1052,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:559 msgid "``y`` (:class:`bytes`) [const char \\*]" -msgstr "``y`` (:class:`bytes`) [const char \\*]" +msgstr "``y`` (:class:`bytes`) [``const char *``]" #: ../Doc/c-api/arg.rst:558 msgid "" @@ -1018,7 +1062,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:563 msgid "``y#`` (:class:`bytes`) [const char \\*, int]" -msgstr "``y#`` (:class:`bytes`) [const char \\*, int]" +msgstr "``y#`` (:class:`bytes`) [``const char *, int``]" #: ../Doc/c-api/arg.rst:562 msgid "" @@ -1032,7 +1076,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:569 msgid "``z#`` (:class:`str` or ``None``) [const char \\*, int]" -msgstr "``z#`` (:class:`str` ou ``None``) [const char \\*, int]" +msgstr "``z#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" #: ../Doc/c-api/arg.rst:569 ../Doc/c-api/arg.rst:585 msgid "Same as ``s#``." @@ -1040,7 +1084,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:574 msgid "``u`` (:class:`str`) [const wchar_t \\*]" -msgstr "``u`` (:class:`str`) [const wchar_t \\*]" +msgstr "``u`` (:class:`str`) [``const wchar_t *``]" #: ../Doc/c-api/arg.rst:572 msgid "" @@ -1051,7 +1095,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:579 msgid "``u#`` (:class:`str`) [const wchar_t \\*, int]" -msgstr "``u#`` (:class:`str`) [const wchar_t \\*, int]" +msgstr "``u#`` (:class:`str`) [``const wchar_t *``, ``int``]" #: ../Doc/c-api/arg.rst:577 msgid "" @@ -1062,11 +1106,11 @@ msgstr "" #: ../Doc/c-api/arg.rst:582 msgid "``U`` (:class:`str` or ``None``) [const char \\*]" -msgstr "``U`` (:class:`str` ou ``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]" -msgstr "``U#`` (:class:`str` ou ``None``) [const char \\*, int]" +msgstr "``U#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" #: ../Doc/c-api/arg.rst:588 msgid "Convert a plain C :c:type:`int` to a Python integer object." @@ -1074,7 +1118,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:591 msgid "``b`` (:class:`int`) [char]" -msgstr "``b`` (:class:`int`) [char]" +msgstr "``b`` (:class:`int`) [``char``]" #: ../Doc/c-api/arg.rst:591 msgid "Convert a plain C :c:type:`char` to a Python integer object." @@ -1086,7 +1130,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:597 msgid "Convert a C :c:type:`long int` to a Python integer object." -msgstr "Convertit un :c:type:`long int` en un int Python." +msgstr "Convertit un :c:type:`long int` en un *int* Python." #: ../Doc/c-api/arg.rst:600 msgid "Convert a C :c:type:`unsigned char` to a Python integer object." @@ -1118,7 +1162,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:622 msgid "``c`` (:class:`bytes` of length 1) [char]" -msgstr "``c`` (:class:`bytes` de taille 1) [char]" +msgstr "``c`` (:class:`bytes` de taille 1) [``char``]" #: ../Doc/c-api/arg.rst:621 msgid "" @@ -1142,7 +1186,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:635 msgid "``D`` (:class:`complex`) [Py_complex \\*]" -msgstr "``D`` (:class:`complex`) [Py_complex \\*]" +msgstr "``D`` (:class:`complex`) [``Py_complex *``]" #: ../Doc/c-api/arg.rst:635 msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." @@ -1160,7 +1204,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:646 msgid "``S`` (object) [PyObject \\*]" -msgstr "``S`` (object) [PyObject \\*]" +msgstr "``S`` (objet) [``PyObject *``]" #: ../Doc/c-api/arg.rst:646 msgid "Same as ``O``." @@ -1168,7 +1212,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:651 msgid "``N`` (object) [PyObject \\*]" -msgstr "``N`` (object) [PyObject \\*]" +msgstr "``N`` (objet) [``PyObject *``]" #: ../Doc/c-api/arg.rst:649 msgid "" diff --git a/c-api/buffer.po b/c-api/buffer.po index 511e31165..c78eae496 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-16 23:59+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-10-04 12:18+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -27,10 +27,10 @@ msgid "" "party libraries may define their own types for special purposes, such as " "image processing or numeric analysis." msgstr "" -"Certains objets disponibles en Python enveloppent l'accès à un tableau de " -"mémoire sous-jacente ou zone tampon ou simplement tampon (*buffer* en " -"anglais). De tels objets incluent le built-in :class:`bytes` et :class:" -"`bytearray`, et quelques types d'extension comme :class:`array.array`. Les " +"Certains objets Python enveloppent l'accès à un tableau de mémoire sous-" +"jacente (nommée zone tampon ou simplement tampon, *buffer* en anglais). Les " +"objets natifs :class:`bytes` et :class:`bytearray` en sont des exemples, " +"ainsi que quelques types d'extension comme :class:`array.array`. Les " "bibliothèques tierces peuvent définir leurs propres types à des fins " "spéciales, telles que le traitement d'image ou l'analyse numérique." @@ -97,15 +97,15 @@ msgid "" "objects to selectively allow or reject exporting of read-write and read-only " "buffers." msgstr "" -"Un exemple de consommateur de l'interface tampon est la méthode :meth:`~ io." -"BufferedIOBase.write` des objets fichiers : tout objet qui peut exporter une " +"Un exemple de consommateur de l'interface tampon est la méthode :meth:`~io." +"BufferedIOBase.write` des objets fichiers : tout objet qui peut exporter une " "série d'octets à travers l'interface tampon peut être écrit dans un fichier. " "Alors que :meth:`write` n'a besoin que d'un accès lecture au contenu " -"interne de l'objet qui lui est passé, d'autres méthodes telles que :meth:`~ " -"io.BufferedIOBase.readinto` nécessitent un accès écriture au contenu de leur " -"argument. L'interface buffer permet aux objets d'autoriser ou de rejeter " -"sélectivement l'exportation de buffers en mode lecture-écriture et en mode " -"lecture seule." +"interne de l'objet qui lui est passé, d'autres méthodes telles que :meth:" +"`~io.BufferedIOBase.readinto` nécessitent un accès écriture au contenu de " +"leur argument. L'interface *buffer* permet aux objets d'autoriser ou de " +"rejeter sélectivement l'exportation de tampons en mode lecture-écriture et " +"en mode lecture seule." #: ../Doc/c-api/buffer.rst:53 msgid "" @@ -152,15 +152,16 @@ msgid "" "operating system library, or it could be used to pass around structured data " "in its native, in-memory format." msgstr "" -"Les structures buffer (ou simplement les \"buffers\") sont utiles pour " -"exposer les données binaires d'un autre objet au programmeur Python. Elles " -"peuvent également être utilisées comme un mécanisme de découpage sans copie. " -"En utilisant leur capacité à référencer un bloc de mémoire, il est possible " -"d'exposer toutes les données au programmeur Python assez facilement. La " -"mémoire peut être un grand tableau constant dans une extension C, il peut " -"s'agir d'un bloc brut de mémoire à manipuler avant de passer à une " -"bibliothèque de système d'exploitation ou être utilisé pour transmettre des " -"données structurées dans son format natif en mémoire." +"Les structures tampons (ou simplement les \"tampons\", *buffers* en anglais) " +"sont utiles pour exposer les données binaires d'un autre objet au " +"programmeur Python. Elles peuvent également être utilisées comme un " +"mécanisme de découpage sans copie. En utilisant leur capacité à référencer " +"un bloc de mémoire, il est possible d'exposer toutes les données au " +"programmeur Python assez facilement. La mémoire peut être un grand tableau " +"constant dans une extension C, il peut s'agir d'un bloc brut de mémoire à " +"manipuler avant de passer à une bibliothèque de système d'exploitation ou " +"être utilisé pour transmettre des données structurées dans son format natif " +"en mémoire." #: ../Doc/c-api/buffer.rst:80 msgid "" @@ -335,7 +336,7 @@ msgstr "" #: ../Doc/c-api/buffer.rst:201 msgid "" -"If all suboffsets are negative (i.e. no de-referencing is needed, then this " +"If all suboffsets are negative (i.e. no de-referencing is needed), then this " "field must be NULL (the default value)." msgstr "" @@ -527,7 +528,7 @@ msgstr "" #: ../Doc/c-api/buffer.rst:321 msgid "format" -msgstr "" +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 @@ -612,13 +613,13 @@ msgstr "" #: ../Doc/c-api/buffer.rst:426 msgid "Buffer-related functions" -msgstr "Fonctions relatives aux buffers" +msgstr "Fonctions relatives aux tampons" #: ../Doc/c-api/buffer.rst:430 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." +"will succeed. This function always succeeds." msgstr "" #: ../Doc/c-api/buffer.rst:437 @@ -669,7 +670,8 @@ msgstr "" 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 " -"one (*order* is ``'A'``). Return ``0`` otherwise." +"one (*order* is ``'A'``). Return ``0`` otherwise. This function always " +"succeeds." msgstr "" #: ../Doc/c-api/buffer.rst:478 diff --git a/c-api/bytearray.po b/c-api/bytearray.po index 4ff8fc84e..4b3116288 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-02-15 00:30+0100\n" +"PO-Revision-Date: 2018-10-04 12:21+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -22,7 +22,7 @@ msgstr "Objets tableau d'octets" msgid "" "This subtype of :c:type:`PyObject` represents a Python bytearray object." msgstr "" -"Ce sous-type e :c:type:`PyObject` représente un objet bytearray Python." +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." #: ../Doc/c-api/bytearray.rst:18 msgid "" @@ -41,16 +41,16 @@ msgid "" "Return true if the object *o* is a bytearray object or an instance of a " "subtype of the bytearray type." msgstr "" -"Renvoie la valeur true (vrai) si l'objet *o* est un objet bytearray ou une " -"instance d'un sous-type du type bytearray." +"Renvoie vrai si l'objet *o* est un ``bytearray`` ou une instance d'un sous-" +"type du type ``bytearray``." #: ../Doc/c-api/bytearray.rst:33 msgid "" "Return true if the object *o* is a bytearray object, but not an instance of " "a subtype of the bytearray type." msgstr "" -"Renvoie la valeur true si l'objet *o* est un objet bytearray, mais pas une " -"instance d'un sous-type du type bytearray." +"Renvoie vrai si l'objet *o* est un ``bytearray``, mais pas une instance d'un " +"sous-type du type ``bytearray``." #: ../Doc/c-api/bytearray.rst:38 msgid "Direct API functions" @@ -69,20 +69,20 @@ msgid "" "Create a new bytearray object from *string* and its length, *len*. On " "failure, *NULL* is returned." msgstr "" -"Crée un nouvel objet bytearray à partir d'un objet *string* et de sa " +"Crée un nouvel objet ``bytearray`` à partir d'un objet *string* et de sa " "longueur, *len*. En cas d'échec, *NULL* est renvoyé." #: ../Doc/c-api/bytearray.rst:56 msgid "" "Concat bytearrays *a* and *b* and return a new bytearray with the result." msgstr "" -"Concatène les bytearrays *a* et *b* et renvoit un nouveau bytearray avec le " -"résultat." +"Concatène les ``bytearrays`` *a* et *b* et renvoie un nouveau ``bytearray`` " +"avec le résultat." #: ../Doc/c-api/bytearray.rst:61 msgid "Return the size of *bytearray* after checking for a *NULL* pointer." msgstr "" -"Renvoit la taille de *bytearray* après vérification de la présence d'un " +"Renvoie la taille de *bytearray* après vérification de la présence d'un " "pointeur *NULL*." #: ../Doc/c-api/bytearray.rst:66 @@ -96,7 +96,7 @@ msgstr "" #: ../Doc/c-api/bytearray.rst:73 msgid "Resize the internal buffer of *bytearray* to *len*." -msgstr "Redimensionne le buffer interne de *bytearray* à la taille *len*." +msgstr "Redimensionne le tampon interne de *bytearray* à la taille *len*." #: ../Doc/c-api/bytearray.rst:76 msgid "Macros" diff --git a/c-api/bytes.po b/c-api/bytes.po index 4497aaca4..dbd32524b 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -72,7 +72,7 @@ msgstr "" #: ../Doc/c-api/bytes.rst:68 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" #: ../Doc/c-api/bytes.rst:68 msgid "Type" @@ -121,7 +121,7 @@ msgstr "" #: ../Doc/c-api/bytes.rst:78 msgid "unsigned int" -msgstr "unsigned int" +msgstr "``unsigned int``" #: ../Doc/c-api/bytes.rst:78 msgid "Equivalent to ``printf(\"%u\")``. [1]_" @@ -145,7 +145,7 @@ msgstr "" #: ../Doc/c-api/bytes.rst:84 msgid "unsigned long" -msgstr "unsigned long" +msgstr "``unsigned long``" #: ../Doc/c-api/bytes.rst:84 msgid "Equivalent to ``printf(\"%lu\")``. [1]_" diff --git a/c-api/cell.po b/c-api/cell.po index 95571679a..44b2efd6d 100644 --- a/c-api/cell.po +++ b/c-api/cell.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-09 10:14+0200\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/c-api/cell.rst:6 msgid "Cell Objects" @@ -29,44 +30,50 @@ msgid "" "support from the generated byte-code; these are not automatically de-" "referenced when accessed. Cell objects are not likely to be useful elsewhere." msgstr "" -"Les objets \"Cellules\" sont utilisés pour implémenter des variables " -"référencées dans de multiples enviromments. Pour chacune de ces variables, " -"un objet cellule est créé pour stocker sa valeur ; les variables locales de " -"chaque pile d'exécution qui référence cette valeur contiennent une référence " -"sur les cellules des autres environnements qui utilisent aussi cette " -"variable. Quand la valeur est accédée, la valeur de la cellule est utilisée, " -"au lei de celle de l'objet cellule proprement dit. Ce dé-référencement de " -"l'objet cellule requiert l'intervention du bytecode généré ; il n'est pas " -"automatiquement dé-référencé quand il est accédé. Il est plausible que les " -"objets cellules ne soit utilisés ailleurs." +"Les objets \"Cellules\" (*cell* en anglais) sont utilisés pour implémenter " +"des variables référencées dans de multiples environnements. Pour chacune de " +"ces variables, un objet cellule est créé pour stocker sa valeur ; les " +"variables locales de chaque pile d'exécution qui référence cette valeur " +"contiennent une référence sur les cellules des autres environnements qui " +"utilisent aussi cette variable. Quand la valeur est accédée, la valeur de la " +"cellule est utilisée, au lei de celle de l'objet cellule proprement dit. Ce " +"dé-référencement de l'objet cellule requiert l'intervention du *bytecode* " +"généré ; il n'est pas automatiquement dé-référencé quand il est accédé. Il " +"est plausible que les objets cellules ne soit utilisés ailleurs." #: ../Doc/c-api/cell.rst:20 msgid "The C structure used for cell objects." -msgstr "" +msgstr "Structure C utilisée pour les objets cellules." #: ../Doc/c-api/cell.rst:25 msgid "The type object corresponding to cell objects." -msgstr "" +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*." msgstr "" +"Renvoie ``True`` si *ob* est un objet cellule ; *ob* ne doit pas être à " +"*NULL*." #: ../Doc/c-api/cell.rst:35 msgid "" "Create and return a new cell object containing the value *ob*. The parameter " "may be *NULL*." msgstr "" +"Crée et retourne un nouvel objet cellule contenant la valeur *ob*. Le " +"paramètre peut être mis à *NULL*." #: ../Doc/c-api/cell.rst:41 msgid "Return the contents of the cell *cell*." -msgstr "" +msgstr "Renvoie le contenu de la cellule *cell*." #: ../Doc/c-api/cell.rst:46 msgid "" "Return the contents of the cell *cell*, but without checking that *cell* is " "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 msgid "" @@ -75,6 +82,10 @@ msgid "" "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 " +"pas être *NULL* ; si ce n'est pas un objet cellule, ``-1`` est renvoyé. Si " +"c'est un objet cellule, renvoie ``0``." #: ../Doc/c-api/cell.rst:60 msgid "" @@ -82,3 +93,6 @@ msgid "" "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 " +"références n'est ajusté et il n'y' a pas de contrôle effectué pour vérifier " +"la sûreté ; *cell* doit être à non *NULL* et doit être un objet cellule." diff --git a/c-api/codec.po b/c-api/codec.po index c88d83222..977a2cd09 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -31,7 +31,7 @@ msgstr "" #: ../Doc/c-api/codec.rst:15 msgid "" "Return ``1`` or ``0`` depending on whether there is a registered codec for " -"the given *encoding*." +"the given *encoding*. This function always succeeds." msgstr "" #: ../Doc/c-api/codec.rst:20 diff --git a/c-api/complex.po b/c-api/complex.po index 8ab4f8f2a..708d7647e 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-09-21 09:15+0200\n" -"PO-Revision-Date: 2018-02-15 00:31+0100\n" -"Last-Translator: \n" +"PO-Revision-Date: 2019-01-14 20:31+0100\n" +"Last-Translator: ANTOINE FOURES \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/c-api/complex.rst:6 msgid "Complex Number Objects" -msgstr "Objets nombres complexes" +msgstr "Objets représentant des nombres complexes" #: ../Doc/c-api/complex.rst:10 msgid "" @@ -26,10 +26,10 @@ msgid "" "and the other is a C structure which represents the actual complex number " "value. The API provides functions for working with both." msgstr "" -"Les objets Python nombres complexes sont implémentés comme deux types " -"distincts, lorsqu'ils sont vus de l'API C : l'un est l'objet Python tel " -"qu'il est vu par les programmes Python, et l'autre est une structure C qui " -"représente la valeur complexe courante. L'API fournit des fonctions pour " +"Les nombres complexes Python sont implémentés comme deux types distincts, " +"lorsqu'ils sont vus de l'API C : l'un est l'objet Python tel qu'il est vu " +"par les programmes Python, et l'autre est une structure C qui représente la " +"valeur exacte du nombre complexe. L'API fournit des fonctions pour " "travailler avec ces deux représentations." #: ../Doc/c-api/complex.rst:17 @@ -42,9 +42,9 @@ msgid "" "return them as results do so *by value* rather than dereferencing them " "through pointers. This is consistent throughout the API." msgstr "" -"Remarquez que les fonctions qui acceptent ces structures comme paramètres et " -"les renvoient comme résultats le font *par valeur* au lieur de les dé-" -"référencer en utilisant des pointeurs. Cela est constant dans toute l'API." +"Les fonctions qui acceptent ces structures comme paramètres et les renvoient " +"comme résultats le font en fonction de leur *valeur* au lieu de les dé-" +"référencer en utilisant des pointeurs. C'est constant dans toute l'API." #: ../Doc/c-api/complex.rst:26 msgid "" @@ -53,54 +53,73 @@ msgid "" "objects use structures of this type as input or output values, as " "appropriate. It is defined as::" msgstr "" +"Structure C représentant la valeur d'un nombre complexe Python. La majorité " +"des fonctions qui traitent des nombres complexes utilisent cette structure " +"en entrée ou en sortie, selon le cas. Elle est définie par ::" #: ../Doc/c-api/complex.rst:39 msgid "" "Return the sum of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" +"Renvoie la somme de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:45 msgid "" "Return the difference between two complex numbers, using the C :c:type:" "`Py_complex` representation." msgstr "" +"Renvoie la différence de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:51 msgid "" "Return the negation of the complex number *complex*, using the C :c:type:" "`Py_complex` representation." msgstr "" +"Renvoie l'opposé du nombre complexe *complex*, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:57 msgid "" "Return the product of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" +"Renvoie le produit de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:63 msgid "" "Return the quotient of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" +"Renvoie le quotient de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:66 msgid "" "If *divisor* is null, this method returns zero and sets :c:data:`errno` to :" "c:data:`EDOM`." msgstr "" +"Si *divisor* est nul, cette méthode renvoie zéro et assigne :c:data:`EDOM` " +"à :c:data:`errno`." #: ../Doc/c-api/complex.rst:72 msgid "" "Return the exponentiation of *num* by *exp*, using the C :c:type:" "`Py_complex` representation." msgstr "" +"Renvoie *num* à la puissance *exp*, sous la forme d'un :c:type:`Py_complex` " +"en C." #: ../Doc/c-api/complex.rst:75 msgid "" "If *num* is null and *exp* is not a positive real number, this method " "returns zero and sets :c:data:`errno` to :c:data:`EDOM`." msgstr "" +"Si *num* est nul et *exp* n'est pas un nombre réel positif, cette méthode " +"renvoie zéro et assigne :c:data:`EDOM` à :c:data:`errno`." #: ../Doc/c-api/complex.rst:80 msgid "Complex Numbers as Python Objects" @@ -110,46 +129,64 @@ msgstr "Nombres complexes en tant qu'objets Python" msgid "" "This subtype of :c:type:`PyObject` represents a Python complex number object." msgstr "" +"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre complexe en " +"Python." #: ../Doc/c-api/complex.rst:90 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python complex number " "type. It is the same object as :class:`complex` in the Python layer." msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type nombre complexe " +"Python. C'est le même objet que la classe :class:`complex` de la couche " +"Python." #: ../Doc/c-api/complex.rst:96 msgid "" "Return true if its argument is a :c:type:`PyComplexObject` or a subtype of :" "c:type:`PyComplexObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyComplexObject` ou un sous-" +"type de :c:type:`PyComplexObject`." #: ../Doc/c-api/complex.rst:102 msgid "" "Return true if its argument is a :c:type:`PyComplexObject`, but not a " "subtype of :c:type:`PyComplexObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyComplexObject`, mais pas " +"un sous-type de :c:type:`PyComplexObject`." #: ../Doc/c-api/complex.rst:108 msgid "" "Create a new Python complex number object from a C :c:type:`Py_complex` " "value." msgstr "" +"Crée un nouveau nombre complexe à partir de la valeur d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:113 msgid "Return a new :c:type:`PyComplexObject` object from *real* and *imag*." msgstr "" +"Renvoie un nouveau :c:type:`PyComplexObject` à partir de *real* et de *imag*." #: ../Doc/c-api/complex.rst:118 msgid "Return the real part of *op* as a C :c:type:`double`." msgstr "" +"Renvoie la partie réelle du nombre complexe *op* sous la forme d'un :c:type:" +"`double` en C." #: ../Doc/c-api/complex.rst:123 msgid "Return the imaginary part of *op* as a C :c:type:`double`." msgstr "" +"Renvoie la partie imaginaire du nombre complexe *op* sous la forme d'un :c:" +"type:`double` en C." #: ../Doc/c-api/complex.rst:128 msgid "Return the :c:type:`Py_complex` value of the complex number *op*." msgstr "" +"Renvoie la valeur du nombre complexe *op* sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:130 msgid "" @@ -157,3 +194,7 @@ msgid "" "method, this method will first be called to convert *op* to a Python complex " "number object. Upon failure, this method returns ``-1.0`` as a real value." msgstr "" +"Si *op* n'est pas un nombre complexe Python mais a une méthode :meth:" +"`__complex__`, cette méthode est d'abord appelée pour convertir *op* en " +"nombre complexe Python. En cas d'échec, cette méthode renvoie ``-1.0`` en " +"tant que nombre réel." diff --git a/c-api/contextvars.po b/c-api/contextvars.po index 4677050c2..72faa61a3 100644 --- a/c-api/contextvars.po +++ b/c-api/contextvars.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2018-08-03 23:47+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -18,105 +18,116 @@ msgstr "" msgid "Context Variables Objects" msgstr "" -#: ../Doc/c-api/contextvars.rst:10 +#: ../Doc/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 +msgid "See :issue:`34762` for more details." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:29 msgid "" "This section details the public C API for the :mod:`contextvars` module." msgstr "" -#: ../Doc/c-api/contextvars.rst:14 +#: ../Doc/c-api/contextvars.rst:33 msgid "" "The C structure used to represent a :class:`contextvars.Context` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:19 +#: ../Doc/c-api/contextvars.rst:38 msgid "" "The C structure used to represent a :class:`contextvars.ContextVar` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:24 +#: ../Doc/c-api/contextvars.rst:43 msgid "The C structure used to represent a :class:`contextvars.Token` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:28 +#: ../Doc/c-api/contextvars.rst:47 msgid "The type object representing the *context* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:32 +#: ../Doc/c-api/contextvars.rst:51 msgid "The type object representing the *context variable* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:36 +#: ../Doc/c-api/contextvars.rst:55 msgid "The type object representing the *context variable token* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:39 +#: ../Doc/c-api/contextvars.rst:58 msgid "Type-check macros:" -msgstr "" +msgstr "Macros pour vérifier les types :" -#: ../Doc/c-api/contextvars.rst:43 +#: ../Doc/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." msgstr "" -#: ../Doc/c-api/contextvars.rst:48 +#: ../Doc/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." msgstr "" -#: ../Doc/c-api/contextvars.rst:53 +#: ../Doc/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." msgstr "" -#: ../Doc/c-api/contextvars.rst:57 +#: ../Doc/c-api/contextvars.rst:76 msgid "Context object management functions:" msgstr "" -#: ../Doc/c-api/contextvars.rst:61 +#: ../Doc/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:66 +#: ../Doc/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:71 +#: ../Doc/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:76 +#: ../Doc/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:81 +#: ../Doc/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:87 +#: ../Doc/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:91 +#: ../Doc/c-api/contextvars.rst:110 msgid "Context variable functions:" msgstr "" -#: ../Doc/c-api/contextvars.rst:95 +#: ../Doc/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 " @@ -124,42 +135,42 @@ msgid "" "occurred, this function returns ``NULL``." msgstr "" -#: ../Doc/c-api/contextvars.rst:102 +#: ../Doc/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:106 +#: ../Doc/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:109 +#: ../Doc/c-api/contextvars.rst:128 msgid "*default_value*, if not ``NULL``;" msgstr "" -#: ../Doc/c-api/contextvars.rst:110 +#: ../Doc/c-api/contextvars.rst:129 msgid "the default value of *var*, if not ``NULL``;" msgstr "" -#: ../Doc/c-api/contextvars.rst:111 +#: ../Doc/c-api/contextvars.rst:130 msgid "``NULL``" msgstr "``NULL``" -#: ../Doc/c-api/contextvars.rst:113 +#: ../Doc/c-api/contextvars.rst:132 msgid "If the value was found, the function will create a new reference to it." msgstr "" -#: ../Doc/c-api/contextvars.rst:117 +#: ../Doc/c-api/contextvars.rst:136 msgid "" "Set the value of *var* to *value* in the current context. Returns a pointer " -"to a :c:type:`PyContextToken` object, or ``NULL`` if an error has occurred." +"to a :c:type:`PyObject` object, or ``NULL`` if an error has occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:123 +#: ../Doc/c-api/contextvars.rst:142 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 6bd2ebf84..476f119a3 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -104,9 +104,9 @@ msgstr "" #: ../Doc/c-api/conversion.rst:62 msgid "" -"If ``endptr`` is ``NULL``, convert the whole string. Raise ValueError and " -"return ``-1.0`` if the string is not a valid representation of a floating-" -"point number." +"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 diff --git a/c-api/coro.po b/c-api/coro.po index 37a3a9bb8..32fe30563 100644 --- a/c-api/coro.po +++ b/c-api/coro.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-02-15 00:31+0100\n" +"PO-Revision-Date: 2018-10-04 12:24+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -32,7 +32,7 @@ msgstr "La structure C utilisée pour les objets coroutine." #: ../Doc/c-api/coro.rst:21 msgid "The type object corresponding to coroutine objects." -msgstr "L'objet type correpondant aux objets coroutines." +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*." diff --git a/c-api/datetime.po b/c-api/datetime.po index 276b99c83..4e268df34 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -5,14 +5,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-31 10:15+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.3\n" +"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,3,-1,-1\n" #: ../Doc/c-api/datetime.rst:6 msgid "DateTime Objects" @@ -28,204 +30,285 @@ msgid "" "structure into a static variable, :c:data:`PyDateTimeAPI`, that is used by " "the following macros." msgstr "" +"De nombreux objets *date* et *time* sont exposés par le module :mod:" +"`DateTime`. Avant d'utiliser une de ces fonctions, le fichier d'en-tête :" +"file:`datetime.h` doit être inclus dans vos sources (veuillez noter qu'il " +"n'est pas inclus par le fichier :file:`Python.h`) et la macro :c:macro:" +"`PyDateTime_IMPORT` doit-être invoquée, généralement lors de la fonction " +"d'initialisation du module. La macro crée un pointeur vers une structure C " +"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 msgid "Macro for access to the UTC singleton:" -msgstr "" +msgstr "Macro pour accéder au singleton UTC :" #: ../Doc/c-api/datetime.rst:20 msgid "" "Returns the time zone singleton representing UTC, the same object as :attr:" "`datetime.timezone.utc`." 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 msgid "Type-check macros:" -msgstr "" +msgstr "Macros pour vérifier les types :" #: ../Doc/c-api/datetime.rst:30 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*." 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 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " "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 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*." 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 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " "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 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*." 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 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " "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 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*." 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 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " "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 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*." 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 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " "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 msgid "Macros to create objects:" -msgstr "" +msgstr "Macros pour créer des objets :" #: ../Doc/c-api/datetime.rst:92 msgid "" "Return a :class:`datetime.date` object with the specified year, month and " "day." 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 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second and microsecond." 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 msgid "" +"Return a :class:`datetime.datetime` object with the specified year, month, " +"day, hour, minute, second, microsecond and fold." +msgstr "" +"Renvoie un objet :class:`datetime.datetime` avec l'année, le mois, le jour, " +"l'heure, la minute, la seconde, la microseconde et le pli (*fold* en " +"anglais) spécifiés." + +#: ../Doc/c-api/datetime.rst:111 +msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second and microsecond." 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 +msgid "" +"Return a :class:`datetime.time` object with the specified hour, minute, " +"second, microsecond and fold." +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:109 +#: ../Doc/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 " "resulting number of microseconds and seconds lie in the ranges documented " "for :class:`datetime.timedelta` objects." msgstr "" +"Renvoie un objet :class:`datetime.timedelta` représentant le nombre passé en " +"paramètre de jours, de secondes et de microsecondes. Le résultat est " +"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:116 +#: ../Doc/c-api/datetime.rst:132 msgid "" "Return a :class:`datetime.timezone` object with an unnamed fixed offset " "represented by the *offset* argument." msgstr "" +"Renvoie un objet :class:`datetime.timezone` avec un décalage anonyme fixe " +"représenté par l'argument *offset*." -#: ../Doc/c-api/datetime.rst:123 +#: ../Doc/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*." 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:129 +#: ../Doc/c-api/datetime.rst:145 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 " "not checked:" msgstr "" +"Macros pour extraire les champs des objets *date*. L'argument doit être une " +"instance de :c:data:`PyDateTime_Date`, ou une sous-classe (telle que :c:data:" +"`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et le type n'est " +"pas vérifié :" -#: ../Doc/c-api/datetime.rst:136 +#: ../Doc/c-api/datetime.rst:152 msgid "Return the year, as a positive int." -msgstr "" +msgstr "Renvoie l'année, sous forme d'entier positif." -#: ../Doc/c-api/datetime.rst:141 +#: ../Doc/c-api/datetime.rst:157 msgid "Return the month, as an int from 1 through 12." -msgstr "" +msgstr "Renvoie le mois, sous forme d'entier allant de 1 à 12." -#: ../Doc/c-api/datetime.rst:146 +#: ../Doc/c-api/datetime.rst:162 msgid "Return the day, as an int from 1 through 31." -msgstr "" +msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31." -#: ../Doc/c-api/datetime.rst:149 +#: ../Doc/c-api/datetime.rst:165 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:" 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:155 ../Doc/c-api/datetime.rst:179 +#: ../Doc/c-api/datetime.rst:171 ../Doc/c-api/datetime.rst:195 msgid "Return the hour, as an int from 0 through 23." -msgstr "" +msgstr "Renvoie l'heure, sous forme d'entier allant de 0 à 23." -#: ../Doc/c-api/datetime.rst:160 ../Doc/c-api/datetime.rst:184 +#: ../Doc/c-api/datetime.rst:176 ../Doc/c-api/datetime.rst:200 msgid "Return the minute, as an int from 0 through 59." -msgstr "" +msgstr "Renvoie la minute, sous forme d'entier allant de 0 à 59." -#: ../Doc/c-api/datetime.rst:165 ../Doc/c-api/datetime.rst:189 +#: ../Doc/c-api/datetime.rst:181 ../Doc/c-api/datetime.rst:205 msgid "Return the second, as an int from 0 through 59." -msgstr "" +msgstr "Renvoie la seconde, sous forme d'entier allant de 0 à 59." -#: ../Doc/c-api/datetime.rst:170 ../Doc/c-api/datetime.rst:194 +#: ../Doc/c-api/datetime.rst:186 ../Doc/c-api/datetime.rst:210 msgid "Return the microsecond, as an int from 0 through 999999." -msgstr "" +msgstr "Renvoie la microseconde, sous forme d'entier allant de 0 à 999999." -#: ../Doc/c-api/datetime.rst:173 +#: ../Doc/c-api/datetime.rst:189 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:" 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:197 +#: ../Doc/c-api/datetime.rst:213 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:" 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:203 +#: ../Doc/c-api/datetime.rst:219 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:210 +#: ../Doc/c-api/datetime.rst:226 msgid "Return the number of seconds, as an int from 0 through 86399." -msgstr "" +msgstr "Renvoie le nombre de secondes sous forme d'entier allant de 0 à 86399." -#: ../Doc/c-api/datetime.rst:217 +#: ../Doc/c-api/datetime.rst:233 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:222 +#: ../Doc/c-api/datetime.rst:238 msgid "Macros for the convenience of modules implementing the DB API:" -msgstr "" +msgstr "Macros de confort pour les modules implémentant l'API DB :" -#: ../Doc/c-api/datetime.rst:226 +#: ../Doc/c-api/datetime.rst:242 msgid "" "Create and return a new :class:`datetime.datetime` object given an argument " "tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`." 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:232 +#: ../Doc/c-api/datetime.rst:248 msgid "" "Create and return a new :class:`datetime.date` object given an argument " "tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`." msgstr "" +"Crée et renvoie un nouvel objet :class:`datetime.date` à partir d'un n-uplet " +"qui peut être passé à :meth:`datetime.date.fromtimestamp()`." diff --git a/c-api/dict.po b/c-api/dict.po index daf4e249b..c50d1ef45 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2018-07-03 11:36+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -100,20 +100,34 @@ msgid "" "if the key *key* is not present, but *without* setting an exception." msgstr "" -#: ../Doc/c-api/dict.rst:101 +#: ../Doc/c-api/dict.rst:98 +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 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." msgstr "" -#: ../Doc/c-api/dict.rst:109 +#: ../Doc/c-api/dict.rst:113 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\\*`." msgstr "" -#: ../Doc/c-api/dict.rst:115 +#: ../Doc/c-api/dict.rst:116 +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 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 " @@ -123,29 +137,29 @@ msgid "" "the insertion." msgstr "" -#: ../Doc/c-api/dict.rst:125 +#: ../Doc/c-api/dict.rst:134 msgid "" "Return a :c:type:`PyListObject` containing all the items from the dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:130 +#: ../Doc/c-api/dict.rst:139 msgid "" "Return a :c:type:`PyListObject` containing all the keys from the dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:135 +#: ../Doc/c-api/dict.rst:144 msgid "" "Return a :c:type:`PyListObject` containing all the values from the " "dictionary *p*." msgstr "" -#: ../Doc/c-api/dict.rst:143 +#: ../Doc/c-api/dict.rst:152 msgid "" "Return the number of items in the dictionary. This is equivalent to " "``len(p)`` on a dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:149 +#: ../Doc/c-api/dict.rst:158 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 " @@ -159,18 +173,18 @@ msgid "" "structure is sparse, the offsets are not consecutive." msgstr "" -#: ../Doc/c-api/dict.rst:160 +#: ../Doc/c-api/dict.rst:169 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/c-api/dict.rst:170 +#: ../Doc/c-api/dict.rst:179 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:195 +#: ../Doc/c-api/dict.rst:204 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` " @@ -180,7 +194,7 @@ msgid "" "or ``-1`` if an exception was raised." msgstr "" -#: ../Doc/c-api/dict.rst:205 +#: ../Doc/c-api/dict.rst:214 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 " @@ -189,7 +203,7 @@ msgid "" "exception was raised." msgstr "" -#: ../Doc/c-api/dict.rst:214 +#: ../Doc/c-api/dict.rst:223 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, " @@ -198,6 +212,6 @@ msgid "" "if an exception was raised. Equivalent Python (except for the return value)::" msgstr "" -#: ../Doc/c-api/dict.rst:229 +#: ../Doc/c-api/dict.rst:238 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 262f76451..4ea59db85 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-01 13:21+0200\n" -"PO-Revision-Date: 2018-02-15 00:32+0100\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-10-04 12:24+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -75,22 +75,29 @@ msgstr "" #: ../Doc/c-api/exceptions.rst:55 msgid "" "Print a standard traceback to ``sys.stderr`` and clear the error indicator. " -"Call this function only when the error indicator is set. (Otherwise it will " -"cause a fatal error!)" +"**Unless** the error is a ``SystemExit``. In that case the no traceback is " +"printed and Python process will exit with the error code specified by the " +"``SystemExit`` instance." msgstr "" -#: ../Doc/c-api/exceptions.rst:59 +#: ../Doc/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 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:66 +#: ../Doc/c-api/exceptions.rst:70 msgid "Alias for ``PyErr_PrintEx(1)``." msgstr "" -#: ../Doc/c-api/exceptions.rst:71 +#: ../Doc/c-api/exceptions.rst:75 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 " @@ -98,25 +105,29 @@ msgid "" "an :meth:`__del__` method." msgstr "" -#: ../Doc/c-api/exceptions.rst:76 +#: ../Doc/c-api/exceptions.rst:80 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:82 +#: ../Doc/c-api/exceptions.rst:84 +msgid "An exception must be set when calling this function." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:88 msgid "Raising exceptions" msgstr "Lever des exceptions" -#: ../Doc/c-api/exceptions.rst:84 +#: ../Doc/c-api/exceptions.rst:90 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." msgstr "" -#: ../Doc/c-api/exceptions.rst:91 +#: ../Doc/c-api/exceptions.rst:97 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, " @@ -125,13 +136,13 @@ msgid "" "``'utf-8``'." msgstr "" -#: ../Doc/c-api/exceptions.rst:99 +#: ../Doc/c-api/exceptions.rst:105 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:105 +#: ../Doc/c-api/exceptions.rst:111 msgid "" "This function sets the error indicator and returns *NULL*. *exception* " "should be a Python exception class. The *format* and subsequent parameters " @@ -139,31 +150,31 @@ msgid "" "c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string." msgstr "" -#: ../Doc/c-api/exceptions.rst:114 +#: ../Doc/c-api/exceptions.rst:120 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:122 +#: ../Doc/c-api/exceptions.rst:128 msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." msgstr "" -#: ../Doc/c-api/exceptions.rst:127 +#: ../Doc/c-api/exceptions.rst:133 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:134 +#: ../Doc/c-api/exceptions.rst:140 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." msgstr "" -#: ../Doc/c-api/exceptions.rst:143 +#: ../Doc/c-api/exceptions.rst:149 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 " @@ -177,7 +188,7 @@ msgid "" "``return PyErr_SetFromErrno(type);`` when the system call returns an error." msgstr "" -#: ../Doc/c-api/exceptions.rst:157 +#: ../Doc/c-api/exceptions.rst:163 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* " @@ -185,21 +196,21 @@ msgid "" "to define the :attr:`filename` attribute of the exception instance." msgstr "" -#: ../Doc/c-api/exceptions.rst:166 +#: ../Doc/c-api/exceptions.rst:172 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:175 +#: ../Doc/c-api/exceptions.rst:181 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:182 +#: ../Doc/c-api/exceptions.rst:188 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:" @@ -209,42 +220,47 @@ 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*. Availability: Windows." +"returns *NULL*." msgstr "" -#: ../Doc/c-api/exceptions.rst:194 +#: ../Doc/c-api/exceptions.rst:197 ../Doc/c-api/exceptions.rst:205 +#: ../Doc/c-api/exceptions.rst:214 ../Doc/c-api/exceptions.rst:222 +#: ../Doc/c-api/exceptions.rst:231 ../Doc/c-api/exceptions.rst:240 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/c-api/exceptions.rst:202 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " -"specifying the exception type to be raised. Availability: Windows." +"specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:200 +#: ../Doc/c-api/exceptions.rst:210 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`). Availability: Windows." +"encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:207 +#: ../Doc/c-api/exceptions.rst:219 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, with an " -"additional parameter specifying the exception type to be raised. " -"Availability: Windows." +"additional parameter specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:214 +#: ../Doc/c-api/exceptions.rst:227 msgid "" "Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " -"accepts a second filename object. Availability: Windows." +"accepts a second filename object." msgstr "" -#: ../Doc/c-api/exceptions.rst:223 +#: ../Doc/c-api/exceptions.rst:237 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " -"parameter specifying the exception type to be raised. Availability: Windows." +"parameter specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:229 +#: ../Doc/c-api/exceptions.rst:245 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 " @@ -252,7 +268,7 @@ msgid "" "``path`` attributes." msgstr "" -#: ../Doc/c-api/exceptions.rst:239 +#: ../Doc/c-api/exceptions.rst:255 msgid "" "Set file, line, and offset information for the current exception. If the " "current exception is not a :exc:`SyntaxError`, then it sets additional " @@ -260,19 +276,19 @@ msgid "" "is a :exc:`SyntaxError`." msgstr "" -#: ../Doc/c-api/exceptions.rst:249 +#: ../Doc/c-api/exceptions.rst:265 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:257 +#: ../Doc/c-api/exceptions.rst:273 msgid "" "Like :c:func:`PyErr_SyntaxLocationEx`, but the col_offset parameter is " "omitted." msgstr "" -#: ../Doc/c-api/exceptions.rst:263 +#: ../Doc/c-api/exceptions.rst:279 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " "where *message* indicates that an internal operation (e.g. a Python/C API " @@ -280,11 +296,11 @@ msgid "" "use." msgstr "" -#: ../Doc/c-api/exceptions.rst:270 +#: ../Doc/c-api/exceptions.rst:286 msgid "Issuing warnings" msgstr "" -#: ../Doc/c-api/exceptions.rst:272 +#: ../Doc/c-api/exceptions.rst:288 msgid "" "Use these functions to issue warnings from C code. They mirror similar " "functions exported by the Python :mod:`warnings` module. They normally " @@ -300,7 +316,7 @@ msgid "" "return an error value)." msgstr "" -#: ../Doc/c-api/exceptions.rst:287 +#: ../Doc/c-api/exceptions.rst:303 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. " @@ -310,7 +326,7 @@ msgid "" "`PyErr_WarnEx`, 2 is the function above that, and so forth." msgstr "" -#: ../Doc/c-api/exceptions.rst:294 +#: ../Doc/c-api/exceptions.rst:310 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 " @@ -319,20 +335,20 @@ msgid "" "enumerated at :ref:`standardwarningcategories`." msgstr "" -#: ../Doc/c-api/exceptions.rst:300 +#: ../Doc/c-api/exceptions.rst:316 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:306 +#: ../Doc/c-api/exceptions.rst:322 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:314 +#: ../Doc/c-api/exceptions.rst:330 msgid "" "Issue a warning message with explicit control over all warning attributes. " "This is a straightforward wrapper around the Python function :func:`warnings." @@ -340,31 +356,31 @@ msgid "" "arguments may be set to *NULL* to get the default effect described there." msgstr "" -#: ../Doc/c-api/exceptions.rst:325 +#: ../Doc/c-api/exceptions.rst:341 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:332 +#: ../Doc/c-api/exceptions.rst:348 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:341 +#: ../Doc/c-api/exceptions.rst:357 msgid "" "Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:" "`ResourceWarning` and pass *source* to :func:`warnings.WarningMessage`." msgstr "" -#: ../Doc/c-api/exceptions.rst:348 +#: ../Doc/c-api/exceptions.rst:364 msgid "Querying the error indicator" msgstr "" -#: ../Doc/c-api/exceptions.rst:352 +#: ../Doc/c-api/exceptions.rst:368 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" @@ -373,7 +389,7 @@ msgid "" "func:`Py_DECREF` it." msgstr "" -#: ../Doc/c-api/exceptions.rst:360 +#: ../Doc/c-api/exceptions.rst:376 msgid "" "Do not compare the return value to a specific exception; use :c:func:" "`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily " @@ -381,14 +397,14 @@ msgid "" "of a class exception, or it may be a subclass of the expected exception.)" msgstr "" -#: ../Doc/c-api/exceptions.rst:368 +#: ../Doc/c-api/exceptions.rst:384 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:375 +#: ../Doc/c-api/exceptions.rst:391 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 " @@ -396,7 +412,7 @@ msgid "" "tuple (and recursively in subtuples) are searched for a match." msgstr "" -#: ../Doc/c-api/exceptions.rst:383 +#: ../Doc/c-api/exceptions.rst:399 msgid "" "Retrieve the error indicator into three variables whose addresses are " "passed. If the error indicator is not set, set all three variables to " @@ -405,14 +421,14 @@ msgid "" "the type object is not." msgstr "" -#: ../Doc/c-api/exceptions.rst:390 +#: ../Doc/c-api/exceptions.rst:406 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:405 +#: ../Doc/c-api/exceptions.rst:421 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 " @@ -425,14 +441,14 @@ msgid "" "function. I warned you.)" msgstr "" -#: ../Doc/c-api/exceptions.rst:417 +#: ../Doc/c-api/exceptions.rst:433 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:424 +#: ../Doc/c-api/exceptions.rst:440 msgid "" "Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " "below can be \"unnormalized\", meaning that ``*exc`` is a class object but " @@ -442,14 +458,14 @@ msgid "" "improve performance." msgstr "" -#: ../Doc/c-api/exceptions.rst:432 +#: ../Doc/c-api/exceptions.rst:448 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:443 +#: ../Doc/c-api/exceptions.rst:459 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 " @@ -457,7 +473,7 @@ msgid "" "may be *NULL*. Does not modify the exception info state." msgstr "" -#: ../Doc/c-api/exceptions.rst:450 +#: ../Doc/c-api/exceptions.rst:466 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 " @@ -465,7 +481,7 @@ msgid "" "exception state." msgstr "" -#: ../Doc/c-api/exceptions.rst:460 +#: ../Doc/c-api/exceptions.rst:476 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 " @@ -474,7 +490,7 @@ msgid "" "about the three arguments, see :c:func:`PyErr_Restore`." msgstr "" -#: ../Doc/c-api/exceptions.rst:468 +#: ../Doc/c-api/exceptions.rst:484 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 " @@ -482,11 +498,11 @@ msgid "" "state." msgstr "" -#: ../Doc/c-api/exceptions.rst:477 +#: ../Doc/c-api/exceptions.rst:493 msgid "Signal Handling" -msgstr "" +msgstr "Traitement des signaux" -#: ../Doc/c-api/exceptions.rst:487 +#: ../Doc/c-api/exceptions.rst:503 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 " @@ -498,22 +514,27 @@ msgid "" "may not be cleared if it was previously set." msgstr "" -#: ../Doc/c-api/exceptions.rst:503 +#: ../Doc/c-api/exceptions.rst:519 msgid "" -"This function simulates the effect of a :const:`SIGINT` signal arriving --- " -"the next time :c:func:`PyErr_CheckSignals` is called, :exc:" -"`KeyboardInterrupt` will be raised. It may be called without holding the " -"interpreter lock." +"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:513 +#: ../Doc/c-api/exceptions.rst:523 +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:529 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:517 +#: ../Doc/c-api/exceptions.rst:533 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 " @@ -521,15 +542,15 @@ msgid "" "be called from the main thread." msgstr "" -#: ../Doc/c-api/exceptions.rst:522 +#: ../Doc/c-api/exceptions.rst:538 msgid "On Windows, the function now also supports socket handles." msgstr "" -#: ../Doc/c-api/exceptions.rst:527 +#: ../Doc/c-api/exceptions.rst:543 msgid "Exception Classes" msgstr "" -#: ../Doc/c-api/exceptions.rst:531 +#: ../Doc/c-api/exceptions.rst:547 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 " @@ -538,7 +559,7 @@ msgid "" "as :c:data:`PyExc_Exception`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:537 +#: ../Doc/c-api/exceptions.rst:553 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 " @@ -548,31 +569,31 @@ msgid "" "variables and methods." msgstr "" -#: ../Doc/c-api/exceptions.rst:546 +#: ../Doc/c-api/exceptions.rst:562 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." msgstr "" -#: ../Doc/c-api/exceptions.rst:554 +#: ../Doc/c-api/exceptions.rst:570 msgid "Exception Objects" msgstr "Objets exception" -#: ../Doc/c-api/exceptions.rst:558 +#: ../Doc/c-api/exceptions.rst:574 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*." msgstr "" -#: ../Doc/c-api/exceptions.rst:565 +#: ../Doc/c-api/exceptions.rst:581 msgid "" "Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " "clear it." msgstr "" -#: ../Doc/c-api/exceptions.rst:571 +#: ../Doc/c-api/exceptions.rst:587 msgid "" "Return the context (another exception instance during whose handling *ex* " "was raised) associated with the exception as a new reference, as accessible " @@ -580,111 +601,111 @@ msgid "" "this returns *NULL*." msgstr "" -#: ../Doc/c-api/exceptions.rst:579 +#: ../Doc/c-api/exceptions.rst:595 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 " "instance. This steals a reference to *ctx*." msgstr "" -#: ../Doc/c-api/exceptions.rst:586 +#: ../Doc/c-api/exceptions.rst:602 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:593 +#: ../Doc/c-api/exceptions.rst:609 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*." msgstr "" -#: ../Doc/c-api/exceptions.rst:597 +#: ../Doc/c-api/exceptions.rst:613 msgid "" ":attr:`__suppress_context__` is implicitly set to ``True`` by this function." msgstr "" -#: ../Doc/c-api/exceptions.rst:603 +#: ../Doc/c-api/exceptions.rst:619 msgid "Unicode Exception Objects" -msgstr "Objets exception unicode" +msgstr "Objets exception Unicode" -#: ../Doc/c-api/exceptions.rst:605 +#: ../Doc/c-api/exceptions.rst:621 msgid "" "The following functions are used to create and modify Unicode exceptions " "from C." msgstr "" -#: ../Doc/c-api/exceptions.rst:609 +#: ../Doc/c-api/exceptions.rst:625 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:615 +#: ../Doc/c-api/exceptions.rst:631 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:621 +#: ../Doc/c-api/exceptions.rst:637 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:627 +#: ../Doc/c-api/exceptions.rst:643 msgid "Return the *encoding* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:633 +#: ../Doc/c-api/exceptions.rst:649 msgid "Return the *object* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:639 +#: ../Doc/c-api/exceptions.rst:655 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." msgstr "" -#: ../Doc/c-api/exceptions.rst:647 +#: ../Doc/c-api/exceptions.rst:663 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:654 +#: ../Doc/c-api/exceptions.rst:670 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 " "failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:662 +#: ../Doc/c-api/exceptions.rst:678 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:669 +#: ../Doc/c-api/exceptions.rst:685 msgid "Return the *reason* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:675 +#: ../Doc/c-api/exceptions.rst:691 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:680 +#: ../Doc/c-api/exceptions.rst:696 msgid "Recursion Control" msgstr "Contrôle de la récursion" -#: ../Doc/c-api/exceptions.rst:682 +#: ../Doc/c-api/exceptions.rst:698 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 " @@ -692,38 +713,38 @@ msgid "" "recursion depth automatically)." msgstr "" -#: ../Doc/c-api/exceptions.rst:689 +#: ../Doc/c-api/exceptions.rst:705 msgid "Marks a point where a recursive C-level call is about to be performed." msgstr "" -#: ../Doc/c-api/exceptions.rst:691 +#: ../Doc/c-api/exceptions.rst:707 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:695 +#: ../Doc/c-api/exceptions.rst:711 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:699 +#: ../Doc/c-api/exceptions.rst:715 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:705 +#: ../Doc/c-api/exceptions.rst:721 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:708 +#: ../Doc/c-api/exceptions.rst:724 msgid "" "Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " "requires special recursion handling. In addition to protecting the stack, :" @@ -732,13 +753,13 @@ msgid "" "Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." msgstr "" -#: ../Doc/c-api/exceptions.rst:716 +#: ../Doc/c-api/exceptions.rst:732 msgid "" "Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " "implementation to detect cycles." msgstr "" -#: ../Doc/c-api/exceptions.rst:719 +#: ../Doc/c-api/exceptions.rst:735 msgid "" "If the object has already been processed, the function returns a positive " "integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -746,30 +767,30 @@ msgid "" "`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." msgstr "" -#: ../Doc/c-api/exceptions.rst:725 +#: ../Doc/c-api/exceptions.rst:741 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:729 +#: ../Doc/c-api/exceptions.rst:745 msgid "" "Otherwise, the function returns zero and the :c:member:`~PyTypeObject." "tp_repr` implementation can continue normally." msgstr "" -#: ../Doc/c-api/exceptions.rst:734 +#: ../Doc/c-api/exceptions.rst:750 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:741 +#: ../Doc/c-api/exceptions.rst:757 msgid "Standard Exceptions" msgstr "Exceptions standards" -#: ../Doc/c-api/exceptions.rst:743 +#: ../Doc/c-api/exceptions.rst:759 msgid "" "All standard Python exceptions are available as global variables whose names " "are ``PyExc_`` followed by the Python exception name. These have the type :" @@ -777,455 +798,455 @@ msgid "" "are all the variables:" msgstr "" -#: ../Doc/c-api/exceptions.rst:804 ../Doc/c-api/exceptions.rst:937 -#: ../Doc/c-api/exceptions.rst:985 +#: ../Doc/c-api/exceptions.rst:820 ../Doc/c-api/exceptions.rst:953 +#: ../Doc/c-api/exceptions.rst:1001 msgid "C Name" msgstr "Nom C" -#: ../Doc/c-api/exceptions.rst:804 ../Doc/c-api/exceptions.rst:985 +#: ../Doc/c-api/exceptions.rst:820 ../Doc/c-api/exceptions.rst:1001 msgid "Python Name" msgstr "Nom Python" -#: ../Doc/c-api/exceptions.rst:804 ../Doc/c-api/exceptions.rst:937 -#: ../Doc/c-api/exceptions.rst:985 +#: ../Doc/c-api/exceptions.rst:820 ../Doc/c-api/exceptions.rst:953 +#: ../Doc/c-api/exceptions.rst:1001 msgid "Notes" msgstr "Notes" -#: ../Doc/c-api/exceptions.rst:806 +#: ../Doc/c-api/exceptions.rst:822 msgid ":c:data:`PyExc_BaseException`" msgstr ":c:data:`PyExc_BaseException`" -#: ../Doc/c-api/exceptions.rst:806 +#: ../Doc/c-api/exceptions.rst:822 msgid ":exc:`BaseException`" msgstr ":exc:`BaseException`" -#: ../Doc/c-api/exceptions.rst:806 ../Doc/c-api/exceptions.rst:808 -#: ../Doc/c-api/exceptions.rst:810 ../Doc/c-api/exceptions.rst:856 -#: ../Doc/c-api/exceptions.rst:868 ../Doc/c-api/exceptions.rst:987 +#: ../Doc/c-api/exceptions.rst:822 ../Doc/c-api/exceptions.rst:824 +#: ../Doc/c-api/exceptions.rst:826 ../Doc/c-api/exceptions.rst:872 +#: ../Doc/c-api/exceptions.rst:884 ../Doc/c-api/exceptions.rst:1003 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/c-api/exceptions.rst:808 +#: ../Doc/c-api/exceptions.rst:824 msgid ":c:data:`PyExc_Exception`" msgstr ":c:data:`PyExc_Exception`" -#: ../Doc/c-api/exceptions.rst:808 +#: ../Doc/c-api/exceptions.rst:824 msgid ":exc:`Exception`" msgstr ":exc:`Exception`" -#: ../Doc/c-api/exceptions.rst:810 +#: ../Doc/c-api/exceptions.rst:826 msgid ":c:data:`PyExc_ArithmeticError`" msgstr ":c:data:`PyExc_ArithmeticError`" -#: ../Doc/c-api/exceptions.rst:810 +#: ../Doc/c-api/exceptions.rst:826 msgid ":exc:`ArithmeticError`" msgstr ":exc:`ArithmeticError`" -#: ../Doc/c-api/exceptions.rst:812 +#: ../Doc/c-api/exceptions.rst:828 msgid ":c:data:`PyExc_AssertionError`" msgstr ":c:data:`PyExc_AssertionError`" -#: ../Doc/c-api/exceptions.rst:812 +#: ../Doc/c-api/exceptions.rst:828 msgid ":exc:`AssertionError`" msgstr ":exc:`AssertionError`" -#: ../Doc/c-api/exceptions.rst:814 +#: ../Doc/c-api/exceptions.rst:830 msgid ":c:data:`PyExc_AttributeError`" msgstr ":c:data:`PyExc_AttributeError`" -#: ../Doc/c-api/exceptions.rst:814 +#: ../Doc/c-api/exceptions.rst:830 msgid ":exc:`AttributeError`" msgstr ":exc:`AttributeError`" -#: ../Doc/c-api/exceptions.rst:816 +#: ../Doc/c-api/exceptions.rst:832 msgid ":c:data:`PyExc_BlockingIOError`" msgstr ":c:data:`PyExc_BlockingIOError`" -#: ../Doc/c-api/exceptions.rst:816 +#: ../Doc/c-api/exceptions.rst:832 msgid ":exc:`BlockingIOError`" msgstr ":exc:`BlockingIOError`" -#: ../Doc/c-api/exceptions.rst:818 +#: ../Doc/c-api/exceptions.rst:834 msgid ":c:data:`PyExc_BrokenPipeError`" msgstr ":c:data:`PyExc_BrokenPipeError`" -#: ../Doc/c-api/exceptions.rst:818 +#: ../Doc/c-api/exceptions.rst:834 msgid ":exc:`BrokenPipeError`" msgstr ":exc:`BrokenPipeError`" -#: ../Doc/c-api/exceptions.rst:820 +#: ../Doc/c-api/exceptions.rst:836 msgid ":c:data:`PyExc_BufferError`" msgstr ":c:data:`PyExc_BufferError`" -#: ../Doc/c-api/exceptions.rst:820 +#: ../Doc/c-api/exceptions.rst:836 msgid ":exc:`BufferError`" msgstr ":exc:`BufferError`" -#: ../Doc/c-api/exceptions.rst:822 +#: ../Doc/c-api/exceptions.rst:838 msgid ":c:data:`PyExc_ChildProcessError`" msgstr ":c:data:`PyExc_ChildProcessError`" -#: ../Doc/c-api/exceptions.rst:822 +#: ../Doc/c-api/exceptions.rst:838 msgid ":exc:`ChildProcessError`" msgstr ":exc:`ChildProcessError`" -#: ../Doc/c-api/exceptions.rst:824 +#: ../Doc/c-api/exceptions.rst:840 msgid ":c:data:`PyExc_ConnectionAbortedError`" msgstr ":c:data:`PyExc_ConnectionAbortedError`" -#: ../Doc/c-api/exceptions.rst:824 +#: ../Doc/c-api/exceptions.rst:840 msgid ":exc:`ConnectionAbortedError`" msgstr ":exc:`ConnectionAbortedError`" -#: ../Doc/c-api/exceptions.rst:826 +#: ../Doc/c-api/exceptions.rst:842 msgid ":c:data:`PyExc_ConnectionError`" msgstr ":c:data:`PyExc_ConnectionError`" -#: ../Doc/c-api/exceptions.rst:826 +#: ../Doc/c-api/exceptions.rst:842 msgid ":exc:`ConnectionError`" msgstr ":exc:`ConnectionError`" -#: ../Doc/c-api/exceptions.rst:828 +#: ../Doc/c-api/exceptions.rst:844 msgid ":c:data:`PyExc_ConnectionRefusedError`" msgstr ":c:data:`PyExc_ConnectionRefusedError`" -#: ../Doc/c-api/exceptions.rst:828 +#: ../Doc/c-api/exceptions.rst:844 msgid ":exc:`ConnectionRefusedError`" msgstr ":exc:`ConnectionRefusedError`" -#: ../Doc/c-api/exceptions.rst:830 +#: ../Doc/c-api/exceptions.rst:846 msgid ":c:data:`PyExc_ConnectionResetError`" msgstr ":c:data:`PyExc_ConnectionResetError`" -#: ../Doc/c-api/exceptions.rst:830 +#: ../Doc/c-api/exceptions.rst:846 msgid ":exc:`ConnectionResetError`" msgstr ":exc:`ConnectionResetError`" -#: ../Doc/c-api/exceptions.rst:832 +#: ../Doc/c-api/exceptions.rst:848 msgid ":c:data:`PyExc_EOFError`" msgstr ":c:data:`PyExc_EOFError`" -#: ../Doc/c-api/exceptions.rst:832 +#: ../Doc/c-api/exceptions.rst:848 msgid ":exc:`EOFError`" msgstr ":exc:`EOFError`" -#: ../Doc/c-api/exceptions.rst:834 +#: ../Doc/c-api/exceptions.rst:850 msgid ":c:data:`PyExc_FileExistsError`" msgstr ":c:data:`PyExc_FileExistsError`" -#: ../Doc/c-api/exceptions.rst:834 +#: ../Doc/c-api/exceptions.rst:850 msgid ":exc:`FileExistsError`" msgstr ":exc:`FileExistsError`" -#: ../Doc/c-api/exceptions.rst:836 +#: ../Doc/c-api/exceptions.rst:852 msgid ":c:data:`PyExc_FileNotFoundError`" msgstr ":c:data:`PyExc_FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:836 +#: ../Doc/c-api/exceptions.rst:852 msgid ":exc:`FileNotFoundError`" msgstr ":exc:`FileNotFoundError`" -#: ../Doc/c-api/exceptions.rst:838 +#: ../Doc/c-api/exceptions.rst:854 msgid ":c:data:`PyExc_FloatingPointError`" msgstr ":c:data:`PyExc_FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:838 +#: ../Doc/c-api/exceptions.rst:854 msgid ":exc:`FloatingPointError`" msgstr ":exc:`FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:840 +#: ../Doc/c-api/exceptions.rst:856 msgid ":c:data:`PyExc_GeneratorExit`" msgstr ":c:data:`PyExc_GeneratorExit`" -#: ../Doc/c-api/exceptions.rst:840 +#: ../Doc/c-api/exceptions.rst:856 msgid ":exc:`GeneratorExit`" msgstr ":exc:`GeneratorExit`" -#: ../Doc/c-api/exceptions.rst:842 +#: ../Doc/c-api/exceptions.rst:858 msgid ":c:data:`PyExc_ImportError`" msgstr ":c:data:`PyExc_ImportError`" -#: ../Doc/c-api/exceptions.rst:842 +#: ../Doc/c-api/exceptions.rst:858 msgid ":exc:`ImportError`" msgstr ":exc:`ImportError`" -#: ../Doc/c-api/exceptions.rst:844 +#: ../Doc/c-api/exceptions.rst:860 msgid ":c:data:`PyExc_IndentationError`" msgstr ":c:data:`PyExc_IndentationError`" -#: ../Doc/c-api/exceptions.rst:844 +#: ../Doc/c-api/exceptions.rst:860 msgid ":exc:`IndentationError`" msgstr ":exc:`IndentationError`" -#: ../Doc/c-api/exceptions.rst:846 +#: ../Doc/c-api/exceptions.rst:862 msgid ":c:data:`PyExc_IndexError`" msgstr ":c:data:`PyExc_IndexError`" -#: ../Doc/c-api/exceptions.rst:846 +#: ../Doc/c-api/exceptions.rst:862 msgid ":exc:`IndexError`" msgstr ":exc:`IndexError`" -#: ../Doc/c-api/exceptions.rst:848 +#: ../Doc/c-api/exceptions.rst:864 msgid ":c:data:`PyExc_InterruptedError`" msgstr ":c:data:`PyExc_InterruptedError`" -#: ../Doc/c-api/exceptions.rst:848 +#: ../Doc/c-api/exceptions.rst:864 msgid ":exc:`InterruptedError`" msgstr ":exc:`InterruptedError`" -#: ../Doc/c-api/exceptions.rst:850 +#: ../Doc/c-api/exceptions.rst:866 msgid ":c:data:`PyExc_IsADirectoryError`" msgstr ":c:data:`PyExc_IsADirectoryError`" -#: ../Doc/c-api/exceptions.rst:850 +#: ../Doc/c-api/exceptions.rst:866 msgid ":exc:`IsADirectoryError`" msgstr ":exc:`IsADirectoryError`" -#: ../Doc/c-api/exceptions.rst:852 +#: ../Doc/c-api/exceptions.rst:868 msgid ":c:data:`PyExc_KeyError`" msgstr ":c:data:`PyExc_KeyError`" -#: ../Doc/c-api/exceptions.rst:852 +#: ../Doc/c-api/exceptions.rst:868 msgid ":exc:`KeyError`" msgstr ":exc:`KeyError`" -#: ../Doc/c-api/exceptions.rst:854 +#: ../Doc/c-api/exceptions.rst:870 msgid ":c:data:`PyExc_KeyboardInterrupt`" msgstr ":c:data:`PyExc_KeyboardInterrupt`" -#: ../Doc/c-api/exceptions.rst:854 +#: ../Doc/c-api/exceptions.rst:870 msgid ":exc:`KeyboardInterrupt`" msgstr ":exc:`KeyboardInterrupt`" -#: ../Doc/c-api/exceptions.rst:856 +#: ../Doc/c-api/exceptions.rst:872 msgid ":c:data:`PyExc_LookupError`" msgstr ":c:data:`PyExc_LookupError`" -#: ../Doc/c-api/exceptions.rst:856 +#: ../Doc/c-api/exceptions.rst:872 msgid ":exc:`LookupError`" msgstr ":exc:`LookupError`" -#: ../Doc/c-api/exceptions.rst:858 +#: ../Doc/c-api/exceptions.rst:874 msgid ":c:data:`PyExc_MemoryError`" msgstr ":c:data:`PyExc_MemoryError`" -#: ../Doc/c-api/exceptions.rst:858 +#: ../Doc/c-api/exceptions.rst:874 msgid ":exc:`MemoryError`" msgstr ":exc:`MemoryError`" -#: ../Doc/c-api/exceptions.rst:860 +#: ../Doc/c-api/exceptions.rst:876 msgid ":c:data:`PyExc_ModuleNotFoundError`" msgstr "" -#: ../Doc/c-api/exceptions.rst:860 +#: ../Doc/c-api/exceptions.rst:876 msgid ":exc:`ModuleNotFoundError`" msgstr "" -#: ../Doc/c-api/exceptions.rst:862 +#: ../Doc/c-api/exceptions.rst:878 msgid ":c:data:`PyExc_NameError`" msgstr ":c:data:`PyExc_NameError`" -#: ../Doc/c-api/exceptions.rst:862 +#: ../Doc/c-api/exceptions.rst:878 msgid ":exc:`NameError`" msgstr ":exc:`NameError`" -#: ../Doc/c-api/exceptions.rst:864 +#: ../Doc/c-api/exceptions.rst:880 msgid ":c:data:`PyExc_NotADirectoryError`" msgstr ":c:data:`PyExc_NotADirectoryError`" -#: ../Doc/c-api/exceptions.rst:864 +#: ../Doc/c-api/exceptions.rst:880 msgid ":exc:`NotADirectoryError`" msgstr ":exc:`NotADirectoryError`" -#: ../Doc/c-api/exceptions.rst:866 +#: ../Doc/c-api/exceptions.rst:882 msgid ":c:data:`PyExc_NotImplementedError`" msgstr ":c:data:`PyExc_NotImplementedError`" -#: ../Doc/c-api/exceptions.rst:866 +#: ../Doc/c-api/exceptions.rst:882 msgid ":exc:`NotImplementedError`" msgstr ":exc:`NotImplementedError`" -#: ../Doc/c-api/exceptions.rst:868 +#: ../Doc/c-api/exceptions.rst:884 msgid ":c:data:`PyExc_OSError`" msgstr ":c:data:`PyExc_OSError`" -#: ../Doc/c-api/exceptions.rst:868 +#: ../Doc/c-api/exceptions.rst:884 msgid ":exc:`OSError`" msgstr ":exc:`OSError`" -#: ../Doc/c-api/exceptions.rst:870 +#: ../Doc/c-api/exceptions.rst:886 msgid ":c:data:`PyExc_OverflowError`" msgstr ":c:data:`PyExc_OverflowError`" -#: ../Doc/c-api/exceptions.rst:870 +#: ../Doc/c-api/exceptions.rst:886 msgid ":exc:`OverflowError`" msgstr ":exc:`OverflowError`" -#: ../Doc/c-api/exceptions.rst:872 +#: ../Doc/c-api/exceptions.rst:888 msgid ":c:data:`PyExc_PermissionError`" msgstr ":c:data:`PyExc_PermissionError`" -#: ../Doc/c-api/exceptions.rst:872 +#: ../Doc/c-api/exceptions.rst:888 msgid ":exc:`PermissionError`" msgstr ":exc:`PermissionError`" -#: ../Doc/c-api/exceptions.rst:874 +#: ../Doc/c-api/exceptions.rst:890 msgid ":c:data:`PyExc_ProcessLookupError`" msgstr ":c:data:`PyExc_ProcessLookupError`" -#: ../Doc/c-api/exceptions.rst:874 +#: ../Doc/c-api/exceptions.rst:890 msgid ":exc:`ProcessLookupError`" msgstr ":exc:`ProcessLookupError`" -#: ../Doc/c-api/exceptions.rst:876 +#: ../Doc/c-api/exceptions.rst:892 msgid ":c:data:`PyExc_RecursionError`" msgstr ":c:data:`PyExc_ReferenceError`" -#: ../Doc/c-api/exceptions.rst:876 +#: ../Doc/c-api/exceptions.rst:892 msgid ":exc:`RecursionError`" msgstr "" -#: ../Doc/c-api/exceptions.rst:878 +#: ../Doc/c-api/exceptions.rst:894 msgid ":c:data:`PyExc_ReferenceError`" msgstr ":c:data:`PyExc_ReferenceError`" -#: ../Doc/c-api/exceptions.rst:878 +#: ../Doc/c-api/exceptions.rst:894 msgid ":exc:`ReferenceError`" msgstr ":exc:`ReferenceError`" -#: ../Doc/c-api/exceptions.rst:878 +#: ../Doc/c-api/exceptions.rst:894 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/c-api/exceptions.rst:880 +#: ../Doc/c-api/exceptions.rst:896 msgid ":c:data:`PyExc_RuntimeError`" msgstr ":c:data:`PyExc_RuntimeError`" -#: ../Doc/c-api/exceptions.rst:880 +#: ../Doc/c-api/exceptions.rst:896 msgid ":exc:`RuntimeError`" msgstr ":exc:`RuntimeError`" -#: ../Doc/c-api/exceptions.rst:882 +#: ../Doc/c-api/exceptions.rst:898 msgid ":c:data:`PyExc_StopAsyncIteration`" msgstr ":c:data:`PyExc_StopAsyncIteration`" -#: ../Doc/c-api/exceptions.rst:882 +#: ../Doc/c-api/exceptions.rst:898 msgid ":exc:`StopAsyncIteration`" msgstr ":exc:`StopAsyncIteration`" -#: ../Doc/c-api/exceptions.rst:884 +#: ../Doc/c-api/exceptions.rst:900 msgid ":c:data:`PyExc_StopIteration`" msgstr ":c:data:`PyExc_StopIteration`" -#: ../Doc/c-api/exceptions.rst:884 +#: ../Doc/c-api/exceptions.rst:900 msgid ":exc:`StopIteration`" msgstr ":exc:`StopIteration`" -#: ../Doc/c-api/exceptions.rst:886 +#: ../Doc/c-api/exceptions.rst:902 msgid ":c:data:`PyExc_SyntaxError`" msgstr ":c:data:`PyExc_SyntaxError`" -#: ../Doc/c-api/exceptions.rst:886 +#: ../Doc/c-api/exceptions.rst:902 msgid ":exc:`SyntaxError`" msgstr ":exc:`SyntaxError`" -#: ../Doc/c-api/exceptions.rst:888 +#: ../Doc/c-api/exceptions.rst:904 msgid ":c:data:`PyExc_SystemError`" msgstr ":c:data:`PyExc_SystemError`" -#: ../Doc/c-api/exceptions.rst:888 +#: ../Doc/c-api/exceptions.rst:904 msgid ":exc:`SystemError`" msgstr ":exc:`SystemError`" -#: ../Doc/c-api/exceptions.rst:890 +#: ../Doc/c-api/exceptions.rst:906 msgid ":c:data:`PyExc_SystemExit`" msgstr ":c:data:`PyExc_SystemExit`" -#: ../Doc/c-api/exceptions.rst:890 +#: ../Doc/c-api/exceptions.rst:906 msgid ":exc:`SystemExit`" msgstr ":exc:`SystemExit`" -#: ../Doc/c-api/exceptions.rst:892 +#: ../Doc/c-api/exceptions.rst:908 msgid ":c:data:`PyExc_TabError`" msgstr ":c:data:`PyExc_TabError`" -#: ../Doc/c-api/exceptions.rst:892 +#: ../Doc/c-api/exceptions.rst:908 msgid ":exc:`TabError`" msgstr ":exc:`TabError`" -#: ../Doc/c-api/exceptions.rst:894 +#: ../Doc/c-api/exceptions.rst:910 msgid ":c:data:`PyExc_TimeoutError`" msgstr ":c:data:`PyExc_ImportError`" -#: ../Doc/c-api/exceptions.rst:894 +#: ../Doc/c-api/exceptions.rst:910 msgid ":exc:`TimeoutError`" msgstr ":exc:`TimeoutError`" -#: ../Doc/c-api/exceptions.rst:896 +#: ../Doc/c-api/exceptions.rst:912 msgid ":c:data:`PyExc_TypeError`" msgstr ":c:data:`PyExc_TypeError`" -#: ../Doc/c-api/exceptions.rst:896 +#: ../Doc/c-api/exceptions.rst:912 msgid ":exc:`TypeError`" msgstr ":exc:`TypeError`" -#: ../Doc/c-api/exceptions.rst:898 +#: ../Doc/c-api/exceptions.rst:914 msgid ":c:data:`PyExc_UnboundLocalError`" msgstr ":c:data:`PyExc_UnboundLocalError`" -#: ../Doc/c-api/exceptions.rst:898 +#: ../Doc/c-api/exceptions.rst:914 msgid ":exc:`UnboundLocalError`" msgstr ":exc:`UnboundLocalError`" -#: ../Doc/c-api/exceptions.rst:900 +#: ../Doc/c-api/exceptions.rst:916 msgid ":c:data:`PyExc_UnicodeDecodeError`" msgstr ":c:data:`PyExc_UnicodeDecodeError`" -#: ../Doc/c-api/exceptions.rst:900 +#: ../Doc/c-api/exceptions.rst:916 msgid ":exc:`UnicodeDecodeError`" msgstr ":exc:`UnicodeDecodeError`" -#: ../Doc/c-api/exceptions.rst:902 +#: ../Doc/c-api/exceptions.rst:918 msgid ":c:data:`PyExc_UnicodeEncodeError`" msgstr ":c:data:`PyExc_UnicodeEncodeError`" -#: ../Doc/c-api/exceptions.rst:902 +#: ../Doc/c-api/exceptions.rst:918 msgid ":exc:`UnicodeEncodeError`" msgstr ":exc:`UnicodeEncodeError`" -#: ../Doc/c-api/exceptions.rst:904 +#: ../Doc/c-api/exceptions.rst:920 msgid ":c:data:`PyExc_UnicodeError`" msgstr ":c:data:`PyExc_UnicodeError`" -#: ../Doc/c-api/exceptions.rst:904 +#: ../Doc/c-api/exceptions.rst:920 msgid ":exc:`UnicodeError`" msgstr ":exc:`UnicodeError`" -#: ../Doc/c-api/exceptions.rst:906 +#: ../Doc/c-api/exceptions.rst:922 msgid ":c:data:`PyExc_UnicodeTranslateError`" msgstr ":c:data:`PyExc_UnicodeTranslateError`" -#: ../Doc/c-api/exceptions.rst:906 +#: ../Doc/c-api/exceptions.rst:922 msgid ":exc:`UnicodeTranslateError`" msgstr ":exc:`UnicodeTranslateError`" -#: ../Doc/c-api/exceptions.rst:908 +#: ../Doc/c-api/exceptions.rst:924 msgid ":c:data:`PyExc_ValueError`" msgstr ":c:data:`PyExc_ValueError`" -#: ../Doc/c-api/exceptions.rst:908 +#: ../Doc/c-api/exceptions.rst:924 msgid ":exc:`ValueError`" msgstr ":exc:`ValueError`" -#: ../Doc/c-api/exceptions.rst:910 +#: ../Doc/c-api/exceptions.rst:926 msgid ":c:data:`PyExc_ZeroDivisionError`" msgstr ":c:data:`PyExc_ZeroDivisionError`" -#: ../Doc/c-api/exceptions.rst:910 +#: ../Doc/c-api/exceptions.rst:926 msgid ":exc:`ZeroDivisionError`" msgstr ":exc:`ZeroDivisionError`" -#: ../Doc/c-api/exceptions.rst:913 +#: ../Doc/c-api/exceptions.rst:929 msgid "" ":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" "`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" @@ -1237,61 +1258,61 @@ msgid "" "`PyExc_TimeoutError` were introduced following :pep:`3151`." msgstr "" -#: ../Doc/c-api/exceptions.rst:923 +#: ../Doc/c-api/exceptions.rst:939 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:926 +#: ../Doc/c-api/exceptions.rst:942 msgid ":c:data:`PyExc_ModuleNotFoundError`." msgstr ":c:data:`PyExc_ModuleNotFoundError`." -#: ../Doc/c-api/exceptions.rst:929 +#: ../Doc/c-api/exceptions.rst:945 msgid "These are compatibility aliases to :c:data:`PyExc_OSError`:" msgstr "" -#: ../Doc/c-api/exceptions.rst:939 +#: ../Doc/c-api/exceptions.rst:955 msgid ":c:data:`PyExc_EnvironmentError`" msgstr ":c:data:`PyExc_EnvironmentError`" -#: ../Doc/c-api/exceptions.rst:941 +#: ../Doc/c-api/exceptions.rst:957 msgid ":c:data:`PyExc_IOError`" msgstr ":c:data:`PyExc_IOError`" -#: ../Doc/c-api/exceptions.rst:943 +#: ../Doc/c-api/exceptions.rst:959 msgid ":c:data:`PyExc_WindowsError`" msgstr ":c:data:`PyExc_WindowsError`" -#: ../Doc/c-api/exceptions.rst:943 +#: ../Doc/c-api/exceptions.rst:959 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/c-api/exceptions.rst:946 +#: ../Doc/c-api/exceptions.rst:962 msgid "These aliases used to be separate exception types." msgstr "" -#: ../Doc/c-api/exceptions.rst:949 ../Doc/c-api/exceptions.rst:1013 +#: ../Doc/c-api/exceptions.rst:965 ../Doc/c-api/exceptions.rst:1029 msgid "Notes:" msgstr "Notes :" -#: ../Doc/c-api/exceptions.rst:952 +#: ../Doc/c-api/exceptions.rst:968 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:955 +#: ../Doc/c-api/exceptions.rst:971 msgid "This is the same as :exc:`weakref.ReferenceError`." msgstr "Identique à :exc:`weakref.ReferenceError`." -#: ../Doc/c-api/exceptions.rst:958 +#: ../Doc/c-api/exceptions.rst:974 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:964 +#: ../Doc/c-api/exceptions.rst:980 msgid "Standard Warning Categories" msgstr "" -#: ../Doc/c-api/exceptions.rst:966 +#: ../Doc/c-api/exceptions.rst:982 msgid "" "All standard Python warning categories are available as global variables " "whose names are ``PyExc_`` followed by the Python exception name. These have " @@ -1299,98 +1320,98 @@ msgid "" "completeness, here are all the variables:" msgstr "" -#: ../Doc/c-api/exceptions.rst:987 +#: ../Doc/c-api/exceptions.rst:1003 msgid ":c:data:`PyExc_Warning`" msgstr ":c:data:`PyExc_Warning`" -#: ../Doc/c-api/exceptions.rst:987 +#: ../Doc/c-api/exceptions.rst:1003 msgid ":exc:`Warning`" msgstr ":exc:`Warning`" -#: ../Doc/c-api/exceptions.rst:989 +#: ../Doc/c-api/exceptions.rst:1005 msgid ":c:data:`PyExc_BytesWarning`" msgstr ":c:data:`PyExc_BytesWarning`" -#: ../Doc/c-api/exceptions.rst:989 +#: ../Doc/c-api/exceptions.rst:1005 msgid ":exc:`BytesWarning`" msgstr ":exc:`BytesWarning`" -#: ../Doc/c-api/exceptions.rst:991 +#: ../Doc/c-api/exceptions.rst:1007 msgid ":c:data:`PyExc_DeprecationWarning`" msgstr ":c:data:`PyExc_DeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:991 +#: ../Doc/c-api/exceptions.rst:1007 msgid ":exc:`DeprecationWarning`" msgstr ":exc:`DeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:993 +#: ../Doc/c-api/exceptions.rst:1009 msgid ":c:data:`PyExc_FutureWarning`" msgstr ":c:data:`PyExc_FutureWarning`" -#: ../Doc/c-api/exceptions.rst:993 +#: ../Doc/c-api/exceptions.rst:1009 msgid ":exc:`FutureWarning`" msgstr ":exc:`FutureWarning`" -#: ../Doc/c-api/exceptions.rst:995 +#: ../Doc/c-api/exceptions.rst:1011 msgid ":c:data:`PyExc_ImportWarning`" msgstr ":c:data:`PyExc_ImportWarning`" -#: ../Doc/c-api/exceptions.rst:995 +#: ../Doc/c-api/exceptions.rst:1011 msgid ":exc:`ImportWarning`" msgstr ":exc:`ImportWarning`" -#: ../Doc/c-api/exceptions.rst:997 +#: ../Doc/c-api/exceptions.rst:1013 msgid ":c:data:`PyExc_PendingDeprecationWarning`" msgstr ":c:data:`PyExc_PendingDeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:997 +#: ../Doc/c-api/exceptions.rst:1013 msgid ":exc:`PendingDeprecationWarning`" msgstr ":exc:`PendingDeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:999 +#: ../Doc/c-api/exceptions.rst:1015 msgid ":c:data:`PyExc_ResourceWarning`" msgstr ":c:data:`PyExc_ResourceWarning`" -#: ../Doc/c-api/exceptions.rst:999 +#: ../Doc/c-api/exceptions.rst:1015 msgid ":exc:`ResourceWarning`" msgstr ":exc:`ResourceWarning`" -#: ../Doc/c-api/exceptions.rst:1001 +#: ../Doc/c-api/exceptions.rst:1017 msgid ":c:data:`PyExc_RuntimeWarning`" msgstr ":c:data:`PyExc_RuntimeWarning`" -#: ../Doc/c-api/exceptions.rst:1001 +#: ../Doc/c-api/exceptions.rst:1017 msgid ":exc:`RuntimeWarning`" msgstr ":exc:`RuntimeWarning`" -#: ../Doc/c-api/exceptions.rst:1003 +#: ../Doc/c-api/exceptions.rst:1019 msgid ":c:data:`PyExc_SyntaxWarning`" msgstr ":c:data:`PyExc_SyntaxWarning`" -#: ../Doc/c-api/exceptions.rst:1003 +#: ../Doc/c-api/exceptions.rst:1019 msgid ":exc:`SyntaxWarning`" msgstr ":exc:`SyntaxWarning`" -#: ../Doc/c-api/exceptions.rst:1005 +#: ../Doc/c-api/exceptions.rst:1021 msgid ":c:data:`PyExc_UnicodeWarning`" msgstr ":c:data:`PyExc_UnicodeWarning`" -#: ../Doc/c-api/exceptions.rst:1005 +#: ../Doc/c-api/exceptions.rst:1021 msgid ":exc:`UnicodeWarning`" msgstr ":exc:`UnicodeWarning`" -#: ../Doc/c-api/exceptions.rst:1007 +#: ../Doc/c-api/exceptions.rst:1023 msgid ":c:data:`PyExc_UserWarning`" msgstr ":c:data:`PyExc_UserWarning`" -#: ../Doc/c-api/exceptions.rst:1007 +#: ../Doc/c-api/exceptions.rst:1023 msgid ":exc:`UserWarning`" msgstr ":exc:`UserWarning`" -#: ../Doc/c-api/exceptions.rst:1010 +#: ../Doc/c-api/exceptions.rst:1026 msgid ":c:data:`PyExc_ResourceWarning`." msgstr ":c:data:`PyExc_ResourceWarning`." -#: ../Doc/c-api/exceptions.rst:1016 +#: ../Doc/c-api/exceptions.rst:1032 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*." diff --git a/c-api/file.po b/c-api/file.po index 2515330a2..0a223af60 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-10-18 09:48+0200\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 1.8.11\n" #: ../Doc/c-api/file.rst:6 msgid "File Objects" @@ -29,6 +30,16 @@ msgid "" "reporting in the interpreter; third-party code is advised to access the :mod:" "`io` APIs instead." msgstr "" +"Ces API sont une émulation minimale de l'API C Python 2 pour les objets " +"fichier natifs, qui reposaient sur la gestion des entrées-sorties avec " +"tampon (:c:type:`FILE\\*`) de la bibliothèque standard C. En Python 3, les " +"fichiers et les flux utilisent le nouveau module :mod:`io`, qui définit " +"plusieurs couches au dessus des entrées/sorties bas niveau sans tampon du " +"système d'exploitation. Les fonctions définies ci-dessous, écrites en C, " +"encapsulent ces nouvelles APi pour les rendre plus faciles d'utilisation et " +"sont majoritairement pensées pour signaler des erreurs internes dans " +"l'interpréteur ; il est conseillé au code tiers d'utiliser les API de :mod:" +"`io` à la place." #: ../Doc/c-api/file.rst:22 msgid "" @@ -39,6 +50,13 @@ msgid "" "failure. For a more comprehensive description of the arguments, please refer " "to the :func:`io.open` function documentation." msgstr "" +"Crée un objet fichier Python à partir du descripteur d'un fichier déjà " +"ouvert *fd*. Les arguments *name*, *encoding*, *errors* et *newline* peuvent " +"être *NULL* pour utiliser ceux par défaut ; *buffering* peut être *-1* pour " +"utiliser celui par défaut ; *name* est ignoré et gardé pour la rétro-" +"compatibilité. Renvoie *NULL* en cas d'échec. Pour une description plus " +"détaillée des arguments, merci de vous référer à la documentation de " +"fonction :func:`io.open`." #: ../Doc/c-api/file.rst:31 msgid "" @@ -46,10 +64,14 @@ msgid "" "level file descriptors can produce various issues (such as unexpected " "ordering of data)." msgstr "" +"Étant donné que les flux de données Python possèdent leur propre couche de " +"tampon, les mélanger avec des descripteurs de fichiers du niveau du système " +"d'exploitation peut produire des erreurs (comme par exemple un ordre des " +"données inattendu)." #: ../Doc/c-api/file.rst:35 msgid "Ignore *name* attribute." -msgstr "" +msgstr "ignore l'attribut *name*" #: ../Doc/c-api/file.rst:41 msgid "" @@ -59,6 +81,11 @@ msgid "" "integer, which is returned as the file descriptor value. Sets an exception " "and returns ``-1`` on failure." msgstr "" +"Renvoie un descripteur de fichier associé avec *p* comme un :c:type:`int`. " +"Si l'objet est un entier, sa valeur est renvoyée. Sinon, la méthode :meth:" +"`~io.IOBase.fileno` de l'objet est appelée si elle existe; la méthode doit " +"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 msgid "" @@ -72,6 +99,16 @@ msgid "" "regardless of length, but :exc:`EOFError` is raised if the end of the file " "is reached immediately." msgstr "" +"Cette fonction, équivalente à ``p.readline([n])``, lit une ligne de l'objet " +"*p*. *p* peut être un objet fichier ou n'importe quel objet qui possède une " +"méthode :meth:`~io.IOBase.readline`. Si *n* vaut ``0``, une seule ligne est " +"lue, indépendamment de la taille de la ligne. Si *n* est plus grand que " +"``0``, un maximum de *n* octets seront lus en provenance du fichier ; une " +"ligne partielle peut être renvoyée. Dans les deux cas, une chaîne de " +"caractères vide est renvoyée si la fin du fichier est atteinte " +"immédiatement. Cependant, si *n* est plus petit que ``0``, une ligne est lue " +"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:67 msgid "" @@ -80,9 +117,16 @@ msgid "" "instead of the :func:`repr`. Return ``0`` on success or ``-1`` on failure; " "the appropriate exception will be set." msgstr "" +"Écrit l'objet *obj* dans l'objet fichier *p*. La seule option gérée pour " +"*flags* est :const:`Py_PRINT_RAW` ; si défini, l'attribut :func:`str` de " +"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:75 msgid "" "Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " "failure; the appropriate exception will be set." msgstr "" +"Écrit la chaîne de caractères *s* dans l'objet fichier *p*. Retourne ``0`` " +"en cas de succès ou ``-1`` en cas d'échec ; l'exception appropriée sera mise " +"en place." diff --git a/c-api/float.po b/c-api/float.po index 522f0fd81..8710d59ae 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-01-14 15:30+0100\n" +"Last-Translator: ANTOINE FOURES \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -16,40 +16,53 @@ msgstr "" #: ../Doc/c-api/float.rst:6 msgid "Floating Point Objects" -msgstr "" +msgstr "Objets représentant les nombres à virgule flottante" #: ../Doc/c-api/float.rst:13 msgid "" "This subtype of :c:type:`PyObject` represents a Python floating point object." msgstr "" +"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre à virgule " +"flottante en Python." #: ../Doc/c-api/float.rst:18 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python floating point " "type. This is the same object as :class:`float` 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/float.rst:24 msgid "" "Return true if its argument is a :c:type:`PyFloatObject` or a subtype of :c:" "type:`PyFloatObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject` ou un sous-" +"type de :c:type:`PyFloatObject`." #: ../Doc/c-api/float.rst:30 msgid "" "Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype " "of :c:type:`PyFloatObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject`, mais pas un " +"sous-type de :c:type:`PyFloatObject`." #: ../Doc/c-api/float.rst:36 msgid "" "Create a :c:type:`PyFloatObject` object based on the string value in *str*, " "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." msgstr "" +"Crée un objet :c:type:`PyFloatObject` à partir de *v*, ou *NULL* en cas " +"d'échec." #: ../Doc/c-api/float.rst:47 msgid "" @@ -59,12 +72,20 @@ msgid "" "This method returns ``-1.0`` upon failure, so one should call :c:func:" "`PyErr_Occurred` to check for errors." msgstr "" +"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:" +"type:`double` en C. Si le *pyfloat* n'est pas un nombre à virgule flottante " +"mais contient une méthode :meth:`__float__`, elle est d'abord appelée pour " +"convertir le *pyfloat* en nombre à virgule flottante. Cette méthode renvoie " +"``-1.0`` en cas d'échec, il faut appeler :c:func:`PyErr_Occurred` pour " +"vérifier les erreurs." #: ../Doc/c-api/float.rst:56 msgid "" "Return a C :c:type:`double` representation of the contents of *pyfloat*, but " "without error checking." msgstr "" +"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:" +"type:`double` en C, sans vérifier les erreurs." #: ../Doc/c-api/float.rst:62 msgid "" @@ -72,20 +93,29 @@ msgid "" "minimum and maximum values of a float. It's a thin wrapper around the header " "file :file:`float.h`." msgstr "" +"Renvoie une instance *structseq* qui contient les informations sur la " +"précision et les valeurs minimales et maximales pour un nombre à virgule " +"flottante. C'est une enveloppe autour du fichier d'entête :file:`float.h`." #: ../Doc/c-api/float.rst:69 msgid "" "Return the maximum representable finite float *DBL_MAX* as C :c:type:" "`double`." msgstr "" +"Renvoie le nombre à virgule flottante fini maximal *DBL_MAX* sous la forme " +"d'un :c:type:`double` en C." #: ../Doc/c-api/float.rst:74 msgid "" "Return the minimum normalized positive float *DBL_MIN* as C :c:type:`double`." msgstr "" +"Renvoie le nombre à virgule flottante minimal normalisé *DBL_MIN* sous la " +"forme :c:type:`double` en C." #: ../Doc/c-api/float.rst:78 msgid "" "Clear the float free list. Return the number of items that could not be " "freed." msgstr "" +"Libère la mémoire de la *free list* des nombres à virgule flottante. Renvoie " +"le nombre d'éléments qui n'ont pas pu être libérés." diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po index 72bed7f8a..9ff106e9e 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -94,30 +94,34 @@ msgid "" "extension modules." msgstr "" -#: ../Doc/c-api/gcsupport.rst:69 +#: ../Doc/c-api/gcsupport.rst:69 ../Doc/c-api/gcsupport.rst:101 +msgid "This macro is removed from Python 3.8." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:72 msgid "" "Similarly, the deallocator for the object must conform to a similar pair of " "rules:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:72 +#: ../Doc/c-api/gcsupport.rst:75 msgid "" "Before fields which refer to other containers are invalidated, :c:func:" "`PyObject_GC_UnTrack` must be called." msgstr "" -#: ../Doc/c-api/gcsupport.rst:75 +#: ../Doc/c-api/gcsupport.rst:78 msgid "" "The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:80 +#: ../Doc/c-api/gcsupport.rst:83 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:86 +#: ../Doc/c-api/gcsupport.rst:89 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 " @@ -127,19 +131,19 @@ msgid "" "handler become invalid." msgstr "" -#: ../Doc/c-api/gcsupport.rst:95 +#: ../Doc/c-api/gcsupport.rst:98 msgid "" "A macro version of :c:func:`PyObject_GC_UnTrack`. It should not be used for " "extension modules." msgstr "" -#: ../Doc/c-api/gcsupport.rst:98 +#: ../Doc/c-api/gcsupport.rst:104 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " "parameter of this type:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:103 +#: ../Doc/c-api/gcsupport.rst:109 msgid "" "Type of the visitor function passed to the :c:member:`~PyTypeObject." "tp_traverse` handler. The function should be called with an object to " @@ -149,13 +153,13 @@ msgid "" "users will need to write their own visitor functions." msgstr "" -#: ../Doc/c-api/gcsupport.rst:110 +#: ../Doc/c-api/gcsupport.rst:116 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler must have the following " "type:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:115 +#: ../Doc/c-api/gcsupport.rst:121 msgid "" "Traversal function for a container object. Implementations must call the " "*visit* function for each object directly contained by *self*, with the " @@ -165,7 +169,7 @@ msgid "" "returned immediately." msgstr "" -#: ../Doc/c-api/gcsupport.rst:122 +#: ../Doc/c-api/gcsupport.rst:128 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:" @@ -173,20 +177,20 @@ msgid "" "exactly *visit* and *arg*:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:129 +#: ../Doc/c-api/gcsupport.rst:135 msgid "" "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:142 +#: ../Doc/c-api/gcsupport.rst:148 msgid "" "The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:" "`inquiry` type, or *NULL* if the object is immutable." msgstr "" -#: ../Doc/c-api/gcsupport.rst:148 +#: ../Doc/c-api/gcsupport.rst:154 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 1c36a508d..10df7139c 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: 2018-02-15 00:32+0100\n" +"PO-Revision-Date: 2018-10-04 12:24+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -27,7 +27,7 @@ msgid "" "`PyGen_NewWithQualName`." msgstr "" "Python utilise des objets générateurs pour implémenter les itérations de " -"générateurs. Ils sont normalement crées en iterant sur une fonction donnant " +"générateurs. Ils sont normalement crées en itérant sur une fonction donnant " "des valeurs via ``yield``, au lieu d'appeler explicitement :c:func:" "`PyGen_New` ou :c:func:`PyGen_NewWithQualName`." diff --git a/c-api/init.po b/c-api/init.po index 408d234db..612174cc8 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-11-29 18:22+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -96,62 +96,66 @@ msgid "Informative functions:" msgstr "" #: ../Doc/c-api/init.rst:40 -msgid ":c:func:`PyMem_GetAllocator`" +msgid ":c:func:`Py_IsInitialized`" msgstr "" #: ../Doc/c-api/init.rst:41 -msgid ":c:func:`PyObject_GetArenaAllocator`" +msgid ":c:func:`PyMem_GetAllocator`" msgstr "" #: ../Doc/c-api/init.rst:42 -msgid ":c:func:`Py_GetBuildInfo`" +msgid ":c:func:`PyObject_GetArenaAllocator`" msgstr "" #: ../Doc/c-api/init.rst:43 -msgid ":c:func:`Py_GetCompiler`" +msgid ":c:func:`Py_GetBuildInfo`" msgstr "" #: ../Doc/c-api/init.rst:44 -msgid ":c:func:`Py_GetCopyright`" +msgid ":c:func:`Py_GetCompiler`" msgstr "" #: ../Doc/c-api/init.rst:45 -msgid ":c:func:`Py_GetPlatform`" +msgid ":c:func:`Py_GetCopyright`" msgstr "" #: ../Doc/c-api/init.rst:46 +msgid ":c:func:`Py_GetPlatform`" +msgstr "" + +#: ../Doc/c-api/init.rst:47 msgid ":c:func:`Py_GetVersion`" msgstr "" -#: ../Doc/c-api/init.rst:48 +#: ../Doc/c-api/init.rst:49 msgid "Utilities:" msgstr "" -#: ../Doc/c-api/init.rst:50 +#: ../Doc/c-api/init.rst:51 msgid ":c:func:`Py_DecodeLocale`" msgstr "" -#: ../Doc/c-api/init.rst:52 +#: ../Doc/c-api/init.rst:53 msgid "Memory allocators:" msgstr "" -#: ../Doc/c-api/init.rst:54 +#: ../Doc/c-api/init.rst:55 msgid ":c:func:`PyMem_RawMalloc`" msgstr "" -#: ../Doc/c-api/init.rst:55 +#: ../Doc/c-api/init.rst:56 msgid ":c:func:`PyMem_RawRealloc`" msgstr "" -#: ../Doc/c-api/init.rst:56 +#: ../Doc/c-api/init.rst:57 msgid ":c:func:`PyMem_RawCalloc`" msgstr "" -#: ../Doc/c-api/init.rst:57 +#: ../Doc/c-api/init.rst:58 msgid ":c:func:`PyMem_RawFree`" msgstr "" -#: ../Doc/c-api/init.rst:61 +#: ../Doc/c-api/init.rst:62 msgid "" "The following functions **should not be called** before :c:func:" "`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:" @@ -160,18 +164,18 @@ msgid "" "`Py_GetProgramName` and :c:func:`PyEval_InitThreads`." msgstr "" -#: ../Doc/c-api/init.rst:71 +#: ../Doc/c-api/init.rst:72 msgid "Global configuration variables" msgstr "" -#: ../Doc/c-api/init.rst:73 +#: ../Doc/c-api/init.rst:74 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:77 +#: ../Doc/c-api/init.rst:78 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:" @@ -179,64 +183,64 @@ msgid "" "2." msgstr "" -#: ../Doc/c-api/init.rst:83 +#: ../Doc/c-api/init.rst:84 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:87 +#: ../Doc/c-api/init.rst:88 msgid "Set by the :option:`-b` option." msgstr "" -#: ../Doc/c-api/init.rst:91 +#: ../Doc/c-api/init.rst:92 msgid "" "Turn on parser debugging output (for expert only, depending on compilation " "options)." msgstr "" -#: ../Doc/c-api/init.rst:94 +#: ../Doc/c-api/init.rst:95 msgid "" "Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:99 +#: ../Doc/c-api/init.rst:100 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:102 +#: ../Doc/c-api/init.rst:103 msgid "" "Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " "environment variable." msgstr "" -#: ../Doc/c-api/init.rst:107 +#: ../Doc/c-api/init.rst:108 msgid "" "Suppress error messages when calculating the module search path in :c:func:" "`Py_GetPath`." msgstr "" -#: ../Doc/c-api/init.rst:110 +#: ../Doc/c-api/init.rst:111 msgid "Private flag used by ``_freeze_importlib`` and ``frozenmain`` programs." msgstr "" -#: ../Doc/c-api/init.rst:114 +#: ../Doc/c-api/init.rst:115 msgid "" "Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " "a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:117 +#: ../Doc/c-api/init.rst:118 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:122 +#: ../Doc/c-api/init.rst:123 msgid "" "Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." @@ -244,74 +248,74 @@ 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:125 +#: ../Doc/c-api/init.rst:126 msgid "Set by the :option:`-E` and :option:`-I` options." msgstr "" -#: ../Doc/c-api/init.rst:129 +#: ../Doc/c-api/init.rst:130 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:133 +#: ../Doc/c-api/init.rst:134 msgid "" "Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:138 +#: ../Doc/c-api/init.rst:139 msgid "Set by the :option:`-i` option." msgstr "" -#: ../Doc/c-api/init.rst:142 +#: ../Doc/c-api/init.rst:143 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:145 +#: ../Doc/c-api/init.rst:146 msgid "Set by the :option:`-I` option." msgstr "" -#: ../Doc/c-api/init.rst:151 +#: ../Doc/c-api/init.rst:152 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:154 +#: ../Doc/c-api/init.rst:155 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable is set to a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:157 +#: ../Doc/c-api/init.rst:158 msgid "See :pep:`529` for more details." msgstr "Voir la :pep:`529` pour plus d'informations." -#: ../Doc/c-api/init.rst:159 ../Doc/c-api/init.rst:171 -msgid "Availability: Windows." -msgstr "Disponibilité : Windows." +#: ../Doc/c-api/init.rst:160 ../Doc/c-api/init.rst:172 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/c-api/init.rst:163 +#: ../Doc/c-api/init.rst:164 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:166 +#: ../Doc/c-api/init.rst:167 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:169 +#: ../Doc/c-api/init.rst:170 msgid "See :pep:`528` for more details." msgstr "" -#: ../Doc/c-api/init.rst:175 +#: ../Doc/c-api/init.rst:176 msgid "" "Disable the import of the module :mod:`site` and the site-dependent " "manipulations of :data:`sys.path` that it entails. Also disable these " @@ -323,11 +327,11 @@ msgstr "" "mod:`site` est importé explicitement plus tard (appelez :func:`site.main` si " "vous voulez les déclencher)." -#: ../Doc/c-api/init.rst:180 +#: ../Doc/c-api/init.rst:181 msgid "Set by the :option:`-S` option." msgstr "" -#: ../Doc/c-api/init.rst:184 +#: ../Doc/c-api/init.rst:185 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." @@ -335,38 +339,38 @@ msgstr "" "N'ajoute pas le répertoire utilisateur :data:`site-packages ` à :data:`sys.path`." -#: ../Doc/c-api/init.rst:187 +#: ../Doc/c-api/init.rst:188 msgid "" "Set by the :option:`-s` and :option:`-I` options, and the :envvar:" "`PYTHONNOUSERSITE` environment variable." msgstr "" -#: ../Doc/c-api/init.rst:192 +#: ../Doc/c-api/init.rst:193 msgid "" "Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:197 +#: ../Doc/c-api/init.rst:198 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:199 +#: ../Doc/c-api/init.rst:200 msgid "Set by the :option:`-q` option." msgstr "" -#: ../Doc/c-api/init.rst:205 +#: ../Doc/c-api/init.rst:206 msgid "Force the stdout and stderr streams to be unbuffered." msgstr "" -#: ../Doc/c-api/init.rst:207 +#: ../Doc/c-api/init.rst:208 msgid "" "Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " "environment variable." msgstr "" -#: ../Doc/c-api/init.rst:212 +#: ../Doc/c-api/init.rst:213 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 " @@ -374,24 +378,24 @@ msgid "" "for a module. Also provides information on module cleanup at exit." msgstr "" -#: ../Doc/c-api/init.rst:217 +#: ../Doc/c-api/init.rst:218 msgid "" "Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:222 +#: ../Doc/c-api/init.rst:223 msgid "Initializing and finalizing the interpreter" msgstr "" -#: ../Doc/c-api/init.rst:240 +#: ../Doc/c-api/init.rst:241 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:244 +#: ../Doc/c-api/init.rst:245 msgid "" "This initializes the table of loaded modules (``sys.modules``), and creates " "the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It " @@ -401,27 +405,27 @@ msgid "" "There is no return value; it is a fatal error if the initialization fails." msgstr "" -#: ../Doc/c-api/init.rst:253 +#: ../Doc/c-api/init.rst:254 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:259 +#: ../Doc/c-api/init.rst:260 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:266 +#: ../Doc/c-api/init.rst:267 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:273 +#: ../Doc/c-api/init.rst:274 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:" @@ -433,7 +437,7 @@ msgid "" "(flushing buffered data), ``-1`` is returned." msgstr "" -#: ../Doc/c-api/init.rst:282 +#: ../Doc/c-api/init.rst:283 msgid "" "This function is provided for a number of reasons. An embedding application " "might want to restart Python without having to restart the application " @@ -444,7 +448,7 @@ msgid "" "Python before exiting from the application." msgstr "" -#: ../Doc/c-api/init.rst:290 +#: ../Doc/c-api/init.rst:291 msgid "" "**Bugs and caveats:** The destruction of modules and objects in modules is " "done in random order; this may cause destructors (:meth:`__del__` methods) " @@ -459,54 +463,54 @@ msgid "" "than once." msgstr "" -#: ../Doc/c-api/init.rst:306 +#: ../Doc/c-api/init.rst:307 msgid "" "This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " "disregards the return value." msgstr "" -#: ../Doc/c-api/init.rst:311 +#: ../Doc/c-api/init.rst:312 msgid "Process-wide parameters" msgstr "" -#: ../Doc/c-api/init.rst:321 +#: ../Doc/c-api/init.rst:322 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:325 +#: ../Doc/c-api/init.rst:326 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:328 +#: ../Doc/c-api/init.rst:329 msgid "" "``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:332 +#: ../Doc/c-api/init.rst:333 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:335 +#: ../Doc/c-api/init.rst:336 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:338 +#: ../Doc/c-api/init.rst:339 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:351 +#: ../Doc/c-api/init.rst:352 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 " @@ -520,22 +524,22 @@ msgid "" "this storage." msgstr "" -#: ../Doc/c-api/init.rst:362 ../Doc/c-api/init.rst:476 -#: ../Doc/c-api/init.rst:578 ../Doc/c-api/init.rst:605 -#: ../Doc/c-api/init.rst:622 +#: ../Doc/c-api/init.rst:363 ../Doc/c-api/init.rst:477 +#: ../Doc/c-api/init.rst:579 ../Doc/c-api/init.rst:606 +#: ../Doc/c-api/init.rst:623 msgid "" "Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:type:" "`wchar_*` string." msgstr "" -#: ../Doc/c-api/init.rst:370 +#: ../Doc/c-api/init.rst:371 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:377 +#: ../Doc/c-api/init.rst:378 msgid "" "Return the *prefix* for installed platform-independent files. This is " "derived through a number of complicated rules from the program name set " @@ -549,7 +553,7 @@ msgid "" "function." msgstr "" -#: ../Doc/c-api/init.rst:390 +#: ../Doc/c-api/init.rst:391 msgid "" "Return the *exec-prefix* for installed platform-*dependent* files. This is " "derived through a number of complicated rules from the program name set " @@ -563,7 +567,7 @@ msgid "" "on Unix." msgstr "" -#: ../Doc/c-api/init.rst:400 +#: ../Doc/c-api/init.rst:401 msgid "" "Background: The exec-prefix differs from the prefix when platform dependent " "files (such as executables and shared libraries) are installed in a " @@ -572,7 +576,7 @@ msgid "" "independent may be installed in :file:`/usr/local`." msgstr "" -#: ../Doc/c-api/init.rst:406 +#: ../Doc/c-api/init.rst:407 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 " @@ -586,7 +590,7 @@ msgid "" "independent from the Python version by which they were compiled!)." msgstr "" -#: ../Doc/c-api/init.rst:417 +#: ../Doc/c-api/init.rst:418 msgid "" "System administrators will know how to configure the :program:`mount` or :" "program:`automount` programs to share :file:`/usr/local` between platforms " @@ -594,7 +598,7 @@ msgid "" "platform." msgstr "" -#: ../Doc/c-api/init.rst:429 +#: ../Doc/c-api/init.rst:430 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 " @@ -603,7 +607,7 @@ msgid "" "available to Python code as ``sys.executable``." msgstr "" -#: ../Doc/c-api/init.rst:443 +#: ../Doc/c-api/init.rst:444 msgid "" "Return the default module search path; this is computed from the program " "name (set by :c:func:`Py_SetProgramName` above) and some environment " @@ -616,7 +620,7 @@ msgid "" "for loading modules." msgstr "" -#: ../Doc/c-api/init.rst:463 +#: ../Doc/c-api/init.rst:464 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 " @@ -627,7 +631,7 @@ msgid "" "``';'`` on Windows." msgstr "" -#: ../Doc/c-api/init.rst:471 +#: ../Doc/c-api/init.rst:472 msgid "" "This also causes :data:`sys.executable` to be set only to the raw program " "name (see :c:func:`Py_SetProgramName`) and for :data:`sys.prefix` and :data:" @@ -635,19 +639,19 @@ msgid "" "required after calling :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/init.rst:479 +#: ../Doc/c-api/init.rst:480 msgid "" "The path argument is copied internally, so the caller may free it after the " "call completes." msgstr "" -#: ../Doc/c-api/init.rst:485 +#: ../Doc/c-api/init.rst:486 msgid "" "Return the version of this Python interpreter. This is a string that looks " "something like ::" msgstr "" -#: ../Doc/c-api/init.rst:492 +#: ../Doc/c-api/init.rst:493 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 " @@ -656,7 +660,7 @@ msgid "" "as :data:`sys.version`." msgstr "" -#: ../Doc/c-api/init.rst:502 +#: ../Doc/c-api/init.rst:503 msgid "" "Return the platform identifier for the current platform. On Unix, this is " "formed from the \"official\" name of the operating system, converted to " @@ -667,42 +671,42 @@ msgid "" "value is available to Python code as ``sys.platform``." msgstr "" -#: ../Doc/c-api/init.rst:513 +#: ../Doc/c-api/init.rst:514 msgid "" "Return the official copyright string for the current Python version, for " "example" msgstr "" -#: ../Doc/c-api/init.rst:515 +#: ../Doc/c-api/init.rst:516 msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" msgstr "" -#: ../Doc/c-api/init.rst:519 +#: ../Doc/c-api/init.rst:520 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:525 +#: ../Doc/c-api/init.rst:526 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:532 ../Doc/c-api/init.rst:546 +#: ../Doc/c-api/init.rst:533 ../Doc/c-api/init.rst:547 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:539 +#: ../Doc/c-api/init.rst:540 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:558 +#: ../Doc/c-api/init.rst:559 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 " @@ -713,28 +717,28 @@ msgid "" "fatal condition is signalled using :c:func:`Py_FatalError`." msgstr "" -#: ../Doc/c-api/init.rst:566 +#: ../Doc/c-api/init.rst:567 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:570 +#: ../Doc/c-api/init.rst:571 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:573 +#: ../Doc/c-api/init.rst:574 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:582 +#: ../Doc/c-api/init.rst:583 msgid "" "It is recommended that applications embedding the Python interpreter for " "purposes other than executing a single script pass ``0`` as *updatepath*, " @@ -742,32 +746,32 @@ msgid "" "`_." msgstr "" -#: ../Doc/c-api/init.rst:587 +#: ../Doc/c-api/init.rst:588 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:601 +#: ../Doc/c-api/init.rst:602 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:608 +#: ../Doc/c-api/init.rst:609 msgid "The *updatepath* value depends on :option:`-I`." msgstr "" -#: ../Doc/c-api/init.rst:613 +#: ../Doc/c-api/init.rst:614 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:617 +#: ../Doc/c-api/init.rst:618 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 " @@ -775,18 +779,18 @@ msgid "" "this storage." msgstr "" -#: ../Doc/c-api/init.rst:628 +#: ../Doc/c-api/init.rst:629 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:636 +#: ../Doc/c-api/init.rst:637 msgid "Thread State and the Global Interpreter Lock" msgstr "" -#: ../Doc/c-api/init.rst:643 +#: ../Doc/c-api/init.rst:644 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 " @@ -798,7 +802,7 @@ msgid "" "once instead of twice." msgstr "" -#: ../Doc/c-api/init.rst:653 +#: ../Doc/c-api/init.rst:654 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 " @@ -808,7 +812,7 @@ msgid "" "a file, so that other Python threads can run in the meantime." msgstr "" -#: ../Doc/c-api/init.rst:664 +#: ../Doc/c-api/init.rst:665 msgid "" "The Python interpreter keeps some thread-specific bookkeeping information " "inside a data structure called :c:type:`PyThreadState`. There's also one " @@ -816,32 +820,32 @@ msgid "" "retrieved using :c:func:`PyThreadState_Get`." msgstr "" -#: ../Doc/c-api/init.rst:670 +#: ../Doc/c-api/init.rst:671 msgid "Releasing the GIL from extension code" msgstr "" -#: ../Doc/c-api/init.rst:672 +#: ../Doc/c-api/init.rst:673 msgid "" "Most extension code manipulating the :term:`GIL` has the following simple " "structure::" msgstr "" -#: ../Doc/c-api/init.rst:681 +#: ../Doc/c-api/init.rst:682 msgid "This is so common that a pair of macros exists to simplify it::" msgstr "" -#: ../Doc/c-api/init.rst:691 +#: ../Doc/c-api/init.rst:692 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:695 +#: ../Doc/c-api/init.rst:696 msgid "The block above expands to the following code::" msgstr "" -#: ../Doc/c-api/init.rst:707 +#: ../Doc/c-api/init.rst:708 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 " @@ -852,7 +856,7 @@ msgid "" "state, the lock must be acquired before storing the thread state pointer." msgstr "" -#: ../Doc/c-api/init.rst:716 +#: ../Doc/c-api/init.rst:717 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 " @@ -862,11 +866,11 @@ msgid "" "compressing or hashing data." msgstr "" -#: ../Doc/c-api/init.rst:727 +#: ../Doc/c-api/init.rst:728 msgid "Non-Python created threads" msgstr "" -#: ../Doc/c-api/init.rst:729 +#: ../Doc/c-api/init.rst:730 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 " @@ -876,7 +880,7 @@ msgid "" "for them." msgstr "" -#: ../Doc/c-api/init.rst:736 +#: ../Doc/c-api/init.rst:737 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 " @@ -887,14 +891,14 @@ msgid "" "finally free the thread state data structure." msgstr "" -#: ../Doc/c-api/init.rst:744 +#: ../Doc/c-api/init.rst:745 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:758 +#: ../Doc/c-api/init.rst:759 msgid "" "Note that the :c:func:`PyGILState_\\*` functions assume there is only one " "global interpreter (created automatically by :c:func:`Py_Initialize`). " @@ -903,7 +907,7 @@ msgid "" "`PyGILState_\\*` API is unsupported." msgstr "" -#: ../Doc/c-api/init.rst:764 +#: ../Doc/c-api/init.rst:765 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 " @@ -923,17 +927,17 @@ msgid "" "able to." msgstr "" -#: ../Doc/c-api/init.rst:783 +#: ../Doc/c-api/init.rst:784 msgid "High-level API" msgstr "" -#: ../Doc/c-api/init.rst:785 +#: ../Doc/c-api/init.rst:786 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:790 +#: ../Doc/c-api/init.rst:791 msgid "" "This data structure represents the state shared by a number of cooperating " "threads. Threads belonging to the same interpreter share their module " @@ -941,7 +945,7 @@ msgid "" "in this structure." msgstr "" -#: ../Doc/c-api/init.rst:795 +#: ../Doc/c-api/init.rst:796 msgid "" "Threads belonging to different interpreters initially share nothing, except " "process state like available memory, open file descriptors and such. The " @@ -949,14 +953,14 @@ msgid "" "which interpreter they belong." msgstr "" -#: ../Doc/c-api/init.rst:803 +#: ../Doc/c-api/init.rst:804 msgid "" "This data structure represents the state of a single thread. The only " "public data member is :c:type:`PyInterpreterState \\*`:attr:`interp`, which " "points to this thread's interpreter state." msgstr "" -#: ../Doc/c-api/init.rst:816 +#: ../Doc/c-api/init.rst:817 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 " @@ -964,33 +968,33 @@ msgid "" "before calling :c:func:`PyEval_SaveThread` or :c:func:`PyEval_RestoreThread`." msgstr "" -#: ../Doc/c-api/init.rst:821 +#: ../Doc/c-api/init.rst:822 msgid "This is a no-op when called for a second time." msgstr "" -#: ../Doc/c-api/init.rst:823 +#: ../Doc/c-api/init.rst:824 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:827 +#: ../Doc/c-api/init.rst:828 msgid "" "This function cannot be called before :c:func:`Py_Initialize()` anymore." msgstr "" -#: ../Doc/c-api/init.rst:835 +#: ../Doc/c-api/init.rst:836 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:839 +#: ../Doc/c-api/init.rst:840 msgid "The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`." msgstr "" -#: ../Doc/c-api/init.rst:845 +#: ../Doc/c-api/init.rst:846 msgid "" "Release the global interpreter lock (if it has been created and thread " "support is enabled) and reset the thread state to *NULL*, returning the " @@ -998,7 +1002,7 @@ msgid "" "the current thread must have acquired it." msgstr "" -#: ../Doc/c-api/init.rst:853 +#: ../Doc/c-api/init.rst:854 msgid "" "Acquire the global interpreter lock (if it has been created and thread " "support is enabled) and set the thread state to *tstate*, which must not be " @@ -1006,34 +1010,43 @@ msgid "" "acquired it, otherwise deadlock ensues." msgstr "" -#: ../Doc/c-api/init.rst:861 +#: ../Doc/c-api/init.rst:860 ../Doc/c-api/init.rst:913 +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 " +"use :c:func:`_Py_IsFinalizing` or :func:`sys.is_finalizing` to check if the " +"interpreter is in process of being finalized before calling this function to " +"avoid unwanted termination." +msgstr "" + +#: ../Doc/c-api/init.rst:868 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*)." msgstr "" -#: ../Doc/c-api/init.rst:868 +#: ../Doc/c-api/init.rst:875 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." msgstr "" -#: ../Doc/c-api/init.rst:875 +#: ../Doc/c-api/init.rst:882 msgid "" "This function is called from :c:func:`PyOS_AfterFork_Child` to ensure that " "newly created child processes don't hold locks referring to threads which " "are not running in the child process." msgstr "" -#: ../Doc/c-api/init.rst:880 +#: ../Doc/c-api/init.rst:887 msgid "" "The following functions use thread-local storage, and are not compatible " "with sub-interpreters:" msgstr "" -#: ../Doc/c-api/init.rst:885 +#: ../Doc/c-api/init.rst:892 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 " @@ -1046,7 +1059,7 @@ msgid "" "is acceptable." msgstr "" -#: ../Doc/c-api/init.rst:895 +#: ../Doc/c-api/init.rst:902 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:" @@ -1056,13 +1069,13 @@ msgid "" "func:`PyGILState_Release`." msgstr "" -#: ../Doc/c-api/init.rst:902 +#: ../Doc/c-api/init.rst:909 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:908 +#: ../Doc/c-api/init.rst:921 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:" @@ -1070,13 +1083,13 @@ msgid "" "caller, hence the use of the GILState API)." msgstr "" -#: ../Doc/c-api/init.rst:913 +#: ../Doc/c-api/init.rst:926 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:919 +#: ../Doc/c-api/init.rst:932 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 " @@ -1084,7 +1097,7 @@ msgid "" "made on the main thread. This is mainly a helper/diagnostic function." msgstr "" -#: ../Doc/c-api/init.rst:927 +#: ../Doc/c-api/init.rst:940 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 " @@ -1095,13 +1108,13 @@ msgid "" "otherwise behave differently." msgstr "" -#: ../Doc/c-api/init.rst:939 +#: ../Doc/c-api/init.rst:952 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:945 +#: ../Doc/c-api/init.rst:958 msgid "" "This macro expands to ``{ PyThreadState *_save; _save = PyEval_SaveThread();" "``. Note that it contains an opening brace; it must be matched with a " @@ -1109,7 +1122,7 @@ msgid "" "discussion of this macro." msgstr "" -#: ../Doc/c-api/init.rst:953 +#: ../Doc/c-api/init.rst:966 msgid "" "This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " "contains a closing brace; it must be matched with an earlier :c:macro:" @@ -1117,79 +1130,79 @@ msgid "" "macro." msgstr "" -#: ../Doc/c-api/init.rst:961 +#: ../Doc/c-api/init.rst:974 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:967 +#: ../Doc/c-api/init.rst:980 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:973 +#: ../Doc/c-api/init.rst:986 msgid "Low-level API" msgstr "" -#: ../Doc/c-api/init.rst:975 +#: ../Doc/c-api/init.rst:988 msgid "" "All of the following functions must be called after :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/init.rst:977 +#: ../Doc/c-api/init.rst:990 msgid ":c:func:`Py_Initialize()` now initializes the :term:`GIL`." msgstr "" -#: ../Doc/c-api/init.rst:983 +#: ../Doc/c-api/init.rst:996 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:990 +#: ../Doc/c-api/init.rst:1003 msgid "" "Reset all information in an interpreter state object. The global " "interpreter lock must be held." msgstr "" -#: ../Doc/c-api/init.rst:996 +#: ../Doc/c-api/init.rst:1009 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:1003 +#: ../Doc/c-api/init.rst:1016 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:1010 +#: ../Doc/c-api/init.rst:1023 msgid "" "Reset all information in a thread state object. The global interpreter lock " "must be held." msgstr "" -#: ../Doc/c-api/init.rst:1016 +#: ../Doc/c-api/init.rst:1029 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:1023 +#: ../Doc/c-api/init.rst:1036 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:1031 +#: ../Doc/c-api/init.rst:1044 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 " @@ -1198,7 +1211,7 @@ msgid "" "raised and the caller should assume no current thread state is available." msgstr "" -#: ../Doc/c-api/init.rst:1040 +#: ../Doc/c-api/init.rst:1053 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. " @@ -1210,26 +1223,26 @@ msgid "" "raises no exceptions." msgstr "" -#: ../Doc/c-api/init.rst:1048 +#: ../Doc/c-api/init.rst:1061 msgid "" "The type of the *id* parameter changed from :c:type:`long` to :c:type:" "`unsigned long`." msgstr "" -#: ../Doc/c-api/init.rst:1054 +#: ../Doc/c-api/init.rst:1067 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 " "earlier. If this thread already has the lock, deadlock ensues." msgstr "" -#: ../Doc/c-api/init.rst:1058 +#: ../Doc/c-api/init.rst:1071 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:1064 +#: ../Doc/c-api/init.rst:1077 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 " @@ -1238,41 +1251,41 @@ msgid "" "fatal error is reported." msgstr "" -#: ../Doc/c-api/init.rst:1070 +#: ../Doc/c-api/init.rst:1083 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:1076 +#: ../Doc/c-api/init.rst:1089 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:1079 +#: ../Doc/c-api/init.rst:1092 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:1087 +#: ../Doc/c-api/init.rst:1100 msgid "" "Release the global interpreter lock. The lock must have been created " "earlier." msgstr "" -#: ../Doc/c-api/init.rst:1089 +#: ../Doc/c-api/init.rst:1102 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:1098 +#: ../Doc/c-api/init.rst:1111 msgid "Sub-interpreter support" msgstr "" -#: ../Doc/c-api/init.rst:1100 +#: ../Doc/c-api/init.rst:1113 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 " @@ -1282,7 +1295,7 @@ msgid "" "following functions:" msgstr "" -#: ../Doc/c-api/init.rst:1118 +#: ../Doc/c-api/init.rst:1131 msgid "" "Create a new sub-interpreter. This is an (almost) totally separate " "environment for the execution of Python code. In particular, the new " @@ -1295,7 +1308,7 @@ msgid "" "underlying file descriptors)." msgstr "" -#: ../Doc/c-api/init.rst:1128 +#: ../Doc/c-api/init.rst:1141 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 " @@ -1309,7 +1322,7 @@ msgid "" "state on entry.)" msgstr "" -#: ../Doc/c-api/init.rst:1143 +#: ../Doc/c-api/init.rst:1156 msgid "" "Extension modules are shared between (sub-)interpreters as follows: the " "first time a particular extension is imported, it is initialized normally, " @@ -1323,7 +1336,7 @@ msgid "" "called again." msgstr "" -#: ../Doc/c-api/init.rst:1160 +#: ../Doc/c-api/init.rst:1173 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 " @@ -1334,11 +1347,11 @@ msgid "" "sub-interpreters that haven't been explicitly destroyed at that point." msgstr "" -#: ../Doc/c-api/init.rst:1170 +#: ../Doc/c-api/init.rst:1183 msgid "Bugs and caveats" msgstr "" -#: ../Doc/c-api/init.rst:1172 +#: ../Doc/c-api/init.rst:1185 msgid "" "Because sub-interpreters (and the main interpreter) are part of the same " "process, the insulation between them isn't perfect --- for example, using " @@ -1355,7 +1368,7 @@ msgid "" "of loaded modules." msgstr "" -#: ../Doc/c-api/init.rst:1186 +#: ../Doc/c-api/init.rst:1199 msgid "" "Also note that combining this functionality with :c:func:`PyGILState_\\*` " "APIs is delicate, because these APIs assume a bijection between Python " @@ -1367,25 +1380,25 @@ msgid "" "created threads will probably be broken when using sub-interpreters." msgstr "" -#: ../Doc/c-api/init.rst:1197 +#: ../Doc/c-api/init.rst:1210 msgid "Asynchronous Notifications" msgstr "" -#: ../Doc/c-api/init.rst:1199 +#: ../Doc/c-api/init.rst:1212 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:1208 +#: ../Doc/c-api/init.rst:1221 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:1212 +#: ../Doc/c-api/init.rst:1225 msgid "" "When successfully queued, *func* will be *eventually* called from the main " "interpreter thread with the argument *arg*. It will be called " @@ -1393,17 +1406,17 @@ msgid "" "these conditions met:" msgstr "" -#: ../Doc/c-api/init.rst:1217 +#: ../Doc/c-api/init.rst:1230 msgid "on a :term:`bytecode` boundary;" msgstr "" -#: ../Doc/c-api/init.rst:1218 +#: ../Doc/c-api/init.rst:1231 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:1221 +#: ../Doc/c-api/init.rst:1234 msgid "" "*func* must return ``0`` on success, or ``-1`` on failure with an exception " "set. *func* won't be interrupted to perform another asynchronous " @@ -1411,13 +1424,13 @@ msgid "" "if the global interpreter lock is released." msgstr "" -#: ../Doc/c-api/init.rst:1226 +#: ../Doc/c-api/init.rst:1239 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:1230 +#: ../Doc/c-api/init.rst:1243 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 " @@ -1427,18 +1440,18 @@ msgid "" "`PyGILState API`." msgstr "" -#: ../Doc/c-api/init.rst:1242 +#: ../Doc/c-api/init.rst:1255 msgid "Profiling and Tracing" msgstr "" -#: ../Doc/c-api/init.rst:1247 +#: ../Doc/c-api/init.rst:1260 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:1251 +#: ../Doc/c-api/init.rst:1264 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 " @@ -1448,7 +1461,7 @@ msgid "" "reported to the Python-level trace functions in previous versions." msgstr "" -#: ../Doc/c-api/init.rst:1261 +#: ../Doc/c-api/init.rst:1274 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 " @@ -1459,66 +1472,66 @@ msgid "" "or :const:`PyTrace_OPCODE`, and *arg* depends on the value of *what*:" msgstr "" -#: ../Doc/c-api/init.rst:1270 +#: ../Doc/c-api/init.rst:1283 msgid "Value of *what*" msgstr "" -#: ../Doc/c-api/init.rst:1270 +#: ../Doc/c-api/init.rst:1283 msgid "Meaning of *arg*" msgstr "" -#: ../Doc/c-api/init.rst:1272 +#: ../Doc/c-api/init.rst:1285 msgid ":const:`PyTrace_CALL`" msgstr "" -#: ../Doc/c-api/init.rst:1272 ../Doc/c-api/init.rst:1277 -#: ../Doc/c-api/init.rst:1288 +#: ../Doc/c-api/init.rst:1285 ../Doc/c-api/init.rst:1290 +#: ../Doc/c-api/init.rst:1301 msgid "Always :c:data:`Py_None`." msgstr "" -#: ../Doc/c-api/init.rst:1274 +#: ../Doc/c-api/init.rst:1287 msgid ":const:`PyTrace_EXCEPTION`" msgstr "" -#: ../Doc/c-api/init.rst:1274 +#: ../Doc/c-api/init.rst:1287 msgid "Exception information as returned by :func:`sys.exc_info`." msgstr "" -#: ../Doc/c-api/init.rst:1277 +#: ../Doc/c-api/init.rst:1290 msgid ":const:`PyTrace_LINE`" msgstr "" -#: ../Doc/c-api/init.rst:1279 +#: ../Doc/c-api/init.rst:1292 msgid ":const:`PyTrace_RETURN`" msgstr "" -#: ../Doc/c-api/init.rst:1279 +#: ../Doc/c-api/init.rst:1292 msgid "" "Value being returned to the caller, or *NULL* if caused by an exception." msgstr "" -#: ../Doc/c-api/init.rst:1282 +#: ../Doc/c-api/init.rst:1295 msgid ":const:`PyTrace_C_CALL`" msgstr "" -#: ../Doc/c-api/init.rst:1282 ../Doc/c-api/init.rst:1284 -#: ../Doc/c-api/init.rst:1286 +#: ../Doc/c-api/init.rst:1295 ../Doc/c-api/init.rst:1297 +#: ../Doc/c-api/init.rst:1299 msgid "Function object being called." msgstr "" -#: ../Doc/c-api/init.rst:1284 +#: ../Doc/c-api/init.rst:1297 msgid ":const:`PyTrace_C_EXCEPTION`" msgstr "" -#: ../Doc/c-api/init.rst:1286 +#: ../Doc/c-api/init.rst:1299 msgid ":const:`PyTrace_C_RETURN`" msgstr "" -#: ../Doc/c-api/init.rst:1288 +#: ../Doc/c-api/init.rst:1301 msgid ":const:`PyTrace_OPCODE`" msgstr "" -#: ../Doc/c-api/init.rst:1293 +#: ../Doc/c-api/init.rst:1306 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 " @@ -1527,7 +1540,7 @@ msgid "" "the corresponding frame." msgstr "" -#: ../Doc/c-api/init.rst:1302 +#: ../Doc/c-api/init.rst:1315 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 " @@ -1539,7 +1552,7 @@ msgid "" "profiler." msgstr "" -#: ../Doc/c-api/init.rst:1313 +#: ../Doc/c-api/init.rst:1326 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 " @@ -1547,31 +1560,31 @@ msgid "" "*0* on that frame." msgstr "" -#: ../Doc/c-api/init.rst:1320 +#: ../Doc/c-api/init.rst:1333 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:1326 +#: ../Doc/c-api/init.rst:1339 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:1332 +#: ../Doc/c-api/init.rst:1345 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:1338 +#: ../Doc/c-api/init.rst:1351 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:1344 +#: ../Doc/c-api/init.rst:1357 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 " @@ -1579,7 +1592,7 @@ msgid "" "attr:`f_trace_opcodes` to *1* on the frame." msgstr "" -#: ../Doc/c-api/init.rst:1352 +#: ../Doc/c-api/init.rst:1365 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*. " @@ -1589,7 +1602,7 @@ msgid "" "`PyTrace_LINE` :const:`PyTrace_OPCODE` and :const:`PyTrace_EXCEPTION`." msgstr "" -#: ../Doc/c-api/init.rst:1362 +#: ../Doc/c-api/init.rst:1375 msgid "" "Set the tracing function to *func*. This is similar to :c:func:" "`PyEval_SetProfile`, except the tracing function does receive line-number " @@ -1600,44 +1613,48 @@ msgid "" "parameter." msgstr "" -#: ../Doc/c-api/init.rst:1372 +#: ../Doc/c-api/init.rst:1385 msgid "Advanced Debugger Support" -msgstr "Support avancé du debugger" +msgstr "Support avancé du débogueur" -#: ../Doc/c-api/init.rst:1377 +#: ../Doc/c-api/init.rst:1390 msgid "" "These functions are only intended to be used by advanced debugging tools." msgstr "" -#: ../Doc/c-api/init.rst:1382 +#: ../Doc/c-api/init.rst:1395 msgid "" "Return the interpreter state object at the head of the list of all such " "objects." msgstr "" -#: ../Doc/c-api/init.rst:1387 +#: ../Doc/c-api/init.rst:1400 +msgid "Return the main interpreter state object." +msgstr "" + +#: ../Doc/c-api/init.rst:1405 msgid "" "Return the next interpreter state object after *interp* from the list of all " "such objects." msgstr "" -#: ../Doc/c-api/init.rst:1393 +#: ../Doc/c-api/init.rst:1411 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:1399 +#: ../Doc/c-api/init.rst:1417 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:1406 +#: ../Doc/c-api/init.rst:1424 msgid "Thread Local Storage Support" msgstr "" -#: ../Doc/c-api/init.rst:1410 +#: ../Doc/c-api/init.rst:1428 msgid "" "The Python interpreter provides low-level support for thread-local storage " "(TLS) which wraps the underlying native TLS implementation to support the " @@ -1647,19 +1664,19 @@ msgid "" "thread." msgstr "" -#: ../Doc/c-api/init.rst:1417 +#: ../Doc/c-api/init.rst:1435 msgid "" "The GIL does *not* need to be held when calling these functions; they supply " "their own locking." msgstr "" -#: ../Doc/c-api/init.rst:1420 +#: ../Doc/c-api/init.rst:1438 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:1424 +#: ../Doc/c-api/init.rst:1442 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. " @@ -1667,22 +1684,22 @@ msgid "" "functions don't do refcount operations on them either." msgstr "" -#: ../Doc/c-api/init.rst:1432 +#: ../Doc/c-api/init.rst:1450 msgid "Thread Specific Storage (TSS) API" msgstr "" -#: ../Doc/c-api/init.rst:1434 +#: ../Doc/c-api/init.rst:1452 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:1440 +#: ../Doc/c-api/init.rst:1458 msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" msgstr "" -#: ../Doc/c-api/init.rst:1445 +#: ../Doc/c-api/init.rst:1463 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 " @@ -1690,52 +1707,52 @@ msgid "" "public members in this structure." msgstr "" -#: ../Doc/c-api/init.rst:1450 +#: ../Doc/c-api/init.rst:1468 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:1456 +#: ../Doc/c-api/init.rst:1474 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:1461 +#: ../Doc/c-api/init.rst:1479 msgid "Dynamic Allocation" msgstr "" -#: ../Doc/c-api/init.rst:1463 +#: ../Doc/c-api/init.rst:1481 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:1470 +#: ../Doc/c-api/init.rst:1488 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." msgstr "" -#: ../Doc/c-api/init.rst:1477 +#: ../Doc/c-api/init.rst:1495 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:1483 +#: ../Doc/c-api/init.rst:1501 msgid "" "A freed key becomes a dangling pointer, you should reset the key to `NULL`." msgstr "" -#: ../Doc/c-api/init.rst:1488 +#: ../Doc/c-api/init.rst:1506 msgid "Methods" msgstr "Méthodes" -#: ../Doc/c-api/init.rst:1490 +#: ../Doc/c-api/init.rst:1508 msgid "" "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 " @@ -1743,13 +1760,13 @@ msgid "" "func:`PyThread_tss_create`." msgstr "" -#: ../Doc/c-api/init.rst:1498 +#: ../Doc/c-api/init.rst:1516 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:1504 +#: ../Doc/c-api/init.rst:1522 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 " @@ -1758,7 +1775,7 @@ msgid "" "no-op and immediately returns success." msgstr "" -#: ../Doc/c-api/init.rst:1513 +#: ../Doc/c-api/init.rst:1531 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 " @@ -1767,31 +1784,31 @@ msgid "" "key -- calling it on an already destroyed key is a no-op." msgstr "" -#: ../Doc/c-api/init.rst:1522 +#: ../Doc/c-api/init.rst:1540 msgid "" "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." msgstr "" -#: ../Doc/c-api/init.rst:1529 +#: ../Doc/c-api/init.rst:1547 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 " "current thread." msgstr "" -#: ../Doc/c-api/init.rst:1537 +#: ../Doc/c-api/init.rst:1555 msgid "Thread Local Storage (TLS) API" msgstr "" -#: ../Doc/c-api/init.rst:1539 +#: ../Doc/c-api/init.rst:1557 msgid "" "This API is superseded by :ref:`Thread Specific Storage (TSS) API `." msgstr "" -#: ../Doc/c-api/init.rst:1544 +#: ../Doc/c-api/init.rst:1562 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 " @@ -1800,7 +1817,7 @@ msgid "" "platforms." msgstr "" -#: ../Doc/c-api/init.rst:1549 +#: ../Doc/c-api/init.rst:1567 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/intro.po b/c-api/intro.po index c4bccf884..1bdf37b81 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -72,14 +72,14 @@ msgid "" "included in your code by the following line::" msgstr "" -#: ../Doc/c-api/intro.rst:53 +#: ../Doc/c-api/intro.rst:54 msgid "" "This implies inclusion of the following standard headers: ````, " "````, ````, ````, ```` and ```` (if available)." msgstr "" -#: ../Doc/c-api/intro.rst:59 +#: ../Doc/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,7 +89,13 @@ 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:63 +#: ../Doc/c-api/intro.rst:64 +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 "" + +#: ../Doc/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``. " @@ -98,7 +104,7 @@ msgid "" "names do not have a reserved prefix." msgstr "" -#: ../Doc/c-api/intro.rst:68 +#: ../Doc/c-api/intro.rst:72 msgid "" "**Important:** user code should never define names that begin with ``Py`` or " "``_Py``. This confuses the reader, and jeopardizes the portability of the " @@ -106,7 +112,7 @@ msgid "" "beginning with one of these prefixes." msgstr "" -#: ../Doc/c-api/intro.rst:73 +#: ../Doc/c-api/intro.rst:77 msgid "" "The header files are typically installed with Python. On Unix, these are " "located in the directories :file:`{prefix}/include/pythonversion/` and :file:" @@ -118,7 +124,7 @@ msgid "" "specified to the installer." msgstr "" -#: ../Doc/c-api/intro.rst:82 +#: ../Doc/c-api/intro.rst:86 msgid "" "To include the headers, place both directories (if different) on your " "compiler's search path for includes. Do *not* place the parent directories " @@ -128,18 +134,18 @@ msgid "" "`exec_prefix`." msgstr "" -#: ../Doc/c-api/intro.rst:89 +#: ../Doc/c-api/intro.rst:93 msgid "" "C++ users should note that though the API is defined entirely using C, the " "header files do properly declare the entry points to be ``extern \"C\"``, so " "there is no need to do anything special to use the API from C++." msgstr "" -#: ../Doc/c-api/intro.rst:95 +#: ../Doc/c-api/intro.rst:99 msgid "Useful macros" msgstr "" -#: ../Doc/c-api/intro.rst:97 +#: ../Doc/c-api/intro.rst:101 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`). " @@ -147,7 +153,7 @@ msgid "" "a complete listing." msgstr "" -#: ../Doc/c-api/intro.rst:104 +#: ../Doc/c-api/intro.rst:108 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 " @@ -155,50 +161,50 @@ msgid "" "where you might be tempted to put an ``assert(0)`` or ``abort()`` call." msgstr "" -#: ../Doc/c-api/intro.rst:113 +#: ../Doc/c-api/intro.rst:117 msgid "Return the absolute value of ``x``." msgstr "" -#: ../Doc/c-api/intro.rst:119 +#: ../Doc/c-api/intro.rst:123 msgid "Return the minimum value between ``x`` and ``y``." msgstr "" -#: ../Doc/c-api/intro.rst:125 +#: ../Doc/c-api/intro.rst:129 msgid "Return the maximum value between ``x`` and ``y``." msgstr "" -#: ../Doc/c-api/intro.rst:131 +#: ../Doc/c-api/intro.rst:135 msgid "" "Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." msgstr "" -#: ../Doc/c-api/intro.rst:138 +#: ../Doc/c-api/intro.rst:142 msgid "Return the size of a structure (``type``) ``member`` in bytes." msgstr "" -#: ../Doc/c-api/intro.rst:144 +#: ../Doc/c-api/intro.rst:148 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:149 +#: ../Doc/c-api/intro.rst:153 msgid "" "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:154 +#: ../Doc/c-api/intro.rst:158 msgid "" "Use this for unused arguments in a function definition to silence compiler " "warnings, e.g. ``PyObject* func(PyObject *Py_UNUSED(ignored))``." msgstr "" -#: ../Doc/c-api/intro.rst:163 +#: ../Doc/c-api/intro.rst:167 msgid "Objects, Types and Reference Counts" msgstr "" -#: ../Doc/c-api/intro.rst:167 +#: ../Doc/c-api/intro.rst:171 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 " @@ -213,7 +219,7 @@ msgid "" "objects." msgstr "" -#: ../Doc/c-api/intro.rst:178 +#: ../Doc/c-api/intro.rst:182 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." @@ -224,11 +230,11 @@ msgid "" "a Python list." msgstr "" -#: ../Doc/c-api/intro.rst:189 +#: ../Doc/c-api/intro.rst:193 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" -#: ../Doc/c-api/intro.rst:191 +#: ../Doc/c-api/intro.rst:195 msgid "" "The reference count is important because today's computers have a finite " "(and often severely limited) memory size; it counts how many different " @@ -242,7 +248,7 @@ msgid "" "for now, the solution is \"don't do that.\")" msgstr "" -#: ../Doc/c-api/intro.rst:206 +#: ../Doc/c-api/intro.rst:210 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 " @@ -260,7 +266,7 @@ msgid "" "reference count increment is a simple operation." msgstr "" -#: ../Doc/c-api/intro.rst:220 +#: ../Doc/c-api/intro.rst:224 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 " @@ -277,7 +283,7 @@ msgid "" "to hold a reference to every argument for the duration of the call." msgstr "" -#: ../Doc/c-api/intro.rst:234 +#: ../Doc/c-api/intro.rst:238 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 " @@ -288,7 +294,7 @@ msgid "" "from a :c:func:`Py_DECREF`, so almost any operation is potentially dangerous." msgstr "" -#: ../Doc/c-api/intro.rst:242 +#: ../Doc/c-api/intro.rst:246 msgid "" "A safe approach is to always use the generic operations (functions whose " "name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " @@ -298,11 +304,11 @@ msgid "" "becomes second nature." msgstr "" -#: ../Doc/c-api/intro.rst:252 +#: ../Doc/c-api/intro.rst:256 msgid "Reference Count Details" msgstr "" -#: ../Doc/c-api/intro.rst:254 +#: ../Doc/c-api/intro.rst:258 msgid "" "The reference count behavior of functions in the Python/C API is best " "explained in terms of *ownership of references*. Ownership pertains to " @@ -319,7 +325,7 @@ msgid "" "reference." msgstr "" -#: ../Doc/c-api/intro.rst:267 +#: ../Doc/c-api/intro.rst:271 msgid "" "Conversely, when a calling function passes in a reference to an object, " "there are two possibilities: the function *steals* a reference to the " @@ -328,7 +334,7 @@ msgid "" "reference, and you are not responsible for it any longer." msgstr "" -#: ../Doc/c-api/intro.rst:277 +#: ../Doc/c-api/intro.rst:281 msgid "" "Few functions steal references; the two notable exceptions are :c:func:" "`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to " @@ -340,7 +346,7 @@ msgid "" "below)::" msgstr "" -#: ../Doc/c-api/intro.rst:292 +#: ../Doc/c-api/intro.rst:296 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 " @@ -348,7 +354,7 @@ msgid "" "another reference before calling the reference-stealing function." msgstr "" -#: ../Doc/c-api/intro.rst:297 +#: ../Doc/c-api/intro.rst:301 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 " @@ -356,13 +362,13 @@ msgid "" "func:`PyTuple_SetItem` for tuples that you are creating yourself." msgstr "" -#: ../Doc/c-api/intro.rst:302 +#: ../Doc/c-api/intro.rst:306 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:305 +#: ../Doc/c-api/intro.rst:309 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:" @@ -371,7 +377,7 @@ msgid "" "be replaced by the following (which also takes care of the error checking)::" msgstr "" -#: ../Doc/c-api/intro.rst:316 +#: ../Doc/c-api/intro.rst:320 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 " @@ -382,7 +388,7 @@ msgid "" "sequence) to a given item::" msgstr "" -#: ../Doc/c-api/intro.rst:346 +#: ../Doc/c-api/intro.rst:350 msgid "" "The situation is slightly different for function return values. While " "passing a reference to most functions does not change your ownership " @@ -395,7 +401,7 @@ msgid "" "becomes the owner of the reference)." msgstr "" -#: ../Doc/c-api/intro.rst:355 +#: ../Doc/c-api/intro.rst:359 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 " @@ -406,18 +412,18 @@ msgid "" "the same arguments), you do own a reference to the returned object." msgstr "" -#: ../Doc/c-api/intro.rst:367 +#: ../Doc/c-api/intro.rst:371 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:431 +#: ../Doc/c-api/intro.rst:435 msgid "Types" msgstr "" -#: ../Doc/c-api/intro.rst:433 +#: ../Doc/c-api/intro.rst:437 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:" @@ -428,11 +434,11 @@ msgid "" "that use them." msgstr "" -#: ../Doc/c-api/intro.rst:445 +#: ../Doc/c-api/intro.rst:449 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/c-api/intro.rst:447 +#: ../Doc/c-api/intro.rst:451 msgid "" "The Python programmer only needs to deal with exceptions if specific error " "handling is required; unhandled exceptions are automatically propagated to " @@ -441,7 +447,7 @@ msgid "" "stack traceback." msgstr "" -#: ../Doc/c-api/intro.rst:455 +#: ../Doc/c-api/intro.rst:459 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 " @@ -456,7 +462,7 @@ msgid "" "explicitly documented." msgstr "" -#: ../Doc/c-api/intro.rst:470 +#: ../Doc/c-api/intro.rst:474 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 " @@ -469,7 +475,7 @@ msgid "" "clears the exception state." msgstr "" -#: ../Doc/c-api/intro.rst:480 +#: ../Doc/c-api/intro.rst:484 msgid "" "The full exception state consists of three objects (all of which can be " "*NULL*): the exception type, the corresponding exception value, and the " @@ -482,7 +488,7 @@ msgid "" "``sys.exc_info()`` and friends." msgstr "" -#: ../Doc/c-api/intro.rst:492 +#: ../Doc/c-api/intro.rst:496 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." @@ -496,7 +502,7 @@ msgid "" "referenced by the stack frames in the traceback." msgstr "" -#: ../Doc/c-api/intro.rst:503 +#: ../Doc/c-api/intro.rst:507 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 " @@ -507,7 +513,7 @@ msgid "" "of the error." msgstr "" -#: ../Doc/c-api/intro.rst:512 +#: ../Doc/c-api/intro.rst:516 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 " @@ -516,11 +522,11 @@ msgid "" "why you like Python, we show the equivalent Python code::" msgstr "" -#: ../Doc/c-api/intro.rst:527 +#: ../Doc/c-api/intro.rst:531 msgid "Here is the corresponding C code, in all its glory::" msgstr "" -#: ../Doc/c-api/intro.rst:579 +#: ../Doc/c-api/intro.rst:583 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:" @@ -533,11 +539,11 @@ msgid "" "success after the final call made is successful." msgstr "" -#: ../Doc/c-api/intro.rst:593 +#: ../Doc/c-api/intro.rst:597 msgid "Embedding Python" -msgstr "" +msgstr "Embarquer Python" -#: ../Doc/c-api/intro.rst:595 +#: ../Doc/c-api/intro.rst:599 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 " @@ -545,7 +551,7 @@ msgid "" "the interpreter can only be used after the interpreter has been initialized." msgstr "" -#: ../Doc/c-api/intro.rst:608 +#: ../Doc/c-api/intro.rst:612 msgid "" "The basic initialization function is :c:func:`Py_Initialize`. This " "initializes the table of loaded modules, and creates the fundamental " @@ -553,7 +559,7 @@ msgid "" "initializes the module search path (``sys.path``)." msgstr "" -#: ../Doc/c-api/intro.rst:615 +#: ../Doc/c-api/intro.rst:619 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 " @@ -561,7 +567,7 @@ msgid "" "argv, updatepath)`` after the call to :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/intro.rst:620 +#: ../Doc/c-api/intro.rst:624 msgid "" "On most systems (in particular, on Unix and Windows, although the details " "are slightly different), :c:func:`Py_Initialize` calculates the module " @@ -573,7 +579,7 @@ msgid "" "on the shell command search path (the environment variable :envvar:`PATH`)." msgstr "" -#: ../Doc/c-api/intro.rst:629 +#: ../Doc/c-api/intro.rst:633 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/" @@ -584,7 +590,7 @@ msgid "" "in front of the standard path by setting :envvar:`PYTHONPATH`." msgstr "" -#: ../Doc/c-api/intro.rst:644 +#: ../Doc/c-api/intro.rst:648 msgid "" "The embedding application can steer the search by calling " "``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note " @@ -595,7 +601,7 @@ msgid "" "func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)." msgstr "" -#: ../Doc/c-api/intro.rst:654 +#: ../Doc/c-api/intro.rst:658 msgid "" "Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " "application may want to start over (make another call to :c:func:" @@ -609,18 +615,18 @@ msgid "" "released." msgstr "" -#: ../Doc/c-api/intro.rst:668 +#: ../Doc/c-api/intro.rst:672 msgid "Debugging Builds" msgstr "" -#: ../Doc/c-api/intro.rst:670 +#: ../Doc/c-api/intro.rst:674 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:674 +#: ../Doc/c-api/intro.rst:678 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 " @@ -630,7 +636,7 @@ msgid "" "section." msgstr "" -#: ../Doc/c-api/intro.rst:680 +#: ../Doc/c-api/intro.rst:684 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:" @@ -640,61 +646,61 @@ msgid "" "enabled in the Unix build, compiler optimization is disabled." msgstr "" -#: ../Doc/c-api/intro.rst:687 +#: ../Doc/c-api/intro.rst:691 msgid "" "In addition to the reference count debugging described below, the following " "extra checks are performed:" msgstr "" -#: ../Doc/c-api/intro.rst:690 +#: ../Doc/c-api/intro.rst:694 msgid "Extra checks are added to the object allocator." msgstr "" -#: ../Doc/c-api/intro.rst:692 +#: ../Doc/c-api/intro.rst:696 msgid "Extra checks are added to the parser and compiler." msgstr "" -#: ../Doc/c-api/intro.rst:694 +#: ../Doc/c-api/intro.rst:698 msgid "" "Downcasts from wide types to narrow types are checked for loss of " "information." msgstr "" -#: ../Doc/c-api/intro.rst:696 +#: ../Doc/c-api/intro.rst:700 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:699 +#: ../Doc/c-api/intro.rst:703 msgid "Sanity checks of the input arguments are added to frame creation." msgstr "" -#: ../Doc/c-api/intro.rst:701 +#: ../Doc/c-api/intro.rst:705 msgid "" "The storage for ints is initialized with a known invalid pattern to catch " "reference to uninitialized digits." msgstr "" -#: ../Doc/c-api/intro.rst:704 +#: ../Doc/c-api/intro.rst:708 msgid "" "Low-level tracing and extra exception checking are added to the runtime " "virtual machine." msgstr "" -#: ../Doc/c-api/intro.rst:707 +#: ../Doc/c-api/intro.rst:711 msgid "Extra checks are added to the memory arena implementation." msgstr "" -#: ../Doc/c-api/intro.rst:709 +#: ../Doc/c-api/intro.rst:713 msgid "Extra debugging is added to the thread module." msgstr "" -#: ../Doc/c-api/intro.rst:711 +#: ../Doc/c-api/intro.rst:715 msgid "There may be additional checks not mentioned here." msgstr "" -#: ../Doc/c-api/intro.rst:713 +#: ../Doc/c-api/intro.rst:717 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 " @@ -704,7 +710,7 @@ msgid "" "macro:`Py_DEBUG`." msgstr "" -#: ../Doc/c-api/intro.rst:719 +#: ../Doc/c-api/intro.rst:723 msgid "" "Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution for more detailed information." diff --git a/c-api/iterator.po b/c-api/iterator.po index e5f73fdde..644360afe 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2017-12-13 08:47+0100\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2019-03-26 17:16+0100\n" +"Last-Translator: ANTOINE FOURES \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -26,11 +26,12 @@ msgid "" "sentinel value, calling the callable for each item in the sequence, and " "ending the iteration when the sentinel value is returned." msgstr "" -"Python fournit deux itérateurs génériques. Le premier est un itérateur de " -"séquence, il fonctionne avec n'importe quelle séquence gérant la méthode :" -"meth:`__getitem__`. Le second fonctionne avec un objet appelable et une " -"valeur sentinelle, il appelle l'appelable pour obtenir chaque élément de la " -"séquence, et l'itération se termine lorsque la sentinelle est reçue." +"Python fournit deux itérateurs d'usage générique. Le premier est un " +"itérateur de séquence, il fonctionne avec n'importe quelle séquence " +"implémentant la méthode :meth:`__getitem__`. Le second fonctionne avec un " +"objet appelable et une valeur sentinelle, l'appelable permet d'obtenir " +"chaque élément de la séquence, et l'itération se termine lorsque la " +"sentinelle est atteinte." #: ../Doc/c-api/iterator.rst:17 msgid "" @@ -38,10 +39,13 @@ msgid "" "one-argument form of the :func:`iter` built-in function for built-in " "sequence types." msgstr "" +"Type des itérateurs renvoyés par les fonctions :c:func:`PySeqIter_New` et la " +"forme à un argument de la fonction native :func:`iter` pour les séquences " +"natives." #: ../Doc/c-api/iterator.rst:24 msgid "Return true if the type of *op* is :c:data:`PySeqIter_Type`." -msgstr "" +msgstr "Renvoie vrai si *op* est de type :c:data:`PySeqIter_Type`." #: ../Doc/c-api/iterator.rst:29 msgid "" @@ -49,16 +53,20 @@ msgid "" "iteration ends when the sequence raises :exc:`IndexError` for the " "subscripting operation." msgstr "" +"Renvoie un itérateur sur la séquence *seq*. L'itération prend fin lorsque la " +"séquence lève :exc:`IndexError` lors d'une tentative d'accès." #: ../Doc/c-api/iterator.rst:36 msgid "" "Type object for iterator objects returned by :c:func:`PyCallIter_New` and " "the two-argument form of the :func:`iter` built-in function." msgstr "" +"Type de l'itérateur renvoyé par les fonctions :c:func:`PyCallIter_New` et :" +"func:`iter` à deux arguments." #: ../Doc/c-api/iterator.rst:42 msgid "Return true if the type of *op* is :c:data:`PyCallIter_Type`." -msgstr "" +msgstr "Renvoie vrai si *op* est de type :c:data:`PyCallIter_Type`." #: ../Doc/c-api/iterator.rst:47 msgid "" @@ -67,3 +75,7 @@ msgid "" "should return the next item in the iteration. When *callable* returns a " "value equal to *sentinel*, the iteration will be terminated." msgstr "" +"Renvoie un nouvel itérateur. Le premier paramètre, *callable*, peut être " +"n'importe quel objet Python appelable sans aucun paramètre ; chaque appel " +"doit renvoyer l'élément suivant de l'itération. Lorsque *callable* renvoie " +"une valeur égale à *sentinel*, l'itération prend fin." diff --git a/c-api/long.po b/c-api/long.po index 7f4b3da89..9262049f8 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-23 09:03+0100\n" +"POT-Creation-Date: 2019-06-10 10:50+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -158,8 +158,7 @@ msgstr "" #: ../Doc/c-api/long.rst:140 ../Doc/c-api/long.rst:154 #: ../Doc/c-api/long.rst:169 ../Doc/c-api/long.rst:183 -#: ../Doc/c-api/long.rst:200 ../Doc/c-api/long.rst:262 -#: ../Doc/c-api/long.rst:274 +#: ../Doc/c-api/long.rst:200 msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" @@ -270,37 +269,49 @@ msgid "" "the reduction of that value modulo ``ULONG_MAX + 1``." msgstr "" -#: ../Doc/c-api/long.rst:267 +#: ../Doc/c-api/long.rst:262 +msgid "" +"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:268 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:`__int__` " "method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:271 +#: ../Doc/c-api/long.rst:272 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:279 +#: ../Doc/c-api/long.rst:275 +msgid "" +"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " +"to disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:281 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:282 +#: ../Doc/c-api/long.rst:284 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`double`." msgstr "" -#: ../Doc/c-api/long.rst:285 +#: ../Doc/c-api/long.rst:287 msgid "" "Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:290 +#: ../Doc/c-api/long.rst:292 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 " @@ -308,6 +319,6 @@ msgid "" "c:func:`PyLong_FromVoidPtr`." msgstr "" -#: ../Doc/c-api/long.rst:295 +#: ../Doc/c-api/long.rst:297 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 fa5bcbc6f..b715a0c74 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\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" "Language-Team: FRENCH \n" @@ -16,13 +16,15 @@ msgstr "" #: ../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`." #: ../Doc/c-api/mapping.rst:14 msgid "" @@ -37,6 +39,8 @@ 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 msgid "" @@ -58,38 +62,68 @@ 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:66 +#: ../Doc/c-api/mapping.rst:59 ../Doc/c-api/mapping.rst:70 msgid "" "Return ``1`` if the mapping object has the key *key* and ``0`` otherwise. " "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 "" +"Note that exceptions which occur while calling the :meth:`__getitem__` " +"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:73 +#: ../Doc/c-api/mapping.rst:74 +msgid "" +"Note that exceptions which occur while calling the :meth:`__getitem__` " +"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*." msgstr "" -#: ../Doc/c-api/mapping.rst:76 ../Doc/c-api/mapping.rst:85 -#: ../Doc/c-api/mapping.rst:94 +#: ../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:82 +#: ../Doc/c-api/mapping.rst:90 msgid "" "On success, return a list of the values in object *o*. On failure, return " "*NULL*." msgstr "" -#: ../Doc/c-api/mapping.rst:91 +#: ../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*." diff --git a/c-api/memory.po b/c-api/memory.po index 43225c692..1692f8227 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -20,7 +20,7 @@ msgstr "" #: ../Doc/c-api/memory.rst:17 msgid "Overview" -msgstr "" +msgstr "Aperçu" #: ../Doc/c-api/memory.rst:19 msgid "" @@ -387,7 +387,7 @@ msgstr "" #: ../Doc/c-api/memory.rst:340 msgid "Configuration" -msgstr "" +msgstr "Configuration" #: ../Doc/c-api/memory.rst:340 msgid "Name" @@ -437,7 +437,7 @@ msgstr "" msgid "``pymalloc`` + debug" msgstr "" -#: ../Doc/c-api/memory.rst:344 ../Doc/c-api/memory.rst:345 +#: ../Doc/c-api/memory.rst:344 msgid "Release build, without pymalloc" msgstr "" @@ -445,6 +445,10 @@ msgstr "" msgid "``\"malloc\"``" msgstr "" +#: ../Doc/c-api/memory.rst:345 +msgid "Debug build, without pymalloc" +msgstr "" + #: ../Doc/c-api/memory.rst:345 msgid "``\"malloc_debug\"``" msgstr "" @@ -482,19 +486,19 @@ msgid "" "fields:" msgstr "" -#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:506 +#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513 msgid "Field" -msgstr "" +msgstr "Champ" -#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:506 +#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513 msgid "Meaning" msgstr "Signification" -#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:508 +#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:515 msgid "``void *ctx``" msgstr "``void *ctx``" -#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:508 +#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:515 msgid "user context passed as first argument" msgstr "" @@ -627,36 +631,37 @@ msgstr "" #: ../Doc/c-api/memory.rst:443 msgid "" -"Newly allocated memory is filled with the byte ``0xCB``, freed memory is " -"filled with the byte ``0xDB``." +"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:446 +#: ../Doc/c-api/memory.rst:447 msgid "Runtime checks:" msgstr "" -#: ../Doc/c-api/memory.rst:448 +#: ../Doc/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:450 +#: ../Doc/c-api/memory.rst:451 msgid "Detect write before the start of the buffer (buffer underflow)" msgstr "" -#: ../Doc/c-api/memory.rst:451 +#: ../Doc/c-api/memory.rst:452 msgid "Detect write after the end of the buffer (buffer overflow)" msgstr "" -#: ../Doc/c-api/memory.rst:452 +#: ../Doc/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:457 +#: ../Doc/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 " @@ -664,7 +669,7 @@ msgid "" "memory block was traced." msgstr "" -#: ../Doc/c-api/memory.rst:462 +#: ../Doc/c-api/memory.rst:463 msgid "" "These hooks are :ref:`installed by default ` if " "Python is compiled in debug mode. The :envvar:`PYTHONMALLOC` environment " @@ -672,7 +677,7 @@ msgid "" "mode." msgstr "" -#: ../Doc/c-api/memory.rst:467 +#: ../Doc/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 " @@ -681,11 +686,18 @@ msgid "" "`PYMEM_DOMAIN_MEM` domains are called." msgstr "" -#: ../Doc/c-api/memory.rst:478 +#: ../Doc/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 msgid "The pymalloc allocator" msgstr "" -#: ../Doc/c-api/memory.rst:480 +#: ../Doc/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 " @@ -694,83 +706,83 @@ msgid "" "512 bytes." msgstr "" -#: ../Doc/c-api/memory.rst:485 +#: ../Doc/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:489 +#: ../Doc/c-api/memory.rst:496 msgid "The arena allocator uses the following functions:" msgstr "" -#: ../Doc/c-api/memory.rst:491 +#: ../Doc/c-api/memory.rst:498 msgid ":c:func:`VirtualAlloc` and :c:func:`VirtualFree` on Windows," msgstr "" -#: ../Doc/c-api/memory.rst:492 +#: ../Doc/c-api/memory.rst:499 msgid ":c:func:`mmap` and :c:func:`munmap` if available," msgstr "" -#: ../Doc/c-api/memory.rst:493 +#: ../Doc/c-api/memory.rst:500 msgid ":c:func:`malloc` and :c:func:`free` otherwise." msgstr "" -#: ../Doc/c-api/memory.rst:496 +#: ../Doc/c-api/memory.rst:503 msgid "Customize pymalloc Arena Allocator" msgstr "" -#: ../Doc/c-api/memory.rst:502 +#: ../Doc/c-api/memory.rst:509 msgid "" "Structure used to describe an arena allocator. The structure has three " "fields:" msgstr "" -#: ../Doc/c-api/memory.rst:510 +#: ../Doc/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:510 +#: ../Doc/c-api/memory.rst:517 msgid "allocate an arena of size bytes" msgstr "" -#: ../Doc/c-api/memory.rst:512 +#: ../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)``" -#: ../Doc/c-api/memory.rst:512 +#: ../Doc/c-api/memory.rst:519 msgid "free an arena" msgstr "" -#: ../Doc/c-api/memory.rst:517 +#: ../Doc/c-api/memory.rst:524 msgid "Get the arena allocator." msgstr "" -#: ../Doc/c-api/memory.rst:521 +#: ../Doc/c-api/memory.rst:528 msgid "Set the arena allocator." msgstr "" -#: ../Doc/c-api/memory.rst:525 +#: ../Doc/c-api/memory.rst:532 msgid "tracemalloc C API" msgstr "" -#: ../Doc/c-api/memory.rst:549 +#: ../Doc/c-api/memory.rst:556 msgid "Examples" msgstr "Exemples" -#: ../Doc/c-api/memory.rst:551 +#: ../Doc/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:564 +#: ../Doc/c-api/memory.rst:571 msgid "The same code using the type-oriented function set::" msgstr "" -#: ../Doc/c-api/memory.rst:576 +#: ../Doc/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 " @@ -780,14 +792,14 @@ msgid "" "different allocators operating on different heaps. ::" msgstr "" -#: ../Doc/c-api/memory.rst:591 +#: ../Doc/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:595 +#: ../Doc/c-api/memory.rst:602 msgid "" "These will be explained in the next chapter on defining and implementing new " "object types in C." diff --git a/c-api/memoryview.po b/c-api/memoryview.po index 733a12901..395a03b8f 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -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,6 +85,10 @@ 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 "" diff --git a/c-api/number.po b/c-api/number.po index dbccb6ae6..0e2b87843 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -280,5 +280,6 @@ msgstr "" #: ../Doc/c-api/number.rst:281 msgid "" "Returns ``1`` if *o* is an index integer (has the nb_index slot of the " -"tp_as_number structure filled in), and ``0`` otherwise." +"tp_as_number structure filled in), and ``0`` otherwise. This function always " +"succeeds." msgstr "" diff --git a/c-api/objbuffer.po b/c-api/objbuffer.po index f10d70126..b8fa1e503 100644 --- a/c-api/objbuffer.po +++ b/c-api/objbuffer.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-01-29 00:24+0100\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-04-11 19:43+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" #: ../Doc/c-api/objbuffer.rst:4 msgid "Old Buffer Protocol" -msgstr "Ancien *Buffer Protocol*" +msgstr "Ancien Protocole Tampon" #: ../Doc/c-api/objbuffer.rst:8 msgid "" @@ -27,12 +28,12 @@ msgid "" "you control over the lifetime of the resources acquired when a buffer is " "exported." msgstr "" -"Ces fonctions faisaient partie de l'API de l'ancien protocol de tampons dans " -"Python 2. Dans Python 3, ce protocole n'existe plus, mais les fonctions sont " -"toujours exposées pour simplifier le portage de code Python 2.x. Elles se " -"comportent comme une abstraction de compatibilité du :ref:`nouveau protocole " -"de tampons `, mais sans vous donner de contrôle sur la durée " -"de vie des resources acquises lorsqu'un tampon est exporté." +"Ces fonctions faisaient partie de l'API de l'ancien protocole de tampons " +"dans Python 2. Dans Python 3, ce protocole n'existe plus, mais les fonctions " +"sont toujours exposées pour simplifier le portage de code Python 2.x. Elles " +"se comportent comme une abstraction de compatibilité du :ref:`nouveau " +"protocole de tampons `, mais sans vous donner de contrôle sur " +"la durée de vie des ressources acquises lorsqu'un tampon est exporté." #: ../Doc/c-api/objbuffer.rst:15 msgid "" @@ -54,6 +55,12 @@ msgid "" "and *buffer_len* to the buffer length. Returns ``-1`` and sets a :exc:" "`TypeError` on error." msgstr "" +"Retourne un pointeur vers un emplacement de mémoire en lecture seule " +"utilisable en tant qu'entrée basée sur des caractères. L'argument *obj* doit " +"prendre en charge l'interface de tampon de caractère à segment unique. En " +"cas de succès, retourne ``0``, définit *buffer* à l'emplacement de la " +"mémoire et *buffer_len* à la longueur de la mémoire tampon. Retourne ``-1`` " +"et affecte une exception :exc:`TypeError` en cas d'erreur." #: ../Doc/c-api/objbuffer.rst:32 msgid "" @@ -63,24 +70,42 @@ msgid "" "and *buffer_len* to the buffer length. Returns ``-1`` and sets a :exc:" "`TypeError` on error." msgstr "" +"Retourne un pointeur vers un emplacement de mémoire en lecture seule " +"contenant des données arbitraires. L'argument *obj* doit prendre en charge " +"l'interface de tampon lisible à segment unique. En cas de succès, retourne " +"``0``, définit *buffer* à l'emplacement de la mémoire et *buffer_len* à la " +"longueur de la mémoire tampon. Renvoie ``-1`` et affecte l'exception :exc:" +"`TypeError` en cas d'erreur." #: ../Doc/c-api/objbuffer.rst:41 msgid "" "Returns ``1`` if *o* supports the single-segment readable buffer interface. " -"Otherwise returns ``0``." +"Otherwise returns ``0``. This function always succeeds." msgstr "" -"Renvoie ``1`` si *o* gère l'interface *single-segment readable buffer*, " -"``0`` sinon." +"Retourne ``1`` si *o* prend en charge l'interface de mémoire tampon lisible " +"à segment unique. Sinon, renvoie ``0``. Cette fonction réussit toujours." -#: ../Doc/c-api/objbuffer.rst:47 +#: ../Doc/c-api/objbuffer.rst:44 +msgid "" +"Note that this function tries to get and release a buffer, and exceptions " +"which occur while calling corresponding functions will get suppressed. To " +"get error reporting use :c:func:`PyObject_GetBuffer()` instead." +msgstr "" +"Notez que cette fonction tente d'obtenir et de libérer une mémoire tampon, " +"et les exceptions qui se produisent lors de l'appel des fonctions " +"correspondantes seront supprimées. Pour que les erreurs vous soient " +"signalées, utilisez :c:func:`PyObject_GetBuffer()` à la place." + +#: ../Doc/c-api/objbuffer.rst:51 msgid "" "Returns a pointer to a writable memory location. The *obj* argument must " "support the single-segment, character buffer interface. On success, returns " "``0``, sets *buffer* to the memory location and *buffer_len* to the buffer " "length. Returns ``-1`` and sets a :exc:`TypeError` on error." msgstr "" -"Renvoie un pointeur vers un espace mémoire dans lequel il est possible " -"décrire. L'argument *obj* doit gérer l'interface *single-segment, character " -"buffer*. Si tout s'est bien passé, ``0`` est renvoyé, *buffer* pointe vers " -"l'espace mémoire, et *buffer_len* vaudra la taille du buffer. Renvoie ``-1`` " -"et met l'exception :exc:`TypeError` en cas d'erreur." +"Retourne un pointeur vers un emplacement de mémoire accessible en écriture. " +"L'argument *obj* doit prendre en charge l'interface de mémoire tampon de " +"caractère à segment unique. En cas de succès, retourne ``0``, définit " +"*buffer* à l'emplacement de la mémoire et *buffer_len* à la longueur de la " +"mémoire tampon. Renvoie ``-1`` et affecte l'exception :exc:`TypeError` en " +"cas d'erreur." diff --git a/c-api/object.po b/c-api/object.po index 1b6bccb81..a8b685247 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -5,24 +5,27 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2019-08-16 22:56+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\n" #: ../Doc/c-api/object.rst:6 msgid "Object Protocol" -msgstr "" +msgstr "Protocole Objet" #: ../Doc/c-api/object.rst:11 msgid "" "The ``NotImplemented`` singleton, used to signal that an operation is not " "implemented for the given type combination." 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 msgid "" @@ -30,6 +33,9 @@ msgid "" "function (that is, increment the reference count of NotImplemented and " "return it)." msgstr "" +"Traite proprement le renvoi de :c:data:`Py_NotImplemented` depuis " +"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 msgid "" @@ -38,29 +44,58 @@ msgid "" "currently supported is :const:`Py_PRINT_RAW`; if given, the :func:`str` of " "the object is written instead of the :func:`repr`." msgstr "" +"Écrit un objet *o*, dans le fichier *fp*. Renvoie ``-1`` en cas d'erreur. " +"L'argument *flags* est utilisé pour permettre certaines options de rendu. La " +"seule option actuellement gérée est :const:`Py_PRINT_RAW` ; si cet argument " +"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:39 +#: ../Doc/c-api/object.rst:32 ../Doc/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 " "function always succeeds." msgstr "" +"Renvoie ``1`` si *o* a l'attribut *attr_name*, et ``0`` sinon. Ceci est " +"équivalent à l'expression Python ``hasattr(o, attr_name)``. Cette fonction " +"réussit toujours." + +#: ../Doc/c-api/object.rst:36 +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 "" -#: ../Doc/c-api/object.rst:46 +#: ../Doc/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 " +"suppressed. To get error reporting use :c:func:`PyObject_GetAttrString()` " +"instead." +msgstr "" + +#: ../Doc/c-api/object.rst:55 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``." 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:53 +#: ../Doc/c-api/object.rst:62 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``." 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:60 +#: ../Doc/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 " @@ -69,27 +104,42 @@ msgid "" "descriptors take preference over instance attributes, while non-data " "descriptors don't. Otherwise, an :exc:`AttributeError` is raised." msgstr "" +"Accesseur d'attribut générique destiné à être mis dans le *slot* " +"``tp_getattro`` d'un objet type. Recherche un descripteur dans le " +"dictionnaire de classes du MRO de l'objet ainsi qu'un attribut dans le :attr:" +"`~object.__dict__` de l'objet (si présent). Comme défini dans :ref:" +"`descriptors`, les descripteurs de données sont prioritaires sur les " +"attributs d'instance, contrairement aux autres descripteurs. Sinon, une :exc:" +"`AttributeError` est levée." -#: ../Doc/c-api/object.rst:70 ../Doc/c-api/object.rst:81 +#: ../Doc/c-api/object.rst:79 ../Doc/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 " "success. This is the equivalent of the Python statement ``o.attr_name = 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:75 +#: ../Doc/c-api/object.rst:84 msgid "" "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:86 +#: ../Doc/c-api/object.rst:95 msgid "" "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:92 +#: ../Doc/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 " @@ -100,26 +150,41 @@ msgid "" "returned, otherwise an :exc:`AttributeError` is raised and ``-1`` is " "returned." msgstr "" +"Accesseur et suppresseur générique d'attributs qui est fait pour être mis " +"dans le :c:member:`~PyTypeObject.tp_setattro` d'un objet type. Il cherche un " +"descripteur de données dans le dictionnaire de classes dans le MRO de " +"l'objet et, si ce descripteur est trouvé, c'est lui qui est utilisé de " +"préférence pour la suppression et la définition de l'attribut dans le " +"dictionnaire d'instance. Sinon, l'attribut est défini ou supprimé dans le :" +"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:104 ../Doc/c-api/object.rst:110 +#: ../Doc/c-api/object.rst:113 ../Doc/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``." msgstr "" +"Supprime l'attribut nommé *attr_name*, pour l'objet *o*. Renvoie ``-1`` en " +"cas d'échec. Ceci est l'équivalent de l'expression Python ``del o." +"attr_name``." -#: ../Doc/c-api/object.rst:116 +#: ../Doc/c-api/object.rst:125 msgid "" "A generic implementation for the getter of a ``__dict__`` descriptor. It " "creates the dictionary if necessary." 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:124 +#: ../Doc/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." 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:132 +#: ../Doc/c-api/object.rst:141 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:" @@ -129,8 +194,15 @@ msgid "" "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 " +"*opid*, qui doit être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" +"`Py_NE`, :const:`Py_GT`, ou :const:`Py_GE`, correspondant à ``<``, ``<=``, " +"``==``, ``!=``, ``>``, ou ``>=`` respectivement. Ceci est l'équivalent de " +"l'expression Python ``o1 op o2``, où ``op`` est l'opérateur correspondant à " +"*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en " +"cas d'échec." -#: ../Doc/c-api/object.rst:142 +#: ../Doc/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:" @@ -140,27 +212,42 @@ msgid "" "Python expression ``o1 op o2``, where ``op`` is the operator corresponding " "to *opid*." msgstr "" +"Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par " +"*opid*, qui doit être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" +"`Py_NE`, :const:`Py_GT`, ou :const:`Py_GE`, correspondant à ``<``, ``<=``, " +"``==``, ``!=``, ``>``, ou ``>=`` respectivement. Renvoie ``-1`` en cas " +"d'erreur, ``0`` si le résultat est faux, et ``1`` sinon. Ceci est " +"l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur " +"correspondant à *opid*." -#: ../Doc/c-api/object.rst:151 +#: ../Doc/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`." 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:158 +#: ../Doc/c-api/object.rst:167 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." 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:162 ../Doc/c-api/object.rst:186 +#: ../Doc/c-api/object.rst:171 ../Doc/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." 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:170 +#: ../Doc/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:" @@ -168,197 +255,256 @@ msgid "" "string similar to that returned by :c:func:`PyObject_Repr` in Python 2. " "Called by the :func:`ascii` built-in function." 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 " +"renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction " +"native :func:`ascii`." -#: ../Doc/c-api/object.rst:181 +#: ../Doc/c-api/object.rst:190 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." 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 ``str(o)``. Appelée " +"par la fonction native :func:`str`, et, par conséquent, par la fonction :" +"func:`print`." -#: ../Doc/c-api/object.rst:194 +#: ../Doc/c-api/object.rst:203 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." 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 " +"est l'équivalent de l'expression Python ``bytes(o)``, quand *o* n'est pas un " +"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:203 +#: ../Doc/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``." 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:206 ../Doc/c-api/object.rst:225 +#: ../Doc/c-api/object.rst:215 ../Doc/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``, " "otherwise it will be ``0``." msgstr "" +"Si *cls* est un tuple, la vérification est menée sur chaque entrée de *cls*. " +"Le résultat sera ``1`` quand au moins une des vérifications renvoie ``1``, " +"sinon ce sera ``0``." -#: ../Doc/c-api/object.rst:210 +#: ../Doc/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, " "*derived* is a subclass of *cls* if it is a direct or indirect subclass, i." "e. contained in ``cls.__mro__``." msgstr "" +"Si *cls* a une méthode :meth:`~class.__subclasscheck__`, elle est appelée " +"pour déterminer le statut de la sous-classe comme décrit dans :pep:`3119`. " +"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:215 +#: ../Doc/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 " "a :attr:`__bases__` attribute (which must be a tuple of base classes)." msgstr "" +"Normalement seulement les classes objets, c'est-à-dire les instances de :" +"class:`type` ou d'une classe dérivée, sont considérées classes. Cependant, " +"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:222 +#: ../Doc/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." msgstr "" +"Renvoie ``1`` si *inst* est une instance de la classe *cls* ou une sous-" +"classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et " +"initialise une exception." -#: ../Doc/c-api/object.rst:229 +#: ../Doc/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, " "*inst* is an instance of *cls* if its class is a subclass of *cls*." msgstr "" +"Si *cls* a une méthode :meth:`~class.__subclasscheck__`, elle sera appelée " +"pour déterminer le statut de la sous-classe comme décrit dans :pep:`3119`. " +"Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de " +"*cls*." -#: ../Doc/c-api/object.rst:233 +#: ../Doc/c-api/object.rst:242 msgid "" "An instance *inst* can override what is considered its class by having a :" "attr:`__class__` attribute." 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:236 +#: ../Doc/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 " "of base classes)." msgstr "" +"Un objet *cls* peut surcharger s'il est considéré comme une classe, et ce " +"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:243 +#: ../Doc/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." 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:249 +#: ../Doc/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*." 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:252 +#: ../Doc/c-api/object.rst:261 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*." 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:255 ../Doc/c-api/object.rst:266 -#: ../Doc/c-api/object.rst:277 ../Doc/c-api/object.rst:296 -#: ../Doc/c-api/object.rst:314 -msgid "Returns the result of the call on success, or *NULL* on failure." +#: ../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 +msgid "" +"Return the result of the call on success, or raise an exception and return " +"*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:257 +#: ../Doc/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:263 +#: ../Doc/c-api/object.rst:273 msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " "*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:268 ../Doc/c-api/object.rst:279 +#: ../Doc/c-api/object.rst:279 ../Doc/c-api/object.rst:291 msgid "This is the equivalent of the Python expression: ``callable(*args)``." -msgstr "" +msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``." -#: ../Doc/c-api/object.rst:273 +#: ../Doc/c-api/object.rst:284 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." 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:281 +#: ../Doc/c-api/object.rst:293 msgid "" "Note that if you only pass :c:type:`PyObject \\*` args, :c:func:" "`PyObject_CallFunctionObjArgs` is a faster alternative." msgstr "" -#: ../Doc/c-api/object.rst:284 +#: ../Doc/c-api/object.rst:296 msgid "The type of *format* was changed from ``char *``." msgstr "" -#: ../Doc/c-api/object.rst:290 +#: ../Doc/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:294 +#: ../Doc/c-api/object.rst:306 msgid "The format can be *NULL*, indicating that no arguments are provided." msgstr "" -#: ../Doc/c-api/object.rst:298 +#: ../Doc/c-api/object.rst:311 msgid "" "This is the equivalent of the Python expression: ``obj.name(arg1, " "arg2, ...)``." msgstr "" -#: ../Doc/c-api/object.rst:301 +#: ../Doc/c-api/object.rst:314 msgid "" "Note that if you only pass :c:type:`PyObject \\*` args, :c:func:" "`PyObject_CallMethodObjArgs` is a faster alternative." msgstr "" -#: ../Doc/c-api/object.rst:304 +#: ../Doc/c-api/object.rst:317 msgid "The types of *name* and *format* were changed from ``char *``." msgstr "" -#: ../Doc/c-api/object.rst:310 +#: ../Doc/c-api/object.rst:323 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*." msgstr "" -#: ../Doc/c-api/object.rst:316 +#: ../Doc/c-api/object.rst:330 msgid "" "This is the equivalent of the Python expression: ``callable(arg1, " "arg2, ...)``." msgstr "" -#: ../Doc/c-api/object.rst:322 +#: ../Doc/c-api/object.rst:336 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*. Returns the result of the " -"call on success, or *NULL* on failure." +"variable number of parameters followed by *NULL*." msgstr "" -#: ../Doc/c-api/object.rst:333 +#: ../Doc/c-api/object.rst:349 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:336 +#: ../Doc/c-api/object.rst:352 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:343 +#: ../Doc/c-api/object.rst:359 msgid "" "Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and " "return ``-1``. This function receives special treatment when stored in a " @@ -366,21 +512,21 @@ msgid "" "that it is not hashable." msgstr "" -#: ../Doc/c-api/object.rst:351 +#: ../Doc/c-api/object.rst:367 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:358 +#: ../Doc/c-api/object.rst:374 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:367 +#: ../Doc/c-api/object.rst:383 msgid "" "When *o* is non-*NULL*, returns a type object corresponding to the object " "type of object *o*. On failure, raises :exc:`SystemError` and returns " @@ -391,13 +537,13 @@ msgid "" "except when the incremented reference count is needed." msgstr "" -#: ../Doc/c-api/object.rst:378 +#: ../Doc/c-api/object.rst:394 msgid "" "Return true if the object *o* is of type *type* or a subtype of *type*. " "Both parameters must be non-*NULL*." msgstr "" -#: ../Doc/c-api/object.rst:387 +#: ../Doc/c-api/object.rst:403 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, " @@ -405,7 +551,7 @@ msgid "" "``len(o)``." msgstr "" -#: ../Doc/c-api/object.rst:394 +#: ../Doc/c-api/object.rst:410 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 " @@ -413,26 +559,26 @@ msgid "" "equivalent to the Python expression ``operator.length_hint(o, default)``." msgstr "" -#: ../Doc/c-api/object.rst:404 +#: ../Doc/c-api/object.rst:420 msgid "" "Return element of *o* corresponding to the object *key* or *NULL* on " "failure. This is the equivalent of the Python expression ``o[key]``." msgstr "" -#: ../Doc/c-api/object.rst:410 +#: ../Doc/c-api/object.rst:426 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``." msgstr "" -#: ../Doc/c-api/object.rst:417 +#: ../Doc/c-api/object.rst:433 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 "" -#: ../Doc/c-api/object.rst:423 +#: ../Doc/c-api/object.rst:439 msgid "" "This is equivalent to the Python expression ``dir(o)``, returning a " "(possibly empty) list of strings appropriate for the object argument, or " @@ -442,7 +588,7 @@ msgid "" "`PyErr_Occurred` will return false." msgstr "" -#: ../Doc/c-api/object.rst:432 +#: ../Doc/c-api/object.rst:448 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 " diff --git a/c-api/reflection.po b/c-api/reflection.po index 0560ed3b5..3fc439a99 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-02-26 12:01+0100\n" +"Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -16,41 +16,52 @@ msgstr "" #: ../Doc/c-api/reflection.rst:6 msgid "Reflection" -msgstr "" +msgstr "Réflexion" #: ../Doc/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." msgstr "" +"Renvoie un dictionnaire des fonctions natives de la *frame* en cours " +"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 msgid "" "Return a dictionary of the local variables in the current execution frame, " "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 msgid "" "Return a dictionary of the global variables in the current execution frame, " "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 msgid "" "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 msgid "Return the line number that *frame* is currently executing." -msgstr "" +msgstr "Renvoie le numéro de ligne que *frame* est en train d'exécuter" #: ../Doc/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." 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 msgid "" @@ -59,3 +70,8 @@ msgid "" "and \" object\". Concatenated with the result of :c:func:" "`PyEval_GetFuncName`, the result will be a description of *func*." 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 " +"résultat sera une description de *func*" diff --git a/c-api/stable.po b/c-api/stable.po index 4918d0392..2eb5a69c6 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-01-21 23:58+0100\n" +"PO-Revision-Date: 2018-10-04 12:26+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" diff --git a/c-api/structures.po b/c-api/structures.po index 607d4171c..aa3cd2e96 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -117,82 +117,92 @@ msgstr "" #: ../Doc/c-api/structures.rst:117 msgid "" -"Type of the functions used to implement Python callables in C that take " -"keyword arguments: they take three :c:type:`PyObject\\*` parameters and " -"return one such value. See :c:type:`PyCFunction` above for the meaning of " -"the return value." +"Type of the functions used to implement Python callables in C with " +"signature :const:`METH_VARARGS | METH_KEYWORDS`." msgstr "" -#: ../Doc/c-api/structures.rst:125 +#: ../Doc/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 +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 msgid "" "Structure used to describe a method of an extension type. This structure " "has four fields:" msgstr "" -#: ../Doc/c-api/structures.rst:129 ../Doc/c-api/structures.rst:240 -#: ../Doc/c-api/structures.rst:305 +#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 +#: ../Doc/c-api/structures.rst:345 msgid "Field" -msgstr "" +msgstr "Champ" -#: ../Doc/c-api/structures.rst:129 ../Doc/c-api/structures.rst:240 -#: ../Doc/c-api/structures.rst:305 +#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 +#: ../Doc/c-api/structures.rst:345 msgid "C Type" msgstr "Type C" -#: ../Doc/c-api/structures.rst:129 ../Doc/c-api/structures.rst:240 -#: ../Doc/c-api/structures.rst:305 +#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 +#: ../Doc/c-api/structures.rst:345 msgid "Meaning" msgstr "Signification" -#: ../Doc/c-api/structures.rst:131 +#: ../Doc/c-api/structures.rst:141 msgid ":attr:`ml_name`" msgstr "" -#: ../Doc/c-api/structures.rst:131 ../Doc/c-api/structures.rst:139 -#: ../Doc/c-api/structures.rst:242 ../Doc/c-api/structures.rst:255 -#: ../Doc/c-api/structures.rst:271 ../Doc/c-api/structures.rst:307 -#: ../Doc/c-api/structures.rst:315 +#: ../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 msgid "const char \\*" msgstr "" -#: ../Doc/c-api/structures.rst:131 +#: ../Doc/c-api/structures.rst:141 msgid "name of the method" msgstr "" -#: ../Doc/c-api/structures.rst:133 +#: ../Doc/c-api/structures.rst:143 msgid ":attr:`ml_meth`" msgstr "" -#: ../Doc/c-api/structures.rst:133 +#: ../Doc/c-api/structures.rst:143 msgid "PyCFunction" msgstr "PyCFunction" -#: ../Doc/c-api/structures.rst:133 +#: ../Doc/c-api/structures.rst:143 msgid "pointer to the C implementation" msgstr "" -#: ../Doc/c-api/structures.rst:136 +#: ../Doc/c-api/structures.rst:146 msgid ":attr:`ml_flags`" msgstr "" -#: ../Doc/c-api/structures.rst:136 ../Doc/c-api/structures.rst:244 -#: ../Doc/c-api/structures.rst:251 ../Doc/c-api/structures.rst:267 +#: ../Doc/c-api/structures.rst:146 ../Doc/c-api/structures.rst:283 +#: ../Doc/c-api/structures.rst:290 ../Doc/c-api/structures.rst:306 msgid "int" msgstr "*int*" -#: ../Doc/c-api/structures.rst:136 +#: ../Doc/c-api/structures.rst:146 msgid "flag bits indicating how the call should be constructed" msgstr "" -#: ../Doc/c-api/structures.rst:139 +#: ../Doc/c-api/structures.rst:149 msgid ":attr:`ml_doc`" msgstr "" -#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:255 +#: ../Doc/c-api/structures.rst:149 ../Doc/c-api/structures.rst:294 msgid "points to the contents of the docstring" msgstr "" -#: ../Doc/c-api/structures.rst:143 +#: ../Doc/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 " @@ -202,16 +212,21 @@ msgid "" "implementation uses the specific C type of the *self* object." msgstr "" -#: ../Doc/c-api/structures.rst:150 +#: ../Doc/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. Of the calling convention flags, only :const:" -"`METH_VARARGS` and :const:`METH_KEYWORDS` can be combined. Any of the " -"calling convention flags can be combined with a binding flag." +"binding convention." +msgstr "" + +#: ../Doc/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:159 +#: ../Doc/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. " @@ -221,16 +236,40 @@ msgid "" "using :c:func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." msgstr "" -#: ../Doc/c-api/structures.rst:169 +#: ../Doc/c-api/structures.rst:180 msgid "" "Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " -"The function expects three parameters: *self*, *args*, and a dictionary of " -"all the keyword arguments. The flag must be combined with :const:" -"`METH_VARARGS`, and the parameters are typically processed using :c:func:" -"`PyArg_ParseTupleAndKeywords`." +"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 " +"using :c:func:`PyArg_ParseTupleAndKeywords`." msgstr "" -#: ../Doc/c-api/structures.rst:178 +#: ../Doc/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 " +"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 +msgid "This is not part of the :ref:`limited API `." +msgstr "" + +#: ../Doc/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." +msgstr "" + +#: ../Doc/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 " @@ -239,7 +278,7 @@ msgid "" "the second parameter will be *NULL*." msgstr "" -#: ../Doc/c-api/structures.rst:187 +#: ../Doc/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\"`` " @@ -248,7 +287,7 @@ msgid "" "argument." msgstr "" -#: ../Doc/c-api/structures.rst:193 +#: ../Doc/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 " @@ -256,27 +295,27 @@ msgid "" "any given method." msgstr "" -#: ../Doc/c-api/structures.rst:203 +#: ../Doc/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:213 +#: ../Doc/c-api/structures.rst:252 msgid "" "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:217 +#: ../Doc/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:223 +#: ../Doc/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 " @@ -289,190 +328,190 @@ msgid "" "calls." msgstr "" -#: ../Doc/c-api/structures.rst:236 +#: ../Doc/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:242 +#: ../Doc/c-api/structures.rst:281 msgid ":attr:`name`" msgstr "" -#: ../Doc/c-api/structures.rst:242 +#: ../Doc/c-api/structures.rst:281 msgid "name of the member" msgstr "" -#: ../Doc/c-api/structures.rst:244 +#: ../Doc/c-api/structures.rst:283 msgid ":attr:`!type`" msgstr "" -#: ../Doc/c-api/structures.rst:244 +#: ../Doc/c-api/structures.rst:283 msgid "the type of the member in the C struct" msgstr "" -#: ../Doc/c-api/structures.rst:247 +#: ../Doc/c-api/structures.rst:286 msgid ":attr:`offset`" msgstr "" -#: ../Doc/c-api/structures.rst:247 ../Doc/c-api/structures.rst:283 +#: ../Doc/c-api/structures.rst:286 ../Doc/c-api/structures.rst:322 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/structures.rst:247 +#: ../Doc/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:251 +#: ../Doc/c-api/structures.rst:290 msgid ":attr:`flags`" msgstr "" -#: ../Doc/c-api/structures.rst:251 +#: ../Doc/c-api/structures.rst:290 msgid "flag bits indicating if the field should be read-only or writable" msgstr "" -#: ../Doc/c-api/structures.rst:255 +#: ../Doc/c-api/structures.rst:294 msgid ":attr:`doc`" msgstr "" -#: ../Doc/c-api/structures.rst:259 +#: ../Doc/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:264 +#: ../Doc/c-api/structures.rst:303 msgid "Macro name" msgstr "" -#: ../Doc/c-api/structures.rst:264 +#: ../Doc/c-api/structures.rst:303 msgid "C type" msgstr "Type C" -#: ../Doc/c-api/structures.rst:266 +#: ../Doc/c-api/structures.rst:305 msgid "T_SHORT" msgstr "" -#: ../Doc/c-api/structures.rst:266 +#: ../Doc/c-api/structures.rst:305 msgid "short" msgstr "" -#: ../Doc/c-api/structures.rst:267 +#: ../Doc/c-api/structures.rst:306 msgid "T_INT" msgstr "" -#: ../Doc/c-api/structures.rst:268 +#: ../Doc/c-api/structures.rst:307 msgid "T_LONG" msgstr "" -#: ../Doc/c-api/structures.rst:268 +#: ../Doc/c-api/structures.rst:307 msgid "long" msgstr "" -#: ../Doc/c-api/structures.rst:269 +#: ../Doc/c-api/structures.rst:308 msgid "T_FLOAT" msgstr "" -#: ../Doc/c-api/structures.rst:269 +#: ../Doc/c-api/structures.rst:308 msgid "float" msgstr "*float*" -#: ../Doc/c-api/structures.rst:270 +#: ../Doc/c-api/structures.rst:309 msgid "T_DOUBLE" msgstr "" -#: ../Doc/c-api/structures.rst:270 +#: ../Doc/c-api/structures.rst:309 msgid "double" msgstr "double" -#: ../Doc/c-api/structures.rst:271 +#: ../Doc/c-api/structures.rst:310 msgid "T_STRING" msgstr "" -#: ../Doc/c-api/structures.rst:272 +#: ../Doc/c-api/structures.rst:311 msgid "T_OBJECT" msgstr "" -#: ../Doc/c-api/structures.rst:272 ../Doc/c-api/structures.rst:273 +#: ../Doc/c-api/structures.rst:311 ../Doc/c-api/structures.rst:312 msgid "PyObject \\*" msgstr "PyObject \\*" -#: ../Doc/c-api/structures.rst:273 +#: ../Doc/c-api/structures.rst:312 msgid "T_OBJECT_EX" msgstr "" -#: ../Doc/c-api/structures.rst:274 +#: ../Doc/c-api/structures.rst:313 msgid "T_CHAR" msgstr "" -#: ../Doc/c-api/structures.rst:274 ../Doc/c-api/structures.rst:275 -#: ../Doc/c-api/structures.rst:280 +#: ../Doc/c-api/structures.rst:313 ../Doc/c-api/structures.rst:314 +#: ../Doc/c-api/structures.rst:319 msgid "char" msgstr "char" -#: ../Doc/c-api/structures.rst:275 +#: ../Doc/c-api/structures.rst:314 msgid "T_BYTE" msgstr "" -#: ../Doc/c-api/structures.rst:276 +#: ../Doc/c-api/structures.rst:315 msgid "T_UBYTE" msgstr "" -#: ../Doc/c-api/structures.rst:276 +#: ../Doc/c-api/structures.rst:315 msgid "unsigned char" -msgstr "unsigned char" +msgstr "``unsigned char``" -#: ../Doc/c-api/structures.rst:277 +#: ../Doc/c-api/structures.rst:316 msgid "T_UINT" msgstr "" -#: ../Doc/c-api/structures.rst:277 +#: ../Doc/c-api/structures.rst:316 msgid "unsigned int" -msgstr "unsigned int" +msgstr "``unsigned int``" -#: ../Doc/c-api/structures.rst:278 +#: ../Doc/c-api/structures.rst:317 msgid "T_USHORT" msgstr "" -#: ../Doc/c-api/structures.rst:278 +#: ../Doc/c-api/structures.rst:317 msgid "unsigned short" -msgstr "unsigned short" +msgstr "``unsigned short``" -#: ../Doc/c-api/structures.rst:279 +#: ../Doc/c-api/structures.rst:318 msgid "T_ULONG" msgstr "" -#: ../Doc/c-api/structures.rst:279 +#: ../Doc/c-api/structures.rst:318 msgid "unsigned long" -msgstr "unsigned long" +msgstr "``unsigned long``" -#: ../Doc/c-api/structures.rst:280 +#: ../Doc/c-api/structures.rst:319 msgid "T_BOOL" msgstr "" -#: ../Doc/c-api/structures.rst:281 +#: ../Doc/c-api/structures.rst:320 msgid "T_LONGLONG" msgstr "" -#: ../Doc/c-api/structures.rst:281 +#: ../Doc/c-api/structures.rst:320 msgid "long long" msgstr "" -#: ../Doc/c-api/structures.rst:282 +#: ../Doc/c-api/structures.rst:321 msgid "T_ULONGLONG" msgstr "" -#: ../Doc/c-api/structures.rst:282 +#: ../Doc/c-api/structures.rst:321 msgid "unsigned long long" -msgstr "unsigned long long" +msgstr "``unsigned long long``" -#: ../Doc/c-api/structures.rst:283 +#: ../Doc/c-api/structures.rst:322 msgid "T_PYSSIZET" msgstr "" -#: ../Doc/c-api/structures.rst:286 +#: ../Doc/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:" @@ -482,95 +521,96 @@ msgid "" "than :c:macro:`T_OBJECT`." msgstr "" -#: ../Doc/c-api/structures.rst:293 +#: ../Doc/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`. Only :c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` " -"members can be deleted. (They are set to *NULL*)." +"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*)." msgstr "" -#: ../Doc/c-api/structures.rst:301 +#: ../Doc/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:307 +#: ../Doc/c-api/structures.rst:347 msgid "name" msgstr "" -#: ../Doc/c-api/structures.rst:307 +#: ../Doc/c-api/structures.rst:347 msgid "attribute name" msgstr "" -#: ../Doc/c-api/structures.rst:309 +#: ../Doc/c-api/structures.rst:349 msgid "get" msgstr "" -#: ../Doc/c-api/structures.rst:309 +#: ../Doc/c-api/structures.rst:349 msgid "getter" msgstr "" -#: ../Doc/c-api/structures.rst:309 +#: ../Doc/c-api/structures.rst:349 msgid "C Function to get the attribute" msgstr "" -#: ../Doc/c-api/structures.rst:311 +#: ../Doc/c-api/structures.rst:351 msgid "set" msgstr "" -#: ../Doc/c-api/structures.rst:311 +#: ../Doc/c-api/structures.rst:351 msgid "setter" msgstr "" -#: ../Doc/c-api/structures.rst:311 +#: ../Doc/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:315 +#: ../Doc/c-api/structures.rst:355 msgid "doc" msgstr "" -#: ../Doc/c-api/structures.rst:315 +#: ../Doc/c-api/structures.rst:355 msgid "optional docstring" msgstr "" -#: ../Doc/c-api/structures.rst:317 +#: ../Doc/c-api/structures.rst:357 msgid "closure" msgstr "" -#: ../Doc/c-api/structures.rst:317 +#: ../Doc/c-api/structures.rst:357 msgid "void \\*" msgstr "" -#: ../Doc/c-api/structures.rst:317 +#: ../Doc/c-api/structures.rst:357 msgid "" "optional function pointer, providing additional data for getter and setter" msgstr "" -#: ../Doc/c-api/structures.rst:322 +#: ../Doc/c-api/structures.rst:362 msgid "" "The ``get`` function takes one :c:type:`PyObject\\*` parameter (the " "instance) and a function pointer (the associated ``closure``)::" msgstr "" -#: ../Doc/c-api/structures.rst:327 +#: ../Doc/c-api/structures.rst:367 msgid "" "It should return a new reference on success or *NULL* with a set exception " "on failure." msgstr "" -#: ../Doc/c-api/structures.rst:330 +#: ../Doc/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``)::" msgstr "" -#: ../Doc/c-api/structures.rst:335 +#: ../Doc/c-api/structures.rst:375 msgid "" "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." diff --git a/c-api/tuple.po b/c-api/tuple.po index 4a3ac347c..ea67c7601 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -150,7 +150,7 @@ msgstr "" #: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 msgid "C Type" diff --git a/c-api/type.po b/c-api/type.po index 5a69ed158..8be0c2f28 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" "PO-Revision-Date: 2018-02-15 00:33+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -52,51 +52,55 @@ msgid "" "c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API." msgstr "" -#: ../Doc/c-api/type.rst:50 +#: ../Doc/c-api/type.rst:47 +msgid "The return type is now ``unsigned long`` rather than ``long``." +msgstr "" + +#: ../Doc/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:57 +#: ../Doc/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:63 +#: ../Doc/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:69 +#: ../Doc/c-api/type.rst:72 msgid "Return true if *a* is a subtype of *b*." msgstr "" -#: ../Doc/c-api/type.rst:71 +#: ../Doc/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:79 +#: ../Doc/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*." msgstr "" -#: ../Doc/c-api/type.rst:85 +#: ../Doc/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:90 +#: ../Doc/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 " @@ -104,13 +108,13 @@ msgid "" "and sets an exception on error." msgstr "" -#: ../Doc/c-api/type.rst:97 +#: ../Doc/c-api/type.rst:100 msgid "" "Creates and returns a heap type object from the *spec* passed to the " "function." msgstr "" -#: ../Doc/c-api/type.rst:101 +#: ../Doc/c-api/type.rst:104 msgid "" "Creates and returns a heap type object from the *spec*. In addition to that, " "the created heap type contains all types contained by the *bases* tuple as " @@ -118,7 +122,7 @@ msgid "" "types." msgstr "" -#: ../Doc/c-api/type.rst:109 +#: ../Doc/c-api/type.rst:112 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 " diff --git a/c-api/typeobj.po b/c-api/typeobj.po index fabd8965d..89058cbda 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -1505,7 +1505,7 @@ msgid "" "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 inplace addition via the :c:member:" +"assignment ``+=``, after trying numeric in-place addition via the :c:member:" "`~PyNumberMethods.nb_inplace_add` slot." msgstr "" @@ -1515,7 +1515,7 @@ msgid "" "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 inplace multiplication via the :c:" +"assignment ``*=``, after trying numeric in-place multiplication via the :c:" "member:`~PyNumberMethods.nb_inplace_multiply` slot." msgstr "" diff --git a/c-api/unicode.po b/c-api/unicode.po index 72d687138..71623f6c6 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-10-04 12:27+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -42,20 +42,20 @@ msgstr "" #: ../Doc/c-api/unicode.rst:25 msgid "" -"Due to the transition between the old APIs and the new APIs, unicode objects " +"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 "" #: ../Doc/c-api/unicode.rst:28 msgid "" -"\"canonical\" unicode objects are all objects created by a non-deprecated " -"unicode API. They use the most efficient representation allowed by the " +"\"canonical\" Unicode objects are all objects created by a non-deprecated " +"Unicode API. They use the most efficient representation allowed by the " "implementation." msgstr "" #: ../Doc/c-api/unicode.rst:32 msgid "" -"\"legacy\" unicode objects have been created through one of the deprecated " +"\"legacy\" Unicode objects have been created through one of the deprecated " "APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the :c:type:" "`Py_UNICODE*` representation; you will have to call :c:func:" "`PyUnicode_READY` on them before calling any other API." @@ -162,7 +162,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:155 msgid "" -"Return a void pointer to the raw unicode buffer. *o* has to be a Unicode " +"Return a void pointer to the raw Unicode buffer. *o* has to be a Unicode " "object in the \"canonical\" representation (not checked)." msgstr "" @@ -429,7 +429,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:432 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 " +"arguments, calculate the size of the resulting Python Unicode string and " "return a string with the values formatted into it. The variable arguments " "must be C types and must correspond exactly to the format characters in the " "*format* ASCII-encoded string. The following format characters are allowed:" @@ -437,7 +437,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:447 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" #: ../Doc/c-api/unicode.rst:447 msgid "Type" @@ -486,7 +486,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:457 msgid "unsigned int" -msgstr "unsigned int" +msgstr "``unsigned int``" #: ../Doc/c-api/unicode.rst:457 msgid "Equivalent to ``printf(\"%u\")``. [1]_" @@ -518,7 +518,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:466 msgid "unsigned long" -msgstr "unsigned long" +msgstr "``unsigned long``" #: ../Doc/c-api/unicode.rst:466 msgid "Equivalent to ``printf(\"%lu\")``. [1]_" @@ -550,7 +550,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:475 msgid "unsigned long long" -msgstr "unsigned long long" +msgstr "``unsigned long long``" #: ../Doc/c-api/unicode.rst:475 msgid "Equivalent to ``printf(\"%llu\")``. [1]_" @@ -649,8 +649,9 @@ msgid ":attr:`%U`" msgstr "" #: ../Doc/c-api/unicode.rst:507 -msgid "A unicode object." -msgstr "Un objet unicode." +#, fuzzy +msgid "A Unicode object." +msgstr "Un objet Unicode." #: ../Doc/c-api/unicode.rst:509 msgid ":attr:`%V`" @@ -662,7 +663,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:509 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*)." msgstr "" @@ -1905,7 +1906,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:1673 msgid "" -"Compare a unicode object, *uni*, with *string* and return ``-1``, ``0``, " +"Compare a Unicode object, *uni*, with *string* and return ``-1``, ``0``, " "``1`` for less than, equal, and greater than, respectively. It is best to " "pass only ASCII-encoded strings, but the function interprets the input " "string as ISO-8859-1 if it contains non-ASCII characters." @@ -1916,7 +1917,7 @@ msgid "This function does not raise exceptions." msgstr "" #: ../Doc/c-api/unicode.rst:1683 -msgid "Rich compare two unicode strings and return one of the following:" +msgid "Rich compare two Unicode strings and return one of the following:" msgstr "" #: ../Doc/c-api/unicode.rst:1685 @@ -1958,7 +1959,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:1710 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 " +"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 " "and incrementing the reference count of the interned string object), " @@ -1971,7 +1972,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:1723 msgid "" "A combination of :c:func:`PyUnicode_FromString` and :c:func:" -"`PyUnicode_InternInPlace`, returning either a new unicode string object that " +"`PyUnicode_InternInPlace`, returning either a new Unicode string object that " "has been interned, or a new (\"owned\") reference to an earlier interned " "string object with the same value." msgstr "" diff --git a/c-api/utilities.po b/c-api/utilities.po index ae3bcd6a0..4a8b48b7b 100644 --- a/c-api/utilities.po +++ b/c-api/utilities.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2017-10-18 09:03+0200\n" +"PO-Revision-Date: 2018-10-04 12:27+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -27,5 +27,5 @@ msgid "" msgstr "" "Les fonctions de ce chapitre sont utilitaires, certaines aident à rendre le " "code en C plus portable, d'autres à utiliser des modules Python depuis du C, " -"parser des arguments de fonctions, ou encore construire des valeurs Python à " -"partir de valeurs C." +"analyser des arguments de fonctions, ou encore construire des valeurs Python " +"à partir de valeurs C." diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index 2957d75e7..23fc0d531 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -136,13 +136,20 @@ msgid "" "PyRun_SimpleFileExFlags returns." msgstr "" -#: ../Doc/c-api/veryhigh.rst:115 +#: ../Doc/c-api/veryhigh.rst:113 +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 " +"correctly." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:119 msgid "" "This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " "leaving *flags* set to *NULL*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:121 +#: ../Doc/c-api/veryhigh.rst:125 msgid "" "Read and execute a single statement from a file associated with an " "interactive device according to the *flags* argument. The user will be " @@ -150,7 +157,7 @@ msgid "" "filesystem encoding (:func:`sys.getfilesystemencoding`)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:126 +#: ../Doc/c-api/veryhigh.rst:130 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 " @@ -159,13 +166,13 @@ msgid "" "specifically if needed.)" msgstr "" -#: ../Doc/c-api/veryhigh.rst:135 +#: ../Doc/c-api/veryhigh.rst:139 msgid "" "This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` " "below, leaving *flags* set to *NULL*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:141 +#: ../Doc/c-api/veryhigh.rst:145 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`` " @@ -174,7 +181,7 @@ msgid "" "upon failure." msgstr "" -#: ../Doc/c-api/veryhigh.rst:150 +#: ../Doc/c-api/veryhigh.rst:154 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 " @@ -184,7 +191,7 @@ msgid "" "the Python source code." msgstr "" -#: ../Doc/c-api/veryhigh.rst:161 +#: ../Doc/c-api/veryhigh.rst:165 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 " @@ -195,34 +202,34 @@ msgid "" "line-editing and tab-completion features." msgstr "" -#: ../Doc/c-api/veryhigh.rst:170 +#: ../Doc/c-api/veryhigh.rst:174 msgid "" "The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:" "func:`PyMem_RawRealloc`, or *NULL* if an error occurred." msgstr "" -#: ../Doc/c-api/veryhigh.rst:173 +#: ../Doc/c-api/veryhigh.rst:177 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:181 +#: ../Doc/c-api/veryhigh.rst:185 msgid "" "This is a simplified interface to :c:func:" "`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to " "*NULL* and *flags* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:188 +#: ../Doc/c-api/veryhigh.rst:192 msgid "" "This is a simplified interface to :c:func:" "`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to " "*NULL*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:195 +#: ../Doc/c-api/veryhigh.rst:199 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 " @@ -231,25 +238,25 @@ msgid "" "(:func:`sys.getfilesystemencoding`)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:204 +#: ../Doc/c-api/veryhigh.rst:208 msgid "" "This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` " "below, leaving *flags* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:210 +#: ../Doc/c-api/veryhigh.rst:214 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:216 +#: ../Doc/c-api/veryhigh.rst:220 msgid "" "This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " "*flags* set to *NULL*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:222 +#: ../Doc/c-api/veryhigh.rst:226 msgid "" "Execute Python source code from *str* in the context specified by the " "objects *globals* and *locals* with the compiler flags specified by " @@ -258,31 +265,31 @@ msgid "" "token that should be used to parse the source code." msgstr "" -#: ../Doc/c-api/veryhigh.rst:228 +#: ../Doc/c-api/veryhigh.rst:232 msgid "" "Returns the result of executing the code as a Python object, or *NULL* if an " "exception was raised." msgstr "" -#: ../Doc/c-api/veryhigh.rst:234 +#: ../Doc/c-api/veryhigh.rst:238 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0`` and *flags* set to *NULL*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:240 +#: ../Doc/c-api/veryhigh.rst:244 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*flags* set to *NULL*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:246 +#: ../Doc/c-api/veryhigh.rst:250 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:252 +#: ../Doc/c-api/veryhigh.rst:256 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 " @@ -291,19 +298,19 @@ msgid "" "func:`PyRun_FileExFlags` returns." msgstr "" -#: ../Doc/c-api/veryhigh.rst:261 +#: ../Doc/c-api/veryhigh.rst:265 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " "leaving *flags* set to *NULL*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:267 +#: ../Doc/c-api/veryhigh.rst:271 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " "with *optimize* set to ``-1``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:273 +#: ../Doc/c-api/veryhigh.rst:277 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 " @@ -314,7 +321,7 @@ msgid "" "returns *NULL* if the code cannot be parsed or compiled." msgstr "" -#: ../Doc/c-api/veryhigh.rst:281 +#: ../Doc/c-api/veryhigh.rst:285 msgid "" "The integer *optimize* specifies the optimization level of the compiler; a " "value of ``-1`` selects the optimization level of the interpreter as given " @@ -323,41 +330,41 @@ msgid "" "or ``2`` (docstrings are removed too)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:292 +#: ../Doc/c-api/veryhigh.rst:296 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:299 +#: ../Doc/c-api/veryhigh.rst:303 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*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:306 +#: ../Doc/c-api/veryhigh.rst:310 msgid "" "Evaluate a precompiled code object, given a particular environment for its " "evaluation. This environment consists of a dictionary of global variables, " "a mapping object of local variables, arrays of arguments, keywords and " -"defaults, a dictionary of default values for :ref:`keyword-only\\ ` arguments and a closure tuple of cells." msgstr "" -#: ../Doc/c-api/veryhigh.rst:315 +#: ../Doc/c-api/veryhigh.rst:319 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 "" -#: ../Doc/c-api/veryhigh.rst:321 +#: ../Doc/c-api/veryhigh.rst:325 msgid "" "Evaluate an execution frame. This is a simplified interface to :c:func:" "`PyEval_EvalFrameEx`, for backward compatibility." msgstr "" -#: ../Doc/c-api/veryhigh.rst:327 +#: ../Doc/c-api/veryhigh.rst:331 msgid "" "This is the main, unvarnished function of Python interpretation. It is " "literally 2000 lines long. The code object associated with the execution " @@ -367,39 +374,41 @@ msgid "" "`~generator.throw` methods of generator objects." msgstr "" -#: ../Doc/c-api/veryhigh.rst:334 +#: ../Doc/c-api/veryhigh.rst:338 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." 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:341 +#: ../Doc/c-api/veryhigh.rst:345 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:349 +#: ../Doc/c-api/veryhigh.rst:353 msgid "" "The start symbol from the Python grammar for isolated expressions; for use " "with :c:func:`Py_CompileString`." msgstr "" -#: ../Doc/c-api/veryhigh.rst:357 +#: ../Doc/c-api/veryhigh.rst:361 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:366 +#: ../Doc/c-api/veryhigh.rst:370 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:373 +#: ../Doc/c-api/veryhigh.rst:377 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 " @@ -407,14 +416,14 @@ msgid "" "case, ``from __future__ import`` can modify *flags*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:378 +#: ../Doc/c-api/veryhigh.rst:382 msgid "" "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:389 +#: ../Doc/c-api/veryhigh.rst:393 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 b2bd1d742..d3a18d9ca 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-03-29 14:17+0100\n" +"Last-Translator: Andy Kwok \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/c-api/weakref.rst:6 msgid "Weak Reference Objects" -msgstr "" +msgstr "Objets à références faibles" #: ../Doc/c-api/weakref.rst:8 msgid "" @@ -25,18 +26,22 @@ msgid "" "is a simple reference object, and the second acts as a proxy for the " "original object as much as it can." msgstr "" +"Python gère les *références faibles* comme des objets de première classe. Il " +"existe deux types d'objets spécifiques qui implémentent directement les " +"références faibles. Le premier est un objet de référence simple, et le " +"second agit autant que possible comme un mandataire vers l'objet original." #: ../Doc/c-api/weakref.rst:16 msgid "Return true if *ob* is either a reference or proxy object." -msgstr "" +msgstr "Renvoie vrai si *ob* est soit une référence, soit un objet proxy." #: ../Doc/c-api/weakref.rst:21 msgid "Return true if *ob* is a reference object." -msgstr "" +msgstr "Retourne vrai si *ob* est un objet référence." #: ../Doc/c-api/weakref.rst:26 msgid "Return true if *ob* is a proxy object." -msgstr "" +msgstr "Retourne vrai si *ob* est un objet proxy" #: ../Doc/c-api/weakref.rst:31 msgid "" @@ -49,6 +54,16 @@ msgid "" "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 " +"objet est créé ; un objet référence existant peut être renvoyé. Le second " +"paramètre, *callback*, peut être un objet appelable qui reçoit une " +"notification lorsque *ob* est collecté par le ramasse-miette (*garbage " +"collected* en anglais) ; il doit accepter un paramètre unique, qui est " +"l'objet référence faible lui-même. *callback* peut aussi être positionné à " +"``None`` ou à *NULL*. Si *ob* n'est pas un objet faiblement référençable, " +"ou si *callback* n'est pas appelable, ``None``` ou *NULL*, ceci retourne " +"*NULL* et lève une :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:43 msgid "" @@ -61,12 +76,23 @@ msgid "" "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 " +"d'un nouvel objet ; un objet proxy existant peut être retourné. Le second " +"paramètre, *callback*, peut être un objet appelable qui reçoit une " +"notification lorsque *ob* est collecté ; il doit accepter un seul paramètre, " +"qui sera l'objet de référence faible lui-même. *callback* peut aussi être " +"``None`` ou *NULLL*. Si *ob* n'est pas un objet faiblement référençable, ou " +"si *callback* n'est pas appelable, ``None``` ou *NULL*, ceci renvoie *NULL* " +"et lève une :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:55 msgid "" "Return the referenced object from a weak reference, *ref*. If the referent " "is no longer live, returns :const:`Py_None`." msgstr "" +"Retourne l'objet référencé à partir d'une référence faible, *ref*. Si le " +"référence n'existe plus, alors l'objet renvoie :const:`Py_None`." #: ../Doc/c-api/weakref.rst:60 msgid "" @@ -74,9 +100,15 @@ msgid "" "This means that you should always call :c:func:`Py_INCREF` on the object " "except if you know that it cannot be destroyed while you are still using it." msgstr "" +"Cette fonction renvoie une **référence empruntée** à l'objet référencé. Cela " +"signifie que vous devez toujours appeler :c:func:`Py_INCREF` sur l'objet " +"sauf si vous savez qu'il ne peut pas être détruit tant que vous l'utilisez " +"encore." #: ../Doc/c-api/weakref.rst:68 msgid "" "Similar to :c:func:`PyWeakref_GetObject`, but implemented as a macro that " "does no error checking." msgstr "" +"Similaire à :c:func:`PyWeakref_GetObject`, mais implémenté comme une macro " +"qui ne vérifie pas les erreurs." diff --git a/copyright.po b/copyright.po index 026b87e99..c816adfd6 100644 --- a/copyright.po +++ b/copyright.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-08 09:58+0100\n" -"PO-Revision-Date: 2018-07-23 22:39+0200\n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2019-01-03 16:59+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -23,9 +23,9 @@ msgid "Python and this documentation is:" msgstr "Python et cette documentation sont :" #: ../Doc/copyright.rst:7 -msgid "Copyright © 2001-2018 Python Software Foundation. All rights reserved." +msgid "Copyright © 2001-2019 Python Software Foundation. All rights reserved." msgstr "" -"Copyright © 2001-2018 *Python Software Foundation*. Tout droits réservés." +"Copyright © 2001-2019 Python Software Foundation. Tous droits réservés." #: ../Doc/copyright.rst:9 msgid "Copyright © 2000 BeOpen.com. All rights reserved." diff --git a/dict b/dict index e64fc826c..a9bbba819 100644 --- a/dict +++ b/dict @@ -1,79 +1,190 @@ -017F -12h -212A +#python-fr +-1 +-ième +-uplet +-uplets +017f +212a +ahlstrom allocateur allocateurs +base16 +base32 +base64 +base85 batch +boguer +c++ c- -C- -C99 -Catucci +c/c++ +C14N +C89 +c99 +chacha20 +cadriciel +cadriciels +catucci +cobjects +composabilité concourance -coroutine +contravariante +contravariantes +configurateurs +contribués coroutine coroutines +cpython +curryfication +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érialisé déserialiser -déserialisés déserialiseur déserialiseurs -d'itérateurs +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 -Fredrik -Guido +ethnomathématiques +farrugia +finaliseur +frederik +fredrik +freeze +glibc +guido hachabilité hachable hachables -Hettinger -ı --ième -import -imports +hettinger +html indiçage +indo-arabes +ininterruptible +interchangés +intralignes +ios +ipv4 itérateur itérateurs +ième +journalise journaliser -Jr. -Kuchling +journaliseur +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é +mersenne +mertz +Monty +muabilité +muable +muables +multiensemble +multiensembles +mutex mémoïsant -Mersenne +mémoïsation métacaractère métacaractères métaclasse métaclasses -muable -muables +n-ième namespace +non-hachable +non-hachables +pdb pip pourcent -préemptif proleptique +précompilé +préemptif +préremplis +py2exe +pyc +pychecker +pydb +pylint +pythonwin +qu +re +recompilation +reedy +relationelle +retraçage +réentrant +réentrante réentrants réessayable +réexécuter +référençable référençables +réimplémente +réimplémenter +réimplémentez résolveurs -ſ -sérialisable +réusinage +réusinages +réusiné +réutilisabilité +serwy +shell +slot +smalltalk +sqlite +surprenamment sérialisable sérialisables sérialiser sérialiseur -Serwy -shell +sérialisé +sérialisée +sérialisées +sérialisés +tk tokenisation tokenisé tokenisés tty -Zope -délimitants +uplets +utf-8 +utf-16 +utf-32 +von +w3c +world +wxwidgets +x11 +x86 +zope +émoji +ı +ſ diff --git a/distributing/index.po b/distributing/index.po index 39ec979b1..b0f8269fa 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-08-01 00:05+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 20:39+0200\n" +"Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -32,7 +32,7 @@ msgid "" "supporting community of contributors and users that also make their software " "available for other Python developers to use under open source license terms." msgstr "" -"En temps que logiciel libre populaire, Python bénéficie d'une communauté " +"En tant que logiciel libre populaire, Python bénéficie d'une communauté " "active de contributeurs et d'utilisateurs qui rendent à leur tour leurs " "logiciels disponibles, sous licence libre, pour les autres développeurs " "Python." @@ -222,7 +222,7 @@ msgid "" msgstr "" "Les outils de construction de paquets et de distribution actuellement " "recommandées peuvent être installées en invoquant le module ``pip`` dans une " -"invite de commande : ::" +"invite de commande ::" #: ../Doc/distributing/index.rst:104 msgid "" @@ -250,56 +250,56 @@ msgstr "" "Le *Python Packaging User Guide* contient plus de détails sur les `(en) " "outils actuellement recommandés `_." -#: ../Doc/distributing/index.rst:117 -msgid "Reading the guide" -msgstr "Lire le manuel" +#: ../Doc/distributing/index.rst:123 +msgid "Reading the Python Packaging User Guide" +msgstr "Consultez le *Python Packaging User Guide*" -#: ../Doc/distributing/index.rst:119 +#: ../Doc/distributing/index.rst:125 msgid "" "The Python Packaging User Guide covers the various key steps and elements " -"involved in creating a project:" +"involved in creating and publishing a project:" msgstr "" "Le *Python Packaging User Guide* couvre les différentes étapes et les " -"éléments clés de la création d'un projet :" +"éléments clés de la création et publication d'un projet :" -#: ../Doc/distributing/index.rst:122 +#: ../Doc/distributing/index.rst:128 msgid "`Project structure`_" msgstr "`(en) Structure d'un projet `_" -#: ../Doc/distributing/index.rst:123 +#: ../Doc/distributing/index.rst:129 msgid "`Building and packaging the project`_" msgstr "" "`(en) Construire et empaqueter le projet `_" -#: ../Doc/distributing/index.rst:124 +#: ../Doc/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:135 +#: ../Doc/distributing/index.rst:141 msgid "How do I...?" msgstr "Comment puis-je ...?" -#: ../Doc/distributing/index.rst:137 +#: ../Doc/distributing/index.rst:143 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:140 +#: ../Doc/distributing/index.rst:146 msgid "... choose a name for my project?" msgstr "... choisir un nom pour mon projet ?" -#: ../Doc/distributing/index.rst:142 +#: ../Doc/distributing/index.rst:148 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:144 +#: ../Doc/distributing/index.rst:150 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:145 +#: ../Doc/distributing/index.rst:151 msgid "" "check popular hosting sites like GitHub, BitBucket, etc to see if there is " "already a project with that name" @@ -307,12 +307,12 @@ 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" -#: ../Doc/distributing/index.rst:147 +#: ../Doc/distributing/index.rst:153 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:148 +#: ../Doc/distributing/index.rst:154 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 +322,11 @@ msgstr "" "significations, car pour vos utilisateurs, cela complique la recherche de " "votre logiciel" -#: ../Doc/distributing/index.rst:154 +#: ../Doc/distributing/index.rst:160 msgid "... create and distribute binary extensions?" msgstr "... créer et distribuer des extensions binaires ?" -#: ../Doc/distributing/index.rst:156 +#: ../Doc/distributing/index.rst:162 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,10 +336,13 @@ 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:162 +#: ../Doc/distributing/index.rst:168 msgid "" "`Python Packaging User Guide: Binary Extensions `__" msgstr "" "`Python Packaging User Guide: Binary Extensions `__" + +#~ msgid "Reading the guide" +#~ msgstr "Lire le manuel" diff --git a/distutils/apiref.po b/distutils/apiref.po index 273ecbb74..835176a00 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-06-10 23:27+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2019-04-11 18:00+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 1.8.11\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/distutils/apiref.rst:5 msgid "API Reference" @@ -22,6 +22,7 @@ msgstr "Référence de l'API" #: ../Doc/distutils/apiref.rst:9 msgid ":mod:`distutils.core` --- Core Distutils functionality" msgstr "" +":mod:`distutils.core` --- Fonctionnalités principales du module Distutils" #: ../Doc/distutils/apiref.rst:15 msgid "" @@ -32,8 +33,8 @@ msgid "" msgstr "" "Le module :mod:`distutils.core` est le seul module qui a besoin d'être " "installé pour utiliser Distutils. Il fournit le :func:`setup` (qui est " -"appelé par le script de setup). Il fournit indirectement les classes :class:" -"`distutils.dist.Distribution` et :class:`distutils.cmd.Command`." +"appelé par le script *setup.py*). Il fournit indirectement les classes :" +"class:`distutils.dist.Distribution` et :class:`distutils.cmd.Command`." #: ../Doc/distutils/apiref.rst:23 msgid "" @@ -48,8 +49,8 @@ msgid "" "The setup function takes a large number of arguments. These are laid out in " "the following table." msgstr "" -"La fonction setup prend un grand nombre d'arguments. Ils sont présentés dans " -"le tableau suivant." +"La fonction ``setup`` prend un grand nombre d'arguments. Ils sont présentés " +"dans le tableau suivant." #: ../Doc/distutils/apiref.rst:32 ../Doc/distutils/apiref.rst:175 msgid "argument name" @@ -78,7 +79,7 @@ msgstr "Le nom du paquet" #: ../Doc/distutils/apiref.rst:51 ../Doc/distutils/apiref.rst:58 #: ../Doc/distutils/apiref.rst:62 ../Doc/distutils/apiref.rst:65 #: ../Doc/distutils/apiref.rst:86 ../Doc/distutils/apiref.rst:96 -#: ../Doc/distutils/apiref.rst:177 ../Doc/distutils/apiref.rst:267 +#: ../Doc/distutils/apiref.rst:177 ../Doc/distutils/apiref.rst:268 msgid "a string" msgstr "une chaîne de caractères" @@ -132,6 +133,9 @@ msgid "" "if the maintainer is provided, distutils will use it as the author in :file:" "`PKG-INFO`" msgstr "" +"Le nom de l'actuel mainteneur, s'il est différent de l'auteur. Remarquez que " +"si *maintainer* est fourni, *distutils* l'utilise à la place de *author* " +"dans :file:`PKG-INFO`." #: ../Doc/distutils/apiref.rst:58 msgid "*maintainer_email*" @@ -164,16 +168,16 @@ msgstr "*packages*" #: ../Doc/distutils/apiref.rst:67 msgid "A list of Python packages that distutils will manipulate" -msgstr "Une liste des paquets Python que distutils va manipuler" +msgstr "Une liste des paquets Python que *distutils* va manipuler" #: ../Doc/distutils/apiref.rst:67 ../Doc/distutils/apiref.rst:70 #: ../Doc/distutils/apiref.rst:73 ../Doc/distutils/apiref.rst:90 -#: ../Doc/distutils/apiref.rst:183 ../Doc/distutils/apiref.rst:196 -#: ../Doc/distutils/apiref.rst:212 ../Doc/distutils/apiref.rst:215 -#: ../Doc/distutils/apiref.rst:219 ../Doc/distutils/apiref.rst:223 -#: ../Doc/distutils/apiref.rst:229 ../Doc/distutils/apiref.rst:236 -#: ../Doc/distutils/apiref.rst:247 ../Doc/distutils/apiref.rst:256 -#: ../Doc/distutils/apiref.rst:264 +#: ../Doc/distutils/apiref.rst:183 ../Doc/distutils/apiref.rst:197 +#: ../Doc/distutils/apiref.rst:213 ../Doc/distutils/apiref.rst:216 +#: ../Doc/distutils/apiref.rst:220 ../Doc/distutils/apiref.rst:224 +#: ../Doc/distutils/apiref.rst:230 ../Doc/distutils/apiref.rst:237 +#: ../Doc/distutils/apiref.rst:248 ../Doc/distutils/apiref.rst:257 +#: ../Doc/distutils/apiref.rst:265 msgid "a list of strings" msgstr "une liste de chaînes de caractères" @@ -183,7 +187,7 @@ msgstr "*py_modules*" #: ../Doc/distutils/apiref.rst:70 msgid "A list of Python modules that distutils will manipulate" -msgstr "Une liste de modules Python que distutils va manipuler" +msgstr "Une liste de modules Python que *distutils* va manipuler" #: ../Doc/distutils/apiref.rst:73 msgid "*scripts*" @@ -218,7 +222,7 @@ msgid "" "a list of strings; valid classifiers are listed on `PyPI `_." msgstr "" -"une liste des chaînes de caractères, les classifieurs valides sont listés " +"une liste des chaînes de caractères, les classificateurs valides sont listés " "sur `PyPI `_." #: ../Doc/distutils/apiref.rst:83 @@ -239,7 +243,7 @@ msgstr "*script_name*" #: ../Doc/distutils/apiref.rst:86 msgid "The name of the setup.py script - defaults to ``sys.argv[0]``" -msgstr "" +msgstr "Le nom du script *setup.py* . Initialisé par ``sys.argv[0]``" #: ../Doc/distutils/apiref.rst:90 msgid "*script_args*" @@ -281,6 +285,8 @@ msgstr "Méta-données descriptives, voir :pep:`314`" #: ../Doc/distutils/apiref.rst:98 ../Doc/distutils/apiref.rst:101 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:101 msgid "*platforms*" @@ -292,7 +298,8 @@ msgstr "*cmdclass*" #: ../Doc/distutils/apiref.rst:103 msgid "A mapping of command names to :class:`Command` subclasses" -msgstr "Un mapping des noms de commandes et des sous-classes :class:`Command`" +msgstr "" +"Un dictionnaire des noms de commandes et des sous-classes :class:`Command`" #: ../Doc/distutils/apiref.rst:106 msgid "*data_files*" @@ -312,7 +319,7 @@ msgstr "*package_dir*" #: ../Doc/distutils/apiref.rst:109 msgid "A mapping of package to directory names" -msgstr "Un mapping des paquets et des noms de dossiers" +msgstr "Un dictionnaire des paquets et des noms de dossiers" #: ../Doc/distutils/apiref.rst:117 msgid "" @@ -322,6 +329,12 @@ msgid "" "keyword args from *script* to :func:`setup`), or the contents of the config " "files or command-line." msgstr "" +"Exécute un script d'installation dans un environnement quelque peu contrôlé, " +"et renvoie une instance :class:`distutils.dist.distribution` qui contrôle " +"l’exécution. Ceci est utile si vous avez besoin de connaître les méta-" +"données de la distribution (passées sous forme d'arguments nommés de " +"*script* à la fonction :func:`setup`), ou le contenu des fichiers de " +"configuration ou de la ligne de commande." #: ../Doc/distutils/apiref.rst:123 msgid "" @@ -340,8 +353,8 @@ 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:133 ../Doc/distutils/apiref.rst:546 -#: ../Doc/distutils/apiref.rst:1567 +#: ../Doc/distutils/apiref.rst:133 ../Doc/distutils/apiref.rst:547 +#: ../Doc/distutils/apiref.rst:1568 msgid "description" msgstr "description" @@ -437,8 +450,9 @@ 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 " -"*pas* un nom de fichier ou de chemin mais un nom Python séparé par des points" +"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:183 msgid "*sources*" @@ -447,194 +461,229 @@ msgstr "*sources*" #: ../Doc/distutils/apiref.rst:183 msgid "" "list of source filenames, relative to the distribution root (where the setup " -"script lives), in Unix form (slash- separated) for portability. Source files " +"script lives), in Unix form (slash-separated) for portability. Source files " "may be C, C++, SWIG (.i), platform-specific resource files, or whatever else " "is recognized by the :command:`build_ext` command as source for a Python " "extension." msgstr "" -"listes des noms de fichier des sources, relatifs à la racine de la " -"distribution (où est placé le script setup), dans un format Unix (séparé par " -"des slashs) dans un souci de portabilité. Les fichiers de code source " -"peuvent être du C, C++, SWIG (.i), des fichiers de ressources spécifiques à " -"la plateforme ou tout autre reconnu par la commande :command:`build_ext` " -"comme source d'une extension Python." +"Listes des noms de fichier des sources, relatifs à la racine de la " +"distribution (où est placé le script *setup.py*), dans un format Unix " +"(séparé par des slashs) dans un souci de portabilité. Les fichiers de code " +"source peuvent être du C, C++, SWIG (*.i*), des fichiers de ressources " +"spécifiques à la plateforme ou tout autre reconnu par la commande :command:" +"`build_ext` comme source d'une extension Python." -#: ../Doc/distutils/apiref.rst:196 +#: ../Doc/distutils/apiref.rst:197 msgid "*include_dirs*" -msgstr "" +msgstr "*include_dirs*" -#: ../Doc/distutils/apiref.rst:196 +#: ../Doc/distutils/apiref.rst:197 msgid "" "list of directories to search for C/C++ header files (in Unix form for " "portability)" msgstr "" -"liste des répertoires où chercher les fichiers d'entêtes C/C++ (en format " -"Unix dans un souci de portabilité)" +"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:200 +#: ../Doc/distutils/apiref.rst:201 msgid "*define_macros*" msgstr "*define_macros*" -#: ../Doc/distutils/apiref.rst:200 +#: ../Doc/distutils/apiref.rst:201 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 " "define it without a particular value (equivalent of ``#define FOO`` in " "source or :option:`!-DFOO` on Unix C compiler command line)" msgstr "" -"liste de macros à définir ; chaque macro est définie à l'aide d'un tuple de " -"deux valeurs ``(name, value)``, où *value* correspond soit à la chaîne sur " -"laquelle la macro doit être définie, soit à ``None`` pour définir la macro " -"sur aucune valeur particulière (équivalent à ``#define FOO`` dans la source " -"ou à :option:`!-DFOO` dans la ligne de commande du compilateur C Unix." +"Liste de macros à définir ; chaque macro est définie à l'aide d'un couple " +"``(name, value)``, où *value* correspond soit à la chaîne sur laquelle la " +"macro doit être définie, soit à ``None`` pour définir la macro sur aucune " +"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:200 +#: ../Doc/distutils/apiref.rst:201 msgid "a list of tuples" msgstr "une liste de tuples" -#: ../Doc/distutils/apiref.rst:212 +#: ../Doc/distutils/apiref.rst:213 msgid "*undef_macros*" msgstr "*undef_macros*" -#: ../Doc/distutils/apiref.rst:212 +#: ../Doc/distutils/apiref.rst:213 msgid "list of macros to undefine explicitly" -msgstr "" +msgstr "Liste de macros à ignorer explicitement." -#: ../Doc/distutils/apiref.rst:215 +#: ../Doc/distutils/apiref.rst:216 msgid "*library_dirs*" -msgstr "" +msgstr "*library_dirs*" -#: ../Doc/distutils/apiref.rst:215 +#: ../Doc/distutils/apiref.rst:216 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:219 +#: ../Doc/distutils/apiref.rst:220 msgid "*libraries*" -msgstr "" +msgstr "*libraries*" -#: ../Doc/distutils/apiref.rst:219 +#: ../Doc/distutils/apiref.rst:220 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:223 +#: ../Doc/distutils/apiref.rst:224 msgid "*runtime_library_dirs*" -msgstr "" +msgstr "*runtime_library_dirs*" -#: ../Doc/distutils/apiref.rst:223 +#: ../Doc/distutils/apiref.rst:224 msgid "" "list of directories to search for C/C++ libraries at run time (for shared " "extensions, this is when the extension is loaded)" msgstr "" +"Liste de répertoires à parcourir pour les bibliothèques C/C++ lors de la " +"phase d'exécution. Pour les extensions partagées, c'est à ce moment que " +"l'extension est chargée. " -#: ../Doc/distutils/apiref.rst:229 +#: ../Doc/distutils/apiref.rst:230 msgid "*extra_objects*" -msgstr "" +msgstr "*extra_objects*" -#: ../Doc/distutils/apiref.rst:229 +#: ../Doc/distutils/apiref.rst:230 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, " "etc.)" msgstr "" +"Liste des fichiers supplémentaires à lier (par exemple les fichiers d'objets " +"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:236 +#: ../Doc/distutils/apiref.rst:237 msgid "*extra_compile_args*" -msgstr "" +msgstr "*extra_compile_args*" -#: ../Doc/distutils/apiref.rst:236 +#: ../Doc/distutils/apiref.rst:237 msgid "" "any extra platform- and compiler-specific information to use when compiling " "the source files in 'sources'. For platforms and compilers where a command " "line makes sense, this is typically a list of command-line arguments, but " "for other platforms it could be anything." msgstr "" +"Toute information supplémentaire spécifique à la plate-forme et au " +"compilateur à utiliser lors de la compilation des fichiers sources dans " +"'sources'. Pour les plates-formes et les compilateurs où une ligne de " +"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:247 +#: ../Doc/distutils/apiref.rst:248 msgid "*extra_link_args*" -msgstr "" +msgstr "*extra_link_args*" -#: ../Doc/distutils/apiref.rst:247 +#: ../Doc/distutils/apiref.rst:248 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 " "Python interpreter). Similar interpretation as for 'extra_compile_args'." msgstr "" +"Toute information supplémentaire spécifique à la plate-forme et au " +"compilateur à utiliser lors de la liaison de fichiers objets pour créer " +"l'extension (ou pour créer un nouvel interpréteur Python statique). " +"Interprétation similaire à celle de *extra_compile_args*." -#: ../Doc/distutils/apiref.rst:256 +#: ../Doc/distutils/apiref.rst:257 msgid "*export_symbols*" -msgstr "" +msgstr "*export_symbols*" -#: ../Doc/distutils/apiref.rst:256 +#: ../Doc/distutils/apiref.rst:257 msgid "" "list of symbols to be exported from a shared extension. Not used on all " "platforms, and not generally necessary for Python extensions, which " "typically export exactly one symbol: ``init`` + extension_name." 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." -#: ../Doc/distutils/apiref.rst:264 +#: ../Doc/distutils/apiref.rst:265 msgid "*depends*" -msgstr "" +msgstr "*depends*" -#: ../Doc/distutils/apiref.rst:264 +#: ../Doc/distutils/apiref.rst:265 msgid "list of files that the extension depends on" -msgstr "liste des fichiers dont dépend l'extension" +msgstr "Liste des fichiers dont dépend l'extension." -#: ../Doc/distutils/apiref.rst:267 +#: ../Doc/distutils/apiref.rst:268 msgid "*language*" -msgstr "" +msgstr "*language*" -#: ../Doc/distutils/apiref.rst:267 +#: ../Doc/distutils/apiref.rst:268 msgid "" "extension language (i.e. ``'c'``, ``'c++'``, ``'objc'``). Will be detected " "from the source extensions if not provided." msgstr "" -"langage de l'extension (par exemple ``'c'``, ``'c++'``, ``'objc'``). Il sera " +"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:273 +#: ../Doc/distutils/apiref.rst:274 msgid "*optional*" -msgstr "*optionnel*" +msgstr "*optional*" -#: ../Doc/distutils/apiref.rst:273 +#: ../Doc/distutils/apiref.rst:274 msgid "" "specifies that a build failure in the extension should not abort the build " "process, but simply skip the extension." 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:273 +#: ../Doc/distutils/apiref.rst:274 msgid "a boolean" -msgstr "" +msgstr "un booléen" -#: ../Doc/distutils/apiref.rst:282 +#: ../Doc/distutils/apiref.rst:283 msgid "" "A :class:`Distribution` describes how to build, install and package up a " "Python software package." msgstr "" +"Une classe :class:`Distribution` décrit comment compiler, installer et " +"empaqueter un paquet logiciel Python." -#: ../Doc/distutils/apiref.rst:285 +#: ../Doc/distutils/apiref.rst:286 msgid "" "See the :func:`setup` function for a list of keyword arguments accepted by " "the Distribution constructor. :func:`setup` creates a Distribution instance." msgstr "" +"Voir la fonction :func:`setup` pour une liste des arguments de mots-clés " +"acceptés par le constructeur *Distribution*. :func:`setup` crée une instance " +"de Distribution." -#: ../Doc/distutils/apiref.rst:288 +#: ../Doc/distutils/apiref.rst:289 msgid "" ":class:`~distutils.core.Distribution` now warns if ``classifiers``, " "``keywords`` and ``platforms`` fields are not specified as a list or a " "string." msgstr "" +":class:`~distutils.core.Distribution` avertit maintenant si les champs " +"``classifiers``, ``keywords`` et ``platforms`` ne sont pas spécifiés comme " +"une liste ou une chaîne de caractères." -#: ../Doc/distutils/apiref.rst:295 +#: ../Doc/distutils/apiref.rst:296 msgid "" "A :class:`Command` class (or rather, an instance of one of its subclasses) " "implement a single distutils command." 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:300 +#: ../Doc/distutils/apiref.rst:301 msgid ":mod:`distutils.ccompiler` --- CCompiler base class" -msgstr "" +msgstr ":mod:`distutils.ccompiler` — Classe de base CCompiler" -#: ../Doc/distutils/apiref.rst:306 +#: ../Doc/distutils/apiref.rst:307 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 " @@ -642,12 +691,18 @@ msgid "" "options for the compiler --- macro definitions, include directories, link " "path, libraries and the like." msgstr "" +"Ce module fournit la classe de base abstraite pour les classes :class:" +"`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 " +"chemins de liens, des bibliothèques, etc." -#: ../Doc/distutils/apiref.rst:312 +#: ../Doc/distutils/apiref.rst:313 msgid "This module provides the following functions." msgstr "Ce module fournit les fonctions suivantes." -#: ../Doc/distutils/apiref.rst:317 +#: ../Doc/distutils/apiref.rst:318 msgid "" "Generate linker options for searching library directories and linking with " "specific libraries. *libraries* and *library_dirs* are, respectively, lists " @@ -655,8 +710,15 @@ msgid "" "command-line options suitable for use with some compiler (depending on the " "two format strings passed in)." msgstr "" +"Génère des options de liaison pour chercher dans les répertoires des " +"bibliothèques et pour effectuer les liaisons avec des bibliothèques " +"spécifiques. *libraries* et *library_dirs* sont, respectivement, des listes " +"de noms de bibliothèques (pas de noms de fichiers !) et de répertoires à " +"rechercher. Renvoie une liste d'options de ligne de commande utilisables " +"avec certains compilateurs (en fonction des deux chaînes de format " +"transmises)." -#: ../Doc/distutils/apiref.rst:326 +#: ../Doc/distutils/apiref.rst:327 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 " @@ -667,20 +729,31 @@ msgid "" "file search path (:option:`!-I`). Returns a list of command-line options " "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 " +"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 " +"répertoires à ajouter au chemin de recherche du fichier d'en-tête (:option:" +"`!-I`). Renvoie une liste d'options de ligne de commande pour les " +"compilateurs Unix ou Visual C+++." -#: ../Doc/distutils/apiref.rst:338 +#: ../Doc/distutils/apiref.rst:339 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:340 +#: ../Doc/distutils/apiref.rst:341 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." "platform`` for the platform in question." msgstr "" +"*osname* doit être l'un des noms d'OS Python standard (c'est-à-dire un des " +"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:344 +#: ../Doc/distutils/apiref.rst:345 msgid "" "The default values are ``os.name`` and ``sys.platform`` in case the " "parameters are not given." @@ -688,7 +761,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:350 +#: ../Doc/distutils/apiref.rst:351 msgid "" "Factory function to generate an instance of some CCompiler subclass for the " "supplied platform/compiler combination. *plat* defaults to ``os.name`` (eg. " @@ -700,21 +773,38 @@ msgid "" "Windows, and a Microsoft compiler object under Unix---if you supply a value " "for *compiler*, *plat* is ignored." msgstr "" +"Fonction de génération produisant une instance d'une sous-classe CCompiler " +"pour la combinaison plateforme/compilateur fournie. Par défaut, *plat* est " +"le ``os.name`` (par exemple ``'posix'``, ``'nt'``), et *compiler* est le " +"compilateur par défaut pour cette plate-forme. Actuellement, seuls " +"``'posix'`` et ``'nt'`` sont gérés, et les compilateurs par défaut sont ceux " +"qui gèrent une \"interface Unix traditionnelle\" (:class:`UnixCCompiler`) et " +"Visual C++ (:class:`MSVCCompiler`). Notez qu'il est tout à fait possible de " +"demander un objet compilateur Unix sous Windows, et un objet compilateur " +"Microsoft sous Unix. Si vous fournissez une valeur pour *compiler*, *plat* " +"est ignoré." -#: ../Doc/distutils/apiref.rst:366 +#: ../Doc/distutils/apiref.rst:367 msgid "" "Print list of available compilers (used by the :option:`!--help-compiler` " "options to :command:`build`, :command:`build_ext`, :command:`build_clib`)." msgstr "" +"Affiche la liste des compilateurs disponibles (utilisés par l'option :option:" +"`!--help-compiler` pour les commandes :command:`build`, :command:" +"`build_ext`, :command:`build_clib`)." -#: ../Doc/distutils/apiref.rst:372 +#: ../Doc/distutils/apiref.rst:373 msgid "" "The abstract base class :class:`CCompiler` defines the interface that must " "be implemented by real compiler classes. The class also has some utility " "methods used by several compiler classes." msgstr "" +"La classe de base abstraite :class:`CCompiler` définit l'interface qui doit " +"être implémentée par des classes de compilateur concrètes. La classe " +"possède également quelques méthodes utilitaires utilisées par plusieurs " +"classes de compilateurs." -#: ../Doc/distutils/apiref.rst:376 +#: ../Doc/distutils/apiref.rst:377 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, " @@ -724,8 +814,16 @@ msgid "" "individual files are treated, most of those attributes may be varied on a " "per-compilation or per-link basis." msgstr "" +"L'idée de base derrière une classe abstraite de compilateur est que chaque " +"instance peut être utilisée pour toutes les étapes de compilation/lien dans " +"la construction d'un seul projet. Ainsi, les attributs communs à toutes ces " +"étapes de compilation et de liaison (ce qui inclut les répertoires, les " +"macros à définir, les bibliothèques à relier, etc.) sont des attributs de " +"l'instance du compilateur. Pour tenir compte des variations dans la façon " +"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:384 +#: ../Doc/distutils/apiref.rst:385 msgid "" "The constructor for each subclass creates an instance of the Compiler " "object. Flags are *verbose* (show verbose output), *dry_run* (don't actually " @@ -735,21 +833,35 @@ msgid "" "subclasses directly - use the :func:`distutils.CCompiler.new_compiler` " "factory function instead." msgstr "" +"Le constructeur de chaque sous-classe crée une instance de l'objet " +"*Compiler*. Les paramètres optionnels sont *verbose* (affiche plus " +"d'information à l'exécution), *dry_run* (ne pas exécuter les étapes) et " +"*force* (tout reconstruire, indépendamment des dépendances). Tous ces " +"paramètres ont la valeur par défaut ``0`` (désactivé). Notez que vous ne " +"voulez probablement pas instancier directement la classe :class:`CCompiler` " +"ou une de ses sous-classes. Utilisez plutôt la fonction génératrice :func:" +"`distutils.CCompiler.new_compiler`." -#: ../Doc/distutils/apiref.rst:391 +#: ../Doc/distutils/apiref.rst:392 msgid "" "The following methods allow you to manually alter compiler options for the " "instance of the Compiler class." 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:397 +#: ../Doc/distutils/apiref.rst:398 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 " "are supplied by successive calls to :meth:`add_include_dir`." msgstr "" +"Ajoute *dir* à la liste des répertoires qui sont recherchés pour les " +"fichiers d'en-tête. Le compilateur est chargé de rechercher les répertoires " +"dans l'ordre dans lequel ils sont fournis par des appels successifs à :meth:" +"`add_include_dir`." -#: ../Doc/distutils/apiref.rst:404 +#: ../Doc/distutils/apiref.rst:405 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`; " @@ -757,8 +869,14 @@ msgid "" "`set_include_dirs`. This does not affect any list of standard include " "directories that the compiler may search by default." msgstr "" +"Affecte la liste des répertoires qui seront recherchés à la valeur de *dirs* " +"(une liste de chaînes). Remplace tous les appels précédents de :meth:" +"`add_include_dir` ; les appels suivants de :meth:`add_include_dir` " +"s'ajoutent à la liste transmise par :meth:`set_include_dirs`. Ceci n'affecte " +"pas la liste des répertoires d'inclusion standard que le compilateur peut " +"rechercher par défaut." -#: ../Doc/distutils/apiref.rst:413 +#: ../Doc/distutils/apiref.rst:414 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 " @@ -766,59 +884,92 @@ msgid "" "actual filename will be inferred by the linker, the compiler, or the " "compiler class (depending on the platform)." 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 " +"liens, le compilateur ou la classe de compilation (selon la plate-forme)." -#: ../Doc/distutils/apiref.rst:419 +#: ../Doc/distutils/apiref.rst:420 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 " "perfectly valid to duplicate library names; the linker will be instructed to " "link against libraries as many times as they are mentioned." msgstr "" +"L'éditeur de liens est chargé de lier les bibliothèques dans l'ordre dans " +"lequel elles sont fournies à :meth:`add_library` et/ou :meth:" +"`set_libraries`. Il est parfaitement valide de dupliquer les noms de " +"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:427 +#: ../Doc/distutils/apiref.rst:428 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 " "standard system libraries that the linker may include by default." msgstr "" +"Affecte la liste des bibliothèques à inclure dans tous les liens gérés par " +"l'objet compilateur avec la valeur de *libnames* (une liste des chaînes de " +"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:434 +#: ../Doc/distutils/apiref.rst:435 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 " "be instructed to search for libraries in the order they are supplied to :" "meth:`add_library_dir` and/or :meth:`set_library_dirs`." msgstr "" +"Ajoute *dir* à la liste des répertoires qui seront recherchés pour les " +"bibliothèques spécifiées dans :meth:`add_library` et :meth:`set_libraries`. " +"L'éditeur de liens est chargé de rechercher les bibliothèques dans l'ordre " +"dans lequel elles sont fournies à :meth:`add_library_dir` et/ou :meth:" +"`set_library_dirs`." -#: ../Doc/distutils/apiref.rst:442 +#: ../Doc/distutils/apiref.rst:443 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 " "search by default." msgstr "" +"Affecte la liste des répertoires de recherche de bibliothèque avec la valeur " +"de *dirs* (une liste de chaînes de caractères). Cela n'affecte pas le " +"chemin de recherche standard de la bibliothèque que l'éditeur de liens peut " +"rechercher par défaut." -#: ../Doc/distutils/apiref.rst:449 +#: ../Doc/distutils/apiref.rst:450 msgid "" "Add *dir* to the list of directories that will be searched for shared " "libraries at runtime." 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:455 +#: ../Doc/distutils/apiref.rst:456 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 " "that the runtime linker may search by default." msgstr "" +"Affecte la liste des répertoires pour rechercher les bibliothèques partagées " +"au moment de l'exécution à la valeur de *dirs* (une liste des chaînes de " +"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:462 +#: ../Doc/distutils/apiref.rst:463 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 " "supplied, then the macro will be defined without an explicit value and the " "exact outcome depends on the compiler used." msgstr "" +"Définit une macro de préprocesseur pour toutes les compilations gérées par " +"cet objet compilateur. Le paramètre optionnel *value* doit être une chaîne " +"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:472 +#: ../Doc/distutils/apiref.rst:473 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 " @@ -827,113 +978,156 @@ msgid "" "per-compilation basis (ie. in the call to :meth:`compile`), then that takes " "precedence." msgstr "" +"Désactive une macro de préprocesseur pour toutes les compilations gérées par " +"cet objet compilateur. Si la même macro est définie par :meth:" +"`define_macro` et ensuite désactivée par un appel à :meth:`undefine_macro`, " +"le dernier appel est prioritaire (y compris en cas de redéfinitions " +"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:482 +#: ../Doc/distutils/apiref.rst:483 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 " "in every link driven by this compiler object." msgstr "" +"Ajoute *objet* à la liste des fichiers objets (ou analogues, tels que les " +"fichiers de bibliothèque explicitement nommés ou la sortie des " +"\"compilateurs de ressources\") à inclure dans chaque lien qui est géré par " +"ce compilateur d'objets." -#: ../Doc/distutils/apiref.rst:489 +#: ../Doc/distutils/apiref.rst:490 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 " "may include by default (such as system libraries)." msgstr "" +"Définit la liste des fichiers objets (ou analogues) à inclure dans chaque " +"lien à la valeur de *objects*. Ceci n'affecte pas les fichiers d'objets " +"standard que l'éditeur de liens peut inclure par défaut (comme les " +"bibliothèques système)." -#: ../Doc/distutils/apiref.rst:493 +#: ../Doc/distutils/apiref.rst:494 msgid "" "The following methods implement methods for autodetection of compiler " "options, providing some functionality similar to GNU :program:`autoconf`." msgstr "" +"Les méthodes suivantes offre des services pour l'auto-détection des options " +"du compilateur. Elles offrent des fonctionnalités similaires à celles du " +"programme GNU :program:`autoconf`." -#: ../Doc/distutils/apiref.rst:499 +#: ../Doc/distutils/apiref.rst:500 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` " "(a list) to do the job." msgstr "" +"Détecte le langage d'un fichier donné, ou d'une liste de fichiers. Utilise " +"les attributs d'instance :attr:`language_map` (un dictionnaire) et :attr:" +"`language_order` (une liste) pour faire le travail." -#: ../Doc/distutils/apiref.rst:506 +#: ../Doc/distutils/apiref.rst:507 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 " "debugging version (if that makes sense on the current platform). Return " "``None`` if *lib* wasn't found in any of the specified directories." msgstr "" +"Recherche dans la liste des répertoires spécifiés un fichier de bibliothèque " +"statique ou partagée *lib* et renvoie le chemin complet vers ce fichier. Si " +"*debug* est vrai, recherche une version de débogage (si cela a du sens sur " +"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:514 +#: ../Doc/distutils/apiref.rst:515 msgid "" "Return a boolean indicating whether *funcname* is supported on the current " "platform. The optional arguments can be used to augment the compilation " "environment by providing additional include files and paths and libraries " "and paths." msgstr "" +"Renvoie un booléen indiquant si *funcname* est pris en charge sur la plate-" +"forme courante. Les arguments optionnels peuvent être utilisés pour " +"enrichir l'environnement de compilation en fournissant des fichiers, des " +"répertoires de fichiers, des bibliothèques, des répertoires de bibliothèques " +"supplémentaires" -#: ../Doc/distutils/apiref.rst:522 +#: ../Doc/distutils/apiref.rst:523 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for libraries." msgstr "" +"Renvoie l'option de compilation pour ajouter *dir* à la liste des " +"répertoires recherchés pour les bibliothèques." -#: ../Doc/distutils/apiref.rst:528 +#: ../Doc/distutils/apiref.rst:529 msgid "" "Return the compiler option to add *lib* to the list of libraries linked into " "the shared library or executable." 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:534 +#: ../Doc/distutils/apiref.rst:535 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for runtime libraries." 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:540 +#: ../Doc/distutils/apiref.rst:541 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 " "specified here depends on the compiler class (via the 'executables' class " "attribute), but most will have:" msgstr "" +"Définit les exécutables (et leurs options) qui seront exécutés pour " +"effectuer les différentes étapes de compilation. L'ensemble exact des " +"exécutables qui peuvent être spécifiés ici dépend de la classe du " +"compilateur (via l'attribut de classe *executables*), mais la plupart " +"utilisent :" -#: ../Doc/distutils/apiref.rst:546 +#: ../Doc/distutils/apiref.rst:547 msgid "attribute" msgstr "attribut" -#: ../Doc/distutils/apiref.rst:548 +#: ../Doc/distutils/apiref.rst:549 msgid "*compiler*" -msgstr "" +msgstr "*compiler*" -#: ../Doc/distutils/apiref.rst:548 +#: ../Doc/distutils/apiref.rst:549 msgid "the C/C++ compiler" -msgstr "" +msgstr "Le compilateur C/C++." -#: ../Doc/distutils/apiref.rst:550 +#: ../Doc/distutils/apiref.rst:551 msgid "*linker_so*" -msgstr "" +msgstr "*linker_so*" -#: ../Doc/distutils/apiref.rst:550 +#: ../Doc/distutils/apiref.rst:551 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:553 +#: ../Doc/distutils/apiref.rst:554 msgid "*linker_exe*" -msgstr "" +msgstr "*linker_exe*" -#: ../Doc/distutils/apiref.rst:553 +#: ../Doc/distutils/apiref.rst:554 msgid "linker used to create binary executables" -msgstr "" +msgstr "L'éditeur de lien utilisé pour créer des exécutables binaires." -#: ../Doc/distutils/apiref.rst:555 +#: ../Doc/distutils/apiref.rst:556 msgid "*archiver*" -msgstr "" +msgstr "*archiver*" -#: ../Doc/distutils/apiref.rst:555 +#: ../Doc/distutils/apiref.rst:556 msgid "static library creator" -msgstr "" +msgstr "Créateur de bibliothèque statique." -#: ../Doc/distutils/apiref.rst:558 +#: ../Doc/distutils/apiref.rst:559 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 " @@ -945,17 +1139,17 @@ msgstr "" "Windows), chacun de ces éléments est une chaîne qui sera fractionnée en un " "nom exécutable et, éventuellement, une liste d'arguments. Le fractionnement " "de la chaîne est réalisée selon la même procédure que celle appliquée par " -"les shells Unix : les mots sont délimités par des espaces, mais les " -"guillemets et les backslashs permettent de les ignorer. Voir :func:" +"les *shells* Unix : les mots sont délimités par des espaces, mais les " +"guillemets et les antislashs permettent de les ignorer. Voir :func:" "`distutils.util.split_quoted`." -#: ../Doc/distutils/apiref.rst:564 +#: ../Doc/distutils/apiref.rst:565 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:569 +#: ../Doc/distutils/apiref.rst:570 msgid "" "Compile one or more source files. Generates object files (e.g. transforms " "a :file:`.c` file to a :file:`.o` file.)" @@ -963,7 +1157,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:572 +#: ../Doc/distutils/apiref.rst:573 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 " @@ -972,24 +1166,28 @@ msgid "" "Depending on the implementation, not all source files will necessarily be " "compiled, but all corresponding object filenames will be returned." msgstr "" -"*sources* doit être une liste de noms de fichiers. Généralement, ce sont des " -"fichiers C/C++, mais ce peut être n'importe quoi qui peut être géré par un " -"compilateur et une classe de compilateur en particulier (par exemple, :class:" -"`MSVCCompiler` peut gérer les fichiers de ressources dans *sources*). " -"Renvoie une liste de noms de fichiers objet : un objet par nom de fichier " -"dans *sources*. Selon les cas, tous les fichiers source ne seront pas " -"forcément compilés, mais tous les noms de fichiers objet correspondants " -"seront revoyés." +"*sources* doit être une liste de noms de fichiers, généralement des fichiers " +"C/C++, mais elle pourrait contenir n'importe quel fichier géré par un " +"compilateur et une classe de compilateur (par exemple, :class:`MSVCCompiler` " +"peut gérer les fichiers de ressources dans *sources*). Renvoie une liste de " +"noms de fichiers objet : un objet par nom de fichier dans *sources*. Selon " +"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:579 +#: ../Doc/distutils/apiref.rst:580 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 " "to :file:`foo/bar.o` (for a Unix implementation); if *output_dir* is " "*build*, then it would compile to :file:`build/foo/bar.o`." msgstr "" +"Si *output_dir* est donné, les fichiers objets seront placés à l'intérieur, " +"tout en conservant leurs chemins relatifs. Par exemple, le :file:`truc/" +"machin.c` compile normalement en :file:`truc/machin.o` (pour une " +"implémentation Unix) ; si *output_dir* a la valeur *build*, alors il " +"compilera en :file:`build/truc/machin.o`." -#: ../Doc/distutils/apiref.rst:584 +#: ../Doc/distutils/apiref.rst:585 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 " @@ -997,20 +1195,32 @@ msgid "" "explicit value. The 1-tuple case undefines a macro. Later definitions/" "redefinitions/undefinitions take precedence." msgstr "" +"Le paramètre *macros*, s'il est donné, doit être une liste de définitions de " +"macros. Une définition de macro est soit un couple ``(nom, valeur)``, ou un " +"singleton ``(nom,)``. Le premier définit une macro ; si la valeur est " +"``None``, la macro est définie sans valeur explicite. L'utilisation d'un " +"singleton désactive la macro. Les définitions, redéfinitions ou " +"désactivations ultérieures priment." -#: ../Doc/distutils/apiref.rst:590 +#: ../Doc/distutils/apiref.rst:591 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." msgstr "" +"*include_dirs* doit être une liste de chaînes de caractères contenant les " +"répertoires à ajouter au chemin de recherche par défaut pour cette " +"compilation uniquement." -#: ../Doc/distutils/apiref.rst:593 +#: ../Doc/distutils/apiref.rst:594 msgid "" "*debug* is a boolean; if true, the compiler will be instructed to output " "debug symbols in (or alongside) the object file(s)." msgstr "" +"*debug* est un booléen ; si sa valeur est *vraie*, le compilateur est chargé " +"d'afficher les symboles de débogage dans (ou à côté) du ou des fichiers " +"objets." -#: ../Doc/distutils/apiref.rst:596 +#: ../Doc/distutils/apiref.rst:597 msgid "" "*extra_preargs* and *extra_postargs* are implementation-dependent. On " "platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), " @@ -1020,20 +1230,31 @@ msgid "" "an escape hatch for those occasions when the abstract compiler framework " "doesn't cut the mustard." msgstr "" +"*extra_preargs* et *extra_postargs* dépendent de l'implémentation. Sur les " +"plates-formes qui ont une ligne de commande (par exemple Unix, DOS/Windows), " +"il s'agit très probablement de listes de chaînes de caractères. Ce sont des " +"arguments supplémentaires à ajouter avant (*preargs*) et après (*postargs*) " +"la ligne de commande du compilateur. Sur d'autres plates-formes, consultez " +"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:603 +#: ../Doc/distutils/apiref.rst:604 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 " "be recompiled. This supports dependency tracking, but only at a coarse " "granularity." msgstr "" +"*depends* est une liste de noms de fichiers dont dépendent toutes les " +"cibles. Si un fichier source est plus ancien qu'un fichier dans *depends*, " +"alors le fichier source sera recompilé. Cela permet un suivi des " +"dépendances à un niveau macro. " -#: ../Doc/distutils/apiref.rst:608 +#: ../Doc/distutils/apiref.rst:609 msgid "Raises :exc:`CompileError` on failure." -msgstr "" +msgstr "Lève :exc:`CompileError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:613 +#: ../Doc/distutils/apiref.rst:614 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 " @@ -1041,46 +1262,68 @@ msgid "" "`set_link_objects`, the libraries supplied to :meth:`add_library` and/or :" "meth:`set_libraries`, and the libraries supplied as *libraries* (if any)." msgstr "" +"Relie un ensemble d'éléments pour créer un fichier de bibliothèque statique. " +"L'ensemble d'éléments se compose de la liste des fichiers d'objets fournis " +"comme *objets*, des fichiers d'objets supplémentaires fournis à :meth:" +"`add_link_object` et/ou :meth:`set_link_objects`, des bibliothèques fournies " +"à :meth:`add_library` et/ou :meth:`set_libraries` et les bibliothèques " +"fournies à *libraries* (le cas échéant)." -#: ../Doc/distutils/apiref.rst:619 +#: ../Doc/distutils/apiref.rst:620 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 " "library file will be put." msgstr "" +"*output_libname* doit être un nom de bibliothèque et non un nom de fichier ; " +"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:625 +#: ../Doc/distutils/apiref.rst:626 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 " "matters: the *debug* flag is included here just for consistency)." 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)." -#: ../Doc/distutils/apiref.rst:629 ../Doc/distutils/apiref.rst:671 +#: ../Doc/distutils/apiref.rst:630 ../Doc/distutils/apiref.rst:672 msgid "" "*target_lang* is the target language for which the given objects are being " "compiled. This allows specific linkage time treatment of certain languages." msgstr "" +"*target_lang* est le langage cible pour lequel les objets donnés sont " +"compilés. Cela permet un traitement spécifique du temps de liaison dans " +"certains langages." -#: ../Doc/distutils/apiref.rst:632 +#: ../Doc/distutils/apiref.rst:633 msgid "Raises :exc:`LibError` on failure." -msgstr "" +msgstr "Lève :exc:`LibError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:637 +#: ../Doc/distutils/apiref.rst:638 msgid "" "Link a bunch of stuff together to create an executable or shared library " "file." msgstr "" +"Relie un ensemble d'éléments pour créer un fichier exécutable ou une " +"bibliothèque partagée." -#: ../Doc/distutils/apiref.rst:639 +#: ../Doc/distutils/apiref.rst:640 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 " "supplied, *output_filename* is relative to it (i.e. *output_filename* can " "provide directory components if needed)." msgstr "" +"L'ensemble d'éléments se compose de la liste des fichiers objets fournis " +"comme *objets*. *output_filename* devrait être un nom de fichier. Si " +"*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:644 +#: ../Doc/distutils/apiref.rst:645 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-" @@ -1089,8 +1332,15 @@ msgid "" "means the linker will look in that specific directory rather than searching " "all the normal locations." msgstr "" +"*libraries* est une liste de bibliothèques avec lesquelles il est possible " +"d'établir des liens. Ce sont des noms de bibliothèques, pas des noms de " +"fichiers, puisqu'ils sont traduits en noms de fichiers d'une manière " +"spécifique à la plate-forme (par exemple *truc* devient :file:`libtruc.a` " +"sous Unix et :file:`truc.lib` sous DOS/Windows). Cependant, ils peuvent " +"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:651 +#: ../Doc/distutils/apiref.rst:652 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 " @@ -1100,54 +1350,82 @@ msgid "" "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 " +"bibliothèques pures (c'est-à-dire sans aucun répertoire). Celles-ci " +"s'ajoutent aux valeurs par défaut du système et à celles fournies à :meth:" +"`add_library_dir` et/ou :meth:`set_library_dirs`. *runtime_library_dirs* " +"est une liste de répertoires qui seront intégrés dans la bibliothèque " +"partagée et utilisés pour rechercher d'autres bibliothèques partagées dont " +"elle dépend à l'exécution. (Ceci est probablement valable uniquement sous " +"UNIX.)" -#: ../Doc/distutils/apiref.rst:659 +#: ../Doc/distutils/apiref.rst:660 msgid "" "*export_symbols* is a list of symbols that the shared library will export. " "(This appears to be relevant only on Windows.)" 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:662 +#: ../Doc/distutils/apiref.rst:663 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 " "to :meth:`create_static_lib`, which includes a *debug* flag mostly for " "form's sake)." msgstr "" +"*debug* s'utilise comme pour :meth:`compile` et :meth:`create_static_lib`, " +"avec la nuance qu'elle a ici une importance sur la plupart des plateformes " +"(par opposition à :meth:`create_static_lib` qui inclut une option *debug* " +"pour se conformer à l'interface)." -#: ../Doc/distutils/apiref.rst:667 +#: ../Doc/distutils/apiref.rst:668 msgid "" "*extra_preargs* and *extra_postargs* are as for :meth:`compile` (except of " "course that they supply command-line arguments for the particular linker " "being used)." msgstr "" +"*extra_preargs* et *extra_postargs* s'utilisent comme pour :meth:`compile` " +"(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:674 +#: ../Doc/distutils/apiref.rst:675 msgid "Raises :exc:`LinkError` on failure." -msgstr "" +msgstr "Lève :exc:`LinkError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:679 +#: ../Doc/distutils/apiref.rst:680 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 " "are as for the :meth:`link` method." msgstr "" +"Lie un exécutable. *output_progname* est le nom de l'exécutable du fichier, " +"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:686 +#: ../Doc/distutils/apiref.rst:687 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 " "are as for the :meth:`link` method." msgstr "" +"Lie une bibliothèque partagée. *output_libname* est le nom de la " +"bibliothèque de sortie, 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:693 +#: ../Doc/distutils/apiref.rst:694 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 " "in. Other arguments are as for the :meth:`link` method." msgstr "" +"Lie un objet partagé. *output_filename* est le nom de l'objet partagé qui " +"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:700 +#: ../Doc/distutils/apiref.rst:701 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 " @@ -1156,131 +1434,173 @@ msgid "" "`undefine_macro`. *include_dirs* is a list of directory names that will be " "added to the default list, in the same way as :meth:`add_include_dir`." msgstr "" +"Prétraitement d'un seul fichier source C/C++, désigné dans *source*. La " +"sortie du traitement est écrite dans un fichier nommé *output_file*, ou dans " +"*stdout* si *output_file* n'est pas fourni. *macros* est une liste de " +"définitions de macros comme pour :meth:`compile`, qui vont s'ajouter aux " +"macros définies avec :meth:`define_macro` et :meth:`undefine_macro`. " +"*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:707 +#: ../Doc/distutils/apiref.rst:708 msgid "Raises :exc:`PreprocessError` on failure." -msgstr "" +msgstr "Lève :exc:`PreprocessError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:709 +#: ../Doc/distutils/apiref.rst:710 msgid "" "The following utility methods are defined by the :class:`CCompiler` class, " "for use by the various concrete subclasses." 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:715 +#: ../Doc/distutils/apiref.rst:716 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 " "will get a :file:`.exe` added." msgstr "" +"Renvoie le nom de fichier de l'exécutable pour un *nom de base* donné. " +"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:722 +#: ../Doc/distutils/apiref.rst:723 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 " "form :file:`liblibname.a`, while a *lib_type* of ``'dynamic'`` will be of " "the form :file:`liblibname.so`." msgstr "" +"Renvoie le nom de fichier pour le nom de bibliothèque donné sur la plate-" +"forme actuelle. Sous Unix, une bibliothèque avec un *lib_type* de type " +"``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:730 +#: ../Doc/distutils/apiref.rst:731 msgid "" "Returns the name of the object files for the given source files. " "*source_filenames* should be a list of filenames." 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:736 +#: ../Doc/distutils/apiref.rst:737 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:741 +#: ../Doc/distutils/apiref.rst:742 msgid "" "Invokes :func:`distutils.util.execute`. This method invokes a Python " "function *func* with the given arguments *args*, after logging and taking " "into account the *dry_run* flag." msgstr "" +"Invoque :func:`distutils.util.execute`. Cette méthode invoque une fonction " +"Python *func* avec les arguments *args* , après journalisation et prise en " +"compte de l'option *dry_run*." -#: ../Doc/distutils/apiref.rst:748 +#: ../Doc/distutils/apiref.rst:749 msgid "" "Invokes :func:`distutils.util.spawn`. This invokes an external process to " "run the given command." msgstr "" +"Invoque :func:`distutils.util.spawn`. Invoque un processus externe pour " +"exécuter la commande donnée." -#: ../Doc/distutils/apiref.rst:754 +#: ../Doc/distutils/apiref.rst:755 msgid "" "Invokes :func:`distutils.dir_util.mkpath`. This creates a directory and any " "missing ancestor directories." msgstr "" +"Invoque :func:`distutils.dir_util.mkpath`. Crée un répertoire et tous les " +"répertoires parents manquants." -#: ../Doc/distutils/apiref.rst:760 +#: ../Doc/distutils/apiref.rst:761 msgid "Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*." -msgstr "" +msgstr "Invoque :meth:`distutils.file_util.move_file`. Renomme *src* en *dst*." -#: ../Doc/distutils/apiref.rst:765 +#: ../Doc/distutils/apiref.rst:766 msgid "Write a message using :func:`distutils.log.debug`." -msgstr "" +msgstr "Écrit un message en utilisant :func:`distutils.log.debug`." -#: ../Doc/distutils/apiref.rst:770 +#: ../Doc/distutils/apiref.rst:771 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:775 +#: ../Doc/distutils/apiref.rst:776 msgid "" "If the *debug* flag is set on this :class:`CCompiler` instance, print *msg* " "to standard output, otherwise do nothing." 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:787 +#: ../Doc/distutils/apiref.rst:788 msgid ":mod:`distutils.unixccompiler` --- Unix C Compiler" -msgstr "" +msgstr ":mod:`distutils.unixccompiler` — Compilateur C Unix" -#: ../Doc/distutils/apiref.rst:793 +#: ../Doc/distutils/apiref.rst:794 msgid "" "This module provides the :class:`UnixCCompiler` class, a subclass of :class:" "`CCompiler` that handles the typical Unix-style command-line C compiler:" msgstr "" +"Ce module fournit la classe :class:`UnixCCompiler`, une sous-classe de la " +"classe :class:`CCompiler` qui gère les compilateurs C ayant une interface en " +"ligne de commande conforme au standard Unix :" -#: ../Doc/distutils/apiref.rst:796 +#: ../Doc/distutils/apiref.rst:797 msgid "macros defined with :option:`!-Dname[=value]`" -msgstr "" +msgstr "macros définies avec l'option :option:`!-Dname[=value]`." -#: ../Doc/distutils/apiref.rst:798 +#: ../Doc/distutils/apiref.rst:799 msgid "macros undefined with :option:`!-Uname`" -msgstr "" +msgstr "macros désaffectées avec :option:`!-Uname`." -#: ../Doc/distutils/apiref.rst:800 +#: ../Doc/distutils/apiref.rst:801 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:802 +#: ../Doc/distutils/apiref.rst:803 msgid "libraries specified with :option:`!-llib`" -msgstr "" +msgstr "bibliothèques spécifiées avec l'option :option:`!-llib`" -#: ../Doc/distutils/apiref.rst:804 +#: ../Doc/distutils/apiref.rst:805 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:806 +#: ../Doc/distutils/apiref.rst:807 msgid "" "compile handled by :program:`cc` (or similar) executable with :option:`!-c` " "option: compiles :file:`.c` to :file:`.o`" 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:809 +#: ../Doc/distutils/apiref.rst:810 msgid "" "link static library handled by :program:`ar` command (possibly with :program:" "`ranlib`)" msgstr "" +"édition de liens pour une bibliothèque statique gérée par le programme en " +"ligne de commande :program:`ar` (éventuellement avec le programme :program:" +"`ranlib`)." -#: ../Doc/distutils/apiref.rst:812 +#: ../Doc/distutils/apiref.rst:813 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:816 +#: ../Doc/distutils/apiref.rst:817 msgid ":mod:`distutils.msvccompiler` --- Microsoft Compiler" -msgstr "" +msgstr ":mod:`distutils.msvccompiler` — Compilateur Microsoft" -#: ../Doc/distutils/apiref.rst:823 +#: ../Doc/distutils/apiref.rst:824 msgid "" "This module provides :class:`MSVCCompiler`, an implementation of the " "abstract :class:`CCompiler` class for Microsoft Visual Studio. Typically, " @@ -1288,8 +1608,14 @@ msgid "" "to compile Python. For Python 2.3 and earlier, the compiler was Visual " "Studio 6. For Python 2.4 and 2.5, the compiler is Visual Studio .NET 2003." msgstr "" +"Ce module fournit :class:`MSVCCompiler`, une implémentation de la classe " +"abstraite :class:`CCompiler` pour Microsoft Visual Studio. Généralement, les " +"modules d'extension doivent être compilés avec le même compilateur que celui " +"utilisé pour compiler Python. Pour Python 2.3 et les versions antérieures, " +"le compilateur était Visual Studio 6. Pour Python 2.4 et 2.5, le compilateur " +"est Visual Studio .NET 2003." -#: ../Doc/distutils/apiref.rst:829 +#: ../Doc/distutils/apiref.rst:830 msgid "" ":class:`MSVCCompiler` will normally choose the right compiler, linker etc. " "on its own. To override this choice, the environment variables " @@ -1299,40 +1625,57 @@ msgid "" "installed; *DISTUTILS_USE_SDK* indicates that the distutils user has made an " "explicit choice to override the compiler selection by :class:`MSVCCompiler`." msgstr "" - -#: ../Doc/distutils/apiref.rst:839 +"La classe :class:`MSVCCompiler` sélectionnera normalement le bon " +"compilateur, éditeur de liens, etc. Pour remplacer ces choix, les variables " +"d'environnement *DISTUTILS_USE_SDK* et *MSSdk* doivent être toutes les deux " +"définies. *MSSdk* indique que l'environnement courant a été configuré par le " +"script ``SetEnv.Cmd`` du kit de développement logiciel (*SDK*), ou que les " +"variables d'environnement ont été enregistrées lorsque le kit a été " +"installé ; *DISTUTILS_USE_SDK* indique que l'utilisateur de *distutils* a " +"choisi explicitement de remplacer le compilateur utilisé par :class:" +"`MSVCCompiler`." + +#: ../Doc/distutils/apiref.rst:840 msgid ":mod:`distutils.bcppcompiler` --- Borland Compiler" -msgstr "" +msgstr ":mod:`distutils.bcppcompiler` — Compilateur Borland" -#: ../Doc/distutils/apiref.rst:844 +#: ../Doc/distutils/apiref.rst:845 msgid "" "This module provides :class:`BorlandCCompiler`, a subclass of the abstract :" "class:`CCompiler` class for the Borland C++ compiler." 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:849 +#: ../Doc/distutils/apiref.rst:850 msgid ":mod:`distutils.cygwincompiler` --- Cygwin Compiler" -msgstr "" +msgstr ":mod:`distutils.cygwincompiler` — Compilateur Cygwin" -#: ../Doc/distutils/apiref.rst:854 +#: ../Doc/distutils/apiref.rst:855 msgid "" "This module provides the :class:`CygwinCCompiler` class, a subclass of :" "class:`UnixCCompiler` that handles the Cygwin port of the GNU C compiler to " "Windows. It also contains the Mingw32CCompiler class which handles the " "mingw32 port of GCC (same as cygwin in no-cygwin mode)." msgstr "" +"Ce module fournit la classe :class:`CygwinCCompiler`, une sous-classe de la " +"classe :class:`UnixCCompiler` qui gère *Cygwin*, le portage du compilateur " +"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:861 +#: ../Doc/distutils/apiref.rst:862 msgid ":mod:`distutils.archive_util` --- Archiving utilities" -msgstr "" +msgstr ":mod:`distutils.archive_util` — Utilitaires d'archivage" -#: ../Doc/distutils/apiref.rst:867 +#: ../Doc/distutils/apiref.rst:868 msgid "" "This module provides a few functions for creating archive files, such as " "tarballs or zipfiles." 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:873 +#: ../Doc/distutils/apiref.rst:874 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 " @@ -1344,12 +1687,22 @@ msgid "" "archive. *root_dir* and *base_dir* both default to the current directory. " "Returns the name of the archive file." msgstr "" - -#: ../Doc/distutils/apiref.rst:883 +"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``, " +"``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 " +"répertoire à partir duquel se lance l'archivage ; par exemple, *base_dir* " +"est le préfixe commun à tous les fichiers et répertoires de l'archive. " +"*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:884 msgid "Added support for the ``xztar`` format." msgstr "Ajout du support des fichiers ``xztar``." -#: ../Doc/distutils/apiref.rst:889 +#: ../Doc/distutils/apiref.rst:890 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'``, " @@ -1360,12 +1713,20 @@ msgid "" "compression extension (``.gz``, ``.bz2``, ``.xz`` or ``.Z``). Return the " "output filename." msgstr "" +"Crée une archive (compressée en option) sous forme de fichier au format " +"*tar* à partir de tous les fichiers dans et sous *base_dir*. *compress* doit " +"être ``'gzip'`` (par défaut), ``'bzip2'``, ``'xz'``, ``'compress'`` ou " +"``None``. Pour la méthode ``'compress'`` l'utilitaire de compression nommé " +"par :program:`compress` doit être sur le chemin de recherche par défaut, " +"donc c'est sans doute spécifique à Unix. Le fichier *tar* de sortie sera " +"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:898 +#: ../Doc/distutils/apiref.rst:899 msgid "Added support for the ``xz`` compression." -msgstr "" +msgstr "Ajout du support de la compression ``xz``." -#: ../Doc/distutils/apiref.rst:904 +#: ../Doc/distutils/apiref.rst:905 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:" @@ -1374,38 +1735,56 @@ msgid "" "available, raises :exc:`DistutilsExecError`. Returns the name of the " "output zip file." msgstr "" +"Crée un fichier zip à partir de tous les fichiers dans et sous *base_dir*. " +"Le fichier zip de sortie est nommé *base_name* + :file:`.zip`. Utilise soit " +"le module Python :mod:`zipfile` (si disponible) ou l'utilitaire InfoZIP :" +"file:`zip` (s'il est installé et trouvé sur le chemin de recherche par " +"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:912 +#: ../Doc/distutils/apiref.rst:913 msgid ":mod:`distutils.dep_util` --- Dependency checking" -msgstr "" +msgstr ":mod:`distutils.dep_util` — Vérification des dépendances" -#: ../Doc/distutils/apiref.rst:918 +#: ../Doc/distutils/apiref.rst:919 msgid "" "This module provides functions for performing simple, timestamp-based " "dependency of files and groups of files; also, functions based entirely on " "such timestamp dependency analysis." msgstr "" +"Ce module fournit des fonctions permettant d'effectuer des tests de " +"dépendance simples, basés sur les horodatages de fichiers et de groupes de " +"fichiers, ainsi que des fonctionnalités entièrement basées sur ces analyses " +"de dépendance par rapport aux horodatages." -#: ../Doc/distutils/apiref.rst:925 +#: ../Doc/distutils/apiref.rst:926 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 " "*target* is the same age or newer than *source*. Raise :exc:" "`DistutilsFileError` if *source* does not exist." msgstr "" +"Renvoie la valeur *true* si *source* existe et a été modifiée plus récemment " +"que *target*, ou si *source* existe et *target* n'existe pas. Renvoie la " +"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:933 +#: ../Doc/distutils/apiref.rst:934 msgid "" "Walk two filename lists in parallel, testing if each source is newer than " "its corresponding target. Return a pair of lists (*sources*, *targets*) " "where source is newer than target, according to the semantics of :func:" "`newer`." msgstr "" +"Parcourt en parallèle deux listes de noms de fichiers, en vérifiant si " +"chaque source est plus récente que sa cible correspondante. Renvoie une " +"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:942 +#: ../Doc/distutils/apiref.rst:943 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 " +"*sources*. In other words, if *target* exists and is newer than every file " "in *sources*, return false; otherwise return true. *missing* controls what " "we do when a source file is missing; the default (``'error'``) is to blow up " "with an :exc:`OSError` from inside :func:`os.stat`; if it is ``'ignore'``, " @@ -1415,18 +1794,32 @@ msgid "" "work because inputs are missing, but that doesn't matter because you're not " "actually going to run the commands)." msgstr "" - -#: ../Doc/distutils/apiref.rst:955 +"Renvoie la valeur *True* si *target* a une date dépassée par rapport à un " +"fichier figurant dans *sources* En d'autres termes, si *target* existe et " +"est plus récente que chaque fichier dans *sources*, renvoie la valeur " +"*False* ; sinon renvoie la valeur *True*. *missing* contrôle ce qui se passe " +"lorsqu'un fichier source est manquant ; la valeur par défaut (``'error'``) " +"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 " +"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:956 msgid ":mod:`distutils.dir_util` --- Directory tree operations" msgstr "" +":mod:`distutils.dir_util` --- Opérations sur l'arborescence des répertoires" -#: ../Doc/distutils/apiref.rst:961 +#: ../Doc/distutils/apiref.rst:962 msgid "" "This module provides functions for operating on directories and trees of " "directories." msgstr "" +"Ce module fournit des fonctions pour travailler sur des répertoires et des " +"arborescences de répertoires." -#: ../Doc/distutils/apiref.rst:967 +#: ../Doc/distutils/apiref.rst:968 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 " @@ -1436,8 +1829,16 @@ msgid "" "is true, print a one-line summary of each mkdir to stdout. Return the list " "of directories actually created." msgstr "" +"Crée un répertoire et tous les répertoires parents manquants. Si le " +"répertoire existe déjà (ou si *name* est la chaîne vide, c'est-à-dire le " +"répertoire courant, qui existe bien sûr), alors ne fait rien. Lève :exc:" +"`DistutilsFileError` s'il n'est pas possible de créer un répertoire en cours " +"de route (par exemple, un sous-chemin existe, mais est un fichier plutôt " +"qu'un répertoire). Si *verbose* est vrai, affiche un résumé d'une ligne de " +"chaque *mkdir* vers *stdout*. Renvoie la liste des répertoires réellement " +"créés." -#: ../Doc/distutils/apiref.rst:978 +#: ../Doc/distutils/apiref.rst:979 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 " @@ -1446,8 +1847,14 @@ msgid "" "be created if it doesn't already exist. *mode*, *verbose* and *dry_run* " "flags are as for :func:`mkpath`." msgstr "" +"Crée tous les répertoires vides sous *base_dir* nécessaires pour placer " +"*files*. *base_dir* est le nom d'un répertoire qui n'existe pas encore " +"nécessairement ; *files* est une liste de noms de fichiers relatifs à " +"*base_dir*. *base_dir* + la partie répertoire de chaque fichier dans *files* " +"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:988 +#: ../Doc/distutils/apiref.rst:989 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:" @@ -1459,8 +1866,19 @@ msgid "" "it is simply the list of all files under *src*, with the names changed to be " "under *dst*." msgstr "" +"Copie une arborescence de répertoires entière *src* vers un nouvel " +"emplacement *dst*. *src* et *dst* doivent tous deux être des noms de " +"répertoire. Si *src* n'est pas un répertoire, lève :exc:" +"`DistutilsFileError`. Si *dst* n'existe pas, il est créé avec :func:" +"`mkpath`. Le résultat final de la copie est que chaque fichier dans *src* " +"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 " +"liste de tous les fichiers sous *src*, avec les noms modifiés pour être sous " +"*dst*." -#: ../Doc/distutils/apiref.rst:998 +#: ../Doc/distutils/apiref.rst:999 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 " @@ -1469,36 +1887,51 @@ msgid "" "destination of the symlink will be copied. *update* and *verbose* are the " "same as for :func:`copy_file`." msgstr "" +"Les modes *preserve_mode* et *preserve_times* sont les mêmes que pour :func:" +"`distutils.file_util.copy_file` ; il faut savoir que cela ne concerne que " +"les fichiers réguliers, et non les dossiers. Si *preserve_symlinks* est " +"vrai, les liens symboliques seront copiés en tant que liens symboliques (sur " +"les plateformes qui les gèrent !); sinon (par défaut), la destination du " +"lien sera copiée. *update* et *verbose* sont les mêmes que pour :func:" +"`copy_file`." -#: ../Doc/distutils/apiref.rst:1006 +#: ../Doc/distutils/apiref.rst:1007 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 `_)." msgstr "" +"Les fichiers dans *src* qui commencent par :file:`.nfs` sont ignorés (plus " +"d'informations sur ces fichiers sont disponibles dans la réponse *D2* de la " +"page `NFS FAQ page `_)." -#: ../Doc/distutils/apiref.rst:1010 +#: ../Doc/distutils/apiref.rst:1011 msgid "NFS files are ignored." -msgstr "" +msgstr "Les fichiers NFS sont ignorés." -#: ../Doc/distutils/apiref.rst:1015 +#: ../Doc/distutils/apiref.rst:1016 msgid "" "Recursively remove *directory* and all files and directories underneath it. " "Any errors are ignored (apart from being reported to ``sys.stdout`` if " "*verbose* is true)." msgstr "" +"Supprime récursivement *directory* et tous les fichiers et répertoires en " +"dessous. Toutes les erreurs sont ignorées (sauf si *verbose* est vrai, elles " +"sont affichées sur ``sys.stdout``)." -#: ../Doc/distutils/apiref.rst:1021 +#: ../Doc/distutils/apiref.rst:1022 msgid ":mod:`distutils.file_util` --- Single file operations" -msgstr "" +msgstr ":mod:`distutils.file_util` — Traitements mono-fichier" -#: ../Doc/distutils/apiref.rst:1027 +#: ../Doc/distutils/apiref.rst:1028 msgid "" "This module contains some utility functions for operating on individual " "files." msgstr "" +"Ce module contient quelques fonctions de service pour travailler sur des " +"fichiers individuels." -#: ../Doc/distutils/apiref.rst:1032 +#: ../Doc/distutils/apiref.rst:1033 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 " @@ -1509,8 +1942,16 @@ msgid "" "If *update* is true, *src* will only be copied if *dst* does not exist, or " "if *dst* does exist but is older than *src*." msgstr "" +"Copie le fichier *src* dans *dst*. Si *dst* est un répertoire, alors *src* y " +"est copié avec le même nom ; sinon, il faut que ce soit un nom de fichier. " +"Si *preserve_mode* est vrai (par défaut), le mode du fichier (son type et " +"ses bits de permission, ou ce qui est analogue sur la plate-forme actuelle) " +"sont copiés. Si *preserve_times* est vrai (par défaut), les horodatages de " +"la dernière modification et du dernier accès sont également copiés. Si " +"*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:1041 +#: ../Doc/distutils/apiref.rst:1042 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 " @@ -1519,44 +1960,63 @@ msgid "" "hard or symbolic linking is available. It uses :func:`_copy_file_contents` " "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 : " +"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 " +"symboliques ou physiques sont disponibles. La fonction :func:" +"`_copy_file_contents` est utilisée pour copier le contenu des fichiers." -#: ../Doc/distutils/apiref.rst:1048 +#: ../Doc/distutils/apiref.rst:1049 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 " +"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:1062 +#: ../Doc/distutils/apiref.rst:1063 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*. " "Returns the new full name of the file." msgstr "" +"Déplace le fichier *src* vers *dst*. Si *dst* est un répertoire, le fichier " +"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:1068 +#: ../Doc/distutils/apiref.rst:1069 msgid "" "Handles cross-device moves on Unix using :func:`copy_file`. What about " "other systems?" 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:1074 +#: ../Doc/distutils/apiref.rst:1075 msgid "" "Create a file called *filename* and write *contents* (a sequence of strings " "without line terminators) to it." 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:1079 +#: ../Doc/distutils/apiref.rst:1080 msgid ":mod:`distutils.util` --- Miscellaneous other utility functions" -msgstr "" +msgstr ":mod:`distutils.util` — Autres fonctions de service" -#: ../Doc/distutils/apiref.rst:1085 +#: ../Doc/distutils/apiref.rst:1086 msgid "" "This module contains other assorted bits and pieces that don't fit into any " "other utility module." msgstr "" +"Ce module contient d'autres éléments qui ne correspondent à aucun autre " +"module de service." -#: ../Doc/distutils/apiref.rst:1091 +#: ../Doc/distutils/apiref.rst:1092 msgid "" "Return a string that identifies the current platform. This is used mainly " "to distinguish platform-specific build directories and platform-specific " @@ -1565,35 +2025,48 @@ msgid "" "included depends on the OS; e.g., on Linux, the kernel version isn't " "particularly important." msgstr "" +"Renvoie une chaîne qui identifie la plate-forme courante. Ceci est utilisé " +"pour distinguer les répertoires de compilation spécifiques aux plates-formes " +"et les distributions construites spécifiques aux plates-formes. Cette " +"chaîne inclut en règle générale le nom et la version de l'OS et " +"l'architecture (tels que fournis par la fonction ``os.uname()`` ). Bien que " +"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:1098 +#: ../Doc/distutils/apiref.rst:1099 msgid "Examples of returned values:" -msgstr "" +msgstr "Exemples de valeurs renvoyées :" -#: ../Doc/distutils/apiref.rst:1100 +#: ../Doc/distutils/apiref.rst:1101 msgid "``linux-i586``" -msgstr "" +msgstr "``linux-i586``" -#: ../Doc/distutils/apiref.rst:1101 +#: ../Doc/distutils/apiref.rst:1102 msgid "``linux-alpha``" -msgstr "" +msgstr "``linux-alpha``" -#: ../Doc/distutils/apiref.rst:1102 +#: ../Doc/distutils/apiref.rst:1103 msgid "``solaris-2.6-sun4u``" -msgstr "" +msgstr "``solaris-2.6-sun4u``" -#: ../Doc/distutils/apiref.rst:1104 +#: ../Doc/distutils/apiref.rst:1105 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:1106 +#: ../Doc/distutils/apiref.rst:1107 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 " "the build of Python), not the OS version of the current system." msgstr "" +"Pour les systèmes Mac OS X, la version du système d'exploitation correspond " +"à la version minimale sur laquelle les binaires pourront être exécutés " +"(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:1110 +#: ../Doc/distutils/apiref.rst:1111 msgid "" "For universal binary builds on Mac OS X the architecture value reflects the " "universal binary status instead of the architecture of the current " @@ -1604,28 +2077,37 @@ msgid "" "build (ppc, i386, x86_64) and ``intel`` is used for a universal build with " "the i386 and x86_64 architectures" msgstr "" - -#: ../Doc/distutils/apiref.rst:1119 +"Pour les binaires universels construits sur Mac OS X, la valeur de " +"l'architecture reflète l'état du binaire universel au lieu de celle de " +"l'architecture du processeur en cours. Pour les binaires universels 32 bits, " +"l'architecture est ``fat``, pour les binaires universels 64 bits, " +"l'architecture est ``fat64``, et pour les binaires universels 4 voies, " +"l'architecture est ``universelle``. A partir de Python 2.7 et Python 3.2, " +"l'architecture ``fat3`` est utilisée pour une compilation universelle à 3 " +"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:1120 msgid "Examples of returned values on Mac OS X:" -msgstr "" +msgstr "Exemples de valeurs renvoyées sous Mac OS X :" -#: ../Doc/distutils/apiref.rst:1121 +#: ../Doc/distutils/apiref.rst:1122 msgid "``macosx-10.3-ppc``" -msgstr "" +msgstr "``macosx-10.3-ppc``" -#: ../Doc/distutils/apiref.rst:1123 +#: ../Doc/distutils/apiref.rst:1124 msgid "``macosx-10.3-fat``" -msgstr "" +msgstr "``macosx-10.3-fat``" -#: ../Doc/distutils/apiref.rst:1125 +#: ../Doc/distutils/apiref.rst:1126 msgid "``macosx-10.5-universal``" -msgstr "" +msgstr "``macosx-10.5-universal``" -#: ../Doc/distutils/apiref.rst:1127 +#: ../Doc/distutils/apiref.rst:1128 msgid "``macosx-10.6-intel``" -msgstr "" +msgstr "``macosx-10.6-intel``" -#: ../Doc/distutils/apiref.rst:1132 +#: ../Doc/distutils/apiref.rst:1133 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 " @@ -1634,33 +2116,51 @@ msgid "" "can actually use them in the filesystem. Raises :exc:`ValueError` on non-" "Unix-ish systems if *pathname* either starts or ends with a slash." msgstr "" +"Renvoie un chemin *pathname* qui fonctionne sur le système de fichiers " +"natif. Par exemple, il sépare le chemin sur */* et le recompose en utilisant " +"le séparateur de répertoires courant. Cela est nécessaire parce que les noms " +"de fichiers dans les scripts d'installations sont toujours fournis dans le " +"style Unix, et doivent être convertis dans la convention du système avant " +"d'être utilisé par le système de fichiers. Lève :exc:`ValueError` sur les " +"systèmes non UNIX si *pathname* commence ou se termine par une barre oblique " +"(*slash* en anglais)." -#: ../Doc/distutils/apiref.rst:1142 +#: ../Doc/distutils/apiref.rst:1143 msgid "" "Return *pathname* with *new_root* prepended. If *pathname* is relative, " "this is equivalent to ``os.path.join(new_root,pathname)`` Otherwise, it " "requires making *pathname* relative and then joining the two, which is " "tricky on DOS/Windows." msgstr "" +"Renvoie un chemin *pathname* préfixé avec *new_root*. Si *pathname* est " +"relatif, c`est l'équivalent de ``os.path.join(new_root,pathname)`` Sinon, il " +"faut rendre *pathname* relatif et joindre les deux, ce qui est dangereux " +"sous DOS/Windows." -#: ../Doc/distutils/apiref.rst:1149 +#: ../Doc/distutils/apiref.rst:1150 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 " "includes:" msgstr "" +"Vérifie que 'os.environ' possède toutes les variables d'environnement " +"utilisables dans les fichiers de configuration, les options en ligne de " +"commande, etc. À l'heure actuelle, cela comprend :" -#: ../Doc/distutils/apiref.rst:1153 +#: ../Doc/distutils/apiref.rst:1154 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:1154 +#: ../Doc/distutils/apiref.rst:1155 msgid "" ":envvar:`PLAT` - description of the current platform, including hardware and " "OS (see :func:`get_platform`)" 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:1160 +#: ../Doc/distutils/apiref.rst:1161 msgid "" "Perform shell/Perl-style variable substitution on *s*. Every occurrence of " "``$`` followed by a name is considered a variable, and variable is " @@ -1670,15 +2170,27 @@ msgid "" "`check_environ`. Raise :exc:`ValueError` for any variables not found in " "either *local_vars* or ``os.environ``." msgstr "" +"Exécute la substitution de variable de style shell/Perl sur *s*. Chaque " +"occurrence de ``$`` suivie d'un nom est considérée comme une variable, et la " +"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:" +"`ValueError` pour toute variable non trouvée dans *local_vars* ou ``os." +"environ``." -#: ../Doc/distutils/apiref.rst:1167 +#: ../Doc/distutils/apiref.rst:1168 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 " "an underscore. No { } or ( ) style quoting is available." msgstr "" +"Remarquez qu'il ne s'agit pas d'une fonction d'interpolation de chaîne à " +"part entière. Une ``$variable`` valide ne peut être composée que de lettres " +"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:1174 +#: ../Doc/distutils/apiref.rst:1175 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 " @@ -1688,8 +2200,18 @@ msgid "" "leaving only the escaped character. The quote characters are stripped from " "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 " +"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 " +"guillemets peuvent être échappés à l'aide d'une barre oblique inversée. La " +"barre oblique inversée est supprimée de toute séquence d'échappement à deux " +"caractères, ne laissant que le caractère échappé. Les caractères guillemets " +"sont supprimés de toute chaîne de caractères entre guillemets. Renvoie une " +"liste de mots." -#: ../Doc/distutils/apiref.rst:1187 +#: ../Doc/distutils/apiref.rst:1188 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 " @@ -1698,43 +2220,62 @@ msgid "" "it (to embody the \"external action\" being performed), and an optional " "message to print." msgstr "" +"Exécute une action qui affecte le monde extérieur (par exemple, écrire dans " +"le système de fichiers). De telles actions sont spéciales car elles sont " +"désactivées par l'option *dry_run*. Cette méthode s'occupe de tout. Vous " +"devez simplement fournir la fonction à appeler avec un couple d'argument lui " +"correspondant et un message facultatif à afficher." -#: ../Doc/distutils/apiref.rst:1196 +#: ../Doc/distutils/apiref.rst:1197 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:1198 +#: ../Doc/distutils/apiref.rst:1199 msgid "" "True values are ``y``, ``yes``, ``t``, ``true``, ``on`` and ``1``; false " "values are ``n``, ``no``, ``f``, ``false``, ``off`` and ``0``. Raises :exc:" "`ValueError` if *val* is anything else." msgstr "" +"Les valeurs *vraies* sont , ``y``, ``yes``, ``t``, ``true``, ``on`` et " +"``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:1205 +#: ../Doc/distutils/apiref.rst:1206 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* " "is a list of files to compile; any files that don't end in :file:`.py` are " "silently skipped. *optimize* must be one of the following:" msgstr "" +"Effectue une compilation vers du *bytecode* Python à partir d'un ensemble de " +"fichiers sources Python dans un fichier :file:`.pyc` dans un sous " +"répertoire :file:`__pycache__` (voir :pep:`3147` et :pep:`488`). *py_files* " +"est une liste de fichiers à compiler ; tous les fichiers qui ne se terminent " +"pas par :file:`.py` sont ignorés en silence. *optimize* doit être l'un des " +"éléments suivants :" -#: ../Doc/distutils/apiref.rst:1210 +#: ../Doc/distutils/apiref.rst:1211 msgid "``0`` - don't optimize" -msgstr "" +msgstr "``0``: ne pas optimiser" -#: ../Doc/distutils/apiref.rst:1211 +#: ../Doc/distutils/apiref.rst:1212 msgid "``1`` - normal optimization (like ``python -O``)" -msgstr "" +msgstr "``1``: optimisation normale (comme ``python -O``)" -#: ../Doc/distutils/apiref.rst:1212 +#: ../Doc/distutils/apiref.rst:1213 msgid "``2`` - extra optimization (like ``python -OO``)" -msgstr "" +msgstr "``2``: optimisation supplémentaire (comme ``python -OO``)" -#: ../Doc/distutils/apiref.rst:1214 +#: ../Doc/distutils/apiref.rst:1215 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:1216 +#: ../Doc/distutils/apiref.rst:1217 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 " @@ -1743,14 +2284,23 @@ msgid "" "*prefix* is stripped). You can supply either or both (or neither) of " "*prefix* and *base_dir*, as you wish." msgstr "" +"Le nom du fichier source encodé dans chaque fichier :term:`bytecode` est par " +"défaut le nom présent dans la liste des noms de fichiers source *py_files* ; " +"vous pouvez modifier dynamiquement ses noms avec *prefix* et *basedir*. " +"*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*." -#: ../Doc/distutils/apiref.rst:1223 +#: ../Doc/distutils/apiref.rst:1224 msgid "" "If *dry_run* is true, doesn't actually do anything that would affect the " "filesystem." msgstr "" +"Si *dry_run* est vrai, ne fait rien qui puisse affecter le système de " +"fichiers." -#: ../Doc/distutils/apiref.rst:1226 +#: ../Doc/distutils/apiref.rst:1227 msgid "" "Byte-compilation is either done directly in this interpreter process with " "the standard :mod:`py_compile` module, or indirectly by writing a temporary " @@ -1759,104 +2309,139 @@ msgid "" "The *direct* flag is used by the script generated in indirect mode; unless " "you know what you're doing, leave it set to ``None``." msgstr "" +"La compilation binaire se fait soit directement dans l'interpréteur courant " +"avec le module standard :mod:`py_compile`, soit indirectement en écrivant un " +"script temporaire et en l'exécutant. Normalement, vous devez laisser :func:" +"`byte_compile` choisir d'utiliser la compilation directe ou non (voir le " +"code-source pour les détails). Le paramètre *direct* est utilisé par le " +"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:1233 +#: ../Doc/distutils/apiref.rst:1234 msgid "" "Create ``.pyc`` files with an :func:`import magic tag ` in " "their name, in a :file:`__pycache__` subdirectory instead of files without " "tag in the current directory." msgstr "" +"Crée des fichiers ``.pyc`` avec un sous-répertoire :func:`import magic tag " +"` dans leur nom, dans le sous répertoire :file:`__pycache__` " +"plutôt que dans le répertoire courant, sans tag." -#: ../Doc/distutils/apiref.rst:1238 +#: ../Doc/distutils/apiref.rst:1239 msgid "Create ``.pyc`` files according to :pep:`488`." -msgstr "" +msgstr "Crée des fichiers ``.pyc`` selon la :pep:`488`." -#: ../Doc/distutils/apiref.rst:1244 +#: ../Doc/distutils/apiref.rst:1245 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 " "no other modification of the string." msgstr "" +"Renvoie une version de *header* traitée avec les échappements compatibles " +"avec les en-têtes :rfc:`822`, en s'assurant qu'il y a 8 espaces après chaque " +"nouvelle ligne. Notez qu'il ne fait aucune autre modification de la chaîne " +"de caractères." -#: ../Doc/distutils/apiref.rst:1254 +#: ../Doc/distutils/apiref.rst:1255 msgid ":mod:`distutils.dist` --- The Distribution class" -msgstr "" +msgstr ":mod:`distutils.dist` — La classe Distribution" -#: ../Doc/distutils/apiref.rst:1261 +#: ../Doc/distutils/apiref.rst:1262 msgid "" "This module provides the :class:`~distutils.core.Distribution` class, which " "represents the module distribution being built/installed/distributed." msgstr "" +"Ce module fournit la classe :class:`~distutils.core.Distribution`, qui " +"représente le module *distribution* en cours de construction/installation/" +"distribution." -#: ../Doc/distutils/apiref.rst:1266 +#: ../Doc/distutils/apiref.rst:1267 msgid ":mod:`distutils.extension` --- The Extension class" -msgstr "" +msgstr ":mod:`distutils.extension` — La classe Extension" -#: ../Doc/distutils/apiref.rst:1273 +#: ../Doc/distutils/apiref.rst:1274 msgid "" "This module provides the :class:`Extension` class, used to describe C/C++ " "extension modules in setup scripts." 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:1281 +#: ../Doc/distutils/apiref.rst:1282 msgid ":mod:`distutils.debug` --- Distutils debug mode" -msgstr "" +msgstr ":mod:`distutils.debug` — Mode de débogage du module *Distutils*" -#: ../Doc/distutils/apiref.rst:1287 +#: ../Doc/distutils/apiref.rst:1288 msgid "This module provides the DEBUG flag." -msgstr "" +msgstr "Ce module fournit l'option *DEBUG*." -#: ../Doc/distutils/apiref.rst:1291 +#: ../Doc/distutils/apiref.rst:1292 msgid ":mod:`distutils.errors` --- Distutils exceptions" -msgstr "" +msgstr ":mod:`distutils.errors` — Exceptions du module *Distutils*" -#: ../Doc/distutils/apiref.rst:1297 +#: ../Doc/distutils/apiref.rst:1298 msgid "" "Provides exceptions used by the Distutils modules. Note that Distutils " "modules may raise standard exceptions; in particular, SystemExit is usually " "raised for errors that are obviously the end-user's fault (eg. bad command-" "line arguments)." 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 " +"argument en ligne de commande)." -#: ../Doc/distutils/apiref.rst:1301 +#: ../Doc/distutils/apiref.rst:1302 msgid "" "This module is safe to use in ``from ... import *`` mode; it only exports " "symbols whose names start with ``Distutils`` and end with ``Error``." msgstr "" +"Ce module est utilisable avec la syntaxe ``from ... import *`` ; il " +"n'exporte que des symboles dont le nom commence par ``Distutils`` et se " +"termine par ``Error``." -#: ../Doc/distutils/apiref.rst:1306 +#: ../Doc/distutils/apiref.rst:1307 msgid "" ":mod:`distutils.fancy_getopt` --- Wrapper around the standard getopt module" msgstr "" +":mod:`distutils.fancy_getopt` --- Encapsulation du module *getopt* standard" -#: ../Doc/distutils/apiref.rst:1312 +#: ../Doc/distutils/apiref.rst:1313 msgid "" "This module provides a wrapper around the standard :mod:`getopt` module " "that provides the following additional features:" msgstr "" +"Ce module est une encapsulation du module standard :mod:`getopt` qui apporte " +"les fonctionnalités supplémentaires suivantes :" -#: ../Doc/distutils/apiref.rst:1315 +#: ../Doc/distutils/apiref.rst:1316 msgid "short and long options are tied together" -msgstr "" +msgstr "Les options *short* et *long* sont liées entre elles." -#: ../Doc/distutils/apiref.rst:1317 +#: ../Doc/distutils/apiref.rst:1318 msgid "" "options have help strings, so :func:`fancy_getopt` could potentially create " "a complete usage summary" 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:1320 +#: ../Doc/distutils/apiref.rst:1321 msgid "options set attributes of a passed-in object" -msgstr "" +msgstr "Les options définissent les attributs à partir d'un objet fourni." -#: ../Doc/distutils/apiref.rst:1322 +#: ../Doc/distutils/apiref.rst:1323 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 " +"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:1328 +#: ../Doc/distutils/apiref.rst:1329 msgid "" "Wrapper function. *options* is a list of ``(long_option, short_option, " "help_string)`` 3-tuples as described in the constructor for :class:" @@ -1866,34 +2451,53 @@ msgid "" "`getopt` method of the :class:`FancyGetopt` class). *args* is the argument " "list. Will use ``sys.argv[1:]`` if you pass ``None`` as *args*." msgstr "" +"Encapsulation de la fonction ``getopt``. *options* est une liste de triplets " +"``(long_option, short_option, help_string)`` comme décrit dans le " +"constructeur de la classe :class:`FancyGetopt`. *negative_opt* doit être un " +"dictionnaire associant les noms des options aux noms des options, la clé et " +"la valeur doivent être dans la liste *options*. *object* est un objet qui " +"sera utilisé pour stocker des valeurs (voir la méthode :meth:`getopt` de la " +"classe :class:`FancyGetopt`). *args* est la liste des arguments. Utilise " +"``sys.argv[1 :]`` si ``None`` est passé à *args*." -#: ../Doc/distutils/apiref.rst:1339 +#: ../Doc/distutils/apiref.rst:1340 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:1344 +#: ../Doc/distutils/apiref.rst:1345 msgid "" "The option_table is a list of 3-tuples: ``(long_option, short_option, " "help_string)``" msgstr "" +"La liste *option_table* est constituée de triplets : ``(long_option, " +"short_option, help_string*)``" -#: ../Doc/distutils/apiref.rst:1347 +#: ../Doc/distutils/apiref.rst:1348 msgid "" "If an option takes an argument, its *long_option* should have ``'='`` " "appended; *short_option* should just be a single character, no ``':'`` in " "any case. *short_option* should be ``None`` if a *long_option* doesn't have " "a corresponding *short_option*. All option tuples must have long options." msgstr "" +"Si une option prend un argument, sa *long_option* doit se terminer par " +"``'='``. *short_option* doit être un seul caractère, jamais ``':'`'. " +"*option_courte* doit être ``None`` si *long_option* n'a pas de " +"*short_option* correspondante. Tous les triplets d'options doivent avoir des " +"options longues." -#: ../Doc/distutils/apiref.rst:1352 +#: ../Doc/distutils/apiref.rst:1353 msgid "The :class:`FancyGetopt` class provides the following methods:" -msgstr "" +msgstr "La classe :class:`FancyGetopt` fournit les méthodes suivantes :" -#: ../Doc/distutils/apiref.rst:1357 +#: ../Doc/distutils/apiref.rst:1358 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:1359 +#: ../Doc/distutils/apiref.rst:1360 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, " @@ -1902,55 +2506,76 @@ msgid "" "returns *args*; in both cases, the returned *args* is a modified copy of the " "passed-in *args* list, which is left untouched." msgstr "" +"Si *args* est ``None`` ou n'est pas définie, utilise ``sys.argv[1:]``. Si " +"*object* est ``None`` ou n'est pas définie, créer une nouvelle instance de " +"la classe :class:`OptionDummy` , stocke les valeurs d'options dans " +"l'instance et renvoie un couple ``(args, object)``. Si *objet* est fourni, " +"il est modifié sur place et :func:`getopt` renvoie simplement *args*; dans " +"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:1371 +#: ../Doc/distutils/apiref.rst:1372 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 " "called yet." msgstr "" +"Renvoie la liste des couples ``(option, valeur)`` traités par l'exécution " +"précédente de :meth:`getopt`. Déclenche :exc:`RuntimeError` si :meth:" +"`getopt` n'a pas encore été appelée." -#: ../Doc/distutils/apiref.rst:1378 +#: ../Doc/distutils/apiref.rst:1379 msgid "" "Generate help text (a list of strings, one per suggested line of output) " "from the option table for this :class:`FancyGetopt` object." msgstr "" +"Génère un texte d'aide (une liste de chaînes, une par ligne de sortie " +"suggérée) de la liste d'options pour l'objet de la classe :class:" +"`FancyGetopt`." -#: ../Doc/distutils/apiref.rst:1381 +#: ../Doc/distutils/apiref.rst:1382 msgid "If supplied, prints the supplied *header* at the top of the help." -msgstr "" +msgstr "S'il est fourni, affiche l'en-tête *header* en haut de l'aide." -#: ../Doc/distutils/apiref.rst:1385 +#: ../Doc/distutils/apiref.rst:1386 msgid ":mod:`distutils.filelist` --- The FileList class" -msgstr "" +msgstr ":mod:`distutils.filelist` — La classe *FileList* liste des fichiers" -#: ../Doc/distutils/apiref.rst:1392 +#: ../Doc/distutils/apiref.rst:1393 msgid "" "This module provides the :class:`FileList` class, used for poking about the " "filesystem and building lists of files." 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:1397 +#: ../Doc/distutils/apiref.rst:1398 msgid ":mod:`distutils.log` --- Simple PEP 282-style logging" msgstr "" +":mod:`distutils.log` --- Journalisation basée sur le style de la PEP 282" -#: ../Doc/distutils/apiref.rst:1404 +#: ../Doc/distutils/apiref.rst:1405 msgid ":mod:`distutils.spawn` --- Spawn a sub-process" -msgstr "" +msgstr ":mod:`distutils.spawn` — Crée un sous-processus" -#: ../Doc/distutils/apiref.rst:1410 +#: ../Doc/distutils/apiref.rst:1411 msgid "" "This module provides the :func:`spawn` function, a front-end to various " "platform-specific functions for launching another program in a sub-process. " "Also provides :func:`find_executable` to search the path for a given " "executable name." msgstr "" +"Ce module offre la fonction :func:`spawn`, une interface avec diverses " +"fonctions spécifiques à la plate-forme pour lancer un autre programme dans " +"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:1417 +#: ../Doc/distutils/apiref.rst:1418 msgid ":mod:`distutils.sysconfig` --- System configuration information" msgstr "" +":mod:`distutils.sysconfig` --- Informations de configuration du système" -#: ../Doc/distutils/apiref.rst:1426 +#: ../Doc/distutils/apiref.rst:1427 msgid "" "The :mod:`distutils.sysconfig` module provides access to Python's low-level " "configuration information. The specific configuration variables available " @@ -1961,28 +2586,42 @@ msgid "" "header is called :file:`pyconfig.h` for Python versions starting with 2.2, " "and :file:`config.h` for earlier versions of Python." msgstr "" +"Le module :mod:`distutils.sysconfig` donne accès aux informations de " +"configuration bas niveau de Python. Les variables de configuration " +"spécifiques disponibles dépendent de la plate-forme et de la configuration. " +"Les variables spécifiques dépendent du processus de compilation de la " +"version *spécifique* de Python en cours d'exécution. Les variables sont " +"celles qui se trouvent dans le fichier :file:`Makefile` et dans les entêtes " +"de configuration installés avec Python sur des systèmes Unix. Le fichier " +"des entêtes de configuration s'appelle :file:`pyconfig.h` pour les versions " +"de Python commençant par 2.2, et :file:`config.h` pour les versions " +"antérieures de Python." -#: ../Doc/distutils/apiref.rst:1435 +#: ../Doc/distutils/apiref.rst:1436 msgid "" "Some additional functions are provided which perform some useful " "manipulations for other parts of the :mod:`distutils` package." msgstr "" +"Quelques fonctions supplémentaires sont fournies pour effectuer des " +"manipulations utiles pour d'autres parties du paquet :mod:`distutils`." -#: ../Doc/distutils/apiref.rst:1441 +#: ../Doc/distutils/apiref.rst:1442 msgid "The result of ``os.path.normpath(sys.prefix)``." -msgstr "" +msgstr "Le résultat de ``os.path.normpath(sys.prefix)``." -#: ../Doc/distutils/apiref.rst:1446 +#: ../Doc/distutils/apiref.rst:1447 msgid "The result of ``os.path.normpath(sys.exec_prefix)``." -msgstr "" +msgstr "Le résultat de ``os.path.normpath(sys.exec_prefix)``." -#: ../Doc/distutils/apiref.rst:1451 +#: ../Doc/distutils/apiref.rst:1452 msgid "" "Return the value of a single variable. This is equivalent to " "``get_config_vars().get(name)``." msgstr "" +"Retourne la valeur d'une seule variable. C'est l'équivalent de " +"``get_config_vars().get(name)``." -#: ../Doc/distutils/apiref.rst:1457 +#: ../Doc/distutils/apiref.rst:1458 msgid "" "Return a set of variable definitions. If there are no arguments, this " "returns a dictionary mapping names of configuration variables to values. If " @@ -1990,24 +2629,39 @@ msgid "" "a sequence giving the associated values. If a given name does not have a " "corresponding value, ``None`` will be included for that variable." msgstr "" +"Retourne un ensemble de définitions de variables. S'il n'y a pas " +"d'arguments, cela renvoie un dictionnaire qui associe les noms des variables " +"de configuration aux valeurs. Si des arguments sont spécifiés, ils doivent " +"être des chaînes de caractères, et la valeur renvoyée sera une séquence " +"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:1466 +#: ../Doc/distutils/apiref.rst:1467 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 " "platforms the header will have been supplied directly by the Python source " "distribution. The file is a platform-specific text file." msgstr "" +"Renvoie le nom complet du chemin d'accès de l'en-tête de configuration. " +"Pour Unix, c'est l'en-tête généré par le script :program:`configure` ; pour " +"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:1474 +#: ../Doc/distutils/apiref.rst:1475 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 " "meaning for other platforms will vary. The file is a platform-specific text " "file, if it exists. This function is only useful on POSIX platforms." msgstr "" +"Renvoie le nom complet du chemin d'accès du fichier :file:`Makefile` utilisé " +"pour construire Python. Pour Unix, c'est le fichier généré par le script :" +"program:`configure`. La définition pour les autres plateformes varie. S'il " +"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:1482 +#: ../Doc/distutils/apiref.rst:1483 msgid "" "Return the directory for either the general or platform-dependent C include " "files. If *plat_specific* is true, the platform-dependent include directory " @@ -2016,8 +2670,15 @@ msgid "" "const:`PREFIX`, or as the exec-prefix instead of :const:`EXEC_PREFIX` if " "*plat_specific* is true." msgstr "" +"Renvoie le répertoire pour les fichiers d'inclusion C standards ou " +"dépendants de la plate-forme. Si *plat_specific* est vrai, le répertoire " +"*include* dépendant de la plate-forme est renvoyé ; si la valeur est *faux* " +"ou *None*, le répertoire indépendant de la plate-forme est renvoyé. Si " +"*prefix* est donné, il est utilisé soit comme préfixe au lieu de :const:" +"`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si " +"*plat_specific* est vrai." -#: ../Doc/distutils/apiref.rst:1492 +#: ../Doc/distutils/apiref.rst:1493 msgid "" "Return the directory for either the general or platform-dependent library " "installation. If *plat_specific* is true, the platform-dependent include " @@ -2028,20 +2689,33 @@ msgid "" "directory for the standard library is returned rather than the directory for " "the installation of third-party extensions." msgstr "" +"Renvoie le répertoire pour l'installation de la bibliothèque standard ou " +"dépendante de la plate-forme. Si *plat_specific* est vrai, le répertoire " +"*include* dépendant de la plate-forme est renvoyé ; si la valeur est *faux* " +"ou *None*, le répertoire indépendant de la plate-forme est renvoyé. Si " +"*prefix* est donné, il est utilisé soit comme préfixe au lieu de :const:" +"`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si " +"*plat_specific* est vrai. Si *standard_lib* est vrai, le répertoire de la " +"bibliothèque standard est renvoyé plutôt que le répertoire d'installation " +"des extensions tierces." -#: ../Doc/distutils/apiref.rst:1501 +#: ../Doc/distutils/apiref.rst:1502 msgid "" "The following function is only intended for use within the :mod:`distutils` " "package." msgstr "" +"La fonction suivante est uniquement destinée à être utilisée dans le paquet :" +"mod:`distutils`." -#: ../Doc/distutils/apiref.rst:1507 +#: ../Doc/distutils/apiref.rst:1508 msgid "" "Do any platform-specific customization of a :class:`distutils.ccompiler." "CCompiler` instance." msgstr "" +"Exécute toute personnalisation spécifique à la plate-forme d'une instance :" +"class:`distutils.ccompiler.CCompiler`." -#: ../Doc/distutils/apiref.rst:1510 +#: ../Doc/distutils/apiref.rst:1511 msgid "" "This function is only needed on Unix at this time, but should be called " "consistently to support forward-compatibility. It inserts the information " @@ -2049,33 +2723,49 @@ msgid "" "This information includes the selected compiler, compiler and linker " "options, and the extension used by the linker for shared objects." msgstr "" +"Cette fonction n'est nécessaire que sous Unix pour le moment, mais doit être " +"appelée de manière cohérente pour supporter la compatibilité ascendante. " +"Elle insère des informations qui varient d'une version à l'autre d'Unix et " +"qui sont stockées dans le fichier Python :file:`Makefile`. Ces informations " +"comprennent le compilateur, les options du compilateur et de l'éditeur de " +"liens sélectionnés, ainsi que l'extension utilisée par l'éditeur de liens " +"pour les objets partagés." -#: ../Doc/distutils/apiref.rst:1516 +#: ../Doc/distutils/apiref.rst:1517 msgid "" "This function is even more special-purpose, and should only be used from " "Python's own build procedures." 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:1522 +#: ../Doc/distutils/apiref.rst:1523 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 " "for files, allowing them to be located in the build area rather than in an " "installed Python." msgstr "" +"Informe le module :mod:`distutils.sysconfig` qu'il est utilisé dans le cadre " +"du processus de compilation de Python. Cela change beaucoup d'emplacements " +"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:1529 +#: ../Doc/distutils/apiref.rst:1530 msgid ":mod:`distutils.text_file` --- The TextFile class" -msgstr "" +msgstr ":mod:`distutils.text_file` — La classe TextFile" -#: ../Doc/distutils/apiref.rst:1535 +#: ../Doc/distutils/apiref.rst:1536 msgid "" "This module provides the :class:`TextFile` class, which gives an interface " "to text files that (optionally) takes care of stripping comments, ignoring " "blank lines, and joining lines with backslashes." msgstr "" +"Ce module fournit la classe :class:`TextFile`, qui donne une interface aux " +"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:1542 +#: ../Doc/distutils/apiref.rst:1543 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-" @@ -2084,16 +2774,28 @@ msgid "" "at end of line), strip leading and/or trailing whitespace. All of these are " "optional and independently controllable." 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 ``#`` " +"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:1549 +#: ../Doc/distutils/apiref.rst:1550 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 " "question spans multiple physical lines. Also provides :meth:`unreadline` " "for implementing line-at-a-time lookahead." msgstr "" +"La classe fournit une méthode :meth:`warn` pour pouvoir générer des messages " +"d'avertissement qui renvoie le numéro de ligne physique, même si la ligne " +"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:1554 +#: ../Doc/distutils/apiref.rst:1555 msgid "" ":class:`TextFile` instances are create with either *filename*, *file*, or " "both. :exc:`RuntimeError` is raised if both are ``None``. *filename* should " @@ -2103,94 +2805,121 @@ msgid "" "messages. If *file* is not supplied, :class:`TextFile` creates its own " "using the :func:`open` built-in function." msgstr "" +"Les instances de :class:`TextFile` sont créées soit avec *filename*, soit " +"avec *file* ou bien les deux. :exc:`RuntimeError` est levé si les deux " +"valent ``None``. *filename* doit être une chaîne de caractères, et *file* un " +"objet fichier (ou quelque chose qui fournit les méthodes :meth:`readline` " +"et :meth:`close`). Il est recommandé de fournir au moins *filename*, afin " +"que :class:`TextFile` puisse l'inclure dans les messages d'avertissement. " +"Si *file* n'est pas fourni, :class:`TextFile` crée son propre fichier en " +"utilisant la fonction :func:`open`." -#: ../Doc/distutils/apiref.rst:1562 +#: ../Doc/distutils/apiref.rst:1563 msgid "" "The options are all boolean, and affect the values returned by :meth:" "`readline`" msgstr "" +"Les options sont toutes booléennes et affectent les valeurs renvoyées par :" +"meth:`readline`." -#: ../Doc/distutils/apiref.rst:1567 +#: ../Doc/distutils/apiref.rst:1568 msgid "option name" -msgstr "" +msgstr "Nom des options" -#: ../Doc/distutils/apiref.rst:1567 +#: ../Doc/distutils/apiref.rst:1568 msgid "default" msgstr "default" -#: ../Doc/distutils/apiref.rst:1569 +#: ../Doc/distutils/apiref.rst:1570 msgid "*strip_comments*" -msgstr "" +msgstr "*strip_comments*" -#: ../Doc/distutils/apiref.rst:1569 +#: ../Doc/distutils/apiref.rst:1570 msgid "" -"strip from ``'#'`` to end-of- line, as well as any whitespace leading up to " +"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 " +"soit échappé par une antislash" -#: ../Doc/distutils/apiref.rst:1569 ../Doc/distutils/apiref.rst:1578 -#: ../Doc/distutils/apiref.rst:1583 +#: ../Doc/distutils/apiref.rst:1570 ../Doc/distutils/apiref.rst:1579 +#: ../Doc/distutils/apiref.rst:1584 msgid "true" msgstr "*true*" -#: ../Doc/distutils/apiref.rst:1575 +#: ../Doc/distutils/apiref.rst:1576 msgid "*lstrip_ws*" -msgstr "" +msgstr "*lstrip_ws*" -#: ../Doc/distutils/apiref.rst:1575 +#: ../Doc/distutils/apiref.rst:1576 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:1575 ../Doc/distutils/apiref.rst:1593 -#: ../Doc/distutils/apiref.rst:1604 +#: ../Doc/distutils/apiref.rst:1576 ../Doc/distutils/apiref.rst:1594 +#: ../Doc/distutils/apiref.rst:1605 msgid "false" msgstr "*false*" -#: ../Doc/distutils/apiref.rst:1578 +#: ../Doc/distutils/apiref.rst:1579 msgid "*rstrip_ws*" -msgstr "" +msgstr "*rstrip_ws*" -#: ../Doc/distutils/apiref.rst:1578 +#: ../Doc/distutils/apiref.rst:1579 msgid "" "strip trailing whitespace (including line terminator!) from each line before " "returning it." 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:1583 +#: ../Doc/distutils/apiref.rst:1584 msgid "*skip_blanks*" -msgstr "" +msgstr "*skip_blanks*" -#: ../Doc/distutils/apiref.rst:1583 +#: ../Doc/distutils/apiref.rst:1584 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 " "solely whitespace: these will \\*not\\* be skipped, even if *skip_blanks* is " "true.)" 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 " +"ne seront pas ignorées, même si *skip_blanks* est vrai." -#: ../Doc/distutils/apiref.rst:1593 +#: ../Doc/distutils/apiref.rst:1594 msgid "*join_lines*" -msgstr "" +msgstr "*join_lines*" -#: ../Doc/distutils/apiref.rst:1593 +#: ../Doc/distutils/apiref.rst:1594 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 " "line; if N consecutive lines end with a backslash, then N+1 physical lines " "will be joined to form one logical line." msgstr "" +"Si sur la ligne, une antislash est le dernier caractère et que ce caractère " +"n'est pas le caractère de nouvelle ligne. Joint la ligne suivante pour " +"former une ligne logique. Si N lignes consécutives se terminent par une " +"antislash, alors N+1 lignes physiques seront liées pour former une seul " +"ligne logique." -#: ../Doc/distutils/apiref.rst:1604 +#: ../Doc/distutils/apiref.rst:1605 msgid "*collapse_join*" -msgstr "" +msgstr "*collapse_join*" -#: ../Doc/distutils/apiref.rst:1604 +#: ../Doc/distutils/apiref.rst:1605 msgid "" "strip leading whitespace from lines that are joined to their predecessor; " "only matters if ``(join_lines and not lstrip_ws)``" 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:1611 +#: ../Doc/distutils/apiref.rst:1612 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 :" @@ -2198,20 +2927,30 @@ msgid "" "for end-of-file: an empty string might just be a blank line (or an all-" "whitespace line), if *rstrip_ws* is true but *skip_blanks* is not." msgstr "" +"Notez que puisque *rstrip_ws* peut effacer la fin de la ligne, la sémantique " +"de :meth:`readline` doit être différente de celle de la méthode standard :" +"meth:`readline` des objets fichier ! En particulier, :meth:`readline` " +"renvoie ``None`` pour indiquer la fin du fichier: une chaîne vide peut être " +"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:1620 +#: ../Doc/distutils/apiref.rst:1621 msgid "" "Open a new file *filename*. This overrides any *file* or *filename* " "constructor arguments." msgstr "" +"Ouvre un nouveau fichier *filename*. Remplace tous les arguments du " +"constructeur *file* ou *filename*." -#: ../Doc/distutils/apiref.rst:1626 +#: ../Doc/distutils/apiref.rst:1627 msgid "" "Close the current file and forget everything we know about it (including the " "filename and the current line number)." 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:1632 +#: ../Doc/distutils/apiref.rst:1633 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 " @@ -2220,8 +2959,15 @@ msgid "" "may be a list or tuple to indicate a range of physical lines, or an integer " "for a single physical line." msgstr "" +"Affiche (vers *stderr*) un message d'avertissement lié à la ligne logique " +"courante dans le fichier courant. Si la ligne logique courante dans le " +"fichier s'étend sur plusieurs lignes physiques, l'avertissement se réfère à " +"une plage de lignes physiques, telles que ``\"lignes 3-5\"``. Si *line* est " +"fourni, il remplace le numéro de la ligne courante ; il peut s'agir d'une " +"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:1642 +#: ../Doc/distutils/apiref.rst:1643 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:" @@ -2232,14 +2978,26 @@ msgid "" "end-of-file, since the empty string can occur if *rstrip_ws* is true but " "*strip_blanks* is not." msgstr "" +"Lit et renvoie une seule ligne logique à partir du fichier courant (ou à " +"partir d'un tampon interne si les lignes ont déjà été marqué comme non lue " +"avec :meth:`unreadline`). Si l'option *join_lines* est vraie, cela peut " +"impliquer la lecture de plusieurs lignes physiques concaténées en une seule " +"chaîne. Met à jour le numéro de la ligne courante. Appeler :meth:`warn` " +"après :meth:`readline` émet donc un avertissement sur la ou les lignes " +"physiques qui viennent d'être lues. Renvoie ``None`` à la fin du fichier, " +"puisque la chaîne vide peut se produire si *rstrip_ws* est vrai mais pas si " +"*strip_blanks* est faux." -#: ../Doc/distutils/apiref.rst:1653 +#: ../Doc/distutils/apiref.rst:1654 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." msgstr "" +"Lit et renvoie la liste de toutes les lignes logiques restant dans le " +"fichier courant. Met à jour le numéro de la ligne courante à la dernière " +"ligne du fichier." -#: ../Doc/distutils/apiref.rst:1659 +#: ../Doc/distutils/apiref.rst:1660 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-" @@ -2249,20 +3007,30 @@ msgid "" "meth:`unreadline` before a call to :meth:`readline`, the lines will be " "returned most in most recent first order." msgstr "" +"Insère la ligne *line* (une chaîne de caractères) dans un tampon interne qui " +"sera vérifié par les futurs appels de :meth:`readline`. Utile pour " +"implémenter un analyseur prospectif ligne par ligne. Notez que les lignes " +"qui sont \"non lues\" avec :meth:`unreadline` ne sont ensuite pas traitées " +"de nouveau (espace blancs, ou autre) quand elles sont lues avec :meth:" +"`readline`. Si plusieurs appels sont faits à :meth:`unreadline` avant un " +"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:1668 +#: ../Doc/distutils/apiref.rst:1669 msgid ":mod:`distutils.version` --- Version number classes" -msgstr "" +msgstr ":mod:`distutils.version` — Classes de numéros de version" -#: ../Doc/distutils/apiref.rst:1683 +#: ../Doc/distutils/apiref.rst:1684 msgid ":mod:`distutils.cmd` --- Abstract base class for Distutils commands" msgstr "" +":mod:`distutils.cmd` --- Classe de base abstraite pour les commandes " +"*Distutils*" -#: ../Doc/distutils/apiref.rst:1690 +#: ../Doc/distutils/apiref.rst:1691 msgid "This module supplies the abstract base class :class:`Command`." -msgstr "" +msgstr "Ce module fournit la classe de base abstraite :class:`Command`." -#: ../Doc/distutils/apiref.rst:1695 +#: ../Doc/distutils/apiref.rst:1696 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 " @@ -2277,8 +3045,21 @@ msgid "" "options, is the :meth:`run` method, which must also be implemented by every " "command class." msgstr "" - -#: ../Doc/distutils/apiref.rst:1708 +"Classe de base abstraite pour définir les classes de commandes, les " +"\"ouvrières\" de *Distutils*. Une analogie utile pour les classes de " +"commandes est de les considérer comme des sous-routines avec des variables " +"locales appelées *options*. Les options sont déclarées dans :meth:" +"`initialiser_options` et définies (compte tenu de leur valeur finale) dans :" +"meth:`finalize_options`, qui doivent être définies pour chaque classe de " +"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 --- " +"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:1709 msgid "" "The class constructor takes a single argument *dist*, a :class:`~distutils." "core.Distribution` instance." @@ -2286,15 +3067,16 @@ msgstr "" "Le constructeur prend un seul argument, *dist*, une instance de :class:" "`~distutils.core.Distribution`." -#: ../Doc/distutils/apiref.rst:1713 +#: ../Doc/distutils/apiref.rst:1714 msgid "Creating a new Distutils command" -msgstr "" +msgstr "Créer une nouvelle commande *Distutils*" -#: ../Doc/distutils/apiref.rst:1715 +#: ../Doc/distutils/apiref.rst:1716 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:1717 +#: ../Doc/distutils/apiref.rst:1718 msgid "" "A new command lives in a module in the :mod:`distutils.command` package. " "There is a sample template in that directory called :file:" @@ -2306,12 +3088,24 @@ msgid "" "command/peel_banana.py`, then edit it so that it's implementing the class :" "class:`peel_banana`, a subclass of :class:`distutils.cmd.Command`." msgstr "" - -#: ../Doc/distutils/apiref.rst:1727 +"Une nouvelle commande doit résider dans un module du package :mod:`distutils." +"command`. Il existe un exemple de modèle dans ce répertoire nommé :file:" +"`command_template`. Copiez ce fichier dans un nouveau module portant le même " +"nom que la nouvelle commande que vous implémentez. Ce module doit " +"implémenter une classe portant le même nom que le module (et la commande). " +"Par exemple, pour créer la commande ``peel_banana`` (afin que les " +"utilisateurs puissent exécuter ``setup.py peel_banana``), vous devez copier " +"le fichier :file:`commande_template` dans :file:`distutils/command/" +"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:1728 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:1731 +#: ../Doc/distutils/apiref.rst:1732 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 " @@ -2320,8 +3114,15 @@ msgid "" "`initialize_options` implementations are just a bunch of ``self.foo = None`` " "assignments." msgstr "" +"Définit des valeurs par défaut pour toutes les options que cette commande " +"gère. Notez que ces valeurs par défaut peuvent être remplacées par d'autres " +"commandes, par le script d'installation, par des fichiers de configuration " +"ou par la ligne de commande. Ce n'est donc pas l'endroit idéal pour " +"introduire des dépendances entre les options. En règle générale, les " +"méthodes suivantes :meth:`initialize_options` ne font que des assignations " +"de type ``self.truc = None``." -#: ../Doc/distutils/apiref.rst:1740 +#: ../Doc/distutils/apiref.rst:1741 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 " @@ -2330,8 +3131,16 @@ msgid "" "safe to set *foo* from *bar* as long as *foo* still has the same value it " "was assigned in :meth:`initialize_options`." msgstr "" +"Définit les valeurs finales pour toutes les options que cette commande gère. " +"Cette méthode doit toujours être appelée le plus tard possible, c'est-à-dire " +"après que toutes les affectations des options de la ligne de commande ou que " +"d'autres commandes ont été faites. C'est donc l'endroit idéal pour " +"introduire des dépendances d'options : si *truc* dépend de *machin*, alors " +"il est sûr de mettre *truc* de *machin* aussi longtemps que *truc* a " +"toujours la même valeur qui lui a été attribué par :meth:" +"`initialize_options`." -#: ../Doc/distutils/apiref.rst:1750 +#: ../Doc/distutils/apiref.rst:1751 msgid "" "A command's raison d'etre: carry out the action it exists to perform, " "controlled by the options initialized in :meth:`initialize_options`, " @@ -2339,8 +3148,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 " +"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:1759 +#: ../Doc/distutils/apiref.rst:1760 msgid "" "*sub_commands* formalizes the notion of a \"family\" of commands, e.g. " "``install`` as the parent with sub-commands ``install_lib``, " @@ -2353,169 +3168,232 @@ msgid "" "have any C header files to install.) If *predicate* is ``None``, that " "command is always applicable." msgstr "" +"*sub_commands* formalise la notion de \"famille\" de commandes, par exemple. " +"``install`` est le parent des sous-commandes ``install_lib``, " +"``install_headers``, etc. Le parent d'une famille de commandes définit " +"*sub_commands* en tant qu'attribut de classe ; c'est une liste de couples " +"``(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`` " +"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:1770 +#: ../Doc/distutils/apiref.rst:1771 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 " "defined. The canonical example is the :command:`install` command." msgstr "" +"*sub_commands* est généralement défini à la *fin* d'une classe, car les " +"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:1776 +#: ../Doc/distutils/apiref.rst:1777 msgid ":mod:`distutils.command` --- Individual Distutils commands" -msgstr "" +msgstr ":mod:`distutils.command` — Commandes *Distutils* individuelles" -#: ../Doc/distutils/apiref.rst:1787 +#: ../Doc/distutils/apiref.rst:1788 msgid ":mod:`distutils.command.bdist` --- Build a binary installer" -msgstr "" +msgstr ":mod:`distutils.command.bdist` — Construit un installateur binaire" -#: ../Doc/distutils/apiref.rst:1797 +#: ../Doc/distutils/apiref.rst:1798 msgid "" ":mod:`distutils.command.bdist_packager` --- Abstract base class for packagers" msgstr "" +":mod:`distutils.command.bdist_packager` --- Classe de base abstraite pour " +"empaqueteurs" -#: ../Doc/distutils/apiref.rst:1807 +#: ../Doc/distutils/apiref.rst:1808 msgid ":mod:`distutils.command.bdist_dumb` --- Build a \"dumb\" installer" msgstr "" +":mod:`distutils.command.bdist_dumb` --- Construit un installateur passif " +"(*dumb*)" -#: ../Doc/distutils/apiref.rst:1817 +#: ../Doc/distutils/apiref.rst:1818 msgid "" ":mod:`distutils.command.bdist_msi` --- Build a Microsoft Installer binary " "package" msgstr "" +":mod:`distutils.command.bdist_msi` --- Construit un installateur Microsoft" -#: ../Doc/distutils/apiref.rst:1824 +#: ../Doc/distutils/apiref.rst:1825 msgid "Builds a `Windows Installer`_ (.msi) binary package." -msgstr "" +msgstr "Construit un installateur `Windows Installeur`_ (*.msi*)" -#: ../Doc/distutils/apiref.rst:1828 +#: ../Doc/distutils/apiref.rst:1829 msgid "" "In most cases, the ``bdist_msi`` installer is a better choice than the " "``bdist_wininst`` installer, because it provides better support for Win64 " "platforms, allows administrators to perform non-interactive installations, " "and allows installation through group policies." msgstr "" +"Dans la plupart des cas, l'installateur ``bdist_msi`` est un meilleur choix " +"que l'installateur ``bdist_wininst``, car il gère mieux les plates-formes " +"*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:1835 +#: ../Doc/distutils/apiref.rst:1836 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 " +"format Redhat RPM et SRPM" -#: ../Doc/distutils/apiref.rst:1845 +#: ../Doc/distutils/apiref.rst:1846 msgid ":mod:`distutils.command.bdist_wininst` --- Build a Windows installer" msgstr "" +":mod:`distutils.command.bdist_wininst` --- Construit un installateur Windows" -#: ../Doc/distutils/apiref.rst:1855 +#: ../Doc/distutils/apiref.rst:1856 msgid ":mod:`distutils.command.sdist` --- Build a source distribution" -msgstr "" +msgstr ":mod:`distutils.command.sdist` — Construit une distribution source" -#: ../Doc/distutils/apiref.rst:1865 +#: ../Doc/distutils/apiref.rst:1866 msgid ":mod:`distutils.command.build` --- Build all files of a package" msgstr "" +":mod:`distutils.command.build` --- Construit tous les fichiers d'un paquet" -#: ../Doc/distutils/apiref.rst:1875 +#: ../Doc/distutils/apiref.rst:1876 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 " +"d'un paquet" -#: ../Doc/distutils/apiref.rst:1885 +#: ../Doc/distutils/apiref.rst:1886 msgid "" ":mod:`distutils.command.build_ext` --- Build any extensions in a package" msgstr "" +":mod:`distutils.command.build_ext` --- Construit toutes les extensions d'un " +"paquet" -#: ../Doc/distutils/apiref.rst:1895 +#: ../Doc/distutils/apiref.rst:1896 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 " +"paquet" -#: ../Doc/distutils/apiref.rst:1905 +#: ../Doc/distutils/apiref.rst:1906 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 " "setup.py file for a distribution that is designed to run with both Python 2." "x and 3.x, add::" msgstr "" +"Implémentation alternative de *build_py* qui exécute également la " +"bibliothèque de conversion *2to3* sur chaque fichier *.py* qui va être " +"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:1915 +#: ../Doc/distutils/apiref.rst:1916 msgid "to your setup.py, and later::" -msgstr "" +msgstr "à votre *setup.py* et, plus tard ::" -#: ../Doc/distutils/apiref.rst:1919 +#: ../Doc/distutils/apiref.rst:1920 msgid "to the invocation of setup()." -msgstr "" +msgstr "à l'appel de *setup()*." -#: ../Doc/distutils/apiref.rst:1923 +#: ../Doc/distutils/apiref.rst:1924 msgid "" ":mod:`distutils.command.build_scripts` --- Build the scripts of a package" msgstr "" +":mod:`distutils.command.build_scripts` --- Construit les scripts d'un paquet" -#: ../Doc/distutils/apiref.rst:1933 +#: ../Doc/distutils/apiref.rst:1934 msgid ":mod:`distutils.command.clean` --- Clean a package build area" msgstr "" +":mod:`distutils.command.clean` --- Nettoie un dossier de compilation d'un " +"paquet" -#: ../Doc/distutils/apiref.rst:1938 +#: ../Doc/distutils/apiref.rst:1939 msgid "" "This command removes the temporary files created by :command:`build` and its " "subcommands, like intermediary compiled object files. With the ``--all`` " "option, the complete build directory will be removed." msgstr "" +"Cette commande supprime les fichiers temporaires créés par la commande :" +"command:`build` et ses sous-commandes, comme les fichiers objets compilés " +"intermédiaires. Avec l'option ``--all``, le répertoire de compilation sera " +"supprimé." -#: ../Doc/distutils/apiref.rst:1942 +#: ../Doc/distutils/apiref.rst:1943 msgid "" "Extension modules built :ref:`in place ` will " "not be cleaned, as they are not in the build directory." msgstr "" +"Les modules d'extension construits :ref:`sur place ` ne seront pas effacés, car ils ne sont pas dans le répertoire " +"*build*." -#: ../Doc/distutils/apiref.rst:1947 +#: ../Doc/distutils/apiref.rst:1948 msgid ":mod:`distutils.command.config` --- Perform package configuration" msgstr "" +":mod:`distutils.command.config` --- Effectue la configuration d'un paquet" -#: ../Doc/distutils/apiref.rst:1957 +#: ../Doc/distutils/apiref.rst:1958 msgid ":mod:`distutils.command.install` --- Install a package" -msgstr "" +msgstr ":mod:`distutils.command.install` — Installe un paquet" -#: ../Doc/distutils/apiref.rst:1967 +#: ../Doc/distutils/apiref.rst:1968 msgid "" ":mod:`distutils.command.install_data` --- Install data files from a package" msgstr "" +":mod:`distutils.command.install_data` --- Installe les fichiers de données " +"d'un paquet" -#: ../Doc/distutils/apiref.rst:1977 +#: ../Doc/distutils/apiref.rst:1978 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" -#: ../Doc/distutils/apiref.rst:1987 +#: ../Doc/distutils/apiref.rst:1988 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" -#: ../Doc/distutils/apiref.rst:1997 +#: ../Doc/distutils/apiref.rst:1998 msgid "" ":mod:`distutils.command.install_scripts` --- Install script files from a " "package" msgstr "" +":mod:`distutils.command.install_scripts` --- Installe les fichiers de script " +"d'un paquet" -#: ../Doc/distutils/apiref.rst:2007 +#: ../Doc/distutils/apiref.rst:2008 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 " +"paquets Python (*Python Package Index* ou *PyPI* en anglais)" -#: ../Doc/distutils/apiref.rst:2013 +#: ../Doc/distutils/apiref.rst:2014 msgid "" "The ``register`` command registers the package with the Python Package " "Index. This is described in more detail in :pep:`301`." 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:2020 +#: ../Doc/distutils/apiref.rst:2021 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" -#: ../Doc/distutils/apiref.rst:2026 +#: ../Doc/distutils/apiref.rst:2027 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 " "arguments passed to the :func:`setup` function." msgstr "" +"La commande ``check`` effectue des tests sur les méta-données d'un paquet. " +"Par exemple, elle vérifie que toutes les méta-données requises sont fournies " +"lorsque les arguments sont passés à la fonction :func:`setup`." diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 353618557..32907a268 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-12 20:14+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2019-06-08 15:19+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.0.4\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/distutils/builtdist.rst:5 msgid "Creating Built Distributions" @@ -32,8 +32,8 @@ msgstr "" "\" 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ée dans Python (et \"installateur\" est un terme " -"spécifique au monde des systèmes de bureau). " +"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:14 msgid "" @@ -50,14 +50,14 @@ msgid "" msgstr "" "Une distribution compilée est une manière de rendre la vie plus facile à " "ceux qui installent votre module : pour les utilisateurs de système Linux " -"basé sur RPM, ce sera des binaire RPM ; pour les utilisateurs de Windows, " -"c'est un installateur exécutable ; pour les utilisateurs de Linux basé sur " +"basé sur RPM, ce sera des binaires RPM ; pour les utilisateurs de Windows, " +"c'est un installateur exécutable ; pour les utilisateurs de Linux basés sur " "Debian, c'est un paquet Debian ; et ainsi de suite. Évidemment, personne " -"n'est capable de créer une distribution compilée pour toute les plateformes " +"n'est capable de créer une distribution compilée pour toutes les plateformes " "existantes, donc Distutils est fait pour permettre aux développeurs de se " -"concentrer sur leurs spécialités---écrire du code et créer des distribution " -"source---pendant que d'autres, appelés *packagers* s'occupent de transformer " -"les sources en paquets pour chaques plateforme." +"concentrer sur leurs spécialités --- écrire du code et créer des " +"distributions source --- pendant que d'autres, appelés *packagers* " +"s'occupent de transformer les sources en paquets pour chaque plateforme." #: ../Doc/distutils/builtdist.rst:24 msgid "" @@ -73,7 +73,7 @@ msgstr "" "*packager* peut être un volontaire \"quelque part\" qui a accès à une " "plateforme que le développeur initial n'a pas ; ou bien un logiciel qui " "prend les sources périodiquement et les transforme en une distribution " -"compilée pour autant de plateforme que le logiciel a accès. Peu importe qui " +"compilée pour autant de plateforme que le logiciel a accès. Peu importe qui " "ils sont, les *packagers* utilisent ``setup.py`` et la famille de commandes :" "command:`bdist` afin de générer une distribution compilée." @@ -95,13 +95,13 @@ msgid "" "considered \"dumb\" because it has to be unpacked in a specific location to " "work.)" msgstr "" -"alors Distutils construit ma distribution du module (Distutils lui même dans " +"alors Distutils construit ma distribution du module (Distutils lui-même dans " "ce cas), fait une \"fausse\" installation (aussi dans le dossier :file:" "`build`) et crée le type de distribution compilée par défaut pour ma " -"plateforme. Le format par défaut est un \"bête\" fichier tar pour Unix et un " -"simple installateur exécutable pour Windows (ce fichier tar est considéré " -"comme \"bête\" car il doit être décompressé à un endroit précis pour " -"fonctionner)." +"plateforme. Le format par défaut est un \"bête\" fichier *tar* pour Unix et " +"un simple installateur exécutable pour Windows (ce fichier *tar* est " +"considéré comme \"bête\" car il doit être décompressé à un endroit précis " +"pour fonctionner)." #: ../Doc/distutils/builtdist.rst:44 msgid "" @@ -114,8 +114,8 @@ msgid "" "distributions relative to :file:`{prefix}`.)" msgstr "" "Par conséquent, la commande si dessus crée le fichier :file:`Distutils-1.0." -"{plat}.tar.gz` sur les systèmes Unix ; décompresser cette archive tar au bon " -"endroit installe Distutils exactement comme si vous aviez téléchargé la " +"{plat}.tar.gz` sur les systèmes Unix ; décompresser cette archive *tar* au " +"bon endroit installe Distutils exactement comme si vous aviez téléchargé la " "distribution source et lancé ``python setup.py install`` (le \"bon endroit\" " "est soit la racine du système de fichier, ou le dossier de Python :file:" "`{prefix}`, tout dépend des options données à la commande :command:" @@ -137,7 +137,7 @@ msgstr "" "distribution non-pure qui inclut des extensions qui devraient être " "compilées, ça peut faire la différence entre quelqu'un qui sera capable " "d'utiliser votre extension, ou non. De plus créer une distribution compilée " -"\"intelligente\" tel qu'un paquet RPM ou un installateur executable Windows, " +"\"intelligente\" tel qu'un paquet RPM ou un installateur exécutable Windows, " "est bien plus pratique pour les utilisateurs, même si votre module n'inclut " "aucune extension." @@ -149,7 +149,7 @@ 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 dustribution compilée à générer : par exemple," +"type de distribution compilée à générer : par exemple, ::" #: ../Doc/distutils/builtdist.rst:66 msgid "" @@ -157,13 +157,13 @@ msgid "" "---again, this archive would be unpacked from the root directory to install " "the Distutils." msgstr "" -"serait, lors d'une éxécution sur un système Unix, crée :file:`Distutils-1.0." +"serait, lors d'une exécution sur un système Unix, crée :file:`Distutils-1.0." "{plat}.zip`\\ ---à nouveau, cette archive devra être décompressé depuis la " "racine pour installer Distutils." #: ../Doc/distutils/builtdist.rst:70 msgid "The available formats for built distributions are:" -msgstr "Les formats disponible pour les distributions compilées sont :" +msgstr "Les formats disponibles pour les distributions compilées sont :" #: ../Doc/distutils/builtdist.rst:73 msgid "Format" @@ -183,7 +183,7 @@ msgstr "``gztar``" #: ../Doc/distutils/builtdist.rst:75 msgid "gzipped tar file (:file:`.tar.gz`)" -msgstr "Fichier tar gzippé (:file:`.tar.gz`)" +msgstr "fichier *tar* *gzippé* (:file:`.tar.gz`)" #: ../Doc/distutils/builtdist.rst:75 msgid "\\(1)" @@ -195,7 +195,7 @@ msgstr "``bztar``" #: ../Doc/distutils/builtdist.rst:78 msgid "bzipped tar file (:file:`.tar.bz2`)" -msgstr "Fichier tar de type bzipped (:file:`.tar.bz2`)" +msgstr "fichier *tar* de type *bzipped* (:file:`.tar.bz2`)" #: ../Doc/distutils/builtdist.rst:81 msgid "``xztar``" @@ -203,7 +203,7 @@ msgstr "``xztar``" #: ../Doc/distutils/builtdist.rst:81 msgid "xzipped tar file (:file:`.tar.xz`)" -msgstr "Fichier tar de type xzipped (:file:`.tar.xz`)" +msgstr "fichier *tar* de type *xzipped* (:file:`.tar.xz`)" #: ../Doc/distutils/builtdist.rst:84 msgid "``ztar``" @@ -211,7 +211,7 @@ msgstr "``ztar``" #: ../Doc/distutils/builtdist.rst:84 msgid "compressed tar file (:file:`.tar.Z`)" -msgstr "Fichier tar compressé (:file:`.tar.Z`)" +msgstr "fichier *tar* compressé par *compress* (:file:`.tar.Z`)" #: ../Doc/distutils/builtdist.rst:84 msgid "\\(3)" @@ -223,7 +223,7 @@ msgstr "``tar``" #: ../Doc/distutils/builtdist.rst:87 msgid "tar file (:file:`.tar`)" -msgstr "Fichier tar (:file:`.tar`)" +msgstr "fichier *tar* (:file:`.tar`)" #: ../Doc/distutils/builtdist.rst:89 msgid "``zip``" @@ -231,7 +231,7 @@ msgstr "``zip``" #: ../Doc/distutils/builtdist.rst:89 msgid "zip file (:file:`.zip`)" -msgstr "Fichier zip (:file:`.zip`)" +msgstr "fichier *zip* (:file:`.zip`)" #: ../Doc/distutils/builtdist.rst:89 msgid "(2),(4)" @@ -271,7 +271,7 @@ msgstr "``wininst``" #: ../Doc/distutils/builtdist.rst:97 msgid "self-extracting ZIP file for Windows" -msgstr "Fichier zip auto-extracteur Windows" +msgstr "fichier zip auto-extracteur Windows" #: ../Doc/distutils/builtdist.rst:97 msgid "\\(4)" @@ -295,15 +295,15 @@ msgstr "Notes :" #: ../Doc/distutils/builtdist.rst:110 msgid "default on Unix" -msgstr "Par défaut sur Unix" +msgstr "par défaut sur Unix" #: ../Doc/distutils/builtdist.rst:113 msgid "default on Windows" -msgstr "Par défaut sur Windows" +msgstr "par défaut sur Windows" #: ../Doc/distutils/builtdist.rst:116 msgid "requires external :program:`compress` utility." -msgstr "Nécessite un programme externe :program:`compress`." +msgstr "nécessite un programme externe :program:`compress`." #: ../Doc/distutils/builtdist.rst:119 msgid "" @@ -318,7 +318,7 @@ msgid "" "requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm " "--version`` to find out which version you have)" msgstr "" -"Nécessite un programme externe :program:`rpm`, version 3.0.4 ou mieux " +"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:126 @@ -335,9 +335,9 @@ msgstr "" "Vous ne devez pas utiliser la commande :command:`bdist` avec l'option :" "option:`!--formats` ; Vous pouvez également utiliser la commande qui " "implémente directement le format qui vous intéresse. Certaines de ces \"sous-" -"commandes\" :command:`bdist` génèrent plusieurs formats similaire ; par " +"commandes\" :command:`bdist` génèrent plusieurs formats similaires ; par " "exemple, La commande :command:`bdist_dumb` génère les archives aux formats " -"\"bête\" (``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), " +"\"bêtes\" (``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, et ``zip``), " "et :command:`bdist_rpm` génère les binaires RPM et ainsi que les sources. " "Les sous-commandes :command:`bdist`, et les formats générés par chacun, " "sont :" @@ -422,7 +422,7 @@ msgstr "" #: ../Doc/distutils/builtdist.rst:177 msgid "or the :command:`bdist` command with the :option:`!--format` option::" -msgstr "" +msgstr "ou la commande :command:`bdist` avec l'option :option:`!--format` ::" #: ../Doc/distutils/builtdist.rst:181 msgid "" @@ -431,10 +431,10 @@ msgid "" "you can explicitly specify multiple :command:`bdist_\\*` commands and their " "options::" msgstr "" -"La première vous permet de spécifier des options spécifique à RPM ; la " -"dernière vous permet de spécifier plusieurs format d'un seul coup. Si vous " +"La première vous permet de spécifier des options spécifiques à RPM ; la " +"dernière vous permet de spécifier plusieurs formats d'un seul coup. Si vous " "avez besoin d'utiliser les deux, vous pouvez explicitement spécifier " -"plusieurs commande :command:`bdist_\\*` et leurs options ::" +"plusieurs commandes :command:`bdist_\\*` et leurs options ::" #: ../Doc/distutils/builtdist.rst:188 msgid "" @@ -445,13 +445,13 @@ msgid "" "any Distutils configuration files. Various options and sections in the :" "file:`.spec` file are derived from options in the setup script as follows:" msgstr "" -"La création de Package RPM est configurée par une fichier :file:`.spec`, un " -"peu comme Distutils est configuré par script setup. Pour vous faciliter la " -"tâche, la commande :command:`bdist_rpm` crée normalement un fichier :file:`." -"spec` basé sur les informations que vous fournissez dans ``setup.py``, dans " +"La création de Package RPM est configurée par un fichier :file:`.spec`, un " +"peu comme Distutils est configuré par script *setup.py*. Pour vous faciliter " +"la tâche, la commande :command:`bdist_rpm` crée normalement un fichier :file:" +"`.spec` basé sur les informations que vous fournissez dans *setup.py*, dans " "les options de la ligne de commande et dans la configuration de Distutils. " "Beaucoup d'options du fichier :file:`.spec` sont dérivées des options du " -"script de préparation suivant :" +"script de préparation suivant :" #: ../Doc/distutils/builtdist.rst:196 ../Doc/distutils/builtdist.rst:220 msgid "RPM :file:`.spec` file option or section" @@ -479,7 +479,7 @@ msgstr "``description``" #: ../Doc/distutils/builtdist.rst:202 msgid "Version" -msgstr "*Version*" +msgstr "Version" #: ../Doc/distutils/builtdist.rst:202 msgid "``version``" @@ -487,7 +487,7 @@ msgstr "``version``" #: ../Doc/distutils/builtdist.rst:204 ../Doc/distutils/builtdist.rst:227 msgid "Vendor" -msgstr "*vendor*" +msgstr "Vendor" #: ../Doc/distutils/builtdist.rst:204 msgid "" @@ -507,7 +507,7 @@ msgstr "``license``" #: ../Doc/distutils/builtdist.rst:210 msgid "Url" -msgstr "*Url*" +msgstr "Url" #: ../Doc/distutils/builtdist.rst:210 msgid "``url``" @@ -537,7 +537,7 @@ msgstr "Option de :command:`bdist_rpm`" #: ../Doc/distutils/builtdist.rst:220 msgid "default value" -msgstr "Valeur par défaut" +msgstr "valeur par défaut" #: ../Doc/distutils/builtdist.rst:223 msgid "Release" @@ -553,7 +553,7 @@ msgstr "\"1\"" #: ../Doc/distutils/builtdist.rst:225 msgid "Group" -msgstr "*Group*" +msgstr "Group" #: ../Doc/distutils/builtdist.rst:225 msgid "``group``" @@ -573,7 +573,7 @@ msgstr "(voir au-dessus)" #: ../Doc/distutils/builtdist.rst:229 msgid "Packager" -msgstr "*Packager*" +msgstr "Packager" #: ../Doc/distutils/builtdist.rst:229 msgid "``packager``" @@ -588,7 +588,7 @@ msgstr "(none)" #: ../Doc/distutils/builtdist.rst:231 msgid "Provides" -msgstr "*Provides*" +msgstr "Provides" #: ../Doc/distutils/builtdist.rst:231 msgid "``provides``" @@ -596,7 +596,7 @@ msgstr "``provides``" #: ../Doc/distutils/builtdist.rst:233 msgid "Requires" -msgstr "*Requires*" +msgstr "Requires" #: ../Doc/distutils/builtdist.rst:233 msgid "``requires``" @@ -604,7 +604,7 @@ msgstr "``requires``" #: ../Doc/distutils/builtdist.rst:235 msgid "Conflicts" -msgstr "*Conflicts*" +msgstr "Conflicts" #: ../Doc/distutils/builtdist.rst:235 msgid "``conflicts``" @@ -612,7 +612,7 @@ msgstr "``conflicts``" #: ../Doc/distutils/builtdist.rst:237 msgid "Obsoletes" -msgstr "*Obsoletes*" +msgstr "Obsoletes" #: ../Doc/distutils/builtdist.rst:237 msgid "``obsoletes``" @@ -620,7 +620,7 @@ msgstr "``obsoletes``" #: ../Doc/distutils/builtdist.rst:239 msgid "Distribution" -msgstr "*Distribution*" +msgstr "Distribution" #: ../Doc/distutils/builtdist.rst:239 msgid "``distribution_name``" @@ -628,7 +628,7 @@ msgstr "``distribution_name``" #: ../Doc/distutils/builtdist.rst:241 msgid "BuildRequires" -msgstr "*BuildRequires*" +msgstr "BuildRequires" #: ../Doc/distutils/builtdist.rst:241 msgid "``build_requires``" @@ -636,7 +636,7 @@ msgstr "``build_requires``" #: ../Doc/distutils/builtdist.rst:243 msgid "Icon" -msgstr "*Icon*" +msgstr "Icon" #: ../Doc/distutils/builtdist.rst:243 msgid "``icon``" @@ -653,6 +653,14 @@ msgid "" "disable this file, you can pass the :option:`!--no-user-cfg` option to :file:" "`setup.py`." msgstr "" +"Fournir ces options en ligne de commande est fastidieux et sujet à des " +"erreurs, il est donc recommandé de les mettre dans un fichier de " +"configuration. :file:`setup.cfg`\\ --- voir la section :ref:`setup-config`. " +"Si vous distribuez ou empaquetez beaucoup de modules de distribution Python, " +"vous pourriez vouloir mettre les options qui s'appliquent à tous vos projets " +"dans votre fichier de configuration personnel Distutils (:file:`~/." +"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:254 msgid "" @@ -668,20 +676,20 @@ msgid "" "Distutils setup script; in fact, much of the information in the setup " "script winds up in the :file:`.spec` file)" msgstr "" -"Créer un fichier :file:`.spec` qui décrira le paquet (comme le script de " +"crée un fichier :file:`.spec` qui décrit le paquet (comme le script de " "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:261 msgid "create the source RPM" -msgstr "creer un RPM source" +msgstr "crée un RPM source" #: ../Doc/distutils/builtdist.rst:263 msgid "" "create the \"binary\" RPM (which may or may not contain binary code, " "depending on whether your module distribution contains Python extensions)" msgstr "" -"Créer le RPM \"binaire\" (qui peut ou non contenir des binaires, tout dépend " +"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:266 @@ -702,6 +710,14 @@ msgid "" "winds up deep in the \"build tree,\" in a temporary directory created by :" "command:`bdist_rpm`.)" msgstr "" +"Si vous le souhaitez, vous pouvez séparer ces trois étapes. Vous pouvez " +"utiliser l'option :option:`!--spec-only` pour faire en sorte que la " +"commande :command:`bdist_rpm` crée juste le fichier :file:`.spec` et " +"quitte ; dans ce cas, le fichier :file:`.spec` sera écrit dans le dossier de " +"distribution (\"*distribution directory*\") --- normalement :file:`dist/`, " +"mais personnalisable avec l'option :option:`!--dist-dir`. (Normalement, le " +"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:297 msgid "Creating Windows Installers" @@ -715,7 +731,7 @@ msgid "" "metadata in the setup script, let the user select a few options, and start " "or cancel the installation." msgstr "" -"Les installateurs exécutable sont le format naturel pour les distributions " +"Les installateurs exécutables sont le format naturel pour les distributions " "sur Windows. Ils affichent une jolie interface graphique, montrent quelques " "informations à propos du module qui va être installé, tiré des métadonnées " "dans le script de préparation, laisse l'utilisateur choisir quelques options " @@ -726,12 +742,12 @@ msgid "" "Since the metadata is taken from the setup script, creating Windows " "installers is usually as easy as running::" msgstr "" -"Etant donné que les métadonnées sont tirées du script de préparation, créer " +"É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:310 msgid "or the :command:`bdist` command with the :option:`!--formats` option::" -msgstr "" +msgstr "ou la commande :command:`bdist` avec l'option :option:`!--formats` ::" #: ../Doc/distutils/builtdist.rst:314 msgid "" @@ -767,6 +783,11 @@ msgid "" "`bdist_wininst` command with the :option:`!--no-target-compile` and/or the :" "option:`!--no-target-optimize` option." msgstr "" +"L'installeur essaiera de compiler les modules purs en :term:`bytecode` après " +"installation sur le système cible dans les modes normaux et optimisé. Si " +"vous ne voulez pas que ce soit fait, vous pouvez lancer la commande :command:" +"`bdist_wininst` avec l'option :option:`!--no-target-compile` et/ou l'option :" +"option:`!--no-target-optimize`." #: ../Doc/distutils/builtdist.rst:331 msgid "" @@ -774,6 +795,9 @@ msgid "" "it is run, but you can also supply your own 152x261 bitmap which must be a " "Windows :file:`.bmp` file with the :option:`!--bitmap` option." msgstr "" +"Par défaut l'installateur affichera le super logo \"Python Powered\", mais " +"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:335 msgid "" @@ -782,6 +806,10 @@ msgid "" "distribution and the version number. This can be changed to another text by " "using the :option:`!--title` option." msgstr "" +"L'installateur affichera aussi un grand titre en arrière plan de la fenêtre " +"quand exécuté, qui est composé du nom de votre distribution et du numéro de " +"version. Cela peut être changé avec un autre texte avec l'option :option:`!--" +"title`." #: ../Doc/distutils/builtdist.rst:340 msgid "" @@ -789,6 +817,9 @@ msgid "" "normally :file:`dist/`, but customizable with the :option:`!--dist-dir` " "option." msgstr "" +"Le fichier d'installation sera écrit dans le dossier de distribution " +"(\"*distribution directory*\") --- normalement :file:`dist/`, mais " +"personnalisable avec l'option :option:`!--dist-dir`." #: ../Doc/distutils/builtdist.rst:346 msgid "Cross-compiling on Windows" @@ -801,7 +832,7 @@ msgid "" "installed, you can use a 32bit version of Windows to create 64bit extensions " "and vice-versa." msgstr "" -"Depuis Python 2.6, distutils est capable de compiler pour toute les " +"Depuis Python 2.6, *distutils* est capable de compiler pour toutes les " "plateformes de Windows. En pratique, cela signifie qu'avec les bons outils " "installés, vous pouvez utiliser une version 32 bits de Windows pour créer " "une extension 64 bits et vice-versa." @@ -812,13 +843,17 @@ msgid "" "option to the build command. Valid values are currently 'win32', and 'win-" "amd64'. For example, on a 32bit version of Windows, you could execute::" msgstr "" +"Pour construire pour une plateforme alternative, spécifiez l'option :option:" +"`!--plat-name` à la commande de **build**. Les valeurs valides sont " +"actuellement **'win32'**, et **'win-amd64'**. Par exemple, sur une version " +"*32bit* de Windows, vous pourriez exécuter ::" #: ../Doc/distutils/builtdist.rst:359 msgid "" "to build a 64bit version of your extension. The Windows Installers also " "support this option, so the command::" msgstr "" -"Pour construire une version 64 bits de votre module. L'installateur Windows " +"pour construire une version 64 bits de votre module. L'installateur Windows " "supporte aussi cette option, donc la commande ::" #: ../Doc/distutils/builtdist.rst:364 @@ -826,7 +861,7 @@ msgid "" "would create a 64bit installation executable on your 32bit version of " "Windows." msgstr "" -"créera un installateur executable 64 bits depuis votre version 32 bits de " +"créera un installateur exécutable 64 bits depuis votre version 32 bits de " "Windows." #: ../Doc/distutils/builtdist.rst:366 @@ -842,12 +877,12 @@ msgid "" msgstr "" "Pour effectuer une compilation croisée (*cross-compile* en anglais), vous " "devez télécharger le code source de Python et le compiler pour la plateforme " -"cible - il est impossible de le faire depuis une installation de Python (vu " -"que les fichiers .lib pour les autres plateformes ne sont pas inclus). En " -"pratique, cela veut dire qu'un utilisateur de systeme 32 bits devra utiliser " +"cible, il est impossible de le faire depuis une installation de Python (vu " +"que les fichiers *.lib* pour les autres plateformes ne sont pas inclus). En " +"pratique, cela veut dire qu'un utilisateur de système 32 bits devra utiliser " "Visual Studio 2008 pour ouvrir la solution :file:`PCBuild/PCbuild.sln` dans " -"l'arborescence des sources de Python et construire la version \"x64\" du " -"projet \"pythoncore\" avant de pouvoir compiler son extension." +"l'arborescence des sources de Python et construire la version *x64* du " +"projet *pythoncore* avant de pouvoir compiler son extension." #: ../Doc/distutils/builtdist.rst:375 msgid "" @@ -857,9 +892,9 @@ msgid "" "to check or modify your existing install.)" msgstr "" "Remarquez que par défaut Visual Studio 2008 n'installe pas les outils et " -"compilateur 64 bits. Vous devrez peut être re-executer le processus " -"d'installation et sélectionner ces outils (utiliser le Panneau de Contrôle-" -">[Ajouter/Supprimer] est un bon moyen de vérifier ou modifier votre " +"compilateur 64 bits. Vous devrez peut-être ré-exécuter le processus " +"d'installation et sélectionner ces outils (utiliser le *Panneau de Contrôle -" +"> [Ajouter/Supprimer]* est un bon moyen de vérifier ou modifier votre " "installation existante.)" #: ../Doc/distutils/builtdist.rst:383 @@ -873,6 +908,9 @@ msgid "" "specified, and the script filename must also be listed in the scripts " "argument to the setup function." msgstr "" +"Depuis Python 2.3, un script post-installation peut être spécifié avec " +"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:390 msgid "" @@ -881,6 +919,11 @@ msgid "" "again at uninstallation time before the files are removed with ``argv[1]`` " "set to :option:`!-remove`." msgstr "" +"Ce script doit être lancé au moment de l'installation sur le système cible " +"après que tous les fichiers ont été copiés, avec la valeur de ``argv[1]`` " +"à :option:`!-install`, et une autre fois durant la désinstallation avant " +"que les fichiers soient supprimés avec la valeur de ``argv[1]`` à :option:`!-" +"remove`." #: ../Doc/distutils/builtdist.rst:395 msgid "" @@ -897,8 +940,8 @@ msgid "" "Some functions especially useful in this context are available as additional " "built-in functions in the installation script." msgstr "" -"certaines fonctions spécialement utiles dans ce contexte sont disponibles " -"comme fonctions intégrées additionnelles dans le script d'installation." +"Certaines fonctions spécialement utiles dans ce contexte sont disponibles " +"comme fonctions natives additionnelles dans le script d'installation." #: ../Doc/distutils/builtdist.rst:406 msgid "" @@ -909,7 +952,7 @@ msgid "" msgstr "" "Ces fonctions peuvent être appelées lorsqu'un répertoire ou un fichier est " "crée par le script de post installation au moment de l'installation. Cela va " -"enregistrer le *chemin* avec le des-installeur, de sorte qu'il soit retiré " +"enregistrer le *chemin* avec le des-installateur, de sorte qu'il soit retiré " "lors de la des-installation de la distribution. pour être sûr, les " "répertoires sont uniquement retirés s'ils sont vides." @@ -955,12 +998,12 @@ msgstr "" "spécifie les arguments de la ligne de commande, si existant. *cheminRep* est " "le répertoire de travail pour le programme. *cheminIcone* est le fichier " "contenant l’icône pour le raccourci, et *IndexIcone* est l'index pour " -"l’icône dans le fichier *cheminIcone*. Encore, pour les details consulter la " +"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:454 msgid "Vista User Access Control (UAC)" -msgstr "Controle d'accès utilisateur Vista (UAC)" +msgstr "Contrôle d'accès utilisateur Vista (UAC)" #: ../Doc/distutils/builtdist.rst:456 msgid "" @@ -970,3 +1013,9 @@ msgid "" "Python was installed for all users) and 'force' (meaning always prompt for " "elevation)." msgstr "" +"Depuis Python 2.6, *bdist_wininst* accepte une option :option:`!--user-" +"access-control`. Sa valeur par défaut est 'none' (Ce qui veut dire que aucun " +"UAC est fait), et les autres valeurs valides sont 'auto' (ce qui veut dire " +"qu'il faut demander une élévation de privilèges UAC si Python a été installé " +"pour tous les utilisateurs) et 'force' (Toujours demander une élévation de " +"privilèges)." diff --git a/distutils/commandref.po b/distutils/commandref.po index 968afe718..3c67467f5 100644 --- a/distutils/commandref.po +++ b/distutils/commandref.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-07-03 10:47+0200\n" +"PO-Revision-Date: 2018-10-04 15:27+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -89,7 +89,7 @@ msgstr ":command:`recursive-include dir pat1 pat2 ...`" #: ../Doc/distutils/commandref.rst:69 msgid "include all files under *dir* matching any of the listed patterns" msgstr "" -"inclut récurssivement tous les fichiers sous *dir* ressemblant aux modèles " +"inclut récursivement tous les fichiers sous *dir* ressemblant aux modèles " "listés" #: ../Doc/distutils/commandref.rst:72 @@ -147,7 +147,7 @@ msgid "" "filename character\" is platform-specific: on Unix it is anything except " "slash; on Windows anything except backslash or colon." msgstr "" -"Les modèles sont de style Unix \"glob\": ``*`` correspond à n'importe quelle " +"Les modèles sont de style Unix *glob* : ``*`` correspond à n'importe quelle " "chaîne de caractères d'un nom de fichier valide, ``?`` correspond à un seul " "caractère d'un nom de fichier valide et ``[range]`` correspond à n'importe " "quel caractère dans la *range* (e.g., ``a-z``, ``a-zA-Z``, ``a-f0-9_.``). " diff --git a/distutils/configfile.po b/distutils/configfile.po index 6afc1228b..964b5ac73 100644 --- a/distutils/configfile.po +++ b/distutils/configfile.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-04-29 00:24+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+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/distutils/configfile.rst:16 msgid "" "The setup configuration file is a useful middle-ground between the setup " -"script ---which, ideally, would be opaque to installers [#]_---and the " +"script---which, ideally, would be opaque to installers [#]_---and the " "command-line to the setup script, which is outside of your control and " "entirely up to the installer. In fact, :file:`setup.cfg` (and any other " "Distutils configuration files present on the target system) are processed " diff --git a/distutils/extending.po b/distutils/extending.po index 9cbce2ba5..3415815c9 100644 --- a/distutils/extending.po +++ b/distutils/extending.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-18 10:21+0200\n" +"PO-Revision-Date: 2018-11-30 14:00+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" #: ../Doc/distutils/extending.rst:5 msgid "Extending Distutils" -msgstr "" +msgstr "Extension de Distutils" #: ../Doc/distutils/extending.rst:7 msgid "" @@ -26,6 +27,11 @@ msgid "" "while replacements for existing commands may be made to modify details of " "how the command operates on a package." msgstr "" +"*Distutils* peut être étendu de multiples façons. La plupart des extensions " +"sont soit des nouvelles commandes soit des remplacements de commandes " +"existantes. De nouvelles commandes pourraient par exemple servir à " +"l'empaquetage pour des plateformes spécifiques tandis que des remplacements " +"peuvent modifier certains aspects des commandes existantes." #: ../Doc/distutils/extending.rst:13 msgid "" @@ -34,6 +40,9 @@ msgid "" "that should be copied into packages in addition to :file:`.py` files as a " "convenience." msgstr "" +"La plupart des extensions de *distutils* sont faites dans le script :file:" +"`setup.py`. La plupart ajoutent simplement quelques extensions de fichiers " +"qui devraient être copiés dans le paquet en plus des fichiers :file:`.py`." #: ../Doc/distutils/extending.rst:18 msgid "" @@ -43,10 +52,16 @@ msgid "" "indirectly, directly subclassing the command they are replacing. Commands " "are required to derive from :class:`Command`." msgstr "" +"La plupart des implémentations des commandes *distutils* sont des sous-" +"classes de :class:`distutils.cmd.Command`. Les nouvelles commandes peuvent " +"hériter directement de :class:`Command`, alors que les remplacements " +"dérivent souvent de :class:`Command` indirectement, directement sous-" +"classant la commande qu'ils remplacent. Les commandes doivent dériver de la " +"classe :class:`Command`." #: ../Doc/distutils/extending.rst:33 msgid "Integrating new commands" -msgstr "" +msgstr "Intégrer de nouvelles commandes" #: ../Doc/distutils/extending.rst:35 msgid "" @@ -55,6 +70,11 @@ msgid "" "features in distutils itself, and wait for (and require) a version of Python " "that provides that support. This is really hard for many reasons." msgstr "" +"Il y a différentes façons d’intégrer de nouvelles implémentations de " +"commandes dans *distutils*. La plus difficile est de faire pression pour " +"inclure une nouvelle fonctionnalité dans *distutils* même, et d’attendre (et " +"demander) une version de Python l'implémentant. C'est très difficile pour " +"beaucoup de raisons." #: ../Doc/distutils/extending.rst:40 msgid "" @@ -62,6 +82,10 @@ msgid "" "include the new implementations with your :file:`setup.py` script, and cause " "the :func:`distutils.core.setup` function use them::" msgstr "" +"La plus commune, et possiblement la plus raisonnable pour la plupart des " +"cas, est d'inclure les nouvelles implémentations dans votre fichier :file:" +"`setup.py`, et de faire en sorte que la fonction :func:`distutils.core." +"setup` les utilise ::" #: ../Doc/distutils/extending.rst:55 msgid "" @@ -69,6 +93,10 @@ msgid "" "use a particular package, as everyone interested in the package will need to " "have the new command implementation." msgstr "" +"Cette approche est la plus valable si les nouvelles implémentations doivent " +"être utilisées pour utiliser un paquet particulier, vu que toutes les " +"personnes intéressées par le paquet devront avoir ces nouvelles " +"implémentations de commandes." #: ../Doc/distutils/extending.rst:59 msgid "" @@ -87,6 +115,23 @@ msgid "" "it to an empty string on the command line causes the default to be used. " "This should never be set in a configuration file provided with a package." msgstr "" +"Depuis Python 2.4, une troisième option est disponible, prévue pour " +"permettre d'ajouter de nouvelles commandes compatibles avec le script " +"existant :file:`setup.py` sans avoir besoin de modifier l'installation " +"Python. C'est fait pour que les extensions tierces puissent rester " +"compatibles avec d'autres systèmes d'empaquetage, mais les commandes peuvent " +"être utilisées pour tout ce que les commandes de *distutils* peuvent faire. " +"Une nouvelle option de configuration, ``command_packages`` (option shell :" +"option:`!--command-packages`), peut être utilisée pour spécifier des " +"recherches de paquets additionnels pour des modules qui implémentent des " +"commandes. Comme toutes les options *distutils*, cela peut être spécifié en " +"ligne de commande ou dans un fichier de configuration. Cette option peut " +"être fixée dans la section ``[global]`` d'un fichier de configuration, ou " +"avant n'importe quelle commande dans un shell. Si définie dans un fichier de " +"configuration, elle peut être écrasée depuis la ligne de commande. Mettre " +"une chaine de caractères vide en valeur de cette option forcera " +"l'utilisation de la valeur par défaut. Cela ne devrait jamais être fixé dans " +"un fichier de configuration donné avec un paquet." #: ../Doc/distutils/extending.rst:74 msgid "" @@ -102,10 +147,23 @@ msgid "" "could be implemented by the class :class:`distcmds.bdist_openpkg." "bdist_openpkg` or :class:`buildcmds.bdist_openpkg.bdist_openpkg`." msgstr "" +"Cette nouvelle option peut être utilisée pour ajouter n'importe quel nombre " +"de paquet à la liste des paquets recherchés pour les implémentations de " +"commandes ; plusieurs noms de paquets doivent être séparés par des virgules. " +"Quand non spécifié, la recherche est seulement faite dans le paquet :mod:" +"`distutils.command`. Cependant, lorsque :file:`setup.py` est lancé avec " +"l'option ``--command-packages distcmds,buildcmds``, les paquets :mod:" +"`distutils.command`, :mod:`distcmds`, et :mod:`buildcmds` seront cherchés " +"dans cet ordre. Il est attendu des nouvelles commandes d’être implémentées " +"en modules du même nom que la commande en utilisant des classes partageant " +"le même nom. Comme dans l'exemple shell donné ci-dessus, la commande :" +"command:`bdist_openpkg` pourrait être implémentée avec la classe :class:" +"`distcmds.bdist_openpkg.bdist_openpkg` ou :class:`buildcmds.bdist_openpkg." +"bdist_openpkg`." #: ../Doc/distutils/extending.rst:88 msgid "Adding new distribution types" -msgstr "" +msgstr "Ajout de nouveaux types de distribution" #: ../Doc/distutils/extending.rst:90 msgid "" @@ -116,3 +174,9 @@ msgid "" "file itself. In dry-run mode, pairs should still be added to represent what " "would have been created." msgstr "" +"Les commandes qui créent des distributions (fichiers dans le dossier :file:" +"`dist/`) doivent ajouter la paire ``(command, filename)`` à ``self." +"distribution.dist_files`` pour que :command:`upload` puisse publier sur " +"PyPI. Le nom de fichier (*filename*) dans la paire ne contiens pas de " +"chemin, juste le nom du fichier lui-même. En mode *dry-run*, les paires " +"doivent toujours être ajoutées pour représenter ce qui aurait été créé." diff --git a/distutils/introduction.po b/distutils/introduction.po index e07391385..06544be5d 100644 --- a/distutils/introduction.po +++ b/distutils/introduction.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/distutils/introduction.rst:5 msgid "An Introduction to Distutils" -msgstr "" +msgstr "Introduction à Distutils" #: ../Doc/distutils/introduction.rst:7 msgid "" @@ -25,10 +25,14 @@ msgid "" "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:16 msgid "Concepts & Terminology" -msgstr "" +msgstr "Concepts et Terminologie" #: ../Doc/distutils/introduction.rst:18 msgid "" @@ -37,26 +41,30 @@ msgid "" "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:23 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:25 msgid "(optional) write a setup configuration file" -msgstr "" +msgstr "(optionnel) écrire un fichier de configuration pour l'installation ;" #: ../Doc/distutils/introduction.rst:27 msgid "create a source distribution" -msgstr "" +msgstr "créer une distribution source ;" #: ../Doc/distutils/introduction.rst:29 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:31 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:33 msgid "" @@ -70,6 +78,16 @@ 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 "" +"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." #: ../Doc/distutils/introduction.rst:47 msgid "A Simple Example" @@ -84,22 +102,33 @@ 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:56 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:65 msgid "Some observations:" -msgstr "" +msgstr "Quelques observations :" #: ../Doc/distutils/introduction.rst:67 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:70 msgid "" @@ -107,12 +136,17 @@ msgid "" "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:74 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:77 msgid "" @@ -120,6 +154,9 @@ msgid "" "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:81 msgid "" @@ -127,12 +164,17 @@ msgid "" "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:87 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:92 msgid "" @@ -141,6 +183,11 @@ msgid "" "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:97 msgid "" @@ -148,12 +195,18 @@ msgid "" "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:103 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:106 msgid "" @@ -164,6 +217,13 @@ 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:113 msgid "" @@ -174,12 +234,21 @@ 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:121 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:124 msgid "" @@ -188,6 +257,11 @@ msgid "" "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:132 msgid "" @@ -195,16 +269,21 @@ msgid "" "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:136 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:145 msgid "General Python terminology" -msgstr "" +msgstr "Terminologie Python générale" #: ../Doc/distutils/introduction.rst:147 msgid "" @@ -213,6 +292,10 @@ msgid "" "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:155 msgid "module" @@ -224,10 +307,13 @@ msgid "" "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:160 msgid "pure Python module" -msgstr "" +msgstr "pur module Python" #: ../Doc/distutils/introduction.rst:158 msgid "" @@ -235,6 +321,8 @@ msgid "" "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:168 msgid "extension module" @@ -250,6 +338,13 @@ 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:173 msgid "package" @@ -261,6 +356,9 @@ msgid "" "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:183 msgid "root package" @@ -276,20 +374,30 @@ 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:188 msgid "Distutils-specific terminology" -msgstr "" +msgstr "Terminologie spécifique à Distutils" #: ../Doc/distutils/introduction.rst:190 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:199 msgid "module distribution" -msgstr "" +msgstr "module de distribution" #: ../Doc/distutils/introduction.rst:194 msgid "" @@ -299,30 +407,40 @@ 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:203 msgid "pure module distribution" -msgstr "" +msgstr "distribution de modules purs" #: ../Doc/distutils/introduction.rst:202 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:207 msgid "non-pure module distribution" -msgstr "" +msgstr "distribution de module non pur" #: ../Doc/distutils/introduction.rst:206 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:211 msgid "distribution root" -msgstr "" +msgstr "distribution racine" #: ../Doc/distutils/introduction.rst:210 msgid "" @@ -330,3 +448,6 @@ msgid "" "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 c4eecfc0b..7b9b337af 100644 --- a/distutils/packageindex.po +++ b/distutils/packageindex.po @@ -5,306 +5,34 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-04-29 00:24+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-08-21 12:33+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.3\n" -#: ../Doc/distutils/packageindex.rst:9 +#: ../Doc/distutils/packageindex.rst:7 msgid "The Python Package Index (PyPI)" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:11 -msgid "" -"The `Python Package Index (PyPI)`_ stores :ref:`meta-data ` " -"describing distributions packaged with distutils, as well as package data " -"like distribution files if a package author wishes." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:15 -msgid "" -"Distutils provides the :command:`register` and :command:`upload` commands " -"for pushing meta-data and distribution files to PyPI, respectively. See :" -"ref:`package-commands` for information on these commands." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:21 -msgid "PyPI overview" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:23 -msgid "" -"PyPI lets you submit any number of versions of your distribution to the " -"index. If you alter the meta-data for a particular version, you can submit " -"it again and the index will be updated." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:27 -msgid "" -"PyPI holds a record for each (name, version) combination submitted. The " -"first user to submit information for a given name is designated the Owner of " -"that name. Changes can be submitted through the :command:`register` command " -"or through the web interface. Owners can designate other users as Owners or " -"Maintainers. Maintainers can edit the package information, but not " -"designate new Owners or Maintainers." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:34 -msgid "" -"By default PyPI displays only the newest version of a given package. The " -"web interface lets one change this default behavior and manually select " -"which versions to display and hide." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:38 -msgid "" -"For each version, PyPI displays a home page. The home page is created from " -"the ``long_description`` which can be submitted via the :command:`register` " -"command. See :ref:`package-display` for more information." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:46 -msgid "Distutils commands" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:48 -msgid "" -"Distutils exposes two commands for submitting package data to PyPI: the :ref:" -"`register ` command for submitting meta-data to PyPI and " -"the :ref:`upload ` command for submitting distribution " -"files. Both commands read configuration data from a special file called a :" -"ref:`.pypirc file `." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:58 -msgid "The ``register`` command" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:60 -msgid "" -"The distutils command :command:`register` is used to submit your " -"distribution's meta-data to an index server. It is invoked as follows::" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:65 -msgid "Distutils will respond with the following prompt::" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:75 -msgid "" -"Note: if your username and password are saved locally, you will not see this " -"menu. Also, refer to :ref:`pypirc` for how to store your credentials in a :" -"file:`.pypirc` file." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:79 -msgid "" -"If you have not registered with PyPI, then you will need to do so now. You " -"should choose option 2, and enter your details as required. Soon after " -"submitting your details, you will receive an email which will be used to " -"confirm your registration." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:84 -msgid "" -"Once you are registered, you may choose option 1 from the menu. You will be " -"prompted for your PyPI username and password, and :command:`register` will " -"then submit your meta-data to the index." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:88 -msgid "" -"See :ref:`package-cmdoptions` for options to the :command:`register` command." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:94 -msgid "The ``upload`` command" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:96 -msgid "" -"The distutils command :command:`upload` pushes the distribution files to " -"PyPI." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:98 -msgid "" -"The command is invoked immediately after building one or more distribution " -"files. For example, the command ::" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:103 -msgid "" -"will cause the source distribution and the Windows installer to be uploaded " -"to PyPI. Note that these will be uploaded even if they are built using an " -"earlier invocation of :file:`setup.py`, but that only distributions named on " -"the command line for the invocation including the :command:`upload` command " -"are uploaded." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:108 -msgid "" -"If a :command:`register` command was previously called in the same command, " -"and if the password was entered in the prompt, :command:`upload` will reuse " -"the entered password. This is useful if you do not want to store a password " -"in clear text in a :file:`.pypirc` file." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:113 -msgid "" -"You can use the ``--sign`` option to tell :command:`upload` to sign each " -"uploaded file using GPG (GNU Privacy Guard). The :program:`gpg` program " -"must be available for execution on the system :envvar:`PATH`. You can also " -"specify which key to use for signing using the ``--identity=name`` option." -msgstr "" +msgstr "L'index de paquets Python (*Python Package Index* : PyPI)" -#: ../Doc/distutils/packageindex.rst:118 -msgid "" -"See :ref:`package-cmdoptions` for additional options to the :command:" -"`upload` command." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:125 -msgid "Additional command options" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:127 -msgid "" -"This section describes options common to both the :command:`register` and :" -"command:`upload` commands." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:130 -msgid "" -"The ``--repository`` or ``-r`` option lets you specify a PyPI server " -"different from the default. For example::" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:135 -msgid "" -"For convenience, a name can be used in place of the URL when the :file:`." -"pypirc` file is configured to do so. For example::" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:140 -msgid "See :ref:`pypirc` for more information on defining alternate servers." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:142 -msgid "" -"The ``--show-response`` option displays the full response text from the PyPI " -"server, which is useful when debugging problems with registering and " -"uploading." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:153 -msgid "The ``.pypirc`` file" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:155 -msgid "" -"The :command:`register` and :command:`upload` commands both check for the " -"existence of a :file:`.pypirc` file at the location :file:`$HOME/.pypirc`. " -"If this file exists, the command uses the username, password, and repository " -"URL configured in the file. The format of a :file:`.pypirc` file is as " -"follows:" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:172 -msgid "" -"The *distutils* section defines an *index-servers* variable that lists the " -"name of all sections describing a repository." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:175 -msgid "Each section describing a repository defines three variables:" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:177 -msgid "*repository*, that defines the url of the PyPI server. Defaults to" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:178 -msgid "``https://upload.pypi.org/legacy/``." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:179 -msgid "*username*, which is the registered username on the PyPI server." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:181 -msgid "*password*, that will be used to authenticate. If omitted the user" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:181 -msgid "will be prompt to type it when needed." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:183 -msgid "" -"If you want to define another server a new section can be created and listed " -"in the *index-servers* variable:" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:203 -msgid "" -"This allows the :command:`register` and :command:`upload` commands to be " -"called with the ``--repository`` option as described in :ref:`package-" -"cmdoptions`." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:207 -msgid "" -"Specifically, you might want to add the `PyPI Test Repository `_ to your ``.pypirc`` to facilitate testing before " -"doing your first upload to ``PyPI`` itself." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:215 -msgid "PyPI package display" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:217 -msgid "" -"The ``long_description`` field plays a special role at PyPI. It is used by " -"the server to display a home page for the registered package." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:220 -msgid "" -"If you use the `reStructuredText `_ syntax for this field, PyPI will parse it and display an HTML output " -"for the package home page." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:224 -msgid "" -"The ``long_description`` field can be attached to a text file located in the " -"package::" -msgstr "" - -#: ../Doc/distutils/packageindex.rst:235 -msgid "" -"In that case, :file:`README.txt` is a regular reStructuredText text file " -"located in the root of the package besides :file:`setup.py`." -msgstr "" - -#: ../Doc/distutils/packageindex.rst:238 +#: ../Doc/distutils/packageindex.rst:9 msgid "" -"To prevent registering broken reStructuredText content, you can use the :" -"program:`rst2html` program that is provided by the :mod:`docutils` package " -"and check the ``long_description`` from the command line:" +"The `Python Package Index (PyPI)`_ stores metadata describing distributions " +"packaged with distutils and other publishing tools, as well the distribution " +"archives themselves." msgstr "" +"Le `Python Package Index (PyPI)`_ stocke les métadonnées décrivant les " +"distributions empaquetées avec *distutils* et autres outils de publication, " +"ainsi que les archives des distributions elles-mêmes." -#: ../Doc/distutils/packageindex.rst:246 +#: ../Doc/distutils/packageindex.rst:13 msgid "" -":mod:`docutils` will display a warning if there's something wrong with your " -"syntax. Because PyPI applies additional checks (e.g. by passing ``--no-" -"raw`` to ``rst2html.py`` in the command above), being able to run the " -"command above without warnings does not guarantee that PyPI will convert the " -"content successfully." +"References to up to date PyPI documentation can be found at :ref:`publishing-" +"python-packages`." msgstr "" +"Des références à la documentation de PyPI à jour peuvent être trouvées sur :" +"ref:`publishing-python-packages`." diff --git a/distutils/setupscript.po b/distutils/setupscript.po index 5b8887b29..6f52fe7f5 100644 --- a/distutils/setupscript.po +++ b/distutils/setupscript.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\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/distutils/setupscript.rst:5 msgid "Writing the Setup Script" -msgstr "" +msgstr "Rédaction du script ``setup.py``" #: ../Doc/distutils/setupscript.rst:7 msgid "" @@ -29,6 +29,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:15 msgid "" @@ -39,6 +48,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:35 msgid "" @@ -50,6 +67,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:43 msgid "" @@ -61,6 +86,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:51 msgid "" @@ -69,10 +103,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:63 msgid "Listing whole packages" -msgstr "" +msgstr "Lister l'ensemble des paquets" #: ../Doc/distutils/setupscript.rst:65 msgid "" @@ -89,6 +128,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:77 msgid "" @@ -99,6 +151,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:86 msgid "" @@ -108,6 +168,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:91 msgid "" @@ -115,6 +180,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:97 msgid "" @@ -130,7 +198,7 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:110 msgid "Listing individual modules" -msgstr "" +msgstr "Lister chaque module indépendamment" #: ../Doc/distutils/setupscript.rst:112 msgid "" @@ -140,6 +208,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:119 msgid "" @@ -150,10 +223,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:129 msgid "Describing extension modules" -msgstr "" +msgstr "Description des modules d'extension" #: ../Doc/distutils/setupscript.rst:131 msgid "" @@ -164,6 +243,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:140 msgid "" @@ -175,6 +261,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:150 msgid "" @@ -182,6 +275,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:160 msgid "" @@ -190,10 +286,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:167 msgid "Extension names and packages" -msgstr "" +msgstr "Nom des extensions et paquets" #: ../Doc/distutils/setupscript.rst:169 msgid "" @@ -201,10 +301,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:174 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:178 msgid "" @@ -213,6 +315,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:183 msgid "" @@ -220,16 +327,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:193 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:198 msgid "Extension source files" -msgstr "" +msgstr "Fichiers sources d'extension" #: ../Doc/distutils/setupscript.rst:200 msgid "" @@ -240,6 +352,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:207 msgid "" @@ -248,16 +366,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:214 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:223 msgid "Or on the commandline like this::" -msgstr "" +msgstr "Ou en ligne de commande de cette façon ::" #: ../Doc/distutils/setupscript.rst:227 msgid "" @@ -267,10 +391,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:235 msgid "Preprocessor options" -msgstr "" +msgstr "Options de préprocesseur" #: ../Doc/distutils/setupscript.rst:237 msgid "" @@ -278,12 +408,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:241 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:246 msgid "" @@ -291,12 +428,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:252 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:257 msgid "" @@ -310,6 +452,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:269 msgid "" @@ -317,6 +470,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:279 msgid "" @@ -324,6 +481,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:283 msgid "" @@ -335,6 +495,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:291 msgid "For example::" @@ -342,11 +510,11 @@ msgstr "Par exemple ::" #: ../Doc/distutils/setupscript.rst:298 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:307 msgid "Library options" -msgstr "" +msgstr "Options des bibliothèques" #: ../Doc/distutils/setupscript.rst:309 msgid "" @@ -357,33 +525,48 @@ 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:315 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:321 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:328 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:335 msgid "Other options" -msgstr "" +msgstr "Autres options" #: ../Doc/distutils/setupscript.rst:337 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:339 msgid "" @@ -391,6 +574,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:343 msgid "" @@ -398,6 +584,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:347 msgid "" @@ -405,6 +594,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:351 msgid "" @@ -413,6 +605,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:356 msgid "" @@ -421,32 +617,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:362 msgid "Relationships between Distributions and Packages" -msgstr "" +msgstr "Relations entre distributions et paquets" #: ../Doc/distutils/setupscript.rst:364 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:366 msgid "It can require packages or modules." -msgstr "" +msgstr "elle peut nécessiter des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:368 msgid "It can provide packages or modules." -msgstr "" +msgstr "elle peut fournir des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:370 msgid "It can obsolete packages or modules." -msgstr "" +msgstr "elle peut rendre obsolète des paquets ou des modules." #: ../Doc/distutils/setupscript.rst:372 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:375 msgid "" @@ -455,6 +659,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:380 msgid "" @@ -462,6 +670,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:384 msgid "" @@ -469,6 +680,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:391 msgid "" @@ -476,14 +691,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:395 msgid "Let's look at a bunch of examples:" -msgstr "" +msgstr "Jetons un œil à quelques exemples :" #: ../Doc/distutils/setupscript.rst:398 msgid "Requires Expression" -msgstr "" +msgstr "Valeur de ``requires``" #: ../Doc/distutils/setupscript.rst:398 ../Doc/distutils/setupscript.rst:416 msgid "Explanation" @@ -491,20 +710,22 @@ msgstr "Explication" #: ../Doc/distutils/setupscript.rst:400 msgid "``==1.0``" -msgstr "" +msgstr "``==1.0``" #: ../Doc/distutils/setupscript.rst:400 msgid "Only version ``1.0`` is compatible" -msgstr "" +msgstr "Seule la version ``1.0`` est compatible." #: ../Doc/distutils/setupscript.rst:402 msgid "``>1.0, !=1.5.1, <2.0``" -msgstr "" +msgstr "``>1.0, !=1.5.1, <2.0``" #: ../Doc/distutils/setupscript.rst:402 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:406 msgid "" @@ -515,6 +736,13 @@ 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:413 msgid "Some examples:" @@ -522,23 +750,25 @@ msgstr "Quelques exemples :" #: ../Doc/distutils/setupscript.rst:416 msgid "Provides Expression" -msgstr "" +msgstr "Valeur de ``provides``" #: ../Doc/distutils/setupscript.rst:418 msgid "``mypkg``" -msgstr "" +msgstr "``mypkg``" #: ../Doc/distutils/setupscript.rst:418 msgid "Provide ``mypkg``, using the distribution version" -msgstr "" +msgstr "Fournit ``mypkg`` en utilisant la version de la distribution." #: ../Doc/distutils/setupscript.rst:421 msgid "``mypkg (1.1)``" -msgstr "" +msgstr "``mypkg (1.1)``" #: ../Doc/distutils/setupscript.rst:421 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:425 msgid "" @@ -549,6 +779,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:432 msgid "" @@ -556,16 +793,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:439 msgid "Installing Scripts" -msgstr "" +msgstr "Installation des scripts" #: ../Doc/distutils/setupscript.rst:441 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:444 msgid "" @@ -578,22 +822,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:452 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:459 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:467 msgid "Installing Package Data" -msgstr "" +msgstr "Installation de paquets de données" #: ../Doc/distutils/setupscript.rst:469 msgid "" @@ -602,6 +859,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:474 msgid "" @@ -613,32 +875,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:482 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:485 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:498 msgid "The corresponding call to :func:`setup` might be::" -msgstr "" +msgstr "L'appel correspondant à :func:`setup` peut s'écrire ::" #: ../Doc/distutils/setupscript.rst:507 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:515 msgid "Installing Additional Files" -msgstr "" +msgstr "Installation de fichiers additionnels" #: ../Doc/distutils/setupscript.rst:517 msgid "" @@ -646,32 +923,60 @@ 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:521 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:530 +#: ../Doc/distutils/setupscript.rst:529 msgid "" -"Note that you can specify the directory names where the data files will be " -"installed, but you cannot rename the data files themselves." +"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:533 +#: ../Doc/distutils/setupscript.rst:532 msgid "" -"Each (*directory*, *files*) pair in the sequence specifies the installation " -"directory and the files to install there. If *directory* is a relative " -"path, it is interpreted relative to the installation prefix (Python's ``sys." -"prefix`` for pure-Python packages, ``sys.exec_prefix`` for packages that " -"contain extension modules). Each file name in *files* is interpreted " -"relative to the :file:`setup.py` script at the top of the package source " -"distribution. No directory information from *files* is used to determine " -"the final location of the installed file; only the name of the file is used." +"Each file name in *files* is interpreted relative to the :file:`setup.py` " +"script at the top of the package source distribution. Note that you can " +"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:542 +#: ../Doc/distutils/setupscript.rst:537 +msgid "" +"The *directory* should be a relative path. It is interpreted relative to the " +"installation prefix (Python's ``sys.prefix`` for system installations; " +"``site.USER_BASE`` for user installations). Distutils allows *directory* to " +"be an absolute installation path, but this is discouraged since it is " +"incompatible with the wheel packaging format. No directory information from " +"*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:545 msgid "" "You can specify the ``data_files`` options as a simple sequence of files " "without specifying a target directory, but this is not recommended, and the :" @@ -679,280 +984,308 @@ 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:548 +#: ../Doc/distutils/setupscript.rst:551 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:556 +#: ../Doc/distutils/setupscript.rst:559 msgid "Additional meta-data" -msgstr "" +msgstr "Métadonnées additionnelles" -#: ../Doc/distutils/setupscript.rst:558 +#: ../Doc/distutils/setupscript.rst:561 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:562 +#: ../Doc/distutils/setupscript.rst:565 msgid "Meta-Data" -msgstr "" +msgstr "Métadonnées" -#: ../Doc/distutils/setupscript.rst:562 +#: ../Doc/distutils/setupscript.rst:565 msgid "Description" msgstr "Description" -#: ../Doc/distutils/setupscript.rst:562 +#: ../Doc/distutils/setupscript.rst:565 msgid "Value" msgstr "Valeur" -#: ../Doc/distutils/setupscript.rst:562 +#: ../Doc/distutils/setupscript.rst:565 msgid "Notes" msgstr "Notes" -#: ../Doc/distutils/setupscript.rst:564 +#: ../Doc/distutils/setupscript.rst:567 msgid "``name``" msgstr "``name``" -#: ../Doc/distutils/setupscript.rst:564 +#: ../Doc/distutils/setupscript.rst:567 msgid "name of the package" -msgstr "" +msgstr "nom du paquet" -#: ../Doc/distutils/setupscript.rst:564 ../Doc/distutils/setupscript.rst:566 -#: ../Doc/distutils/setupscript.rst:568 ../Doc/distutils/setupscript.rst:573 -#: ../Doc/distutils/setupscript.rst:580 ../Doc/distutils/setupscript.rst:596 +#: ../Doc/distutils/setupscript.rst:567 ../Doc/distutils/setupscript.rst:569 +#: ../Doc/distutils/setupscript.rst:571 ../Doc/distutils/setupscript.rst:576 +#: ../Doc/distutils/setupscript.rst:583 ../Doc/distutils/setupscript.rst:599 msgid "short string" -msgstr "" +msgstr "courte chaîne de caractères" -#: ../Doc/distutils/setupscript.rst:564 ../Doc/distutils/setupscript.rst:578 +#: ../Doc/distutils/setupscript.rst:567 ../Doc/distutils/setupscript.rst:581 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/distutils/setupscript.rst:566 +#: ../Doc/distutils/setupscript.rst:569 msgid "``version``" msgstr "``version``" -#: ../Doc/distutils/setupscript.rst:566 +#: ../Doc/distutils/setupscript.rst:569 msgid "version of this release" -msgstr "" +msgstr "version de la publication" -#: ../Doc/distutils/setupscript.rst:566 +#: ../Doc/distutils/setupscript.rst:569 msgid "(1)(2)" msgstr "(1)(2)" -#: ../Doc/distutils/setupscript.rst:568 +#: ../Doc/distutils/setupscript.rst:571 msgid "``author``" -msgstr "" +msgstr "``author``" -#: ../Doc/distutils/setupscript.rst:568 +#: ../Doc/distutils/setupscript.rst:571 msgid "package author's name" -msgstr "" +msgstr "nom de l'auteur du paquet" -#: ../Doc/distutils/setupscript.rst:568 ../Doc/distutils/setupscript.rst:570 -#: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:575 +#: ../Doc/distutils/setupscript.rst:571 ../Doc/distutils/setupscript.rst:573 +#: ../Doc/distutils/setupscript.rst:576 ../Doc/distutils/setupscript.rst:578 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/distutils/setupscript.rst:570 +#: ../Doc/distutils/setupscript.rst:573 msgid "``author_email``" -msgstr "" +msgstr "``author_email``" -#: ../Doc/distutils/setupscript.rst:570 +#: ../Doc/distutils/setupscript.rst:573 msgid "email address of the package author" -msgstr "" +msgstr "adresse courriel de l'auteur du paquet" -#: ../Doc/distutils/setupscript.rst:570 ../Doc/distutils/setupscript.rst:575 +#: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:578 msgid "email address" -msgstr "" +msgstr "adresse de courriel" -#: ../Doc/distutils/setupscript.rst:573 +#: ../Doc/distutils/setupscript.rst:576 msgid "``maintainer``" -msgstr "" +msgstr "``maintainer``" -#: ../Doc/distutils/setupscript.rst:573 +#: ../Doc/distutils/setupscript.rst:576 msgid "package maintainer's name" -msgstr "" +msgstr "nom du mainteneur du paquet" -#: ../Doc/distutils/setupscript.rst:575 +#: ../Doc/distutils/setupscript.rst:578 msgid "``maintainer_email``" -msgstr "" +msgstr "``maintainer_email``" -#: ../Doc/distutils/setupscript.rst:575 +#: ../Doc/distutils/setupscript.rst:578 msgid "email address of the package maintainer" -msgstr "" +msgstr "adresse du courriel du mainteneur du paquet" -#: ../Doc/distutils/setupscript.rst:578 +#: ../Doc/distutils/setupscript.rst:581 msgid "``url``" msgstr "``url``" -#: ../Doc/distutils/setupscript.rst:578 +#: ../Doc/distutils/setupscript.rst:581 msgid "home page for the package" -msgstr "" +msgstr "page d’accueil du paquet" -#: ../Doc/distutils/setupscript.rst:578 ../Doc/distutils/setupscript.rst:587 +#: ../Doc/distutils/setupscript.rst:581 ../Doc/distutils/setupscript.rst:590 msgid "URL" -msgstr "" +msgstr "URL" -#: ../Doc/distutils/setupscript.rst:580 +#: ../Doc/distutils/setupscript.rst:583 msgid "``description``" msgstr "``description``" -#: ../Doc/distutils/setupscript.rst:580 +#: ../Doc/distutils/setupscript.rst:583 msgid "short, summary description of the package" -msgstr "" +msgstr "bref résumé décrivant le paquet" -#: ../Doc/distutils/setupscript.rst:584 +#: ../Doc/distutils/setupscript.rst:587 msgid "``long_description``" msgstr "``long_description``" -#: ../Doc/distutils/setupscript.rst:584 +#: ../Doc/distutils/setupscript.rst:587 msgid "longer description of the package" -msgstr "" +msgstr "description plus complète du paquet" -#: ../Doc/distutils/setupscript.rst:584 +#: ../Doc/distutils/setupscript.rst:587 msgid "long string" -msgstr "" +msgstr "longue chaîne de caractères" -#: ../Doc/distutils/setupscript.rst:584 +#: ../Doc/distutils/setupscript.rst:587 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/distutils/setupscript.rst:587 +#: ../Doc/distutils/setupscript.rst:590 msgid "``download_url``" -msgstr "" +msgstr "``download_url``" -#: ../Doc/distutils/setupscript.rst:587 +#: ../Doc/distutils/setupscript.rst:590 msgid "location where the package may be downloaded" -msgstr "" +msgstr "endroit où le paquet peut être téléchargé" -#: ../Doc/distutils/setupscript.rst:590 +#: ../Doc/distutils/setupscript.rst:593 msgid "``classifiers``" -msgstr "" +msgstr "``classifiers``" -#: ../Doc/distutils/setupscript.rst:590 +#: ../Doc/distutils/setupscript.rst:593 msgid "a list of classifiers" -msgstr "" +msgstr "une liste de classificateurs" -#: ../Doc/distutils/setupscript.rst:590 ../Doc/distutils/setupscript.rst:592 -#: ../Doc/distutils/setupscript.rst:594 +#: ../Doc/distutils/setupscript.rst:593 ../Doc/distutils/setupscript.rst:595 +#: ../Doc/distutils/setupscript.rst:597 msgid "list of strings" -msgstr "" +msgstr "liste de chaînes de caractères" -#: ../Doc/distutils/setupscript.rst:590 +#: ../Doc/distutils/setupscript.rst:593 msgid "(6)(7)" msgstr "(6)(7)" -#: ../Doc/distutils/setupscript.rst:592 +#: ../Doc/distutils/setupscript.rst:595 msgid "``platforms``" -msgstr "" +msgstr "``platforms``" -#: ../Doc/distutils/setupscript.rst:592 +#: ../Doc/distutils/setupscript.rst:595 msgid "a list of platforms" -msgstr "" +msgstr "une liste de plateformes" -#: ../Doc/distutils/setupscript.rst:592 ../Doc/distutils/setupscript.rst:594 +#: ../Doc/distutils/setupscript.rst:595 ../Doc/distutils/setupscript.rst:597 msgid "(6)(8)" -msgstr "" +msgstr "(6)(8)" -#: ../Doc/distutils/setupscript.rst:594 +#: ../Doc/distutils/setupscript.rst:597 msgid "``keywords``" -msgstr "" +msgstr "``keywords``" -#: ../Doc/distutils/setupscript.rst:594 +#: ../Doc/distutils/setupscript.rst:597 msgid "a list of keywords" -msgstr "" +msgstr "une liste de mots-clés" -#: ../Doc/distutils/setupscript.rst:596 +#: ../Doc/distutils/setupscript.rst:599 msgid "``license``" msgstr "``license``" -#: ../Doc/distutils/setupscript.rst:596 +#: ../Doc/distutils/setupscript.rst:599 msgid "license for the package" -msgstr "" +msgstr "licence du paquet" -#: ../Doc/distutils/setupscript.rst:596 +#: ../Doc/distutils/setupscript.rst:599 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/distutils/setupscript.rst:599 +#: ../Doc/distutils/setupscript.rst:602 msgid "Notes:" msgstr "Notes :" -#: ../Doc/distutils/setupscript.rst:602 +#: ../Doc/distutils/setupscript.rst:605 msgid "These fields are required." -msgstr "" +msgstr "Ces champs sont requis." -#: ../Doc/distutils/setupscript.rst:605 +#: ../Doc/distutils/setupscript.rst:608 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:608 +#: ../Doc/distutils/setupscript.rst:611 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:612 +#: ../Doc/distutils/setupscript.rst:615 msgid "" -"The ``long_description`` field is used by PyPI when you are :ref:" -"`registering ` a package, to :ref:`build its home page " -"`." +"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:617 +#: ../Doc/distutils/setupscript.rst:619 msgid "" "The ``license`` field is a text indicating the license covering the package " "where the license is not a selection from the \"License\" Trove classifiers. " "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:624 +#: ../Doc/distutils/setupscript.rst:626 msgid "This field must be a list." -msgstr "" +msgstr "Ce champ doit être une liste." -#: ../Doc/distutils/setupscript.rst:627 +#: ../Doc/distutils/setupscript.rst:629 msgid "" "The valid classifiers are listed on `PyPI `_." msgstr "" +"Les classificateurs valides sont listés sur `PyPI `_." -#: ../Doc/distutils/setupscript.rst:631 +#: ../Doc/distutils/setupscript.rst:633 msgid "" "To preserve backward compatibility, this field also accepts a string. If you " "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:637 +#: ../Doc/distutils/setupscript.rst:639 msgid "'short string'" msgstr "'chaîne courte'" -#: ../Doc/distutils/setupscript.rst:637 +#: ../Doc/distutils/setupscript.rst:639 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:641 +#: ../Doc/distutils/setupscript.rst:643 msgid "'long string'" msgstr "'chaîne longue'" -#: ../Doc/distutils/setupscript.rst:640 +#: ../Doc/distutils/setupscript.rst:642 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:644 +#: ../Doc/distutils/setupscript.rst:646 msgid "'list of strings'" msgstr "'liste de chaînes'" -#: ../Doc/distutils/setupscript.rst:644 +#: ../Doc/distutils/setupscript.rst:646 msgid "See below." -msgstr "" +msgstr "Voir ci-dessous." -#: ../Doc/distutils/setupscript.rst:646 +#: ../Doc/distutils/setupscript.rst:648 msgid "" "Encoding the version information is an art in itself. Python packages " "generally adhere to the version format *major.minor[.patch][sub]*. The major " @@ -966,45 +1299,61 @@ msgid "" "which only fix bugs) and \"pr1,pr2,...,prN\" (for final pre-release release " "testing). Some examples:" msgstr "" - -#: ../Doc/distutils/setupscript.rst:658 +"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:660 msgid "0.1.0" -msgstr "" +msgstr "0.1.0" -#: ../Doc/distutils/setupscript.rst:658 +#: ../Doc/distutils/setupscript.rst:660 msgid "the first, experimental release of a package" -msgstr "" +msgstr "la première, publication expérimentale du paquet" -#: ../Doc/distutils/setupscript.rst:661 +#: ../Doc/distutils/setupscript.rst:663 msgid "1.0.1a2" -msgstr "" +msgstr "1.0.1a2" -#: ../Doc/distutils/setupscript.rst:661 +#: ../Doc/distutils/setupscript.rst:663 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:663 +#: ../Doc/distutils/setupscript.rst:665 msgid "``classifiers`` must be specified in a list::" -msgstr "" +msgstr "les ``classifiers`` doivent être définis dans une liste ::" -#: ../Doc/distutils/setupscript.rst:684 +#: ../Doc/distutils/setupscript.rst:686 msgid "" -":class:`~distutils.core.setup` now raises a :exc:`TypeError` if " -"``classifiers``, ``keywords`` and ``platforms`` fields are not specified as " -"a list." +":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:692 +#: ../Doc/distutils/setupscript.rst:693 msgid "Debugging the setup script" -msgstr "" +msgstr "Débogage du script ``setup.py``" -#: ../Doc/distutils/setupscript.rst:694 +#: ../Doc/distutils/setupscript.rst:695 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:697 +#: ../Doc/distutils/setupscript.rst:698 msgid "" "Distutils catches any exceptions when running the setup script, and print a " "simple error message before the script is terminated. The motivation for " @@ -1014,8 +1363,16 @@ 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:705 +#: ../Doc/distutils/setupscript.rst:706 msgid "" "On the other hand, this doesn't help the developer to find the cause of the " "failure. For this purpose, the :envvar:`DISTUTILS_DEBUG` environment " @@ -1024,6 +1381,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 2620bb237..57815353e 100644 --- a/distutils/sourcedist.po +++ b/distutils/sourcedist.po @@ -141,7 +141,7 @@ msgstr "Par défaut sur Windows" #: ../Doc/distutils/sourcedist.rst:53 msgid "default on Unix" -msgstr "Par défaut sur UNIX" +msgstr "Par défaut sur Unix" #: ../Doc/distutils/sourcedist.rst:56 msgid "" diff --git a/distutils/uploading.po b/distutils/uploading.po index 794d6bca4..575c2bcc0 100644 --- a/distutils/uploading.po +++ b/distutils/uploading.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2017-10-18 09:24+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-08-21 12:22+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.3\n" #: ../Doc/distutils/uploading.rst:5 msgid "Uploading Packages to the Package Index" @@ -20,6 +21,13 @@ msgstr "Téléverser des paquets dans *Python Package Index*" #: ../Doc/distutils/uploading.rst:7 msgid "" -"The contents of this page have moved to the section :ref:`package-index`." +"References to up to date PyPI documentation can be found at :ref:`publishing-" +"python-packages`." msgstr "" -"Le contenu de cette page à déménagé dans la section :ref:`package-index`." +"Des références actualisées à la documentation de PyPI sont disponibles sur :" +"ref:`publishing-python-packages`." + +#~ msgid "" +#~ "The contents of this page have moved to the section :ref:`package-index`." +#~ msgstr "" +#~ "Le contenu de cette page à déménagé dans la section :ref:`package-index`." diff --git a/extending/building.po b/extending/building.po index 603617f03..0841ae991 100644 --- a/extending/building.po +++ b/extending/building.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2017-11-07 23:22+0100\n" +"PO-Revision-Date: 2018-10-04 16:22+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -35,7 +35,7 @@ msgid "" msgstr "" "Pour pouvoir être importée, la bibliothèque partagée doit pourvoir être " "trouvée dans :envvar:`PYTHONPATH`, et doit porter le nom du module, avec " -"l'extension appropriée. En utilisant distutils, le nom est généré " +"l'extension appropriée. En utilisant *distutils*, le nom est généré " "automatiquement." #: ../Doc/extending/building.rst:16 @@ -63,11 +63,11 @@ msgstr "" "Pour les modules dont les noms sont entièrement en ASCII, la fonction doit " "être nommée ``PyInit_``, dont ```` est remplacé par " "le nom du module. En utilisant :ref:`multi-phase-initialization`, il est " -"possible d'utiliser des noms de modules comptant des caractères non-ASCII. " +"possible d'utiliser des noms de modules comptant des caractères non ASCII. " "Dans ce cas, le nom de la fonction d'initialisation est " "``PyInitU_``, où ``modulename`` est encodé avec l'encodage " "*punyencode* de Python, dont les tirets sont remplacés par des tirets-bas. " -"En Python ça donne : ::" +"En Python ça donne ::" #: ../Doc/extending/building.rst:39 msgid "" @@ -77,16 +77,16 @@ msgid "" "function corresponding to the filename is found. See the *\"Multiple modules " "in one library\"* section in :pep:`489` for details." msgstr "" -"Il est possible d'exporter plusieurs modules depuis une seule bibliothéque " +"Il est possible d'exporter plusieurs modules depuis une seule bibliothèque " "partagée en définissant plusieurs fonctions d'initialisation. Cependant pour " "les importer, un lien symbolique doit être créé pour chacun, ou un " -"*importer* personalisé, puisque par défaut seule la fonction correpondant au " -"nom du fichier est cherchée. Voir le chapitre *\"Multiple modules in one " +"*importer* personnalisé, puisque par défaut seule la fonction correspondant " +"au nom du fichier est cherchée. Voir le chapitre *\"Multiple modules in one " "library\"* dans la :pep:`489` pour plus d'informations." #: ../Doc/extending/building.rst:49 msgid "Building C and C++ Extensions with distutils" -msgstr "Construire les extensions C et C++ avec distutils" +msgstr "Construire les extensions C et C++ avec *distutils*" #: ../Doc/extending/building.rst:53 msgid "" @@ -94,22 +94,22 @@ msgid "" "Python. Since distutils also supports creation of binary packages, users " "don't necessarily need a compiler and distutils to install the extension." msgstr "" -"Des modules d'extension peuvent être construits avec distutils, qui est " -"inclus dans Python. Puisque distutils gère aussi la création de paquets " +"Des modules d'extension peuvent être construits avec *distutils*, qui est " +"inclus dans Python. Puisque *distutils* gère aussi la création de paquets " "binaires, les utilisateurs n'auront pas nécessairement besoin ni d'un " -"compilateur ni de distutils pour installer l'extension." +"compilateur ni de *distutils* pour installer l'extension." #: ../Doc/extending/building.rst:57 msgid "" "A distutils package contains a driver script, :file:`setup.py`. This is a " "plain Python file, which, in the most simple case, could look like this:" msgstr "" -"Un paquet distutils contient un script :file:`setup.py`. C'est un simple " +"Un paquet *distutils* contient un script :file:`setup.py`. C'est un simple " "fichier Python, ressemblant dans la plupart des cas à :" #: ../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 "" @@ -140,8 +140,8 @@ msgstr "" "pour construire les paquets, et définir le contenu du paquet. Normalement un " "paquet contient des modules additionnels, comme des modules sources, " "documentation, sous paquets, etc. Referez-vous à la documentation de " -"distutils dans :ref:`distutils-index` pour en apprendre plus sur les " -"fonctionnalités de distutils. Cette section n'explique que la construction " +"*distutils* dans :ref:`distutils-index` pour en apprendre plus sur les " +"fonctionnalités de *distutils*. Cette section n'explique que la construction " "de modules d'extension." #: ../Doc/extending/building.rst:91 @@ -180,21 +180,20 @@ msgid "" "distutils passes this information in different ways to the compiler. For " "example, on Unix, this may result in the compilation commands ::" msgstr "" -"Dans cet exemple, la fonction :func:`~distutils.core.setup` est appellée " -"avec quelques autres méta-informations, ce qui est recommandé pour " -"distribuer des 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 : ::" +"Dans cet exemple, la fonction :func:`~distutils.core.setup` est appelée avec " +"quelques autres méta-informations, ce qui est recommandé pour distribuer des " +"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 : ::" #: ../Doc/extending/building.rst:139 msgid "" "These lines are for demonstration purposes only; distutils users should " "trust that distutils gets the invocations right." msgstr "" -"Ces lignes ne sont qu'à titre d'exemple, les utilisateurs de distutils " -"doivent avoir confiance en distutils qui fera les appels correctement." +"Ces lignes ne sont qu'à titre d'exemple, les utilisateurs de *distutils* " +"doivent avoir confiance en *distutils* qui fera les appels correctement." #: ../Doc/extending/building.rst:146 msgid "Distributing your extension modules" @@ -213,14 +212,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 "" diff --git a/extending/embedding.po b/extending/embedding.po index 25b4f6b5d..144691ee1 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: 2018-02-15 00:35+0100\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" "Language-Team: FRENCH \n" "Language: fr\n" @@ -114,7 +114,7 @@ msgstr "" "sans avoir à interagir avec directement. C'est utile, par exemple, pour " "effectuer une opération sur un fichier. ::" -#: ../Doc/extending/embedding.rst:77 +#: ../Doc/extending/embedding.rst:78 msgid "" "The :c:func:`Py_SetProgramName` function should be called before :c:func:" "`Py_Initialize` to inform the interpreter about paths to Python run-time " @@ -140,11 +140,11 @@ msgstr "" "`PyRun_SimplFile`, qui vous économise le travail d'allouer de la mémoire et " "de charger le contenu du fichier." -#: ../Doc/extending/embedding.rst:92 +#: ../Doc/extending/embedding.rst:93 msgid "Beyond Very High Level Embedding: An overview" msgstr "Au delà de l'intégration de haut niveau: survol" -#: ../Doc/extending/embedding.rst:94 +#: ../Doc/extending/embedding.rst:95 msgid "" "The high level interface gives you the ability to execute arbitrary pieces " "of Python code from your application, but exchanging data values is quite " @@ -158,7 +158,7 @@ msgstr "" "appels de niveau plus bas. Il vous en coûtera plus de lignes de C à écrire, " "mais vous pourrez presque tout faire." -#: ../Doc/extending/embedding.rst:99 +#: ../Doc/extending/embedding.rst:100 msgid "" "It should be noted that extending Python and embedding Python is quite the " "same activity, despite the different intent. Most topics discussed in the " @@ -170,27 +170,27 @@ msgstr "" "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 :" -#: ../Doc/extending/embedding.rst:104 +#: ../Doc/extending/embedding.rst:105 msgid "Convert data values from Python to C," msgstr "Convertir des valeurs de Python vers le C," -#: ../Doc/extending/embedding.rst:106 +#: ../Doc/extending/embedding.rst:107 msgid "Perform a function call to a C routine using the converted values, and" msgstr "Appeler une fonction C en utilisant les valeurs converties, et" -#: ../Doc/extending/embedding.rst:108 +#: ../Doc/extending/embedding.rst:109 msgid "Convert the data values from the call from C to Python." msgstr "Convertir les résultats de l'appel à la fonction C pour Python." -#: ../Doc/extending/embedding.rst:110 +#: ../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 :" -#: ../Doc/extending/embedding.rst:112 +#: ../Doc/extending/embedding.rst:113 msgid "Convert data values from C to Python," msgstr "Convertir les valeurs depuis le C vers Python," -#: ../Doc/extending/embedding.rst:114 +#: ../Doc/extending/embedding.rst:115 msgid "" "Perform a function call to a Python interface routine using the converted " "values, and" @@ -198,11 +198,11 @@ msgstr "" "Effectuer un appel de fonction de l'interface Python en utilisant les " "valeurs converties, et" -#: ../Doc/extending/embedding.rst:117 +#: ../Doc/extending/embedding.rst:118 msgid "Convert the data values from the call from Python to C." msgstr "Convertir les valeurs de l'appel Python pour le C." -#: ../Doc/extending/embedding.rst:119 +#: ../Doc/extending/embedding.rst:120 msgid "" "As you can see, the data conversion steps are simply swapped to accommodate " "the different direction of the cross-language transfer. The only difference " @@ -215,7 +215,7 @@ msgstr "" "données. Lors de l'extension, vous appelez une fonction C, lors de " "l'intégration vous appelez une fonction Python." -#: ../Doc/extending/embedding.rst:124 +#: ../Doc/extending/embedding.rst:125 msgid "" "This chapter will not discuss how to convert data from Python to C and vice " "versa. Also, proper use of references and dealing with errors is assumed to " @@ -228,11 +228,11 @@ msgstr "" "l'extension de l'interpréteur, vous pouvez vous référer aux chapitres " "précédents." -#: ../Doc/extending/embedding.rst:133 +#: ../Doc/extending/embedding.rst:134 msgid "Pure Embedding" msgstr "Intégration pure" -#: ../Doc/extending/embedding.rst:135 +#: ../Doc/extending/embedding.rst:136 msgid "" "The first program aims to execute a function in a Python script. Like in the " "section about the very high level interface, the Python interpreter does not " @@ -244,11 +244,11 @@ msgstr "" "l'interpréteur n'interagit pas directement avec l'application (mais le fera " "dans la section suivante)." -#: ../Doc/extending/embedding.rst:140 +#: ../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 :" -#: ../Doc/extending/embedding.rst:145 +#: ../Doc/extending/embedding.rst:146 msgid "" "This code loads a Python script using ``argv[1]``, and calls the function " "named in ``argv[2]``. Its integer arguments are the other values of the " @@ -262,11 +262,11 @@ msgstr "" "programme (appelons l'exécutable :program:`call`), et l'appelez pour " "exécuter un script Python, tel que :" -#: ../Doc/extending/embedding.rst:160 +#: ../Doc/extending/embedding.rst:161 msgid "then the result should be:" msgstr "alors, le résultat sera:" -#: ../Doc/extending/embedding.rst:168 +#: ../Doc/extending/embedding.rst:169 msgid "" "Although the program is quite large for its functionality, most of the code " "is for data conversion between Python and C, and for error reporting. The " @@ -275,9 +275,9 @@ 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:177 +#: ../Doc/extending/embedding.rst:178 msgid "" "After initializing the interpreter, the script is loaded using :c:func:" "`PyImport_Import`. This routine needs a Python string as its argument, " @@ -289,7 +289,7 @@ msgstr "" "argument, elle même construite en utilisant la fonction de conversion :c:" "func:`PyUnicode_FromString`." -#: ../Doc/extending/embedding.rst:190 +#: ../Doc/extending/embedding.rst:191 msgid "" "Once the script is loaded, the name we're looking for is retrieved using :c:" "func:`PyObject_GetAttrString`. If the name exists, and the object returned " @@ -301,9 +301,9 @@ msgstr "" "`PyObject_GetAttrString`. Si le nom existe, et que l'objet récupéré peut " "être appelé, vous pouvez présumer sans risque que c'est une fonction. Le " "programme continue, classiquement, par la construction de n-uplet " -"d'arguments. L'appel à la fonction Python est alors effectué avec : ::" +"d'arguments. L'appel à la fonction Python est alors effectué avec ::" -#: ../Doc/extending/embedding.rst:198 +#: ../Doc/extending/embedding.rst:199 msgid "" "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 " @@ -313,11 +313,11 @@ msgstr "" "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." -#: ../Doc/extending/embedding.rst:206 +#: ../Doc/extending/embedding.rst:207 msgid "Extending Embedded Python" msgstr "Étendre un Python intégré" -#: ../Doc/extending/embedding.rst:208 +#: ../Doc/extending/embedding.rst:209 msgid "" "Until now, the embedded Python interpreter had no access to functionality " "from the application itself. The Python API allows this by extending the " @@ -336,9 +336,9 @@ msgstr "" "démarre l'interpréteur Python, au lieu de cela, voyez l'application comme un " "ensemble de fonctions, et rédigez un peu de code pour exposer ces fonctions " "à Python, tout comme vous écririez une extension Python normale. Par " -"exemple : ::" +"exemple ::" -#: ../Doc/extending/embedding.rst:245 +#: ../Doc/extending/embedding.rst:246 msgid "" "Insert the above code just above the :c:func:`main` function. Also, insert " "the following two statements before the call to :c:func:`Py_Initialize`::" @@ -347,7 +347,7 @@ msgstr "" "aussi les deux instructions suivantes avant l'appel à :c:func:" "`Py_Initialize` ::" -#: ../Doc/extending/embedding.rst:251 +#: ../Doc/extending/embedding.rst:252 msgid "" "These two lines initialize the ``numargs`` variable, and make the :func:`emb." "numargs` function accessible to the embedded Python interpreter. With these " @@ -357,7 +357,7 @@ msgstr "" "func:`emb.numargs` accessible à l'interpréteur intégré. Avec ces ajouts, le " "script Python petit maintenant faire des choses comme" -#: ../Doc/extending/embedding.rst:260 +#: ../Doc/extending/embedding.rst:261 msgid "" "In a real application, the methods will expose an API of the application to " "Python." @@ -365,11 +365,11 @@ msgstr "" "Dans un cas réel, les méthodes exposeraient une API de l'application a " "Python." -#: ../Doc/extending/embedding.rst:270 +#: ../Doc/extending/embedding.rst:271 msgid "Embedding Python in C++" msgstr "Intégrer Python dans du C++" -#: ../Doc/extending/embedding.rst:272 +#: ../Doc/extending/embedding.rst:273 msgid "" "It is also possible to embed Python in a C++ program; precisely how this is " "done will depend on the details of the C++ system used; in general you will " @@ -383,11 +383,11 @@ msgstr "" "compilateur C++ pour compiler et lier votre programme. Il n'y a pas besoin " "de recompiler Python en utilisant C++." -#: ../Doc/extending/embedding.rst:281 +#: ../Doc/extending/embedding.rst:282 msgid "Compiling and Linking under Unix-like systems" msgstr "Compiler et Lier en environnement Unix ou similaire" -#: ../Doc/extending/embedding.rst:283 +#: ../Doc/extending/embedding.rst:284 msgid "" "It is not necessarily trivial to find the right flags to pass to your " "compiler (and linker) in order to embed the Python interpreter into your " @@ -399,7 +399,7 @@ msgstr "" "Python ayant besoin de charger des extensions sous forme de bibliothèques " "dynamiques en C (des :file:`.so`) pour se lier avec." -#: ../Doc/extending/embedding.rst:289 +#: ../Doc/extending/embedding.rst:290 msgid "" "To find out the required compiler and linker flags, you can execute the :" "file:`python{X.Y}-config` script which is generated as part of the " @@ -412,7 +412,7 @@ msgstr "" "(un script :file:`python3-config` peut aussi être disponible). Ce script a " "quelques options, celles-ci vous seront utiles :" -#: ../Doc/extending/embedding.rst:295 +#: ../Doc/extending/embedding.rst:296 msgid "" "``pythonX.Y-config --cflags`` will give you the recommended flags when " "compiling:" @@ -420,7 +420,7 @@ msgstr "" "``pythonX.Y-config --cflags`` vous donnera les options recommandées pour " "compiler:" -#: ../Doc/extending/embedding.rst:303 +#: ../Doc/extending/embedding.rst:304 msgid "" "``pythonX.Y-config --ldflags`` will give you the recommended flags when " "linking:" @@ -428,7 +428,7 @@ msgstr "" "``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de " "l'édition de lien:" -#: ../Doc/extending/embedding.rst:312 +#: ../Doc/extending/embedding.rst:313 msgid "" "To avoid confusion between several Python installations (and especially " "between the system Python and your own compiled Python), it is recommended " @@ -440,7 +440,7 @@ msgstr "" "recommandé d'utiliser un chemin absolu vers :file:`python{X.Y}-config`, " "comme dans l'exemple précédent." -#: ../Doc/extending/embedding.rst:317 +#: ../Doc/extending/embedding.rst:318 msgid "" "If this procedure doesn't work for you (it is not guaranteed to work for all " "Unix-like platforms; however, we welcome :ref:`bug reports `), vous devrez lire " -"ladocumentation de votre système sur la liaison dynamique (*dynamic " -"linking*) et / ouexaminer le :file:`Makefile` de Python (utilisez :func:" -"`sysconfig.get_makefile_filename` pour trouver son emplacement) et les " -"options de compilation. Dans ce cas, le module :mod:`sysconfig` est un outil " -"utile pour extraire automatiquement les valeurs de configuration que vous " -"voudrez combiner ensemble. Par example :" +"les :ref:`rapports de bugs `), vous devrez lire la " +"documentation de votre système sur la liaison dynamique (*dynamic linking*) " +"et / ou examiner le :file:`Makefile` de Python (utilisez :func:`sysconfig." +"get_makefile_filename` pour trouver son emplacement) et les options de " +"compilation. Dans ce cas, le module :mod:`sysconfig` est un outil utile pour " +"extraire automatiquement les valeurs de configuration que vous voudrez " +"combiner ensemble. Par exemple :" diff --git a/extending/extending.po b/extending/extending.po index 51bc8e343..ff4cb1c53 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-30 22:26+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-19 21:54+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -109,10 +109,10 @@ msgstr "" "``spammify``, le nom du module peut être juste :file:`spammify.c`.)" #: ../Doc/extending/extending.rst:58 -msgid "The first line of our file can be::" -msgstr "La première ligne de notre fichier peut être : ::" +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:62 +#: ../Doc/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:67 +#: ../Doc/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,7 +130,16 @@ 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:71 +#: ../Doc/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 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, " @@ -143,12 +152,12 @@ 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\"`` inclu lui même quelques d'en-têtes standard : ````, " +"\"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:79 +#: ../Doc/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 " @@ -159,19 +168,19 @@ msgstr "" "system(chaîne)`` sera évaluée (nous verrons bientôt comment elle finit par " "être appelée) ::" -#: ../Doc/extending/extending.rst:95 +#: ../Doc/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 " "C function. The C function always has two arguments, conventionally named " "*self* and *args*." msgstr "" -"Il ya une correspondance directe de la liste des arguments en Python (par " +"Il y a une correspondance directe de la liste des arguments en Python (par " "exemple, l'expression ``\"ls -l\"``) aux arguments passés à la fonction C. " "La fonction C a toujours deux arguments, appelés par convention *self* et " "*args*." -#: ../Doc/extending/extending.rst:100 +#: ../Doc/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." @@ -179,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:103 +#: ../Doc/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 " @@ -200,7 +209,7 @@ msgstr "" "ainsi que les types de variables C dans lequel stocker les valeurs " "converties. Nous en verront plus, plus tard." -#: ../Doc/extending/extending.rst:112 +#: ../Doc/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 " @@ -216,11 +225,11 @@ msgstr "" "exception appropriée de sorte que la fonction d'appel puisse renvoyer *NULL* " "immédiatement (comme nous l'avons vu dans l'exemple)." -#: ../Doc/extending/extending.rst:122 +#: ../Doc/extending/extending.rst:126 msgid "Intermezzo: Errors and Exceptions" msgstr "Intermezzo: Les erreurs et exceptions" -#: ../Doc/extending/extending.rst:124 +#: ../Doc/extending/extending.rst:128 msgid "" "An important convention throughout the Python interpreter is the following: " "when a function fails, it should set an exception condition and return an " @@ -247,7 +256,7 @@ msgstr "" "Reference*). Il est important de les connaître pour comprendre comment les " "erreurs sont propagées." -#: ../Doc/extending/extending.rst:135 +#: ../Doc/extending/extending.rst:139 msgid "" "The Python API defines a number of functions to set various types of " "exceptions." @@ -255,7 +264,7 @@ msgstr "" "L'API Python définit un certain nombre de fonctions pour créer différents " "types d'exceptions." -#: ../Doc/extending/extending.rst:137 +#: ../Doc/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 " @@ -269,7 +278,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:143 +#: ../Doc/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 " @@ -284,7 +293,7 @@ msgstr "" "arguments: l'exception et sa valeur associée. Vous ne devez pas appliquer :c:" "func:`Py_INCREF` aux objets transmis à ces fonctions." -#: ../Doc/extending/extending.rst:150 +#: ../Doc/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* " @@ -299,7 +308,7 @@ msgstr "" "survenue durant l'appel d'une fonction, puisque vous devriez être en mesure " "de le déterminer à partir de la valeur de retour." -#: ../Doc/extending/extending.rst:156 +#: ../Doc/extending/extending.rst:160 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``). " @@ -324,7 +333,7 @@ msgstr "" "d'exécution et essaie de trouver un gestionnaire d'exception spécifié par le " "développeur Python." -#: ../Doc/extending/extending.rst:166 +#: ../Doc/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 " @@ -332,14 +341,14 @@ msgid "" "can cause information about the cause of the error to be lost: most " "operations can fail for a variety of reasons.)" msgstr "" -"(Il ya des situations où un module peut effectivement donner un message " +"(Il y a des situations où un module peut effectivement donner un message " "d'erreur plus détaillé en appelant une autre fonction :c:func:`PyErr_\\*`, " "dans de tels cas, il est tout à fait possible de le faire. Cependant, ce " "n'est généralement pas nécessaire, et peut amener à perdre des informations " "sur la cause de l'erreur: la plupart des opérations peuvent échouer pour " "tout un tas de raisons)." -#: ../Doc/extending/extending.rst:172 +#: ../Doc/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 " @@ -354,7 +363,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:178 +#: ../Doc/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:" @@ -369,7 +378,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:184 +#: ../Doc/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 " @@ -381,7 +390,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:188 +#: ../Doc/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 " @@ -391,7 +400,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:192 +#: ../Doc/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 " @@ -415,16 +424,15 @@ msgstr "" "satisfaire d'autres conditions, :c:data:`PyExc_ValueError` sera plus " "appropriée." -#: ../Doc/extending/extending.rst:202 +#: ../Doc/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::" 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 : ::" +"cela, déclarez simplement une variable statique au début de votre fichier ::" -#: ../Doc/extending/extending.rst:207 +#: ../Doc/extending/extending.rst:211 msgid "" "and initialize it in your module's initialization function (:c:func:" "`PyInit_spam`) with an exception object (leaving out the error checking for " @@ -434,7 +442,7 @@ msgstr "" "`PyInit_spam`) avec un objet exception (Passons, pour le moment, la " "vérification des codes d'erreur) ::" -#: ../Doc/extending/extending.rst:225 +#: ../Doc/extending/extending.rst:229 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 " @@ -446,7 +454,7 @@ msgstr "" "`Exception` (à moins qu'une autre classe ne lui soit fournie à la place de " "*NULL*), voir :ref:`bltin-exceptions`." -#: ../Doc/extending/extending.rst:230 +#: ../Doc/extending/extending.rst:234 msgid "" "Note also that the :c:data:`SpamError` variable retains a reference to the " "newly created exception class; this is intentional! Since the exception " @@ -456,15 +464,15 @@ msgid "" "pointer, C code which raises the exception could cause a core dump or other " "unintended side effects." msgstr "" -"Notez également que la variable :c:data:`SpamError` contient une référence " -"àla nouvelle classe créée; ceci est intentionnel! Comme l'exception peut " -"êtreretirée du module par un code externe, une référence à la classe est " -"nécessairepour assurer qu'il ne sera pas rejeté, causant :c:data:`SpamError` " -"à devenirun pointeur défaillant. S'il devenait un pointeur défaillant, le C " -"code qui lève l'exception peut engendrer un rejet central ou des effets " -"secondaires innatendus." +"Notez également que la variable :c:data:`SpamError` contient une référence à " +"la nouvelle classe créée; ceci est intentionnel! Comme l'exception peut être " +"retirée du module par un code externe, une référence à la classe est " +"nécessaire pour assurer qu'il ne sera pas rejeté, causant :c:data:" +"`SpamError` à devenir un pointeur défaillant. S'il devenait un pointeur " +"défaillant, le C code qui lève l'exception peut engendrer un rejet central " +"ou des effets secondaires inattendus." -#: ../Doc/extending/extending.rst:237 +#: ../Doc/extending/extending.rst:241 msgid "" "We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in " "this sample." @@ -472,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:240 +#: ../Doc/extending/extending.rst:244 msgid "" "The :exc:`spam.error` exception can be raised in your extension module using " "a call to :c:func:`PyErr_SetString` as shown below::" @@ -480,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:263 +#: ../Doc/extending/extending.rst:267 msgid "Back to the Example" msgstr "Retour vers l'exemple" -#: ../Doc/extending/extending.rst:265 +#: ../Doc/extending/extending.rst:269 msgid "" "Going back to our example function, you should now be able to understand " "this statement::" @@ -492,7 +500,7 @@ msgstr "" "En revenant vers notre fonction exemple, vous devriez maintenant être " "capable de comprendre cette affirmation ::" -#: ../Doc/extending/extending.rst:271 +#: ../Doc/extending/extending.rst:275 msgid "" "It returns *NULL* (the error indicator for functions returning object " "pointers) if an error is detected in the argument list, relying on the " @@ -502,8 +510,8 @@ 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 renvoiant des " -"pointeurs d'objet) si une erreur est detectée dans la liste des arguments,se " +"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 " @@ -511,7 +519,7 @@ msgstr "" "la variable :c:data:`command` doit être clairement déclarée comme ``const " "char *command``)." -#: ../Doc/extending/extending.rst:279 +#: ../Doc/extending/extending.rst:283 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`::" @@ -520,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:284 +#: ../Doc/extending/extending.rst:288 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`. ::" @@ -529,15 +537,15 @@ msgstr "" "comme un objet Python. Cela est effectué par l'utilisation de la fonction :c:" "func:`PyLong_FromLong`. ::" -#: ../Doc/extending/extending.rst:289 +#: ../Doc/extending/extending.rst:293 msgid "" "In this case, it will return an integer object. (Yes, even integers are " "objects on the heap in Python!)" msgstr "" -"Dans ce cas, elle renvoyera un objet entier. (Oui, même les entiers sont des " +"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:292 +#: ../Doc/extending/extending.rst:296 msgid "" "If you have a C function that returns no useful argument (a function " "returning :c:type:`void`), the corresponding Python function must return " @@ -545,11 +553,11 @@ msgid "" "macro:`Py_RETURN_NONE` macro)::" msgstr "" "Si vous avez une fonction C qui ne renvoie aucun argument utile (une " -"fonction renvoiant :c:type:`void`), la fonction Python correspondante doit " +"fonction renvoyant :c:type:`void`), la fonction Python correspondante doit " "renvoyer ``None``. Vous aurez besoin de cette locution pour cela (qui est " "implémentée par la macro :c:macro:`Py_RETURN_NONE`) ::" -#: ../Doc/extending/extending.rst:300 +#: ../Doc/extending/extending.rst:304 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" @@ -557,19 +565,23 @@ msgid "" 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 " -"\"error\" dans la plupart des situations, comme nous l'avons vu." +"qu'une erreur est survenue, dans la plupart des situations, comme nous " +"l'avons vu." -#: ../Doc/extending/extending.rst:308 +#: ../Doc/extending/extending.rst:312 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:310 +#: ../Doc/extending/extending.rst:314 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:321 +#: ../Doc/extending/extending.rst:325 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 " @@ -577,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:326 +#: ../Doc/extending/extending.rst:330 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:330 +#: ../Doc/extending/extending.rst:334 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 " @@ -593,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:336 +#: ../Doc/extending/extending.rst:340 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:347 +#: ../Doc/extending/extending.rst:351 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:358 +#: ../Doc/extending/extending.rst:362 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:362 +#: ../Doc/extending/extending.rst:366 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 " @@ -628,15 +664,20 @@ msgid "" "gets inserted into ``sys.modules``." msgstr "" -#: ../Doc/extending/extending.rst:373 +#: ../Doc/extending/extending.rst:377 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:409 +#: ../Doc/extending/extending.rst:413 msgid "" "Removing entries from ``sys.modules`` or importing compiled modules into " "multiple interpreters within a process (or following a :c:func:`fork` " @@ -644,27 +685,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:415 +#: ../Doc/extending/extending.rst:419 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:421 +#: ../Doc/extending/extending.rst:425 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:430 +#: ../Doc/extending/extending.rst:434 msgid "Compilation and Linkage" -msgstr "" +msgstr "Compilation et liaison" -#: ../Doc/extending/extending.rst:432 +#: ../Doc/extending/extending.rst:436 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 " @@ -674,7 +729,7 @@ msgid "" "Windows (chapter :ref:`building-on-windows`) for more information about this." msgstr "" -#: ../Doc/extending/extending.rst:439 +#: ../Doc/extending/extending.rst:443 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 " @@ -684,7 +739,7 @@ msgid "" "line to the file :file:`Modules/Setup.local` describing your file:" msgstr "" -#: ../Doc/extending/extending.rst:450 +#: ../Doc/extending/extending.rst:454 msgid "" "and rebuild the interpreter by running :program:`make` in the toplevel " "directory. You can also run :program:`make` in the :file:`Modules/` " @@ -693,17 +748,17 @@ msgid "" "the :file:`Setup` file.)" msgstr "" -#: ../Doc/extending/extending.rst:456 +#: ../Doc/extending/extending.rst:460 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:467 +#: ../Doc/extending/extending.rst:471 msgid "Calling Python Functions from C" -msgstr "" +msgstr "Appeler des fonctions Python en C" -#: ../Doc/extending/extending.rst:469 +#: ../Doc/extending/extending.rst:473 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 " @@ -714,7 +769,7 @@ msgid "" "uses are also imaginable." msgstr "" -#: ../Doc/extending/extending.rst:477 +#: ../Doc/extending/extending.rst:481 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 " @@ -723,7 +778,7 @@ msgid "" "line option in :file:`Modules/main.c` from the Python source code.)" msgstr "" -#: ../Doc/extending/extending.rst:483 +#: ../Doc/extending/extending.rst:487 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 " @@ -733,15 +788,19 @@ msgid "" "function might be part of a module definition::" msgstr "" -#: ../Doc/extending/extending.rst:513 +#: ../Doc/extending/extending.rst:517 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:518 +#: ../Doc/extending/extending.rst:522 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* " @@ -749,7 +808,7 @@ msgid "" "info on them in section :ref:`refcounts`." msgstr "" -#: ../Doc/extending/extending.rst:525 +#: ../Doc/extending/extending.rst:529 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 " @@ -761,7 +820,7 @@ msgid "" "or more format codes between parentheses. For example::" msgstr "" -#: ../Doc/extending/extending.rst:545 +#: ../Doc/extending/extending.rst:549 msgid "" ":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " "return value of the Python function. :c:func:`PyObject_CallObject` is " @@ -770,7 +829,7 @@ msgid "" "`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." msgstr "" -#: ../Doc/extending/extending.rst:551 +#: ../Doc/extending/extending.rst:556 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 " @@ -779,7 +838,7 @@ msgid "" "not interested in its value." msgstr "" -#: ../Doc/extending/extending.rst:557 +#: ../Doc/extending/extending.rst:562 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 " @@ -790,7 +849,7 @@ msgid "" "should be cleared by calling :c:func:`PyErr_Clear`. For example::" msgstr "" -#: ../Doc/extending/extending.rst:570 +#: ../Doc/extending/extending.rst:575 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 " @@ -801,8 +860,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:589 +#: ../Doc/extending/extending.rst:594 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 " @@ -810,22 +879,26 @@ msgid "" "checked." msgstr "" -#: ../Doc/extending/extending.rst:593 +#: ../Doc/extending/extending.rst:598 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:611 +#: ../Doc/extending/extending.rst:616 msgid "Extracting Parameters in Extension Functions" -msgstr "" +msgstr "Extraire des paramètres dans des fonctions d'extension" -#: ../Doc/extending/extending.rst:615 +#: ../Doc/extending/extending.rst:620 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:619 +#: ../Doc/extending/extending.rst:624 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, " @@ -834,7 +907,7 @@ msgid "" "whose type is determined by the format string." msgstr "" -#: ../Doc/extending/extending.rst:625 +#: ../Doc/extending/extending.rst:630 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 " @@ -842,7 +915,7 @@ msgid "" "probably crash or at least overwrite random bits in memory. So be careful!" msgstr "" -#: ../Doc/extending/extending.rst:630 +#: ../Doc/extending/extending.rst:635 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not decrement their reference count!" @@ -851,20 +924,21 @@ 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:633 +#: ../Doc/extending/extending.rst:638 msgid "Some example calls::" -msgstr "" +msgstr "Quelques exemples d'appels ::" -#: ../Doc/extending/extending.rst:703 +#: ../Doc/extending/extending.rst:708 msgid "Keyword Parameters for Extension Functions" -msgstr "" +msgstr "Paramètres nommés pour des fonctions d'extension" -#: ../Doc/extending/extending.rst:707 +#: ../Doc/extending/extending.rst:712 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:712 +#: ../Doc/extending/extending.rst:717 msgid "" "The *arg* and *format* parameters are identical to those of the :c:func:" "`PyArg_ParseTuple` function. The *kwdict* parameter is the dictionary of " @@ -875,38 +949,50 @@ msgid "" "returns true, otherwise it returns false and raises an appropriate exception." msgstr "" -#: ../Doc/extending/extending.rst:722 +#: ../Doc/extending/extending.rst:727 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:728 +#: ../Doc/extending/extending.rst:733 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:782 +#: ../Doc/extending/extending.rst:788 msgid "Building Arbitrary Values" -msgstr "" +msgstr "Créer des valeurs arbitraires" -#: ../Doc/extending/extending.rst:784 +#: ../Doc/extending/extending.rst:790 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:789 +#: ../Doc/extending/extending.rst:795 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:794 +#: ../Doc/extending/extending.rst:800 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 " @@ -918,16 +1004,17 @@ msgid "" "parenthesize the format string." msgstr "" -#: ../Doc/extending/extending.rst:802 +#: ../Doc/extending/extending.rst:808 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:828 +#: ../Doc/extending/extending.rst:834 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" -#: ../Doc/extending/extending.rst:830 +#: ../Doc/extending/extending.rst:836 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 " @@ -935,8 +1022,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:836 +#: ../Doc/extending/extending.rst:842 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:" @@ -951,7 +1044,7 @@ msgid "" "crashes." msgstr "" -#: ../Doc/extending/extending.rst:847 +#: ../Doc/extending/extending.rst:853 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, " @@ -968,7 +1061,7 @@ msgid "" "of errors." msgstr "" -#: ../Doc/extending/extending.rst:860 +#: ../Doc/extending/extending.rst:866 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. " @@ -978,8 +1071,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:868 +#: ../Doc/extending/extending.rst:874 msgid "" "An alternative strategy is called :dfn:`automatic garbage collection`. " "(Sometimes, reference counting is also referred to as a garbage collection " @@ -994,8 +1095,21 @@ msgid "" "garbage collector will be available for C. Until then, we'll have to live " "with reference counts." msgstr "" - -#: ../Doc/extending/extending.rst:880 +"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." + +#: ../Doc/extending/extending.rst:886 msgid "" "While Python uses the traditional reference counting implementation, it also " "offers a cycle detector that works to detect reference cycles. This allows " @@ -1008,8 +1122,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:891 +"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." + +#: ../Doc/extending/extending.rst:897 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." @@ -1021,11 +1147,11 @@ msgid "" "detector is disabled in this way, the :mod:`gc` module will not be available." msgstr "" -#: ../Doc/extending/extending.rst:905 +#: ../Doc/extending/extending.rst:911 msgid "Reference Counting in Python" -msgstr "" +msgstr "Comptage de références en Python" -#: ../Doc/extending/extending.rst:907 +#: ../Doc/extending/extending.rst:913 msgid "" "There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " "the incrementing and decrementing of the reference count. :c:func:" @@ -1035,8 +1161,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:914 +#: ../Doc/extending/extending.rst:920 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 " @@ -1048,8 +1181,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:923 +#: ../Doc/extending/extending.rst:929 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 " @@ -1058,7 +1201,7 @@ msgid "" "risks using freed memory and should be avoided completely [#]_." msgstr "" -#: ../Doc/extending/extending.rst:929 +#: ../Doc/extending/extending.rst:935 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 " @@ -1068,8 +1211,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:937 +#: ../Doc/extending/extending.rst:943 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 " @@ -1078,18 +1229,22 @@ msgid "" "properly, as well as the previous owner)." msgstr "" -#: ../Doc/extending/extending.rst:947 +#: ../Doc/extending/extending.rst:953 msgid "Ownership Rules" -msgstr "" +msgstr "Règles concernant la propriété de références" -#: ../Doc/extending/extending.rst:949 +#: ../Doc/extending/extending.rst:955 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:953 +#: ../Doc/extending/extending.rst:959 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 " @@ -1100,7 +1255,7 @@ msgid "" "reference to a cached item." msgstr "" -#: ../Doc/extending/extending.rst:961 +#: ../Doc/extending/extending.rst:967 msgid "" "Many functions that extract objects from other objects also transfer " "ownership with the reference, for instance :c:func:" @@ -1111,14 +1266,14 @@ msgid "" "list or dictionary." msgstr "" -#: ../Doc/extending/extending.rst:968 +#: ../Doc/extending/extending.rst:974 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:972 +#: ../Doc/extending/extending.rst:978 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 " @@ -1129,7 +1284,7 @@ msgid "" "don't take over ownership --- they are \"normal.\")" msgstr "" -#: ../Doc/extending/extending.rst:980 +#: ../Doc/extending/extending.rst:986 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 " @@ -1138,40 +1293,50 @@ msgid "" "turned into an owned reference by calling :c:func:`Py_INCREF`." msgstr "" -#: ../Doc/extending/extending.rst:986 +#: ../Doc/extending/extending.rst:992 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:994 +#: ../Doc/extending/extending.rst:1000 msgid "Thin Ice" -msgstr "" +msgstr "Terrain dangereux" -#: ../Doc/extending/extending.rst:996 +#: ../Doc/extending/extending.rst:1002 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:1000 +#: ../Doc/extending/extending.rst:1006 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:1012 +#: ../Doc/extending/extending.rst:1018 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:1016 +#: ../Doc/extending/extending.rst:1022 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 " @@ -1180,8 +1345,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:1023 +#: ../Doc/extending/extending.rst:1029 msgid "" "Since it is written in Python, the :meth:`__del__` method can execute " "arbitrary Python code. Could it perhaps do something to invalidate the " @@ -1191,21 +1363,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:1031 +#: ../Doc/extending/extending.rst:1037 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:1045 +#: ../Doc/extending/extending.rst:1051 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:1049 +#: ../Doc/extending/extending.rst:1055 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 " @@ -1217,12 +1396,22 @@ msgid "" "complete. Obviously, the following function has the same problem as the " "previous one::" msgstr "" - -#: ../Doc/extending/extending.rst:1072 +"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 ::" + +#: ../Doc/extending/extending.rst:1078 msgid "NULL Pointers" -msgstr "" +msgstr "Pointeurs ``NULL``" -#: ../Doc/extending/extending.rst:1074 +#: ../Doc/extending/extending.rst:1080 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 " @@ -1234,21 +1423,21 @@ msgid "" "slowly." msgstr "" -#: ../Doc/extending/extending.rst:1082 +#: ../Doc/extending/extending.rst:1088 msgid "" "It is better to test for *NULL* only at the \"source:\" when a pointer that " "may be *NULL* is received, for example, from :c:func:`malloc` or from a " "function that may raise an exception." msgstr "" -#: ../Doc/extending/extending.rst:1086 +#: ../Doc/extending/extending.rst:1092 msgid "" "The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for " "*NULL* pointers --- however, their variants :c:func:`Py_XINCREF` and :c:func:" "`Py_XDECREF` do." msgstr "" -#: ../Doc/extending/extending.rst:1090 +#: ../Doc/extending/extending.rst:1096 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 " @@ -1257,24 +1446,24 @@ msgid "" "variants with *NULL* checking." msgstr "" -#: ../Doc/extending/extending.rst:1096 +#: ../Doc/extending/extending.rst:1102 msgid "" "The C function calling mechanism guarantees that the argument list passed to " "C functions (``args`` in the examples) is never *NULL* --- in fact it " "guarantees that it is always a tuple [#]_." msgstr "" -#: ../Doc/extending/extending.rst:1100 +#: ../Doc/extending/extending.rst:1106 msgid "" "It is a severe error to ever let a *NULL* pointer \"escape\" to the Python " "user." msgstr "" -#: ../Doc/extending/extending.rst:1111 +#: ../Doc/extending/extending.rst:1117 msgid "Writing Extensions in C++" -msgstr "" +msgstr "Écrire des extensions en C++" -#: ../Doc/extending/extending.rst:1113 +#: ../Doc/extending/extending.rst:1119 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 " @@ -1286,12 +1475,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:1127 +"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)." + +#: ../Doc/extending/extending.rst:1133 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:1132 +#: ../Doc/extending/extending.rst:1138 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 " @@ -1301,8 +1501,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:1140 +#: ../Doc/extending/extending.rst:1146 msgid "" "At first sight this seems easy: just write the functions (without declaring " "them ``static``, of course), provide an appropriate header file, and " @@ -1317,8 +1526,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:1152 +"À 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é !" + +#: ../Doc/extending/extending.rst:1158 msgid "" "Portability therefore requires not to make any assumptions about symbol " "visibility. This means that all symbols in extension modules should be " @@ -1327,8 +1550,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:1159 +#: ../Doc/extending/extending.rst:1165 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 " @@ -1340,7 +1571,7 @@ msgid "" "the Capsule." msgstr "" -#: ../Doc/extending/extending.rst:1167 +#: ../Doc/extending/extending.rst:1173 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 " @@ -1349,8 +1580,15 @@ 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:1173 +#: ../Doc/extending/extending.rst:1179 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 " @@ -1360,13 +1598,13 @@ msgid "" "from another." msgstr "" -#: ../Doc/extending/extending.rst:1180 +#: ../Doc/extending/extending.rst:1186 msgid "" "In particular, Capsules used to expose C APIs should be given a name " "following this convention::" msgstr "" -#: ../Doc/extending/extending.rst:1185 +#: ../Doc/extending/extending.rst:1191 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 " @@ -1374,7 +1612,7 @@ msgid "" "the Capsule they load contains the correct C API." msgstr "" -#: ../Doc/extending/extending.rst:1190 +#: ../Doc/extending/extending.rst:1196 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 " @@ -1384,8 +1622,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:1198 +#: ../Doc/extending/extending.rst:1204 msgid "" "The exporting module is a modification of the :mod:`spam` module from " "section :ref:`extending-simpleexample`. The function :func:`spam.system` " @@ -1394,60 +1640,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:1205 +#: ../Doc/extending/extending.rst:1211 msgid "" "The function :c:func:`PySpam_System` is a plain C function, declared " "``static`` like everything else::" msgstr "" -#: ../Doc/extending/extending.rst:1214 +#: ../Doc/extending/extending.rst:1220 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:1228 +#: ../Doc/extending/extending.rst:1234 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:1232 +#: ../Doc/extending/extending.rst:1238 msgid "two more lines must be added::" -msgstr "" +msgstr "on doit ajouter deux lignes supplémentaires ::" -#: ../Doc/extending/extending.rst:1237 +#: ../Doc/extending/extending.rst:1243 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:1263 +#: ../Doc/extending/extending.rst:1269 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:1266 +#: ../Doc/extending/extending.rst:1272 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:1317 +#: ../Doc/extending/extending.rst:1323 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:1335 +#: ../Doc/extending/extending.rst:1341 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:1339 +#: ../Doc/extending/extending.rst:1345 msgid "" "Finally it should be mentioned that Capsules offer additional functionality, " "which is especially useful for memory allocation and deallocation of the " @@ -1456,32 +1724,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:1347 +#: ../Doc/extending/extending.rst:1353 msgid "Footnotes" msgstr "Notes" -#: ../Doc/extending/extending.rst:1348 +#: ../Doc/extending/extending.rst:1354 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:1351 +#: ../Doc/extending/extending.rst:1357 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:1354 +#: ../Doc/extending/extending.rst:1360 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:1358 +#: ../Doc/extending/extending.rst:1364 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/newtypes.po b/extending/newtypes.po index a1d0418cd..cb28a8c18 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:5 msgid "Defining Extension Types: Assorted Topics" -msgstr "" +msgstr "Définir les types d'extension : divers sujets" #: ../Doc/extending/newtypes.rst:9 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:47 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:52 msgid "Finalization and De-allocation" -msgstr "" +msgstr "Finalisation et de-allocation" #: ../Doc/extending/newtypes.rst:64 msgid "" @@ -125,11 +130,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:134 msgid ":pep:`442` explains the new finalization scheme." -msgstr "" +msgstr ":pep:`442` explique le nouveau schéma de finalisation." #: ../Doc/extending/newtypes.rst:141 msgid "Object Presentation" -msgstr "" +msgstr "Présentation de l'objet" #: ../Doc/extending/newtypes.rst:143 msgid "" @@ -165,11 +170,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:174 msgid "Here is a simple example::" -msgstr "" +msgstr "Voici un exemple simple ::" #: ../Doc/extending/newtypes.rst:186 msgid "Attribute Management" -msgstr "" +msgstr "Gestion des attributs" #: ../Doc/extending/newtypes.rst:188 msgid "" @@ -203,7 +208,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:217 msgid "Generic Attribute Management" -msgstr "" +msgstr "Gestion des attributs génériques" #: ../Doc/extending/newtypes.rst:219 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:225 msgid "" @@ -244,6 +251,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:239 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:245 msgid "" @@ -295,35 +303,35 @@ msgstr "Signification" #: ../Doc/extending/newtypes.rst:286 msgid ":const:`READONLY`" -msgstr "" +msgstr ":const:`READONLY`" #: ../Doc/extending/newtypes.rst:286 msgid "Never writable." -msgstr "" +msgstr "Jamais disponible en écriture." #: ../Doc/extending/newtypes.rst:288 msgid ":const:`READ_RESTRICTED`" -msgstr "" +msgstr ":const:`READ_RESTRICTED`" #: ../Doc/extending/newtypes.rst:288 msgid "Not readable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture, dans le mode restreint." #: ../Doc/extending/newtypes.rst:290 msgid ":const:`WRITE_RESTRICTED`" -msgstr "" +msgstr ":const:`WRITE_RESTRICTED`" #: ../Doc/extending/newtypes.rst:290 msgid "Not writable in restricted mode." -msgstr "" +msgstr "Non disponible en écriture dans le mode restreint." #: ../Doc/extending/newtypes.rst:292 msgid ":const:`RESTRICTED`" -msgstr "" +msgstr ":const:`RESTRICTED`" #: ../Doc/extending/newtypes.rst:292 msgid "Not readable or writable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture ou écriture, en mode restreint." #: ../Doc/extending/newtypes.rst:301 msgid "" @@ -334,6 +342,13 @@ 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:307 msgid "" @@ -343,7 +358,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:321 msgid "Type-specific Attribute Management" -msgstr "" +msgstr "Gestion des attributs de type spécifiques" #: ../Doc/extending/newtypes.rst:323 msgid "" @@ -379,7 +394,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:365 msgid "Object Comparison" -msgstr "" +msgstr "Comparaison des objets" #: ../Doc/extending/newtypes.rst:371 msgid "" @@ -408,7 +423,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:414 msgid "Abstract Protocol Support" -msgstr "" +msgstr "Support pour le protocole abstrait" #: ../Doc/extending/newtypes.rst:416 msgid "" @@ -466,7 +481,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:470 msgid "This function takes three arguments:" -msgstr "" +msgstr "Cette fonction prend trois arguments :" #: ../Doc/extending/newtypes.rst:472 msgid "" @@ -491,7 +506,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:484 msgid "Here is a toy ``tp_call`` implementation::" -msgstr "" +msgstr "Ceci est une implémentation ``tp_call`` très simple ::" #: ../Doc/extending/newtypes.rst:510 msgid "" @@ -509,6 +524,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:521 msgid "" @@ -516,6 +535,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:524 msgid "" @@ -541,7 +563,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:545 msgid "Weak Reference Support" -msgstr "" +msgstr "Prise en charge de la référence faible" #: ../Doc/extending/newtypes.rst:547 msgid "" @@ -549,16 +571,22 @@ 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:552 msgid "Documentation for the :mod:`weakref` module." -msgstr "" +msgstr "Documentation pour le module :mod:`weakref`." #: ../Doc/extending/newtypes.rst:554 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:556 msgid "" @@ -574,16 +602,23 @@ 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:565 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:573 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:581 msgid "" @@ -594,7 +629,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:597 msgid "More Suggestions" -msgstr "" +msgstr "Plus de suggestions" #: ../Doc/extending/newtypes.rst:599 msgid "" @@ -604,6 +639,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:605 msgid "" @@ -611,23 +652,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:616 msgid "Download CPython source releases." -msgstr "" +msgstr "Télécharger les versions sources de *CPython*." #: ../Doc/extending/newtypes.rst:616 msgid "https://www.python.org/downloads/source/" -msgstr "" +msgstr "https://www.python.org/downloads/source/" #: ../Doc/extending/newtypes.rst:618 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:619 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 aaadbb32f..8b3684702 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-02 00:10+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: 2018-06-17 10:15+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -120,14 +120,14 @@ msgstr "" msgid "The second bit is the definition of the type object. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:99 +#: ../Doc/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 "" -#: ../Doc/extending/newtypes_tutorial.rst:103 +#: ../Doc/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 " @@ -135,23 +135,23 @@ msgid "" "to not specify them explicitly unless you need them." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:108 +#: ../Doc/extending/newtypes_tutorial.rst:109 msgid "We're going to pick it apart, one field at a time::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:112 +#: ../Doc/extending/newtypes_tutorial.rst:113 msgid "" "This line is mandatory boilerplate to initialize the ``ob_base`` field " "mentioned above. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:117 +#: ../Doc/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 "" -#: ../Doc/extending/newtypes_tutorial.rst:127 +#: ../Doc/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:" @@ -160,14 +160,14 @@ msgid "" "type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:136 +#: ../Doc/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 "" -#: ../Doc/extending/newtypes_tutorial.rst:142 +#: ../Doc/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 " @@ -181,23 +181,23 @@ msgid "" "your base type, and therefore increasing its size." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:152 +#: ../Doc/extending/newtypes_tutorial.rst:153 msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:156 +#: ../Doc/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 "" -#: ../Doc/extending/newtypes_tutorial.rst:160 +#: ../Doc/extending/newtypes_tutorial.rst:161 msgid "" "We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:164 +#: ../Doc/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:" @@ -206,53 +206,53 @@ msgid "" "`PyType_GenericNew`. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:171 +#: ../Doc/extending/newtypes_tutorial.rst:172 msgid "" "Everything else in the file should be familiar, except for some code in :c:" "func:`PyInit_custom`::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:177 +#: ../Doc/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*. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:183 +#: ../Doc/extending/newtypes_tutorial.rst:184 msgid "" "This adds the type to the module dictionary. This allows us to create :" "class:`Custom` instances by calling the :class:`Custom` class:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:191 +#: ../Doc/extending/newtypes_tutorial.rst:192 msgid "" "That's it! All that remains is to build it; put the above code in a file " "called :file:`custom.c` and:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:200 +#: ../Doc/extending/newtypes_tutorial.rst:201 msgid "in a file called :file:`setup.py`; then typing" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:206 +#: ../Doc/extending/newtypes_tutorial.rst:207 msgid "" "at a shell should produce a file :file:`custom.so` in a subdirectory; move " "to that directory and fire up Python --- you should be able to ``import " "custom`` and play around with Custom objects." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:210 +#: ../Doc/extending/newtypes_tutorial.rst:211 msgid "That wasn't so hard, was it?" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:212 +#: ../Doc/extending/newtypes_tutorial.rst:213 msgid "" "Of course, the current Custom type is pretty uninteresting. It has no data " "and doesn't do anything. It can't even be subclassed." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:216 +#: ../Doc/extending/newtypes_tutorial.rst:217 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 +262,32 @@ msgid "" "packages/>`_." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:224 +#: ../Doc/extending/newtypes_tutorial.rst:225 msgid "Adding data and methods to the Basic example" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:226 +#: ../Doc/extending/newtypes_tutorial.rst:227 msgid "" "Let's extend the basic example to add some data and methods. Let's also " "make the type usable as a base class. We'll create a new module, :mod:" "`custom2` that adds these capabilities:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:233 +#: ../Doc/extending/newtypes_tutorial.rst:234 msgid "This version of the module has a number of changes." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:235 +#: ../Doc/extending/newtypes_tutorial.rst:236 msgid "We've added an extra include::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:239 +#: ../Doc/extending/newtypes_tutorial.rst:240 msgid "" "This include provides declarations that we use to handle attributes, as " "described a bit later." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:242 +#: ../Doc/extending/newtypes_tutorial.rst:243 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,21 +295,21 @@ msgid "" "integer." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:246 +#: ../Doc/extending/newtypes_tutorial.rst:247 msgid "The object structure is updated accordingly::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:255 +#: ../Doc/extending/newtypes_tutorial.rst:256 msgid "" "Because we now have data to manage, we have to be more careful about object " "allocation and deallocation. At a minimum, we need a deallocation method::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:266 +#: ../Doc/extending/newtypes_tutorial.rst:267 msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:270 +#: ../Doc/extending/newtypes_tutorial.rst:271 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* " @@ -320,7 +320,7 @@ msgid "" "subclass." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:279 +#: ../Doc/extending/newtypes_tutorial.rst:280 msgid "" "The explicit cast to ``destructor`` above is needed because we defined " "``Custom_dealloc`` to take a ``CustomObject *`` argument, but the " @@ -329,17 +329,17 @@ msgid "" "oriented polymorphism, in C!" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:285 +#: ../Doc/extending/newtypes_tutorial.rst:286 msgid "" "We want to make sure that the first and last names are initialized to empty " "strings, so we provide a ``tp_new`` implementation::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:309 +#: ../Doc/extending/newtypes_tutorial.rst:310 msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:313 +#: ../Doc/extending/newtypes_tutorial.rst:314 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:" @@ -350,7 +350,7 @@ msgid "" "attributes to non-*NULL* default values." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:321 +#: ../Doc/extending/newtypes_tutorial.rst:322 msgid "" "``tp_new`` is passed the type being instantiated (not necessarily " "``CustomType``, if a subclass is instantiated) and any arguments passed when " @@ -360,25 +360,25 @@ msgid "" "k.a. ``tp_init`` in C or ``__init__`` in Python) methods." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:329 +#: ../Doc/extending/newtypes_tutorial.rst:330 msgid "" "``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " "it itself." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:332 +#: ../Doc/extending/newtypes_tutorial.rst:333 msgid "" "The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " "slot to allocate memory::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:337 +#: ../Doc/extending/newtypes_tutorial.rst:338 msgid "" "Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." "tp_alloc` result against *NULL* before proceeding." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:341 +#: ../Doc/extending/newtypes_tutorial.rst:342 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 +386,7 @@ msgid "" "allocation strategy." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:347 +#: ../Doc/extending/newtypes_tutorial.rst:348 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 +399,17 @@ msgid "" "subclasses without getting a :exc:`TypeError`.)" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:357 +#: ../Doc/extending/newtypes_tutorial.rst:358 msgid "" "We also define an initialization function which accepts arguments to provide " "initial values for our instance::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:386 +#: ../Doc/extending/newtypes_tutorial.rst:387 msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:390 +#: ../Doc/extending/newtypes_tutorial.rst:391 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 +417,7 @@ msgid "" "return either ``0`` on success or ``-1`` on error." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:395 +#: ../Doc/extending/newtypes_tutorial.rst:396 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,7 +428,7 @@ msgid "" "``first`` member like this::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:409 +#: ../Doc/extending/newtypes_tutorial.rst:410 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 " @@ -438,49 +438,49 @@ msgid "" "and modifies our object." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:416 +#: ../Doc/extending/newtypes_tutorial.rst:417 msgid "" "To be paranoid and protect ourselves against this possibility, we almost " "always reassign members before decrementing their reference counts. When " "don't we have to do this?" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:420 +#: ../Doc/extending/newtypes_tutorial.rst:421 msgid "when we absolutely know that the reference count is greater than 1;" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:422 +#: ../Doc/extending/newtypes_tutorial.rst:423 msgid "" "when we know that deallocation of the object [#]_ will neither release the :" "term:`GIL` nor cause any calls back into our type's code;" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:425 +#: ../Doc/extending/newtypes_tutorial.rst:426 msgid "" "when decrementing a reference count in a :c:member:`~PyTypeObject." "tp_dealloc` handler on a type which doesn't support cyclic garbage " "collection [#]_." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:428 +#: ../Doc/extending/newtypes_tutorial.rst:429 msgid "" "We want to expose our instance variables as attributes. There are a number " "of ways to do that. The simplest way is to define member definitions::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:441 +#: ../Doc/extending/newtypes_tutorial.rst:442 msgid "" "and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:445 +#: ../Doc/extending/newtypes_tutorial.rst:446 msgid "" "Each member definition has a member name, type, offset, access flags and " "documentation string. See the :ref:`Generic-Attribute-Management` section " "below for details." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:449 +#: ../Doc/extending/newtypes_tutorial.rst:450 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 " @@ -491,13 +491,13 @@ msgid "" "deleted." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:456 +#: ../Doc/extending/newtypes_tutorial.rst:457 msgid "" "We define a single method, :meth:`Custom.name()`, that outputs the objects " "name as the concatenation of the first and last names. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:473 +#: ../Doc/extending/newtypes_tutorial.rst:474 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,7 +507,7 @@ msgid "" "method is equivalent to the Python method:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:485 +#: ../Doc/extending/newtypes_tutorial.rst:486 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 " @@ -516,23 +516,23 @@ msgid "" "We'll see how to do that in the next section." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:491 +#: ../Doc/extending/newtypes_tutorial.rst:492 msgid "" "Now that we've defined the method, we need to create an array of method " "definitions::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:501 +#: ../Doc/extending/newtypes_tutorial.rst:502 msgid "" "(note that we used the :const:`METH_NOARGS` flag to indicate that the method " "is expecting no arguments other than *self*)" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:504 +#: ../Doc/extending/newtypes_tutorial.rst:505 msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:508 +#: ../Doc/extending/newtypes_tutorial.rst:509 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 +540,22 @@ msgid "" "to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:515 +#: ../Doc/extending/newtypes_tutorial.rst:516 msgid "" "We rename :c:func:`PyInit_custom` to :c:func:`PyInit_custom2`, update the " "module name in the :c:type:`PyModuleDef` struct, and update the full class " "name in the :c:type:`PyTypeObject` struct." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:519 +#: ../Doc/extending/newtypes_tutorial.rst:520 msgid "Finally, we update our :file:`setup.py` file to build the new module:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:532 +#: ../Doc/extending/newtypes_tutorial.rst:533 msgid "Providing finer control over data attributes" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:534 +#: ../Doc/extending/newtypes_tutorial.rst:535 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 +564,14 @@ msgid "" "make sure that these attributes always contain strings." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:543 +#: ../Doc/extending/newtypes_tutorial.rst:544 msgid "" "To provide greater control, over the :attr:`first` and :attr:`last` " "attributes, we'll use custom getter and setter functions. Here are the " "functions for getting and setting the :attr:`first` attribute::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:574 +#: ../Doc/extending/newtypes_tutorial.rst:575 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,7 +581,7 @@ msgid "" "data in the closure.)" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:580 +#: ../Doc/extending/newtypes_tutorial.rst:581 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 " @@ -589,32 +589,32 @@ msgid "" "or if its new value is not a string." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:585 +#: ../Doc/extending/newtypes_tutorial.rst:586 msgid "We create an array of :c:type:`PyGetSetDef` structures::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:595 +#: ../Doc/extending/newtypes_tutorial.rst:596 msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:599 +#: ../Doc/extending/newtypes_tutorial.rst:600 msgid "" "The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" " "mentioned above. In this case, we aren't using a closure, so we just pass " "*NULL*." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:602 +#: ../Doc/extending/newtypes_tutorial.rst:603 msgid "We also remove the member definitions for these attributes::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:610 +#: ../Doc/extending/newtypes_tutorial.rst:611 msgid "" "We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " "allow strings [#]_ to be passed::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:639 +#: ../Doc/extending/newtypes_tutorial.rst:640 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 " @@ -624,25 +624,25 @@ msgid "" "possibility that the initialization of these members failed in ``tp_new``." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:646 +#: ../Doc/extending/newtypes_tutorial.rst:647 msgid "" "We also rename the module initialization function and module name in the " "initialization function, as we did before, and we add an extra definition to " "the :file:`setup.py` file." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:652 +#: ../Doc/extending/newtypes_tutorial.rst:653 msgid "Supporting cyclic garbage collection" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:654 +#: ../Doc/extending/newtypes_tutorial.rst:655 msgid "" "Python has a :term:`cyclic garbage collector (GC) ` that " "can identify unneeded objects even when their reference counts are not zero. " "This can happen when objects are involved in cycles. For example, consider:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:664 +#: ../Doc/extending/newtypes_tutorial.rst:665 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 +650,7 @@ msgid "" "out that the list is garbage and free it." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:669 +#: ../Doc/extending/newtypes_tutorial.rst:670 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 +659,7 @@ msgid "" "reasons, :class:`Custom` objects can participate in cycles:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:683 +#: ../Doc/extending/newtypes_tutorial.rst:684 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 +667,13 @@ msgid "" "slots:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:690 +#: ../Doc/extending/newtypes_tutorial.rst:691 msgid "" "First, the traversal method lets the cyclic GC know about subobjects that " "could participate in cycles::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:710 +#: ../Doc/extending/newtypes_tutorial.rst:711 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,26 +682,26 @@ msgid "" "be returned if it is non-zero." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:716 +#: ../Doc/extending/newtypes_tutorial.rst:717 msgid "" "Python provides a :c:func:`Py_VISIT` macro that automates calling visit " "functions. With :c:func:`Py_VISIT`, we can minimize the amount of " "boilerplate in ``Custom_traverse``::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:729 +#: ../Doc/extending/newtypes_tutorial.rst:730 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " "arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:732 +#: ../Doc/extending/newtypes_tutorial.rst:733 msgid "" "Second, we need to provide a method for clearing any subobjects that can " "participate in cycles::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:743 +#: ../Doc/extending/newtypes_tutorial.rst:744 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 " @@ -711,18 +711,18 @@ msgid "" "again (*especially* if there is a reference cycle)." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:751 +#: ../Doc/extending/newtypes_tutorial.rst:752 msgid "You could emulate :c:func:`Py_CLEAR` by writing::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:758 +#: ../Doc/extending/newtypes_tutorial.rst:759 msgid "" "Nevertheless, it is much easier and less error-prone to always use :c:func:" "`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the " "expense of robustness!" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:762 +#: ../Doc/extending/newtypes_tutorial.rst:763 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 +732,12 @@ msgid "" "`PyObject_GC_UnTrack` and ``Custom_clear``::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:777 +#: ../Doc/extending/newtypes_tutorial.rst:778 msgid "" "Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:781 +#: ../Doc/extending/newtypes_tutorial.rst:782 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 +745,11 @@ msgid "" "automatically provided." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:787 +#: ../Doc/extending/newtypes_tutorial.rst:788 msgid "Subclassing other types" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:789 +#: ../Doc/extending/newtypes_tutorial.rst:790 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 +757,7 @@ msgid "" "share these :c:type:`PyTypeObject` structures between extension modules." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:794 +#: ../Doc/extending/newtypes_tutorial.rst:795 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 +765,34 @@ msgid "" "that increases an internal counter:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:814 +#: ../Doc/extending/newtypes_tutorial.rst:815 msgid "" "As you can see, the source code closely resembles the :class:`Custom` " "examples in previous sections. We will break down the main differences " "between them. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:822 +#: ../Doc/extending/newtypes_tutorial.rst:823 msgid "" "The primary difference for derived type objects is that the base type's " "object structure must be the first value. The base type will already " "include the :c:func:`PyObject_HEAD` at the beginning of its structure." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:826 +#: ../Doc/extending/newtypes_tutorial.rst:827 msgid "" "When a Python object is a :class:`SubList` instance, its ``PyObject *`` " "pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " "*``::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:838 +#: ../Doc/extending/newtypes_tutorial.rst:839 msgid "" "We see above how to call through to the :attr:`__init__` method of the base " "type." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:841 +#: ../Doc/extending/newtypes_tutorial.rst:842 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 +801,7 @@ msgid "" "the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:847 +#: ../Doc/extending/newtypes_tutorial.rst:848 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 +810,7 @@ msgid "" "function::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:870 +#: ../Doc/extending/newtypes_tutorial.rst:871 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 +819,29 @@ msgid "" "from the base type will be inherited." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:876 +#: ../Doc/extending/newtypes_tutorial.rst:877 msgid "" "After that, calling :c:func:`PyType_Ready` and adding the type object to the " "module is the same as with the basic :class:`Custom` examples." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:881 +#: ../Doc/extending/newtypes_tutorial.rst:882 msgid "Footnotes" msgstr "Notes" -#: ../Doc/extending/newtypes_tutorial.rst:882 +#: ../Doc/extending/newtypes_tutorial.rst:883 msgid "" "This is true when we know that the object is a basic type, like a string or " "a float." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:885 +#: ../Doc/extending/newtypes_tutorial.rst:886 msgid "" "We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " "this example, because our type doesn't support garbage collection." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:888 +#: ../Doc/extending/newtypes_tutorial.rst:889 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 +851,7 @@ msgid "" "objects." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:894 +#: ../Doc/extending/newtypes_tutorial.rst:895 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 3aded6d9a..c818f3a3e 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-09-21 09:15+0200\n" -"PO-Revision-Date: 2017-12-01 08:56+0100\n" +"PO-Revision-Date: 2019-06-01 23:38+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -80,10 +80,10 @@ msgstr "" "Il y a deux approches lorsque l'on construit des modules d'extension sur " "Windows, tout comme sur Unix : utiliser le paquet :mod:`distutils` pour " "contrôler le processus de construction, ou faire les choses manuellement. " -"L'approche distutils fonctionne bien pour la plupart des extensions ; la " +"L'approche *distutils* fonctionne bien pour la plupart des extensions ; la " "documentation pour utiliser :mod:`distutils` pour construire et empaqueter " "les modules d'extension est disponible dans :ref:`distutils-index`. Si vous " -"considerez que vous avez réellement besoin de faire les choses manuellement, " +"considérez que vous avez réellement besoin de faire les choses manuellement, " "il pourrait être enrichissant d'étudier le fichier de projet :source:" "`winsound ` pour le module de la bibliothèque " "standard." @@ -98,7 +98,7 @@ msgid "" "code. Before you try to build a module that can be dynamically loaded, be " "aware of how your system works." msgstr "" -"Unix et Windows utilisent des paradigmes complètement différents pour le " +"\\ Unix et Windows utilisent des paradigmes complètement différents pour le " "chargement du code pendant l'exécution. Avant d'essayer de construire un " "module qui puisse être chargé dynamiquement, soyez conscient du mode de " "fonctionnement du système." @@ -115,7 +115,7 @@ msgstr "" "Sur Unix, un fichier objet partagé (:file:`.so`) contient du code servant au " "programme, ainsi que les noms des fonctions et les données que l'on " "s'attend à trouver dans le programme. Quand le fichier est attaché au " -"programme, toutes les réferences à ces fonctions et données dans le code du " +"programme, toutes les références à ces fonctions et données dans le code du " "fichier sont modifiées pour pointer vers les localisations actuelles dans le " "programme où sont désormais placées les fonctions et données dans la " "mémoire. C'est tout simplement une opération de liaison." @@ -151,7 +151,7 @@ msgstr "" "l'étape de liaison pour créer un fichier objet partagé (:file:`.so`), le " "lieur peut informer qu'il ne sait pas où un identificateur est défini. Le " "lieur le cherchera dans les fichiers objet dans les bibliothèques ; s'il le " -"trouve, il incluera tout le code provenant de ce fichier objet." +"trouve, il inclura tout le code provenant de ce fichier objet." #: ../Doc/extending/windows.rst:76 msgid "" @@ -167,17 +167,17 @@ msgid "" "application or DLL." msgstr "" "Sur Windows, il y a deux types de bibliothèques, une bibliothèque statique " -"et une bibliothèque d'import (toutes deux appelées :file:`.lib`). Une " +"et une bibliothèque d'importation (toutes deux appelées :file:`.lib`). Une " "bibliothèque statique est comme un fichier Unix :file:`.a` ; elle contient " -"du code pouvant être inclus si nécessaire. Une bibliothèque d'import est " -"uniquement utilisée pour rassurer le lieur qu'un certain identificateur est " -"légal, et sera présent dans le programme quand la DLL est chargé. Comme ça " -"le lieur utilise les informations provenant de la bibliothèque d'import pour " -"construire la table de conversion pour utiliser les identificateurs qui ne " -"sont pas inclus dans la DLL. Quand une application ou une DLL est lié, une " -"bibliothèque d'import peut être générée, qui devra être utilisée pour tous " -"les futures DLL dépendantes aux symboles provenant de l'application ou de la " -"DLL." +"du code pouvant être inclus si nécessaire. Une bibliothèque d'importation " +"est uniquement utilisée pour rassurer le lieur qu'un certain identificateur " +"est légal, et sera présent dans le programme quand la DLL est chargée. Comme " +"ça le lieur utilise les informations provenant de la bibliothèque " +"d'importation pour construire la table de conversion pour utiliser les " +"identificateurs qui ne sont pas inclus dans la DLL. Quand une application ou " +"une DLL est liée, une bibliothèque d'importation peut être générée, qui " +"devra être utilisée pour toutes les futures DLL dépendantes aux symboles " +"provenant de l'application ou de la DLL." #: ../Doc/extending/windows.rst:86 msgid "" @@ -192,7 +192,7 @@ msgstr "" "Supposons que vous construisez deux modules de chargement dynamiques, B et " "C, qui ne devraient pas partager un autre bloc de code avec A. Sur Unix, " "vous ne transmettrez pas :file:`A.a` au lieur pour :file:`B.so` et :file:`C." -"so` ; cela le ferait être inclus deux fois, pour que B et C aient chacuns " +"so` ; cela le ferait être inclus deux fois, pour que B et C aient chacun " "leur propre copie. Sur Windows, construire :file:`A.dll` construira aussi :" "file:`A.lib`. Vous transmettez :file:`A.lib` au lieur pour B et C. :file:`A." "lib` ne contient pas de code ; il contient uniquement des informations qui " @@ -205,10 +205,10 @@ msgid "" "On Unix, linking with a library is more like ``from spam import *``; it does " "create a separate copy." msgstr "" -"Sur Windows, utiliser une bibliothèque d'import est comme utiliser ``import " -"spam``; cela vous donne accès aux noms des spams, mais ne crée par de copie " -"séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from spam " -"import *`` ; cela créé une copie séparée." +"Sur Windows, utiliser une bibliothèque d'importation est comme utiliser " +"``import spam``; cela vous donne accès aux noms des spams, mais ne crée par " +"de copie séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from " +"spam import *`` ; cela crée une copie séparée." #: ../Doc/extending/windows.rst:103 msgid "Using DLLs in Practice" @@ -276,8 +276,8 @@ msgid "" "the Project Settings dialog, Link tab, to specify *ignore default " "libraries*. Add the correct :file:`msvcrtxx.lib` to the list of libraries." msgstr "" -"Developer Studio apportera beaucoup de bibliothèques d'import dont vous " -"n'avez pas vraiment besoin, augmentant d'environ 100K votre exécutable. Pour " -"s'en débarasser, allez dans les Paramètres du Projet, onglet Lien, pour " -"préciser *ignorer les bibliothèques par défaut*. Et la :file:`msvcrtxx.lib` " -"correcte à la liste des bibliothèques." +"\\ Developer Studio apportera beaucoup de bibliothèques d'importation dont " +"vous n'avez pas vraiment besoin, augmentant d'environ 100ko votre " +"exécutable. Pour s'en débarrasser, allez dans les Paramètres du Projet, " +"onglet Lien, pour préciser *ignorer les bibliothèques par défaut*. Et la :" +"file:`msvcrtxx.lib` correcte à la liste des bibliothèques." diff --git a/faq/design.po b/faq/design.po index 390a35312..0c6abcda3 100644 --- a/faq/design.po +++ b/faq/design.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-09-30 22:26+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-03-21 21:04+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/faq/design.rst:3 msgid "Design and History FAQ" @@ -26,7 +26,7 @@ msgstr "Sommaire" #: ../Doc/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 ?" +"Pourquoi Python utilise-t-il l'indentation pour grouper les instructions ?" #: ../Doc/faq/design.rst:13 msgid "" @@ -48,7 +48,7 @@ msgstr "" "Comme il n'y a pas d'accolades de début/fin, il ne peut y avoir de " "différence entre le bloc perçu par l'analyseur syntaxique et le lecteur " "humain. Parfois les programmeurs C pourront trouver un morceau de code comme " -"celui-ci : ::" +"celui-ci ::" #: ../Doc/faq/design.rst:26 msgid "" @@ -100,7 +100,7 @@ msgstr "" 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 ?" +"arithmétiques ?" #: ../Doc/faq/design.rst:48 msgid "See the next question." @@ -108,12 +108,11 @@ msgstr "Voir la question suivante." #: ../Doc/faq/design.rst:52 msgid "Why are floating-point calculations so inaccurate?" -msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?" +msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?" #: ../Doc/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 : ::" +msgstr "Les gens sont très souvent surpris par des résultats comme celui-ci ::" #: ../Doc/faq/design.rst:59 msgid "" @@ -150,7 +149,7 @@ msgid "" msgstr "" "Beaucoup de nombres pouvant être écrits facilement en notation décimale ne " "peuvent pas s'exprimer de manière exacte en binaire à virgule flottante. Par " -"exemple, après : ::" +"exemple, après ::" #: ../Doc/faq/design.rst:75 msgid "" @@ -160,11 +159,11 @@ msgid "" msgstr "" "la valeur stockée pour ``x`` est une (très bonne) approximation de la valeur " "décimale ``1.2``, mais cette valeur n'est pas exacte. Sur une machine " -"typique, la valeur stockée est en fait : ::" +"typique, la valeur stockée est en fait ::" #: ../Doc/faq/design.rst:81 msgid "which is exactly::" -msgstr "qui est, exactement : ::" +msgstr "qui est, exactement ::" #: ../Doc/faq/design.rst:85 msgid "" @@ -184,7 +183,7 @@ msgstr "" #: ../Doc/faq/design.rst:93 msgid "Why are Python strings immutable?" -msgstr "Pourquoi les chaînes de caractères Python sont-elles immuables ?" +msgstr "Pourquoi les chaînes de caractères Python sont-elles immuables ?" #: ../Doc/faq/design.rst:95 msgid "There are several advantages." @@ -218,7 +217,7 @@ msgstr "" 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 ?" +"les appels de méthode ?" #: ../Doc/faq/design.rst:112 msgid "" @@ -304,22 +303,22 @@ msgstr "" "les références vers des noms non-qualifiés au sein d'une méthode n'ont pas à " "être cherchés dans l'annuaire d'instances. En d'autres termes, les variables " "locales et les variables d'instance vivent dans deux différents espaces de " -"noms, et vous devez dire à Python quel espace de noms utiliser." +"nommage, et vous devez dire à Python quel espace de nommage utiliser." #: ../Doc/faq/design.rst:150 msgid "Why can't I use an assignment in an expression?" -msgstr "Pourquoi ne puis-je pas utiliser d'assignation dans une expression ?" +msgstr "Pourquoi ne puis-je pas utiliser d'assignation dans une expression ?" #: ../Doc/faq/design.rst:152 msgid "" "Many people used to C or Perl complain that they want to use this C idiom:" msgstr "" "De nombreuses personnes habituées à C ou Perl se plaignent de vouloir " -"utiliser cet idiome C :" +"utiliser cet idiome C :" #: ../Doc/faq/design.rst:160 msgid "where in Python you're forced to write this::" -msgstr "où en Python vous êtes forcé à écrire ceci : ::" +msgstr "où en Python vous êtes forcé à écrire ceci ::" #: ../Doc/faq/design.rst:168 msgid "" @@ -328,7 +327,7 @@ msgid "" msgstr "" "La raison pour ne pas autoriser l'assignation dans les expressions en Python " "est un bug fréquent, et difficile à trouver dans ces autres langages, causé " -"par cette construction :" +"par cette construction :" #: ../Doc/faq/design.rst:180 msgid "" @@ -396,19 +395,19 @@ msgstr "" "La meilleur approche est d'utiliser les itérateurs, rendant possible de " "parcourir des objets en utilisant l'instruction ``for``. Par exemple, les :" "term:`objets fichiers ` gèrent le protocole d'itération, donc " -"vous pouvez simplement écrire : ::" +"vous pouvez simplement écrire ::" #: ../Doc/faq/design.rst:216 msgid "" "Why does Python use methods for some functionality (e.g. list.index()) but " "functions for other (e.g. len(list))?" msgstr "" -"Pourquoi Python utilise des méthodes pour certaines fonctionnalités (ex : " -"list.index()) mais des fonctions pour d'autres (ex : len(list)) ?" +"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:218 msgid "As Guido said:" -msgstr "" +msgstr "Comme l'a dit Guido :" #: ../Doc/faq/design.rst:220 msgid "" @@ -418,6 +417,12 @@ msgid "" "problem. Compare the easy with which we rewrite a formula like x*(a+b) into " "x*a + x*b to the clumsiness of doing the same thing using a raw OO notation." msgstr "" +"(a) Pour certaines opérations, la notation préfixe se lit mieux que celle " +"suffixe -- les opérations préfixe (et infixe !) sont une longue tradition en " +"mathématique, où on apprécie les notations qui aident visuellement le " +"mathématicien à réfléchir sur un problème. Comparez la facilité avec " +"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:227 msgid "" @@ -430,16 +435,26 @@ msgid "" "mapping has a get() or keys() method, or something that isn't a file has a " "write() method." msgstr "" +"(b) Quand je lis du code qui dit ``len(x)`` *je sais* qu'il demande la " +"longueur de quelque chose. Cela me dit deux choses : le résultat est un " +"entier, et l'argument est une sorte de conteneur. Au contraire, quand je lis " +"``x.len()``, je dois déjà savoir que x est une sorte de conteneur " +"implémentant une interface ou héritant d'une classe qui a un ``len()`` " +"standard. Voyez la confusion qui arrive parfois quand une classe qui " +"n'implémente pas une interface de dictionnaire a une méthode ``get()`` ou " +"``key()``, ou quand un objet qui n'est pas un fichier implémente une méthode " +"``write()``." #: ../Doc/faq/design.rst:254 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:240 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 ?" +"Pourquoi ``join()`` est une méthode de chaîne plutôt qu'une de liste ou de " +"tuple ?" #: ../Doc/faq/design.rst:242 msgid "" @@ -454,11 +469,11 @@ msgstr "" "mêmes fonctionnalités que celles qui étaient déjà disponibles en utilisant " "les fonctions du module string. La plupart de ces nouvelles méthodes ont été " "largement acceptées, mais celle qui semble rendre certains programmeurs " -"inconfortables est : ::" +"inconfortables est ::" #: ../Doc/faq/design.rst:250 msgid "which gives the result::" -msgstr "qui donne le résultat : ::" +msgstr "qui donne le résultat ::" #: ../Doc/faq/design.rst:254 msgid "There are two common arguments against this usage." @@ -489,7 +504,7 @@ 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:269 msgid "" @@ -513,11 +528,12 @@ msgstr "" "s'insérer entre les éléments adjacents. Cette méthode peut être utilisée " "avec n'importe quel argument qui obéit aux règles d'objets séquence, " "incluant n'importe quelles nouvelles classes que vous pourriez définir vous-" -"même. Des méthodes similaires existent pour des objets bytes et bytearray." +"même. Des méthodes similaires existent pour des objets ``bytes`` et " +"``bytearray``." #: ../Doc/faq/design.rst:280 msgid "How fast are exceptions?" -msgstr "À quel point les exceptions sont-elles rapides ?" +msgstr "À quel point les exceptions sont-elles rapides ?" #: ../Doc/faq/design.rst:282 msgid "" @@ -525,10 +541,10 @@ msgid "" "Actually catching an exception is expensive. In versions of Python prior to " "2.0 it was common to use this idiom::" msgstr "" -"Un bloc try/except est extrêmement efficient tant qu'aucune exception ne " -"sont levée. En effet, intercepter une exception s'avère coûteux. Dans les " -"versions de précédant Python 2.0, il était courant d'utiliser cette " -"pratique ::" +"Un bloc ``try`` / ``except`` est extrêmement efficient tant qu'aucune " +"exception ne sont levée. En effet, intercepter une exception s'avère " +"coûteux. Dans les versions de précédant Python 2.0, il était courant " +"d'utiliser cette pratique ::" #: ../Doc/faq/design.rst:292 msgid "" @@ -537,7 +553,7 @@ msgid "" msgstr "" "Cela n'a de sens que si vous vous attendez à ce que le dictionnaire ait la " "clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé " -"comme suit : ::" +"comme suit ::" #: ../Doc/faq/design.rst:300 msgid "" @@ -553,7 +569,7 @@ msgstr "" 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 ?" +"à *switch / case* en Python ?" #: ../Doc/faq/design.rst:308 msgid "" @@ -564,8 +580,8 @@ msgid "" msgstr "" "Vous pouvez le faire assez facilement avec une séquence de ``if... elif... " "elif... else``. Il y a eu quelques propositions pour la syntaxe de " -"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." +"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:313 msgid "" @@ -575,7 +591,7 @@ msgid "" msgstr "" "Dans les cas où vous devez choisir parmi un très grand nombre de " "possibilités, vous pouvez créer un dictionnaire faisant correspondre des " -"valeurs à des fonctions à appeler. Par exemple : ::" +"valeurs à des fonctions à appeler. Par exemple ::" #: ../Doc/faq/design.rst:327 msgid "" @@ -584,7 +600,7 @@ msgid "" msgstr "" "Pour appeler les méthodes sur des objets, vous pouvez simplifier davantage " "en utilisant la fonction native :func:`getattr` pour récupérer les méthodes " -"avec un nom donné : ::" +"avec un nom donné ::" #: ../Doc/faq/design.rst:339 msgid "" @@ -604,7 +620,7 @@ msgid "" "specific thread implementation?" 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 ?" +"se baser sur les implémentations spécifique aux OS ?" #: ../Doc/faq/design.rst:347 msgid "" @@ -613,7 +629,7 @@ msgid "" "almost random moments. Therefore, a complete threads implementation " "requires thread support for C." msgstr "" -"Réponse 1: Malheureusement, l'interpréteur pousse au moins un block de pile " +"Réponse 1 : Malheureusement, l'interpréteur pousse au moins un bloc de pile " "C (*stack frame*) pour chaque bloc de pile de Python. Aussi, les extensions " "peuvent rappeler dans Python à presque n'importe quel moment. Par " "conséquent, une implémentation complète des fils d'exécution nécessiterai un " @@ -632,7 +648,7 @@ msgstr "" #: ../Doc/faq/design.rst:357 msgid "Why can't lambda expressions contain statements?" msgstr "" -"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" +"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" #: ../Doc/faq/design.rst:359 msgid "" @@ -664,7 +680,7 @@ msgstr "" "fonction lambda au lieu d'une fonction définie localement est que vous " "n'avez nullement besoin d'un nom pour la fonction -- Mais c'est juste une " "variable locale à laquelle est affecté l'objet fonction (qui est exactement " -"le même type d'objet qui donne une expression lambda) !" +"le même type d'objet qui donne une expression lambda) !" #: ../Doc/faq/design.rst:373 msgid "Can Python be compiled to machine code, C or some other language?" @@ -679,10 +695,15 @@ msgid "" "full Python language. For compiling to Java you can consider `VOC `_." msgstr "" +"`Cython `_ compile une version modifiée de Python avec " +"des annotations optionnelles en extensions C. `Nuitka `_ est un nouveau compilateur de Python vers C++, visant à supporter le " +"langage Python entièrement. Pour compiler en Java, vous pouvez regarder `VOC " +"`_." #: ../Doc/faq/design.rst:383 msgid "How does Python manage memory?" -msgstr "Comment Python gère la mémoire ?" +msgstr "Comment Python gère la mémoire ?" #: ../Doc/faq/design.rst:385 msgid "" @@ -699,7 +720,7 @@ msgstr "" "`CPython`, utilise des compteurs de références afin de détecter des objets " "inaccessibles et un autre mécanisme pour collecter les références " "circulaires, exécutant périodiquement un algorithme de détection de cycles " -"qui recherche les cycles inaccessibles et supprime les objets implqués. Le " +"qui recherche les cycles inaccessibles et supprime les objets impliqués. Le " "module :mod:`gc` fournit des fonctions pour lancer le ramasse-miettes, " "d'obtenir des statistiques de débogage et ajuster ses paramètres." @@ -753,7 +774,7 @@ msgstr "" #: ../Doc/faq/design.rst:421 msgid "Why doesn't CPython use a more traditional garbage collection scheme?" msgstr "" -"Pourquoi CPython n'utilise-il pas un ramasse-miette plus traditionnel ?" +"Pourquoi CPython n'utilise-il pas un ramasse-miette plus traditionnel ?" #: ../Doc/faq/design.rst:423 msgid "" @@ -781,16 +802,17 @@ msgid "" msgstr "" "Le *GC* classique devient également un problème lorsque Python est incorporé " "dans d'autres applications. Bien que dans une application Python, il ne soit " -"pas gênant de remplacer les fonctions malloc() et free() avec les versions " -"fournies par la bibliothèque *GC*, une application incluant Python peut " -"vouloir avoir ses propres implémentations de malloc() et free() et peut ne " -"pas vouloir celles de Python. À l'heure actuelle, CPython fonctionne avec " -"n'importe quelle implémentation correcte de malloc() et free()." +"pas gênant de remplacer les fonctions ``malloc()`` et ``free()` avec les " +"versions fournies par la bibliothèque *GC*, une application incluant Python " +"peut vouloir avoir ses propres implémentations de ``malloc()`` et ``free()`` " +"et peut ne pas vouloir celles de Python. À l'heure actuelle, CPython " +"fonctionne avec n'importe quelle implémentation correcte de ``malloc()`` et " +"``free()``." #: ../Doc/faq/design.rst:438 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 ?" +"Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?" #: ../Doc/faq/design.rst:440 msgid "" @@ -801,8 +823,8 @@ msgid "" "about these). Python is, however, aggressive about cleaning up memory on " "exit and does try to destroy every single object." msgstr "" -"Les objets référencés depuis les espaces de noms globaux des modules Python " -"ne sont pas toujours désalloués lorsque Python s'arrête. Cela peut se " +"Les objets référencés depuis les espaces de nommage globaux des modules " +"Python ne sont pas toujours désalloués lorsque Python s'arrête. Cela peut se " "produire s'il y a des références circulaires. Il y a aussi certaines parties " "de mémoire qui sont alloués par la bibliothèque C qui sont impossibles à " "libérer (par exemple un outil comme *Purify* s'en plaindra). Python est, " @@ -821,7 +843,7 @@ msgstr "" #: ../Doc/faq/design.rst:452 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 ?" +"Pourquoi les *tuples* et les *list* sont deux types de données séparés ?" #: ../Doc/faq/design.rst:454 msgid "" @@ -836,7 +858,7 @@ msgstr "" "généralement utilisés de façons fondamentalement différentes. Les *tuples* " "peuvent être considérés comme étant similaires aux dossiers en Pascal ou aux " "structures en C; Ce sont de petites collections de données associées qui " -"peuvent être de différents types qui sont utilisées sensemble. Par exemple, " +"peuvent être de différents types qui sont utilisées ensemble. Par exemple, " "un repère cartésien est correctement représenté comme un *tuple* de deux ou " "trois nombres." @@ -992,7 +1014,7 @@ msgstr "" #: ../Doc/faq/design.rst:523 msgid "Some unacceptable solutions that have been proposed:" -msgstr "Certaines solutions insatisfaisantes qui ont été proposées :" +msgstr "Certaines solutions insatisfaisantes qui ont été proposées :" #: ../Doc/faq/design.rst:525 msgid "" @@ -1005,14 +1027,15 @@ msgstr "" #: ../Doc/faq/design.rst:531 msgid "" -"would raise a KeyError exception because the id of the ``[1, 2]`` used in " -"the second line differs from that in the first line. In other words, " -"dictionary keys should be compared using ``==``, not using :keyword:`is`." +"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 " +"words, dictionary keys should be compared using ``==``, not using :keyword:" +"`is`." msgstr "" -"cela lèverait une exception de type *KeyError* car l'id de ``[1, 2]`` " -"utilisée dans la deuxième ligne diffère de celle de la première ligne. En " -"d'autres termes, les clés de dictionnaire doivent être comparées à l'aide du " -"comparateur ``==`` et non à l'aide du :keyword:`is`." +"cela lèverait une exception :exc:`KeyError` car l'ID de ``[1, 2]`` utilisé " +"dans la deuxième ligne diffère de celle de la première ligne. En d'autres " +"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:535 msgid "" @@ -1032,6 +1055,11 @@ msgid "" "by accident. It also invalidates an important invariant of dictionaries: " "every value in ``d.keys()`` is usable as a key of the dictionary." msgstr "" +"Autoriser les listes en tant que clés, mais indiquer à l'utilisateur de ne " +"pas les modifier. Cela permettrait un ensemble de bogues difficiles à suivre " +"dans les programmes lorsque vous avez oublié ou modifié une liste par " +"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:544 msgid "" @@ -1042,6 +1070,14 @@ msgid "" "read-only -- and again, self-referential objects could cause an infinite " "loop." msgstr "" +"Marquer les listes comme étant en lecture seule une fois qu'elles sont " +"utilisées comme clé de dictionnaire. Le problème est que ce n'est pas " +"seulement l'objet de niveau supérieur qui pourrait changer sa valeur; vous " +"pourriez utiliser un tuple contenant une liste comme clé. Utiliser " +"n'importe quoi comme une clé dans un dictionnaire nécessiterait de marquer " +"tous les objets accessibles à partir de là comme en lecture seule -- et " +"encore une fois, les objets se faisant référence pourraient provoquer une " +"boucle infinie." #: ../Doc/faq/design.rst:550 msgid "" @@ -1052,6 +1088,13 @@ msgid "" "dictionary (or other hash based structure), remain fixed while the object is " "in the dictionary (or other structure). ::" msgstr "" +"Il y a un truc pour contourner ceci si vous en avez besoin, mais utilisez-le " +"à vos risques et périls. Vous pouvez encapsuler une structure mutable à " +"l'intérieur d'une instance de classe qui a à la fois une méthode :meth:" +"`__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). ::" #: ../Doc/faq/design.rst:574 msgid "" @@ -1059,6 +1102,9 @@ msgid "" "members of the list may be unhashable and also by the possibility of " "arithmetic overflow." msgstr "" +"Notez que le calcul de hachage peut être compliqué car il est possible que " +"certains membres de la liste peuvent être impossible à hacher et aussi par " +"la possibilité de débordement arithmétique." #: ../Doc/faq/design.rst:578 msgid "" @@ -1068,6 +1114,11 @@ msgid "" "not. If you fail to meet these restrictions dictionaries and other hash " "based structures will misbehave." msgstr "" +"De plus, il faut toujours que, si ``o1 == o2`` (par exemple ``o1.__eq__(o2) " +"vaut True``) alors ``hash(o1) == hash(o2)`` (par exemple, ``o1.__hash__() == " +"o2.__hash__()``), que l’objet se trouve dans un dictionnaire ou pas. Si vous " +"ne remplissez pas ces conditions, les dictionnaires et autres structures " +"basées sur le hachage se comporteront mal." #: ../Doc/faq/design.rst:583 msgid "" @@ -1076,10 +1127,15 @@ msgid "" "you are prepared to think hard about the requirements and the consequences " "of not meeting them correctly. Consider yourself warned." msgstr "" +"Dans le cas de *ListWrapper*, chaque fois que l'objet *wrapper* est dans un " +"dictionnaire, la liste encapsulée ne doit pas changer pour éviter les " +"anomalies. Ne faites pas cela à moins que vous n’ayez pensé aux potentielles " +"conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été " +"prévenus." #: ../Doc/faq/design.rst:590 msgid "Why doesn't list.sort() return the sorted list?" -msgstr "" +msgstr "Pourquoi ``list.sort()`` ne renvoie pas la liste triée ?" #: ../Doc/faq/design.rst:592 msgid "" @@ -1090,6 +1146,12 @@ msgid "" "when you need a sorted copy but also need to keep the unsorted version " "around." msgstr "" +"Dans les situations où la performance est importante, faire une copie de la " +"liste juste pour la trier serait un gaspillage. Par conséquent, :meth:`list." +"sort` trie la liste en place. Afin de vous le rappeler, il ne retourne pas " +"la liste triée. De cette façon, vous ne serez pas dupés en écrasant " +"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:598 msgid "" @@ -1098,10 +1160,16 @@ msgid "" "it and returns it. For example, here's how to iterate over the keys of a " "dictionary in sorted order::" msgstr "" +"Si vous souhaitez retourner une nouvelle liste, utilisez plutôt la fonction " +"native :func:`sorted`. Cette fonction crée une nouvelle liste à partir d’un " +"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:608 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:610 msgid "" @@ -1110,6 +1178,10 @@ msgid "" "module. Many feel that compile-time enforcement of interface specifications " "helps in the construction of large programs." msgstr "" +"Une spécification d'interface pour un module fourni par des langages tels " +"que C++ et Java décrit les prototypes pour les méthodes et les fonctions du " +"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:615 msgid "" @@ -1120,6 +1192,13 @@ msgid "" "`~collections.abc.Iterable`, :class:`~collections.abc.Container`, and :class:" "`~collections.abc.MutableMapping`." msgstr "" +"Python 2.6 ajoute un module :mod:`abc` qui vous permet de définir des " +"classes de base abstraites (ABCs). Vous pouvez ensuite utiliser :func:" +"`isinstance` et :func:`issubclass` pour vérifier si une instance ou une " +"classe implémente une ABC particulière. Le module :mod:`collections.abc` " +"définit un ensemble d'ABCs utiles telles que :class:`~collections.abc." +"Iterable`, :class:`~collections.abc.Container` et :class:`collections.abc." +"MutableMapping`." #: ../Doc/faq/design.rst:622 msgid "" @@ -1127,6 +1206,10 @@ msgid "" "obtained by an appropriate test discipline for components. There is also a " "tool, PyChecker, which can be used to find problems due to subclassing." 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." #: ../Doc/faq/design.rst:626 msgid "" @@ -1139,6 +1222,15 @@ msgid "" "be used to construct exhaustive test suites that exercise every line of code " "in a module." msgstr "" +"Une bonne suite de tests pour un module peut à la fois fournir un test de " +"non régression et servir de spécification d'interface de module ainsi qu'un " +"ensemble d'exemples. De nombreux modules Python peuvent être exécutés en " +"tant que script pour fournir un simple « auto-test ». Même les modules qui " +"utilisent des interfaces externes complexes peuvent souvent être testés " +"isolément à l'aide d'émulations triviales embryonnaires de l'interface " +"externe. Les modules :mod:`doctest` et :mod:`UnitTest` ou des frameworks de " +"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:634 msgid "" @@ -1150,6 +1242,15 @@ msgid "" "test that your :meth:`append` implementation will actually do this " "correctly, but it's trivial to check this property in a test suite." msgstr "" +"Une discipline de test appropriée peut aider à construire des applications " +"complexes de grande taille en Python aussi bien que le feraient des " +"spécifications d'interface. En fait, c'est peut être même mieux parce qu'une " +"spécification d'interface ne peut pas tester certaines propriétés d'un " +"programme. Par exemple, la méthode :meth:`Append` est censée ajouter de " +"nouveaux éléments à la fin d'une liste « sur place » ; une spécification " +"d'interface ne peut pas tester que votre implémentation de :meth:`append` va " +"réellement le faire correctement, mais il est trivial de vérifier cette " +"propriété dans une suite de tests." #: ../Doc/faq/design.rst:642 msgid "" @@ -1159,10 +1260,16 @@ msgid "" "before you write any of the actual code. Of course Python allows you to be " "sloppy and not write test cases at all." msgstr "" +"L'écriture des suites de tests est très utile, et vous voudrez peut-être " +"concevoir votre code de manière à le rendre facilement testable. Une " +"technique de plus en plus populaire, le développement dirigé par les tests, " +"requiert d'écrire d'abord des éléments de la suite de tests, avant d'écrire " +"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:650 msgid "Why is there no goto?" -msgstr "Pourquoi n'y a-t-il pas de goto en Python ?" +msgstr "Pourquoi n'y a-t-il pas de ``goto`` en Python ?" #: ../Doc/faq/design.rst:652 msgid "" @@ -1171,10 +1278,10 @@ msgid "" "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 " +"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 " +"utilisation raisonnable des constructions ``go`` ou ``goto`` en C, en " "Fortran ou autres langages de programmation. Par exemple ::" #: ../Doc/faq/design.rst:667 @@ -1183,12 +1290,14 @@ msgid "" "considered an abuse of goto anyway. Use sparingly." msgstr "" "Cela ne vous permet pas de sauter au milieu d'une boucle. Néanmoins, dans " -"tous les cas cela est généralement considéré comme un abus de goto. À " +"tous les cas cela est généralement considéré comme un abus de ``goto``. À " "Utiliser avec parcimonie." #: ../Doc/faq/design.rst:672 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:674 msgid "" @@ -1196,6 +1305,9 @@ msgid "" "unpaired backslash at the end escapes the closing quote character, leaving " "an unterminated string." msgstr "" +"Plus précisément, elles ne peuvent pas se terminer par un nombre impair de " +"*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:678 msgid "" @@ -1206,23 +1318,36 @@ msgid "" "pass on the string quote character by escaping it with a backslash. These " "rules work well when r-strings are used for their intended purpose." msgstr "" +"Les chaînes brutes ont été conçues pour faciliter la création de données " +"pour les processeurs de texte (principalement les moteurs d'expressions " +"régulières) qui veulent faire leur propre traitement d'échappement " +"d'*antislashes*. Ces processeurs considèrent un *antislash* de fin non-" +"appairé comme une erreur, alors les chaînes brutes ne le permettent pas. En " +"retour, elles vous permettent de transmettre le caractère de citation de la " +"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:685 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" +"\" ::" #: ../Doc/faq/design.rst:690 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à ::" #: ../Doc/faq/design.rst:698 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 ?" +"Pourquoi la déclaration ``with`` pour les assignations d'attributs n'existe " +"pas en Python ?" #: ../Doc/faq/design.rst:700 msgid "" @@ -1230,7 +1355,7 @@ msgid "" "code on the entrance and exit from the block. Some language have a " "construct that looks like this::" msgstr "" -"Python a une instruction \"with\" qui encapsule l'exécution d'un bloc, en " +"Python a une instruction ``with`` qui encapsule l'exécution d'un bloc, en " "appelant le code sur l'entrée et la sortie du bloc. Certains langages " "possèdent une construction qui ressemble à ceci ::" @@ -1267,7 +1392,7 @@ msgstr "" #: ../Doc/faq/design.rst:721 msgid "For instance, take the following incomplete snippet::" -msgstr "" +msgstr "Prenons par exemple l'extrait incomplet suivant ::" #: ../Doc/faq/design.rst:727 msgid "" @@ -1277,6 +1402,11 @@ msgid "" "variable named \"x\", will it be used inside the with block? As you see, " "the dynamic nature of Python makes such choices much harder." msgstr "" +"L'extrait suppose que \"a\" doit avoir un attribut membre appelé \"x\". " +"Néanmoins, il n'y a rien en Python qui en informe l'interpréteur. Que se " +"passe-t-il si \"a\" est, disons, un entier ? Si une variable globale nommée " +"\"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:733 msgid "" @@ -1284,10 +1414,13 @@ msgid "" "code volume) can, however, easily be achieved in Python by assignment. " "Instead of::" msgstr "" +"L'avantage principal de ``with`` et des fonctionnalités de langage " +"similaires (réduction du volume de code) peut, cependant, être facilement " +"réalisé en Python par assignation. Au lieu de ::" #: ../Doc/faq/design.rst:740 msgid "write this::" -msgstr "" +msgstr "écrivez ceci ::" #: ../Doc/faq/design.rst:747 msgid "" @@ -1295,20 +1428,27 @@ msgid "" "bindings are resolved at run-time in Python, and the second version only " "needs to perform the resolution once." msgstr "" +"Cela a également pour effet secondaire d'augmenter la vitesse d'exécution " +"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:753 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:755 msgid "" "The colon is required primarily to enhance readability (one of the results " "of the experimental ABC language). Consider this::" 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:761 msgid "versus ::" -msgstr "" +msgstr "versus ::" #: ../Doc/faq/design.rst:766 msgid "" @@ -1316,6 +1456,9 @@ msgid "" "colon sets off the example in this FAQ answer; it's a standard usage in " "English." msgstr "" +"Remarquez comment le deuxième est un peu plus facile à lire. Remarquez " +"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:769 msgid "" @@ -1324,16 +1467,23 @@ msgid "" "needs to be increased instead of having to do a more elaborate parsing of " "the program text." msgstr "" +"Une autre raison mineure est que les deux-points facilitent la tâche des " +"éditeurs avec coloration syntaxique ; ils peuvent rechercher les deux-points " +"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:775 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:777 msgid "" "Python lets you add a trailing comma at the end of lists, tuples, and " "dictionaries::" msgstr "" +"Python vous permet d'ajouter une virgule à la fin des listes, des tuples et " +"des dictionnaires ::" #: ../Doc/faq/design.rst:788 msgid "There are several reasons to allow this." @@ -1346,12 +1496,19 @@ msgid "" "remember to add a comma to the previous line. The lines can also be " "reordered without creating a syntax error." msgstr "" +"Lorsque vous avez une valeur littérale pour une liste, un tuple ou un " +"dictionnaire réparti sur plusieurs lignes, il est plus facile d'ajouter plus " +"d'éléments parce que vous n'avez pas besoin de vous rappeler d'ajouter une " +"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:795 msgid "" "Accidentally omitting the comma can lead to errors that are hard to " "diagnose. For example::" msgstr "" +"L'omission accidentelle de la virgule peut entraîner des erreurs difficiles " +"à diagnostiquer, par exemple ::" #: ../Doc/faq/design.rst:805 msgid "" @@ -1359,88 +1516,13 @@ msgid "" "\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " "of error." msgstr "" +"Cette liste a l'air d'avoir quatre éléments, mais elle en contient en fait " +"trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule " +"permet d'éviter cette source d'erreur." #: ../Doc/faq/design.rst:808 msgid "" "Allowing the trailing comma may also make programmatic code generation " "easier." msgstr "" - -#~ msgid "" -#~ "The major reason is history. Functions were used for those operations " -#~ "that were generic for a group of types and which were intended to work " -#~ "even for objects that didn't have methods at all (e.g. tuples). It is " -#~ "also convenient to have a function that can readily be applied to an " -#~ "amorphous collection of objects when you use the functional features of " -#~ "Python (``map()``, ``zip()`` et al)." -#~ msgstr "" -#~ "La raison principale est historique. Les fonctions étaient utilisées pour " -#~ "ces opérations qui étaient génériques pour un groupe de types et qui " -#~ "étaient censés fonctionner même pour les objets qui n'avaient pas de " -#~ "méthodes du tout (ex : tuples). C'est aussi pratique d'avoir une fonction " -#~ "qui s'apprête bien à une collection amorphe d'objets lorsque vous " -#~ "utiliser les outils fonctionnels de Python (``map()``, ``zip()`` et " -#~ "autres)." - -#~ msgid "" -#~ "In fact, implementing ``len()``, ``max()``, ``min()`` as a built-in " -#~ "function is actually less code than implementing them as methods for each " -#~ "type. One can quibble about individual cases but it's a part of Python, " -#~ "and it's too late to make such fundamental changes now. The functions " -#~ "have to remain to avoid massive code breakage." -#~ msgstr "" -#~ "En fait, implémenter ``len()``, ``max()``, ``min()`` en tant que fonction " -#~ "intégrée produit moins de code que de les implémenter en tant que méthode " -#~ "pour chaque type. Certains peuvent rouspéter pour des cas individuels " -#~ "mais ça fait partie de Python et il est trop tard pour faire des " -#~ "changements si fondamentaux maintenant. Ces fonctions doivent rester pour " -#~ "éviter la casse massive de code." - -#~ msgid "" -#~ "For string operations, Python has moved from external functions (the " -#~ "``string`` module) to methods. However, ``len()`` is still a function." -#~ msgstr "" -#~ "Pour les opérations de chaînes, Python a déplacé les fonctions externes " -#~ "(le module ``string``) vers des méthodes. Cependant, ``len()`` est " -#~ "toujours une fonction." - -#~ msgid "Practical answer:" -#~ msgstr "Réponse concrète :" - -#~ msgid "Theoretical answer:" -#~ msgstr "Réponse théorique :" - -#~ msgid "" -#~ "Not trivially. Python's high level data types, dynamic typing of objects " -#~ "and run-time invocation of the interpreter (using :func:`eval` or :func:" -#~ "`exec`) together mean that a naïvely \"compiled\" Python program would " -#~ "probably consist mostly of calls into the Python run-time system, even " -#~ "for seemingly simple operations like ``x+1``." -#~ msgstr "" -#~ "Pas de façon triviale. Les types de données haut niveau de Python, le " -#~ "typage dynamique des objets et l'invocation de l’interpréteur à " -#~ "l'exécution (via :func:`eval` ou :func:`exec`) font qu'un programme " -#~ "Python compilé naïvement consisterait probablement principalement à faire " -#~ "des appels au système d'exécution de Python, même pour des opérations " -#~ "simples comme ``x + 1``." - -#~ msgid "" -#~ "Several projects described in the Python newsgroup or at past `Python " -#~ "conferences `_ have shown " -#~ "that this approach is feasible, although the speedups reached so far are " -#~ "only modest (e.g. 2x). Jython uses the same strategy for compiling to " -#~ "Java bytecode. (Jim Hugunin has demonstrated that in combination with " -#~ "whole-program analysis, speedups of 1000x are feasible for small demo " -#~ "programs. See the proceedings from the `1997 Python conference `_ for more information.)" -#~ msgstr "" -#~ "Plusieurs projets décrits dans le forum de Python ou dans les anciennes " -#~ "`Conférences Python `_ ont " -#~ "montré que cette approche est réalisable, même si les améliorations " -#~ "atteintes restaient modestes (autour de ×2). Jython utilise la même " -#~ "stratégie pour compiler en *bytecode* Java. (Jim Hugunin a démontré qu'en " -#~ "combinaison avec une analyse de la totalité du programme, des " -#~ "améliorations de ×1000 sont possibles sur de petits programmes de " -#~ "démonstration. Voir le compte rendu de la `Conférence de Python 1997 " -#~ "`_ pour plus " -#~ "d'informations.)" +"Permettre la virgule de fin peut également faciliter la génération de code." diff --git a/faq/extending.po b/faq/extending.po index 8fe37c6ed..2bf610334 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: 2018-02-15 00:37+0100\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-08-31 11:36+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.3\n" #: ../Doc/faq/extending.rst:3 msgid "Extending/Embedding FAQ" @@ -32,10 +33,15 @@ msgid "" "exceptions and even new types in C. This is explained in the document :ref:" "`extending-index`." msgstr "" +"Oui, vous pouvez créer des modules intégrés contenant des fonctions, des " +"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 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 msgid "Can I create my own functions in C++?" @@ -74,6 +80,11 @@ msgid "" "Cython and Pyrex make it possible to write an extension without having to " "learn Python's C API." msgstr "" +"`Cython `_ et son cousin `Pyrex `_ sont des compilateurs qui " +"acceptent une forme légèrement modifiée de Python et produisent du code C " +"correspondant. Cython et Pyrex permettent d'écrire une extension sans avoir " +"à connaître l'API C de Python." #: ../Doc/faq/extending.rst:50 msgid "" @@ -85,24 +96,41 @@ msgid "" "html>`_, or `Weave `_ are also alternatives " "for wrapping C++ libraries." msgstr "" +"Si vous avez besoin d'accéder à l'interface d'une bibliothèque C ou C++ pour " +"laquelle aucune extension Python n'existe à ce jour, vous pouvez essayer " +"d'encapsuler les types de données et fonctions de la bibliothèque avec un " +"outil tel que `SWIG `_. `SIP `__, `CXX `_, `Boost `_ ou " +"`Weave `_ sont également des alternatives " +"pour encapsuler des bibliothèques C++." #: ../Doc/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 msgid "" "The highest-level function to do this is :c:func:`PyRun_SimpleString` which " "takes a single string argument to be executed in the context of the module " "``__main__`` and returns ``0`` for success and ``-1`` when an exception " -"occurred (including ``SyntaxError``). If you want more control, use :c:func:" -"`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in ``Python/" -"pythonrun.c``." -msgstr "" +"occurred (including :exc:`SyntaxError`). If you want more control, use :c:" +"func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in " +"``Python/pythonrun.c``." +msgstr "" +"La fonction de plus haut niveau pour ce faire est :c:func:" +"`PyRun_SimpleStringString` qui prend une chaîne pour seul argument afin de " +"l'exécuter dans le contexte du module ``__main__`` et renvoie ``0`` en cas " +"de succès et ``-1`` quand une exception se produit (incluant :exc:" +"`SyntaxError`). Pour une meilleure maîtrise, utilisez :c:func:" +"`PyRun_String` ; voir le code source pour :c:func:`PyRun_SimpleString` dans " +"``Python/pythonrun.c``." #: ../Doc/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 msgid "" @@ -110,10 +138,13 @@ msgid "" "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " "and returns its value." msgstr "" +"Appelez la fonction :c:func:`PyRun_String` de la question précédente avec le " +"symbole de départ :c:data:`Py_eval_input` ; il analyse une expression, " +"l'évalue et renvoie sa valeur." #: ../Doc/faq/extending.rst:80 msgid "How do I extract C values from a Python object?" -msgstr "" +msgstr "Comment puis-je extraire des donnés en C d'un objet Python ?" #: ../Doc/faq/extending.rst:82 msgid "" @@ -122,6 +153,10 @@ msgid "" "specified index. Lists have similar functions, :c:func:`PyListSize` and :c:" "func:`PyList_GetItem`." msgstr "" +"Cela dépend du type d'objet. Si c'est un tuple, :c:func:`PyTuple_Size` " +"renvoie sa longueur et :c:func:`PyTuple_GetItem` renvoie l'élément à l'index " +"spécifié. Les listes ont des fonctions similaires, :c:func:`PyListSize` et :" +"c:func:`PyList_GetItem`." #: ../Doc/faq/extending.rst:87 msgid "" @@ -130,6 +165,10 @@ msgid "" "Note that Python bytes objects may contain null bytes so C's :c:func:" "`strlen` should not be used." msgstr "" +"Pour les bytes, :c:func:`PyBytes_Size` renvoie sa longueur et :c:func:" +"`PyBytes_AsStringAndSize` fournit un pointeur vers sa valeur et sa longueur. " +"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 msgid "" @@ -137,6 +176,9 @@ msgid "" "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." #: ../Doc/faq/extending.rst:95 msgid "" @@ -147,18 +189,26 @@ msgid "" "as many other useful protocols such as numbers (:c:func:`PyNumber_Index` et " "al.) and mappings in the PyMapping APIs." msgstr "" +"Il y a aussi une API de haut niveau pour les objets Python qui est fournie " +"par l'interface dite « abstraite » — voir ``Include/abstract.h`` pour plus " +"de détails. Elle permet l'interfaçage avec tout type de séquence Python en " +"utilisant des appels tels que :c:func:`PySequence_Length`, :c:func:" +"`PySequence_GetItem`, etc. ainsi que de nombreux autres protocoles utiles " +"tels que les nombres (:c:func:`PyNumber_Index` et autres) et les " +"correspondances dans les APIs PyMapping." #: ../Doc/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 msgid "You can't. Use :c:func:`PyTuple_Pack` instead." -msgstr "" +msgstr "Vous ne pouvez pas. Utilisez :c:func:`PyTuple_Pack` à la place." #: ../Doc/faq/extending.rst:110 msgid "How do I call an object's method from C?" -msgstr "" +msgstr "Comment puis-je appeler la méthode d'un objet à partir de C ?" #: ../Doc/faq/extending.rst:112 msgid "" @@ -167,6 +217,10 @@ msgid "" "to call, a format string like that used with :c:func:`Py_BuildValue`, and " "the argument values::" msgstr "" +"La fonction :c:func:`PyObject_CallMethod` peut être utilisée pour appeler la " +"méthode d'un objet. Les paramètres sont l'objet, le nom de la méthode à " +"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 msgid "" @@ -174,12 +228,17 @@ msgid "" "defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " "return value." msgstr "" +"Cela fonctionne pour tous les objets qui ont des méthodes — qu'elles soient " +"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 msgid "" "To call, e.g., a file object's \"seek\" method with arguments 10, 0 " "(assuming the file object pointer is \"f\")::" 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 msgid "" @@ -188,12 +247,18 @@ msgid "" "format, and to call a function with one argument, surround the argument in " "parentheses, e.g. \"(i)\"." msgstr "" +"Notez que :c:func:`PyObject_CallObject` veut *toujours* un tuple comme liste " +"d'arguments. Aussi, pour appeler une fonction sans arguments, utilisez " +"\"()\" 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 msgid "" "How do I catch the output from PyErr_Print() (or anything that prints to " "stdout/stderr)?" 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 msgid "" @@ -202,22 +267,29 @@ msgid "" "print_error, or just allow the standard traceback mechanism to work. Then, " "the output will go wherever your ``write()`` method sends it." msgstr "" +"Dans le code Python, définissez un objet qui possède la méthode ``write()``. " +"Affectez cet objet à :data:`sys.stdout` et :data:`sys.stderr`. Appelez " +"*print_error* ou faites simplement en sorte que le mécanisme standard de " +"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 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 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 msgid "How do I access a module written in Python from C?" -msgstr "" +msgstr "Comment accéder à un module écrit en Python à partir de C ?" #: ../Doc/faq/extending.rst:184 msgid "You can get a pointer to the module object as follows::" -msgstr "" +msgstr "Vous pouvez obtenir un pointeur sur l'objet module comme suit ::" #: ../Doc/faq/extending.rst:188 msgid "" @@ -227,22 +299,32 @@ msgid "" "module into any namespace -- it only ensures it has been initialized and is " "stored in :data:`sys.modules`." msgstr "" +"Si le module n'a pas encore été importé (c.-à-d. qu'il n'est pas encore " +"présent dans :data:`sys.modules`), cela initialise le module ; sinon il " +"renvoie simplement la valeur de ``sys.modules[\"\"]``. Notez " +"qu'il n'inscrit le module dans aucun espace de nommage — il s'assure " +"seulement qu'il a été initialisé et qu'il est stocké dans :data:`sys." +"modules`." #: ../Doc/faq/extending.rst:194 msgid "" "You can then access the module's attributes (i.e. any name defined in the " "module) as follows::" 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 msgid "" "Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " "module also works." msgstr "" +"Appeler :c:func:`PyObject_SetAttrString` pour assigner des valeurs aux " +"variables du module fonctionne également." #: ../Doc/faq/extending.rst:204 msgid "How do I interface to C++ objects from Python?" -msgstr "" +msgstr "Comment s'interfacer avec les objets C++ depuis Python ?" #: ../Doc/faq/extending.rst:206 msgid "" @@ -253,14 +335,22 @@ msgid "" "building a new Python type around a C structure (pointer) type will also " "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) " +"fonctionne également avec des objets en C++." #: ../Doc/faq/extending.rst:212 msgid "For C++ libraries, see :ref:`c-wrapper-software`." -msgstr "" +msgstr "Pour les bibliothèques C++, voir :ref:`c-wrapper-software`." #: ../Doc/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 msgid "" @@ -268,30 +358,40 @@ msgid "" "fails. (Fixing this requires some ugly shell script hackery, and this bug " "is so minor that it doesn't seem worth the effort.)" msgstr "" +"Le fichier *Setup* doit se terminer par une ligne vide, s'il n'y a pas de " +"ligne vide, le processus de compilation échoue (ce problème peut se régler " +"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 msgid "How do I debug an extension?" -msgstr "" +msgstr "Comment déboguer une extension ?" #: ../Doc/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." msgstr "" +"Lorsque vous utilisez GDB avec des extensions chargées dynamiquement, vous " +"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 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 msgid "Then, when you run GDB:" -msgstr "" +msgstr "Ensuite, lorsque vous exécutez GDB :" #: ../Doc/faq/extending.rst:247 msgid "" "I want to compile a Python module on my Linux system, but some files are " "missing. Why?" msgstr "" +"Je veux compiler un module Python sur mon système Linux, mais il manque " +"certains fichiers. Pourquoi ?" #: ../Doc/faq/extending.rst:249 msgid "" @@ -299,18 +399,25 @@ msgid "" "{x}/config/` directory, which contains various files required for compiling " "Python extensions." msgstr "" +"La plupart des versions pré-compilées de Python n'incluent pas le " +"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 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 msgid "For Debian, run ``apt-get install python-dev``." -msgstr "" +msgstr "Pour Debian, exécutez ``apt-get install python-dev``." #: ../Doc/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 msgid "" @@ -320,12 +427,19 @@ msgid "" "parentheses or triple string quotes), but it gives you a syntax error " "message immediately when the input is invalid." msgstr "" +"Parfois vous souhaitez émuler le comportement de l'interpréteur interactif " +"Python, quand il vous donne une invite de continuation lorsque l'entrée est " +"incomplète (par exemple, vous avez tapé le début d'une instruction \"if\" ou " +"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 msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." 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 msgid "" @@ -335,6 +449,12 @@ msgid "" "to point at your custom input function. See ``Modules/readline.c`` and " "``Parser/myreadline.c`` for more hints." msgstr "" +"La façon la plus simple de le faire en C est d'appeler :c:func:" +"`PyRun_InteractiveLoop` (peut-être dans un autre fil d'exécution) et laisser " +"l'interpréteur Python gérer l'entrée pour vous. Vous pouvez également " +"définir :c:func:`PyOS_ReadlineFunctionPointer` pour pointer vers votre " +"fonction d'entrée personnalisée. Voir ``Modules/readline.c`` et ``Parser/" +"myreadline.c`` pour plus de conseils." #: ../Doc/faq/extending.rst:276 msgid "" @@ -342,11 +462,18 @@ msgid "" "same thread as your rest application and you can't allow the :c:func:" "`PyRun_InteractiveLoop` to stop while waiting for user input. The one " "solution then is to call :c:func:`PyParser_ParseString` and test for ``e." -"error`` equal to ``E_EOF``, which means the input is incomplete). Here's a " +"error`` equal to ``E_EOF``, which means the input is incomplete. Here's a " "sample code fragment, untested, inspired by code from Alex Farber::" msgstr "" +"Cependant, vous devez parfois exécuter l'interpréteur Python intégré dans le " +"même fil d’exécution que le reste de votre application et vous ne pouvez pas " +"laisser :c:func:`PyRun_InteractiveLoop` attendre les entrées utilisateur. La " +"seule solution est alors d'appeler :c:func:`PyParser_ParseString` et de " +"tester si ``e.error`` égale ``E_EOF``, ce qui signifie que l'entrée est " +"incomplète. Voici un exemple de code, non testé, inspiré d'un code écrit par " +"Alex Farber ::" -#: ../Doc/faq/extending.rst:309 +#: ../Doc/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 " @@ -357,33 +484,56 @@ msgid "" "\". 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()``) ::" -#: ../Doc/faq/extending.rst:430 +#: ../Doc/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:432 +#: ../Doc/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 " "extension module using g++ (e.g., ``g++ -shared -o mymodule.so mymodule.o``)." msgstr "" +"Pour charger dynamiquement les modules d'extension g++, vous devez " +"recompiler Python, effectuer l'édition de liens en utilisant g++ (modifiez " +"*LINKCC* dans le *Python Modules Makefile*), et effectuer l'édition de liens " +"de votre module d'extension avec g++ (par exemple, ``g++ -shared -o mymodule." +"so mymodule.o``)." -#: ../Doc/faq/extending.rst:438 +#: ../Doc/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)?" 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:440 +#: ../Doc/faq/extending.rst:442 msgid "" "Yes, you can inherit from built-in classes such as :class:`int`, :class:" "`list`, :class:`dict`, etc." msgstr "" +"Oui, vous pouvez hériter de classes intégrées telles que :class:`int`, :" +"class:`list`, :class:`dict`, etc." -#: ../Doc/faq/extending.rst:443 +#: ../Doc/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 " "extension class written in C++ using the BPL)." msgstr "" +"La bibliothèque *Boost Python Library* (BPL, http://www.boost.org/libs/" +"python/doc/index.html) fournit un moyen de le faire depuis C++ (c.-à-d. que " +"vous pouvez hériter d'une classe d'extension écrite en C++ en utilisant BPL)." diff --git a/faq/general.po b/faq/general.po index c89b96704..1ecfe1bb7 100644 --- a/faq/general.po +++ b/faq/general.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-04 11:37+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-06-10 15:36+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/faq/general.rst:5 msgid "General Python FAQ" @@ -96,8 +96,8 @@ msgstr "" #: ../Doc/faq/general.rst:47 msgid "Are there copyright restrictions on the use of Python?" msgstr "" -"Y'a-t-il des restrictions liées à la propriété intelectuelle quant à " -"l'utilisation de Python ?" +"Existe-il des restrictions liées à la propriété intellectuelle quant à " +"l'utilisation de Python ?" #: ../Doc/faq/general.rst:49 msgid "" @@ -268,10 +268,11 @@ msgstr "" "protocoles Internet (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, script CGI), " "ingénierie logicielle (tests unitaires, enregistrement, analyse de code " "Python), et interfaces pour systèmes d'exploitation (appels système, système " -"de fichiers, *socket* TCP/IP). Regardez la table des matières :ref:`library-" -"index` pour avoir une idée de ce qui est disponible. Une gande variété de " -"greffons tiers existent aussi. Consultez `le sommaire des paquets Python " -"`_ pour trouver les paquets qui pourraient vous intéresser." +"de fichiers, connecteurs TCP/IP). Regardez la table des matières :ref:" +"`library-index` pour avoir une idée de ce qui est disponible. Une grande " +"variété de greffons tiers existent aussi. Consultez `le sommaire des paquets " +"Python `_ pour trouver les paquets qui pourraient vous " +"intéresser." #: ../Doc/faq/general.rst:125 msgid "How does the Python version numbering scheme work?" @@ -303,10 +304,10 @@ msgid "" msgstr "" "Toutes les sorties ne concernent pas la correction de bogues. A l'approche " "de la sortie d'une nouvelle version majeure, une série de versions de " -"développement sont créées, dénommées alpha, beta, *release candidate*. Les " -"alphas sont des versions primaires dans lesquelles les interfaces ne sont " -"pas encore finalisées; ce n'est pas inattendu de voir des changements " -"d'interface entre deux versions alpha. Les betas sont plus stables, " +"développement sont créées, dénommées *alpha*, *beta*, *release candidate*. " +"Les alphas sont des versions primaires dans lesquelles les interfaces ne " +"sont pas encore finalisées; ce n'est pas inattendu de voir des changements " +"d'interface entre deux versions alpha. Les *betas* sont plus stables, " "préservent les interfaces existantes mais peuvent ajouter de nouveaux " "modules, les *release candidate* sont figées, elles ne font aucun changement " "à l'exception de ceux nécessaires pour corriger des bogues critiques." @@ -320,13 +321,13 @@ msgid "" "words, all versions labeled 2.0aN precede the versions labeled 2.0bN, which " "precede versions labeled 2.0cN, and *those* precede 2.0." msgstr "" -"Les versions alpha, beta et *release candidate* ont un suffixe " +"Les versions *alpha*, *beta* et *release candidate* ont un suffixe " "supplémentaire. Le suffixe pour une version alpha est « aN » où N est un " -"petit nombre, le suffixe pour une version beta est « bN » où N est un petit " +"petit nombre, le suffixe pour une version *beta* est *bN* où N est un petit " "nombre, et le suffixe pour une *release candidate* est « cN » où N est un " -"petit nombre. En d'autres mots, toutes les versions nommées 2.0.aN 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." +"petit nombre. En d'autres mots, toutes les versions nommées *2.0.aN* " +"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 msgid "" @@ -340,7 +341,7 @@ msgstr "" "exemple « 2.2+». Ces versions sont non distribuées, construites directement " "depuis le dépôt de développement de CPython. En pratique, après la sortie " "finale d'une version mineure, la version est augmentée à la prochaine " -"version mineure, qui devient la version « a0 », c'est-à-dire « 2.4a0 »." +"version mineure, qui devient la version *a0*, c'est-à-dire *2.4a0*." #: ../Doc/faq/general.rst:153 msgid "" @@ -372,9 +373,9 @@ msgid "" "programs, and several useful pieces of freely distributable software. The " "source will compile and run out of the box on most UNIX platforms." msgstr "" -"Le code source est dans une archive *gzippée* au format tar, elle contient " +"Le code source est dans une archive *gzippée* au format *tar*, elle contient " "le code source C complet, la documentation formatée avec Sphinx, les " -"libraires Python, des exemples de programmes, et plusieurs morceux de code " +"libraires Python, des exemples de programmes, et plusieurs morceaux de code " "utiles distribuables librement. Le code source sera compilé et prêt à " "fonctionner immédiatement sur la plupart des plateformes UNIX." @@ -408,14 +409,14 @@ msgid "" "Sphinx documentation tool `__. The reStructuredText " "source for the documentation is part of the Python source distribution." msgstr "" -"La documentation est écrite au format reStructuredText et traitée par " -"l'outil de documentation Sphinx `__. La source du " -"reStructuredText pour la documentation constitue une partie des sources de " +"La documentation est écrite au format *reStructuredText* et traitée par " +"l'outil de documentation `Sphinx `__. La source du " +"*reStructuredText* pour la documentation constitue une partie des sources de " "Python." #: ../Doc/faq/general.rst:189 msgid "I've never programmed before. Is there a Python tutorial?" -msgstr "Je n'ai jamais prorgammé avant. Existe t-il un tutoriel Python ?" +msgstr "Je n'ai jamais programmé avant. Existe t-il un tutoriel Python ?" #: ../Doc/faq/general.rst:191 msgid "" @@ -464,7 +465,7 @@ msgid "" "`_." msgstr "" "Les annonces pour les nouvelles versions et événements peuvent êtres " -"trouvées dans comp.lang.python.announce, une liste diminuée peu active qui " +"trouvées dans *comp.lang.python.announce*, une liste diminuée peu active qui " "reçoit environ 5 messages par jour. C'est disponible à `liste de diffusion " "des annonces Python `_." @@ -489,16 +490,17 @@ msgid "" "python.org/; an RSS feed of news is available." msgstr "" "Les versions alpha et bêta sont disponibles depuis https://www.python.org/" -"downloads/. Toutes les versions annoncées sur comp.lang.python and comp.lang." -"python.announce newsgroups et sur la page d'accueil de Python à https://www." -"python.org/; un flux RSS de *news* est disponible." +"downloads/. Toutes les versions sont annoncées sur les *newsgroups* *comp." +"lang.python* et *comp.lang.python.announce* ainsi que sur la page d'accueil " +"de Python à https://www.python.org/; un flux RSS d'actualités y est aussi " +"disponible." #: ../Doc/faq/general.rst:225 msgid "" "You can also access the development version of Python through Git. See `The " "Python Developer's Guide `_ for details." msgstr "" -"Vous pouvez aussi accéder aux de Python en dévloppement grâce à Git. Voir " +"Vous pouvez aussi accéder aux de Python en développement grâce à Git. Voir " "`Le Guide du Développeur Python `_ pour plus " "de détails." @@ -536,7 +538,7 @@ msgid "" "For more information on how Python is developed, consult `the Python " "Developer's Guide `_." msgstr "" -"Pour davantages d'informations sur comment Python est développé, consultez " +"Pour davantage d'informations sur comment Python est développé, consultez " "`le Guide du Développeur Python `_." #: ../Doc/faq/general.rst:246 @@ -565,8 +567,8 @@ msgid "" "Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 " "(December 1991), Amsterdam, pp 283--303." msgstr "" -"Guido van Rossum et Jelke de Boer, « Interactively Testing Remote Servers " -"Using the Python Programming Language », CWI Quarterly, Volume 4, Issue 4 " +"Guido van Rossum et Jelke de Boer, « *Interactively Testing Remote Servers " +"Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 " "(December 1991), Amsterdam, pp 283--303." #: ../Doc/faq/general.rst:259 @@ -587,7 +589,7 @@ msgid "" "Monty Python references; or perhaps search for \"Python\" and \"language\"." msgstr "" "Vous pouvez aussi chercher chez les revendeurs de livres en ligne avec le " -"terme « Python » et éléminer les références concernant les Monty Python, ou " +"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 @@ -596,26 +598,19 @@ msgstr "Où www.python.org est-il localisé dans le monde ?" #: ../Doc/faq/general.rst:271 msgid "" -"The Python project's infrastructure is located all over the world. `www." -"python.org `_ is graciously hosted by `Rackspace " -"`_, with CDN caching provided by `Fastly `_. `Upfront Systems `_ " -"hosts `bugs.python.org `_. Many other Python " -"services like `the Wiki `_ are hosted by `Oregon " -"State University Open Source Lab `_." -msgstr "" -"L'infrastructure du projet Python est localisé dans le monde entier. `www." -"python.org `_ est gracieusement hébergé par " -"`Rackspace `_, avec un cache *CDN* fourni par " -"`Fastly `_. `Upfront Systems `_ héberge `bugs.python.org `_." - -#: ../Doc/faq/general.rst:282 +"The Python project's infrastructure is located all over the world and is " +"managed by the Python Infrastructure Team. Details `here `__." +msgstr "" +"L'infrastructure du projet Python est située dans le monde entier et est " +"gérée par l'équipe de l'infrastructure Python. Plus de détails `ici `__." + +#: ../Doc/faq/general.rst:276 msgid "Why is it called Python?" msgstr "Pourquoi le nom Python ?" -#: ../Doc/faq/general.rst:284 +#: ../Doc/faq/general.rst:278 msgid "" "When he began implementing Python, Guido van Rossum was also reading the " "published scripts from `\"Monty Python's Flying Circus\" `_. There are two recommended production-" -"ready versions at this point in time, because at the moment there are two " -"branches of stable releases: 2.x and 3.x. Python 3.x may be less useful " -"than 2.x, since currently there is more third party software available for " -"Python 2 than for Python 3. Python 2 code will generally not run unchanged " -"in Python 3." +"`_. There are two production-ready " +"versions of Python: 2.x and 3.x. The recommended version is 3.x, which is " +"supported by most widely used libraries. Although 2.x is still widely used, " +"`it will not be maintained after January 1, 2020 `_." msgstr "" "Les dernières versions stables peuvent toujours être trouvées sur la `page " -"de téléchargement Python `_. Il y a deux " -"versions prêtes à l'emploi recommandées en ce moment, parce qu'il y a deux " -"branches stables : 2.x et 3.x. Python 3.x devrait être moins utile que 2.x, " -"étant donné qu'actuellement il y a plus de paquets tiers disponibles pour " -"Python 2 que pour Python 3. Le code Python 2 ne fonctionnera généralement " -"pas sans changement sous Python 3." - -#: ../Doc/faq/general.rst:323 +"de téléchargement Python `_. Il existe " +"deux versions stables de Python : 2.x et 3.x, mais seule la version 3 est " +"recommandée, c'est celle qui est compatible avec les bibliothèques les plus " +"largement utilisées. Bien que Python 2 soit encore utilisé, `il ne sera plus " +"maintenu après le 1er janvier 2020 `_." + +#: ../Doc/faq/general.rst:315 msgid "How many people are using Python?" msgstr "Combien de personnes utilisent Python ?" -#: ../Doc/faq/general.rst:325 +#: ../Doc/faq/general.rst:317 msgid "" "There are probably tens of thousands of users, though it's difficult to " "obtain an exact count." @@ -702,7 +696,7 @@ msgstr "" "Il y a probablement des dizaines de milliers d'utilisateurs, cependant c'est " "difficile d'obtenir un nombre exact." -#: ../Doc/faq/general.rst:328 +#: ../Doc/faq/general.rst:320 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 " @@ -710,22 +704,22 @@ msgid "" msgstr "" "Python est disponible en téléchargement gratuit, donc il n'y a pas de " "chiffres de ventes, il est disponible depuis de nombreux sites différents et " -"il est inclus avec de beaucoup de distributions Linux, donc les " -"statistisques de téléchargement ne donnent pas la totalité non plus." +"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:332 +#: ../Doc/faq/general.rst:324 msgid "" "The comp.lang.python newsgroup is very active, but not all Python users post " "to the group or even read it." msgstr "" -"Le forum comp.lang.python est très actif, mais tous les utilisateurs de " +"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:337 +#: ../Doc/faq/general.rst:329 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:339 +#: ../Doc/faq/general.rst:331 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 `_. Plusieurs distributions Linux, notamment `Red Hat `_, qui a écrit tout ou partie de son installateur et de son " "logiciel d'administration système en Python. Les entreprises qui utilisent " -"Python en interne comprennent Google, Yahoo, and Lucasfilm Ltd." +"Python en interne comprennent Google, Yahoo, et Lucasfilm Ltd." -#: ../Doc/faq/general.rst:353 +#: ../Doc/faq/general.rst:345 msgid "What new developments are expected for Python in the future?" msgstr "Quelles sont les nouveautés en développement attendues pour Python ?" -#: ../Doc/faq/general.rst:355 +#: ../Doc/faq/general.rst:347 msgid "" "See https://www.python.org/dev/peps/ for the Python Enhancement Proposals " "(PEPs). PEPs are design documents describing a suggested new feature for " @@ -766,14 +760,14 @@ msgid "" "for a PEP titled \"Python X.Y Release Schedule\", where X.Y is a version " "that hasn't been publicly released yet." msgstr "" -"Regardez https://www.python.org/dev/peps/ pour Python Enhancement Proposals " -"(PEPs). PEPs sont des documents techniques qui décrivent une nouvelle " -"fonctionnalité qui a été suggérée pour Python, en fournissant une " -"spécification technique concise et logique. Recherchez une PEP intitulée " -"\"Python X.Y Release Schedule\", où X.Y est la version qui n'a pas encore " -"été publiée." +"Regardez les propositions d'amélioration de Python (« *Python Enhancement " +"Proposals* », ou *PEP*) sur https://www.python.org/dev/peps/. Les PEP sont " +"des documents techniques qui décrivent une nouvelle fonctionnalité qui a été " +"suggérée pour Python, en fournissant une spécification technique concise et " +"logique. Recherchez une PEP intitulée \"Python X.Y Release Schedule\", où X." +"Y est la version qui n'a pas encore été publiée." -#: ../Doc/faq/general.rst:361 +#: ../Doc/faq/general.rst:353 msgid "" "New development is discussed on `the python-dev mailing list `_." @@ -781,12 +775,12 @@ msgstr "" "Le nouveau développement est discuté sur `la liste de diffusion python-dev " "`_." -#: ../Doc/faq/general.rst:366 +#: ../Doc/faq/general.rst:358 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:368 +#: ../Doc/faq/general.rst:360 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 " @@ -803,7 +797,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:375 +#: ../Doc/faq/general.rst:367 msgid "" "Providing a gradual upgrade path is necessary if a feature has to be " "changed. :pep:`5` describes the procedure followed for introducing backward-" @@ -812,17 +806,17 @@ msgstr "" "En fournissant un rythme de mise à jour progressif qui est obligatoire si " "une fonctionnalité doit être changée." -#: ../Doc/faq/general.rst:381 +#: ../Doc/faq/general.rst:373 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:383 +#: ../Doc/faq/general.rst:375 msgid "Yes." msgstr "Oui." -#: ../Doc/faq/general.rst:385 +#: ../Doc/faq/general.rst:377 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 " @@ -846,7 +840,7 @@ msgstr "" "peuvent même probablement travailler avec des objets définis dans leurs " "premiers cours." -#: ../Doc/faq/general.rst:395 +#: ../Doc/faq/general.rst:387 msgid "" "For a student who has never programmed before, using a statically typed " "language seems unnatural. It presents additional complexity that the " @@ -866,7 +860,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:403 +#: ../Doc/faq/general.rst:395 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 " @@ -881,15 +875,15 @@ msgstr "" "De nombreux autres aspects de Python en font un bon premier langage. Comme " "Java, Python a une large bibliothèque standard donc les étudiants peuvent " "être assigner à la programmation de projets très tôt dans leur apprentissage " -"qui *fait* quelque chose. Les missions ne sont pas restreintes aux quatres " +"qui *fait* quelque chose. Les missions ne sont pas restreintes aux quatre " "fonction standards. En utilisant la bibliothèque standard, les étudiants " "peuvent ressentir de la satisfaction en travaillant sur des applications " -"réalistes alors qu'ils apprenent les fondamentaux de la programmation. " +"réalistes alors qu'ils apprennent les fondamentaux de la programmation. " "Utiliser la bibliothèque standard apprend aussi aux étudiants la " "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:412 +#: ../Doc/faq/general.rst:404 msgid "" "Python's interactive interpreter enables students to test language features " "while they're programming. They can keep a window with the interpreter " @@ -900,10 +894,10 @@ msgstr "" "fonctionnalités du langage pendant qu'ils programment. Ils peuvent garder " "une fenêtre avec l'interpréteur en fonctionnement pendant qu'ils rentrent la " "source de leur programme dans une autre fenêtre. S'ils ne peuvent pas se " -"souvenir des méthodes pour une listen, ils peuvent faire quelque chose comme " +"souvenir des méthodes pour une liste, ils peuvent faire quelque chose comme " "ça ::" -#: ../Doc/faq/general.rst:441 +#: ../Doc/faq/general.rst:433 msgid "" "With the interpreter, documentation is never far from the student as they " "are programming." @@ -911,7 +905,7 @@ msgstr "" "Avec l'interpréteur, la documentation n'est jamais loin des étudiants quand " "ils travaillent." -#: ../Doc/faq/general.rst:444 +#: ../Doc/faq/general.rst:436 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-" @@ -923,7 +917,7 @@ msgid "" msgstr "" "Il y a aussi de bons environnements de développement intégrés (EDIs) pour " "Python. IDLE est un EDI multiplateforme pour Python qui est écrit en Python " -"en utilisant Tkinter. PythonWin est EDI spécifique à Windows. Les " +"en utilisant Tkinter. *PythonWin* est un IDE spécifique à Windows. Les " "utilisateurs d'Emcs seront heureux d'apprendre qu'il y a un très bon mode " "Python pour Emacs. Tous ces environnements de développement intégrés " "fournissent la coloration syntaxique, l'auto-indentation, et l'accès à " @@ -931,12 +925,12 @@ msgstr "" "`_ pour une liste complète des " "environnements de développement intégrés." -#: ../Doc/faq/general.rst:452 +#: ../Doc/faq/general.rst:444 msgid "" "If you want to discuss Python's use in education, you may be interested in " "joining `the edu-sig mailing list `_." msgstr "" -"Si vous voulez discuter de l'usage fe Python dans l'éducation, vous devriez " +"Si vous voulez discuter de l'usage de Python dans l'éducation, vous devriez " "intéressé pour rejoindre `la liste de diffusion pour l'enseignement `_." diff --git a/faq/gui.po b/faq/gui.po index 29dd0f7c0..a162dab79 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -5,12 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-03 20:55+0200\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-06 11:31+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/faq/gui.rst:5 msgid "Graphic User Interface FAQ" @@ -26,7 +29,9 @@ msgstr "Questions générales sur l'interface graphique" #: ../Doc/faq/gui.rst:18 msgid "What platform-independent GUI toolkits exist for Python?" -msgstr "Quelles boites à outils multi-platforme existe-t-il sur Python ?" +msgstr "" +"Quelles bibliothèques d'interfaces graphiques multi-plateformes existent en " +"Python ?" #: ../Doc/faq/gui.rst:20 msgid "" @@ -35,12 +40,12 @@ msgid "" "known to be Python 3-compatible." msgstr "" "Selon les plateformes que vous comptez utiliser, il en existe plusieurs. " -"Certaines ne sont cependant pas encore disponible en Python 3. A minima, " -"`Tkinter`_ et `Qt`_ sont connus pour être compatible avec Python 3." +"Certaines ne sont cependant pas encore disponibles en Python 3. A minima, " +"`Tkinter`_ et `Qt`_ sont connus pour être compatibles avec Python 3." #: ../Doc/faq/gui.rst:27 msgid "Tkinter" -msgstr "Tkinter" +msgstr "*Tkinter*" #: ../Doc/faq/gui.rst:29 msgid "" @@ -52,10 +57,18 @@ msgid "" "tk>`_. Tcl/Tk is fully portable to the Mac OS X, Windows, and Unix " "platforms." msgstr "" +"Les versions standards de Python incluent une interface orientée objet pour " +"le jeu d'objets graphiques *Tcl/Tk*, appelée :ref:`tkinter `. " +"C'est probablement la plus facile à installer (puisqu'elle est incluse avec " +"la plupart des `distributions binaires `_ " +"de Python) et à utiliser. Pour plus d'informations sur *Tk*, y compris les " +"liens vers les sources, voir la page d'accueil `Tcl/Tk `_. *Tcl/Tk* est entièrement portable sur les plates-formes Mac OS X, " +"Windows et Unix." #: ../Doc/faq/gui.rst:38 msgid "wxWidgets" -msgstr "wxWidgets" +msgstr "*wxWidgets*" #: ../Doc/faq/gui.rst:40 msgid "" @@ -65,6 +78,11 @@ msgid "" "targets. Language bindings are available for a number of languages " "including Python, Perl, Ruby, etc." msgstr "" +"`wxWidgets` (https://www.wxwidgets.org) est une librairie de classe IUG " +"portable et gratuite écrite en C++ qui fournit une apparence native sur un " +"certain nombre de plates-formes, elle est notamment en version stable pour " +"Windows, Mac OS X, GTK et X11. Des clients sont disponibles pour un certain " +"nombre de langages, y compris Python, Perl, Ruby, etc." #: ../Doc/faq/gui.rst:46 msgid "" @@ -74,11 +92,11 @@ msgid "" "available in other language bindings. There is an active wxPython user and " "developer community." msgstr "" -"`wxPython `_ est le portage Python de wxWidgets. " +"`wxPython `_ est le portage Python de *wxWidgets*. " "Bien qu’il soit légèrement en retard sur les versions officielles de " -"wxWidgets, il offre également des fonctionnalités propres à Python qui ne " -"sont pas disponibles pour les autres langages. WxPython dispose de plus, " -"d’une communauté d’utilisateurs et de développeurs active." +"*wxWidgets*, il offre également des fonctionnalités propres à Python qui ne " +"sont pas disponibles pour les clients d'autres langages. *WxPython* dispose " +"de plus, d’une communauté d’utilisateurs et de développeurs active." #: ../Doc/faq/gui.rst:52 msgid "" @@ -86,10 +104,14 @@ msgid "" "licences that allow their use in commercial products as well as in freeware " "or shareware." msgstr "" +"*wxWidgets* et *wxPython* sont tous deux des logiciels libres, open source, " +"avec des licences permissives qui permettent leur utilisation dans des " +"produits commerciaux ainsi que dans des logiciels gratuits ou contributifs " +"(*shareware*)." #: ../Doc/faq/gui.rst:58 msgid "Qt" -msgstr "" +msgstr "*Qt*" #: ../Doc/faq/gui.rst:60 msgid "" @@ -101,16 +123,26 @@ msgid "" "com/commercial/license-faq>`_ if you want to write proprietary " "applications. PySide is free for all applications." msgstr "" +"Il existe des liens disponibles pour la boîte à outils *Qt* (en utilisant " +"soit `PyQt `_ ou `PySide " +"`_) et pour *KDE* (`PyKDE4 `__). *PyQt* est actuellement plus mûre " +"que *PySide*, mais*PyQt* nécessite d'acheter une licence de `Riverbank " +"Computing `_ si " +"vous voulez écrire des applications propriétaires. *PySide* est gratuit " +"pour toutes les applications." #: ../Doc/faq/gui.rst:67 msgid "" "Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses " "are available from `The Qt Company `_." msgstr "" +"*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales sont " +"disponibles auprès de `The Qt Company `_." #: ../Doc/faq/gui.rst:71 msgid "Gtk+" -msgstr "" +msgstr "*Gtk+*" #: ../Doc/faq/gui.rst:73 msgid "" @@ -119,16 +151,23 @@ msgid "" "also a `Python GTK+ 3 Tutorial `_." msgstr "" +"Les `GObject introspection bindings `_ pour Python vous permettent d'écrire des applications GTK+ 3. " +"Il y a aussi un tutoriel `Python GTK+ 3 `_." #: ../Doc/faq/gui.rst:77 msgid "" "The older PyGtk bindings for the `Gtk+ 2 toolkit `_ " "have been implemented by James Henstridge; see ." msgstr "" +"Les anciennes versions de *PyGtk* pour le `Gtk+ 2 toolkit `_ ont été implémentées par James Henstridge ; voir ." #: ../Doc/faq/gui.rst:81 msgid "Kivy" -msgstr "" +msgstr "*Kivy*" #: ../Doc/faq/gui.rst:83 msgid "" @@ -137,15 +176,20 @@ msgid "" "(Android, iOS). It is written in Python and Cython, and can use a range of " "windowing backends." msgstr "" +"`*Kivy* `_ est une bibliothèque GUI multi-plateformes " +"disponible à la fois sur les systèmes d'exploitation de bureau (Windows, " +"MacOS, Linux) et les appareils mobiles (Android, iOS). Elle est écrite en " +"Python et Cython, et peut utiliser une série de fenêtres de *backends*." #: ../Doc/faq/gui.rst:88 msgid "" "Kivy is free and open source software distributed under the MIT license." msgstr "" +"*Kivy* est un logiciel libre et open source distribué sous licence MIT." #: ../Doc/faq/gui.rst:91 msgid "FLTK" -msgstr "" +msgstr "*FLTK*" #: ../Doc/faq/gui.rst:93 msgid "" @@ -153,24 +197,33 @@ msgid "" "powerful and mature cross-platform windowing system, are available from `the " "PyFLTK project `_." msgstr "" +"Les liaisons Python pour `the FLTK toolkit `_, un " +"système de fenêtrage multi-plateformes simple mais puissant et mûr, sont " +"disponibles auprès de `the PyFLTK project `_." #: ../Doc/faq/gui.rst:98 msgid "OpenGL" -msgstr "" +msgstr "*OpenGL*" #: ../Doc/faq/gui.rst:100 msgid "For OpenGL bindings, see `PyOpenGL `_." msgstr "" +"Pour les clients OpenGL, voir `PyOpenGL `_." #: ../Doc/faq/gui.rst:104 msgid "What platform-specific GUI toolkits exist for Python?" msgstr "" +"Quelles boîtes à outils IUG spécifiques à la plate-forme existent pour " +"Python ?" #: ../Doc/faq/gui.rst:106 msgid "" -"By installing the `PyObjc Objective-C bridge `_, Python programs can use Mac OS X's Cocoa libraries." msgstr "" +"En installant le `PyObjc Objective-C bridge `_, les programmes Python peuvent utiliser les bibliothèques Cocoa de Mac " +"OS X." #: ../Doc/faq/gui.rst:110 msgid "" @@ -178,14 +231,17 @@ msgid "" "Microsoft Foundation Classes and a Python programming environment that's " "written mostly in Python using the MFC classes." msgstr "" +":ref:`Pythonwin ` de Mark Hammond inclut une interface vers les " +"classes `Microsoft Foundation Classes` et un environnement de programmation " +"Python qui est écrit principalement en Python utilisant les classes *MFC*." #: ../Doc/faq/gui.rst:116 msgid "Tkinter questions" -msgstr "" +msgstr "Questions à propos de *Tkinter*" #: ../Doc/faq/gui.rst:119 msgid "How do I freeze Tkinter applications?" -msgstr "" +msgstr "Comment puis-je geler (*freezer*) les applications *Tkinter* ?" #: ../Doc/faq/gui.rst:121 msgid "" @@ -193,6 +249,10 @@ msgid "" "applications, the applications will not be truly stand-alone, as the " "application will still need the Tcl and Tk libraries." msgstr "" +"*Freeze* est un outil pour créer des applications autonomes. Lors du " +"*freezage* des applications Tkinter, les applications ne seront pas vraiment " +"autonomes, car l'application aura toujours besoin des bibliothèques Tcl et " +"Tk." #: ../Doc/faq/gui.rst:125 msgid "" @@ -200,6 +260,9 @@ msgid "" "point to them at run-time using the :envvar:`TCL_LIBRARY` and :envvar:" "`TK_LIBRARY` environment variables." msgstr "" +"Une solution consiste à empaqueter les bibliothèques *Tcl* et *Tk* dans " +"l'application et de les retrouver à l'exécution en utilisant les variables " +"d'environnement :envvar:`TCL_LIBRARY` et :envvar:`TK_LIBRARY`." #: ../Doc/faq/gui.rst:129 msgid "" @@ -208,6 +271,10 @@ msgid "" "is SAM (stand-alone modules), which is part of the Tix distribution (http://" "tix.sourceforge.net/)." msgstr "" +"Pour obtenir des applications vraiment autonomes, les scripts *Tcl* qui " +"forment la bibliothèque doivent également être intégrés dans l'application. " +"Un outil supportant cela est *SAM* (modules autonomes), qui fait partie de " +"la distribution *Tix* (http://tix.sourceforge.net/)." #: ../Doc/faq/gui.rst:134 msgid "" @@ -215,10 +282,14 @@ msgid "" "`Tclsam_init`, etc. inside Python's :file:`Modules/tkappinit.c`, and link " "with libtclsam and libtksam (you might include the Tix libraries as well)." msgstr "" +"Compilez Tix avec SAM activé, exécutez l'appel approprié à :c:func:" +"`Tclsam_init`, etc. dans le fichier :file:`Modules/tkappinit.c` de Python, " +"et liez avec *libtclsam* et *libtksam* (il est également possible d'inclure " +"les bibliothèques *Tix*)." #: ../Doc/faq/gui.rst:141 msgid "Can I have Tk events handled while waiting for I/O?" -msgstr "" +msgstr "Puis-je modifier des événements *Tk* pendant l'écoute des *E/S* ?" #: ../Doc/faq/gui.rst:143 msgid "" @@ -228,10 +299,18 @@ msgid "" "function which will be called from the Tk mainloop when I/O is possible on a " "file descriptor. See :ref:`tkinter-file-handlers`." msgstr "" +"Sur d'autres plates-formes que Windows, oui, et vous n'avez même pas besoin " +"de fils d'exécution multiples ! Mais vous devrez restructurer un peu votre " +"code *E/S*. *Tk* possède l'équivalent de l'appel :c:func:`XtAddInput()` de " +"*Xt*, qui vous permet d'enregistrer une fonction de *callback* qui sera " +"appelée par la boucle principale *Tk* lorsque des *E/S* sont disponibles sur " +"un descripteur de fichier. Voir :ref:`tkinter-file-handlers`." #: ../Doc/faq/gui.rst:151 msgid "I can't get key bindings to work in Tkinter: why?" msgstr "" +"Je n'arrive pas à faire fonctionner les raccourcis clavier dans *Tkinter* : " +"pourquoi ?" #: ../Doc/faq/gui.rst:153 msgid "" @@ -239,6 +318,9 @@ msgid "" "meth:`bind` method don't get handled even when the appropriate key is " "pressed." msgstr "" +"Une raison récurrente est que les gestionnaires d’évènements liés à des " +"évènements avec la méthode :meth:`bind` ne sont pas pris en charge même " +"lorsque la touche appropriée est activée." #: ../Doc/faq/gui.rst:156 msgid "" @@ -247,3 +329,8 @@ msgid "" "focus command. Usually a widget is given the keyboard focus by clicking in " "it (but not for labels; see the takefocus option)." msgstr "" +"La cause la plus fréquente est que l'objet graphique auquel s'applique la " +"liaison n'a pas de « focus clavier ». Consultez la documentation *Tk* pour " +"la commande *focus*. Habituellement, un objet graphique reçoit le focus du " +"clavier en cliquant dessus (mais pas pour les étiquettes ; voir l'option " +"*takefocus*)." diff --git a/faq/installed.po b/faq/installed.po index 3911764e1..2c39ba32e 100644 --- a/faq/installed.po +++ b/faq/installed.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-01 13:21+0200\n" -"PO-Revision-Date: 2018-08-14 23:40+0200\n" +"PO-Revision-Date: 2018-10-04 16:57+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/faq/installed.rst:3 msgid "\"Why is Python Installed on my Computer?\" FAQ" -msgstr "\"Pourquoi Python est installé sur mon ordinateur ?\" FAQ" +msgstr "FAQ \"Pourquoi Python est installé sur mon ordinateur ?\"" #: ../Doc/faq/installed.rst:6 msgid "What is Python?" @@ -78,7 +78,7 @@ msgstr "" "Une application tierce installée sur votre machine écrite en Python " "installera Python. Il existe de nombreuses applications de ce type, allant " "de programme avec interface graphique, jusqu'aux scripts d'administration, " -"en passant par les serveurs ." +"en passant par les serveurs." #: ../Doc/faq/installed.rst:29 msgid "" @@ -98,7 +98,7 @@ msgid "" "installation." msgstr "" "Python est installé par défaut et à l'installation par de nombreux systèmes " -"Unix, comme Mac OS X et certaines distributions Linux." +"Unix, comme Mac OS X et certaines distributions Linux." #: ../Doc/faq/installed.rst:38 msgid "Can I delete Python?" @@ -106,7 +106,7 @@ msgstr "Puis-je supprimer Python ?" #: ../Doc/faq/installed.rst:40 msgid "That depends on where Python came from." -msgstr "Cela dépend de l'origine de Python ." +msgstr "Cela dépend de l'origine de Python." #: ../Doc/faq/installed.rst:42 msgid "" @@ -126,8 +126,8 @@ msgid "" msgstr "" "Si Python a été installé par une application tierce, Python peut être " "désinstallé, l'application l'ayant installé cessera alors de fonctionner. " -"Dans ce cas, désinstallez l'application en utilisant son désinstalateur est " -"plus indiqué que supprimer Python." +"Dans ce cas, désinstallez l'application en utilisant son outil de " +"désinstallation est plus indiqué que supprimer Python." #: ../Doc/faq/installed.rst:49 msgid "" diff --git a/faq/library.po b/faq/library.po index 9794423f8..ae422f258 100644 --- a/faq/library.po +++ b/faq/library.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-02-15 00:37+0100\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-08-22 22:17+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.0.6\n" #: ../Doc/faq/library.rst:5 msgid "Library and Extension FAQ" -msgstr "FAQ sur la bibliothèque et les extension" +msgstr "FAQ sur la bibliothèque et les extensions" #: ../Doc/faq/library.rst:8 msgid "Contents" @@ -29,8 +30,7 @@ msgstr "Questions générales sur la bibliothèque" #: ../Doc/faq/library.rst:15 msgid "How do I find a module or application to perform task X?" msgstr "" -"Comment puis-je trouver un module ou une application pour exécuter la tâche " -"X?" +"Comment trouver un module ou une application pour effectuer la tâche X ?" #: ../Doc/faq/library.rst:17 msgid "" @@ -38,6 +38,9 @@ msgid "" "relevant standard library module. (Eventually you'll learn what's in the " "standard library and will be able to skip this step.)" msgstr "" +"Regardez si la :ref:`bibliothèque standard ` contient un " +"module approprié (avec l'expérience, vous connaitrez le contenu de la " +"bibliothèque standard et pourrez sauter cette étape)." #: ../Doc/faq/library.rst:21 msgid "" @@ -46,10 +49,17 @@ msgid "" "engine. Searching for \"Python\" plus a keyword or two for your topic of " "interest will usually find something helpful." msgstr "" +"Pour des paquets tiers, regardez dans `l'index des paquets Python `_ ou essayez `Google `_ ou un autre moteur " +"de recherche (NDT : comme le moteur français `Qwant `_). Rechercher « Python » accompagné d'un ou deux mots-clés se " +"rapportant à ce qui vous intéresse donne souvent de bons résultats." #: ../Doc/faq/library.rst:28 msgid "Where is the math.py (socket.py, regex.py, etc.) source file?" -msgstr "Où se situe le fichier source math.py (socket.py, regex.py, etc.)?" +msgstr "" +"Où sont stockés les fichiers sources *math.py*, *socket.py*, *regex.py*, " +"etc ?" #: ../Doc/faq/library.rst:30 msgid "" @@ -59,30 +69,39 @@ msgid "" "file:`mathmodule.c`, somewhere in a C source directory (not on the Python " "Path)." msgstr "" +"Si vous ne parvenez pas à trouver le fichier source d'un module, c'est peut-" +"être parce que celui-ci est un module natif ou bien un module implémenté en " +"C, C++, ou autre langage compilé, qui est chargé dynamiquement. Dans ce cas, " +"vous ne possédez peut-être pas le fichier source ou celui-ci est en réalité " +"stocké quelque part dans un dossier de fichiers source C (qui ne sera pas " +"dans le chemin Python), comme par exemple :file:`mathmodule.c`." #: ../Doc/faq/library.rst:35 msgid "There are (at least) three kinds of modules in Python:" -msgstr "Il y a (au moins) trois types de modules dans Python" +msgstr "Il y a (au moins) trois types de modules dans Python :" #: ../Doc/faq/library.rst:37 msgid "modules written in Python (.py);" -msgstr "modules écrits en Python (.py);" +msgstr "les modules écrits en Python (*.py*) ;" #: ../Doc/faq/library.rst:38 msgid "" "modules written in C and dynamically loaded (.dll, .pyd, .so, .sl, etc);" msgstr "" -"modules écrits en C et chargés dynamiquement (.dll, .pyd, .so, .sl, .etc);" +"les modules écrits en C et chargés dynamiquement (*.dll*, *.pyd*, *.so*, *." +"sl*, *etc.*) ;" #: ../Doc/faq/library.rst:39 msgid "" "modules written in C and linked with the interpreter; to get a list of " "these, type::" msgstr "" +"les modules écrits en C et liés à l'interpréteur ; pour obtenir leur liste, " +"entrez ::" #: ../Doc/faq/library.rst:47 msgid "How do I make a Python script executable on Unix?" -msgstr "" +msgstr "Comment rendre un script Python exécutable sous Unix ?" #: ../Doc/faq/library.rst:49 msgid "" @@ -90,24 +109,31 @@ msgid "" "first line must begin with ``#!`` followed by the path of the Python " "interpreter." msgstr "" +"Deux conditions doivent être remplies : les droits d'accès au fichier " +"doivent permettre son exécution et la première ligne du script doit " +"commencer par ``#!`` suivi du chemin vers l'interpréteur Python." #: ../Doc/faq/library.rst:53 msgid "" "The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod " "755 scriptfile``." msgstr "" +"La première condition est remplie en exécutant ``chmod +x scriptfile`` ou " +"``chmod 755 scriptfile``." #: ../Doc/faq/library.rst:56 msgid "" "The second can be done in a number of ways. The most straightforward way is " "to write ::" msgstr "" +"Il y a plusieurs façons de remplir la seconde. La plus simple consiste à " +"écrire au tout début du fichier ::" #: ../Doc/faq/library.rst:61 msgid "" "as the very first line of your file, using the pathname for where the Python " "interpreter is installed on your platform." -msgstr "" +msgstr "en utilisant le chemin de l'interpréteur Python sur votre machine." #: ../Doc/faq/library.rst:64 msgid "" @@ -116,6 +142,11 @@ msgid "" "variants support the following, assuming the Python interpreter is in a " "directory on the user's :envvar:`PATH`::" msgstr "" +"Pour rendre ce script indépendant de la localisation de l'interpréteur " +"Python, il faut utiliser le programme :program:`env`. La ligne ci-dessous " +"fonctionne sur la quasi-totalité des dérivés de Unix, à condition que " +"l'interpréteur Python soit dans un dossier référencé dans la variable :" +"envvar:`PATH` de l'utilisateur ::" #: ../Doc/faq/library.rst:71 msgid "" @@ -123,6 +154,9 @@ msgid "" "scripts is often very minimal, so you need to use the actual absolute " "pathname of the interpreter." msgstr "" +"Ne faites *pas* ceci pour des scripts CGI. La variable :envvar:`PATH` des " +"scripts CGI est souvent très succincte, il faut par conséquent préciser le " +"chemin absolu réel de l'interpréteur." #: ../Doc/faq/library.rst:75 msgid "" @@ -130,16 +164,22 @@ msgid "" "env` program fails; or there's no env program at all. In that case, you can " "try the following hack (due to Alex Rezinsky):" msgstr "" +"Il peut arriver que l'environnement d'un utilisateur soit si chargé que le " +"programme :program:`/usr/bin/env` échoue ; ou que le programme *env* " +"n'existe pas du tout. Dans ce cas, vous pouvez utiliser l'astuce suivante, " +"élaborée par Alex Rezinsky :" #: ../Doc/faq/library.rst:86 msgid "" "The minor disadvantage is that this defines the script's __doc__ string. " "However, you can fix that by adding ::" msgstr "" +"Le léger inconvénient est que cela définit la variable *__doc__* du script. " +"Cependant, il est possible de corriger cela en ajoutant ::" #: ../Doc/faq/library.rst:94 msgid "Is there a curses/termcap package for Python?" -msgstr "" +msgstr "Existe-t'il un module *curse* ou *termcap* en Python ?" #: ../Doc/faq/library.rst:98 msgid "" @@ -148,6 +188,10 @@ msgid "" "compiled by default. (Note that this is not available in the Windows " "distribution -- there is no curses module for Windows.)" msgstr "" +"Pour les dérivés d'Unix : la distribution standard de Python contient un " +"module *curses* dans le sous-dossier :source:`Modules`, bien qu'il ne soit " +"pas compilé par défaut. Il n'est pas disponible en Windows — le module " +"*curses* n'existant pas en Windows." #: ../Doc/faq/library.rst:103 msgid "" @@ -158,44 +202,57 @@ msgid "" "but there don't seem to be any currently maintained OSes that fall into this " "category." msgstr "" +"Le module :mod:`curses` comprend les fonctionnalités de base de *curses* et " +"beaucoup de fonctionnalités supplémentaires provenant de *ncurses* et de " +"*SYSV curses* comme la couleur, la gestion des ensembles de caractères " +"alternatifs, la prise en charge du pavé tactile et de la souris. Cela " +"implique que le module n'est pas compatible avec des systèmes d'exploitation " +"qui n'ont que le *curses* de BSD mais, de nos jours, de tels systèmes " +"d'exploitation ne semblent plus exister ou être maintenus." #: ../Doc/faq/library.rst:109 msgid "" "For Windows: use `the consolelib module `_." msgstr "" +"Pour Windows : utilisez le module `consolelib `_." #: ../Doc/faq/library.rst:114 msgid "Is there an equivalent to C's onexit() in Python?" -msgstr "" +msgstr "Existe-t'il un équivalent à la fonction C ``onexit()`` en Python ?" #: ../Doc/faq/library.rst:116 msgid "" "The :mod:`atexit` module provides a register function that is similar to " "C's :c:func:`onexit`." msgstr "" +"Le module :mod:`atexit` fournit une fonction d'enregistrement similaire à la " +"fonction C :c:func:`onexit`." #: ../Doc/faq/library.rst:121 msgid "Why don't my signal handlers work?" -msgstr "" +msgstr "Pourquoi mes gestionnaires de signaux ne fonctionnent-t'ils pas ?" #: ../Doc/faq/library.rst:123 msgid "" "The most common problem is that the signal handler is declared with the " "wrong argument list. It is called as ::" msgstr "" +"Le problème le plus courant est d'appeler le gestionnaire de signaux avec " +"les mauvais arguments. Un gestionnaire est appelé de la façon suivante ::" #: ../Doc/faq/library.rst:128 msgid "so it should be declared with two arguments::" -msgstr "" +msgstr "donc il doit être déclaré avec deux paramètres ::" #: ../Doc/faq/library.rst:135 msgid "Common tasks" -msgstr "" +msgstr "Tâches fréquentes" #: ../Doc/faq/library.rst:138 msgid "How do I test a Python program or component?" -msgstr "" +msgstr "Comment tester un programme ou un composant Python ?" #: ../Doc/faq/library.rst:140 msgid "" @@ -203,12 +260,17 @@ msgid "" "examples in the docstrings for a module and runs them, comparing the output " "with the expected output given in the docstring." msgstr "" +"Python fournit deux cadriciels de test. Le module :mod:`doctest` cherche des " +"exemples dans les *docstrings* d'un module et les exécute. Il compare alors " +"la sortie avec la sortie attendue, telle que définie dans la *docstring*." #: ../Doc/faq/library.rst:144 msgid "" "The :mod:`unittest` module is a fancier testing framework modelled on Java " "and Smalltalk testing frameworks." msgstr "" +"Le module :mod:`unittest` est un cadriciel un peu plus élaboré basé sur les " +"cadriciels de test de Java et de Smalltalk." #: ../Doc/faq/library.rst:147 msgid "" @@ -220,14 +282,23 @@ msgid "" "avoid depending on mutating global variables, since this makes testing much " "more difficult to do." msgstr "" +"Pour rendre le test plus aisé, il est nécessaire de bien découper le code " +"d'un programme. Votre programme doit avoir la quasi-totalité des " +"fonctionnalités dans des fonctions ou des classes — et ceci a parfois " +"l'avantage aussi plaisant qu'inattendu de rendre le programme plus rapide, " +"les accès aux variables locales étant en effet plus rapides que les accès " +"aux variables globales. De plus le programme doit éviter au maximum de " +"manipuler des variables globales, car ceci rend le test beaucoup plus " +"difficile." #: ../Doc/faq/library.rst:155 msgid "The \"global main logic\" of your program may be as simple as ::" msgstr "" +"La « logique générale » d'un programme devrait être aussi simple que ::" #: ../Doc/faq/library.rst:160 msgid "at the bottom of the main module of your program." -msgstr "" +msgstr "à la fin du module principal du programme." #: ../Doc/faq/library.rst:162 msgid "" @@ -240,12 +311,24 @@ msgid "" "the \"production code\", since this makes it easy to find bugs and even " "design flaws earlier." msgstr "" +"Une fois que la logique du programme est implémentée par un ensemble de " +"fonctions et de comportements de classes, il faut écrire des fonctions de " +"test qui vont éprouver cette logique. À chaque module, il est possible " +"d'associer une suite de tests qui joue de manière automatique un ensemble de " +"tests. Au premier abord, il semble qu'il faille fournir un effort " +"conséquent, mais comme Python est un langage concis et flexible, c'est " +"surprenamment aisé. Écrire simultanément le code « de production » et les " +"fonctions de test associées rend le développement plus agréable et plus " +"amusant, car ceci permet de trouver des bogues, voire des défauts de " +"conception, plus facilement." #: ../Doc/faq/library.rst:170 msgid "" "\"Support modules\" that are not intended to be the main module of a program " "may include a self-test of the module. ::" msgstr "" +"Les « modules auxiliaires » qui n'ont pas vocation à être le module " +"principal du programme peuvent inclure un test pour se vérifier eux-mêmes. ::" #: ../Doc/faq/library.rst:176 msgid "" @@ -253,10 +336,13 @@ msgid "" "when the external interfaces are unavailable by using \"fake\" interfaces " "implemented in Python." msgstr "" +"Les programmes qui interagissent avec des interfaces externes complexes " +"peuvent être testés même quand ces interfaces ne sont pas disponibles, en " +"utilisant des interfaces « simulacres » implémentées en Python." #: ../Doc/faq/library.rst:182 msgid "How do I create documentation from doc strings?" -msgstr "" +msgstr "Comment générer la documentation à partir des *docstrings* ?" #: ../Doc/faq/library.rst:184 msgid "" @@ -265,24 +351,32 @@ msgid "" "docstrings is `epydoc `_. `Sphinx `_ can also include docstring content." msgstr "" +"Le module :mod:`pydoc` peut générer du HTML à partir des *docstrings* du " +"code source Python. Il est aussi possible de documenter une API uniquement à " +"partir des *docstrings* à l'aide de `epydoc `_. `Sphinx `_ peut également inclure du contenu " +"provenant de *docstrings*." #: ../Doc/faq/library.rst:191 msgid "How do I get a single keypress at a time?" -msgstr "" +msgstr "Comment détecter qu'une touche est pressée ?" #: ../Doc/faq/library.rst:193 msgid "" "For Unix variants there are several solutions. It's straightforward to do " "this using curses, but curses is a fairly large module to learn." msgstr "" +"Pour les dérivés d'Unix, plusieurs solutions s'offrent à vous. C'est facile " +"en utilisant le module *curses*, mais *curses* est un module assez " +"conséquent à apprendre." #: ../Doc/faq/library.rst:237 msgid "Threads" -msgstr "" +msgstr "Fils d'exécution" #: ../Doc/faq/library.rst:240 msgid "How do I program using threads?" -msgstr "" +msgstr "Comment programmer avec des fils d'exécution ?" #: ../Doc/faq/library.rst:242 msgid "" @@ -290,28 +384,38 @@ msgid "" "module. The :mod:`threading` module builds convenient abstractions on top of " "the low-level primitives provided by the :mod:`_thread` module." msgstr "" +"Veillez à bien utiliser le module :mod:`threading` et non le module :mod:" +"`_thread`. Le module :mod:`threading` fournit une abstraction plus facile à " +"manipuler que les primitives de bas-niveau du module :mod:`_thread`." #: ../Doc/faq/library.rst:246 msgid "" "Aahz has a set of slides from his threading tutorial that are helpful; see " "http://www.pythoncraft.com/OSCON2001/." msgstr "" +"Un ensemble de diapositives issues du didacticiel de Aahz sur les fils " +"d'exécution est disponible à http://www.pythoncraft.com/OSCON2001/." #: ../Doc/faq/library.rst:251 msgid "None of my threads seem to run: why?" -msgstr "" +msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?" #: ../Doc/faq/library.rst:253 msgid "" "As soon as the main thread exits, all threads are killed. Your main thread " "is running too quickly, giving the threads no time to do any work." msgstr "" +"Dès que le fil d'exécution principal se termine, tous les fils sont tués. Le " +"fil principal s'exécute trop rapidement, sans laisser le temps aux autres " +"fils de faire quoi que ce soit." #: ../Doc/faq/library.rst:256 msgid "" "A simple fix is to add a sleep to the end of the program that's long enough " "for all the threads to finish::" msgstr "" +"Une correction simple consiste à ajouter un temps d'attente suffisamment " +"long à la fin du programme pour que tous les fils puissent se terminer ::" #: ../Doc/faq/library.rst:271 msgid "" @@ -319,10 +423,16 @@ msgid "" "run sequentially, one at a time! The reason is that the OS thread scheduler " "doesn't start a new thread until the previous thread is blocked." msgstr "" +"Mais à présent, sur beaucoup de plates-formes, les fils ne s'exécutent pas " +"en parallèle, mais semblent s'exécuter de manière séquentielle, l'un après " +"l'autre ! En réalité, l'ordonnanceur de fils du système d'exploitation ne " +"démarre pas de nouveau fil avant que le précédent ne soit bloqué." #: ../Doc/faq/library.rst:275 msgid "A simple fix is to add a tiny sleep to the start of the run function::" msgstr "" +"Une correction simple consiste à ajouter un petit temps d'attente au début " +"de la fonction ::" #: ../Doc/faq/library.rst:288 msgid "" @@ -332,16 +442,27 @@ msgid "" "the queue when it finishes, and let the main thread read as many tokens from " "the queue as there are threads." msgstr "" +"Au lieu d'essayer de trouver une bonne valeur d'attente pour la fonction :" +"func:`time.sleep`, il vaut mieux utiliser un mécanisme basé sur les " +"sémaphores. Une solution consiste à utiliser le module :mod:`queue` pour " +"créer un objet file, faire en sorte que chaque fil ajoute un jeton à la file " +"quand il se termine, et que le fil principal retire autant de jetons de la " +"file qu'il y a de fils." #: ../Doc/faq/library.rst:296 msgid "How do I parcel out work among a bunch of worker threads?" msgstr "" +"Comment découper et répartir une tâche au sein d'un ensemble de fils " +"d'exécutions ?" #: ../Doc/faq/library.rst:298 msgid "" "The easiest way is to use the new :mod:`concurrent.futures` module, " "especially the :mod:`~concurrent.futures.ThreadPoolExecutor` class." msgstr "" +"La manière la plus simple est d'utiliser le nouveau module :mod:`concurrent." +"futures`, en particulier la classe :mod:`~concurrent.futures." +"ThreadPoolExecutor`." #: ../Doc/faq/library.rst:301 msgid "" @@ -352,24 +473,35 @@ msgid "" "``.get()`` method to return them. The class will take care of the locking " "necessary to ensure that each job is handed out exactly once." msgstr "" +"Ou bien, si vous désirez contrôler plus finement l'algorithme de " +"distribution, vous pouvez écrire votre propre logique « à la main ». " +"Utilisez le module :mod:`queue` pour créer une file de tâches ; la classe :" +"class:`~queue.Queue` gère une liste d'objets et a une méthode ``." +"put(objet)`` pour ajouter un élément à la file, et une méthode ``.get()`` " +"pour les récupérer. La classe s'occupe de gérer les verrous pour que chaque " +"tâche soit exécutée une et une seule fois." #: ../Doc/faq/library.rst:308 msgid "Here's a trivial example::" -msgstr "" +msgstr "Voici un exemple trivial ::" #: ../Doc/faq/library.rst:346 msgid "When run, this will produce the following output:" -msgstr "" +msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :" #: ../Doc/faq/library.rst:364 msgid "" "Consult the module's documentation for more details; the :class:`~queue." "Queue` class provides a featureful interface." msgstr "" +"Consultez la documentation du module pour plus de détails ; la classe :class:" +"`~queue.Queue` fournit une interface pleine de fonctionnalités." #: ../Doc/faq/library.rst:369 msgid "What kinds of global value mutation are thread-safe?" msgstr "" +"Quels types de mutations sur des variables globales sont compatibles avec " +"les programmes à fils d'exécution multiples ? sécurisé ?" #: ../Doc/faq/library.rst:371 msgid "" @@ -380,6 +512,14 @@ msgid "" "instruction and therefore all the C implementation code reached from each " "instruction is therefore atomic from the point of view of a Python program." msgstr "" +"Le :term:`verrou global de l'interpréteur ` (GIL " +"pour *global interpreter lock*) est utilisé en interne pour s'assurer que la " +"machine virtuelle Python (MVP) n'exécute qu'un seul fil à la fois. De " +"manière générale, Python ne change de fil qu'entre les instructions du code " +"intermédiaire ; :func:`sys.setswitchinterval` permet de contrôler la " +"fréquence de bascule entre les fils. Chaque instruction du code " +"intermédiaire, et, par conséquent, tout le code C appelé par cette " +"instruction est donc atomique du point de vue d'un programme Python." #: ../Doc/faq/library.rst:378 msgid "" @@ -388,16 +528,24 @@ msgid "" "shared variables of built-in data types (ints, lists, dicts, etc) that " "\"look atomic\" really are." msgstr "" +"En théorie, cela veut dire qu'un décompte exact nécessite une connaissance " +"parfaite de l'implémentation de la MVP. En pratique, cela veut dire que les " +"opérations sur des variables partagées de type natif (les entier, les " +"listes, les dictionnaires etc.) qui « semblent atomiques » le sont " +"réellement." #: ../Doc/faq/library.rst:383 msgid "" "For example, the following operations are all atomic (L, L1, L2 are lists, " "D, D1, D2 are dicts, x, y are objects, i, j are ints)::" msgstr "" +"Par exemple, les opérations suivantes sont toutes atomiques (*L*, *L1* et " +"*L2* sont des listes, *D*, *D1* et *D2* sont des dictionnaires, *x* et *y* " +"sont des objets, *i* et *j* des entiers) ::" #: ../Doc/faq/library.rst:398 msgid "These aren't::" -msgstr "" +msgstr "Les suivantes ne le sont pas ::" #: ../Doc/faq/library.rst:405 msgid "" @@ -406,10 +554,15 @@ msgid "" "affect things. This is especially true for the mass updates to dictionaries " "and lists. When in doubt, use a mutex!" msgstr "" +"Les opérations qui remplacent d'autres objets peuvent invoquer la méthode :" +"meth:`__del__` de ces objets quand leur compteur de référence passe à zéro, " +"et cela peut avoir de l'impact. C'est tout particulièrement vrai pour les " +"des changements massifs sur des dictionnaires ou des listes. En cas de " +"doute, il vaut mieux utiliser un mutex." #: ../Doc/faq/library.rst:412 msgid "Can't we get rid of the Global Interpreter Lock?" -msgstr "" +msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?" #: ../Doc/faq/library.rst:416 msgid "" @@ -418,6 +571,12 @@ msgid "" "multi-threaded Python program effectively only uses one CPU, due to the " "insistence that (almost) all Python code can only run while the GIL is held." msgstr "" +"Le :term:`verrou global de l'interpréteur ` (GIL) " +"est souvent vu comme un obstacle au déploiement de code Python sur des " +"serveurs puissants avec de nombreux processeurs, car un programme Python à " +"fils d'exécutions multiples n'utilise en réalité qu'un seul processeur. " +"Presque tout le code Python ne peut en effet être exécuté qu'avec le GIL " +"acquis." #: ../Doc/faq/library.rst:421 msgid "" @@ -430,6 +589,14 @@ msgid "" "due to the amount of fine-grained locking necessary to compensate for the " "removal of the GIL." msgstr "" +"À l'époque de Python 1.5, Greg Stein a bien implémenté un ensemble complet " +"de correctifs (les correctifs « fils d'exécution libres ») qui remplaçaient " +"le GIL par des verrous plus granulaires. Adam Olsen a conduit une expérience " +"similaire dans son projet `python-safethread `_. Malheureusement, ces deux tentatives ont " +"induit une baisse significative (d'au moins 30%) des performances du code à " +"un seul fil d'exécution, à cause de la quantité de verrouillage plus " +"granulaire nécessaire pour contrebalancer la suppression du GIL." #: ../Doc/faq/library.rst:429 msgid "" @@ -441,6 +608,13 @@ msgid "" "module provides a lower-level API in case you want more control over " "dispatching of tasks." msgstr "" +"Cela ne signifie pas qu'il est impossible de tirer profit de Python sur des " +"machines à plusieurs cœurs ! Il faut seulement être malin et diviser le " +"travail à faire entre plusieurs *processus* plutôt qu'entre plusieurs *fils " +"d'exécution*. La classe :class:`~concurrent.futures.ProcessPoolExecutor` du " +"nouveau module :mod:`concurrent.futures` permet de faire cela facilement ; " +"le module :mod:`multiprocessing` fournit une API de plus bas-niveau pour un " +"meilleur contrôle sur la distribution des tâches." #: ../Doc/faq/library.rst:437 msgid "" @@ -450,6 +624,11 @@ msgid "" "work done. Some standard library modules such as :mod:`zlib` and :mod:" "`hashlib` already do this." msgstr "" +"Des extensions C appropriées peuvent aussi aider ; en utilisant une " +"extension C pour effectuer une tâche longue, l'extension peut relâcher le " +"GIL pendant que le fil est en train d'exécuter ce code et laisser les autres " +"fils travailler. Des modules de la bibliothèque standard comme :mod:`zlib` " +"ou :mod:`hashlib` utilisent cette technique." #: ../Doc/faq/library.rst:443 msgid "" @@ -462,6 +641,15 @@ msgid "" "types have their own free list; these free lists would have to be moved to " "the interpreter state. And so on." msgstr "" +"On a déjà proposé de restreindre le GIL par interpréteur, et non plus d'être " +"complétement global ; les interpréteurs ne seraient plus en mesure de " +"partager des objets. Malheureusement, cela n'a pas beaucoup de chance non " +"plus d'arriver. Cela nécessiterait un travail considérable, car la façon " +"dont beaucoup d'objets sont implémentés rend leur état global. Par exemple, " +"les entiers et les chaînes de caractères courts sont mis en cache ; ces " +"caches devraient être déplacés au niveau de l'interpréteur. D'autres objets " +"ont leur propre liste de suppression, ces listes devraient être déplacées au " +"niveau de l'interpréteur et ainsi de suite." #: ../Doc/faq/library.rst:452 msgid "" @@ -470,12 +658,19 @@ msgid "" "extensions are being written at a faster rate than you can convert them to " "store all their global state in the interpreter state." msgstr "" +"C'est une tâche sans fin, car les extensions tierces ont le même problème, " +"et il est probable que les extensions tierces soient développées plus vite " +"qu'il ne soit possible de les corriger pour les faire stocker leur état au " +"niveau de l'interpréteur et non plus au niveau global." #: ../Doc/faq/library.rst:457 msgid "" "And finally, once you have multiple interpreters not sharing any state, what " "have you gained over running each interpreter in a separate process?" msgstr "" +"Et enfin, quel intérêt y-a t'il à avoir plusieurs interpréteurs qui ne " +"partagent pas d'état, par rapport à faire tourner chaque interpréteur dans " +"un processus différent ?" #: ../Doc/faq/library.rst:462 msgid "Input and Output" @@ -483,7 +678,7 @@ msgstr "Les entrées/sorties" #: ../Doc/faq/library.rst:465 msgid "How do I delete a file? (And other file questions...)" -msgstr "" +msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)" #: ../Doc/faq/library.rst:467 msgid "" @@ -491,6 +686,10 @@ msgid "" "see the :mod:`os` module. The two functions are identical; :func:`~os." "unlink` is simply the name of the Unix system call for this function." msgstr "" +"Utilisez ``os.remove(filename)`` ou ``os.unlink(filename)`` ; pour la " +"documentation, référez-vous au module :mod:`os`. Ces deux fonctions sont " +"identiques, :func:`~os.unlink` n'est tout simplement que le nom de l'appel " +"système à cette fonction sous Unix." #: ../Doc/faq/library.rst:471 msgid "" @@ -500,10 +699,16 @@ msgid "" "directories as long as they're empty; if you want to delete an entire " "directory tree and its contents, use :func:`shutil.rmtree`." msgstr "" +"Utilisez :func:`os.rmdir` pour supprimer un dossier et :func:`os.mkdir` pour " +"en créer un nouveau. ``os.makedirs(chemin)`` crée les dossiers " +"intermédiaires de ``chemin`` qui n'existent pas et ``os.removedirs(chemin)`` " +"supprime les dossiers intermédiaires si ceux-ci sont vides. Pour supprimer " +"une arborescence et tout son contenu, utilisez :func:`shutil.rmtree`." #: ../Doc/faq/library.rst:477 msgid "To rename a file, use ``os.rename(old_path, new_path)``." msgstr "" +"``os.rename(ancien_chemin, nouveau_chemin)`` permet de renommer un fichier." #: ../Doc/faq/library.rst:479 msgid "" @@ -512,6 +717,11 @@ msgid "" "There's also ``os.ftruncate(fd, offset)`` for files opened with :func:`os." "open`, where *fd* is the file descriptor (a small integer)." msgstr "" +"Pour supprimer le contenu d'un fichier, ouvrez celui-ci avec ``f = " +"open(nom_du_fichier, \"rb+\")``, puis exécutez ``f.truncate(décalage)`` où " +"*décalage* est par défaut la position actuelle de la tête de lecture. Il " +"existe aussi ``os.ftruncate(df, décalage)`` pour les fichiers ouverts avec :" +"func:`os.open`, où *df* est le descripteur de fichier (un entier court)." #: ../Doc/faq/library.rst:484 msgid "" @@ -519,20 +729,26 @@ msgid "" "files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :" "func:`~shutil.rmtree`." msgstr "" +"Le module :mod:`shutil` propose aussi un grand nombre de fonctions pour " +"effectuer des opérations sur des fichiers comme :func:`~shutil.copyfile`, :" +"func:`~shutil.copytree` et :func:`~shutil.rmtree`." #: ../Doc/faq/library.rst:490 msgid "How do I copy a file?" -msgstr "" +msgstr "Comment copier un fichier ?" #: ../Doc/faq/library.rst:492 msgid "" "The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note " "that on MacOS 9 it doesn't copy the resource fork and Finder info." msgstr "" +"Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. Sous " +"MacOS 9, celle-ci ne copie pas le clonage de ressources ni les informations " +"du chercheur." #: ../Doc/faq/library.rst:497 msgid "How do I read (or write) binary data?" -msgstr "" +msgstr "Comment lire (ou écrire) des données binaires ?" #: ../Doc/faq/library.rst:499 msgid "" @@ -540,12 +756,18 @@ msgid "" "`struct` module. It allows you to take a string containing binary data " "(usually numbers) and convert it to Python objects; and vice versa." msgstr "" +"Pour lire ou écrire des formats de données complexes en binaire, il est " +"recommandé d'utiliser le module :mod:`struct`. Celui-ci permet de convertir " +"une chaîne de caractères qui contient des données binaires, souvent des " +"nombres, en objets Python, et vice-versa." #: ../Doc/faq/library.rst:503 msgid "" "For example, the following code reads two 2-byte integers and one 4-byte " "integer in big-endian format from a file::" msgstr "" +"Par exemple, le code suivant lit, depuis un fichier, deux entiers codés sur " +"2 octets et un entier codé sur 4 octets, en format gros-boutiste ::" #: ../Doc/faq/library.rst:512 msgid "" @@ -553,12 +775,18 @@ msgid "" "one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 " "bytes) from the string." msgstr "" +"« > » dans la chaîne de formatage indique que la donnée doit être lue en " +"mode gros-boutiste, la lettre « h » indique un entier court (2 octets) et la " +"lettre « l » indique un entier long (4 octets)." #: ../Doc/faq/library.rst:516 msgid "" "For data that is more regular (e.g. a homogeneous list of ints or floats), " "you can also use the :mod:`array` module." msgstr "" +"Pour une donnée plus régulière (p. ex. une liste homogène d'entiers ou de " +"nombres à virgule flottante), il est possible d'utiliser le module :mod:" +"`array`." #: ../Doc/faq/library.rst:521 msgid "" @@ -567,10 +795,17 @@ msgid "" "instead (the default), the file will be open in text mode and ``f.read()`` " "will return :class:`str` objects rather than :class:`bytes` objects." msgstr "" +"Pour lire et écrire de la donnée binaire, il est obligatoire d'ouvrir le " +"fichier en mode binaire également (ici, en passant ``\"rb\"`` à :func:" +"`open`). En utilisant ``\"r\"`` (valeur par défaut), le fichier est ouvert " +"en mode textuel et ``f.read()`` renvoie des objets :class:`str` au lieu " +"d'objets :class:`bytes`." #: ../Doc/faq/library.rst:529 msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?" msgstr "" +"Il me semble impossible d'utiliser ``os.read()`` sur un tube créé avec ``os." +"popen()`` ; pourquoi ?" #: ../Doc/faq/library.rst:531 msgid "" @@ -580,36 +815,47 @@ msgid "" "function. Thus, to read *n* bytes from a pipe *p* created with :func:`os." "popen`, you need to use ``p.read(n)``." msgstr "" +":func:`os.read` est une fonction de bas niveau qui prend en paramètre un " +"descripteur de fichier — un entier court qui représente le fichier ouvert. :" +"func:`os.popen` crée un objet fichier de haut niveau, du même type que celui " +"renvoyé par la fonction native :func:`open`. Par conséquent, pour lire *n* " +"octets d'un tube *p* créé avec :func:`os.popen`, il faut utiliser ``p." +"read(n)``." #: ../Doc/faq/library.rst:618 msgid "How do I access the serial (RS232) port?" -msgstr "" +msgstr "Comment accéder au port de transmission en série (RS-232) ?" #: ../Doc/faq/library.rst:620 msgid "For Win32, POSIX (Linux, BSD, etc.), Jython:" -msgstr "" +msgstr "Pour Win32, POSIX (Linux, BSD, etc.) et Jython :" #: ../Doc/faq/library.rst:622 msgid "http://pyserial.sourceforge.net" -msgstr "" +msgstr "http://pyserial.sourceforge.net" #: ../Doc/faq/library.rst:624 msgid "For Unix, see a Usenet post by Mitch Chapman:" msgstr "" +"Pour Unix, référez-vous à une publication sur Usenet de Mitch Chapman :" #: ../Doc/faq/library.rst:626 msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" -msgstr "" +msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" #: ../Doc/faq/library.rst:630 msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?" msgstr "" +"Pourquoi fermer *sys.stdout*, *sys.stdin*, *sys.stderr* ne les ferme pas " +"réellement ?" #: ../Doc/faq/library.rst:632 msgid "" "Python :term:`file objects ` are a high-level layer of " "abstraction on low-level C file descriptors." msgstr "" +"Les :term:`objets fichiers ` en Python sont des abstractions de " +"haut niveau sur les descripteurs de fichier C de bas niveau." #: ../Doc/faq/library.rst:635 msgid "" @@ -619,6 +865,11 @@ msgid "" "descriptor. This also happens automatically in ``f``'s destructor, when " "``f`` becomes garbage." msgstr "" +"Pour la plupart des objets fichiers créés en Python avec la fonction native :" +"func:`open`, ``f.close()`` marque le fichier comme fermé du point de vue de " +"Python et ferme aussi le descripteur C sous-jacent. Le même mécanisme est " +"enclenché automatiquement dans le destructeur de ``f``, lorsque ``f`` est " +"recyclé." #: ../Doc/faq/library.rst:641 msgid "" @@ -627,6 +878,10 @@ msgid "" "marks the Python-level file object as being closed, but does *not* close the " "associated C file descriptor." msgstr "" +"Mais *stdin*, *stdout* et *stderr* ont droit à un traitement spécial en " +"Python, car leur statut en C est lui-aussi spécial. Exécuter ``sys.stdout." +"close()`` marque l'objet fichier comme fermé du point de vue de Python, mais " +"le descripteur de fichier C associé n'est *pas* fermé." #: ../Doc/faq/library.rst:646 msgid "" @@ -634,18 +889,24 @@ msgid "" "first be sure that's what you really want to do (e.g., you may confuse " "extension modules trying to do I/O). If it is, use :func:`os.close`::" msgstr "" +"Pour fermer le descripteur de fichier sous-jacent C de l'une de ces trois " +"sorties, demandez-vous avant tout si vous êtes sûr de vous (cela peut, par " +"exemple, perturber le bon fonctionnement de modules qui font des opérations " +"d'entrée-sortie). Si c'est le cas, utilisez :func:`os.close` ::" #: ../Doc/faq/library.rst:654 msgid "Or you can use the numeric constants 0, 1 and 2, respectively." msgstr "" +"Il est aussi possible de fermer respectivement les constantes numériques 0, " +"1 ou 2." #: ../Doc/faq/library.rst:658 msgid "Network/Internet Programming" -msgstr "" +msgstr "Programmation réseau et Internet" #: ../Doc/faq/library.rst:661 msgid "What WWW tools are there for Python?" -msgstr "" +msgstr "Quels sont les outils Python dédiés à la Toile ?" #: ../Doc/faq/library.rst:663 msgid "" @@ -653,32 +914,42 @@ msgid "" "Reference Manual. Python has many modules that will help you build server-" "side and client-side web systems." msgstr "" +"Référez-vous aux chapitres intitulés :ref:`internet` et :ref:`netdata` dans " +"le manuel de référence de la bibliothèque. Python a de nombreux modules pour " +"construire des applications de Toile côté client comme côté serveur." #: ../Doc/faq/library.rst:669 msgid "" "A summary of available frameworks is maintained by Paul Boddie at https://" "wiki.python.org/moin/WebProgramming\\ ." msgstr "" +"Un résumé des cadriciels disponibles est maintenu par Paul Boddie à " +"l'adresse https://wiki.python.org/moin/WebProgramming\\ ." #: ../Doc/faq/library.rst:672 msgid "" "Cameron Laird maintains a useful set of pages about Python web technologies " "at http://phaseit.net/claird/comp.lang.python/web_python." msgstr "" +"Cameron Laird maintient un ensemble intéressant d'articles sur les " +"technologies Python dédiées à la Toile à l'adresse http://phaseit.net/claird/" +"comp.lang.python/web_python." #: ../Doc/faq/library.rst:677 msgid "How can I mimic CGI form submission (METHOD=POST)?" -msgstr "" +msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?" #: ../Doc/faq/library.rst:679 msgid "" "I would like to retrieve web pages that are the result of POSTing a form. Is " "there existing code that would let me do this easily?" msgstr "" +"J'aimerais récupérer la page de retour d'un envoi de formulaire sur la " +"Toile. Existe-t'il déjà du code qui pourrait m'aider à le faire facilement ?" #: ../Doc/faq/library.rst:682 msgid "Yes. Here's a simple example that uses urllib.request::" -msgstr "" +msgstr "Oui. Voici un exemple simple d'utilisation de *urllib.request* ::" #: ../Doc/faq/library.rst:697 msgid "" @@ -686,34 +957,42 @@ msgid "" "be quoted using :func:`urllib.parse.urlencode`. For example, to send " "``name=Guy Steele, Jr.``::" msgstr "" +"Remarquez qu'en général, la chaîne de caractères d'une requête POST encodée " +"avec des des signes « % » doit être mise entre guillemets à l'aide de :func:" +"`urllib.parse.urlencode`. Par exemple pour envoyer ``name=Guy Steele, Jr." +"`` ::" #: ../Doc/faq/library.rst:705 msgid ":ref:`urllib-howto` for extensive examples." -msgstr "" +msgstr ":ref:`urllib-howto` pour des exemples complets." #: ../Doc/faq/library.rst:709 msgid "What module should I use to help with generating HTML?" -msgstr "" +msgstr "Quel module utiliser pour générer du HTML ?" #: ../Doc/faq/library.rst:713 msgid "" "You can find a collection of useful links on the `Web Programming wiki page " "`_." msgstr "" +"La `page wiki de la programmation Toile `_ (en anglais) répertorie un ensemble de liens pertinents." #: ../Doc/faq/library.rst:718 msgid "How do I send mail from a Python script?" -msgstr "" +msgstr "Comment envoyer un courriel avec un script Python ?" #: ../Doc/faq/library.rst:720 msgid "Use the standard library module :mod:`smtplib`." -msgstr "" +msgstr "Utilisez le module :mod:`smtplib` de la bibliothèque standard." #: ../Doc/faq/library.rst:722 msgid "" "Here's a very simple interactive mail sender that uses it. This method will " "work on any host that supports an SMTP listener. ::" msgstr "" +"Voici un exemple très simple d'un envoyeur de courriel qui l'utilise. Cette " +"méthode fonctionne sur tous les serveurs qui implémentent SMTP. ::" #: ../Doc/faq/library.rst:742 msgid "" @@ -722,16 +1001,24 @@ msgid "" "usr/sbin/sendmail``. The sendmail manual page will help you out. Here's " "some sample code::" msgstr "" +"Sous Unix, il est possible d'utiliser *sendmail*. La localisation de " +"l'exécutable *sendmail* dépend du système ; cela peut-être ``/usr/lib/" +"sendmail`` ou ``/usr/sbin/sendmail``, la page de manuel de *sendmail* peut " +"vous aider. Par exemple ::" #: ../Doc/faq/library.rst:762 msgid "How do I avoid blocking in the connect() method of a socket?" msgstr "" +"Comment éviter de bloquer dans la méthode ``connect()`` d'un connecteur " +"réseau ?" #: ../Doc/faq/library.rst:764 msgid "" "The :mod:`select` module is commonly used to help with asynchronous I/O on " "sockets." msgstr "" +"Le module :mod:`select` est fréquemment utilisé pour effectuer des entrées-" +"sorties asynchrones sur des connecteurs réseaux." #: ../Doc/faq/library.rst:767 msgid "" @@ -742,6 +1029,13 @@ msgid "" "progress, but hasn't finished yet. Different OSes will return different " "values, so you're going to have to check what's returned on your system." msgstr "" +"Pour empêcher une connexion TCP de se bloquer, il est possible de mettre le " +"connecteur en mode lecture seule. Avec cela, au moment du ``connect()``, la " +"connexion pourra être immédiate (peu probable) ou bien vous obtiendrez une " +"exception qui contient le numéro d'erreur dans ``.errno``. ``errno." +"EINPROGRESS`` indique que la connexion est en cours, mais qu'elle n'a pas " +"encore aboutie. La valeur dépend du système d'exploitation, donc renseignez-" +"vous sur la valeur utilisée par votre système." #: ../Doc/faq/library.rst:774 msgid "" @@ -750,6 +1044,12 @@ msgid "" "again later -- ``0`` or ``errno.EISCONN`` indicate that you're connected -- " "or you can pass this socket to select to check if it's writable." msgstr "" +"``connect_ex()`` permet d'éviter la création de l'exception, et de ne " +"renvoyer que la valeur de *errno*. Pour vérifier l'état de la connexion, " +"utilisez encore une fois ``connect_ex()`` — ``0`` ou ``errno.EISCONN`` " +"indiquent que la connexion est active — ou passez le connecteur en argument " +"de ``select()`` pour vérifier si le connecteur est prêt à recevoir des " +"entrées." #: ../Doc/faq/library.rst:780 msgid "" @@ -757,14 +1057,19 @@ msgid "" "of writing non-blocking networking code. The third-party `Twisted `_ library is a popular and feature-rich alternative." msgstr "" +"Le module :mod:`asyncore` propose une approche en cadriciel pour écrire du " +"code réseau non-bloquant. La bibliothèque tierce `Twisted `_ en est une alternative plébiscitée, avec un grand " +"nombre de fonctionnalités." #: ../Doc/faq/library.rst:787 msgid "Databases" -msgstr "" +msgstr "Bases de données" #: ../Doc/faq/library.rst:790 msgid "Are there any interfaces to database packages in Python?" msgstr "" +"Existe-t'il des modules Python pour s'interfacer avec des bases de données ?" #: ../Doc/faq/library.rst:792 msgid "Yes." @@ -777,6 +1082,10 @@ msgid "" "`sqlite3` module, which provides a lightweight disk-based relational " "database." msgstr "" +"La distribution standard de Python fournit aussi des interfaces à des bases " +"de données comme :mod:`DBM ` ou :mod:`GDBM `. Il existe " +"aussi le module :mod:`sqlite3` qui implémente une base de données " +"relationelle légère sur disque." #: ../Doc/faq/library.rst:799 msgid "" @@ -784,10 +1093,13 @@ msgid "" "`DatabaseProgramming wiki page `_ for details." msgstr "" +"La gestion de la plupart des bases de données relationnelles est assurée. " +"Voir la page wiki `DatabaseProgramming `_ pour plus de détails." #: ../Doc/faq/library.rst:805 msgid "How do you implement persistent objects in Python?" -msgstr "" +msgstr "Comment implémenter la persistance d'objets en Python ?" #: ../Doc/faq/library.rst:807 msgid "" @@ -796,57 +1108,72 @@ msgid "" "mod:`shelve` library module uses pickle and (g)dbm to create persistent " "mappings containing arbitrary Python objects." msgstr "" +"Le module :mod:`pickle` répond à cela de manière large (bien qu'il ne soit " +"pas possible de stocker des fichiers ouverts, des connecteurs ou des " +"fenêtres par exemple), et le module :mod:`shelve` de la bibliothèque utilise " +"*pickle* et *(g)dbm* pour créer des liens persistants vers des objets Python." #: ../Doc/faq/library.rst:814 msgid "Mathematics and Numerics" -msgstr "" +msgstr "Mathématiques et calcul numérique" #: ../Doc/faq/library.rst:817 msgid "How do I generate random numbers in Python?" -msgstr "" +msgstr "Comment générer des nombres aléatoires en Python ?" #: ../Doc/faq/library.rst:819 msgid "" "The standard module :mod:`random` implements a random number generator. " "Usage is simple::" msgstr "" +"Le module :mod:`random` de la bibliothèque standard comprend un générateur " +"de nombres aléatoires. Son utilisation est simple ::" #: ../Doc/faq/library.rst:825 msgid "This returns a random floating point number in the range [0, 1)." msgstr "" +"Le code précédent renvoie un nombre à virgule flottante aléatoire dans " +"l'intervalle [0, 1[." #: ../Doc/faq/library.rst:827 msgid "" "There are also many other specialized generators in this module, such as:" -msgstr "" +msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :" #: ../Doc/faq/library.rst:829 msgid "``randrange(a, b)`` chooses an integer in the range [a, b)." -msgstr "" +msgstr "``randrange(a, b)`` génère un entier dans l'intervalle [a, b[." #: ../Doc/faq/library.rst:830 msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)." msgstr "" +"``uniform(a, b)`` génère un nombre à virgule flottante aléatoire dans " +"l'intervalle [a, b[." #: ../Doc/faq/library.rst:831 msgid "" "``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution." -msgstr "" +msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)." #: ../Doc/faq/library.rst:833 msgid "Some higher-level functions operate on sequences directly, such as:" msgstr "" +"Des fonctions de haut niveau opèrent directement sur des séquences comme :" #: ../Doc/faq/library.rst:835 msgid "``choice(S)`` chooses random element from a given sequence" -msgstr "" +msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donnée" #: ../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 " +"permutation aléatoire" #: ../Doc/faq/library.rst:838 msgid "" "There's also a ``Random`` class you can instantiate to create independent " "multiple random number generators." msgstr "" +"Il existe aussi une classe ``Random`` qu'il est possible d'instancier pour " +"créer des générateurs aléatoires indépendants." diff --git a/faq/programming.po b/faq/programming.po index a8203472b..9f6da9491 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2017-10-27 17:41+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-09-16 11:03+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.0.4\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/faq/programming.rst:5 msgid "Programming FAQ" -msgstr "" +msgstr "FAQ de programmation" #: ../Doc/faq/programming.rst:8 msgid "Contents" @@ -25,34 +25,51 @@ msgstr "Sommaire" #: ../Doc/faq/programming.rst:12 msgid "General Questions" -msgstr "" +msgstr "Questions générales" #: ../Doc/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-" +"à-pas, etc. ?" -#: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:60 +#: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:63 msgid "Yes." msgstr "Oui." #: ../Doc/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 +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 " +"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." -#: ../Doc/faq/programming.rst:24 +#: ../Doc/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." -#: ../Doc/faq/programming.rst:28 +#: ../Doc/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 " @@ -61,8 +78,16 @@ msgid "" ">`__ 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:35 +#: ../Doc/faq/programming.rst:38 msgid "" "`Boa Constructor `_ is an IDE and " "GUI builder that uses wxWidgets. It offers visual frame creation and " @@ -70,51 +95,72 @@ msgid "" "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:41 +#: ../Doc/faq/programming.rst:44 msgid "" "`Eric `_ is an IDE built on PyQt and " "the Scintilla editing component." msgstr "" +"`Eric `_ est un EDI basé sur PyQt et " +"l'outil d'édition Scintilla." -#: ../Doc/faq/programming.rst:44 +#: ../Doc/faq/programming.rst:47 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." -#: ../Doc/faq/programming.rst:49 +#: ../Doc/faq/programming.rst:52 msgid "" "There are a number of commercial Python IDEs that include graphical " "debuggers. They include:" msgstr "" +"Il existe de nombreux EDI Python propriétaires qui embarquent un débogueur " +"graphique. Notamment :" -#: ../Doc/faq/programming.rst:52 +#: ../Doc/faq/programming.rst:55 msgid "Wing IDE (https://wingware.com/)" -msgstr "" +msgstr "Wing IDE (https://wingware.com/)" -#: ../Doc/faq/programming.rst:53 +#: ../Doc/faq/programming.rst:56 msgid "Komodo IDE (https://komodoide.com/)" -msgstr "" +msgstr "Komodo IDE (https://komodoide.com/)" -#: ../Doc/faq/programming.rst:54 +#: ../Doc/faq/programming.rst:57 msgid "PyCharm (https://www.jetbrains.com/pycharm/)" -msgstr "" +msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" -#: ../Doc/faq/programming.rst:58 +#: ../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:62 +#: ../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/." 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/." -#: ../Doc/faq/programming.rst:66 +#: ../Doc/faq/programming.rst:69 msgid "" "`Pylint `_ is another tool that checks if a module " "satisfies a coding standard, and also makes it possible to write plug-ins to " @@ -124,19 +170,31 @@ msgid "" "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." -#: ../Doc/faq/programming.rst:74 +#: ../Doc/faq/programming.rst:77 msgid "" "Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can " "check type hints in Python source code." msgstr "" +"Les vérificateurs statiques de typage comme `Mypy `_, " +"`Pyre `_, et `Pytype `_ peuvent vérifier les indications de type dans du code source " +"Python." -#: ../Doc/faq/programming.rst:81 +#: ../Doc/faq/programming.rst:84 msgid "How can I create a stand-alone binary from a Python script?" -msgstr "" +msgstr "Comment créer un binaire autonome à partir d'un script Python ?" -#: ../Doc/faq/programming.rst:83 +#: ../Doc/faq/programming.rst:86 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 " @@ -144,16 +202,27 @@ msgid "" "determine the set of modules required by a program and bind these modules " "together with a Python binary to produce a single executable." msgstr "" +"Pour créer un programme autonome, c'est-à-dire un programme que n'importe " +"qui peut télécharger et exécuter sans avoir à installer une distribution " +"Python au préalable, il n'est pas nécessaire de compiler du code Python en " +"code C. Il existe en effet plusieurs outils qui déterminent les modules " +"requis par un programme et lient ces modules avec un binaire Python pour " +"produire un seul exécutable." -#: ../Doc/faq/programming.rst:89 +#: ../Doc/faq/programming.rst:92 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 " "you can embed all your modules into a new program, which is then linked with " "the standard Python modules." msgstr "" +"Un de ces outils est freeze, qui se trouve dans ``Tools/freeze`` de " +"l'arborescence des sources de Python. Il convertit le code intermédiaire " +"(*bytecode*) Python en tableaux C ; un compilateur C permet d'intégrer tous " +"vos modules dans un nouveau programme, qui est ensuite lié aux modules " +"standards Python." -#: ../Doc/faq/programming.rst:94 +#: ../Doc/faq/programming.rst:97 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 " @@ -165,61 +234,84 @@ msgid "" "rest of the Python interpreter to form a self-contained binary which acts " "exactly like your script." msgstr "" +"Il fonctionne en cherchant de manière récursive les instructions d'import " +"(sous les deux formes) dans le code source et en recherchant ces modules " +"dans le chemin Python standard ainsi que dans le répertoire source (pour les " +"modules natifs). Il transforme ensuite le code intermédiaire des modules " +"écrits en Python en code C (des tableaux pré-remplis qui peuvent être " +"transformés en objets code à l'aide du module *marshal*) et crée un fichier " +"de configuration personnalisé qui contient uniquement les modules natifs qui " +"sont réellement utilisés dans le programme. Il compile ensuite le code C " +"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:103 +#: ../Doc/faq/programming.rst:106 msgid "" "Obviously, freeze requires a C compiler. There are several other utilities " "which don't. One is Thomas Heller's py2exe (Windows only) at" 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:106 +#: ../Doc/faq/programming.rst:109 msgid "http://www.py2exe.org/" -msgstr "" +msgstr "http://www.py2exe.org/" -#: ../Doc/faq/programming.rst:108 +#: ../Doc/faq/programming.rst:111 msgid "" "Another tool is Anthony Tuininga's `cx_Freeze `_." msgstr "" +"Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." -#: ../Doc/faq/programming.rst:112 +#: ../Doc/faq/programming.rst:115 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 " +"programmes Python ?" -#: ../Doc/faq/programming.rst:114 +#: ../Doc/faq/programming.rst:117 msgid "" "Yes. The coding style required for standard library modules is documented " "as :pep:`8`." 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:119 +#: ../Doc/faq/programming.rst:122 msgid "Core Language" -msgstr "" +msgstr "Fondamentaux" -#: ../Doc/faq/programming.rst:122 +#: ../Doc/faq/programming.rst:125 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:124 +#: ../Doc/faq/programming.rst:127 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 " "of a function." msgstr "" +"Il est parfois surprenant d'obtenir une UnboundLocalError dans du code " +"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:128 +#: ../Doc/faq/programming.rst:131 msgid "This code:" -msgstr "" +msgstr "Le code suivant :" -#: ../Doc/faq/programming.rst:136 +#: ../Doc/faq/programming.rst:139 msgid "works, but this code:" -msgstr "" +msgstr "fonctionne, mais le suivant :" -#: ../Doc/faq/programming.rst:143 +#: ../Doc/faq/programming.rst:146 msgid "results in an UnboundLocalError:" -msgstr "" +msgstr "lève une UnboundLocalError :" -#: ../Doc/faq/programming.rst:150 +#: ../Doc/faq/programming.rst:153 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 " @@ -228,39 +320,58 @@ msgid "" "Consequently when the earlier ``print(x)`` attempts to print the " "uninitialized local variable and an error results." msgstr "" +"Cela est dû au fait que, quand une variable est affectée dans un contexte, " +"cette variable devient locale à ce contexte et remplace toute variable du " +"même nom du contexte appelant. Vu que la dernière instruction dans *foo* " +"affecte une nouvelle valeur à ``x``, le compilateur la traite comme une " +"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:157 +#: ../Doc/faq/programming.rst:160 msgid "" "In the example above you can access the outer scope variable by declaring it " "global:" msgstr "" +"Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible " +"en la déclarant globale :" -#: ../Doc/faq/programming.rst:168 +#: ../Doc/faq/programming.rst:171 msgid "" "This explicit declaration is required in order to remind you that (unlike " "the superficially analogous situation with class and instance variables) you " "are actually modifying the value of the variable in the outer scope:" msgstr "" +"Cette déclaration explicite est obligatoire pour se rappeler que " +"(contrairement au cas à peu près similaire avec des variables de classe et " +"d'instance), c'est la valeur de la variable du contexte appelant qui est " +"modifiée :" -#: ../Doc/faq/programming.rst:175 +#: ../Doc/faq/programming.rst:178 msgid "" "You can do a similar thing in a nested scope using the :keyword:`nonlocal` " "keyword:" msgstr "" +"Une alternative dans un contexte imbriqué consiste à utiliser le mot-clé :" +"keyword:`nonlocal` :" -#: ../Doc/faq/programming.rst:192 +#: ../Doc/faq/programming.rst:195 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:194 +#: ../Doc/faq/programming.rst:197 msgid "" "In Python, variables that are only referenced inside a function are " "implicitly global. If a variable is assigned a value anywhere within the " "function's body, it's assumed to be a local unless explicitly declared as " "global." msgstr "" +"En Python, si une variable n'est pas modifiée dans une fonction mais " +"seulement lue, elle est implicitement considérée comme globale. Si une " +"valeur lui est affectée, elle est considérée locale (sauf si elle est " +"explicitement déclarée globale)." -#: ../Doc/faq/programming.rst:198 +#: ../Doc/faq/programming.rst:201 msgid "" "Though a bit surprising at first, a moment's consideration explains this. " "On one hand, requiring :keyword:`global` for assigned variables provides a " @@ -270,28 +381,43 @@ msgid "" "a component of an imported module. This clutter would defeat the usefulness " "of the ``global`` declaration for identifying side-effects." msgstr "" +"Bien que surprenant au premier abord, ce choix s'explique facilement. D'une " +"part, exiger :keyword:`global` pour des variables affectées est une " +"protection contre des effets de bord inattendus. D'autre part, si ``global`` " +"était obligatoire pour toutes les références à des objets globaux, il " +"faudrait mettre ``global`` partout, car il faudrait dans ce cas déclarer " +"globale chaque référence à une fonction native ou à un composant d'un module " +"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:208 +#: ../Doc/faq/programming.rst:211 msgid "" "Why do lambdas defined in a loop with different values all return the same " "result?" 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:210 +#: ../Doc/faq/programming.rst:213 msgid "" "Assume you use a for loop to define a few different lambdas (or even plain " "functions), e.g.::" 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:217 +#: ../Doc/faq/programming.rst:220 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``, " "``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " "see that they all return ``16``::" 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`` ::" -#: ../Doc/faq/programming.rst:227 +#: ../Doc/faq/programming.rst:230 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 " @@ -299,14 +425,23 @@ msgid "" "the functions now return ``4**2``, i.e. ``16``. You can also verify this by " "changing the value of ``x`` and see how the results of the lambdas change::" 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 " +"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 ::" -#: ../Doc/faq/programming.rst:237 +#: ../Doc/faq/programming.rst:240 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`` ::" -#: ../Doc/faq/programming.rst:244 +#: ../Doc/faq/programming.rst:247 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 " @@ -314,18 +449,26 @@ msgid "" "the first lambda, ``1`` in the second, ``2`` in the third, and so on. " "Therefore each lambda will now return the correct result::" msgstr "" +"Dans ce code, ``n=x`` crée une nouvelle variable ``n``, locale à " +"l'expression. Cette variable est évaluée quand l'expression est définie donc " +"``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 ::" -#: ../Doc/faq/programming.rst:255 +#: ../Doc/faq/programming.rst:258 msgid "" "Note that this behaviour is not peculiar to lambdas, but applies to regular " "functions too." msgstr "" +"Ce comportement n'est pas propre aux expressions lambda, mais s'applique " +"aussi aux fonctions normales." -#: ../Doc/faq/programming.rst:260 +#: ../Doc/faq/programming.rst:263 msgid "How do I share global variables across modules?" -msgstr "" +msgstr "Comment partager des variables globales entre modules ?" -#: ../Doc/faq/programming.rst:262 +#: ../Doc/faq/programming.rst:265 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 " @@ -334,69 +477,93 @@ msgid "" "each module, any changes made to the module object get reflected " "everywhere. For example:" msgstr "" +"La manière standard de partager des informations entre modules d'un même " +"programme est de créer un module spécial (souvent appelé *config* ou *cfg*) " +"et de l'importer dans tous les modules de l'application ; le module devient " +"accessible depuis l'espace de nommage global. Vu qu'il n'y a qu'une instance " +"de chaque module, tout changement dans l'instance est propagé partout. Par " +"exemple :" -#: ../Doc/faq/programming.rst:268 +#: ../Doc/faq/programming.rst:271 msgid "config.py::" -msgstr "" +msgstr "*config.py* ::" -#: ../Doc/faq/programming.rst:272 +#: ../Doc/faq/programming.rst:275 msgid "mod.py::" -msgstr "" +msgstr "*mod.py* ::" -#: ../Doc/faq/programming.rst:277 +#: ../Doc/faq/programming.rst:280 msgid "main.py::" -msgstr "" +msgstr "*main.py* ::" -#: ../Doc/faq/programming.rst:283 +#: ../Doc/faq/programming.rst:286 msgid "" "Note that using a module is also the basis for implementing the Singleton " "design pattern, for the same reason." 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:288 +#: ../Doc/faq/programming.rst:291 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:290 +#: ../Doc/faq/programming.rst:293 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 " "undefined names." msgstr "" +"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " +"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:294 +#: ../Doc/faq/programming.rst:297 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 " "is in scope. Using one import per line makes it easy to add and delete " "module imports, but using multiple imports per line uses less screen space." msgstr "" +"Les modules doivent être importés au début d'un fichier. Ceci permet " +"d'afficher clairement de quels modules le code à besoin et évite de se " +"demander si le module est dans le contexte. Faire un seul `import` par ligne " +"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:299 +#: ../Doc/faq/programming.rst:302 msgid "It's good practice if you import modules in the following order:" -msgstr "" +msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" -#: ../Doc/faq/programming.rst:301 +#: ../Doc/faq/programming.rst:304 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:302 +#: ../Doc/faq/programming.rst:305 msgid "" "third-party library modules (anything installed in Python's site-packages " "directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." 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:304 +#: ../Doc/faq/programming.rst:307 msgid "locally-developed modules" -msgstr "" +msgstr "les modules développés en local" -#: ../Doc/faq/programming.rst:306 +#: ../Doc/faq/programming.rst:309 msgid "" "It is sometimes necessary to move imports to a function or class to avoid " "problems with circular imports. Gordon McMillan says:" msgstr "" +"Il est parfois nécessaire de déplacer des importations dans une fonction ou " +"une classe pour éviter les problèmes d'importations circulaires. Comme le " +"souligne Gordon McMillan :" -#: ../Doc/faq/programming.rst:309 +#: ../Doc/faq/programming.rst:312 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 " @@ -404,16 +571,26 @@ msgid "" "That's because names in the 1st are not yet available, because the first " "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 " +"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:315 +#: ../Doc/faq/programming.rst:318 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 " "called, the first module will have finished initializing, and the second " "module can do its import." msgstr "" +"Dans ce cas, si le second module n'est utilisé que dans une fonction, " +"l'importation peut facilement être déplacée dans cette fonction. Au moment " +"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:320 +#: ../Doc/faq/programming.rst:323 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 " @@ -421,8 +598,14 @@ msgid "" "importing the correct modules in the corresponding platform-specific code is " "a good option." msgstr "" +"Il peut parfois être nécessaire de déplacer des importations de modules hors " +"de l'espace de plus haut niveau du code si certains de ces modules dépendent " +"de la machine utilisée. Dans ce cas de figure, il est parfois impossible " +"d'importer tous les modules au début du fichier. Dans ce cas, il est " +"recommandé d'importer les modules adéquats dans le code spécifique à la " +"machine." -#: ../Doc/faq/programming.rst:325 +#: ../Doc/faq/programming.rst:328 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 " @@ -435,25 +618,42 @@ msgid "" "only a couple of dictionary lookups. Even if the module name has gone out " "of scope, the module is probably available in :data:`sys.modules`." msgstr "" - -#: ../Doc/faq/programming.rst:338 +"Les imports ne devraient être déplacés dans un espace local, comme dans la " +"définition d'une fonction, que si cela est nécessaire pour résoudre un " +"problème comme éviter des dépendances circulaires ou réduire le temps " +"d'initialisation d'un module. Cette technique est particulièrement utile si " +"la majorité des imports est superflue selon le flux d'exécution du " +"programme. Il est également pertinent de déplacer des importations dans une " +"fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " +"chargement d'un module peut être coûteux à cause du coût fixe " +"d'initialisation d'un module, mais charger un module plusieurs fois est " +"quasiment gratuit, cela ne coûte que quelques indirections dans un " +"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 msgid "Why are default values shared between objects?" -msgstr "" +msgstr "Pourquoi les arguments par défaut sont-ils partagés entre les objets ?" -#: ../Doc/faq/programming.rst:340 +#: ../Doc/faq/programming.rst:343 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 ::" -#: ../Doc/faq/programming.rst:347 +#: ../Doc/faq/programming.rst:350 msgid "" "The first time you call this function, ``mydict`` contains a single item. " "The second time, ``mydict`` contains two items because when ``foo()`` begins " "executing, ``mydict`` starts out with an item already in it." msgstr "" +"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul " +"é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:351 +#: ../Doc/faq/programming.rst:354 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, " @@ -461,27 +661,41 @@ 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 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:356 +#: ../Doc/faq/programming.rst:359 msgid "" "By definition, immutable objects such as numbers, strings, tuples, and " "``None``, are safe from change. Changes to mutable objects such as " "dictionaries, lists, and class instances can lead to confusion." msgstr "" +"Par définition, les objets immuables comme les nombres, les chaînes de " +"caractères, les n-uplets et ``None`` ne sont pas modifiés. Les changements " +"sur des objets muables comme les dictionnaires, les listes et les instances " +"de classe peuvent porter à confusion." -#: ../Doc/faq/programming.rst:360 +#: ../Doc/faq/programming.rst:363 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 " "inside the function, check if the parameter is ``None`` and create a new " "list/dictionary/whatever if it is. For example, don't write::" msgstr "" +"En raison de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " +"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 ::" -#: ../Doc/faq/programming.rst:368 +#: ../Doc/faq/programming.rst:371 msgid "but::" -msgstr "" +msgstr "mais plutôt ::" -#: ../Doc/faq/programming.rst:374 +#: ../Doc/faq/programming.rst:377 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 " @@ -489,31 +703,44 @@ msgid "" "value is requested again. This is called \"memoizing\", and can be " "implemented like this::" msgstr "" +"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les " +"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 ::" -#: ../Doc/faq/programming.rst:389 +#: ../Doc/faq/programming.rst:392 msgid "" "You could use a global variable containing a dictionary instead of the " "default value; it's a matter of taste." 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:394 +#: ../Doc/faq/programming.rst:397 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:396 +#: ../Doc/faq/programming.rst:399 msgid "" "Collect the arguments using the ``*`` and ``**`` specifiers in the " "function's parameter list; this gives you the positional arguments as a " "tuple and the keyword arguments as a dictionary. You can then pass these " "arguments when calling another function by using ``*`` and ``**``::" msgstr "" +"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " +"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 ``**`` ::" -#: ../Doc/faq/programming.rst:415 +#: ../Doc/faq/programming.rst:418 msgid "What is the difference between arguments and parameters?" -msgstr "" +msgstr "Quelle est la différence entre les arguments et les paramètres ?" -#: ../Doc/faq/programming.rst:417 +#: ../Doc/faq/programming.rst:420 msgid "" ":term:`Parameters ` are defined by the names that appear in a " "function definition, whereas :term:`arguments ` are the values " @@ -521,59 +748,78 @@ msgid "" "of arguments a function can accept. For example, given the function " "definition::" msgstr "" +"Les :term:`paramètres ` sont les noms qui apparaissent dans une " +"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 ::" -#: ../Doc/faq/programming.rst:425 +#: ../Doc/faq/programming.rst:428 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 ::" -#: ../Doc/faq/programming.rst:430 +#: ../Doc/faq/programming.rst:433 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." -msgstr "" +msgstr "les valeurs ``42``, ``314``, et ``somevar`` sont des arguments." -#: ../Doc/faq/programming.rst:434 +#: ../Doc/faq/programming.rst:437 msgid "Why did changing list 'y' also change list 'x'?" -msgstr "" +msgstr "Pourquoi modifier la liste 'y' modifie aussi la liste 'x' ?" -#: ../Doc/faq/programming.rst:436 +#: ../Doc/faq/programming.rst:439 msgid "If you wrote code like::" -msgstr "Si vous avez écrit du code comme : ::" +msgstr "Si vous avez écrit du code comme ::" -#: ../Doc/faq/programming.rst:446 +#: ../Doc/faq/programming.rst:449 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:448 +#: ../Doc/faq/programming.rst:451 msgid "There are two factors that produce this result:" -msgstr "" +msgstr "Il y a deux raisons qui conduisent à ce comportement :" -#: ../Doc/faq/programming.rst:450 +#: ../Doc/faq/programming.rst:453 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 " "the same object ``x`` refers to. This means that there is only one object " "(the list), and both ``x`` and ``y`` refer to it." msgstr "" +"Les variables ne sont que des noms qui font référence à des objets. La ligne " +"``y = x`` ne crée pas une copie de la liste — elle crée une nouvelle " +"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:454 +#: ../Doc/faq/programming.rst:457 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:456 +#: ../Doc/faq/programming.rst:459 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 " "same object, using either name accesses the modified value ``[10]``." msgstr "" +"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est " +"passé de ``[]`` à ``[10]``. Vu que les deux variables font référence au même " +"objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " +"des noms." -#: ../Doc/faq/programming.rst:460 +#: ../Doc/faq/programming.rst:463 msgid "If we instead assign an immutable object to ``x``::" -msgstr "" +msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" -#: ../Doc/faq/programming.rst:470 +#: ../Doc/faq/programming.rst:473 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 " @@ -583,8 +829,16 @@ msgid "" "objects (the ints ``6`` and ``5``) and two variables that refer to them " "(``x`` now refers to ``6`` but ``y`` still refers to ``5``)." msgstr "" +"on observe que ``x`` et ``y`` ne sont ici plus égales. Les entiers sont des " +"immuables (:term:`immutable`), et ``x = x + 1`` ne change pas l'entier ``5`` " +"en incrémentant sa valeur. Au contraire, un nouvel objet est créé (l'entier " +"``6``) et affecté à ``x`` (c'est à dire qu'on change l'objet auquel fait " +"référence ``x``). Après cette affectation on a deux objets (les entiers " +"``6`` et ``5``) et deux variables qui font référence à ces deux objets " +"(``x`` fait désormais référence à ``6`` mais ``y`` fait toujours référence à " +"``5``)." -#: ../Doc/faq/programming.rst:478 +#: ../Doc/faq/programming.rst:481 msgid "" "Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " "object, whereas superficially similar operations (for example ``y = y + " @@ -595,8 +849,16 @@ msgid "" "copy of ``y``, you'll instead end up with ``None``, which will likely cause " "your program to generate an easily diagnosed error." msgstr "" +"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) " +"modifient l'objet, alors que des opérations identiques en apparence (par " +"exemple ``y = y + [10]`` et ``sorted(y)``) créent un nouvel objet. En " +"général, en Python, une méthode qui modifie un objet renvoie ``None`` (c'est " +"même systématique dans la bibliothèque standard) pour éviter la confusion " +"entre les deux opérations. Donc écrire par erreur ``y.sort()`` en pensant " +"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:487 +#: ../Doc/faq/programming.rst:490 msgid "" "However, there is one class of operations where the same operation sometimes " "has different behaviors with different types: the augmented assignment " @@ -605,112 +867,133 @@ msgid "" "mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " "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 += " +"[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:494 +#: ../Doc/faq/programming.rst:497 msgid "In other words:" -msgstr "" +msgstr "En d'autres termes :" -#: ../Doc/faq/programming.rst:496 +#: ../Doc/faq/programming.rst:499 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 " "variables that refer to it will see the change." msgstr "" +"Il est possible d'appliquer des opérations qui modifient un objet muable (:" +"class:`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui " +"y font référence verront le changement." -#: ../Doc/faq/programming.rst:499 +#: ../Doc/faq/programming.rst:502 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, " "but operations that transform that value into a new value always return a " "new object." msgstr "" +"Toutes les variables qui font référence à un objet immuable (:class:`str`, :" +"class:`int`, :class:`tuple`, etc.) renvoient la même valeur, mais les " +"opérations qui transforment cette valeur en une nouvelle valeur renvoient " +"toujours un nouvel objet." -#: ../Doc/faq/programming.rst:504 +#: ../Doc/faq/programming.rst:507 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`." 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:509 +#: ../Doc/faq/programming.rst:512 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:511 +#: ../Doc/faq/programming.rst:514 msgid "" "Remember that arguments are passed by assignment in Python. Since " "assignment just creates references to objects, there's no alias between an " "argument name in the caller and callee, and so no call-by-reference per se. " "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 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çons d'en " +"émuler un." -#: ../Doc/faq/programming.rst:516 +#: ../Doc/faq/programming.rst:519 msgid "By returning a tuple of the results::" -msgstr "" +msgstr "En renvoyant un n-uplet de résultats ::" -#: ../Doc/faq/programming.rst:527 +#: ../Doc/faq/programming.rst:530 msgid "This is almost always the clearest solution." -msgstr "" +msgstr "C'est presque toujours la meilleure solution." -#: ../Doc/faq/programming.rst:529 +#: ../Doc/faq/programming.rst:532 msgid "" "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" -"En utilisant des variables globales. Ce qui n'est pas thread-safe, et n'est " -"donc pas recommandé." +"En utilisant des variables globales. Cette approche ne fonctionne pas dans " +"des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), " +"et n'est donc pas recommandée." -#: ../Doc/faq/programming.rst:531 +#: ../Doc/faq/programming.rst:534 msgid "By passing a mutable (changeable in-place) object::" msgstr "En passant un objet muable (modifiable sur place) ::" -#: ../Doc/faq/programming.rst:541 +#: ../Doc/faq/programming.rst:544 msgid "By passing in a dictionary that gets mutated::" -msgstr "En passant un dictionnaire, qui sera modifié : ::" +msgstr "En passant un dictionnaire, qui sera modifié ::" -#: ../Doc/faq/programming.rst:551 +#: ../Doc/faq/programming.rst:554 msgid "Or bundle up values in a class instance::" msgstr "Ou regrouper les valeurs dans une instance de classe ::" -#: ../Doc/faq/programming.rst:567 +#: ../Doc/faq/programming.rst:570 msgid "There's almost never a good reason to get this complicated." -msgstr "" -"Il n'y a pratiquement jamais de bonne raison de faire quelque chose d'aussi " -"compliqué." +msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." -#: ../Doc/faq/programming.rst:569 +#: ../Doc/faq/programming.rst:572 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" -"Votre meilleure option est de renvoyer un *tuple* contenant les multiples " +"La meilleure option reste de renvoyer un n-uplet contenant les différents " "résultats." -#: ../Doc/faq/programming.rst:573 +#: ../Doc/faq/programming.rst:576 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:575 +#: ../Doc/faq/programming.rst:578 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 " "returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested " "scopes::" msgstr "" -"Vous avez deux choix : vous pouvez utiliser les portées imbriquées ou vous " -"pouvez utiliser des objets appelables. Par exemple, supposons que vous " -"vouliez définir ``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui " -"calcule la valeur ``a*x+b``. En utilisant les portées imbriquées : ::" +"Deux possibilités : on peut utiliser des portées imbriquées ou bien des " +"objets appelables. Par exemple, supposons que l'on souhaite définir " +"``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:584 +#: ../Doc/faq/programming.rst:587 msgid "Or using a callable object::" -msgstr "Ou en utilisant un objet appelable : ::" +msgstr "Ou en utilisant un objet appelable ::" -#: ../Doc/faq/programming.rst:594 +#: ../Doc/faq/programming.rst:597 msgid "In both cases, ::" -msgstr "dans les deux cas, ::" +msgstr "Dans les deux cas ::" -#: ../Doc/faq/programming.rst:598 +#: ../Doc/faq/programming.rst:601 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:600 +#: ../Doc/faq/programming.rst:603 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 " @@ -718,14 +1001,14 @@ msgid "" msgstr "" "L'approche par objet appelable a le désavantage d'être légèrement plus lente " "et de produire un code légèrement plus long. Cependant, il faut noter qu'une " -"collection d'objet appelables peuvent partager leur signatures par " -"héritage : ::" +"collection d'objet appelables peuvent partager leurs signatures par " +"héritage ::" -#: ../Doc/faq/programming.rst:609 +#: ../Doc/faq/programming.rst:612 msgid "Object can encapsulate state for several methods::" msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" -#: ../Doc/faq/programming.rst:627 +#: ../Doc/faq/programming.rst:630 msgid "" "Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " "same counting variable." @@ -733,36 +1016,35 @@ msgstr "" "Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions " "partageant une même variable compteur." -#: ../Doc/faq/programming.rst:632 +#: ../Doc/faq/programming.rst:635 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:634 +#: ../Doc/faq/programming.rst:637 msgid "" "In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " "case. Not all objects can be copied, but most can." msgstr "" -"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy` pour le cas " -"général. Tout les objets ne peuvent pas être copiés, mais la plupart le " -"peuvent." +"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:637 +#: ../Doc/faq/programming.rst:640 msgid "" "Some objects can be copied more easily. Dictionaries have a :meth:`~dict." "copy` method::" msgstr "" -"Certains objects peuvent être copiés plus facilement. Les Dictionnaires ont " -"une méthode :meth:`~dict.copy` ::" +"Certains objets peuvent être copiés plus facilement que d'autres. Les " +"dictionnaires ont une méthode :meth:`~dict.copy` ::" -#: ../Doc/faq/programming.rst:642 +#: ../Doc/faq/programming.rst:645 msgid "Sequences can be copied by slicing::" msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" -#: ../Doc/faq/programming.rst:648 +#: ../Doc/faq/programming.rst:651 msgid "How can I find the methods or attributes of an object?" -msgstr "Comment puis-je trouver les méthodes ou les attribues d'un objet?" +msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" -#: ../Doc/faq/programming.rst:650 +#: ../Doc/faq/programming.rst:653 msgid "" "For an instance x of a user-defined class, ``dir(x)`` returns an " "alphabetized list of the names containing the instance attributes and " @@ -772,200 +1054,249 @@ 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:656 +#: ../Doc/faq/programming.rst:659 msgid "How can my code discover the name of an object?" -msgstr "Comment mon code peut il découvrir le nom d'un objet?" +msgstr "Comment un code peut-il obtenir le nom d'un objet ?" -#: ../Doc/faq/programming.rst:658 +#: ../Doc/faq/programming.rst:661 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 " "``def`` and ``class`` statements, but in that case the value is a callable. " "Consider the following code::" msgstr "" -"De façon générale, il ne peut pas, par ce que les objets n'ont pas " -"réellement de noms. Essentiellement, l'assignation attache un nom à une " -"valeur; C'est vrai aussi pour les instructions ``def`` et ``class``, à la " -"différence que dans ce cas la valeur est appelable. Par exemple, dans le " -"code suivant : ::" +"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 " +"différence près que, dans ce cas, la valeur est un appelable. Par exemple, " +"dans le code suivant ::" -#: ../Doc/faq/programming.rst:674 +#: ../Doc/faq/programming.rst:677 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 " "instance of class A. However, it is impossible to say whether the " "instance's name is a or b, since both names are bound to the same value." msgstr "" -"Le fait que la classe ait un nom est discutable, bien qu'elles soit liée à " -"deux noms, et qu'elle soit appelée via le nom B, l'instance crée déclare " -"tout de même être une instance de la classe A. De même Il est impossible de " -"dire si le nom de l'instance est a ou b, les deux noms sont attachés à la " +"Affirmer que la classe a un nom est discutable. Bien qu'elle soit liée à " +"deux noms, et qu'elle soit appelée via le nom B, l'instance créée déclare " +"tout de même être une instance de la classe A. De même, il est impossible de " +"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:679 +#: ../Doc/faq/programming.rst:682 msgid "" "Generally speaking it should not be necessary for your code to \"know the " "names\" of particular values. Unless you are deliberately writing " "introspective programs, this is usually an indication that a change of " "approach might be beneficial." msgstr "" -"De façon général, il ne devrait pas être nécessaire pour votre application " -"de \"connaître le nom\" d'une valeur particulière. À moins que vous soyez " -"délibérément en train d'écrire un programme introspectif, c'est souvent une " -"indication qu'un changement d'approche pourrait être bénéfique." +"De façon générale, une application ne devrait pas avoir besoin de « " +"connaître le nom » d'une valeur particulière. À moins d'être délibérément en " +"train d'écrire un programme introspectif, c'est souvent l'indication qu'un " +"changement d'approche serait bénéfique." -#: ../Doc/faq/programming.rst:684 +#: ../Doc/faq/programming.rst:687 msgid "" "In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " "to this question:" msgstr "" -"Sur comp.lang.python, Fredrik Lundh a donné un jour une excellente analogie " -"pour répondre à cette question:" +"Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " +"analogie pour répondre à cette question :" -#: ../Doc/faq/programming.rst:687 +#: ../Doc/faq/programming.rst:690 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 -- " "so the only way to find out what it's called is to ask all your neighbours " "(namespaces) if it's their cat (object)..." msgstr "" -"C'est pareil que trouver le nom du chat qui traîne devant votre porte: Le " -"chat (objet) ne peux pas vous dire lui même son nom, et il s'en moque un peu " -"-- alors le meilleur moyen de savoir comment il s'appelle est de demander à " -"tous vos voisins (namespaces) si c'est leur chat (objet)…." +"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)…" -#: ../Doc/faq/programming.rst:692 +#: ../Doc/faq/programming.rst:695 msgid "" "....and don't be surprised if you'll find that it's known by many names, or " "no name at all!" msgstr "" -"…et ne soyez pas surpris si vous découvrez qu'il est connus sous plusieurs " -"noms différents, ou pas de nom du tout!" +"…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:697 +#: ../Doc/faq/programming.rst:700 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:699 +#: ../Doc/faq/programming.rst:702 msgid "Comma is not an operator in Python. Consider this session::" msgstr "" -"La virgule n'est pas un opérateur en Python. Observez la session suivante ::" +"La virgule n'est pas un opérateur en Python. Observez le code suivant ::" -#: ../Doc/faq/programming.rst:704 +#: ../Doc/faq/programming.rst:707 msgid "" "Since the comma is not an operator, but a separator between expressions the " "above is evaluated as if you had entered::" msgstr "" "Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " -"expression, l'expression ci dessus, est évaluée de la même façon que si vous " +"expressions, l'expression ci-dessus est évaluée de la même façon que si vous " "aviez écrit ::" -#: ../Doc/faq/programming.rst:709 +#: ../Doc/faq/programming.rst:712 msgid "not::" msgstr "et non ::" -#: ../Doc/faq/programming.rst:713 +#: ../Doc/faq/programming.rst:716 msgid "" "The same is true of the various assignment operators (``=``, ``+=`` etc). " "They are not truly operators but syntactic delimiters in assignment " "statements." msgstr "" -"Ceci est vrai pour tous les opérateurs d'assignations (``=``, ``+=`` etc). " -"Ce ne sont pas vraiment des opérateurs mais des délimiteurs syntaxiques dans " -"les instructions d'assignation." +"Ceci est vrai pour tous les opérateurs d'affectation (``=``, ``+=`` etc). Ce " +"ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " +"dans les instructions d'affectation." -#: ../Doc/faq/programming.rst:718 +#: ../Doc/faq/programming.rst:721 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:720 +#: ../Doc/faq/programming.rst:723 msgid "Yes, there is. The syntax is as follows::" -msgstr "Oui, il y en a un. Sa syntaxe est la suivante : ::" +msgstr "Oui. Sa syntaxe est la suivante ::" -#: ../Doc/faq/programming.rst:727 +#: ../Doc/faq/programming.rst:730 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 ::" -#: ../Doc/faq/programming.rst:732 +#: ../Doc/faq/programming.rst:735 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 ``... " "if ... else ...`` form." msgstr "" +"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* a " +"la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " +"if ... else ...``." -#: ../Doc/faq/programming.rst:738 +#: ../Doc/faq/programming.rst:741 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:740 +#: ../Doc/faq/programming.rst:743 msgid "" -"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:" -"`lambda`. See the following three examples, due to Ulf Bartelt::" +"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" +"lambda`. See the following three examples, due to Ulf Bartelt::" msgstr "" -"Oui. Cela est généralement réalisé en imbriquant les :keyword:`lambda` dans " -"des :keyword:`lambda`. Observez les trois exemples suivants, contribués par " -"Ulf Bartelt ::" +"Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans des :" +"keyword:`!lambda`. Par exemple les trois morceaux de code suivants, créés " +"par Ulf Bartelt ::" -#: ../Doc/faq/programming.rst:767 +#: ../Doc/faq/programming.rst:770 msgid "Don't try this at home, kids!" -msgstr "Les enfants, ne faîtes pas ça chez vous !" +msgstr "Les enfants, ne faites pas ça chez vous !" + +#: ../Doc/faq/programming.rst:776 +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 +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 " +"an externally-usable name. Upon calling a function that accepts positional-" +"only parameters, arguments are mapped to parameters based solely on their " +"position. For example, :func:`pow` is a function that accepts positional-" +"only parameters. Its documentation looks like this::" +msgstr "" +"Une barre oblique dans la liste des arguments d'une fonction indique que les " +"paramètres la précédant sont uniquement positionnels. Les paramètres " +"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 " +"que des paramètres uniquement positionnels. Sa documentation est la " +"suivante ::" + +#: ../Doc/faq/programming.rst:794 +msgid "" +"The slash at the end of the parameter list means that all three parameters " +"are positional-only. Thus, calling :func:`pow` with keyword aguments 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 ::" + +#: ../Doc/faq/programming.rst:803 +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 for " +"position-only parameters in Python." +msgstr "" +"Notez que cet exemple n'est fourni qu'à titre informatif et n'est pas une " +"syntaxe Python valide, bien que la :pep:`570` propose une syntaxe pour les " +"paramètres uniquement positionnels en Python." -#: ../Doc/faq/programming.rst:771 +#: ../Doc/faq/programming.rst:809 msgid "Numbers and strings" msgstr "Nombres et chaînes de caractères" -#: ../Doc/faq/programming.rst:774 +#: ../Doc/faq/programming.rst:812 msgid "How do I specify hexadecimal and octal integers?" -msgstr "Comment puis-je écrire des entiers hexadécimaux ou octaux ?" +msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" -#: ../Doc/faq/programming.rst:776 +#: ../Doc/faq/programming.rst:814 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 " "octal value \"10\" (8 in decimal), type::" msgstr "" "Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " -"puis un \"o\" majuscule ou minuscule. Par exemple assigner la valeur octale " -"\"10\" (8 en décimal) à la variable \"a\", tapez ::" +"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:784 +#: ../Doc/faq/programming.rst:822 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 " "specified in lower or uppercase. For example, in the Python interpreter::" msgstr "" -"L'hexadécimal est tout aussi simple, faîtes précéder le nombre hexadécimal " +"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:797 +#: ../Doc/faq/programming.rst:835 msgid "Why does -22 // 10 return -3?" -msgstr "Pourquoi -22 // 10 donne-t-il -3 ?" +msgstr "Pourquoi ``-22 // 10`` donne-t-il ``-3`` ?" -#: ../Doc/faq/programming.rst:799 +#: ../Doc/faq/programming.rst:837 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 due à la volonté que ``i % j`` ait le même signe que " -"j. Si vous voulez cela, vous voulez aussi : ::" +"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " +"j. Si vous voulez en plus que ::" -#: ../Doc/faq/programming.rst:804 +#: ../Doc/faq/programming.rst:842 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 " "``i % j`` have the same sign as ``i``." msgstr "" -"Alors la division entière doit renvoyer l'entier inférieur. Le C demande " -"aussi à ce que cette égalité soit vérifiée, et donc les compilateur qui " +"alors la division entière doit renvoyer l'entier inférieur. Le C impose " +"é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:808 +#: ../Doc/faq/programming.rst:846 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 " @@ -973,27 +1304,27 @@ msgid "" "say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a " "bug waiting to bite." 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 dit 10h maintenant, " -"que disait-elle il y a 200 heures? ``-190%12 == 2`` est utile; ``-192 % 12 " -"== -10`` est un bug qui attends pour mordre." +"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 " +"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:816 +#: ../Doc/faq/programming.rst:854 msgid "How do I convert a string to a number?" -msgstr "Comment puis-je convertir une chaine de caractère en nombre?" +msgstr "Comment convertir une chaîne de caractères en nombre ?" -#: ../Doc/faq/programming.rst:818 +#: ../Doc/faq/programming.rst:856 msgid "" "For integers, use the built-in :func:`int` type constructor, e.g. " "``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " "e.g. ``float('144') == 144.0``." msgstr "" -"Pour les entiers, utilisez la fonction built-in :func:`int` de type " -"constructeur, par exemple ``int('144') == 144``. De façon similaire, :func:" -"`float` convertit en valeur flottante, par exemple ``float('144') == 144.0``." +"Pour les entiers, utilisez le constructeur natif de :func:`int`, par exemple " +"``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " +"flottante, par exemple ``float('144') == 144.0``." -#: ../Doc/faq/programming.rst:822 +#: ../Doc/faq/programming.rst:860 msgid "" "By default, these interpret the number as decimal, so that ``int('0144') == " "144`` and ``int('0x144')`` raises :exc:`ValueError`. ``int(string, base)`` " @@ -1002,14 +1333,14 @@ msgid "" "interpreted using Python's rules: a leading '0o' indicates octal, and '0x' " "indicates a hex number." msgstr "" -"Par défaut, ces fonctions interprètent les nombre en tant que décimaux, de " -"telles façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" -"`ValueError`. ``int(string, base)`` prends la base depuis laquelle il faut " -"convertir dans le second argument, optionnel, donc ``int('0x144', 16) == " -"324``. Si la base 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." +"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de " +"telle façon que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" +"`ValueError`. Le second argument (optionnel) de ``int(string, base)`` est la " +"base dans laquelle convertir, donc ``int('0x144', 16) == 324``. Si la base " +"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:828 +#: ../Doc/faq/programming.rst:866 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 " @@ -1018,30 +1349,29 @@ msgid "" "``__import__('os').system(\"rm -rf $HOME\")`` which would erase your home " "directory." msgstr "" -"N'utilisez pas la fonction built-in :func:`eval` si tout ce que vous avez " -"besoin est de convertir des chaines en nombres. :func:`eval` sera " -"significativement plus lent et implique des risque de sécurité: quelqu'un " -"pourrait vous envoyez une expression Python pouvant avoir des effets de bord " -"indésirables. Par exemple, quelqu'un pourrait passer ``__import__('os')." -"system(\"rm -rf $HOME\")`` ce qui aurait pour effet d'effacer votre " -"répertoire personnel." +"N'utilisez pas la fonction native :func:`eval` pour convertir des chaînes de " +"caractères en nombres. :func:`eval` est beaucoup plus lente et pose des " +"problèmes de sécurité : quelqu'un pourrait vous envoyer une expression " +"Python pouvant avoir des effets de bord indésirables. Par exemple, quelqu'un " +"pourrait passer ``__import__('os').system(\"rm -rf $HOME\")`` ce qui " +"effacerait votre répertoire personnel." -#: ../Doc/faq/programming.rst:835 +#: ../Doc/faq/programming.rst:873 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 " -"expression Python, ainsi ``eval('09')`` produit une erreur de syntaxe par ce " -"que Python ne permet pas les '0' en tête d'un nombre décimal (à l'exception " -"du nombre '0')." +":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:841 +#: ../Doc/faq/programming.rst:879 msgid "How do I convert a number to a string?" -msgstr "Comment convertir un nombre en chaine de caractère?" +msgstr "Comment convertir un nombre en chaîne de caractères ?" -#: ../Doc/faq/programming.rst:843 +#: ../Doc/faq/programming.rst:881 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, " @@ -1050,12 +1380,19 @@ msgid "" "``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}\"." "format(1.0/3.0)`` yields ``'0.333'``." msgstr "" +"Pour transformer, par exemple, le nombre 144 en la chaîne de caractères " +"'144', il faut utiliser la fonction native :func:`str`. Pour obtenir la " +"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'``." -#: ../Doc/faq/programming.rst:852 +#: ../Doc/faq/programming.rst:890 msgid "How do I modify a string in place?" -msgstr "Comment modifier une chaine de caractère \"en place\"?" +msgstr "Comment modifier une chaîne de caractères « sur place » ?" -#: ../Doc/faq/programming.rst:854 +#: ../Doc/faq/programming.rst:892 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 " @@ -1063,18 +1400,23 @@ msgid "" "unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " "module::" msgstr "" +"C'est impossible car les chaînes de caractères sont immuables. Dans la " +"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` ::" -#: ../Doc/faq/programming.rst:884 +#: ../Doc/faq/programming.rst:922 msgid "How do I use strings to call functions/methods?" msgstr "" -"Comment utiliser des chaines de caractères pour appeler des fonctions/" -"méthodes?" +"Comment utiliser des chaînes de caractères pour appeler des fonctions/" +"méthodes ?" -#: ../Doc/faq/programming.rst:886 +#: ../Doc/faq/programming.rst:924 msgid "There are various techniques." -msgstr "Il y a différentes techniques." +msgstr "Il y a plusieurs façons de faire." -#: ../Doc/faq/programming.rst:888 +#: ../Doc/faq/programming.rst:926 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 " @@ -1082,54 +1424,55 @@ msgid "" "a case construct::" msgstr "" "La meilleure est d'utiliser un dictionnaire qui fait correspondre les " -"chaines de caractères à des fonctions. Le principal avantage de cette " -"technique est que les chaines n'ont pas besoin d'être égales aux noms de " -"fonctions. C'est aussi la principale façon d'imiter la construction \"case" +"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" "\" ::" -#: ../Doc/faq/programming.rst:903 +#: ../Doc/faq/programming.rst:941 msgid "Use the built-in function :func:`getattr`::" msgstr "Utiliser la fonction :func:`getattr` ::" -#: ../Doc/faq/programming.rst:908 +#: ../Doc/faq/programming.rst:946 msgid "" "Note that :func:`getattr` works on any object, including classes, class " "instances, modules, and so on." msgstr "" -"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclue les " +"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:911 +#: ../Doc/faq/programming.rst:949 msgid "This is used in several places in the standard library, like this::" msgstr "" -"Ceci est utilisé dans plusieurs endroit de la bibliothèque standard, de " +"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " "cette façon ::" -#: ../Doc/faq/programming.rst:924 +#: ../Doc/faq/programming.rst:962 msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" msgstr "" -"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction ::" +"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la " +"fonction ::" -#: ../Doc/faq/programming.rst:937 +#: ../Doc/faq/programming.rst:975 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 " "resulted in an arbitrary function being executed." msgstr "" -"Note: En utilisant :func:`eval` est lent est dangereux. Si vous n'avez pas " -"un contrôle absolu sur le contenu de la chaine de caractère, quelqu'un peut " -"passer une chaine de caractère pouvant résulter en l'exécution de code " -"arbitraire." +"Note : utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un " +"contrôle absolu sur le contenu de la chaîne de caractères, quelqu'un " +"pourrait passer une chaîne de caractères pouvant appeler n'importe quelle " +"fonction." -#: ../Doc/faq/programming.rst:942 +#: ../Doc/faq/programming.rst:980 msgid "" "Is there an equivalent to Perl's chomp() for removing trailing newlines from " "strings?" msgstr "" -"Existe-t'il un équivalent à la fonction chomp() de Perl, pour retirer les " -"caractères de fin de ligne d'une chaine de caractère?" +"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:944 +#: ../Doc/faq/programming.rst:982 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 " @@ -1137,29 +1480,29 @@ msgid "" "empty lines at the end, the line terminators for all the blank lines will be " "removed::" msgstr "" -"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toute occurrence " -"de tout marqueur de fin de ligne, à la fin d'une chaîne de caractère ``S``, " -"sans en retirer aucun espace. Si la chaîne ``S`` représente plus d'une " -"ligne, avec plusieurs lignes vides, les marqueurs de fin de de lignes de " -"chaque lignes vides seront retirés : ::" +"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les " +"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 ligne de chaque ligne vide seront retirés ::" -#: ../Doc/faq/programming.rst:956 +#: ../Doc/faq/programming.rst:994 msgid "" "Since this is typically only desired when reading text one line at a time, " "using ``S.rstrip()`` this way works well." msgstr "" -"Du fait que ce soit principalement utile en lisant un texte ligne à ligne, " -"utiliser ``S.rstrip()`` devrait marcher correctement." +"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:961 +#: ../Doc/faq/programming.rst:999 msgid "Is there a scanf() or sscanf() equivalent?" -msgstr "Existe-t'il un équivalent à scanf() ou sscanf()?" +msgstr "Existe-t-il un équivalent à ``scanf()`` ou ``sscanf()`` ?" -#: ../Doc/faq/programming.rst:963 +#: ../Doc/faq/programming.rst:1001 msgid "Not as such." msgstr "Pas exactement." -#: ../Doc/faq/programming.rst:965 +#: ../Doc/faq/programming.rst:1003 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 " @@ -1168,98 +1511,121 @@ msgid "" "parameter which is useful if the line uses something other than whitespace " "as a separator." msgstr "" -"Pour une simple analyse de chaine, l'approche la plus simple est " +"Pour une simple analyse de chaîne, l'approche la plus simple est " "généralement de découper la ligne en mots délimités par des espaces, en " -"utilisant la méthode :meth:`~str.split` des objets chaine de caractères, et " -"ensuite de convertir les chaines de décimales en valeurs numériques en " -"utilisant la fonction :func:`int` ou :func:`float`, ``split()`` supporte un " +"utilisant la méthode :meth:`~str.split` des objets chaîne de caractères, et " +"ensuite de convertir les chaînes de décimaux en valeurs numériques en " +"utilisant la fonction :func:`int` ou :func:`float`. ``split()`` possède un " "paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " -"que des espaces comme séparateur." +"que des espaces comme séparateurs." -#: ../Doc/faq/programming.rst:971 +#: ../Doc/faq/programming.rst:1009 msgid "" "For more complicated input parsing, regular expressions are more powerful " "than C's :c:func:`sscanf` and better suited for the task." msgstr "" -"Pour les analyses plus compliquées, les expressions rationnelles sont plus " +"Pour des analyses plus compliquées, les expressions rationnelles sont plus " "puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " "tâche." -#: ../Doc/faq/programming.rst:976 +#: ../Doc/faq/programming.rst:1014 msgid "What does 'UnicodeDecodeError' or 'UnicodeEncodeError' error mean?" msgstr "" -"Que signifient les erreurs 'UnicodeDecodeError' ou 'UnicodeEncodeError' ?" +"Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" -#: ../Doc/faq/programming.rst:978 +#: ../Doc/faq/programming.rst:1016 msgid "See the :ref:`unicode-howto`." -msgstr "Regardez :ref:`unicode-howto`." +msgstr "Voir :ref:`unicode-howto`." -#: ../Doc/faq/programming.rst:982 +#: ../Doc/faq/programming.rst:1020 msgid "Performance" -msgstr "" +msgstr "Performances" -#: ../Doc/faq/programming.rst:985 +#: ../Doc/faq/programming.rst:1023 msgid "My program is too slow. How do I speed it up?" -msgstr "" +msgstr "Mon programme est trop lent. Comment l'accélérer ?" -#: ../Doc/faq/programming.rst:987 +#: ../Doc/faq/programming.rst:1025 msgid "" "That's a tough one, in general. First, here are a list of things to " "remember before diving further:" 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:990 +#: ../Doc/faq/programming.rst:1028 msgid "" "Performance characteristics vary across Python implementations. This FAQ " "focusses 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:992 +#: ../Doc/faq/programming.rst:1030 msgid "" "Behaviour can vary across operating systems, especially when talking about I/" "O or multi-threading." msgstr "" +"Les comportements peuvent différer d'un système d'exploitation à l'autre, " +"tout particulièrement quand il s'agit d'entrée/sortie ou de fils d'exécution " +"multiples." -#: ../Doc/faq/programming.rst:994 +#: ../Doc/faq/programming.rst:1032 msgid "" "You should always find the hot spots in your program *before* attempting to " "optimize any code (see the :mod:`profile` module)." msgstr "" +"Il faut toujours essayer de trouver où sont les points de contention d'un " +"programme *avant* d'essayer d'optimiser du code (voir le module :mod:" +"`profile`)." -#: ../Doc/faq/programming.rst:996 +#: ../Doc/faq/programming.rst:1034 msgid "" "Writing benchmark scripts will allow you to iterate quickly when searching " "for improvements (see the :mod:`timeit` module)." 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:998 +#: ../Doc/faq/programming.rst:1036 msgid "" "It is highly recommended to have good code coverage (through unit testing or " "any other technique) before potentially introducing regressions hidden in " "sophisticated optimizations." msgstr "" +"Il est très fortement recommandé d'avoir une bonne couverture de code (avec " +"des tests unitaires ou autre) avant d'ajouter des erreurs dans des " +"optimisations sophistiquées." -#: ../Doc/faq/programming.rst:1002 +#: ../Doc/faq/programming.rst:1040 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 " "performance levels:" msgstr "" +"Ceci étant dit, il y a beaucoup d'astuces pour accélérer du code Python. " +"Voici quelques principes généraux qui peuvent aider à atteindre des niveaux " +"de performance satisfaisants :" -#: ../Doc/faq/programming.rst:1006 +#: ../Doc/faq/programming.rst:1044 msgid "" "Making your algorithms faster (or changing to faster ones) can yield much " "larger benefits than trying to sprinkle micro-optimization tricks all over " "your code." msgstr "" +"Améliorer les algorithmes (ou en changer pour des plus performants) peut " +"produire de bien meilleurs résultats que d'optimiser ça et là de petites " +"portions du code." -#: ../Doc/faq/programming.rst:1010 +#: ../Doc/faq/programming.rst:1048 msgid "" "Use the right data structures. Study documentation for the :ref:`bltin-" "types` and the :mod:`collections` module." 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:1013 +#: ../Doc/faq/programming.rst:1051 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 " @@ -1269,8 +1635,16 @@ msgid "" "do sorting (and see the :ref:`sortinghowto` for examples of moderately " "advanced usage)." msgstr "" +"Quand la bibliothèque standard fournit une implémentation pour quelque " +"chose, il y a de fortes chances (même si ce n'est pas systématique) que " +"cette implémentation soit plus rapide que la votre. C'est d'autant plus vrai " +"pour les routines écrites en C, comme les routines natives et certaines " +"extensions de types. Par exemple, il faut utiliser la méthode native :meth:" +"`list.sort` ou la fonction :func:`sorted` similaire pour classer (et se " +"référer à la section :ref:`sortinghowto` pour des exemples d'utilisation " +"courante)." -#: ../Doc/faq/programming.rst:1021 +#: ../Doc/faq/programming.rst:1059 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, " @@ -1278,8 +1652,13 @@ msgid "" "especially under the form of tiny functions or methods (which are also often " "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 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:1027 +#: ../Doc/faq/programming.rst:1065 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 " @@ -1290,72 +1669,99 @@ msgid "" "skills, you can also :ref:`write a C extension module ` " "yourself." msgstr "" +"Si vous atteignez les limites de ce que du Python « pur » permet de faire, " +"il y a des outils qui permettent d'aller plus loin. Par exemple, `Cython " +"`_ peut compiler une version légèrement modifiée de code " +"Python en une extension C et est disponible sur de nombreuses plate-formes. " +"Cython peut bénéficier de la compilation (et de l'annotation, optionnelle, " +"des types) pour rendre votre code beaucoup plus rapide que s'il était " +"interprété. Si vous avez confiance en vos capacités de programmation en C, " +"vous pouvez aussi :ref:`écrire un module d'extension en C` " +"vous-même." -#: ../Doc/faq/programming.rst:1037 +#: ../Doc/faq/programming.rst:1075 msgid "" "The wiki page devoted to `performance tips `_." msgstr "" +"La page wiki dédiée aux `astuces de performance `_." -#: ../Doc/faq/programming.rst:1043 +#: ../Doc/faq/programming.rst:1081 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:1045 +#: ../Doc/faq/programming.rst:1083 msgid "" ":class:`str` and :class:`bytes` objects are immutable, therefore " "concatenating many strings together is inefficient as each concatenation " "creates a new object. In the general case, the total runtime cost is " "quadratic in the total string length." msgstr "" +"Les objets :class:`str` et :class:`bytes` sont immuables, par conséquent " +"concaténer un grand nombre de chaînes de caractères entre elles n'est pas " +"très efficace car chaque concaténation crée un nouvel objet. Dans le cas " +"général, la complexité est quadratique par rapport à la taille totale de la " +"chaîne." -#: ../Doc/faq/programming.rst:1050 +#: ../Doc/faq/programming.rst:1088 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 ::" -#: ../Doc/faq/programming.rst:1058 +#: ../Doc/faq/programming.rst:1096 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:1060 +#: ../Doc/faq/programming.rst:1098 msgid "" "To accumulate many :class:`bytes` objects, the recommended idiom is to " "extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " "operator)::" 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 ``+=``) ::" -#: ../Doc/faq/programming.rst:1069 +#: ../Doc/faq/programming.rst:1107 msgid "Sequences (Tuples/Lists)" -msgstr "Sequences (Tuples/Lists)" +msgstr "Séquences (n-uplets / listes)" -#: ../Doc/faq/programming.rst:1072 +#: ../Doc/faq/programming.rst:1110 msgid "How do I convert between tuples and lists?" -msgstr "Comment convertir les listes en tuples et inversement?" +msgstr "Comment convertir les listes en n-uplets et inversement ?" -#: ../Doc/faq/programming.rst:1074 +#: ../Doc/faq/programming.rst:1112 msgid "" "The type constructor ``tuple(seq)`` converts any sequence (actually, any " "iterable) into a tuple with the same items in the same order." msgstr "" -"Le constructeur de type ``tuple(seq)`` convertit toute séquence (en fait " -"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…." +"Le constructeur de type ``tuple(seq)`` convertit toute séquence (plus " +"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:1077 +#: ../Doc/faq/programming.rst:1115 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 " "copy but returns the same object, so it is cheap to call :func:`tuple` when " "you aren't sure that an object is already a tuple." msgstr "" -"Par exemple ``tuple([1, 2, 3])`` renvoi ``(1, 2, 3)`` et ``tuple('abc')`` " -"renvoi ``('a', 'b', 'c')``. Si l'argument est un tuple, cela ne crèe pas une " -"copie, mais renvoi le même objet, ce qui fait de :func:`tuple` un fonction " -"économique à appeler quand vous ne savez pas si votre objet est déjà un " -"tulpe." +"Par exemple ``tuple([1, 2, 3])`` renvoie ``(1, 2, 3)`` et ``tuple('abc')`` " +"renvoie ``('a', 'b', 'c')``. Si l'argument est un n-uplet, cela ne crée pas " +"de copie, mais renvoie le même objet, ce qui fait de :func:`tuple` une " +"fonction économique à appeler quand vous ne savez pas si votre objet est " +"déjà un n-uplet." -#: ../Doc/faq/programming.rst:1082 +#: ../Doc/faq/programming.rst:1120 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, " @@ -1368,11 +1774,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:1089 +#: ../Doc/faq/programming.rst:1127 msgid "What's a negative index?" -msgstr "Qu'est-ce qu'un indexe négatif?" +msgstr "Qu'est-ce qu'un index négatif ?" -#: ../Doc/faq/programming.rst:1091 +#: ../Doc/faq/programming.rst:1129 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 " @@ -1381,104 +1787,104 @@ msgid "" "``seq[len(seq)-n]``." msgstr "" "Les séquences Python sont indexées avec des nombres positifs aussi bien que " -"négatifs. Pour les nombres positifs, 0 est le premier index, 1 est le " -"second, et ainsi de suite. Pour les indexes négatifs, -1 est le 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]``." +"négatifs. Pour les nombres positifs, 0 est le premier indice, 1 est le " +"deuxième, et ainsi de suite. Pour les indices négatifs, ``-1`` est le " +"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:1096 +#: ../Doc/faq/programming.rst:1134 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 " "removing the trailing newline from a string." msgstr "" -"Utiliser des indexes négatifs peut être très pratique. Par exemple " -"``S[:-1]`` indique la chaine entière a l'exception du dernier caractère, ce " -"qui est pratique pour retirer un caractère de fin de ligne en fin d'une " -"chaine." +"Utiliser des indices négatifs peut être très pratique. Par exemple " +"``S[:-1]`` représente la chaîne tout entière à l'exception du dernier " +"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:1102 +#: ../Doc/faq/programming.rst:1140 msgid "How do I iterate over a sequence in reverse order?" -msgstr "Comment itérer à rebours sur une séquence?" +msgstr "Comment itérer à rebours sur une séquence ?" -#: ../Doc/faq/programming.rst:1104 +#: ../Doc/faq/programming.rst:1142 msgid "" "Use the :func:`reversed` built-in function, which is new in Python 2.4::" msgstr "" -"Utilisez la fonction embarquée :func:`reversed`, qui est apparue en Python " +"Utilisez la fonction native :func:`reversed`, qui a été introduite en Python " "2.4 ::" -#: ../Doc/faq/programming.rst:1109 +#: ../Doc/faq/programming.rst:1147 msgid "" "This won't touch your original sequence, but build a new copy with reversed " "order to iterate over." msgstr "" -"Cela ne modifiera pas votre séquence initiale, mais construira à la place " -"une copie en ordre inverse pour itérer dessus." +"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:1112 +#: ../Doc/faq/programming.rst:1150 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:1119 +#: ../Doc/faq/programming.rst:1157 msgid "How do you remove duplicates from a list?" -msgstr "Comment retirer les doublons d'une liste?" +msgstr "Comment retirer les doublons d'une liste ?" -#: ../Doc/faq/programming.rst:1121 +#: ../Doc/faq/programming.rst:1159 msgid "See the Python Cookbook for a long discussion of many ways to do this:" msgstr "" -"Lisez le Python Cookbook pour trouver une longue discussion sur les " -"nombreuses façons de faire cela:" +"Lisez le « livre de recettes » Python pour trouver une longue discussion sur " +"les nombreuses approches possibles :" -#: ../Doc/faq/programming.rst:1123 +#: ../Doc/faq/programming.rst:1161 msgid "https://code.activestate.com/recipes/52560/" -msgstr "" +msgstr "https://code.activestate.com/recipes/52560/" -#: ../Doc/faq/programming.rst:1125 +#: ../Doc/faq/programming.rst:1163 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::" msgstr "" -"Si changer l'ordre de la liste ne vous dérange pas, commencez par trier " -"celle ci, puis parcourez la d'un bout à l'autre, en supprimant les doublons " +"Si changer l'ordre de la liste ne vous dérange pas, commencez par ordonner " +"celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " "trouvés en chemin ::" -#: ../Doc/faq/programming.rst:1137 +#: ../Doc/faq/programming.rst:1175 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àd, qu'elles sont toutes :term:`hachables `) ceci " -"est souvent plus rapide : ::" +"dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables " +"`) ceci est souvent plus rapide ::" -#: ../Doc/faq/programming.rst:1142 +#: ../Doc/faq/programming.rst:1180 msgid "" "This converts the list into a set, thereby removing duplicates, and then " "back into a list." msgstr "" -"Ceci convertis la liste en un ensemble, ce qui supprime automatiquement les " +"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " "doublons, puis la transforme à nouveau en liste." -#: ../Doc/faq/programming.rst:1147 +#: ../Doc/faq/programming.rst:1185 msgid "How do you make an array in Python?" -msgstr "Comment construire un tableau en Python?" +msgstr "Comment construire un tableau en Python ?" -#: ../Doc/faq/programming.rst:1149 +#: ../Doc/faq/programming.rst:1187 msgid "Use a list::" msgstr "Utilisez une liste ::" -#: ../Doc/faq/programming.rst:1153 +#: ../Doc/faq/programming.rst:1191 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 " "different types." msgstr "" -"Les listes ont un cout équivalent à celui des tableau C ou Pascal; la " +"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la " "principale différence est qu'une liste Python peut contenir des objets de " "différents types." -#: ../Doc/faq/programming.rst:1156 +#: ../Doc/faq/programming.rst:1194 msgid "" "The ``array`` module also provides methods for creating arrays of fixed " "types with compact representations, but they are slower to index than " @@ -1487,18 +1893,18 @@ msgid "" msgstr "" "Le module ``array`` fournit des méthodes pour créer des tableaux de types " "fixes dans une représentation compacte, mais ils sont plus lents à indexer " -"que les listes. Notez aussi que l'extension ``Numeric`` et d'autres, " -"fournissent différentes structures de types tableaux, avec des " +"que les listes. Notez aussi que l'extension ``Numeric`` (et d'autres) " +"fournissent différentes structures de type tableaux, avec des " "caractéristiques différentes." -#: ../Doc/faq/programming.rst:1161 +#: ../Doc/faq/programming.rst:1199 msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" -"Pour obtenir des listes chainées de type Lisp, vous pouvez émuler les \"cons " -"cells\" en utilisant des tuples ::" +"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:1165 +#: ../Doc/faq/programming.rst:1203 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 " @@ -1506,97 +1912,109 @@ msgid "" "it's usually a lot slower than using Python lists." msgstr "" "Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt " -"qu'un tuple. Ici la version équivalente au \"car\" de Lisp est " -"``lisp_list[0]`` et l'équivalent à \"cdr\" est ``list_lip[1]``. Ne faîtes " +"qu'un tuple. Ici la version équivalente du *car* de Lisp est " +"``lisp_list[0]`` et l'équivalent de *cdr* est ``lisp_list[1]``. Ne faites " "ceci que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " -"générale bien plus lente que les listes Python." +"général bien plus lente que les listes Python." -#: ../Doc/faq/programming.rst:1174 +#: ../Doc/faq/programming.rst:1212 msgid "How do I create a multidimensional list?" -msgstr "Comment puis-je créer une liste à plusieurs dimensions?" +msgstr "Comment créer une liste à plusieurs dimensions ?" -#: ../Doc/faq/programming.rst:1176 +#: ../Doc/faq/programming.rst:1214 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:1180 +#: ../Doc/faq/programming.rst:1218 msgid "This looks correct if you print it:" -msgstr "" +msgstr "Elle semble correcte si on l'affiche :" -#: ../Doc/faq/programming.rst:1191 +#: ../Doc/faq/programming.rst:1229 msgid "But when you assign a value, it shows up in multiple places:" msgstr "" -"Mais quand vous assignez une valeur, elle apparait en de multiples endroits::" +"Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs " +"endroits ::" -#: ../Doc/faq/programming.rst:1203 +#: ../Doc/faq/programming.rst:1241 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 " "containing 3 references to the same list of length two. Changes to one row " "will show in all rows, which is almost certainly not what you want." msgstr "" -"La raison en est que dupliquer une liste en utilisant ``*`` ne crée pas de " -"copies, cela crée seulement des références aux objets existants. Le ``*3`` " -"crée une liste contenant trois références à la même liste de longueur deux. " -"Un changement dans une colonne apparaîtra donc dans toutes les colonnes. Ce " -"qui n'est de façon quasi certaine, pas ce que vous souhaitez." +"Dupliquer une liste en utilisant ``*`` ne crée en réalité pas de copie mais " +"seulement des références aux objets existants. Le ``*3`` crée une liste " +"contenant trois références à la même liste de longueur deux. Un changement " +"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:1208 +#: ../Doc/faq/programming.rst:1246 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::" msgstr "" -"L'approche suggérée est de créer une liste de la longueur désiré d'abords, " -"puis de remplir tous les éléments avec une chaîne nouvellement créée ::" +"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:1215 +#: ../Doc/faq/programming.rst:1253 msgid "" "This generates a list containing 3 different lists of length two. You can " "also use a list comprehension::" msgstr "" -"Cette liste générée contient trois listes différentes de longueur deux. Vous " -"pouvez aussi utilisez la notation de compréhension de listes ::" +"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 ::" -#: ../Doc/faq/programming.rst:1221 +#: ../Doc/faq/programming.rst:1259 msgid "" "Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." msgstr "" +"Vous pouvez aussi utiliser une extension qui fournit un type matriciel " +"natif ; `NumPy `_ est la plus répandue." -#: ../Doc/faq/programming.rst:1226 +#: ../Doc/faq/programming.rst:1264 msgid "How do I apply a method to a sequence of objects?" -msgstr "Comment appliquer une méthode à une séquence d'objets?" +msgstr "Comment appliquer une méthode à une séquence d'objets ?" -#: ../Doc/faq/programming.rst:1228 +#: ../Doc/faq/programming.rst:1266 msgid "Use a list comprehension::" -msgstr "Utilisez une compréhension de liste ::" +msgstr "Utilisez une liste en compréhension ::" -#: ../Doc/faq/programming.rst:1235 +#: ../Doc/faq/programming.rst:1273 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 " +"l'addition fonctionne ?" -#: ../Doc/faq/programming.rst:1237 +#: ../Doc/faq/programming.rst:1275 msgid "" "This is because of a combination of the fact that augmented assignment " "operators are *assignment* operators, and the difference between mutable and " "immutable objects in Python." msgstr "" +"Ceci est dû à la combinaison de deux facteurs : le fait que les opérateurs " +"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:1241 +#: ../Doc/faq/programming.rst:1279 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éments d'un n-uplet qui pointe sur des " +"objets muables, mais on prendra ``list`` et ``+=`` comme exemple." -#: ../Doc/faq/programming.rst:1245 +#: ../Doc/faq/programming.rst:1283 msgid "If you wrote::" -msgstr "Si vous écrivez : ::" +msgstr "Si vous écrivez ::" -#: ../Doc/faq/programming.rst:1253 +#: ../Doc/faq/programming.rst:1291 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, " @@ -1604,30 +2022,41 @@ msgid "" "to element ``0`` of the tuple, we get an error because we can't change what " "an element of a tuple points to." msgstr "" +"La cause de l'exception est claire : ``1`` est ajouté à l'objet " +"``a_tuple[0]`` qui pointe sur (``1``), ce qui produit l'objet résultant " +"``2``, mais, lorsque l'on tente d'affecter le résultat du calcul, ``2``, à " +"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:1259 +#: ../Doc/faq/programming.rst:1297 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 ::" -#: ../Doc/faq/programming.rst:1268 +#: ../Doc/faq/programming.rst:1306 msgid "" "It is the assignment part of the operation that produces the error, since a " "tuple is immutable." 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:1271 +#: ../Doc/faq/programming.rst:1309 msgid "When you write something like::" -msgstr "" +msgstr "Quand vous écrivez un code du style ::" -#: ../Doc/faq/programming.rst:1279 +#: ../Doc/faq/programming.rst:1317 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é ::" -#: ../Doc/faq/programming.rst:1285 +#: ../Doc/faq/programming.rst:1323 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 " @@ -1636,69 +2065,84 @@ msgid "" "calling ``extend`` on the list and returning the list. That's why we say " "that for lists, ``+=`` is a \"shorthand\" for ``list.extend``::" msgstr "" +"Pour comprendre ce qui se passe, il faut savoir que, premièrement, si un " +"objet implémente la méthode magique c, celle-ci est appelée quand " +"l'affectation incrémentale ``+=`` est exécutée et sa valeur de retour est " +"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`` ::" -#: ../Doc/faq/programming.rst:1297 +#: ../Doc/faq/programming.rst:1335 msgid "This is equivalent to::" msgstr "C’est équivalent à ::" -#: ../Doc/faq/programming.rst:1302 +#: ../Doc/faq/programming.rst:1340 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 " "assignment is a no-op, since it is a pointer to the same object that " "``a_list`` was previously pointing to, but the assignment still happens." msgstr "" +"L'objet sur lequel pointe ``a_list`` a été modifié et le pointeur vers " +"l'objet modifié est réaffecté à ``a_list``. *In fine*, l'affectation ne " +"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:1307 +#: ../Doc/faq/programming.rst:1345 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 à ::" -#: ../Doc/faq/programming.rst:1315 +#: ../Doc/faq/programming.rst:1353 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, " "that final assignment still results in an error, because tuples are " "immutable." msgstr "" +"L'appel à ``__iadd__`` réussit et la liste est étendue, mais bien que " +"``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:1321 -msgid "Dictionaries" -msgstr "Dictionnaires" - -#: ../Doc/faq/programming.rst:1324 +#: ../Doc/faq/programming.rst:1359 msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" msgstr "" -"Je souhaite faire un tri compliqué: peut on faire une transformation de " -"Schwartz en Python?" +"Je souhaite faire un classement compliqué : peut on faire une transformation " +"de Schwartz en Python ?" -#: ../Doc/faq/programming.rst:1326 +#: ../Doc/faq/programming.rst:1361 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 " "value\". In Python, use the ``key`` argument for the :meth:`list.sort` " "method::" 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` ::" -#: ../Doc/faq/programming.rst:1335 +#: ../Doc/faq/programming.rst:1370 msgid "How can I sort one list by values from another list?" -msgstr "" -"Comment puis-je trier une liste en fonction des valeurs d'une autre liste?" +msgstr "Comment ordonner une liste en fonction des valeurs d'une autre liste ?" -#: ../Doc/faq/programming.rst:1337 +#: ../Doc/faq/programming.rst:1372 msgid "" "Merge them into an iterator of tuples, sort the resulting list, and then " "pick out the element you want. ::" msgstr "" -"Fusionnez les dans un itérateur de tuples, triez la liste obtenue, puis " -"choisissez l'élément que vous voulez. ::" +"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:1351 +#: ../Doc/faq/programming.rst:1386 msgid "An alternative for the last step is::" -msgstr "Une alternative pour la dernière étape est : ::" +msgstr "Vous pouvez remplacer la dernière étape par ::" -#: ../Doc/faq/programming.rst:1356 +#: ../Doc/faq/programming.rst:1391 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 " @@ -1708,24 +2152,25 @@ msgid "" "\"result.append\" requires an extra attribute lookup, and third, there's a " "speed reduction from having to make all those function calls." msgstr "" -"Si vous trouvez cela plus lisible, vous préférez peut-être utiliser ceci à " -"la place de la compréhension de la liste finale. Toutefois, ceci est presque " -"deux fois plus lent pour les longues listes. Pourquoi? Tout d'abord, " -"``append ()`` doit réaffecter la mémoire, et si il utilise quelques astuces " -"pour éviter de le faire à chaque fois, il doit encore le faire de temps en " -"temps, ce qui coûte assez cher. Deuxièmement, l'expression \"result.append\" " -"exige une recherche d'attribut supplémentaire, et enfin, tous ces appels de " -"fonction impactent la vitesse d'exécution." - -#: ../Doc/faq/programming.rst:1366 +"Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt " +"qu'une liste en compréhension. Toutefois, ce code est presque deux fois plus " +"lent pour une liste de grande taille. Pourquoi ? Tout d'abord, parce que " +"``append()`` doit ré-allouer de la mémoire et, même si elle utilise quelques " +"astuces pour éviter d'effectuer la ré-allocation à chaque appel, elle doit " +"tout de même le faire de temps en temps, ce qui coûte assez cher. " +"Deuxièmement, parce que l'expression ``result.append`` fait un accès " +"supplémentaire à un attribut et, enfin, parce que tous ces appels de " +"fonctions réduisent la vitesse d'exécution." + +#: ../Doc/faq/programming.rst:1401 msgid "Objects" msgstr "Objets" -#: ../Doc/faq/programming.rst:1369 +#: ../Doc/faq/programming.rst:1404 msgid "What is a class?" -msgstr "Qu'est-ce qu'une classe?" +msgstr "Qu'est-ce qu'une classe ?" -#: ../Doc/faq/programming.rst:1371 +#: ../Doc/faq/programming.rst:1406 msgid "" "A class is the particular object type created by executing a class " "statement. Class objects are used as templates to create instance objects, " @@ -1737,7 +2182,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:1375 +#: ../Doc/faq/programming.rst:1410 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. " @@ -1747,57 +2192,58 @@ msgid "" "``OutlookMailbox`` that handle various specific mailbox formats." msgstr "" "Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa " -"ou ses classes de base. Il hérite alors les attributs et les méthodes de ses " -"classes de base. Cela permet à un modèle d'objet d'être successivement " -"raffinés par héritage. Vous pourriez avoir une classe générique ``Mailbox`` " -"qui fournit des méthodes d'accès de base pour une boîte aux lettres, et sous-" -"classes telles que ``MboxMailbox``, ``MaildirMailbox``, ``OutlookMailbox`` " -"qui gèrent les différents formats de boîtes aux lettres spécifiques." - -#: ../Doc/faq/programming.rst:1384 +"(ou ses) classe(s) de base. Elle hérite alors des attributs et des méthodes " +"de ses classes de base. Cela permet à un modèle d'objet d'être " +"successivement raffiné par héritage. Vous pourriez avoir une classe " +"générique ``Mailbox``, qui fournit des méthodes d'accès de base pour une " +"boîte aux lettres, et des sous-classes telles que ``MboxMailbox``, " +"``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats " +"spécifiques de boîtes aux lettres." + +#: ../Doc/faq/programming.rst:1419 msgid "What is a method?" -msgstr "Qu'est-ce qu'une méthode?" +msgstr "Qu'est-ce qu'une méthode ?" -#: ../Doc/faq/programming.rst:1386 +#: ../Doc/faq/programming.rst:1421 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 " "definition::" msgstr "" -"Une méthode est une fonction sur un objet ``x`` appelez normalement comme " -"``x.name(arguments…)``. Les méthodes sont définies comme des fonctions à " -"l'intérieur de la définition de classe ::" +"Une méthode est une fonction sur un objet ``x`` qu'on appelle de manière " +"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:1396 +#: ../Doc/faq/programming.rst:1431 msgid "What is self?" -msgstr "Qu'est-ce que self?" +msgstr "Qu'est-ce que self ?" -#: ../Doc/faq/programming.rst:1398 +#: ../Doc/faq/programming.rst:1433 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, " "c)`` for some instance ``x`` of the class in which the definition occurs; " "the called method will think it is called as ``meth(x, a, b, c)``." msgstr "" -"Self est simplement un nom conventionnel pour le premier argument d'une " -"méthode. Une méthode définie comme ``meth(self, a, b, c)`` doit être appelée " -"en tant que ``x.meth(a, b, c)``, pour une instance ``x`` de la classe dans " -"laquelle elle est définie, la méthode appelée considérera qu'elle est " -"appelée ``meth(x, a, b, c)``." +"Par convention, le premier argument d'une méthode est appelé self. Une " +"méthode ``meth(self, a, b, c)`` doit être appelée sous la forme ``x.meth(a, " +"b, c)`` où ``x`` est une instance de la classe dans laquelle cette méthode " +"est définie ; tout se passe comme si la méthode était appelée comme " +"``meth(x, a, b, c)``." -#: ../Doc/faq/programming.rst:1403 +#: ../Doc/faq/programming.rst:1438 msgid "See also :ref:`why-self`." msgstr "Voir aussi :ref:`why-self`." -#: ../Doc/faq/programming.rst:1407 +#: ../Doc/faq/programming.rst:1442 msgid "" "How do I check if an object is an instance of a given class or of a subclass " "of it?" msgstr "" -"Comment puis-je vérifier si un objet est une instance d'une classe donnée ou " -"d'une sous-classe de celui-ci?" +"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:1409 +#: ../Doc/faq/programming.rst:1444 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 " @@ -1806,13 +2252,13 @@ msgid "" "``isinstance(obj, str)`` or ``isinstance(obj, (int, float, complex))``." msgstr "" "Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier " -"si un objet est une instance de n'importe lequel d'un certain nombre de " -"classes en fournissant un tuple à la place d'une seule classe, par exemple, " -"``isinstance(obj, (class1, class2, ...))``, et peut également vérifier si un " -"objet est l'un des types natifs de Python, par exemple, ``isinstance(obj, " -"str)`` ou ``isinstance(obj, (int, float, complex))``." +"qu'un objet est une instance de plusieurs classes à la fois en fournissant " +"un n-uplet à la place d'une seule classe, par exemple, ``isinstance(obj, " +"(class1, class2, ...))``. Vous pouvez également vérifier qu'un objet est " +"l'un des types natifs de Python, par exemple ``isinstance(obj, str)`` ou " +"``isinstance(obj, (int, float, complex))``." -#: ../Doc/faq/programming.rst:1415 +#: ../Doc/faq/programming.rst:1450 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 " @@ -1821,27 +2267,26 @@ msgid "" "and doing a different thing based on what class it is. For example, if you " "have a function that does something::" msgstr "" -"Notez que la plupart des programmes n'utilisent pas :func:`isInstance` sur " -"les classes définies par l'utilisateur, très souvent. Si vous développez " -"vous-même les classes, un style plus appropriée orientée objet est de " -"définir des méthodes sur les classes qui encapsulent un comportement " -"particulier, au lieu de vérifier la classe de l'objet et de faire quelque " -"chose de différent en fonction de sa classe. Par exemple, si vous avez une " -"fonction qui fait quelque chose : ::" +"Notez que la plupart des programmes n'utilisent que rarement :func:" +"`isInstance` sur les classes définies par l'utilisateur. Si vous développez " +"vous-même des classes, une approche plus orientée-objet consiste définir des " +"méthodes sur les classes qui sont porteuses d'un comportement particulier, " +"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:1429 +#: ../Doc/faq/programming.rst:1464 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()`` sur toutes " -"les classes et qu'il suffit d'appeler ::" +"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 ::" -#: ../Doc/faq/programming.rst:1444 +#: ../Doc/faq/programming.rst:1479 msgid "What is delegation?" -msgstr "Qu'est-ce que la délégation?" +msgstr "Qu'est-ce que la délégation ?" -#: ../Doc/faq/programming.rst:1446 +#: ../Doc/faq/programming.rst:1481 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 " @@ -1849,14 +2294,14 @@ msgid "" "implementation of the method you're interested in changing and delegates all " "other methods to the corresponding method of ``x``." msgstr "" -"La délégation est une technique orientée objet (aussi appelé un modèle de " -"conception). Disons que vous avez un objet ``x`` et que vous souhaitez " -"modifier le comportement d'une seule de ses méthodes. Vous pouvez créer une " -"nouvelle classe qui fournit une nouvelle implémentation de la méthode qui " -"vous intéresse dans l'évolution et les délégués de toutes les autres " -"méthodes la méthode correspondante de ``x``." +"La délégation est une technique orientée objet (aussi appelée « patron de " +"conception). Prenons un objet ``x`` dont on souhaite modifier le " +"comportement d'une seule de ses méthodes. On peut créer une nouvelle classe " +"qui fournit une nouvelle implémentation de la méthode qui nous intéresse " +"dans l'évolution et qui délègue toute autre méthode à la méthode " +"correspondante de ``x``." -#: ../Doc/faq/programming.rst:1452 +#: ../Doc/faq/programming.rst:1487 msgid "" "Python programmers can easily implement delegation. For example, the " "following class implements a class that behaves like a file but converts all " @@ -1866,7 +2311,7 @@ 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:1467 +#: ../Doc/faq/programming.rst:1502 msgid "" "Here the ``UpperOut`` class redefines the ``write()`` method to convert the " "argument string to uppercase before calling the underlying ``self.__outfile." @@ -1882,7 +2327,7 @@ msgstr "" "``__getattr__``, consulter :ref:`the language reference ` " "pour plus d'informations sur le contrôle d'accès d'attribut." -#: ../Doc/faq/programming.rst:1474 +#: ../Doc/faq/programming.rst:1509 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:" @@ -1896,28 +2341,28 @@ 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:1485 +#: ../Doc/faq/programming.rst:1520 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:1490 +#: ../Doc/faq/programming.rst:1525 msgid "" "How do I call a method defined in a base class from a derived class that " "overrides it?" msgstr "" "Comment appeler une méthode définie dans une classe de base depuis une " -"classe dérivée qui la surcharge?" +"classe dérivée qui la surcharge ?" -#: ../Doc/faq/programming.rst:1492 +#: ../Doc/faq/programming.rst:1527 msgid "Use the built-in :func:`super` function::" -msgstr "Utiliser la fonction native :func:`super` : ::" +msgstr "Utilisez la fonction native :func:`super` ::" -#: ../Doc/faq/programming.rst:1498 +#: ../Doc/faq/programming.rst:1533 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 " @@ -1925,20 +2370,20 @@ msgid "" "meth(self, arguments...)``. Here, ``Base.meth`` is an unbound method, so " "you need to provide the ``self`` argument." msgstr "" -"Pour version antérieure à 3.0, vous pouvez utiliser des classes classiques : " -"Pour une définition de classe telle que ``class Derived(Base): ...`` vous " -"pouvez appeler la méthode ``meth()`` défini dans ``Base`` (ou l'une des " -"classes de base de ``Base``) en faisant ``Base.meth(self, arguments...)``. " -"Ici, ``Base.meth`` est une méthode non liée, vous devez donc fournir " -"l'argument ``self``." +"Pour les versions antérieures à 3.0, vous pouvez utiliser des classes " +"classiques : pour une définition de classe comme ``class Derived(Base): ..." +"`` vous pouvez appeler la méthode ``meth()`` définie dans ``Base`` (ou l'une " +"des classes de base de ``Base``) en faisant ``Base.meth(self, " +"arguments...)``. Ici, ``Base.meth`` est une méthode non liée, il faut donc " +"fournir l'argument ``self``." -#: ../Doc/faq/programming.rst:1506 +#: ../Doc/faq/programming.rst:1541 msgid "How can I organize my code to make it easier to change the base class?" msgstr "" -"Comment puis-je organiser mon code pour permettre de changer la classe de " -"base plus facilement?" +"Comment organiser un code pour permettre de changer la classe de base plus " +"facilement ?" -#: ../Doc/faq/programming.rst:1508 +#: ../Doc/faq/programming.rst:1543 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. " @@ -1950,25 +2395,25 @@ msgstr "" "Vous pouvez définir un alias pour la classe de base, lui attribuer la classe " "de base réelle avant la définition de classe, et utiliser l'alias au long de " "votre classe. Ensuite, tout ce que vous devez changer est la valeur " -"attribuée à l'alias. Incidemment, cette astuce est également utile si vous " -"voulez décider dynamiquement (par exemple en fonction de la disponibilité " -"des ressources) la classe de base à utiliser. Exemple ::" +"attribuée à l'alias. Accessoirement, cette astuce est également utile si " +"vous voulez déterminer dynamiquement (par exemple en fonction de la " +"disponibilité des ressources) la classe de base à utiliser. Exemple ::" -#: ../Doc/faq/programming.rst:1523 +#: ../Doc/faq/programming.rst:1558 msgid "How do I create static class data and static class methods?" msgstr "" -"Comment puis-je créer des données statiques de classe et des méthodes " -"statiques de classe?" +"Comment créer des données statiques de classe et des méthodes statiques de " +"classe ?" -#: ../Doc/faq/programming.rst:1525 +#: ../Doc/faq/programming.rst:1560 msgid "" "Both static data and static methods (in the sense of C++ or Java) are " "supported in Python." msgstr "" -"Tant les données statiques que les méthodes statiques (dans le sens de C + + " -"ou Java) sont pris en charge en Python." +"Les données statiques et les méthodes statiques (au sens C++ ou Java) sont " +"prises en charge en Python." -#: ../Doc/faq/programming.rst:1528 +#: ../Doc/faq/programming.rst:1563 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::" @@ -1977,35 +2422,35 @@ msgstr "" "attribuer une nouvelle valeur à l'attribut, vous devez explicitement " "utiliser le nom de classe dans l'affectation ::" -#: ../Doc/faq/programming.rst:1540 +#: ../Doc/faq/programming.rst:1575 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 " "class on the base-class search path from ``c.__class__`` back to ``C``." msgstr "" -"``c.count`` se réfère également à ``C.count`` pour tout ``c`` telle que " +"``c.count`` se réfère également à ``C.count`` pour tout ``c`` tel que " "``isInstance (c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par " "une classe sur le chemin de recherche de classe de base de ``c.__class__`` " "jusqu'à ``C``." -#: ../Doc/faq/programming.rst:1544 +#: ../Doc/faq/programming.rst:1579 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 " "dict. Rebinding of a class-static data name must always specify the class " "whether inside a method or not::" msgstr "" -"Attention: dans une méthode de C, une affectation comme ``self.count=42`` " -"crée une nouvelle instance et sans rapport avec le nom \"count\" dans dans " -"le dictionnaire de données de ``self``. La redéfinition d'une donnée " -"statique de classe doit toujours spécifier la classe que l'on soit à " -"l'intérieur d'une méthode ou non ::" +"Attention : dans une méthode de C, une affectation comme ``self.count = 42`` " +"crée une nouvelle instance sans rapport avec le nom ``count`` dans le " +"dictionnaire de données de ``self``. La redéfinition d'une donnée statique " +"de classe doit toujours spécifier la classe, que l'on soit à l'intérieur " +"d'une méthode ou non ::" -#: ../Doc/faq/programming.rst:1551 +#: ../Doc/faq/programming.rst:1586 msgid "Static methods are possible::" -msgstr "Les méthodes statiques sont possibles : ::" +msgstr "Il est possible d'utiliser des méthodes statiques ::" -#: ../Doc/faq/programming.rst:1559 +#: ../Doc/faq/programming.rst:1594 msgid "" "However, a far more straightforward way to get the effect of a static method " "is via a simple module-level function::" @@ -2013,7 +2458,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:1565 +#: ../Doc/faq/programming.rst:1600 msgid "" "If your code is structured so as to define one class (or tightly related " "class hierarchy) per module, this supplies the desired encapsulation." @@ -2022,23 +2467,23 @@ msgstr "" "hiérarchie des classes connexes) par module, ceci fournira l'encapsulation " "souhaitée." -#: ../Doc/faq/programming.rst:1570 +#: ../Doc/faq/programming.rst:1605 msgid "How can I overload constructors (or methods) in Python?" -msgstr "Comment puis-je surcharger les constructeurs (ou méthodes) en Python?" +msgstr "Comment surcharger les constructeurs (ou méthodes) en Python ?" -#: ../Doc/faq/programming.rst:1572 +#: ../Doc/faq/programming.rst:1607 msgid "" "This answer actually applies to all methods, but the question usually comes " "up first in the context of constructors." msgstr "" -"Cette réponse s'applique en fait à toutes les méthodes, mais la question " -"vient généralement en premier dans le contexte des constructeurs." +"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:1575 +#: ../Doc/faq/programming.rst:1610 msgid "In C++ you'd write" -msgstr "In C++ you'd write" +msgstr "En C++, on écrirait" -#: ../Doc/faq/programming.rst:1584 +#: ../Doc/faq/programming.rst:1619 msgid "" "In Python you have to write a single constructor that catches all cases " "using default arguments. For example::" @@ -2046,29 +2491,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:1594 +#: ../Doc/faq/programming.rst:1629 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:1596 +#: ../Doc/faq/programming.rst:1631 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:1601 +#: ../Doc/faq/programming.rst:1636 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:1605 +#: ../Doc/faq/programming.rst:1640 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." +"J'essaie d'utiliser ``__spam`` et j'obtiens une erreur à propos de " +"``_SomeClassName__spam``." -#: ../Doc/faq/programming.rst:1607 +#: ../Doc/faq/programming.rst:1642 msgid "" "Variable names with double leading underscores are \"mangled\" to provide a " "simple but effective way to define class private variables. Any identifier " @@ -2077,47 +2522,46 @@ msgid "" "``classname`` is the current class name with any leading underscores " "stripped." msgstr "" -"Les noms de variables avec le double de soulignement sont «déformés» pour " -"fournir un moyen simple mais efficace de définir variables privées à la " -"classe. Tout identificateur de la forme ``__spam`` (au moins deux traits de " -"soulignement préfixe, au plus un soulignement suffix) est textuellement " +"Les noms de variables commençant avec deux tirets bas sont « déformés », " +"c'est un moyen simple mais efficace de définir des variables privées à une " +"classe. Tout identifiant de la forme ``__spam`` (commençant par au moins " +"deux tirets bas et se terminant par au plus un tiret bas) est textuellement " "remplacé par ``_classname__spam``, où ``classname`` est le nom de la classe " -"en cours avec les traits de soulignement dépouillés." +"en cours sans les éventuels tirets bas du début." -#: ../Doc/faq/programming.rst:1613 +#: ../Doc/faq/programming.rst:1648 msgid "" "This doesn't guarantee privacy: an outside user can still deliberately " "access the \"_classname__spam\" attribute, and private values are visible in " "the object's ``__dict__``. Many Python programmers never bother to use " "private variable names at all." msgstr "" -"Cela ne garantit pas la privauté de l'accès : un utilisateur extérieur peut " -"encore délibérément acceder à l'attribut \"_classname__spam\", et les " -"valeurs privées sont visibles dans l'objet ``__dict__``. De nombreux " -"programmeurs Python ne prennent jamais la peine d'utiliser des noms de " -"variable privée." +"Cela ne garantit aucune protection : un utilisateur extérieur peut encore " +"délibérément accéder à l'attribut ``_classname__spam`` et les valeurs " +"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:1620 +#: ../Doc/faq/programming.rst:1655 msgid "My class defines __del__ but it is not called when I delete the object." msgstr "" -"Ma classe définit __del__ mais il n'est pas appelé lorsque je supprime " -"l'objet." +"Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je " +"supprime l'objet." -#: ../Doc/faq/programming.rst:1622 +#: ../Doc/faq/programming.rst:1657 msgid "There are several possible reasons for this." -msgstr "Il y a plusieurs raisons possibles pour cela." +msgstr "Il y a plusieurs explications possibles." -#: ../Doc/faq/programming.rst:1624 +#: ../Doc/faq/programming.rst:1659 msgid "" "The del statement does not necessarily call :meth:`__del__` -- it simply " "decrements the object's reference count, and if this reaches zero :meth:" "`__del__` is called." msgstr "" -"La commande del n'appelle pas forcément :meth:`__del__` - il décrémente " -"simplement le compteur de références de l'objet, et si celui ci arrive à " -"zéro :meth:`__del__` est appelée." +"La commande *del* n'appelle pas forcément :meth:`__del__` — elle décrémente " +"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:1628 +#: ../Doc/faq/programming.rst:1663 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 " @@ -2130,8 +2574,20 @@ msgid "" "run :func:`gc.collect` to force a collection, but there *are* pathological " "cases where objects will never be collected." msgstr "" +"Si la structure de données contient des références circulaires (e.g. un " +"arbre dans lequel chaque fils référence son père, et chaque père garde une " +"liste de ses fils), le compteur de références n'arrivera jamais à zéro. " +"Python exécute périodiquement un algorithme pour détecter ce genre de " +"cycles, mais il peut se passer un certain temps entre le moment où la " +"structure est référencée pour la dernière fois et l'appel du ramasse-" +"miettes, donc la méthode :meth:`__del__` peut être appelée à un moment " +"aléatoire et pas opportun. C'est gênant pour essayer reproduire un problème. " +"Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets sont " +"appelées est arbitraire. Il est possible de forcer l'appel du ramasse-" +"miettes avec la fonction :func:`gc.collect`, mais il existe certains cas où " +"les objets ne seront jamais nettoyés." -#: ../Doc/faq/programming.rst:1639 +#: ../Doc/faq/programming.rst:1674 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. " @@ -2140,37 +2596,57 @@ msgid "" "``close()`` and ``close()`` should make sure that it can be called more than " "once for the same object." msgstr "" +"Bien que le ramasse-miette de cycles existe, il est tout de même recommandé " +"de définir une méthode ``close()`` explicite sur des objets, et de l'appeler " +"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 " +"être appelée plusieurs fois sur le même objet." -#: ../Doc/faq/programming.rst:1646 +#: ../Doc/faq/programming.rst:1681 msgid "" "Another way to avoid cyclical references is to use the :mod:`weakref` " "module, which allows you to point to objects without incrementing their " "reference count. Tree data structures, for instance, should use weak " "references for their parent and sibling references (if they need them!)." msgstr "" +"Une alternative pour éviter les références cycliques consiste à utiliser le " +"module :mod:`weakref`, qui permet de faire référence à des objets sans " +"incrémenter leur compteur de références. Par exemple, les structures " +"d'arbres devraient utiliser des références faibles entre pères et fils (si " +"nécessaire !)." -#: ../Doc/faq/programming.rst:1659 +#: ../Doc/faq/programming.rst:1694 msgid "" "Finally, if your :meth:`__del__` method raises an exception, a warning " "message is printed to :data:`sys.stderr`." 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:1664 +#: ../Doc/faq/programming.rst:1699 msgid "How do I get a list of all instances of a given class?" -msgstr "" +msgstr "Comment obtenir toutes les instances d'une classe ?" -#: ../Doc/faq/programming.rst:1666 +#: ../Doc/faq/programming.rst:1701 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 " "instances by keeping a list of weak references to each instance." msgstr "" +"Python ne tient pas de registre de toutes les instances d'une classe (ni de " +"n'importe quel type natif). Il est cependant possible de programmer le " +"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:1672 +#: ../Doc/faq/programming.rst:1707 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:1674 +#: ../Doc/faq/programming.rst:1709 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 " @@ -2178,24 +2654,33 @@ msgid "" "memory, the next freshly created object is allocated at the same position in " "memory. This is illustrated by this example:" msgstr "" +"La fonction native :func:`id` renvoie un entier dont l'unicité est garantie " +"durant toute la vie de l'objet. Vu qu'en CPython cet entier est en réalité " +"l'adresse mémoire de l'objet, il est fréquent qu'un nouvel objet soit alloué " +"à une adresse mémoire identique à celle d'un objet venant d'être supprimé. " +"Comme l'illustre le code suivant :" -#: ../Doc/faq/programming.rst:1685 +#: ../Doc/faq/programming.rst:1720 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 " "objects whose id you want to examine are still alive, create another " "reference to the object:" msgstr "" +"Les deux identifiants appartiennent à des objets entiers créés juste avant " +"l'appel à ``id()`` et détruits immédiatement après. Pour s'assurer que les " +"objets dont on veut examiner les identifiants sont toujours en vie, créons " +"une nouvelle référence à l'objet :" -#: ../Doc/faq/programming.rst:1698 +#: ../Doc/faq/programming.rst:1733 msgid "Modules" msgstr "Modules" -#: ../Doc/faq/programming.rst:1701 +#: ../Doc/faq/programming.rst:1736 msgid "How do I create a .pyc file?" -msgstr "" +msgstr "Comment créer des fichiers ``.pyc`` ?" -#: ../Doc/faq/programming.rst:1703 +#: ../Doc/faq/programming.rst:1738 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 " @@ -2205,8 +2690,15 @@ msgid "" "file, and ends with ``.pyc``, with a middle component that depends on the " "particular ``python`` binary that created it. (See :pep:`3147` for details.)" msgstr "" +"Quand un module est importé pour la première fois (ou si le fichier source a " +"été modifié depuis la création du fichier compilé), un fichier ``.pyc`` " +"contenant le code précompilé est créé dans un sous-dossier ``__pycache__`` " +"du dossier contentant le fichier ``.py``. Le nom du fichier ``.pyc`` est " +"identique au fichier ``.py`` et se termine par ``.pyc``, avec une partie " +"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:1711 +#: ../Doc/faq/programming.rst:1746 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 " @@ -2214,8 +2706,14 @@ msgid "" "example, if you develop as one user but run as another, such as if you are " "testing with a web server." msgstr "" +"Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé " +"est un problème de droits sur le dossier qui contient le fichier source, ce " +"qui veut dire qu'il est impossible de créer le sous-dossier ``__pycache__``. " +"Ceci peut arriver, par exemple, si vous développez en tant qu'un certain " +"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:1716 +#: ../Doc/faq/programming.rst:1751 msgid "" "Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " "creation of a .pyc file is automatic if you're importing a module and Python " @@ -2223,8 +2721,13 @@ msgid "" "``__pycache__`` subdirectory and write the compiled module to that " "subdirectory." msgstr "" +"La création du fichier ``.pyc`` est automatique durant l'import d'un module " +"si Python est capable (en termes de droits, d'espace disque, etc) de créer " +"un sous-dossier ``__pycache__`` et d'écrire le module ainsi compilé dans ce " +"sous-répertoire, à moins que la variable d'environnement :envvar:" +"`PYTHONDONTWRITEBYTECODE` soit définie." -#: ../Doc/faq/programming.rst:1721 +#: ../Doc/faq/programming.rst:1756 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." @@ -2233,40 +2736,59 @@ msgid "" "``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created " "for ``foo`` since ``foo.py`` isn't being imported." msgstr "" +"Exécuter du Python dans un script de plus haut niveau n'est pas considéré " +"comme un import et le fichier ``.pyc`` n'est pas créé. Par exemple, si un " +"module de plus haut niveau ``foo.py`` importe un autre module ``xyz.py``, " +"alors à l'exécution de ``foo`` (en tapant ``python foo.py`` dans la " +"console), un fichier ``.pyc`` est créé pour ``xyz`` mais pas pour ``foo`` " +"car ``foo.py`` n'est pas importé." -#: ../Doc/faq/programming.rst:1728 +#: ../Doc/faq/programming.rst:1763 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:" "`py_compile` and :mod:`compileall` modules." msgstr "" +"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est-à-dire créer un fichier " +"``.pyc`` pour un module qui n'est pas importé — il existe les modules :mod:" +"`py_compile` et :mod:`compileall`." -#: ../Doc/faq/programming.rst:1732 +#: ../Doc/faq/programming.rst:1767 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 ::" -#: ../Doc/faq/programming.rst:1738 +#: ../Doc/faq/programming.rst:1773 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 " "``cfile``)." msgstr "" +"Ces lignes écrivent le ``.pyc`` dans un sous-dossier ``__pycache__`` à côté " +"de ``foo.py`` (le paramètre optionnel ``cfile`` permet de changer ce " +"comportement)." -#: ../Doc/faq/programming.rst:1742 +#: ../Doc/faq/programming.rst:1777 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 " "running ``compileall.py`` and providing the path of a directory containing " "Python files to compile::" 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 ::" -#: ../Doc/faq/programming.rst:1751 +#: ../Doc/faq/programming.rst:1786 msgid "How do I find the current module name?" -msgstr "" +msgstr "Comment obtenir le nom du module actuel ?" -#: ../Doc/faq/programming.rst:1753 +#: ../Doc/faq/programming.rst:1788 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 " @@ -2274,77 +2796,89 @@ msgid "" "importing them also provide a command-line interface or a self-test, and " "only execute this code after checking ``__name__``::" msgstr "" +"Un module peut déterminer son propre nom en examinant la variable globale " +"prédéfinie ``__name__``. Si celle-ci vaut ``'__main__'``, c'est que le " +"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__`` ::" -#: ../Doc/faq/programming.rst:1768 +#: ../Doc/faq/programming.rst:1803 msgid "How can I have modules that mutually import each other?" -msgstr "" +msgstr "Comment avoir des modules qui s'importent mutuellement ?" -#: ../Doc/faq/programming.rst:1770 +#: ../Doc/faq/programming.rst:1805 msgid "Suppose you have the following modules:" -msgstr "" +msgstr "Considérons les modules suivants :" -#: ../Doc/faq/programming.rst:1772 +#: ../Doc/faq/programming.rst:1807 msgid "foo.py::" -msgstr "" +msgstr "*foo.py* ::" -#: ../Doc/faq/programming.rst:1777 +#: ../Doc/faq/programming.rst:1812 msgid "bar.py::" -msgstr "" +msgstr "*bar.py* ::" -#: ../Doc/faq/programming.rst:1782 +#: ../Doc/faq/programming.rst:1817 msgid "The problem is that the interpreter will perform the following steps:" -msgstr "" +msgstr "Le problème réside dans les étapes que l'interpréteur va réaliser :" -#: ../Doc/faq/programming.rst:1784 +#: ../Doc/faq/programming.rst:1819 msgid "main imports foo" -msgstr "" +msgstr "*main* importe *foo*" -#: ../Doc/faq/programming.rst:1785 +#: ../Doc/faq/programming.rst:1820 msgid "Empty globals for foo are created" -msgstr "" +msgstr "Les variables globales (vides) de *foo* sont créées" -#: ../Doc/faq/programming.rst:1786 +#: ../Doc/faq/programming.rst:1821 msgid "foo is compiled and starts executing" -msgstr "" +msgstr "*foo* est compilé et commence à s'exécuter" -#: ../Doc/faq/programming.rst:1787 +#: ../Doc/faq/programming.rst:1822 msgid "foo imports bar" -msgstr "" +msgstr "*foo* importe *bar*" -#: ../Doc/faq/programming.rst:1788 +#: ../Doc/faq/programming.rst:1823 msgid "Empty globals for bar are created" -msgstr "" +msgstr "Les variables globales (vides) de *bar* sont créées" -#: ../Doc/faq/programming.rst:1789 +#: ../Doc/faq/programming.rst:1824 msgid "bar is compiled and starts executing" -msgstr "" +msgstr "*bar* est compilé et commence à s'exécuter" -#: ../Doc/faq/programming.rst:1790 +#: ../Doc/faq/programming.rst:1825 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:1791 +#: ../Doc/faq/programming.rst:1826 msgid "bar.foo_var = foo.foo_var" -msgstr "" +msgstr "bar.foo_var = foo.foo_var" -#: ../Doc/faq/programming.rst:1793 +#: ../Doc/faq/programming.rst:1828 msgid "" "The last step fails, because Python isn't done with interpreting ``foo`` yet " "and the global symbol dictionary for ``foo`` is still empty." 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:1796 +#: ../Doc/faq/programming.rst:1831 msgid "" "The same thing happens when you use ``import foo``, and then try to access " "``foo.foo_var`` in global code." 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:1799 +#: ../Doc/faq/programming.rst:1834 msgid "There are (at least) three possible workarounds for this problem." -msgstr "" +msgstr "Il y a (au moins) trois façons de contourner ce problème." -#: ../Doc/faq/programming.rst:1801 +#: ../Doc/faq/programming.rst:1836 msgid "" "Guido van Rossum recommends avoiding all uses of ``from import ..." "``, and placing all code inside functions. Initializations of global " @@ -2352,60 +2886,80 @@ msgid "" "only. This means everything from an imported module is referenced as " "``.``." msgstr "" +"Guido van Rossum déconseille d'utiliser ``from import ...`` et de " +"mettre tout le code dans des fonctions. L'initialisation des variables " +"globales et des variables de classe ne doit utiliser que des constantes ou " +"des fonctions natives. Ceci implique que tout ce qui est fourni par un " +"module soit référencé par ``.``." -#: ../Doc/faq/programming.rst:1806 +#: ../Doc/faq/programming.rst:1841 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:1808 +#: ../Doc/faq/programming.rst:1843 msgid "" "exports (globals, functions, and classes that don't need imported base " "classes)" msgstr "" +"les exportations (variables globales, fonctions et les classes qui ne " +"nécessitent d'importer des classes de base)" -#: ../Doc/faq/programming.rst:1810 +#: ../Doc/faq/programming.rst:1845 msgid "``import`` statements" -msgstr "" +msgstr "les instructions ``import``" -#: ../Doc/faq/programming.rst:1811 +#: ../Doc/faq/programming.rst:1846 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:1813 +#: ../Doc/faq/programming.rst:1848 msgid "" "van Rossum doesn't like this approach much because the imports appear in a " "strange place, but it does work." msgstr "" +"van Rossum désapprouve cette approche car les importations se trouvent à un " +"endroit bizarre, mais cela fonctionne." -#: ../Doc/faq/programming.rst:1816 +#: ../Doc/faq/programming.rst:1851 msgid "" "Matthias Urlichs recommends restructuring your code so that the recursive " "import is not necessary in the first place." msgstr "" +"Matthias Urlichs conseille de restructurer le code pour éviter les " +"importations récursives." -#: ../Doc/faq/programming.rst:1819 +#: ../Doc/faq/programming.rst:1854 msgid "These solutions are not mutually exclusive." -msgstr "" +msgstr "Ces solutions peuvent être combinées." -#: ../Doc/faq/programming.rst:1823 +#: ../Doc/faq/programming.rst:1858 msgid "__import__('x.y.z') returns ; how do I get z?" msgstr "" +"``__import__('x.y.z')`` renvoie ```` ; comment accéder à ``z`` ?" -#: ../Doc/faq/programming.rst:1825 +#: ../Doc/faq/programming.rst:1860 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` ::" -#: ../Doc/faq/programming.rst:1832 +#: ../Doc/faq/programming.rst:1867 msgid "" "When I edit an imported module and reimport it, the changes don't show up. " "Why does this happen?" msgstr "" +"Quand j'édite un module et que je le réimporte, je ne vois pas les " +"changements. Pourquoi ?" -#: ../Doc/faq/programming.rst:1834 +#: ../Doc/faq/programming.rst:1869 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 " @@ -2413,26 +2967,43 @@ msgid "" "module, the basic module would be parsed and re-parsed many times. To force " "re-reading of a changed module, do this::" msgstr "" +"Pour des raisons de performance et de cohérence, Python ne lit le fichier " +"d'un module que la première fois où celui-ci est importé. Si ce n'était pas " +"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 ::" -#: ../Doc/faq/programming.rst:1844 +#: ../Doc/faq/programming.rst:1879 msgid "" "Warning: this technique is not 100% fool-proof. In particular, modules " "containing statements like ::" msgstr "" +"Attention, cette technique ne marche pas systématiquement. En particulier, " +"les modules qui contiennent des instructions comme ::" -#: ../Doc/faq/programming.rst:1849 +#: ../Doc/faq/programming.rst:1884 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 " "updated to use the new class definition. This can result in the following " "paradoxical behaviour::" msgstr "" +"continuent de fonctionner avec l'ancienne version des objets importés. Si le " +"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 ::" -#: ../Doc/faq/programming.rst:1862 +#: ../Doc/faq/programming.rst:1897 msgid "" "The nature of the problem is made clear if you print out the \"identity\" of " "the class objects::" msgstr "" +"La nature du problème apparaît clairement en affichant « l'identité » des " +"objets de la classe ::" + +#~ msgid "Dictionaries" +#~ msgstr "Dictionnaires" #~ msgid "" #~ "How can I get a dictionary to store and display its keys in a consistent " diff --git a/faq/windows.po b/faq/windows.po index 910a5e5d7..6d4924b6f 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -5,31 +5,29 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-05-08 20:24+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-08-21 10:59+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.3\n" #: ../Doc/faq/windows.rst:9 msgid "Python on Windows FAQ" -msgstr "" -"Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec " -"le lancement de programmes depuis la ligne de commande de Windows alors tout " -"semblera évident; Sinon, vous auriez besoin d'être un peu guidé." +msgstr "FAQ : Python et Windows" #: ../Doc/faq/windows.rst:12 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/windows.rst:20 +#: ../Doc/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:22 +#: ../Doc/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,52 +35,34 @@ msgid "" msgstr "" "Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec " "le lancement de programmes depuis la ligne de commande de Windows alors tout " -"semblera évident; Sinon, vous auriez besoin d'être un peu guidé." - -#: ../Doc/faq/windows.rst:None -msgid "|Python Development on XP|_" -msgstr "|Python Development on XP|_" - -#: ../Doc/faq/windows.rst:29 -msgid "" -"This series of screencasts aims to get you up and running with Python on " -"Windows XP. The knowledge is distilled into 1.5 hours and will get you up " -"and running with the right Python distribution, coding in your choice of " -"IDE, and debugging and writing solid code with unit-tests." -msgstr "" -"Cette série de vidéos a pour but de vous montrer comment utiliser Python sur " -"Windows XP. Les explications durent 1 heure et demi et vous permetteront " -"d'utiliser la distribution Python adéquate, de développer dans l'IDE de " -"votre choix, et de débugger et écrire du code solide accompagné des tests " -"unitaires." +"semblera évident ; sinon, vous pourriez avoir besoin d'être un peu guidé." -#: ../Doc/faq/windows.rst:38 +#: ../Doc/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 " "window\" or \"Command prompt window\". Usually you can create such a window " -"from your Start menu; under Windows 7 the menu selection is :menuselection:" -"`Start --> Programs --> Accessories --> Command Prompt`. You should be able " -"to recognize when you have started such a window because you will see a " -"Windows \"command prompt\", which usually looks like this:" -msgstr "" -"A moins que vous n'utilisiez quelque environnement de développement, vous " -"devrez entrer des commandes Windows dans ce qui est diversement référé comme " -"\"DOS Windows\" ou \"invite de commande Windows\". En général vous pouvez " -"ouvrir cette fenêtre depuis le menu Démarrer; sous Windows 7, allez dans :" -"Démarrer --> Programmes --> Accessoires --> Invite de commande. Vous serez " -"dans la bonne fenêtre quand vous verrez une fenêtre invite de commande qui " -"ressemble normalement à ça :" +"from your search bar by searching for ``cmd``. You should be able to " +"recognize when you have started such a window because you will see a Windows " +"\"command prompt\", which usually looks like this:" +msgstr "" +"À moins que vous n'utilisiez une sorte d'environnement de développement, " +"vous finirez par *taper* des commandes Windows dans ce qui est diversement " +"appelé une \"fenêtre DOS\" ou \"invite de commande Windows\". En général " +"vous pouvez ouvrir un telle fenêtre depuis votre barre de recherche en " +"cherchant ``cmd``. Vous devriez être capable de reconnaitre quand vous avez " +"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:50 +#: ../Doc/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:" msgstr "" "La lettre peut être différente, et il peut y avoir d'autres choses à la " -"suite, alors il se peut aussi bien que vous voyez quelque chose tel que :" +"suite, alors il se peut que ça ressemble également à ça :" -#: ../Doc/faq/windows.rst:57 +#: ../Doc/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 " @@ -92,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:61 +#: ../Doc/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, " @@ -105,114 +85,95 @@ msgstr "" "programme. Alors, comment faire pour donner votre code Python à " "l'interpréteur ?" -#: ../Doc/faq/windows.rst:66 +#: ../Doc/faq/windows.rst:55 msgid "" "First, you need to make sure that your command window recognises the word " -"\"python\" as an instruction to start the interpreter. If you have opened a " -"command window, you should try entering the command ``python`` and hitting " +"\"py\" as an instruction to start the interpreter. If you have opened a " +"command window, you should try entering the command ``py`` and hitting " "return:" msgstr "" "Tout d'abord, vous devez vous assurer que votre fenêtre d'invite de commande " "reconnaît le mot \"python\" comme une instruction pour démarrer " -"l'interpréteur. Si vous avez ouvert une fenêtre de commande, entrez la " -"commande ``python``, puis appuyez sur la touche entrée :" +"l'interpréteur. Si vous avez ouvert une invite de commande, entrez la " +"commande ``py``, puis appuyez sur entrée :" -#: ../Doc/faq/windows.rst:75 +#: ../Doc/faq/windows.rst:64 msgid "You should then see something like:" -msgstr "Vous devez vous trouver face à quelque chose comme ça :" +msgstr "Vous devez voir quelque chose comme ça :" -#: ../Doc/faq/windows.rst:83 +#: ../Doc/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 " "or evaluated while you wait. This is one of Python's strongest features. " "Check it by entering a few expressions of your choice and seeing the results:" msgstr "" +"Vous avez lancé l'interpréteur dans son \"mode interactif\". Cela signifie " +"que vous pouvez entrer des instructions ou des expressions Python de manière " +"interactive pour qu'elles soient exécutées. Il s'agit là d'une des plus " +"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:95 +#: ../Doc/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, hold the :" -"kbd:`Ctrl` key down while you enter a :kbd:`Z`, then hit the \":kbd:`Enter`" -"\" key to get back to your Windows command prompt." +"calculator. When you want to end your interactive Python session, call the :" +"func:`exit` function or hold the :kbd:`Ctrl` key down while you enter a :kbd:" +"`Z`, then hit the \":kbd:`Enter`\" key to get back to your Windows command " +"prompt." msgstr "" +"Beaucoup de gens utilisent le mode interactif comme une calculatrice " +"pratique mais néanmoins hautement programmable. Lorsque vous souhaitez " +"mettre fin à votre session Python interactive, appelez la fonction :func:" +"`exit` ou maintenez la touche :kbd:`Ctrl` enfoncée pendant que vous entrez " +"un :kbd:`Z`, puis appuyez sur la touche \":kbd:`Enter`\" pour revenir à " +"votre invite de commande Windows." -#: ../Doc/faq/windows.rst:100 +#: ../Doc/faq/windows.rst:90 msgid "" "You may also find that you have a Start-menu entry such as :menuselection:" -"`Start --> Programs --> Python 3.3 --> Python (command line)` that results " +"`Start --> Programs --> Python 3.x --> Python (command line)` that results " "in you seeing the ``>>>`` prompt in a new window. If so, the window will " -"disappear after you enter the :kbd:`Ctrl-Z` character; Windows is running a " -"single \"python\" command in the window, and closes it when you terminate " -"the interpreter." -msgstr "" +"disappear after you call the :func:`exit` function or enter the :kbd:`Ctrl-" +"Z` character; Windows is running a single \"python\" command in the window, " +"and closes it when you terminate the interpreter." +msgstr "" +"Peut-être avez-vous remarqué une nouvelle entrée dans votre menu Démarrer " +"telle que :menuselection:`Démarrer --> Programmes --> Python 3.x --> Python " +"(ligne de commande)` qui a pour résultat que vous voyez l'invite ``>>>`` " +"dans une nouvelle fenêtre. Si oui, la fenêtre va disparaître quand vous " +"appellerez la fonction :func:`exit` ou entrez le caractère :kbd:`Ctrl-Z` ; " +"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 +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 " +"the Python script. Let's say your Python script is located in your desktop " +"and is named ``hello.py``, and your command prompt is nicely opened in your " +"home directory so you're seeing something similar to::" +msgstr "" +"Maintenant que nous savons que la commande ``py`` est reconnue, vous pouvez " +"lui donner votre script Python. Vous devez donner le chemin absolu ou " +"relatif du script Python. Disons que votre script Python est situé sur votre " +"bureau et est nommé ``hello.py``, et votre invite de commande est bien " +"ouvert dans votre répertoire d’accueil, alors vous voyez quelque chose " +"comme ::" #: ../Doc/faq/windows.rst:106 msgid "" -"If the ``python`` command, instead of displaying the interpreter prompt " -"``>>>``, gives you a message like::" -msgstr "" - -#: ../Doc/faq/windows.rst:None -msgid "|Adding Python to DOS Path|_" +"So now you'll ask the ``py`` command to give your script to Python by typing " +"``py`` followed by your script path::" 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 -msgid "" -"Python is not added to the DOS path by default. This screencast will walk " -"you through the steps to add the correct entry to the `System Path`, " -"allowing Python to be executed from the command-line by all users." -msgstr "" - -#: ../Doc/faq/windows.rst:123 -msgid "or::" -msgstr "ou : ::" - -#: ../Doc/faq/windows.rst:127 -msgid "" -"then you need to make sure that your computer knows where to find the Python " -"interpreter. To do this you will have to modify a setting called PATH, " -"which is a list of directories where Windows will look for programs." -msgstr "" - -#: ../Doc/faq/windows.rst:131 -msgid "" -"You should arrange for Python's installation directory to be added to the " -"PATH of every command window as it starts. If you installed Python fairly " -"recently then the command ::" -msgstr "" - -#: ../Doc/faq/windows.rst:137 -msgid "" -"will probably tell you where it is installed; the usual location is " -"something like ``C:\\Python33``. Otherwise you will be reduced to a search " -"of your whole disk ... use :menuselection:`Tools --> Find` or hit the :" -"guilabel:`Search` button and look for \"python.exe\". Supposing you " -"discover that Python is installed in the ``C:\\Python33`` directory (the " -"default at the time of writing), you should make sure that entering the " -"command ::" -msgstr "" - -#: ../Doc/faq/windows.rst:146 -msgid "" -"starts up the interpreter as above (and don't forget you'll need a \":kbd:" -"`Ctrl-Z`\" and an \":kbd:`Enter`\" to get out of it). Once you have verified " -"the directory, you can add it to the system path to make it easier to start " -"Python by just running the ``python`` command. This is currently an option " -"in the installer as of CPython 3.3." -msgstr "" - -#: ../Doc/faq/windows.rst:152 -msgid "" -"More information about environment variables can be found on the :ref:`Using " -"Python on Windows ` page." -msgstr "" - -#: ../Doc/faq/windows.rst:156 msgid "How do I make Python scripts executable?" -msgstr "" +msgstr "Comment rendre des scripts Python exécutables ?" -#: ../Doc/faq/windows.rst:158 +#: ../Doc/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 " @@ -222,20 +183,31 @@ msgid "" "typing 'foo' with no extension you need to add .py to the PATHEXT " "environment variable." msgstr "" +"Sous Windows, l'installateur Python associe l'extension *.py* avec un type " +"de fichier (Python.File) et une commande qui lance l’interpréteur (``D:" +"\\Program Files\\Python\\python.exe \"%1\" %*``). Cela suffit pour pouvoir " +"exécuter les scripts Python depuis la ligne de commande en saisissant *foo." +"py*. Si vous souhaitez pouvoir exécuter les scripts en saisissant simplement " +"*foo* sans l’extension, vous devez ajouter *.py* au paramètre " +"d’environnement PATHEXT." -#: ../Doc/faq/windows.rst:166 +#: ../Doc/faq/windows.rst:124 msgid "Why does Python sometimes take so long to start?" -msgstr "" +msgstr "Pourquoi Python met-il du temps à démarrer ?" -#: ../Doc/faq/windows.rst:168 +#: ../Doc/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. " "This is made even more puzzling because Python will work fine on other " "Windows systems which appear to be configured identically." msgstr "" +"Normalement, sous Windows, Python se lance très rapidement, mais parfois des " +"rapports d'erreurs indiquent que Python commence soudain à prendre beaucoup " +"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:173 +#: ../Doc/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 " @@ -245,12 +217,18 @@ msgid "" "configured identically. McAfee, when configured to scan all file system read " "activity, is a particular offender." msgstr "" +"Le problème peut venir d'un antivirus mal configuré. Certains antivirus sont " +"connus pour doubler le temps de démarrage lorsqu'ils sont configurés pour " +"surveiller toutes les lectures du système de fichiers. Essayez de regarder " +"si les antivirus des deux machines sont bien paramétrés à l'identique. " +"*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:183 +#: ../Doc/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 ?" +msgstr "Comment construire un exécutable depuis un script Python ?" -#: ../Doc/faq/windows.rst:185 +#: ../Doc/faq/windows.rst:143 msgid "" "See `cx_Freeze `_ for a " "distutils extension that allows you to create console and GUI executables " @@ -258,12 +236,17 @@ msgid "" "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." -#: ../Doc/faq/windows.rst:193 +#: ../Doc/faq/windows.rst:151 msgid "Is a ``*.pyd`` file the same as a DLL?" -msgstr "" +msgstr "Est-ce qu'un fichier ``*.pyd`` est la même chose qu'une DLL ?" -#: ../Doc/faq/windows.rst:195 +#: ../Doc/faq/windows.rst:153 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 " @@ -272,8 +255,15 @@ msgid "" "``PyInit_foo()`` to initialize it. You do not link your .exe with foo.lib, " "as that would cause Windows to require the DLL to be present." msgstr "" +"Oui, les fichiers *.pyd* sont des fichiers *dll*, mais il y a quelques " +"différences. Si vous avez une *DLL* ``foo.pyd``, celle-ci doit posséder une " +"fonction ``PyInit_foo()``. Vous pouvez alors écrire en Python « *import " +"foo* » et Python recherchera le fichier *foo.pyd* (ainsi que *foo.py* et " +"*foo.pyc*); s'il le trouve, il tentera d'appeler ``PyInit_foo()`` pour " +"l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas " +"Windows aura besoin de la DLL." -#: ../Doc/faq/windows.rst:202 +#: ../Doc/faq/windows.rst:160 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 " @@ -283,18 +273,28 @@ msgid "" "``__declspec(dllexport)``. In a .pyd, linkage is defined in a list of " "available functions." msgstr "" +"Notez que le chemin de recherche pour *foo.pyd* est *PYTHONPATH*, il est " +"différent de celui qu'utilise Windows pour rechercher *foo.dll*. De plus, " +"*foo.pyd* n'a pas besoin d'être présent pour que votre programme s'exécute " +"alors que si vous avez lié votre programme avec une *dll* celle-ci est " +"requise. Bien sûr *foo.pyd* est nécessaire si vous écrivez ``import foo``. " +"Dans une *DLL* le lien est déclaré dans le code source avec " +"``__declspec(dllexport)``. Dans un *.pyd* la liaison est définie dans une " +"liste de fonctions disponibles." -#: ../Doc/faq/windows.rst:211 +#: ../Doc/faq/windows.rst:169 msgid "How can I embed Python into a Windows application?" -msgstr "" +msgstr "Comment puis-je intégrer Python dans une application Windows ?" -#: ../Doc/faq/windows.rst:213 +#: ../Doc/faq/windows.rst:171 msgid "" "Embedding the Python interpreter in a Windows app can be summarized as " "follows:" msgstr "" +"L'intégration de l'interpréteur Python dans une application Windows peut se " +"résumer comme suit :" -#: ../Doc/faq/windows.rst:215 +#: ../Doc/faq/windows.rst:173 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,8 +302,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 " +"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:221 +#: ../Doc/faq/windows.rst:179 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 " @@ -311,8 +317,14 @@ msgid "" "the so-called \"import lib\" corresponding to :file:`python{NN}.dll`. It " "merely defines symbols for the linker.)" msgstr "" +"Vous pouvez créer un lien vers Python de deux manières différentes. Un lien " +"au moment du chargement signifie pointer vers :file:`python{NN}.lib`, tandis " +"qu'un lien au moment de l'exécution signifie pointer vers :file:`python{NN}." +"dll`. (Note générale : :file:`python{NN}.lib` est le soi-disant « *import " +"lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des " +"liens symboliques pour l'éditeur de liens.)" -#: ../Doc/faq/windows.rst:227 +#: ../Doc/faq/windows.rst:185 msgid "" "Run-time linking greatly simplifies link options; everything happens at run " "time. Your code must load :file:`python{NN}.dll` using the Windows " @@ -322,14 +334,24 @@ msgid "" "these pointers transparent to any C code that calls routines in Python's C " "API." msgstr "" +"La liaison en temps réel simplifie grandement les options de liaison ; tout " +"se passe au moment de l'exécution. Votre code doit charger :file:" +"`python{NN}.dll` en utilisant la routine Windows ``LoadLibraryEx()``. Le " +"code doit aussi utiliser des routines d'accès et des données dans :file:" +"`python{NN}.dll` (c'est-à-dire les API C de Python) en utilisant des " +"pointeurs obtenus par la routine Windows ``GetProcAddress()``. Les macros " +"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:234 +#: ../Doc/faq/windows.rst:192 msgid "" "Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf." "exe first." msgstr "" +"Note Borland : convertir :file:`python{NN}.lib` au format OMF en utilisant " +"*Coff2Omf.exe* en premier." -#: ../Doc/faq/windows.rst:239 +#: ../Doc/faq/windows.rst:197 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 " @@ -337,8 +359,14 @@ msgid "" "link *into* your .exe file (!) You do _not_ have to create a DLL file, and " "this also simplifies linking." msgstr "" +"Si vous utilisez SWIG, il est facile de créer un « module d'extension » " +"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." -#: ../Doc/faq/windows.rst:245 +#: ../Doc/faq/windows.rst:203 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 " @@ -346,55 +374,83 @@ msgid "" "classes, as you should, the init function will be called initleoc(). This " "initializes a mostly hidden helper class used by the shadow class." msgstr "" +"SWIG va créer une fonction d'initialisation (fonction en C) dont le nom " +"dépend du nom du module d'extension. Par exemple, si le nom du module est " +"*leo*, la fonction *init* sera appelée *initleo()*. Si vous utilisez des " +"classes *shadow* SWIG, comme vous le devriez, la fonction *init* sera " +"appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible " +"utilisée par la classe *shadow*." -#: ../Doc/faq/windows.rst:251 +#: ../Doc/faq/windows.rst:209 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 " "into Python! (This is the second key undocumented fact.)" msgstr "" +"La raison pour laquelle vous pouvez lier le code C à l'étape 2 dans votre " +"*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:255 +#: ../Doc/faq/windows.rst:213 msgid "" "In short, you can use the following code to initialize the Python " "interpreter with your extension module." msgstr "" +"En bref, vous pouvez utiliser le code suivant pour initialiser " +"l'interpréteur Python avec votre module d'extension." -#: ../Doc/faq/windows.rst:266 +#: ../Doc/faq/windows.rst:224 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." msgstr "" +"Il y a deux problèmes avec l'API C de Python qui apparaîtront si vous " +"utilisez un compilateur autre que MSVC, le compilateur utilisé pour " +"construire *pythonNN.dll*." -#: ../Doc/faq/windows.rst:269 +#: ../Doc/faq/windows.rst:227 msgid "" "Problem 1: The so-called \"Very High Level\" functions that take FILE * " "arguments will not work in a multi-compiler environment because each " "compiler's notion of a struct FILE will be different. From an " "implementation standpoint these are very _low_ level functions." msgstr "" +"Problème 1 : Les fonctions dites de \"Très Haut Niveau\" qui prennent les " +"arguments FILE * ne fonctionneront pas dans un environnement multi-" +"compilateur car chaque compilateur aura une notion différente de la " +"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:274 +#: ../Doc/faq/windows.rst:232 msgid "" "Problem 2: SWIG generates the following code when generating wrappers to " "void functions:" 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:283 +#: ../Doc/faq/windows.rst:241 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 " "fail in a mult-compiler environment. Replace such code by:" msgstr "" +"Hélas, *Py_None* est une macro qui se développe en référence à une structure " +"de données complexe appelée *_Py_NoneStruct* dans *pythonNN.dll*. Encore " +"une fois, ce code échouera dans un environnement multi-compilateur. " +"Remplacez ce code par :" -#: ../Doc/faq/windows.rst:291 +#: ../Doc/faq/windows.rst:249 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 " "complete SWIG newbie)." msgstr "" +"Il est possible d'utiliser la commande ``%typemap`` de SWIG pour effectuer " +"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:295 +#: ../Doc/faq/windows.rst:253 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 " @@ -405,19 +461,34 @@ msgid "" "is a Python object (defined in your extension module) that contains read() " "and write() methods." msgstr "" - -#: ../Doc/faq/windows.rst:304 +"Utiliser un script shell Python pour créer une fenêtre d'interpréteur Python " +"depuis votre application Windows n'est pas une bonne idée ; la fenêtre " +"résultante sera indépendante du système de fenêtrage de votre application. " +"Vous (ou la classe *wxPythonWindow*) devriez plutôt créer une fenêtre " +"d'interpréteur « native ». Il est facile de connecter cette fenêtre à " +"l'interpréteur Python. Vous pouvez rediriger l'entrée/sortie de Python vers " +"*n'importe quel* objet qui supporte la lecture et l'écriture, donc tout ce " +"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 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:306 +#: ../Doc/faq/windows.rst:264 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 " "python-mode default." msgstr "" +"La FAQ ne recommande pas l'utilisation des indentations et le guide " +"stylistique de Python, la :pep:`8`, recommande l'utilisation de 4 espaces " +"dans les codes Python. C'est aussi le comportement par défaut d'Emacs avec " +"Python." -#: ../Doc/faq/windows.rst:310 +#: ../Doc/faq/windows.rst:268 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 :" @@ -425,57 +496,105 @@ msgid "" "set \"Tab size\" and \"Indent size\" to 4, and select the \"Insert spaces\" " "radio button." msgstr "" +"Quel que soit votre éditeur, mélanger des tabulations et des espaces est une " +"mauvaise idée. *Visual C++*, par exemple, peut être facilement configuré " +"pour utiliser des espaces : allez dans :menuselection:`Tools --> Options --> " +"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:315 +#: ../Doc/faq/windows.rst:273 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:" "`tabnanny` module to check a directory tree in batch mode." msgstr "" +"Python va lever :exc:`IndentationError` ou :exc:`TabError` si un mélange de " +"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:322 +#: ../Doc/faq/windows.rst:280 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:324 +#: ../Doc/faq/windows.rst:282 msgid "" "Use the 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 "" - -#: ../Doc/faq/windows.rst:330 -msgid "How do I emulate os.kill() in Windows?" -msgstr "" - -#: ../Doc/faq/windows.rst:332 -msgid "" -"Prior to Python 2.7 and 3.2, to terminate a process, you can use :mod:" -"`ctypes`:" -msgstr "" - -#: ../Doc/faq/windows.rst:344 -msgid "" -"In 2.7 and 3.2, :func:`os.kill` is implemented similar to the above " -"function, with the additional feature of being able to send :kbd:`Ctrl+C` " -"and :kbd:`Ctrl+Break` to console subprocesses which are designed to handle " -"those signals. See :func:`os.kill` for further details." -msgstr "" - -#: ../Doc/faq/windows.rst:350 -msgid "How do I extract the downloaded documentation on Windows?" -msgstr "" - -#: ../Doc/faq/windows.rst:352 -msgid "" -"Sometimes, when you download the documentation package to a Windows machine " -"using a web browser, the file extension of the saved file ends up being ." -"EXE. This is a mistake; the extension should be .TGZ." -msgstr "" - -#: ../Doc/faq/windows.rst:356 -msgid "" -"Simply rename the downloaded file to have the .TGZ extension, and WinZip " -"will be able to handle it. (If your copy of WinZip doesn't, get a newer one " -"from https://www.winzip.com.)" -msgstr "" +"Utilisez le module ``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 " +"l'afficher." + +#, fuzzy +#~ msgid "How do I emulate os.kill() in Windows?" +#~ msgstr "Comment émuler ``os.kill()`` sur Windows ?" + +#~ msgid "How do I extract the downloaded documentation on Windows?" +#~ msgstr "Comment décompresser la documentation téléchargée sous Windows ?" + +#~ msgid "" +#~ "Sometimes, when you download the documentation package to a Windows " +#~ "machine using a web browser, the file extension of the saved file ends up " +#~ "being .EXE. This is a mistake; the extension should be .TGZ." +#~ msgstr "" +#~ "Quelquefois, lorsque vous téléchargez de la documentation avec Windows en " +#~ "utilisant un navigateur internet, l’extension du fichier est .EXE. Il " +#~ "s'agit d'une erreur ; l'extension devrait être .TGZ." + +#~ msgid "" +#~ "Simply rename the downloaded file to have the .TGZ extension, and WinZip " +#~ "will be able to handle it. (If your copy of WinZip doesn't, get a newer " +#~ "one from https://www.winzip.com.)" +#~ msgstr "" +#~ "Renommez simplement le fichier téléchargé pour lui donner l'extension ." +#~ "TGZ, puis utilisez WinZip pour le décompresser. Si WinZip ne peut pas " +#~ "décompresser le fichier, téléchargez une version plus à jour (https://www." +#~ "winzip.com)." + +#~ msgid "|Python Development on XP|_" +#~ msgstr "|Python Development on XP|_" + +#~ msgid "" +#~ "This series of screencasts aims to get you up and running with Python on " +#~ "Windows XP. The knowledge is distilled into 1.5 hours and will get you " +#~ "up and running with the right Python distribution, coding in your choice " +#~ "of IDE, and debugging and writing solid code with unit-tests." +#~ msgstr "" +#~ "Cette série de vidéos a pour but de vous montrer comment utiliser Python " +#~ "sur Windows XP. Les explications durent 1 heure et demi et vous " +#~ "permettront d'utiliser la distribution Python adéquate, de développer " +#~ "dans l'IDE de votre choix, et de déboguer et écrire du code solide " +#~ "accompagné des tests unitaires." + +#~ msgid "" +#~ "If the ``python`` command, instead of displaying the interpreter prompt " +#~ "``>>>``, gives you a message like::" +#~ msgstr "" +#~ "Si, au lieu de vous afficher ``>>>`` la commande ``python`` vous affiche " +#~ "un message semblable à celui-ci ::" + +#~ msgid "" +#~ "Python is not added to the DOS path by default. This screencast will " +#~ "walk you through the steps to add the correct entry to the `System Path`, " +#~ "allowing Python to be executed from the command-line by all users." +#~ msgstr "" +#~ "Par défaut, Python n'est pas ajouté au PATH. Cette vidéo vous montrera " +#~ "les étapes à suivre pour ajouter la bonne entrée au PATH, permettant " +#~ "ainsi à tous les utilisateurs d'utiliser Python en ligne de commande." + +#~ msgid "or::" +#~ msgstr "ou ::" + +#~ msgid "" +#~ "then you need to make sure that your computer knows where to find the " +#~ "Python interpreter. To do this you will have to modify a setting called " +#~ "PATH, which is a list of directories where Windows will look for programs." +#~ msgstr "" +#~ "alors, vous devez vous assurer que votre ordinateur sait où trouver " +#~ "l’interpréteur Python. Pour cela, vous devez modifier un paramètre, " +#~ "appelé \"PATH\", qui est une liste des répertoires dans lesquels Windows " +#~ "cherche les programmes." diff --git a/glossary.po b/glossary.po index 3332a06ca..5c569c87b 100644 --- a/glossary.po +++ b/glossary.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-09-29 14:47+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-19 10:02+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/glossary.rst:5 msgid "Glossary" @@ -38,15 +38,15 @@ msgstr "``...``" #: ../Doc/glossary.rst:16 msgid "" -"The default Python prompt of the interactive shell when entering code for an " -"indented code block, when within a pair of matching left and right " +"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 " "delimiters (parentheses, square brackets, curly braces or triple quotes), or " "after specifying a decorator." msgstr "" "L'invite de commande utilisée par défaut dans l'interpréteur interactif " "lorsqu'on entre un bloc de code indenté, dans des délimiteurs fonctionnant " "par paires (parenthèses, crochets, accolades, triple guillemets), ou après " -"un décorateur." +"un avoir spécifié un décorateur." #: ../Doc/glossary.rst:20 msgid "2to3" @@ -69,7 +69,7 @@ msgid "" "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:29 @@ -92,7 +92,7 @@ msgstr "" "Les classes de base abstraites (ABC, suivant l'abréviation anglaise " "*Abstract Base Class*) complètent le :term:`duck-typing` en fournissant un " "moyen de définir des interfaces pour les cas où d'autres techniques comme :" -"func:`hasattr` seraient inélégantes ou subitement fausses (par exemple avec " +"func:`hasattr` seraient inélégantes ou subtilement fausses (par exemple avec " "les :ref:`méthodes magiques `). Les ABC introduisent des " "sous-classes virtuelles qui n'héritent pas d'une classe mais qui sont quand " "même reconnues par :func:`isinstance` ou :func:`issubclass` (voir la " @@ -113,7 +113,7 @@ msgid "" "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:48 @@ -146,7 +146,7 @@ msgid "" "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:61 msgid "" @@ -155,10 +155,10 @@ msgid "" "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 : ::" +"nommés dans l'appel à :func:`complex` ici ::" #: ../Doc/glossary.rst:69 msgid "" @@ -167,10 +167,10 @@ msgid "" "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 : ::" +"sont tous les deux des arguments positionnels dans les appels suivants ::" #: ../Doc/glossary.rst:78 msgid "" @@ -191,9 +191,9 @@ msgid "" "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:86 msgid "asynchronous context manager" @@ -227,7 +227,7 @@ msgstr "" #: ../Doc/glossary.rst:98 msgid "" -"Usually refers to a asynchronous generator function, but may refer to an " +"Usually refers to an asynchronous generator function, but may refer to an " "*asynchronous generator iterator* in some contexts. In cases where the " "intended meaning isn't clear, using the full terms avoids ambiguity." msgstr "" @@ -255,14 +255,13 @@ msgstr "Objet créé par une fonction :term:`asynchronous generator`." #: ../Doc/glossary.rst:109 msgid "" "This is an :term:`asynchronous iterator` which when called using the :meth:" -"`__anext__` method returns an awaitable object which will execute that the " -"body of the asynchronous generator function until the next :keyword:`yield` " +"`__anext__` method returns an awaitable object which will execute the body " +"of the asynchronous generator function until the next :keyword:`yield` " "expression." msgstr "" "C'est un :term:`asynchronous iterator` qui, lorsqu'il est appelé via la " -"méthode :meth:`__anext__` renvoie un objet *awaitable* qui exécutera le " -"corps de la fonction du générateur asynchrone jusqu'au prochain :keyword:" -"`yield`." +"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:114 msgid "" @@ -276,7 +275,7 @@ 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:119 @@ -336,9 +335,9 @@ msgid "" "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:141 msgid "BDFL" @@ -349,7 +348,7 @@ 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." @@ -381,7 +380,7 @@ msgstr "" #: ../Doc/glossary.rst:156 msgid "bytes-like object" -msgstr "Objet bytes-compatible" +msgstr "objet octet-compatible" #: ../Doc/glossary.rst:158 msgid "" @@ -411,7 +410,7 @@ 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 " +"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`." @@ -485,19 +484,20 @@ msgid "" "``int(3.15)`` converts the floating point number to the integer ``3``, but " "in ``3+4.5``, each argument is of a different type (one int, one float), and " "both must be converted to the same type before they can be added or it will " -"raise a ``TypeError``. Without coercion, all arguments of even compatible " -"types would have to be normalized to the same value by the programmer, e.g., " -"``float(3)+4.5`` rather than just ``3+4.5``." +"raise a :exc:`TypeError`. Without coercion, all arguments of even " +"compatible types would have to be normalized to the same value by the " +"programmer, e.g., ``float(3)+4.5`` rather than just ``3+4.5``." msgstr "" "Conversion implicite d'une instance d'un type vers un autre lors d'une " "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, alors qu'elles doivent avoir le même type pour " -"être additionnées (sinon une exception ``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) + 4.5`` au lieu du simple ``3 + 4.5``." +"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:206 msgid "complex number" @@ -520,7 +520,7 @@ 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 " @@ -540,10 +540,32 @@ msgstr "" "la :pep:`343`." #: ../Doc/glossary.rst:223 +msgid "context variable" +msgstr "variable de contexte" + +#: ../Doc/glossary.rst:225 +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 " +"different value for a variable. However, with context variables, there may " +"be several contexts in one execution thread and the main usage for context " +"variables is to keep track of variables in concurrent asynchronous tasks. " +"See :mod:`contextvars`." +msgstr "" +"Une variable qui peut avoir des valeurs différentes en fonction de son " +"contexte. Cela est similaire au stockage par fil d’exécution (*Thread Local " +"Storage* en anglais) dans lequel chaque fil d’exécution peut avoir une " +"valeur différente pour une variable. Toutefois, avec les variables de " +"contexte, il peut y avoir plusieurs contextes dans un fil d’exécution et " +"l’utilisation principale pour les variables de contexte est de garder une " +"trace des variables dans les tâches asynchrones concourantes. Voir :mod:" +"`contextvars`." + +#: ../Doc/glossary.rst:232 msgid "contiguous" msgstr "contigu" -#: ../Doc/glossary.rst:227 +#: ../Doc/glossary.rst:236 msgid "" "A buffer is considered contiguous exactly if it is either *C-contiguous* or " "*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " @@ -563,11 +585,11 @@ 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:235 +#: ../Doc/glossary.rst:244 msgid "coroutine" msgstr "coroutine" -#: ../Doc/glossary.rst:237 +#: ../Doc/glossary.rst:246 msgid "" "Coroutines is a more generalized form of subroutines. Subroutines are " "entered at one point and exited at another point. Coroutines can be " @@ -580,11 +602,11 @@ msgstr "" "être implémentées en utilisant l'instruction :keyword:`async def`. Voir " "aussi la :pep:`492`." -#: ../Doc/glossary.rst:242 +#: ../Doc/glossary.rst:251 msgid "coroutine function" msgstr "fonction coroutine" -#: ../Doc/glossary.rst:244 +#: ../Doc/glossary.rst:253 msgid "" "A function which returns a :term:`coroutine` object. A coroutine function " "may be defined with the :keyword:`async def` statement, and may contain :" @@ -596,11 +618,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:249 +#: ../Doc/glossary.rst:258 msgid "CPython" msgstr "CPython" -#: ../Doc/glossary.rst:251 +#: ../Doc/glossary.rst:260 msgid "" "The canonical implementation of the Python programming language, as " "distributed on `python.org `_. The term \"CPython\" " @@ -612,11 +634,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:255 +#: ../Doc/glossary.rst:264 msgid "decorator" msgstr "décorateur" -#: ../Doc/glossary.rst:257 +#: ../Doc/glossary.rst:266 msgid "" "A function returning another function, usually applied as a function " "transformation using the ``@wrapper`` syntax. Common examples for " @@ -624,10 +646,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:261 +#: ../Doc/glossary.rst:270 msgid "" "The decorator syntax is merely syntactic sugar, the following two function " "definitions are semantically equivalent::" @@ -635,7 +657,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:272 +#: ../Doc/glossary.rst:281 msgid "" "The same concept exists for classes, but is less commonly used there. See " "the documentation for :ref:`function definitions ` and :ref:`class " @@ -645,11 +667,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:275 +#: ../Doc/glossary.rst:284 msgid "descriptor" msgstr "descripteur" -#: ../Doc/glossary.rst:277 +#: ../Doc/glossary.rst:286 msgid "" "Any object which defines the methods :meth:`__get__`, :meth:`__set__`, or :" "meth:`__delete__`. When a class attribute is a descriptor, its special " @@ -664,27 +686,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:287 +#: ../Doc/glossary.rst:296 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:288 +#: ../Doc/glossary.rst:297 msgid "dictionary" msgstr "dictionnaire" -#: ../Doc/glossary.rst:290 +#: ../Doc/glossary.rst:299 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 " @@ -694,11 +716,11 @@ 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:293 +#: ../Doc/glossary.rst:302 msgid "dictionary view" msgstr "vue de dictionnaire" -#: ../Doc/glossary.rst:295 +#: ../Doc/glossary.rst:304 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 " @@ -712,11 +734,11 @@ msgstr "" "change. Pour transformer une vue en vraie liste, utilisez " "``list(dictview)``. Voir :ref:`dict-views`." -#: ../Doc/glossary.rst:301 +#: ../Doc/glossary.rst:310 msgid "docstring" -msgstr "*docstring*" +msgstr "*docstring* (chaîne de documentation)" -#: ../Doc/glossary.rst:303 +#: ../Doc/glossary.rst:312 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 " @@ -725,16 +747,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:309 +#: ../Doc/glossary.rst:318 msgid "duck-typing" msgstr "*duck-typing*" -#: ../Doc/glossary.rst:311 +#: ../Doc/glossary.rst:320 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 " @@ -758,11 +780,11 @@ msgstr "" "*duck-typing* utilise plutôt :func:`hasattr` ou la programmation :term:" "`EAFP`." -#: ../Doc/glossary.rst:320 +#: ../Doc/glossary.rst:329 msgid "EAFP" msgstr "EAFP" -#: ../Doc/glossary.rst:322 +#: ../Doc/glossary.rst:331 msgid "" "Easier to ask for forgiveness than permission. This common Python coding " "style assumes the existence of valid keys or attributes and catches " @@ -779,18 +801,18 @@ msgstr "" "keyword:`except`. Cette technique de programmation contraste avec le style :" "term:`LBYL` utilisé couramment dans les langages tels que C." -#: ../Doc/glossary.rst:328 +#: ../Doc/glossary.rst:337 msgid "expression" msgstr "expression" -#: ../Doc/glossary.rst:330 +#: ../Doc/glossary.rst:339 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, " "attribute access, operators or function calls which all return a value. In " "contrast to many other languages, not all language constructs are " "expressions. There are also :term:`statement`\\s which cannot be used as " -"expressions, such as :keyword:`if`. Assignments are also statements, not " +"expressions, such as :keyword:`while`. Assignments are also statements, not " "expressions." msgstr "" "Suite logique de termes et chiffres conformes à la syntaxe Python dont " @@ -800,14 +822,14 @@ msgstr "" "Contrairement à beaucoup d'autres langages, les différentes constructions du " "langage ne sont pas toutes des expressions. On trouve également des :term:" "`instructions ` qui ne peuvent pas être utilisées comme " -"expressions, tel que :keyword:`if`. Les affectations sont également des " +"expressions, tel que :keyword:`while`. Les affectations sont également des " "instructions et non des expressions." -#: ../Doc/glossary.rst:337 +#: ../Doc/glossary.rst:346 msgid "extension module" msgstr "module d'extension" -#: ../Doc/glossary.rst:339 +#: ../Doc/glossary.rst:348 msgid "" "A module written in C or C++, using Python's C API to interact with the core " "and with user code." @@ -815,11 +837,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:341 +#: ../Doc/glossary.rst:350 msgid "f-string" msgstr "f-string" -#: ../Doc/glossary.rst:343 +#: ../Doc/glossary.rst:352 msgid "" "String literals prefixed with ``'f'`` or ``'F'`` are commonly called \"f-" "strings\" which is short for :ref:`formatted string literals `. " @@ -829,11 +851,11 @@ msgstr "" "raccourci pour :ref:`formatted string literals `. Voir la :pep:" "`498`." -#: ../Doc/glossary.rst:346 +#: ../Doc/glossary.rst:355 msgid "file object" msgstr "objet fichier" -#: ../Doc/glossary.rst:348 +#: ../Doc/glossary.rst:357 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 " @@ -846,11 +868,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:356 +#: ../Doc/glossary.rst:365 msgid "" "There are actually three categories of file objects: raw :term:`binary files " "`, buffered :term:`binary files ` and :term:`text " @@ -858,26 +880,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:361 +#: ../Doc/glossary.rst:370 msgid "file-like object" msgstr "objet fichier-compatible" -#: ../Doc/glossary.rst:363 +#: ../Doc/glossary.rst:372 msgid "A synonym for :term:`file object`." msgstr "Synonyme de :term:`objet fichier`." -#: ../Doc/glossary.rst:364 +#: ../Doc/glossary.rst:373 msgid "finder" msgstr "chercheur" -#: ../Doc/glossary.rst:366 +#: ../Doc/glossary.rst:375 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." @@ -885,26 +907,26 @@ msgstr "" "Objet qui essaie de trouver un :term:`chargeur ` pour le module en " "cours d'importation." -#: ../Doc/glossary.rst:369 +#: ../Doc/glossary.rst:378 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:373 +#: ../Doc/glossary.rst:382 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:374 +#: ../Doc/glossary.rst:383 msgid "floor division" msgstr "division entière" -#: ../Doc/glossary.rst:376 +#: ../Doc/glossary.rst:385 msgid "" "Mathematical division that rounds down to nearest integer. The floor " "division operator is ``//``. For example, the expression ``11 // 4`` " @@ -918,11 +940,11 @@ msgstr "" "4`` vaut ``-3`` car l'arrondi se fait à l'entier inférieur. Voir la :pep:" "`328`." -#: ../Doc/glossary.rst:381 +#: ../Doc/glossary.rst:390 msgid "function" msgstr "fonction" -#: ../Doc/glossary.rst:383 +#: ../Doc/glossary.rst:392 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 " @@ -934,44 +956,44 @@ msgstr "" "corps de la fonction. Voir aussi :term:`paramètre`, :term:`méthode` et :ref:" "`function`." -#: ../Doc/glossary.rst:387 +#: ../Doc/glossary.rst:396 msgid "function annotation" msgstr "annotation de fonction" -#: ../Doc/glossary.rst:389 +#: ../Doc/glossary.rst:398 msgid "An :term:`annotation` of a function parameter or return value." -msgstr ":term:`annotation` d'un paramètre de fonction ou valeur de retour" +msgstr ":term:`annotation` d'un paramètre de fonction ou valeur de retour." -#: ../Doc/glossary.rst:391 +#: ../Doc/glossary.rst:400 msgid "" "Function annotations are usually used for :term:`type hints `: " -"for example this function is expected to take two :class:`int` arguments and " -"is also expected to have an :class:`int` return value::" +"for example, this function is expected to take two :class:`int` arguments " +"and is also expected to have an :class:`int` return value::" msgstr "" "Les annotations de fonctions sont généralement utilisées pour des :term:" -"`indications de types ` : par exemple, cette fonction devrait " +"`indications de types ` : par exemple, cette fonction devrait " "prendre deux arguments :class:`int` et devrait également avoir une valeur de " -"retour de type :class:`int` ::" +"retour de type :class:`int` ::" -#: ../Doc/glossary.rst:399 +#: ../Doc/glossary.rst:408 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:401 +#: ../Doc/glossary.rst:410 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:403 +#: ../Doc/glossary.rst:412 msgid "__future__" msgstr "__future__" -#: ../Doc/glossary.rst:405 +#: ../Doc/glossary.rst:414 msgid "" "A pseudo-module which programmers can use to enable new language features " "which are not compatible with the current interpreter." @@ -980,7 +1002,7 @@ msgstr "" "nouvelles fonctionnalités du langage qui ne sont pas compatibles avec " "l'interpréteur utilisé." -#: ../Doc/glossary.rst:408 +#: ../Doc/glossary.rst:417 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 " @@ -988,13 +1010,13 @@ msgid "" msgstr "" "En important le module :mod:`__future__` et en affichant ses variables, vous " "pouvez voir à quel moment une nouvelle fonctionnalité a été rajoutée dans le " -"langage et quand elle devient le comportement par défaut : ::" +"langage et quand elle devient le comportement par défaut ::" -#: ../Doc/glossary.rst:415 +#: ../Doc/glossary.rst:424 msgid "garbage collection" msgstr "ramasse-miettes" -#: ../Doc/glossary.rst:417 +#: ../Doc/glossary.rst:426 msgid "" "The process of freeing memory when it is not used anymore. Python performs " "garbage collection via reference counting and a cyclic garbage collector " @@ -1007,11 +1029,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:423 +#: ../Doc/glossary.rst:432 msgid "generator" msgstr "générateur" -#: ../Doc/glossary.rst:425 +#: ../Doc/glossary.rst:434 msgid "" "A function which returns a :term:`generator iterator`. It looks like a " "normal function except that it contains :keyword:`yield` expressions for " @@ -1023,7 +1045,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:430 +#: ../Doc/glossary.rst:439 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 " @@ -1034,15 +1056,15 @@ msgstr "" "cas où le sens voulu n'est pas clair, utiliser les termes complets lève " "l’ambigüité." -#: ../Doc/glossary.rst:433 +#: ../Doc/glossary.rst:442 msgid "generator iterator" msgstr "itérateur de générateur" -#: ../Doc/glossary.rst:435 +#: ../Doc/glossary.rst:444 msgid "An object created by a :term:`generator` function." msgstr "Objet créé par une fonction :term:`générateur`." -#: ../Doc/glossary.rst:437 +#: ../Doc/glossary.rst:446 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "location execution state (including local variables and pending try-" @@ -1055,27 +1077,27 @@ msgstr "" "il en était (contrairement à une fonction qui prendrait un nouveau départ à " "chaque invocation)." -#: ../Doc/glossary.rst:444 +#: ../Doc/glossary.rst:453 msgid "generator expression" msgstr "expression génératrice" -#: ../Doc/glossary.rst:446 +#: ../Doc/glossary.rst:455 msgid "" "An expression that returns an iterator. It looks like a normal expression " -"followed by a :keyword:`for` expression defining a loop variable, range, and " -"an optional :keyword:`if` expression. The combined expression generates " -"values for an enclosing function::" +"followed by a :keyword:`!for` clause defining a loop variable, range, and an " +"optional :keyword:`!if` clause. The combined expression generates values " +"for an enclosing function::" msgstr "" "Expression qui donne un itérateur. Elle ressemble à une expression normale, " -"suivie d'une expression :keyword:`for` définissant une variable de boucle, " -"un intervalle et une expression :keyword:`if` optionnelle. Toute cette " -"expression génère des valeurs pour la fonction qui l'entoure : ::" +"suivie d'une clause :keyword:`!for` définissant une variable de boucle, un " +"intervalle et une clause :keyword:`!if` optionnelle. Toute cette expression " +"génère des valeurs pour la fonction qui l'entoure ::" -#: ../Doc/glossary.rst:453 +#: ../Doc/glossary.rst:462 msgid "generic function" msgstr "fonction générique" -#: ../Doc/glossary.rst:455 +#: ../Doc/glossary.rst:464 msgid "" "A function composed of multiple functions implementing the same operation " "for different types. Which implementation should be used during a call is " @@ -1085,7 +1107,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:459 +#: ../Doc/glossary.rst:468 msgid "" "See also the :term:`single dispatch` glossary entry, the :func:`functools." "singledispatch` decorator, and :pep:`443`." @@ -1093,19 +1115,19 @@ msgstr "" "Voir aussi :term:`single dispatch`, le décorateur :func:`functools." "singledispatch` et la :pep:`443`." -#: ../Doc/glossary.rst:462 +#: ../Doc/glossary.rst:471 msgid "GIL" msgstr "GIL" -#: ../Doc/glossary.rst:464 +#: ../Doc/glossary.rst:473 msgid "See :term:`global interpreter lock`." msgstr "Voir :term:`global interpreter lock`." -#: ../Doc/glossary.rst:465 +#: ../Doc/glossary.rst:474 msgid "global interpreter lock" msgstr "verrou global de l'interpréteur" -#: ../Doc/glossary.rst:467 +#: ../Doc/glossary.rst:476 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 " @@ -1125,7 +1147,7 @@ msgstr "" "au détriment malheureusement de beaucoup du parallélisme possible sur les " "machines ayant plusieurs processeurs." -#: ../Doc/glossary.rst:476 +#: ../Doc/glossary.rst:485 msgid "" "However, some extension modules, either standard or third-party, are " "designed so as to release the GIL when doing computationally-intensive tasks " @@ -1137,7 +1159,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:481 +#: ../Doc/glossary.rst:490 msgid "" "Past efforts to create a \"free-threaded\" interpreter (one which locks " "shared data at a much finer granularity) have not been successful because " @@ -1151,11 +1173,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:487 +#: ../Doc/glossary.rst:496 msgid "hash-based pyc" msgstr "*pyc* utilisant le hachage" -#: ../Doc/glossary.rst:489 +#: ../Doc/glossary.rst:498 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-" @@ -1166,11 +1188,11 @@ msgstr "" "source correspondant pour déterminer sa validité. Voir :ref:`pyc-" "invalidation`." -#: ../Doc/glossary.rst:492 +#: ../Doc/glossary.rst:501 msgid "hashable" msgstr "hachable" -#: ../Doc/glossary.rst:494 +#: ../Doc/glossary.rst:503 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 " @@ -1183,7 +1205,7 @@ msgstr "" "hachables dont la comparaison par ``__eq__`` est vraie doivent avoir la même " "empreinte." -#: ../Doc/glossary.rst:499 +#: ../Doc/glossary.rst:508 msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." @@ -1192,25 +1214,28 @@ msgstr "" "en tant que membre d'un ensemble (type *set*), car ces structures de données " "utilisent ce *hash*." -#: ../Doc/glossary.rst:502 +#: ../Doc/glossary.rst:511 msgid "" -"All of Python's immutable built-in objects are hashable; mutable containers " -"(such as lists or dictionaries) are not. Objects which are instances of " -"user-defined classes are hashable by default. They all compare unequal " -"(except with themselves), and their hash value is derived from their :func:" -"`id`." +"Most of Python's immutable built-in objects are hashable; mutable containers " +"(such as lists or dictionaries) are not; immutable containers (such as " +"tuples and frozensets) are only hashable if their elements are hashable. " +"Objects which are instances of user-defined classes are hashable by " +"default. They all compare unequal (except with themselves), and their hash " +"value is derived from their :func:`id`." msgstr "" -"Tous les types immuables natifs de Python sont hachables, mais les " -"conteneurs muables (comme les listes ou les dictionnaires) ne le sont pas. " -"Toutes les instances de classes définies par les utilisateurs sont hachables " -"par défaut. Elles sont toutes considérées différentes (sauf avec elles-" -"mêmes) et leur valeur de hachage est calculée à partir de leur :func:`id`." +"La plupart des types immuables natifs de Python sont hachables, mais les " +"conteneurs muables (comme les listes ou les dictionnaires) ne le sont pas ; " +"les conteneurs immuables (comme les n-uplets ou les ensembles gelés) ne sont " +"hachables que si leurs éléments sont hachables. Les instances de classes " +"définies par les utilisateurs sont hachables par défaut. Elles sont toutes " +"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:507 +#: ../Doc/glossary.rst:518 msgid "IDLE" msgstr "IDLE" -#: ../Doc/glossary.rst:509 +#: ../Doc/glossary.rst:520 msgid "" "An Integrated Development Environment for Python. IDLE is a basic editor " "and interpreter environment which ships with the standard distribution of " @@ -1219,11 +1244,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:512 +#: ../Doc/glossary.rst:523 msgid "immutable" msgstr "immuable" -#: ../Doc/glossary.rst:514 +#: ../Doc/glossary.rst:525 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 " @@ -1237,11 +1262,11 @@ msgstr "" "quand une valeur de *hash* constante est requise, typiquement en clé de " "dictionnaire." -#: ../Doc/glossary.rst:519 +#: ../Doc/glossary.rst:530 msgid "import path" -msgstr "chemin des imports" +msgstr "chemin des importations" -#: ../Doc/glossary.rst:521 +#: ../Doc/glossary.rst:532 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 " @@ -1250,25 +1275,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:526 +#: ../Doc/glossary.rst:537 msgid "importing" msgstr "importer" -#: ../Doc/glossary.rst:528 +#: ../Doc/glossary.rst:539 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:530 +#: ../Doc/glossary.rst:541 msgid "importer" msgstr "importateur" -#: ../Doc/glossary.rst:532 +#: ../Doc/glossary.rst:543 msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." @@ -1276,11 +1301,11 @@ msgstr "" "Objet qui trouve et charge un module, en même temps un :term:`chercheur " "` et un :term:`chargeur `." -#: ../Doc/glossary.rst:534 +#: ../Doc/glossary.rst:545 msgid "interactive" msgstr "interactif" -#: ../Doc/glossary.rst:536 +#: ../Doc/glossary.rst:547 msgid "" "Python has an interactive interpreter which means you can enter statements " "and expressions at the interpreter prompt, immediately execute them and see " @@ -1295,11 +1320,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:542 +#: ../Doc/glossary.rst:553 msgid "interpreted" msgstr "interprété" -#: ../Doc/glossary.rst:544 +#: ../Doc/glossary.rst:555 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. " @@ -1316,11 +1341,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:551 +#: ../Doc/glossary.rst:562 msgid "interpreter shutdown" msgstr "arrêt de l'interpréteur" -#: ../Doc/glossary.rst:553 +#: ../Doc/glossary.rst:564 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 " @@ -1336,11 +1361,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:562 +#: ../Doc/glossary.rst:573 msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." @@ -1348,11 +1374,11 @@ 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:564 +#: ../Doc/glossary.rst:575 msgid "iterable" msgstr "itérable" -#: ../Doc/glossary.rst:566 +#: ../Doc/glossary.rst:577 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`, " @@ -1367,7 +1393,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:573 +#: ../Doc/glossary.rst:584 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 " @@ -1381,20 +1407,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:583 +"`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:594 msgid "iterator" msgstr "itérateur" -#: ../Doc/glossary.rst:585 +#: ../Doc/glossary.rst:596 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 :" @@ -1418,7 +1444,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 " @@ -1427,15 +1453,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:600 +#: ../Doc/glossary.rst:611 msgid "More information can be found in :ref:`typeiter`." msgstr "Vous trouverez davantage d'informations dans :ref:`typeiter`." -#: ../Doc/glossary.rst:601 +#: ../Doc/glossary.rst:612 msgid "key function" msgstr "fonction clé" -#: ../Doc/glossary.rst:603 +#: ../Doc/glossary.rst:614 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 " @@ -1446,7 +1472,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:608 +#: ../Doc/glossary.rst:619 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`, :" @@ -1459,7 +1485,7 @@ msgstr "" "merge`, :func:`heapq.nsmallest`, :func:`heapq.nlargest` et :func:`itertools." "groupby`." -#: ../Doc/glossary.rst:614 +#: ../Doc/glossary.rst:625 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. " @@ -1475,24 +1501,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:622 +#: ../Doc/glossary.rst:633 msgid "keyword argument" msgstr "argument nommé" -#: ../Doc/glossary.rst:624 ../Doc/glossary.rst:883 +#: ../Doc/glossary.rst:635 ../Doc/glossary.rst:899 msgid "See :term:`argument`." msgstr "Voir :term:`argument`." -#: ../Doc/glossary.rst:625 +#: ../Doc/glossary.rst:636 msgid "lambda" msgstr "lambda" -#: ../Doc/glossary.rst:627 +#: ../Doc/glossary.rst:638 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 " @@ -1500,26 +1526,26 @@ 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:630 +#: ../Doc/glossary.rst:641 msgid "LBYL" msgstr "LBYL" -#: ../Doc/glossary.rst:632 +#: ../Doc/glossary.rst:643 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` " "approach and is characterized by the presence of many :keyword:`if` " "statements." msgstr "" -"Regarde devant avant de tomber, (*Look before you leap* en anglais). Ce " -"style de programmation consiste à vérifier des conditions avant d'effectuer " -"des appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " +"Regarde avant de sauter, (*Look before you leap* en anglais). Ce style de " +"programmation consiste à vérifier des conditions avant d'effectuer des " +"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:637 +#: ../Doc/glossary.rst:648 msgid "" "In a multi-threaded environment, the LBYL approach can risk introducing a " "race condition between \"the looking\" and \"the leaping\". For example, " @@ -1529,17 +1555,17 @@ msgid "" msgstr "" "Dans un environnement avec plusieurs fils d'exécution (*multi-threaded* en " "anglais), le style *LBYL* peut engendrer un séquencement critique (*race " -"condition* en anglais) entre le \"regarde\" et le \"tomber\". Par exemple, " +"condition* en anglais) entre le \"regarde\" et le \"sauter\". Par exemple, " "le code ``if key in mapping: return mapping[key]`` peut échouer si un autre " "fil d'exécution supprime la clé *key* du *mapping* après le test mais avant " "l'accès. Ce problème peut être résolu avec des verrous (*locks*) ou avec " "l'approche EAFP." -#: ../Doc/glossary.rst:642 +#: ../Doc/glossary.rst:653 msgid "list" msgstr "*list*" -#: ../Doc/glossary.rst:644 +#: ../Doc/glossary.rst:655 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 " @@ -1549,11 +1575,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:647 +#: ../Doc/glossary.rst:658 msgid "list comprehension" msgstr "liste en compréhension (ou liste en intension)" -#: ../Doc/glossary.rst:649 +#: ../Doc/glossary.rst:660 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 " @@ -1565,14 +1591,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:655 +#: ../Doc/glossary.rst:666 msgid "loader" msgstr "chargeur" -#: ../Doc/glossary.rst:657 +#: ../Doc/glossary.rst:668 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:" @@ -1584,11 +1610,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:661 +#: ../Doc/glossary.rst:672 +msgid "magic method" +msgstr "méthode magique" + +#: ../Doc/glossary.rst:676 +msgid "An informal synonym for :term:`special method`." +msgstr "Un synonyme informel de :term:`special method`." + +#: ../Doc/glossary.rst:677 msgid "mapping" -msgstr "Tableau de correspondances" +msgstr "tableau de correspondances" -#: ../Doc/glossary.rst:663 +#: ../Doc/glossary.rst:679 msgid "" "A container object that supports arbitrary key lookups and implements the " "methods specified in the :class:`~collections.abc.Mapping` or :class:" @@ -1605,11 +1639,11 @@ msgstr "" "`dict`, :class:`collections.defaultdict`, :class:`collections.OrderedDict` " "et :class:`collections.Counter`." -#: ../Doc/glossary.rst:669 +#: ../Doc/glossary.rst:685 msgid "meta path finder" msgstr "chercheur dans les méta-chemins" -#: ../Doc/glossary.rst:671 +#: ../Doc/glossary.rst:687 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:675 +#: ../Doc/glossary.rst:691 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." @@ -1627,11 +1661,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:677 +#: ../Doc/glossary.rst:693 msgid "metaclass" msgstr "métaclasse" -#: ../Doc/glossary.rst:679 +#: ../Doc/glossary.rst:695 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 " @@ -1648,22 +1682,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:689 +"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." + +#: ../Doc/glossary.rst:705 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:690 +#: ../Doc/glossary.rst:706 msgid "method" msgstr "méthode" -#: ../Doc/glossary.rst:692 +#: ../Doc/glossary.rst:708 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 " @@ -1675,11 +1709,11 @@ msgstr "" "premier :term:`argument` (qui, par convention, est habituellement nommé " "``self``). Voir :term:`function` et :term:`nested scope`." -#: ../Doc/glossary.rst:696 +#: ../Doc/glossary.rst:712 msgid "method resolution order" msgstr "ordre de résolution des méthodes" -#: ../Doc/glossary.rst:698 +#: ../Doc/glossary.rst:714 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:702 +#: ../Doc/glossary.rst:718 msgid "module" msgstr "module" -#: ../Doc/glossary.rst:704 +#: ../Doc/glossary.rst:720 msgid "" "An object that serves as an organizational unit of Python code. Modules " "have a namespace containing arbitrary Python objects. Modules are loaded " "into Python by the process of :term:`importing`." msgstr "" "Objet utilisé pour organiser une portion unitaire de code en Python. Les " -"modules ont un espace de noms et peuvent contenir n'importe quels objets " +"modules ont un espace de nommage et peuvent contenir n'importe quels objets " "Python. Charger des modules est appelé :term:`importer `." -#: ../Doc/glossary.rst:708 +#: ../Doc/glossary.rst:724 msgid "See also :term:`package`." msgstr "Voir aussi :term:`paquet`." -#: ../Doc/glossary.rst:709 +#: ../Doc/glossary.rst:725 msgid "module spec" msgstr "spécificateur de module" -#: ../Doc/glossary.rst:711 +#: ../Doc/glossary.rst:727 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." msgstr "" -"Espace de noms contenant les informations, relatives à l'importation, " +"Espace de nommage contenant les informations, relatives à l'importation, " "utilisées pour charger un module. C'est une instance de la classe :class:" "`importlib.machinery.ModuleSpec`." -#: ../Doc/glossary.rst:713 +#: ../Doc/glossary.rst:729 msgid "MRO" msgstr "MRO" -#: ../Doc/glossary.rst:715 +#: ../Doc/glossary.rst:731 msgid "See :term:`method resolution order`." msgstr "Voir :term:`ordre de résolution des méthodes`." -#: ../Doc/glossary.rst:716 +#: ../Doc/glossary.rst:732 msgid "mutable" msgstr "muable" -#: ../Doc/glossary.rst:718 +#: ../Doc/glossary.rst:734 msgid "" "Mutable objects can change their value but keep their :func:`id`. See also :" "term:`immutable`." @@ -1744,11 +1778,11 @@ msgstr "" "Un objet muable peut changer de valeur tout en gardant le même :func:`id`. " "Voir aussi :term:`immuable`." -#: ../Doc/glossary.rst:720 +#: ../Doc/glossary.rst:736 msgid "named tuple" msgstr "n-uplet nommé" -#: ../Doc/glossary.rst:722 +#: ../Doc/glossary.rst:738 msgid "" "Any tuple-like class whose indexable elements are also accessible using " "named attributes (for example, :func:`time.localtime` returns a tuple-like " @@ -1761,7 +1795,7 @@ msgstr "" "donne un objet ressemblant à un *n-uplet*, dont *year* est accessible par " "son indice : ``t[0]`` ou par son nom : ``t.tm_year``)." -#: ../Doc/glossary.rst:727 +#: ../Doc/glossary.rst:743 msgid "" "A named tuple can be a built-in type such as :class:`time.struct_time`, or " "it can be created with a regular class definition. A full featured named " @@ -1777,11 +1811,11 @@ msgstr "" "supplémentaires, tel qu'une représentation lisible comme " "``Employee(name='jones', title='programmer')``." -#: ../Doc/glossary.rst:733 +#: ../Doc/glossary.rst:749 msgid "namespace" -msgstr "espace de noms" +msgstr "espace de nommage" -#: ../Doc/glossary.rst:735 +#: ../Doc/glossary.rst:751 msgid "" "The place where a variable is stored. Namespaces are implemented as " "dictionaries. There are the local, global and built-in namespaces as well " @@ -1793,22 +1827,23 @@ msgid "" "func:`itertools.islice` makes it clear that those functions are implemented " "by the :mod:`random` and :mod:`itertools` modules, respectively." msgstr "" -"L'endroit où une variable est stockée. Les espaces de noms sont implémentés " -"avec des dictionnaires. Il existe des espaces de noms globaux, natifs ou " -"imbriqués dans les objets (dans les méthodes). Les espaces de noms " -"favorisent la modularité car ils permettent d'éviter les conflits de noms. " -"Par exemple, les fonctions :func:`builtins.open <.open>` et :func:`os.open` " -"sont différenciées par leurs espaces de nom. Les espaces de noms aident " -"aussi à la lisibilité et la maintenabilité en rendant clair quel module " -"implémente une fonction. Par exemple, écrire :func:`random.seed` ou :func:" -"`itertools.islice` affiche clairement que ces fonctions sont implémentées " -"respectivement dans les modules :mod:`random` et :mod:`itertools`." - -#: ../Doc/glossary.rst:745 +"L'endroit où une variable est stockée. Les espaces de nommage sont " +"implémentés avec des dictionnaires. Il existe des espaces de nommage " +"globaux, natifs ou imbriqués dans les objets (dans les méthodes). Les " +"espaces de nommage favorisent la modularité car ils permettent d'éviter les " +"conflits de noms. Par exemple, les fonctions :func:`builtins.open <.open>` " +"et :func:`os.open` sont différenciées par leurs espaces de nom. Les espaces " +"de nommage aident aussi à la lisibilité et la maintenabilité en rendant " +"clair quel module implémente une fonction. Par exemple, écrire :func:`random." +"seed` ou :func:`itertools.islice` affiche clairement que ces fonctions sont " +"implémentées respectivement dans les modules :mod:`random` et :mod:" +"`itertools`." + +#: ../Doc/glossary.rst:761 msgid "namespace package" -msgstr "paquet-espace de noms" +msgstr "paquet-espace de nommage" -#: ../Doc/glossary.rst:747 +#: ../Doc/glossary.rst:763 msgid "" "A :pep:`420` :term:`package` which serves only as a container for " "subpackages. Namespace packages may have no physical representation, and " @@ -1816,19 +1851,19 @@ msgid "" "``__init__.py`` file." msgstr "" "Un :term:`paquet` tel que défini dans la :pep:`421` qui ne sert qu'à " -"contenir des sous-paquets. Les paquets-espace de noms peuvent n'avoir 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``." +"contenir des sous-paquets. Les paquets-espace de nommage peuvent n'avoir " +"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:752 +#: ../Doc/glossary.rst:768 msgid "See also :term:`module`." msgstr "Voir aussi :term:`module`." -#: ../Doc/glossary.rst:753 +#: ../Doc/glossary.rst:769 msgid "nested scope" msgstr "portée imbriquée" -#: ../Doc/glossary.rst:755 +#: ../Doc/glossary.rst:771 msgid "" "The ability to refer to a variable in an enclosing definition. For " "instance, a function defined inside another function can refer to variables " @@ -1841,16 +1876,16 @@ msgstr "" "englobante. Typiquement, une fonction définie à l'intérieur d'une autre " "fonction a accès aux variables de cette dernière. Souvenez-vous cependant " "que cela ne fonctionne que pour accéder à des variables, pas pour les " -"assigner. Les variables locales sont lues et assignées dans l'espace de noms " -"le plus proche. Tout comme les variables globales qui sont stockés dans " -"l'espace de noms global, le mot clef :keyword:`nonlocal` permet d'écrire " -"dans l'espace de noms dans lequel est déclarée la variable." +"assigner. Les variables locales sont lues et assignées dans l'espace de " +"nommage le plus proche. Tout comme les variables globales qui sont stockés " +"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:762 +#: ../Doc/glossary.rst:778 msgid "new-style class" msgstr "nouvelle classe" -#: ../Doc/glossary.rst:764 +#: ../Doc/glossary.rst:780 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, " @@ -1863,11 +1898,11 @@ msgstr "" "__slots__`, les descripteurs, les propriétés, :meth:`__getattribute__`, les " "méthodes de classe et les méthodes statiques." -#: ../Doc/glossary.rst:768 +#: ../Doc/glossary.rst:784 msgid "object" msgstr "objet" -#: ../Doc/glossary.rst:770 +#: ../Doc/glossary.rst:786 msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." @@ -1877,11 +1912,11 @@ msgstr "" "l'ancêtre commun à absolument toutes les :term:`nouvelles classes `." -#: ../Doc/glossary.rst:773 +#: ../Doc/glossary.rst:789 msgid "package" msgstr "paquet" -#: ../Doc/glossary.rst:775 +#: ../Doc/glossary.rst:791 msgid "" "A Python :term:`module` which can contain submodules or recursively, " "subpackages. Technically, a package is a Python module with an ``__path__`` " @@ -1891,15 +1926,15 @@ msgstr "" "paquets. Techniquement, un paquet est un module qui possède un attribut " "``__path__``." -#: ../Doc/glossary.rst:779 +#: ../Doc/glossary.rst:795 msgid "See also :term:`regular package` and :term:`namespace package`." msgstr "Voir aussi :term:`paquet classique` et :term:`namespace package`." -#: ../Doc/glossary.rst:780 +#: ../Doc/glossary.rst:796 msgid "parameter" msgstr "paramètre" -#: ../Doc/glossary.rst:782 +#: ../Doc/glossary.rst:798 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 " @@ -1907,21 +1942,21 @@ 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:786 +#: ../Doc/glossary.rst:802 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 : ::" +"l'exemple suivant ::" -#: ../Doc/glossary.rst:795 +#: ../Doc/glossary.rst:811 msgid "" ":dfn:`positional-only`: specifies an argument that can be supplied only by " "position. Python has no syntax for defining positional-only parameters. " @@ -1932,7 +1967,7 @@ msgstr "" "Python n'a pas de syntaxe pour déclarer de tels paramètres, cependant des " "fonctions natives, comme :func:`abs`, en utilisent." -#: ../Doc/glossary.rst:802 +#: ../Doc/glossary.rst:818 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-" @@ -1940,13 +1975,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 : ::" +"le code suivant ::" -#: ../Doc/glossary.rst:810 +#: ../Doc/glossary.rst:826 msgid "" ":dfn:`var-positional`: specifies that an arbitrary sequence of positional " "arguments can be provided (in addition to any positional arguments already " @@ -1954,24 +1989,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 : ::" +"par une ``*``. Par exemple *args* ci-après ::" -#: ../Doc/glossary.rst:818 +#: ../Doc/glossary.rst:834 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:824 +#: ../Doc/glossary.rst:840 msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." @@ -1979,7 +2014,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:827 +#: ../Doc/glossary.rst:843 msgid "" "See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -1991,24 +2026,24 @@ msgstr "" "parameter>` dans la FAQ, la classe :class:`inspect.Parameter`, la section :" "ref:`function` et la :pep:`362`." -#: ../Doc/glossary.rst:831 +#: ../Doc/glossary.rst:847 msgid "path entry" msgstr "entrée de chemin" -#: ../Doc/glossary.rst:833 +#: ../Doc/glossary.rst:849 msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." msgstr "" -"Emplacement dans le :term:`chemin des imports ` (*import path* " -"en anglais, d'où le *path*) que le :term:`chercheur basé sur les chemins " -"` consulte pour trouver des modules à importer." +"Emplacement dans le :term:`chemin des importations ` (*import " +"path* en anglais, d'où le *path*) que le :term:`chercheur basé sur les " +"chemins ` consulte pour trouver des modules à importer." -#: ../Doc/glossary.rst:835 +#: ../Doc/glossary.rst:851 msgid "path entry finder" msgstr "chercheur de chemins" -#: ../Doc/glossary.rst:837 +#: ../Doc/glossary.rst:853 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:" @@ -2019,7 +2054,7 @@ msgstr "" "path `) qui sait où trouver des modules lorsqu'on lui donne " "une :term:`entrée de path `." -#: ../Doc/glossary.rst:841 +#: ../Doc/glossary.rst:857 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." @@ -2027,11 +2062,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:843 +#: ../Doc/glossary.rst:859 msgid "path entry hook" msgstr "point d'entrée pour la recherche dans *path*" -#: ../Doc/glossary.rst:845 +#: ../Doc/glossary.rst:861 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 " @@ -2041,24 +2076,24 @@ 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:848 +#: ../Doc/glossary.rst:864 msgid "path based finder" msgstr "chercheur basé sur les chemins" -#: ../Doc/glossary.rst:850 +#: ../Doc/glossary.rst:866 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." msgstr "" "L'un des :term:`chercheurs dans les méta-chemins ` par " -"défaut qui cherche des modules dans un :term:`chemin des imports `." +"défaut qui cherche des modules dans un :term:`chemin des importations " +"`." -#: ../Doc/glossary.rst:852 +#: ../Doc/glossary.rst:868 msgid "path-like object" msgstr "objet simili-chemin" -#: ../Doc/glossary.rst:854 +#: ../Doc/glossary.rst:870 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 " @@ -2078,11 +2113,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:862 +#: ../Doc/glossary.rst:878 msgid "PEP" msgstr "PEP" -#: ../Doc/glossary.rst:864 +#: ../Doc/glossary.rst:880 msgid "" "Python Enhancement Proposal. A PEP is a design document providing " "information to the Python community, or describing a new feature for Python " @@ -2095,7 +2130,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:870 +#: ../Doc/glossary.rst:886 msgid "" "PEPs are intended to be the primary mechanisms for proposing major new " "features, for collecting community input on an issue, and for documenting " @@ -2110,32 +2145,32 @@ msgstr "" "l’établissement d’un consensus au sein de la communauté et de documenter les " "opinions contradictoires." -#: ../Doc/glossary.rst:876 +#: ../Doc/glossary.rst:892 msgid "See :pep:`1`." msgstr "Voir :pep:`1`." -#: ../Doc/glossary.rst:877 +#: ../Doc/glossary.rst:893 msgid "portion" msgstr "portion" -#: ../Doc/glossary.rst:879 +#: ../Doc/glossary.rst:895 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`." msgstr "" "Jeu de fichiers dans un seul dossier (pouvant être stocké sous forme de " -"fichier zip) qui contribue à l'espace de noms d'un paquet, tel que défini " +"fichier zip) qui contribue à l'espace de nommage d'un paquet, tel que défini " "dans la :pep:`420`." -#: ../Doc/glossary.rst:881 +#: ../Doc/glossary.rst:897 msgid "positional argument" msgstr "argument positionnel" -#: ../Doc/glossary.rst:884 +#: ../Doc/glossary.rst:900 msgid "provisional API" msgstr "API provisoire" -#: ../Doc/glossary.rst:886 +#: ../Doc/glossary.rst:902 msgid "" "A provisional API is one which has been deliberately excluded from the " "standard library's backwards compatibility guarantees. While major changes " @@ -2148,24 +2183,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:895 +#: ../Doc/glossary.rst:911 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:899 +#: ../Doc/glossary.rst:915 msgid "" "This process allows the standard library to continue to evolve over time, " "without locking in problematic design errors for extended periods of time. " @@ -2175,19 +2210,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:902 +#: ../Doc/glossary.rst:918 msgid "provisional package" msgstr "paquet provisoire" -#: ../Doc/glossary.rst:904 +#: ../Doc/glossary.rst:920 msgid "See :term:`provisional API`." msgstr "Voir :term:`provisional API`." -#: ../Doc/glossary.rst:905 +#: ../Doc/glossary.rst:921 msgid "Python 3000" msgstr "Python 3000" -#: ../Doc/glossary.rst:907 +#: ../Doc/glossary.rst:923 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 " @@ -2196,11 +2231,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:910 +#: ../Doc/glossary.rst:926 msgid "Pythonic" msgstr "*Pythonique*" -#: ../Doc/glossary.rst:912 +#: ../Doc/glossary.rst:928 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 " @@ -2214,31 +2249,30 @@ msgstr "" "idiomatique en Python de parcourir les éléments d'un itérable en utilisant :" "keyword:`for`. Beaucoup d'autres langages n'ont pas cette possibilité, donc " "les gens qui ne sont pas habitués à Python utilisent parfois un compteur " -"numérique à la place : ::" +"numérique à la place ::" -#: ../Doc/glossary.rst:922 +#: ../Doc/glossary.rst:938 msgid "As opposed to the cleaner, Pythonic method::" msgstr "" -"Plutôt qu'utiliser la méthode, plus propre et élégante, donc " -"*Pythonique* : ::" +"Plutôt qu'utiliser la méthode, plus propre et élégante, donc *Pythonique* ::" -#: ../Doc/glossary.rst:926 +#: ../Doc/glossary.rst:942 msgid "qualified name" msgstr "nom qualifié" -#: ../Doc/glossary.rst:928 +#: ../Doc/glossary.rst:944 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 " "top-level functions and classes, the qualified name is the same as the " "object's name::" msgstr "" -"Nom, comprenant des points, montrant le \"chemin\" de l'espace de noms " +"Nom, comprenant des points, montrant le \"chemin\" de l'espace de nommage " "global d'un module vers une classe, fonction ou méthode définie dans ce " "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 : ::" +"premier niveau, le nom qualifié est le même que le nom de l'objet ::" -#: ../Doc/glossary.rst:945 +#: ../Doc/glossary.rst:961 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." @@ -2247,13 +2281,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:952 +#: ../Doc/glossary.rst:968 msgid "reference count" msgstr "nombre de références" -#: ../Doc/glossary.rst:954 +#: ../Doc/glossary.rst:970 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 " @@ -2269,11 +2303,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:960 +#: ../Doc/glossary.rst:976 msgid "regular package" msgstr "paquet classique" -#: ../Doc/glossary.rst:962 +#: ../Doc/glossary.rst:978 msgid "" "A traditional :term:`package`, such as a directory containing an ``__init__." "py`` file." @@ -2281,15 +2315,15 @@ msgstr "" ":term:`paquet` traditionnel, tel qu'un dossier contenant un fichier " "``__init__.py``." -#: ../Doc/glossary.rst:965 +#: ../Doc/glossary.rst:981 msgid "See also :term:`namespace package`." -msgstr "Voir aussi :term:`paquet-espace de noms`." +msgstr "Voir aussi :term:`paquet-espace de nommage `." -#: ../Doc/glossary.rst:966 +#: ../Doc/glossary.rst:982 msgid "__slots__" msgstr "``__slots__``" -#: ../Doc/glossary.rst:968 +#: ../Doc/glossary.rst:984 msgid "" "A declaration inside a class that saves memory by pre-declaring space for " "instance attributes and eliminating instance dictionaries. Though popular, " @@ -2304,11 +2338,11 @@ msgstr "" "nombre d'instances dans une application devient un sujet critique pour la " "mémoire." -#: ../Doc/glossary.rst:973 +#: ../Doc/glossary.rst:989 msgid "sequence" msgstr "séquence" -#: ../Doc/glossary.rst:975 +#: ../Doc/glossary.rst:991 msgid "" "An :term:`iterable` which supports efficient element access using integer " "indices via the :meth:`__getitem__` special method and defines a :meth:" @@ -2321,13 +2355,13 @@ 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:984 +#: ../Doc/glossary.rst:1000 msgid "" "The :class:`collections.abc.Sequence` abstract base class defines a much " "richer interface that goes beyond just :meth:`__getitem__` and :meth:" @@ -2341,11 +2375,11 @@ msgstr "" "et :meth:`__reversed__`. Les types qui implémentent cette interface étendue " "peuvent s'enregistrer explicitement en utilisant :func:`~abc.register`." -#: ../Doc/glossary.rst:991 +#: ../Doc/glossary.rst:1007 msgid "single dispatch" msgstr "distribution simple" -#: ../Doc/glossary.rst:993 +#: ../Doc/glossary.rst:1009 msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." @@ -2354,11 +2388,11 @@ msgstr "" "générique>`, où l'implémentation est choisie en fonction du type d'un seul " "argument." -#: ../Doc/glossary.rst:995 +#: ../Doc/glossary.rst:1011 msgid "slice" msgstr "tranche" -#: ../Doc/glossary.rst:997 +#: ../Doc/glossary.rst:1013 msgid "" "An object usually containing a portion of a :term:`sequence`. A slice is " "created using the subscript notation, ``[]`` with colons between numbers " @@ -2371,11 +2405,11 @@ msgstr "" "``variable_name[1:3:5]``. Cette notation utilise des objets :class:`slice` " "en interne." -#: ../Doc/glossary.rst:1001 +#: ../Doc/glossary.rst:1017 msgid "special method" msgstr "méthode spéciale" -#: ../Doc/glossary.rst:1003 +#: ../Doc/glossary.rst:1021 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 " @@ -2387,11 +2421,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:1007 +#: ../Doc/glossary.rst:1025 msgid "statement" msgstr "instruction" -#: ../Doc/glossary.rst:1009 +#: ../Doc/glossary.rst:1027 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 :" @@ -2402,11 +2436,11 @@ msgstr "" "constructions basées sur un mot-clé, comme :keyword:`if`, :keyword:`while` " "ou :keyword:`for`." -#: ../Doc/glossary.rst:1012 +#: ../Doc/glossary.rst:1030 msgid "struct sequence" msgstr "*struct sequence*" -#: ../Doc/glossary.rst:1014 +#: ../Doc/glossary.rst:1032 msgid "" "A tuple with named elements. Struct sequences expose an interface similar " "to :term:`named tuple` in that elements can be accessed either by index or " @@ -2423,21 +2457,21 @@ msgstr "" "_asdict`. Par exemple :data:`sys.float_info` ou les valeurs données par :" "func:`os.stat` sont des *struct sequence*." -#: ../Doc/glossary.rst:1020 +#: ../Doc/glossary.rst:1038 msgid "text encoding" msgstr "encodage de texte" -#: ../Doc/glossary.rst:1022 +#: ../Doc/glossary.rst:1040 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:1023 +#: ../Doc/glossary.rst:1041 msgid "text file" msgstr "fichier texte" -#: ../Doc/glossary.rst:1025 +#: ../Doc/glossary.rst:1043 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:" @@ -2452,7 +2486,7 @@ msgstr "" "ou ``'w'``), :data:`sys.stdin`, :data:`sys.stdout` et les instances de :" "class:`io.StringIO`." -#: ../Doc/glossary.rst:1032 +#: ../Doc/glossary.rst:1050 msgid "" "See also :term:`binary file` for a file object able to read and write :term:" "`bytes-like objects `." @@ -2460,11 +2494,11 @@ msgstr "" "Voir aussi :term:`binary file` pour un objet fichier capable de lire et " "d'écrire :term:`bytes-like objects `." -#: ../Doc/glossary.rst:1034 +#: ../Doc/glossary.rst:1052 msgid "triple-quoted string" msgstr "chaîne entre triple guillemets" -#: ../Doc/glossary.rst:1036 +#: ../Doc/glossary.rst:1054 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 " @@ -2483,11 +2517,11 @@ msgstr "" "\\``. Elle est ainsi particulièrement utile pour les chaînes de " "documentation (*docstrings*)." -#: ../Doc/glossary.rst:1043 +#: ../Doc/glossary.rst:1061 msgid "type" msgstr "type" -#: ../Doc/glossary.rst:1045 +#: ../Doc/glossary.rst:1063 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." @@ -2497,15 +2531,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:1049 +#: ../Doc/glossary.rst:1067 msgid "type alias" msgstr "alias de type" -#: ../Doc/glossary.rst:1051 +#: ../Doc/glossary.rst:1069 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:1053 +#: ../Doc/glossary.rst:1071 msgid "" "Type aliases are useful for simplifying :term:`type hints `. For " "example::" @@ -2513,19 +2547,19 @@ msgstr "" "Les alias de types sont utiles pour simplifier les :term:`indications de " "types `. Par exemple ::" -#: ../Doc/glossary.rst:1062 +#: ../Doc/glossary.rst:1080 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:1071 ../Doc/glossary.rst:1085 +#: ../Doc/glossary.rst:1089 ../Doc/glossary.rst:1103 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:1072 +#: ../Doc/glossary.rst:1090 msgid "type hint" msgstr "indication de type" -#: ../Doc/glossary.rst:1074 +#: ../Doc/glossary.rst:1092 msgid "" "An :term:`annotation` that specifies the expected type for a variable, a " "class attribute, or a function parameter or return value." @@ -2533,18 +2567,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:1077 +#: ../Doc/glossary.rst:1095 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:1081 +#: ../Doc/glossary.rst:1099 msgid "" "Type hints of global variables, class attributes, and functions, but not " "local variables, can be accessed using :func:`typing.get_type_hints`." @@ -2553,11 +2587,11 @@ msgstr "" "fonctions, mais pas de variables locales, peuvent être consultés en " "utilisant :func:`typing.get_type_hints`." -#: ../Doc/glossary.rst:1086 +#: ../Doc/glossary.rst:1104 msgid "universal newlines" msgstr "retours à la ligne universels" -#: ../Doc/glossary.rst:1088 +#: ../Doc/glossary.rst:1106 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 " @@ -2566,54 +2600,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:1093 +#: ../Doc/glossary.rst:1111 msgid "variable annotation" msgstr "annotation de variable" -#: ../Doc/glossary.rst:1095 +#: ../Doc/glossary.rst:1113 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:1097 +#: ../Doc/glossary.rst:1115 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:1102 +#: ../Doc/glossary.rst:1120 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:1108 +#: ../Doc/glossary.rst:1126 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:1110 +#: ../Doc/glossary.rst:1128 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:1112 +#: ../Doc/glossary.rst:1130 msgid "virtual environment" msgstr "environnement virtuel" -#: ../Doc/glossary.rst:1114 +#: ../Doc/glossary.rst:1132 msgid "" "A cooperatively isolated runtime environment that allows Python users and " "applications to install and upgrade Python distribution packages without " @@ -2625,15 +2659,15 @@ msgstr "" "des paquets sans interférer avec d'autres applications Python fonctionnant " "sur le même système." -#: ../Doc/glossary.rst:1119 +#: ../Doc/glossary.rst:1137 msgid "See also :mod:`venv`." msgstr "Voir aussi :mod:`venv`." -#: ../Doc/glossary.rst:1120 +#: ../Doc/glossary.rst:1138 msgid "virtual machine" msgstr "machine virtuelle" -#: ../Doc/glossary.rst:1122 +#: ../Doc/glossary.rst:1140 msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." @@ -2642,11 +2676,11 @@ msgstr "" "(*virtual machine*) de Python exécute le :term:`bytecode` produit par le " "compilateur de *bytecode*." -#: ../Doc/glossary.rst:1124 +#: ../Doc/glossary.rst:1142 msgid "Zen of Python" msgstr "Le zen de Python" -#: ../Doc/glossary.rst:1126 +#: ../Doc/glossary.rst:1144 msgid "" "Listing of Python design principles and philosophies that are helpful in " "understanding and using the language. The listing can be found by typing " diff --git a/howto/argparse.po b/howto/argparse.po index d9bd219c7..a73e40cb9 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-10-13 22:28+0200\n" -"PO-Revision-Date: 2018-08-01 23:54+0200\n" -"Last-Translator: Hugo Ludmann \n" +"PO-Revision-Date: 2019-07-25 16:44+0200\n" +"Last-Translator: Antonin Décimo \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.7.1\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/howto/argparse.rst:3 msgid "Argparse Tutorial" @@ -70,7 +70,7 @@ msgid "" "defaults to displaying the contents of the current directory." msgstr "" "La commande :command:`ls` est utile quand elle est exécutée sans aucun " -"paramètre. Par défaut cela affiche le contenu du dossier courant." +"paramètre. Elle affiche par défaut le contenu du dossier courant." #: ../Doc/howto/argparse.rst:51 msgid "" @@ -86,11 +86,11 @@ msgstr "" "Si l'on veut plus que ce qui est proposé par défaut, il faut l'indiquer. " "Dans le cas présent, on veut afficher un dossier différent : ``pypy``. Ce " "que l'on a fait c'est spécifier un argument positionnel. C'est appelé ainsi " -"car cela permet au programme de savoir quoi faire avec la valeur seulement " -"en se basant sur sa position dans la ligne de commande. Ce concept est plus " -"pertinent pour une commande comme :command:`cp` dont l'usage de base est " -"``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et le " -"second est *où vous voulez le copier*." +"car cela permet au programme de savoir quoi faire avec la valeur en se " +"basant seulement sur sa position dans la ligne de commande. Ce concept est " +"plus pertinent pour une commande comme :command:`cp` dont l'usage de base " +"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 msgid "" @@ -98,9 +98,9 @@ msgid "" "display more info for each file instead of just showing the file names. The " "``-l`` in that case is known as an optional argument." msgstr "" -"Maintenant, supposons que l'on veut changer la façon dont le programme agit. " -"Dans notre exemple, on affiche plus d'information pour chaque ficher que " -"simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." +"Maintenant, supposons que l'on veuille changer la façon dont le programme " +"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 msgid "" @@ -118,8 +118,7 @@ msgstr "Les bases" #: ../Doc/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 : ::" +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 @@ -129,22 +128,22 @@ 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 msgid "Here is what is happening:" -msgstr "Voilà ce qu'il ce passe :" +msgstr "Voilà ce qu'il se passe :" #: ../Doc/howto/argparse.rst:97 msgid "" "Running the script without any options results in nothing displayed to " "stdout. Not so useful." msgstr "" -"Exécuter le script sans aucun paramètre à pour effet que rien est affiché " -"sur la sortie d'erreur. Ce n'est pas très utile." +"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 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." msgstr "" -"Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On a " +"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 @@ -155,9 +154,9 @@ msgid "" "also for free." msgstr "" "L'option ``--help``, que l'on peut aussi raccourcir en ``-h``, est la seule " -"option que l'on a gratuitement (i.e. pas besoin de la préciser). Préciser " -"quoi que ce soit d'autre entrainera une erreur. Mais même dans ce cas, on " -"reçoit aussi un message utile, toujours gratuitement." +"option que l'on a gratuitement (pas besoin de la préciser). Préciser quoi " +"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 msgid "Introducing Positional arguments" @@ -165,7 +164,7 @@ msgstr "Introduction aux arguments positionnels" #: ../Doc/howto/argparse.rst:112 msgid "An example::" -msgstr "Un exemple : ::" +msgstr "Un exemple ::" #: ../Doc/howto/argparse.rst:120 msgid "And running the code:" @@ -173,7 +172,7 @@ msgstr "On exécute le code :" #: ../Doc/howto/argparse.rst:138 msgid "Here is what's happening:" -msgstr "Voilà ce qu'il ce passe :" +msgstr "Voilà ce qu'il se passe :" #: ../Doc/howto/argparse.rst:140 msgid "" @@ -196,7 +195,7 @@ msgid "" "specified, in this case, ``echo``." msgstr "" "La méthode :meth:`parse_args` renvoie en réalité certaines données des " -"paramètres précisées, dans le cas présent : ``echo``." +"paramètres précisés, dans le cas présent : ``echo``." #: ../Doc/howto/argparse.rst:149 msgid "" @@ -206,9 +205,9 @@ msgid "" "``echo``." msgstr "" "La variable est comme une forme de 'magie' que :mod:`argparse` effectue " -"gratuitement (i.e. pas besoin de préciser dans quelle variable la valeur est " -"stockée). Vous aurez aussi remarqué que le nom est le même que l'argument en " -"chaîne de caractère donné à la méthode : ``echo``." +"gratuitement (c.-à-d. pas besoin de préciser dans quelle variable la valeur " +"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 msgid "" @@ -221,8 +220,8 @@ msgstr "" "Notez cependant que, même si l'affichage d'aide paraît bien , il n'est pas " "aussi utile qu'il pourrait l'être. Par exemple, on peut lire que ``echo`` " "est un argument positionnel mais on ne peut pas savoir ce que cela fait " -"autrement qu'en le devinant ou en lisant le code source. Donc, rendons le un " -"peu plus utile : ::" +"autrement qu'en le devinant ou en lisant le code source. Donc, rendons-le un " +"peu plus utile ::" #: ../Doc/howto/argparse.rst:165 msgid "And we get:" @@ -231,8 +230,7 @@ msgstr "Et on obtient :" #: ../Doc/howto/argparse.rst:178 msgid "Now, how about doing something even more useful::" msgstr "" -"Maintenant, qu'en dîtes vous s'il on fait quelque chose d'encore plus " -"utile : ::" +"À présent, que diriez-vous de faire quelque chose d'encore plus utile ::" #: ../Doc/howto/argparse.rst:196 msgid "" @@ -243,7 +241,7 @@ msgstr "" "Cela n'a pas très bien fonctionné. C'est parce que :mod:`argparse` traite " "les paramètres que l'on donne comme des chaînes de caractères à moins qu'on " "ne lui indique de faire autrement. Donc, disons à :mod:`argparse` de traiter " -"cette entrée comme un entier : ::" +"cette entrée comme un entier ::" #: ../Doc/howto/argparse.rst:217 msgid "" @@ -263,7 +261,7 @@ msgid "" "how to add optional ones::" msgstr "" "Jusqu'à maintenant, on a joué avec les arguments positionnels. Regardons " -"comment ajouter des paramètres optionnels : ::" +"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 @@ -313,7 +311,7 @@ msgstr "" "L'exemple ci-dessus accepte des valeurs entières arbitraires pour ``--" "verbosity`` mais pour notre programme simple seule deux valeurs sont " "réellement utiles : ``True`` et ``False``. Modifions le code en accord avec " -"cela : ::" +"cela ::" #: ../Doc/howto/argparse.rst:298 msgid "" @@ -352,9 +350,9 @@ msgid "" "yet touched on the topic of short versions of the options. It's quite " "simple::" msgstr "" -"Si vous êtes familier avec l'utilisation des ligne de commande vous avez dû " -"remarqué que je n'ai pour l'instant rien dit au sujet des versions " -"raccourcies des paramètres. C'est très simple : ::" +"Si vous êtes familier avec l'utilisation de la ligne de commande, vous avez " +"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 msgid "And here goes:" @@ -370,7 +368,7 @@ msgstr "Combinaison d'arguments positionnels et optionnels" #: ../Doc/howto/argparse.rst:345 msgid "Our program keeps growing in complexity::" -msgstr "Notre programme continue de grandir en complexité : ::" +msgstr "Notre programme continue de croître en complexité ::" #: ../Doc/howto/argparse.rst:360 msgid "And now the output:" @@ -389,8 +387,8 @@ msgid "" "How about we give this program of ours back the ability to have multiple " "verbosity values, and actually get to use them::" 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 : ::" +"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 msgid "" @@ -400,7 +398,7 @@ msgid "" msgstr "" "Tout semble bon sauf le dernier, qui montre que notre programme contient un " "bogue. Corrigeons cela en restreignant les valeurs que ``--verbosity`` " -"accepte : ::" +"accepte ::" #: ../Doc/howto/argparse.rst:448 msgid "" @@ -419,7 +417,7 @@ msgstr "" "Essayons maintenant une approche différente pour jouer sur la verbosité, ce " "qui arrive fréquemment. Cela correspond également à comment le programme " "CPython gère ses propres paramètres de verbosité (jetez un œil sur la sortie " -"de la commande ``python --help``) : ::" +"de la commande ``python --help``) ::" #: ../Doc/howto/argparse.rst:470 msgid "" @@ -455,8 +453,8 @@ msgid "" "And if you don't specify the ``-v`` flag, that flag is considered to have " "``None`` value." msgstr "" -"Et si vous ne spécifiez pas le option ``-v``, ce option sera considéré en " -"tant que valeur ``None``." +"Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur " +"``None``." #: ../Doc/howto/argparse.rst:509 msgid "" @@ -474,8 +472,7 @@ msgid "" msgstr "" "Malheureusement, notre sortie d'aide n'est pas très informative à propos des " "nouvelles possibilités de notre programme, mais cela peut toujours être " -"corrigé en améliorant sa documentation. (e.g. en utilisant le l'argument " -"``help``)." +"corrigé en améliorant sa documentation (en utilisant l'argument ``help``)." #: ../Doc/howto/argparse.rst:516 msgid "That last output exposes a bug in our program." @@ -483,7 +480,7 @@ msgstr "La dernière sortie du programme montre que celui-ci contient un bogue." #: ../Doc/howto/argparse.rst:519 msgid "Let's fix::" -msgstr "Corrigeons : ::" +msgstr "Corrigeons ::" #: ../Doc/howto/argparse.rst:538 msgid "And this is what it gives:" @@ -504,7 +501,7 @@ msgstr "La troisième sortie de programme n'est pas si bien que ça." #: ../Doc/howto/argparse.rst:558 msgid "Let's fix that bug::" -msgstr "Corrigeons ce bogue : ::" +msgstr "Corrigeons ce bogue ::" #: ../Doc/howto/argparse.rst:575 msgid "" @@ -518,7 +515,7 @@ msgstr "" "l'avons définit à ``0`` pour le rendre comparable aux autres valeurs. " "Rappelez-vous que par défaut, si un argument optionnel n'est pas spécifié, " "il sera définit à ``None``, et ne pourra pas être comparé à une valeur de " -"type entier (Une erreur :exc:`TypeError` serait alors levée)." +"type entier (une erreur :exc:`TypeError` serait alors levée)." #: ../Doc/howto/argparse.rst:582 msgid "And:" @@ -544,8 +541,8 @@ msgid "" "What if we wanted to expand our tiny program to perform other powers, not " "just squares::" 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 : ::" +"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 msgid "Output:" @@ -559,7 +556,7 @@ msgid "" msgstr "" "Il est à noter que jusqu'à présent nous avons utilisé le niveau de verbosité " "pour *changer* le texte qui est affiché. L'exemple suivant au contraire " -"utilise le niveau de verbosité pour afficher *plus* de texte à la place : ::" +"utilise le niveau de verbosité pour afficher *plus* de texte à la place ::" #: ../Doc/howto/argparse.rst:667 msgid "Conflicting options" @@ -580,7 +577,7 @@ msgstr "" "qui sont en conflit entre eux. Changeons aussi le reste du programme de " "telle sorte que la nouvelle fonctionnalité fasse sens : nous allons " "introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--" -"verbose`` : ::" +"verbose`` ::" #: ../Doc/howto/argparse.rst:695 msgid "" @@ -598,8 +595,8 @@ msgid "" "form ones." msgstr "" "Cela devrait être facile à suivre. J'ai ajouté cette dernière sortie pour " -"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, i.e. " -"faire un mixe entre des paramètres courts et longs." +"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 msgid "" @@ -607,8 +604,8 @@ msgid "" "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 savent " -"pas : ::" +"le but principal de votre programme, juste dans le cas ou ils ne le " +"sauraient pas ::" #: ../Doc/howto/argparse.rst:738 msgid "" @@ -616,9 +613,9 @@ msgid "" "tells us that we can either use ``-v`` or ``-q``, but not both at the same " "time:" msgstr "" -"Notez cette nuance dans le texte d'utilisation. Les options `[-v | -q]``, " -"qui nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais " -"pas les deux ensemble :" +"Notez cette nuance dans le texte d'utilisation. Les options `[-v | -q]`` " +"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas " +"les deux ensemble :" #: ../Doc/howto/argparse.rst:760 msgid "Conclusion" @@ -631,6 +628,6 @@ msgid "" "tutorial, you should easily digest them without feeling overwhelmed." msgstr "" "Le module :mod:`argparse` offre bien plus que ce qui est montré ici. Sa " -"documentation est assez détaillée complète et pleine d'exemples. En ayant " -"accompli ce tutoriel, vous pourriez facilement comprendre cette " -"documentation sans vous sentir dépassé." +"documentation est assez détaillée, complète et pleine d'exemples. En ayant " +"accompli ce tutoriel, vous pourrez facilement comprendre cette documentation " +"sans vous sentir dépassé." diff --git a/howto/clinic.po b/howto/clinic.po index a4d913de5..f7590053a 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -6,18 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-08-01 23:51+0200\n" +"PO-Revision-Date: 2019-03-26 17:29+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.0.6\n" #: ../Doc/howto/clinic.rst:5 msgid "Argument Clinic How-To" -msgstr "" +msgstr "Guide Argument Clinic" #: ../Doc/howto/clinic.rst:0 msgid "author" @@ -25,7 +25,7 @@ msgstr "auteur" #: ../Doc/howto/clinic.rst:7 msgid "Larry Hastings" -msgstr "" +msgstr "Larry Hastings" #: ../Doc/howto/clinic.rst:None msgid "Abstract" @@ -370,7 +370,7 @@ msgstr "" 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 : ::" +"notre bloc ::" #: ../Doc/howto/clinic.rst:193 msgid "" @@ -403,7 +403,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:348 ../Doc/howto/clinic.rst:375 #: ../Doc/howto/clinic.rst:481 ../Doc/howto/clinic.rst:533 msgid "Sample::" -msgstr "Échantillon : ::" +msgstr "Échantillon ::" #: ../Doc/howto/clinic.rst:211 msgid "" @@ -660,7 +660,7 @@ msgid "" msgstr "" "Pour plus de visibilité, la plupart du code a été écrit dans un fichier ``.c." "h``. Vous devez l'inclure dans votre fichier ``.c`` original, typiquement " -"juste après le bloc du module *clinic* : ::" +"juste après le bloc du module *clinic* ::" #: ../Doc/howto/clinic.rst:421 msgid "" @@ -724,7 +724,7 @@ msgid "" msgstr "" "Quatrièmement, à l'intérieur de la section sortie du bloc, vous trouverez " "une macro pré-processeur qui définit les structures statiques :c:type:" -"`PyMethodDef` appropriées pour ce module natif : ::" +"`PyMethodDef` appropriées pour ce module natif ::" #: ../Doc/howto/clinic.rst:452 msgid "" @@ -769,7 +769,7 @@ msgid "" "like this::" msgstr "" "Comme c'est un peu bizarre, ça vaut la peine de répéter. Votre fonction doit " -"ressembler à ça : ::" +"ressembler à ça ::" #: ../Doc/howto/clinic.rst:477 msgid "" @@ -777,6 +777,9 @@ msgid "" "above it. You should write the opening (and closing) curly braces for the " "function, and the implementation inside." msgstr "" +"Argument Clinic génère une ligne de contrôle et la fonction prototype juste " +"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 msgid "" @@ -833,27 +836,31 @@ msgstr "" #: ../Doc/howto/clinic.rst:552 msgid "Advanced Topics" -msgstr "" +msgstr "Sujets avancés" #: ../Doc/howto/clinic.rst:554 msgid "" "Now that you've had some experience working with Argument Clinic, it's time " "for some advanced topics." 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 msgid "Symbolic default values" -msgstr "" +msgstr "Valeurs par défaut" #: ../Doc/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:" 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 msgid "Numeric constants (integer and float)" -msgstr "" +msgstr "Constantes numériques (entier ou nombre flottant)" #: ../Doc/howto/clinic.rst:565 msgid "String constants" @@ -861,29 +868,35 @@ msgstr "Chaînes constantes" #: ../Doc/howto/clinic.rst:566 msgid "``True``, ``False``, and ``None``" -msgstr "" +msgstr "``True``, ``False`` et ``None``" #: ../Doc/howto/clinic.rst:567 msgid "" "Simple symbolic constants like ``sys.maxsize``, which must start with the " "name of the module" msgstr "" +"Constantes symboliques simples comme ``sys.maxsize``, qui doivent commencer " +"par le nom du module" #: ../Doc/howto/clinic.rst:570 msgid "" "In case you're curious, this is implemented in ``from_builtin()`` in ``Lib/" "inspect.py``." msgstr "" +"Si par curiosité vous voulez lire l'implémentation, c'est ``from_builtin()`` " +"dans ``Lib/inspect.py``." #: ../Doc/howto/clinic.rst:573 msgid "" "(In the future, this may need to get even more elaborate, to allow full " "expressions like ``CONSTANT - 1``.)" 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 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 msgid "" @@ -896,18 +909,30 @@ 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 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 ::" #: ../Doc/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()``." 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 msgid "" @@ -916,20 +941,26 @@ msgid "" "Clinic allows you to give a parameter different names in Python and in C, " "using the same ``\"as\"`` syntax::" 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 ::" #: ../Doc/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 msgid "You can use this to rename the ``self`` parameter too!" -msgstr "" +msgstr "Vous pouvez utiliser ceci pour renommer aussi le paramètre ``self``" #: ../Doc/howto/clinic.rst:621 msgid "Converting functions using PyArg_UnpackTuple" -msgstr "" +msgstr "Conversion des fonctions en utilisant *PyArg_UnpackTuple*" #: ../Doc/howto/clinic.rst:623 msgid "" @@ -939,16 +970,24 @@ 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 msgid "" "Currently the generated code will use :c:func:`PyArg_ParseTuple`, but this " "will change soon." msgstr "" +"Actuellement, le code généré utilise :c:func:`PyArg_ParseTuple`, mais cela " +"va bientôt changer." #: ../Doc/howto/clinic.rst:633 msgid "Optional Groups" -msgstr "" +msgstr "Groupes optionnels" #: ../Doc/howto/clinic.rst:635 msgid "" @@ -960,6 +999,14 @@ 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 msgid "" @@ -974,6 +1021,17 @@ 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 msgid "" @@ -984,6 +1042,14 @@ 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 msgid "" @@ -995,6 +1061,14 @@ 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 msgid "" @@ -1004,6 +1078,11 @@ 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 msgid "Notes:" @@ -1021,32 +1100,51 @@ 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 msgid "" "If there are no required arguments, the optional groups will behave as if " "they're to the right of the required arguments." 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 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 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 msgid "" "Optional groups are *only* intended for legacy code. Please do not use " "optional groups for new code." 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 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 msgid "" @@ -1056,17 +1154,25 @@ 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 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 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 msgid "" @@ -1074,6 +1180,9 @@ msgid "" "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 msgid "" @@ -1081,12 +1190,18 @@ msgid "" "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 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 msgid "" @@ -1095,16 +1210,22 @@ msgid "" "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 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:1246 msgid "``c_default``" -msgstr "" +msgstr "``c_default``" #: ../Doc/howto/clinic.rst:760 msgid "" @@ -1113,10 +1234,15 @@ msgid "" "\". 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 msgid "``annotation``" -msgstr "" +msgstr "``annotation``" #: ../Doc/howto/clinic.rst:767 msgid "" @@ -1129,10 +1255,12 @@ 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 msgid "``accept``" -msgstr "" +msgstr "``accept``" #: ../Doc/howto/clinic.rst:775 msgid "" @@ -1141,14 +1269,18 @@ msgid "" "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 msgid "To accept ``None``, add ``NoneType`` to this set." -msgstr "" +msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble." #: ../Doc/howto/clinic.rst:785 msgid "``bitwise``" -msgstr "" +msgstr "``bitwise``" #: ../Doc/howto/clinic.rst:783 msgid "" @@ -1156,10 +1288,13 @@ msgid "" "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:1260 msgid "``converter``" -msgstr "" +msgstr "``converter``" #: ../Doc/howto/clinic.rst:788 msgid "" @@ -1167,6 +1302,9 @@ msgid "" "\"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 msgid "``encoding``" @@ -1177,16 +1315,21 @@ 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 msgid "``subclass_of``" -msgstr "" +msgstr "``subclass_of``" #: ../Doc/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:1232 msgid "``type``" @@ -1198,10 +1341,13 @@ msgid "" "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 msgid "``zeroes``" -msgstr "" +msgstr "``zeroes``" #: ../Doc/howto/clinic.rst:807 msgid "" @@ -1210,6 +1356,10 @@ msgid "" "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 msgid "" @@ -1221,6 +1371,14 @@ 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 msgid "" @@ -1228,6 +1386,9 @@ msgid "" "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 msgid "``'B'``" @@ -1235,7 +1396,7 @@ msgstr "``'B'``" #: ../Doc/howto/clinic.rst:825 msgid "``unsigned_char(bitwise=True)``" -msgstr "" +msgstr "``unsigned_char(bitwise=True)``" #: ../Doc/howto/clinic.rst:826 msgid "``'b'``" @@ -1243,7 +1404,7 @@ msgstr "``'b'``" #: ../Doc/howto/clinic.rst:826 msgid "``unsigned_char``" -msgstr "" +msgstr "``unsigned_char``" #: ../Doc/howto/clinic.rst:827 msgid "``'c'``" @@ -1251,15 +1412,15 @@ msgstr "``'c'``" #: ../Doc/howto/clinic.rst:827 msgid "``char``" -msgstr "" +msgstr "``char``" #: ../Doc/howto/clinic.rst:828 msgid "``'C'``" -msgstr "" +msgstr "``'C'``" #: ../Doc/howto/clinic.rst:828 msgid "``int(accept={str})``" -msgstr "" +msgstr "``int(accept={str})``" #: ../Doc/howto/clinic.rst:829 msgid "``'d'``" @@ -1267,7 +1428,7 @@ msgstr "``'d'``" #: ../Doc/howto/clinic.rst:829 msgid "``double``" -msgstr "" +msgstr "``double``" #: ../Doc/howto/clinic.rst:830 msgid "``'D'``" @@ -1275,41 +1436,43 @@ msgstr "``'D'``" #: ../Doc/howto/clinic.rst:830 msgid "``Py_complex``" -msgstr "" +msgstr "``Py_complex``" #: ../Doc/howto/clinic.rst:831 msgid "``'es'``" -msgstr "" +msgstr "``'es'``" #: ../Doc/howto/clinic.rst:831 msgid "``str(encoding='name_of_encoding')``" -msgstr "" +msgstr "``str(encoding='name_of_encoding')``" #: ../Doc/howto/clinic.rst:832 msgid "``'es#'``" -msgstr "" +msgstr "``'es#'``" #: ../Doc/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 msgid "``'et'``" -msgstr "" +msgstr "``'et'``" #: ../Doc/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 msgid "``'et#'``" -msgstr "" +msgstr "``'et#'``" #: ../Doc/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 msgid "``'f'``" @@ -1317,7 +1480,7 @@ msgstr "``'f'``" #: ../Doc/howto/clinic.rst:835 msgid "``float``" -msgstr "" +msgstr "``float``" #: ../Doc/howto/clinic.rst:836 msgid "``'h'``" @@ -1325,7 +1488,7 @@ msgstr "``'h'``" #: ../Doc/howto/clinic.rst:836 msgid "``short``" -msgstr "" +msgstr "``short``" #: ../Doc/howto/clinic.rst:837 msgid "``'H'``" @@ -1333,7 +1496,7 @@ msgstr "``'H'``" #: ../Doc/howto/clinic.rst:837 msgid "``unsigned_short(bitwise=True)``" -msgstr "" +msgstr "``unsigned_short(bitwise=True)``" #: ../Doc/howto/clinic.rst:838 msgid "``'i'``" @@ -1349,23 +1512,23 @@ msgstr "``'I'``" #: ../Doc/howto/clinic.rst:839 msgid "``unsigned_int(bitwise=True)``" -msgstr "" +msgstr "``unsigned_int(bitwise=True)``" #: ../Doc/howto/clinic.rst:840 msgid "``'k'``" -msgstr "" +msgstr "``'k'``" #: ../Doc/howto/clinic.rst:840 msgid "``unsigned_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long(bitwise=True)``" #: ../Doc/howto/clinic.rst:841 msgid "``'K'``" -msgstr "" +msgstr "``'K'``" #: ../Doc/howto/clinic.rst:841 msgid "``unsigned_long_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long_long(bitwise=True)``" #: ../Doc/howto/clinic.rst:842 msgid "``'l'``" @@ -1381,7 +1544,7 @@ msgstr "``'L'``" #: ../Doc/howto/clinic.rst:843 msgid "``long long``" -msgstr "" +msgstr "``long long``" #: ../Doc/howto/clinic.rst:844 msgid "``'n'``" @@ -1389,39 +1552,39 @@ msgstr "``'n'``" #: ../Doc/howto/clinic.rst:844 msgid "``Py_ssize_t``" -msgstr "" +msgstr "``Py_ssize_t``" #: ../Doc/howto/clinic.rst:845 msgid "``'O'``" -msgstr "" +msgstr "``'O'``" #: ../Doc/howto/clinic.rst:845 msgid "``object``" -msgstr "" +msgstr "``object``" #: ../Doc/howto/clinic.rst:846 msgid "``'O!'``" -msgstr "" +msgstr "``'O!'``" #: ../Doc/howto/clinic.rst:846 msgid "``object(subclass_of='&PySomething_Type')``" -msgstr "" +msgstr "``object(subclass_of='&PySomething_Type')``" #: ../Doc/howto/clinic.rst:847 msgid "``'O&'``" -msgstr "" +msgstr "``'O&'``" #: ../Doc/howto/clinic.rst:847 msgid "``object(converter='name_of_c_function')``" -msgstr "" +msgstr "``object(converter='name_of_c_function')``" #: ../Doc/howto/clinic.rst:848 msgid "``'p'``" -msgstr "" +msgstr "``'p'``" #: ../Doc/howto/clinic.rst:848 msgid "``bool``" -msgstr "" +msgstr "``bool``" #: ../Doc/howto/clinic.rst:849 msgid "``'S'``" @@ -1429,7 +1592,7 @@ msgstr "``'S'``" #: ../Doc/howto/clinic.rst:849 msgid "``PyBytesObject``" -msgstr "" +msgstr "``PyBytesObject``" #: ../Doc/howto/clinic.rst:850 msgid "``'s'``" @@ -1437,23 +1600,23 @@ msgstr "``'s'``" #: ../Doc/howto/clinic.rst:850 msgid "``str``" -msgstr "" +msgstr "``str``" #: ../Doc/howto/clinic.rst:851 msgid "``'s#'``" -msgstr "" +msgstr "``'s#'``" #: ../Doc/howto/clinic.rst:851 msgid "``str(zeroes=True)``" -msgstr "" +msgstr "``str(zeroes=True)``" #: ../Doc/howto/clinic.rst:852 msgid "``'s*'``" -msgstr "" +msgstr "``'s*'``" #: ../Doc/howto/clinic.rst:852 msgid "``Py_buffer(accept={buffer, str})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str})``" #: ../Doc/howto/clinic.rst:853 msgid "``'U'``" @@ -1461,7 +1624,7 @@ msgstr "``'U'``" #: ../Doc/howto/clinic.rst:853 msgid "``unicode``" -msgstr "" +msgstr "``unicode``" #: ../Doc/howto/clinic.rst:854 msgid "``'u'``" @@ -1469,101 +1632,103 @@ msgstr "``'u'``" #: ../Doc/howto/clinic.rst:854 msgid "``Py_UNICODE``" -msgstr "" +msgstr "``Py_UNICODE``" #: ../Doc/howto/clinic.rst:855 msgid "``'u#'``" -msgstr "" +msgstr "``'u#'``" #: ../Doc/howto/clinic.rst:855 msgid "``Py_UNICODE(zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(zeroes=True)``" #: ../Doc/howto/clinic.rst:856 msgid "``'w*'``" -msgstr "" +msgstr "``'w*'``" #: ../Doc/howto/clinic.rst:856 msgid "``Py_buffer(accept={rwbuffer})``" -msgstr "" +msgstr "``Py_buffer(accept={rwbuffer})``" #: ../Doc/howto/clinic.rst:857 msgid "``'Y'``" -msgstr "" +msgstr "``'Y'``" #: ../Doc/howto/clinic.rst:857 msgid "``PyByteArrayObject``" -msgstr "" +msgstr "``PyByteArrayObject``" #: ../Doc/howto/clinic.rst:858 msgid "``'y'``" -msgstr "" +msgstr "``'y'``" #: ../Doc/howto/clinic.rst:858 msgid "``str(accept={bytes})``" -msgstr "" +msgstr "``str(accept={bytes})``" #: ../Doc/howto/clinic.rst:859 msgid "``'y#'``" -msgstr "" +msgstr "``'y#'``" #: ../Doc/howto/clinic.rst:859 msgid "``str(accept={robuffer}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={robuffer}, zeroes=True)``" #: ../Doc/howto/clinic.rst:860 msgid "``'y*'``" -msgstr "" +msgstr "``'y*'``" #: ../Doc/howto/clinic.rst:860 msgid "``Py_buffer``" -msgstr "" +msgstr "``Py_buffer``" #: ../Doc/howto/clinic.rst:861 msgid "``'Z'``" -msgstr "" +msgstr "``'Z'``" #: ../Doc/howto/clinic.rst:861 msgid "``Py_UNICODE(accept={str, NoneType})``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType})``" #: ../Doc/howto/clinic.rst:862 msgid "``'Z#'``" -msgstr "" +msgstr "``'Z#'``" #: ../Doc/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 msgid "``'z'``" -msgstr "" +msgstr "``'z'``" #: ../Doc/howto/clinic.rst:863 msgid "``str(accept={str, NoneType})``" -msgstr "" +msgstr "``str(accept={str, NoneType})``" #: ../Doc/howto/clinic.rst:864 msgid "``'z#'``" -msgstr "" +msgstr "``'z#'``" #: ../Doc/howto/clinic.rst:864 msgid "``str(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={str, NoneType}, zeroes=True)``" #: ../Doc/howto/clinic.rst:865 msgid "``'z*'``" -msgstr "" +msgstr "``'z*'``" #: ../Doc/howto/clinic.rst:865 msgid "``Py_buffer(accept={buffer, str, NoneType})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str, NoneType})``" #: ../Doc/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 msgid "" @@ -1572,10 +1737,14 @@ msgid "" "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:887 msgid "Py_buffer" -msgstr "" +msgstr "Py_buffer" #: ../Doc/howto/clinic.rst:889 msgid "" @@ -1584,16 +1753,23 @@ msgid "" "`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:897 msgid "Advanced converters" -msgstr "" +msgstr "Adaptateurs avancés" #: ../Doc/howto/clinic.rst:899 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:902 msgid "" @@ -1605,6 +1781,14 @@ 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:910 msgid "" @@ -1614,6 +1798,12 @@ 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:916 msgid "" @@ -1627,30 +1817,46 @@ msgid "" "unreasonable; CPython itself always passes in static hard-coded encoding " "strings for parameters whose format units start with ``e``." msgstr "" +"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``." #: ../Doc/howto/clinic.rst:929 msgid "Parameter default values" -msgstr "" +msgstr "Valeurs par défaut des paramètres" #: ../Doc/howto/clinic.rst:931 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:940 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:948 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:953 msgid "The ``NULL`` default value" -msgstr "" +msgstr "La valeur par défaut ``NULL``" #: ../Doc/howto/clinic.rst:955 msgid "" @@ -1661,10 +1867,16 @@ 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:963 msgid "Expressions specified as default values" -msgstr "" +msgstr "Expressions spécifiées comme valeurs par défaut" #: ../Doc/howto/clinic.rst:965 msgid "" @@ -1673,10 +1885,14 @@ msgid "" "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:970 msgid "Consider the following example:" -msgstr "" +msgstr "Examinons l'exemple suivant :" #: ../Doc/howto/clinic.rst:976 msgid "" @@ -1727,11 +1943,11 @@ msgstr "" #: ../Doc/howto/clinic.rst:1012 msgid "Function calls." -msgstr "" +msgstr "des appels de fonction." #: ../Doc/howto/clinic.rst:1013 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:1014 msgid "Automatic sequence unpacking (``*[1, 2, 3]``)." diff --git a/howto/cporting.po b/howto/cporting.po index 271aaf7a8..b14613dcb 100644 --- a/howto/cporting.po +++ b/howto/cporting.po @@ -1,4 +1,3 @@ -# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" @@ -6,17 +5,18 @@ msgstr "" "Project-Id-Version: Python 3.6\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" +"PO-Revision-Date: 2019-07-19 23:34+0200\n" +"Last-Translator: Andy Kwok \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/howto/cporting.rst:7 msgid "Porting Extension Modules to Python 3" -msgstr "" +msgstr "Portage des modules d'extension vers Python 3" #: ../Doc/howto/cporting.rst:0 msgid "author" @@ -38,36 +38,49 @@ msgid "" "obvious on the C level. This document endeavors to document " "incompatibilities and how they can be worked around." msgstr "" +"Changer l'API C n'était pas l'un des objectifs de Python 3, cependant les " +"nombreux changements au niveau Python ont rendu impossible de garder l'API " +"de Python 2 comme elle était. Certains changements tels que l'unification " +"de :func:`int` et :func:`long` sont plus apparents au niveau C. Ce document " +"s'efforce de documenter les incompatibilités et la façon dont elles peuvent " +"être contournées." #: ../Doc/howto/cporting.rst:23 msgid "Conditional compilation" -msgstr "" +msgstr "Compilation conditionnelle" #: ../Doc/howto/cporting.rst:25 msgid "" "The easiest way to compile only some code for Python 3 is to check if :c:" "macro:`PY_MAJOR_VERSION` is greater than or equal to 3. ::" 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. ::" #: ../Doc/howto/cporting.rst:32 msgid "" "API functions that are not present can be aliased to their equivalents " "within conditional blocks." msgstr "" +"Les fonctions manquantes dans l'API peuvent être remplacées par des alias à " +"leurs équivalents dans des blocs conditionnels." #: ../Doc/howto/cporting.rst:37 msgid "Changes to Object APIs" -msgstr "" +msgstr "Modifications apportées aux API des objets" #: ../Doc/howto/cporting.rst:39 msgid "" "Python 3 merged together some types with similar functions while cleanly " "separating others." msgstr "" +"Python 3 a fusionné certains types avec des fonctions identiques tout en " +"séparant de façon propre, d'autres." #: ../Doc/howto/cporting.rst:44 msgid "str/unicode Unification" -msgstr "" +msgstr "Unification de *str* et *unicode*" #: ../Doc/howto/cporting.rst:46 msgid "" @@ -83,10 +96,23 @@ msgid "" "shows best practices with regards to :c:type:`PyUnicode`, :c:type:" "`PyString`, and :c:type:`PyBytes`. ::" msgstr "" +"Le type :func:`str` de Python 3 est l'équivalent de :func:`unicode` sous " +"Python 2 ; Les fonctions C sont appelées ``PyUnicode_*`` pour les deux " +"versions. L'ancien type de chaîne de caractères de 8 bits est devenue :func:" +"`bytes`, avec des fonctions C nommées ``PyBytes_*``. Python 2.6 et toutes " +"les versions supérieures fournissent un en-tête de compatibilité, :file:" +"`bytesobject.h`, faisant correspondre les noms ``PyBytes`` aux ``PyString``. " +"Pour une meilleure compatibilité avec Python 3, :c:type:`PyUnicode` doit " +"être utilisé seulement pour des données textuelles et :c:type:`PyBytes` pour " +"des données binaires. Il est important de noter que :c:type:`PyBytes` et :c:" +"type:`PyUnicode` en Python 3 ne sont pas remplaçables contrairement à :c:" +"type:`PyString` et :c:type:`PyUnicode` dans Python 2. L'exemple suivant " +"montre l'utilisation optimale de :c:type:`PyUnicode`, :c:type:`PyString`, " +"et :c:type:`PyBytes`. ::" #: ../Doc/howto/cporting.rst:95 msgid "long/int Unification" -msgstr "" +msgstr "Unification de *long* et *int*" #: ../Doc/howto/cporting.rst:97 msgid "" @@ -95,10 +121,14 @@ msgid "" "Python 2 was removed. In the C-API, ``PyInt_*`` functions are replaced by " "their ``PyLong_*`` equivalents." msgstr "" +"Python 3 n'a qu'un type d'entier, :func:`int`. Mais il correspond au type :" +"func:`long` de Python 2 — le type :func:`int` utilisé dans Python 2 a été " +"supprimé. Dans l'API C, les fonctions ``PyInt_*`` sont remplacées par leurs " +"équivalents ``PyLong_*``." #: ../Doc/howto/cporting.rst:104 msgid "Module initialization and state" -msgstr "" +msgstr "Initialisation et état du module" #: ../Doc/howto/cporting.rst:106 msgid "" @@ -108,10 +138,16 @@ msgid "" "in both Python 2 and Python 3 is tricky. The following simple example " "demonstrates how. ::" msgstr "" +"Python 3 a remanié son système d'initialisation des modules d'extension " +"(Voir :pep:`3121`.). Au lieu de stocker les états de module dans les " +"variables globales, les états doivent être stockés dans une structure " +"spécifique à l'interpréteur. Créer des modules qui ont un fonctionnement " +"correct en Python 2 et Python 3 est délicat. L'exemple suivant montre " +"comment. ::" #: ../Doc/howto/cporting.rst:197 msgid "CObject replaced with Capsule" -msgstr "" +msgstr "CObject remplacé par Capsule" #: ../Doc/howto/cporting.rst:199 msgid "" @@ -122,6 +158,13 @@ msgid "" "APIs relied on undefined behavior in C. (For further reading on the " "rationale behind Capsules, please see :issue:`5630`.)" msgstr "" +"L'objet :c:type:`Capsule` a été introduit dans Python 3.1 et 2.7 pour " +"remplacer :c:type:`CObject`. Le type :c:type:`CObject` était utile, mais son " +"API posait des soucis : elle ne permettait pas la distinction entre les " +"objets C valides, ce qui permettait aux objets C assortis incorrectement de " +"planter l'interpréteur, et certaines des API s'appuyaient sur un " +"comportement indéfini en C. (Pour plus de détails sur la logique de " +"Capsules, veuillez consulter :issue:`5630`)." #: ../Doc/howto/cporting.rst:206 msgid "" @@ -133,6 +176,14 @@ msgid "" "support both CObjects and Capsules. (Note that Python 3.0 is no longer " "supported, and it is not recommended for production use.)" msgstr "" +"Si vous utilisez actuellement CObjects et que vous voulez migrer vers la " +"version 3.1 ou plus récente, vous devrez passer à Capsules. :c:type:" +"`CObject` est déprécié dans 3.1 et 2.7 et est supprimé dans Python 3.2. Si " +"vous ne gérez que les versions 2.7, ou 3.1 et supérieures, vous pouvez " +"simplement passer à :c:type:`Capsule`. Si vous avez besoin de gérer Python " +"3.0, ou des versions de Python antérieures à 2.7, vous devez gérer CObjects " +"et Capsules. (Notez que Python 3.0 n'est plus maintenu, et qu'il n'est pas " +"recommandé pour une utilisation en production)." #: ../Doc/howto/cporting.rst:216 msgid "" @@ -142,6 +193,11 @@ msgid "" "automatically use Capsules in versions of Python with Capsules, and switch " "to CObjects when Capsules are unavailable." msgstr "" +"L'exemple suivant d'en-tête de fichier :file:`capsulethunk.h` peut résoudre " +"le problème. Il suffit d'écrire votre code dans l'API :c:type:`Capsule` et " +"d'inclure ce fichier d'en-tête après :file:`Python.h`. Votre code utilisera " +"automatiquement Capsules dans les versions de Python avec Capsules, et " +"passera à CObjects lorsque les Capsules ne sont pas disponibles." #: ../Doc/howto/cporting.rst:223 msgid "" @@ -150,10 +206,15 @@ msgid "" "the simulated :c:type:`Capsule` objects created by :file:`capsulethunk.h` " "behave slightly differently from real Capsules. Specifically:" msgstr "" +":file:`capsulethunk.h` reproduit le fonctionnement de Capsules en utilisant " +"CObjects. Cependant, :c:type:`CObject` ne permet pas de stocker le \"nom\" " +"de la capsule. Les objets simulés :c:type:`Capsule` créés par :file:" +"`capsulethunk.h` se comportent légèrement différemment des véritables " +"Capsules. Ainsi :" #: ../Doc/howto/cporting.rst:228 msgid "The name parameter passed in to :c:func:`PyCapsule_New` is ignored." -msgstr "" +msgstr "Le paramètre *name* passé à :c:func:`PyCapsule_New` est ignoré." #: ../Doc/howto/cporting.rst:230 msgid "" @@ -161,10 +222,13 @@ msgid "" "`PyCapsule_GetPointer` is ignored, and no error checking of the name is " "performed." msgstr "" +"Le paramètre *name* passé à :c:func:`PyCapsule_IsValid` et :c:func:" +"`PyCapsule_GetPointer` est ignoré et il n'y a pas de vérification d'erreur " +"du nom." #: ../Doc/howto/cporting.rst:234 msgid ":c:func:`PyCapsule_GetName` always returns NULL." -msgstr "" +msgstr ":c:func:`PyCapsule_GetName` renvoie toujours un NULL." #: ../Doc/howto/cporting.rst:236 msgid "" @@ -173,6 +237,11 @@ msgid "" "`PyCapsule_SetName` was deemed preferable to silent failure here. If this " "is inconvenient, feel free to modify your local copy as you see fit.)" msgstr "" +":c:func:`PyCapsule_SetName` lève toujours une exception et renvoie un échec. " +"Note : Puisqu'il n'y a aucun moyen de stocker un nom dans un CObject, " +"l'échec verbeux de :c:func:`PyCapsule_SetName` a été jugé préférable à un " +"échec non-verbeux dans ce cas. Si cela ne vous convenait pas, vous pouvez " +"modifier votre copie locale selon vos besoins." #: ../Doc/howto/cporting.rst:243 msgid "" @@ -180,10 +249,13 @@ msgid "" "source:`Doc/includes/capsulethunk.h`. We also include it here for your " "convenience:" msgstr "" +"Vous pouvez trouver :file:`capsulethunk.h` dans la distribution source de " +"Python comme :source:`Doc/includes/capsulethunk.h`. Nous l'incluons ici pour " +"votre confort :" #: ../Doc/howto/cporting.rst:252 msgid "Other options" -msgstr "" +msgstr "Autres options" #: ../Doc/howto/cporting.rst:254 msgid "" @@ -191,3 +263,7 @@ msgid "" "`_. It translates a Python-like language to C. The " "extension modules it creates are compatible with Python 3 and Python 2." msgstr "" +"Si vous écrivez un nouveau module d'extension, vous pouvez envisager " +"d'utiliser `Cython `_. Il traduit un langage de type " +"Python en C. Les modules d'extension qu'il crée sont compatibles avec Python " +"3 et Python 2." diff --git a/howto/curses.po b/howto/curses.po index 805a8375e..1255203e7 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -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 2d45502d0..2f4cf80ac 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-09-16 11:04+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.1.1\n" #: ../Doc/howto/descriptor.rst:3 msgid "Descriptor HowTo Guide" -msgstr "" +msgstr "Guide pour l'utilisation des descripteurs" #: ../Doc/howto/descriptor.rst:0 msgid "Author" @@ -24,15 +25,15 @@ msgstr "Auteur" #: ../Doc/howto/descriptor.rst:5 msgid "Raymond Hettinger" -msgstr "" +msgstr "Raymond Hettinger" #: ../Doc/howto/descriptor.rst:0 msgid "Contact" -msgstr "" +msgstr "Contact" #: ../Doc/howto/descriptor.rst:6 msgid "" -msgstr "" +msgstr "" #: ../Doc/howto/descriptor.rst:8 msgid "Contents" @@ -50,6 +51,11 @@ msgid "" "methods. Shows how each works by giving a pure Python equivalent and a " "sample application." msgstr "" +"Définit les descripteurs, résume le protocole et montre comment les " +"descripteurs sont appelés. Examine un descripteur personnalisé et plusieurs " +"descripteurs Python intégrés, y compris les fonctions, les propriétés, les " +"méthodes statiques et les méthodes de classe. Montre comment chacun " +"fonctionne en donnant un équivalent Python pur et un exemple d'application." #: ../Doc/howto/descriptor.rst:18 msgid "" @@ -57,10 +63,13 @@ msgid "" "creates a deeper understanding of how Python works and an appreciation for " "the elegance of its design." msgstr "" +"L'apprentissage des descripteurs permet non seulement d'accéder à un " +"ensemble d'outils plus vaste, mais aussi de mieux comprendre le " +"fonctionnement de Python et d'apprécier l'élégance de sa conception." #: ../Doc/howto/descriptor.rst:24 msgid "Definition and Introduction" -msgstr "" +msgstr "Définition et introduction" #: ../Doc/howto/descriptor.rst:26 msgid "" @@ -70,6 +79,11 @@ msgid "" "`__delete__`. If any of those methods are defined for an object, it is said " "to be a descriptor." msgstr "" +"En général, un descripteur est un attribut objet avec un \"comportement " +"contraignant\", dont l'accès à l'attribut a été remplacé par des méthodes " +"dans le protocole du descripteur. Ces méthodes sont : :meth:`__get__`, :" +"meth:`__set__`, et :meth:`__delete__`. Si l'une de ces méthodes est définie " +"pour un objet, il s'agit d'un descripteur." #: ../Doc/howto/descriptor.rst:32 msgid "" @@ -82,6 +96,15 @@ msgid "" "method instead. Where this occurs in the precedence chain depends on which " "descriptor methods were defined." msgstr "" +"Le comportement par défaut pour l'accès aux attributs consiste à obtenir, " +"définir ou supprimer l'attribut du dictionnaire d'un objet. Par exemple, " +"``a. x`` a une chaîne de recherche commençant par ``a. __dict__ ['x']``, " +"puis ``type (a). __dict__ ['x']``, et continuant à travers les classes de " +"base de ``type (a)`` À l'exclusion des sous-classes. Si la valeur recherchée " +"est un objet définissant l'une des méthodes de descripteur, Python peut " +"substituer le comportement par défaut et appeler à la place la méthode " +"Descriptor. Lorsque cela se produit dans la chaîne de précédence dépend de " +"quelles méthodes descripteur ont été définies." #: ../Doc/howto/descriptor.rst:41 msgid "" @@ -92,22 +115,29 @@ msgid "" "underlying C-code and offer a flexible set of new tools for everyday Python " "programs." msgstr "" +"Les descripteurs sont un protocole puissant et à usage général. Ils sont le " +"mécanisme derrière les propriétés, les méthodes, les méthodes statiques, les " +"méthodes de classes et :func:`super()`. Ils sont utilisés dans tout Python " +"lui-même pour implémenter les nouvelles classes de style introduites dans la " +"version 2.2. Les descripteurs simplifient le code C sous-jacent et offrent " +"un ensemble flexible de nouveaux outils pour les programmes Python " +"quotidiens." #: ../Doc/howto/descriptor.rst:49 msgid "Descriptor Protocol" -msgstr "" +msgstr "Protocole descripteur" #: ../Doc/howto/descriptor.rst:51 msgid "``descr.__get__(self, obj, type=None) -> value``" -msgstr "" +msgstr "``descr.__get__(self, obj, type=None) -> value``" #: ../Doc/howto/descriptor.rst:53 msgid "``descr.__set__(self, obj, value) -> None``" -msgstr "" +msgstr "``descr.__set__(self, obj, value) -> None``" #: ../Doc/howto/descriptor.rst:55 msgid "``descr.__delete__(self, obj) -> None``" -msgstr "" +msgstr "``descr.__delete__(self, obj) -> None``" #: ../Doc/howto/descriptor.rst:57 msgid "" @@ -115,6 +145,9 @@ msgid "" "considered a descriptor and can override default behavior upon being looked " "up as an attribute." msgstr "" +"C'est tout ce qu'il y a à faire. Définissez n'importe laquelle de ces " +"méthodes et un objet est considéré comme un descripteur et peut remplacer le " +"comportement par défaut lorsqu'il est recherché comme un attribut." #: ../Doc/howto/descriptor.rst:61 msgid "" @@ -123,6 +156,11 @@ msgid "" "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)." #: ../Doc/howto/descriptor.rst:66 msgid "" @@ -132,6 +170,13 @@ msgid "" "takes precedence. If an instance's dictionary has an entry with the same " "name as a non-data descriptor, the dictionary entry takes precedence." msgstr "" +"Les descripteurs de données et les descripteurs *non-data* diffèrent dans la " +"façon dont les dérogations sont calculées en ce qui concerne les entrées du " +"dictionnaire d'une instance. Si le dictionnaire d'une instance comporte une " +"entrée portant le même nom qu'un descripteur de données, le descripteur de " +"données est prioritaire. Si le dictionnaire d'une instance comporte une " +"entrée portant le même nom qu'un descripteur *non-data*, l'entrée du " +"dictionnaire a la priorité." #: ../Doc/howto/descriptor.rst:72 msgid "" @@ -140,6 +185,11 @@ msgid "" "called. Defining the :meth:`__set__` method with an exception raising " "placeholder is enough to make it a data descriptor." msgstr "" +"Pour faire un descripteur de données en lecture seule, définissez à la fois :" +"meth:`__get__` et :meth:`__set__` avec :meth:`__set__` levant une erreur :" +"exc:`AttributeError` quand il est appelé. Définir la méthode :meth:" +"`__set__set__` avec une exception élevant le caractère générique est " +"suffisant pour en faire un descripteur de données." #: ../Doc/howto/descriptor.rst:79 msgid "Invoking Descriptors" @@ -150,6 +200,8 @@ msgid "" "A descriptor can be called directly by its method name. For example, ``d." "__get__(obj)``." msgstr "" +"Un descripteur peut être appelé directement par son nom de méthode. Par " +"exemple, ``d.__get__(obj)``." #: ../Doc/howto/descriptor.rst:84 msgid "" @@ -159,11 +211,18 @@ msgid "" "then ``d.__get__(obj)`` is invoked according to the precedence rules listed " "below." msgstr "" +"Alternativement, il est plus courant qu'un descripteur soit invoqué " +"automatiquement lors de l'accès aux attributs. Par exemple, ``obj.d`` " +"recherche ``d`` dans le dictionnaire de ``obj.d``. Si ``d`` définit la " +"méthode :meth:`__get__`, alors ``d.__get__(obj)`` est invoqué selon les " +"règles de priorité énumérées ci-dessous." #: ../Doc/howto/descriptor.rst:89 msgid "" "The details of invocation depend on whether ``obj`` is an object or a class." msgstr "" +"Les détails de l'invocation dépendent du fait que ``obj`` est un objet ou " +"une classe." #: ../Doc/howto/descriptor.rst:91 msgid "" @@ -175,6 +234,14 @@ 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 " +"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:" +"`PyObject_GenericGetAttr()` dans :source:`Objects/object.c`." #: ../Doc/howto/descriptor.rst:99 msgid "" @@ -182,32 +249,43 @@ msgid "" "transforms ``B.x`` into ``B.__dict__['x'].__get__(None, B)``. In pure " "Python, it looks like::" 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 à ::" #: ../Doc/howto/descriptor.rst:110 msgid "The important points to remember are:" -msgstr "" +msgstr "Les points importants à retenir sont :" #: ../Doc/howto/descriptor.rst:112 msgid "descriptors are invoked by the :meth:`__getattribute__` method" -msgstr "" +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 " +"descripteurs" #: ../Doc/howto/descriptor.rst:114 msgid "" ":meth:`object.__getattribute__` and :meth:`type.__getattribute__` make " "different calls to :meth:`__get__`." msgstr "" +":meth:`objet.__getattribute__` et :meth:`type.__getattribute__` font " +"différents appels à :meth:`__get__`." #: ../Doc/howto/descriptor.rst:116 msgid "data descriptors always override instance dictionaries." msgstr "" +"les descripteurs de données remplacent toujours les dictionnaires " +"d'instances." #: ../Doc/howto/descriptor.rst:117 msgid "non-data descriptors may be overridden by instance dictionaries." msgstr "" +"les descripteurs *non-data* peuvent être remplacés par des dictionnaires " +"d'instance." #: ../Doc/howto/descriptor.rst:119 msgid "" @@ -218,6 +296,13 @@ msgid "" "B)``. If not a descriptor, ``m`` is returned unchanged. If 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__`." #: ../Doc/howto/descriptor.rst:126 msgid "" @@ -225,6 +310,9 @@ msgid "" "`Objects/typeobject.c`. and a pure Python equivalent can be found in " "`Guido's Tutorial`_." msgstr "" +"Les détails d'implémentation sont dans :c:func:`super_getattro()` dans :" +"source:`Objects/typeobject.c` et un équivalent Python pur peut être trouvé " +"dans `Guido's Tutorial`_." #: ../Doc/howto/descriptor.rst:132 msgid "" @@ -235,10 +323,16 @@ msgid "" "Likewise, classes can turn-off descriptor invocation by overriding :meth:" "`__getattribute__()`." msgstr "" +"Les détails ci-dessus montrent que le mécanisme des descripteurs est intégré " +"dans les méthodes :meth:`__getattribute__()` pour :class:`object`, :class:" +"`type` et :func:`super`. Les classes héritent de cette machinerie " +"lorsqu'elles dérivent de :class:`object` ou si elles ont une méta-classe " +"fournissant des fonctionnalités similaires. De même, les classes peuvent " +"désactiver l'appel de descripteurs en remplaçant :meth:`__getattribute__()`." #: ../Doc/howto/descriptor.rst:141 msgid "Descriptor Example" -msgstr "" +msgstr "Exemple de descripteur" #: ../Doc/howto/descriptor.rst:143 msgid "" @@ -247,6 +341,11 @@ msgid "" "alternate approach that could do this for every attribute. However, this " "descriptor is useful for monitoring just a few chosen attributes::" msgstr "" +"Le code suivant crée une classe dont les objets sont des descripteurs de " +"données qui affichent un message pour chaque lecture ou écriture. " +"Redéfinir :meth:`__getattribute__` est une approche alternative qui pourrait " +"le faire pour chaque attribut. Cependant, ce descripteur n'est utile que " +"pour le suivi de quelques attributs choisis ::" #: ../Doc/howto/descriptor.rst:181 msgid "" @@ -255,27 +354,39 @@ msgid "" "Properties, bound methods, static methods, and class methods are all based " "on the descriptor protocol." msgstr "" +"Le protocole est simple et offre des possibilités passionnantes. Plusieurs " +"cas d'utilisation sont si courants qu'ils ont été regroupés en appels de " +"fonction individuels. Les propriétés, les méthodes liées, les méthodes " +"statiques et les méthodes de classe sont toutes basées sur le protocole du " +"descripteur." #: ../Doc/howto/descriptor.rst:188 msgid "Properties" -msgstr "" +msgstr "Propriétés" #: ../Doc/howto/descriptor.rst:190 msgid "" "Calling :func:`property` is a succinct way of building a data descriptor " "that triggers function calls upon access to an attribute. Its signature is::" msgstr "" +"Appeler :func:`property` est une façon succincte de construire un " +"descripteur de données qui déclenche des appels de fonction lors de l'accès " +"à un attribut. Sa signature est ::" #: ../Doc/howto/descriptor.rst:195 msgid "" "The documentation shows a typical use to define a managed attribute ``x``::" msgstr "" +"La documentation montre une utilisation typique pour définir un attribut " +"géré ``x`` ::" #: ../Doc/howto/descriptor.rst:203 msgid "" "To see how :func:`property` is implemented in terms of the descriptor " "protocol, here is a pure Python equivalent::" msgstr "" +"Pour voir comment :func:`property` est implémenté dans le protocole du " +"descripteur, voici un un équivalent Python pur ::" #: ../Doc/howto/descriptor.rst:243 msgid "" @@ -283,6 +394,9 @@ msgid "" "attribute access and then subsequent changes require the intervention of a " "method." msgstr "" +"La fonction native :func:`property` aide chaque fois qu'une interface " +"utilisateur a accordé l'accès à un attribut et que des modifications " +"ultérieures nécessitent l'intervention d'une méthode." #: ../Doc/howto/descriptor.rst:247 msgid "" @@ -293,16 +407,25 @@ msgid "" "solution is to wrap access to the value attribute in a property data " "descriptor::" msgstr "" +"Par exemple, une classe de tableur peut donner accès à une valeur de cellule " +"via ``Cell('b10').value``. Les améliorations ultérieures du programme " +"exigent que la cellule soit recalculée à chaque accès ; cependant, le " +"programmeur ne veut pas affecter le code client existant accédant " +"directement à l'attribut. La solution consiste à envelopper l'accès à " +"l'attribut de valeur dans un descripteur de données de propriété ::" #: ../Doc/howto/descriptor.rst:263 msgid "Functions and Methods" -msgstr "" +msgstr "Fonctions et méthodes" #: ../Doc/howto/descriptor.rst:265 msgid "" "Python's object oriented features are built upon a function based " "environment. Using non-data descriptors, the two are merged seamlessly." msgstr "" +"Les fonctionnalités orientées objet de Python sont construites sur un " +"environnement basé sur des fonctions. À l'aide de descripteurs *non-data*, " +"les deux sont fusionnés de façon transparente." #: ../Doc/howto/descriptor.rst:268 msgid "" @@ -313,6 +436,13 @@ msgid "" "convention, the instance reference is called *self* but may be called *this* " "or any other variable name." msgstr "" +"Les dictionnaires de classes stockent les méthodes sous forme de fonctions. " +"Dans une définition de classe, les méthodes sont écrites en utilisant :" +"keyword:`def` ou :keyword:`lambda`, les outils habituels pour créer des " +"fonctions. Les méthodes ne diffèrent des fonctions régulières que par le " +"fait que le premier argument est réservé à l'instance de l'objet. Par " +"convention Python, la référence de l'instance est appelée *self* mais peut " +"être appelée *this* ou tout autre nom de variable." #: ../Doc/howto/descriptor.rst:275 msgid "" @@ -321,21 +451,30 @@ msgid "" "non-data descriptors which return bound methods when they are invoked from " "an object. In pure Python, it works like this::" msgstr "" +"Pour prendre en charge les appels de méthodes, les fonctions incluent la " +"méthode :meth:`__get__` pour lier les méthodes pendant l'accès aux " +"attributs. Cela signifie que toutes les fonctions sont des descripteurs " +"*non-data* qui renvoient des méthodes liées lorsqu'elles sont appelées " +"depuis un objet. En Python pur, il fonctionne comme ceci ::" #: ../Doc/howto/descriptor.rst:288 msgid "" "Running the interpreter shows how the function descriptor works in practice::" msgstr "" +"L'exécution de l'interpréteur montre comment le descripteur de fonction se " +"comporte dans la pratique ::" #: ../Doc/howto/descriptor.rst:326 msgid "Static Methods and Class Methods" -msgstr "" +msgstr "Méthodes statiques et méthodes de classe" #: ../Doc/howto/descriptor.rst:328 msgid "" "Non-data descriptors provide a simple mechanism for variations on the usual " "patterns of binding functions into methods." msgstr "" +"Les descripteurs *non-data* fournissent un mécanisme simple pour les " +"variations des patrons habituels des fonctions de liaison dans les méthodes." #: ../Doc/howto/descriptor.rst:331 msgid "" @@ -344,22 +483,28 @@ msgid "" "transforms an ``obj.f(*args)`` call into ``f(obj, *args)``. Calling ``klass." "f(*args)`` becomes ``f(*args)``." msgstr "" +"Pour résumer, les fonctions ont une méthode :meth:`__get__` pour qu'elles " +"puissent être converties en méthode lorsqu'on y accède comme attributs. Le " +"descripteur *non-data* transforme un appel ``obj.f(*args)``en ``f(obj, " +"*args)``. Appeler ``klass.f(*args)`` devient ``f(*args)``." #: ../Doc/howto/descriptor.rst:336 msgid "This chart summarizes the binding and its two most useful variants:" msgstr "" +"Ce tableau résume le lien (*binding*) et ses deux variantes les plus " +"utiles ::" #: ../Doc/howto/descriptor.rst:339 msgid "Transformation" -msgstr "" +msgstr "Transformation" #: ../Doc/howto/descriptor.rst:339 msgid "Called from an Object" -msgstr "" +msgstr "Appelé depuis un Objet" #: ../Doc/howto/descriptor.rst:339 msgid "Called from a Class" -msgstr "" +msgstr "Appelé depuis un Classe" #: ../Doc/howto/descriptor.rst:342 msgid "function" @@ -367,27 +512,27 @@ msgstr "fonction" #: ../Doc/howto/descriptor.rst:342 msgid "f(obj, \\*args)" -msgstr "" +msgstr "f(obj, \\*args)" #: ../Doc/howto/descriptor.rst:342 ../Doc/howto/descriptor.rst:344 msgid "f(\\*args)" -msgstr "" +msgstr "f(\\*args)" #: ../Doc/howto/descriptor.rst:344 msgid "staticmethod" -msgstr "" +msgstr "méthode statique" #: ../Doc/howto/descriptor.rst:346 msgid "classmethod" -msgstr "" +msgstr "méthode de classe" #: ../Doc/howto/descriptor.rst:346 msgid "f(type(obj), \\*args)" -msgstr "" +msgstr "f(type(obj), \\*args)" #: ../Doc/howto/descriptor.rst:346 msgid "f(klass, \\*args)" -msgstr "" +msgstr "f(klass, \\*args)" #: ../Doc/howto/descriptor.rst:349 msgid "" @@ -397,12 +542,19 @@ msgid "" "result, the function becomes identically accessible from either an object or " "a class." msgstr "" +"Les méthodes statiques renvoient la fonction sous-jacente sans " +"modifications. Appeler ``c.f`` ou ``C.f`` est l'équivalent d'une recherche " +"directe dans ``objet.__getattribute__(c, \"f\")`` ou ``objet." +"__getattribute__(C, \"f\")``. Par conséquent, la fonction devient accessible " +"de manière identique à partir d'un objet ou d'une classe." #: ../Doc/howto/descriptor.rst:355 msgid "" "Good candidates for static methods are methods that do not reference the " "``self`` variable." msgstr "" +"Les bonnes candidates pour être méthode statique sont des méthodes qui ne " +"font pas référence à la variable ``self``." #: ../Doc/howto/descriptor.rst:358 msgid "" @@ -415,18 +567,32 @@ msgid "" "particular dataset. It can be called either from an object or the class: " "``s.erf(1.5) --> .9332`` or ``Sample.erf(1.5) --> .9332``." msgstr "" +"Par exemple, un paquet traitant de statistiques peut inclure une classe qui " +"est un conteneur pour des données expérimentales. La classe fournit les " +"méthodes normales pour calculer la moyenne, la moyenne, la médiane et " +"d'autres statistiques descriptives qui dépendent des données. Cependant, il " +"peut y avoir des fonctions utiles qui sont conceptuellement liées mais qui " +"ne dépendent pas des données. Par exemple, ``erf(x)`` est une routine de " +"conversion pratique qui apparaît dans le travail statistique mais qui ne " +"dépend pas directement d'un ensemble de données particulier. Elle peut être " +"appelée à partir d'un objet ou de la classe : ``s.erf(1.5) --> .9332``` ou " +"``Sample.erf(1.5) --> .9332``." #: ../Doc/howto/descriptor.rst:367 msgid "" "Since staticmethods return the underlying function with no changes, the " "example calls are unexciting::" msgstr "" +"Depuis que les méthodes statiques renvoient la fonction sous-jacente sans " +"changement, les exemples d’appels ne sont pas excitants ::" #: ../Doc/howto/descriptor.rst:380 msgid "" "Using the non-data descriptor protocol, a pure Python version of :func:" "`staticmethod` would look like this::" msgstr "" +"En utilisant le protocole de descripteur *non-data*, une version Python pure " +"de :func:`staticmethod` ressemblerait à ceci ::" #: ../Doc/howto/descriptor.rst:392 msgid "" @@ -434,6 +600,9 @@ msgid "" "argument list before calling the function. This format is the same for " "whether the caller is an object or a class::" msgstr "" +"Contrairement aux méthodes statiques, les méthodes de classe préchargent la " +"référence de classe dans la liste d'arguments avant d'appeler la fonction. " +"Ce format est le même que l'appelant soit un objet ou une classe ::" #: ../Doc/howto/descriptor.rst:407 msgid "" @@ -443,13 +612,23 @@ msgid "" "classmethod :func:`dict.fromkeys` creates a new dictionary from a list of " "keys. The pure Python equivalent is::" msgstr "" +"Ce comportement est utile lorsque la fonction n'a besoin que d'une référence " +"de classe et ne se soucie pas des données sous-jacentes. Une des " +"utilisations des méthodes de classe est de créer d'autres constructeurs de " +"classe. En Python 2.3, la méthode de classe :func:`dict.fromkeys` crée un " +"nouveau dictionnaire à partir d'une liste de clés. L'équivalent Python pur " +"est ::" #: ../Doc/howto/descriptor.rst:423 msgid "Now a new dictionary of unique keys can be constructed like this::" msgstr "" +"Maintenant un nouveau dictionnaire de clés uniques peut être construit comme " +"ceci ::" #: ../Doc/howto/descriptor.rst:428 msgid "" "Using the non-data descriptor protocol, a pure Python version of :func:" "`classmethod` would look like this::" msgstr "" +"En utilisant le protocole de descripteur *non-data*, une version Python pure " +"de :func:`classmethod` ressemblerait à ceci ::" diff --git a/howto/functional.po b/howto/functional.po index 9fcdc2abd..a1e3a4904 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-13 15:13+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2018-02-15 00:38+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/howto/functional.rst:3 msgid "Functional Programming HOWTO" -msgstr "" +msgstr "Guide pratique : programmation fonctionnelle" #: ../Doc/howto/functional.rst:0 msgid "Author" @@ -24,7 +24,7 @@ msgstr "Auteur" #: ../Doc/howto/functional.rst:5 msgid "A. M. Kuchling" -msgstr "" +msgstr "A. M. Kuchling" #: ../Doc/howto/functional.rst:0 msgid "Release" @@ -32,7 +32,7 @@ msgstr "Version" #: ../Doc/howto/functional.rst:6 msgid "0.32" -msgstr "" +msgstr "0.32" #: ../Doc/howto/functional.rst:8 msgid "" @@ -42,6 +42,11 @@ msgid "" "term:`iterator`\\s and :term:`generator`\\s and relevant library modules " "such as :mod:`itertools` and :mod:`functools`." msgstr "" +"Dans ce document, nous allons faire un tour des fonctionnalités de Python " +"adaptées à la réalisation d'un programme dans un style fonctionnel. Après " +"une introduction à la programmation fonctionnelle, nous aborderons des " +"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 msgid "Introduction" @@ -53,11 +58,17 @@ msgid "" "just interested in learning about Python language features, skip to the next " "section on :ref:`functional-howto-iterators`." msgstr "" +"Cette section détaille les fondamentaux de la programmation fonctionnelle. " +"Si seules les fonctionnalités de Python vous intéressent, vous pouvez sauter " +"cette partie et lire la section suivante sur les :ref:`functional-howto-" +"iterators`." #: ../Doc/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 msgid "" @@ -65,6 +76,11 @@ msgid "" "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 " +"**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." #: ../Doc/howto/functional.rst:28 msgid "" @@ -75,6 +91,13 @@ 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 " +"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." #: ../Doc/howto/functional.rst:35 msgid "" @@ -84,6 +107,11 @@ 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 " +"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." #: ../Doc/howto/functional.rst:41 msgid "" @@ -93,6 +121,12 @@ 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 " +"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." #: ../Doc/howto/functional.rst:47 msgid "" @@ -106,6 +140,16 @@ msgid "" "GUI might be object-oriented while the processing logic is procedural or " "functional, for example." msgstr "" +"Les personnes qui conçoivent des langages de programmation peuvent choisir " +"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 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 msgid "" @@ -117,6 +161,15 @@ msgid "" "side effects means not using data structures that get updated as a program " "runs; every function's output must only depend on its input." msgstr "" +"Dans un programme fonctionnel, l'entrée traverse un ensemble de fonctions. " +"Chaque fonction opère sur son entrée et produit une sortie. Le style " +"fonctionnel préconise de ne pas écrire de fonctions ayant des effets de " +"bord, c'est-à-dire qui modifient un état interne ou réalisent d'autres " +"changements qui ne sont pas visibles dans la valeur de sortie de la " +"fonction. Les fonctions qui ne présentent aucun effet de bord sont dites " +"**purement fonctionnelles**. L'interdiction des effets de bord signifie " +"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 msgid "" @@ -128,6 +181,15 @@ msgid "" "called for their side effects of sending some text to the screen or pausing " "execution for a second." msgstr "" +"Certains langages sont très stricts en ce qui concerne la pureté des " +"fonctions et ne laissent même pas la possibilité d'assigner des variables " +"avec des expressions telles que ``a = 3`` ou ``c = a + b``, cependant il est " +"difficile d'éviter tous les effets de bord. Afficher un message sur l'écran " +"ou écrire un fichier sur le disque sont des effets de bord. Par exemple, un " +"appel aux fonctions :func:`print` ou :func:`time.sleep` en Python ne renvoie " +"aucune valeur utile ; ces fonctions ne sont appelées que pour leur effet de " +"bord (afficher du texte sur l'écran et mettre en pause l'exécution du " +"programme)." #: ../Doc/howto/functional.rst:74 msgid "" @@ -138,6 +200,13 @@ msgid "" "assignments to local variables, but won't modify global variables or have " "other side effects." 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 " +"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 msgid "" @@ -150,6 +219,15 @@ msgid "" "approaches by writing functions that take and return instances representing " "objects in your application (e-mail messages, transactions, etc.)." msgstr "" +"La programmation fonctionnelle peut être considérée comme l'opposé de la " +"programmation orientée objet. Les objets encapsulent un état interne ainsi " +"qu'une collection de méthodes qui permettent de modifier cet état. Les " +"programmes consistent à appliquer les bons changements à ces états. La " +"programmation fonctionnelle vous impose d'éviter au maximum ces changements " +"d'états en travaillant sur des données qui traversent un flux de fonctions. " +"En Python, vous pouvez combiner ces deux approches en écrivant des fonctions " +"qui prennent en argument et renvoient des instances représentants des objets " +"de votre application (courriers électroniques, transactions, etc.)." #: ../Doc/howto/functional.rst:89 msgid "" @@ -157,32 +235,37 @@ msgid "" "you avoid objects and side effects? There are theoretical and practical " "advantages to the functional style:" msgstr "" +"Programmer sous la contrainte du paradigme fonctionnel peut sembler étrange. " +"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 msgid "Formal provability." -msgstr "" +msgstr "Preuves formelles." #: ../Doc/howto/functional.rst:94 msgid "Modularity." -msgstr "" +msgstr "Modularité." #: ../Doc/howto/functional.rst:95 msgid "Composability." -msgstr "" +msgstr "Composabilité." #: ../Doc/howto/functional.rst:96 msgid "Ease of debugging and testing." -msgstr "" +msgstr "Facilité de débogage et de test." #: ../Doc/howto/functional.rst:100 msgid "Formal provability" -msgstr "" +msgstr "Preuves formelles" #: ../Doc/howto/functional.rst:102 msgid "" "A theoretical benefit is that it's easier to construct a mathematical proof " "that a functional program is correct." 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 msgid "" @@ -193,6 +276,12 @@ msgid "" "looks right; the goal is instead a rigorous proof that a program produces " "the right result for all possible inputs." msgstr "" +"Les chercheurs ont longtemps souhaité trouver des façons de prouver " +"mathématiquement qu'un programme est correct. Cela ne se borne pas à tester " +"si la sortie d'un programme est correcte sur de nombreuses entrées ou lire " +"le code source et en conclure que le celui-ci semble juste. L'objectif est " +"d'établir une preuve rigoureuse que le programme produit le bon résultat " +"pour toutes les entrées possibles." #: ../Doc/howto/functional.rst:112 msgid "" @@ -204,6 +293,14 @@ msgid "" "This continues until you reach the end of the program, at which point the " "invariants should match the desired conditions on the program's output." msgstr "" +"La technique utilisée pour prouver l'exactitude d'un programme est d'écrire " +"des **invariants**, c'est-à-dire des propriétés de l'entrée et des variables " +"du programme qui sont toujours vérifiées. Pour chaque ligne de code, il " +"suffit de montrer que si les invariants X et Y sont vrais **avant** " +"l'exécution de cette ligne, les invariants légèrement modifiés X' et Y' sont " +"vérifiés **après** son exécution. Ceci se répète jusqu'à atteindre la fin du " +"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 msgid "" @@ -212,6 +309,10 @@ msgid "" "invariants that were true before the assignment without producing any new " "invariants that can be propagated onward." msgstr "" +"L'aversion du style fonctionnel envers les assignations de variable est " +"apparue car celles-ci sont difficiles à gérer avec cette méthode. Les " +"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 msgid "" @@ -224,10 +325,20 @@ msgid "" "the question of verifying the proof; maybe there's an error in it, and you " "wrongly believe you've proved the program correct." msgstr "" +"Malheureusement, prouver l'exactitude d'un programme est très peu commode et " +"ne concerne que rarement des logiciels en Python. Même des programmes " +"triviaux nécessitent souvent des preuves s'étalant sur plusieurs pages ; la " +"preuve de l'exactitude d'un programme relativement gros serait gigantesque. " +"Peu, voire aucun, des programmes que vous utilisez quotidiennement " +"(l'interpréteur Python, votre analyseur syntaxique XML, votre navigateur " +"web) ne peuvent être prouvés exacts. Même si vous écriviez ou généreriez une " +"preuve, il faudrait encore vérifier celle-ci. Peut-être qu'elle contient une " +"erreur et que vous pensez désormais, à tort, que vous avez prouvé que votre " +"programme est correct." #: ../Doc/howto/functional.rst:136 msgid "Modularity" -msgstr "" +msgstr "Modularité" #: ../Doc/howto/functional.rst:138 msgid "" @@ -237,14 +348,20 @@ msgid "" "thing than a large function that performs a complicated transformation. " "Small functions are also easier to read and to check for errors." msgstr "" +"Un intérêt plus pratique de la programmation fonctionnelle est qu'elle " +"impose de décomposer le problème en petits morceaux. Les programmes qui en " +"résultent sont souvent plus modulaires. Il est plus simple de spécifier et " +"d'écrire une petite fonction qui ne fait qu'une seule tâche plutôt qu'une " +"grosse fonction qui réalise une transformation complexe. Les petites " +"fonctions sont plus faciles à lire et à vérifier." #: ../Doc/howto/functional.rst:146 msgid "Ease of debugging and testing" -msgstr "" +msgstr "Facilité de débogage et de test" #: ../Doc/howto/functional.rst:148 msgid "Testing and debugging a functional-style program is easier." -msgstr "" +msgstr "Tester et déboguer un programme fonctionnel est plus facile." #: ../Doc/howto/functional.rst:150 msgid "" @@ -254,6 +371,11 @@ msgid "" "intermediate inputs and outputs to quickly isolate the function that's " "responsible for a bug." msgstr "" +"Déboguer est plus simple car les fonctions sont généralement petites et bien " +"spécifiées. Lorsqu'un programme ne fonctionne pas, chaque fonction constitue " +"une étape intermédiaire au niveau de laquelle vous pouvez vérifier que les " +"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 msgid "" @@ -262,10 +384,15 @@ msgid "" "before running a test; instead you only have to synthesize the right input " "and then check that the output matches expectations." msgstr "" +"Les tests sont plus faciles car chaque fonction est désormais un sujet " +"potentiel pour un test unitaire. Les fonctions ne dépendent pas d'un état " +"particulier du système qui devrait être répliqué avant d'exécuter un test ; " +"à 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 msgid "Composability" -msgstr "" +msgstr "Composabilité" #: ../Doc/howto/functional.rst:164 msgid "" @@ -277,6 +404,14 @@ msgid "" "that takes a filename and returns its contents, can be applied to many " "different situations." 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 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 msgid "" @@ -284,6 +419,10 @@ msgid "" "assemble new programs by arranging existing functions in a new configuration " "and writing a few functions specialized for the current task." msgstr "" +"Au fur et à mesure, vous constituez ainsi une bibliothèque personnelle " +"d'utilitaires. Souvent, vous pourrez construire de nouveaux programmes en " +"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 msgid "Iterators" @@ -294,6 +433,8 @@ msgid "" "I'll start by looking at a Python language feature that's an important " "foundation for writing functional-style programs: iterators." 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 msgid "" @@ -305,6 +446,13 @@ msgid "" "exception. Iterators don't have to be finite, though; it's perfectly " "reasonable to write an iterator that produces an infinite stream of data." msgstr "" +"Un itérateur est un objet qui représente un flux de données ; cet objet " +"renvoie les données un élément à la fois. Un itérateur Python doit posséder " +"une méthode :meth:`~iterator.__next__` qui ne prend pas d'argument et " +"renvoie toujours l'élément suivant du flux. S'il n'y plus d'élément dans le " +"flux, :meth:`~iterator.__next__` doit lever une exception :exc:" +"`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 msgid "" @@ -315,10 +463,16 @@ msgid "" "lists and dictionaries. An object is called :term:`iterable` if you can get " "an iterator for it." msgstr "" +"La fonction native :func:`iter` prend un objet arbitraire et tente de " +"construire un itérateur qui renvoie le contenu de l'objet (ou ses éléments) " +"en levant une exception :exc:`TypeError` si l'objet ne gère pas l'itération. " +"Plusieurs types de données natifs à Python gèrent l'itération, notamment les " +"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 msgid "You can experiment with the iteration interface manually:" -msgstr "" +msgstr "Vous pouvez expérimenter avec l'interface d'itération manuellement :" #: ../Doc/howto/functional.rst:217 msgid "" @@ -327,18 +481,27 @@ msgid "" "Y``, Y must be an iterator or some object for which :func:`iter` can create " "an iterator. These two statements are equivalent::" 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 ::" #: ../Doc/howto/functional.rst:229 msgid "" "Iterators can be materialized as lists or tuples by using the :func:`list` " "or :func:`tuple` constructor functions:" 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 msgid "" "Sequence unpacking also supports iterators: if you know an iterator will " "return N elements, you can unpack them into an N-tuple:" msgstr "" +"Le dépaquetage de séquences fonctionne également sur les itérateurs : si " +"vous savez qu'un itérateur renvoie N éléments, vous pouvez les dépaqueter " +"dans un n-uplet :" #: ../Doc/howto/functional.rst:247 msgid "" @@ -350,6 +513,14 @@ msgid "" "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 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 msgid "" @@ -361,10 +532,18 @@ msgid "" "need to do something different with the same stream, you'll have to create a " "new iterator." msgstr "" +"Notez qu'il n'est possible de parcourir un itérateur que vers l'avant et " +"qu'il est impossible de récupérer l'élément précédent, de réinitialiser " +"l'itérateur ou d'en créer une copie. Des objets itérateurs peuvent offrir " +"ces possibilités de façon facultative, mais le protocole d'itération ne " +"spécifie que la méthode :meth:`~iterator.__next__`. Certaines fonctions " +"peuvent ainsi consommer l'entièreté de la sortie d'un itérateur et, si vous " +"devez utiliser le même flux pour autre chose, vous devrez en créer un " +"nouveau." #: ../Doc/howto/functional.rst:265 msgid "Data Types That Support Iterators" -msgstr "" +msgstr "Types de données itérables" #: ../Doc/howto/functional.rst:267 msgid "" @@ -372,12 +551,17 @@ msgid "" "Python sequence type, such as strings, will automatically support creation " "of an iterator." msgstr "" +"Nous avons vu précédemment comment les listes et les *tuples* gèrent les " +"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 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 ::" #: ../Doc/howto/functional.rst:291 msgid "" @@ -385,6 +569,10 @@ msgid "" "to be the same as the insertion order. In earlier versions, the behaviour " "was unspecified and could vary between implementations." msgstr "" +"Notez qu'à partir de la version 3.7, Python garantit que l'ordre de " +"l'itération sur un dictionnaire est identique à l'ordre d'insertion des " +"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 msgid "" @@ -393,12 +581,19 @@ msgid "" "iterate over values or key/value pairs, you can explicitly call the :meth:" "`~dict.values` or :meth:`~dict.items` methods to get an appropriate iterator." msgstr "" +"Appliquer :func:`iter` sur un dictionnaire produit un itérateur sur ses clés " +"mais il est possible d'obtenir d'autres itérateurs par d'autres méthodes. Si " +"vous souhaitez itérer sur les valeurs ou les paires clé/valeur du " +"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 msgid "" "The :func:`dict` constructor can accept an iterator that returns a finite " "stream of ``(key, value)`` tuples:" 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 msgid "" @@ -406,16 +601,22 @@ msgid "" "method until there are no more lines in the file. This means you can read " "each line of a file like this::" 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 ::" #: ../Doc/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 ::" #: ../Doc/howto/functional.rst:326 msgid "Generator expressions and list comprehensions" -msgstr "" +msgstr "Expressions génératrices et compréhension de listes" #: ../Doc/howto/functional.rst:328 msgid "" @@ -425,6 +626,12 @@ msgid "" "strip off trailing whitespace from each line or extract all the strings " "containing a given substring." msgstr "" +"Deux opérations courantes réalisables sur la sortie d'un itérateur sont 1) " +"effectuer une opération pour chaque élément, 2) extraire le sous-ensemble " +"des éléments qui vérifient une certaine condition. Par exemple, pour une " +"liste de chaînes de caractères, vous pouvez choisir de retirer tous les " +"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 msgid "" @@ -433,11 +640,18 @@ msgid "" "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 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 initiaux et finaux d'un flux de chaînes " +"de caractères à l'aide du code suivant ::" #: ../Doc/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`` » ::" #: ../Doc/howto/functional.rst:352 msgid "" @@ -449,6 +663,13 @@ msgid "" "infinite stream or a very large amount of data. Generator expressions are " "preferable in these situations." msgstr "" +"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 " +"que les compréhensions de listes ne sont pas très utiles si vous travaillez " +"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 msgid "" @@ -456,12 +677,17 @@ msgid "" "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 ::" #: ../Doc/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 manière, utilisez " +"juste des crochets à la place des parenthèses." #: ../Doc/howto/functional.rst:375 msgid "" @@ -470,6 +696,9 @@ msgid "" "``expression`` is only evaluated and added to the result when ``condition`` " "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`` n'est " +"évaluée et ajoutée au résultat que si ``condition`` est vérifiée." #: ../Doc/howto/functional.rst:379 msgid "" @@ -477,6 +706,10 @@ msgid "" "parentheses signalling a function call also count. If you want to create an " "iterator that will be immediately passed to a function you can write::" 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 ::" #: ../Doc/howto/functional.rst:385 msgid "" @@ -487,12 +720,20 @@ msgid "" "looped over for each resulting pair of elements from ``sequence1`` and " "``sequence2``." msgstr "" +"Les clauses ``for ... in`` indiquent les séquences sur lesquelles itérer. " +"Celles-ci peuvent être de longueurs différentes car l'itération est réalisée " +"de gauche à droite et non en parallèle. ``sequence2`` est parcourue " +"entièrement pour chaque élément de ``sequence1``. ``sequence3`` est ensuite " +"parcourue dans son intégralité pour chaque paire d'éléments de ``sequence1`` " +"et ``sequence2``." #: ../Doc/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, une compréhension de liste ou une expression génératrice est " +"équivalente au code Python ci-dessous ::" #: ../Doc/howto/functional.rst:408 msgid "" @@ -501,6 +742,10 @@ msgid "" "the lengths of all the sequences. If you have two lists of length 3, the " "output list is 9 elements long:" msgstr "" +"Ainsi lorsque plusieurs clauses ``for ... in`` sont présentes mais sans " +"condition ``if``, la longueur totale de la nouvelle séquence est égale au " +"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 msgid "" @@ -508,6 +753,10 @@ msgid "" "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 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 ::" #: ../Doc/howto/functional.rst:431 msgid "Generators" @@ -519,6 +768,10 @@ msgid "" "writing iterators. Regular functions compute a value and return it, but " "generators return an iterator that returns a stream of values." msgstr "" +"Les générateurs forment une classe spéciale de fonctions qui simplifie la " +"création d'itérateurs. Les fonctions habituelles calculent une valeur et la " +"renvoie, tandis que les générateurs renvoient un itérateur qui produit un " +"flux de valeurs." #: ../Doc/howto/functional.rst:437 msgid "" @@ -532,10 +785,22 @@ msgid "" "function where it left off? This is what generators provide; they can be " "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 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 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." #: ../Doc/howto/functional.rst:446 msgid "Here's the simplest example of a generator function:" -msgstr "" +msgstr "Voici un exemple simple de fonction génératrice :" #: ../Doc/howto/functional.rst:452 msgid "" @@ -543,6 +808,9 @@ msgid "" "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é et " +"prend en compte cette particularité de la fonction." #: ../Doc/howto/functional.rst:456 msgid "" @@ -555,16 +823,26 @@ msgid "" "preserved. On the next call to the generator's :meth:`~generator.__next__` " "method, the function will resume executing." msgstr "" +"Lorsque vous appelez une fonction génératrice, celle-ci ne renvoie pas une " +"unique valeur ; elle renvoie un objet générateur qui implémente le protocole " +"d'itération. Lorsque l'expression ``yield`` est exécutée, le générateur " +"renvoie la valeur de ``i``, d'une façon similaire à un ``return``. La " +"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 reprend son exécution." #: ../Doc/howto/functional.rst:465 msgid "Here's a sample usage of the ``generate_ints()`` generator:" -msgstr "" +msgstr "Voici un exemple d'utilisation du générateur ``generate_ints()`` :" #: ../Doc/howto/functional.rst:482 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a, b, c = " "generate_ints(3)``." 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 msgid "" @@ -573,6 +851,11 @@ msgid "" "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, 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 msgid "" @@ -583,6 +866,13 @@ msgid "" "method increment ``self.count`` and return it. However, for a moderately " "complicated generator, writing a corresponding class can be much messier." msgstr "" +"Vous pouvez obtenir le même comportement que celui des générateurs en " +"écrivant votre propre classe qui stocke les variables locales du générateur " +"comme variables d'instance. Pour renvoyer une liste d'entiers, par exemple, " +"vous pouvez initialiser ``self.count`` à 0 et écrire la méthode :meth:" +"`~iterator.__next__` de telle sorte qu'elle incrémente ``self.count`` puis " +"le renvoie. Cependant, cela devient beaucoup plus complexe pour des " +"générateurs relativement sophistiqués." #: ../Doc/howto/functional.rst:498 msgid "" @@ -591,6 +881,10 @@ msgid "" "one generator that implements an in-order traversal of a tree using " "generators recursively. ::" msgstr "" +":source:`Lib/test/test_generators.py`, la suite de test de la bibliothèque " +"Python, contient de nombreux exemples intéressants. Voici un générateur qui " +"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 msgid "" @@ -600,10 +894,16 @@ msgid "" "knight to every square of an NxN chessboard without visiting any square " "twice)." msgstr "" +"Deux autres exemples de ``test_generators.py`` permettent de résoudre le " +"problème des N Reines (placer *N* reines sur un échiquier de dimensions " +"*NxN* de telle sorte qu'aucune reine ne soit en position d'en prendre une " +"autre) et le problème du cavalier (trouver un chemin permettant au cavalier " +"de visiter toutes les cases d'un échiquier *NxN* sans jamais visiter la même " +"case deux fois)." #: ../Doc/howto/functional.rst:522 msgid "Passing values into a generator" -msgstr "" +msgstr "Transmettre des valeurs au générateur" #: ../Doc/howto/functional.rst:524 msgid "" @@ -614,6 +914,12 @@ msgid "" "variable or by passing in some mutable object that callers then modify, but " "these approaches are messy." 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 à 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 msgid "" @@ -621,6 +927,10 @@ msgid "" "`yield` became an expression, returning a value that can be assigned to a " "variable or otherwise operated on::" 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 ::" #: ../Doc/howto/functional.rst:537 msgid "" @@ -629,6 +939,12 @@ msgid "" "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, 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 msgid "" @@ -638,6 +954,11 @@ 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 " +"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 msgid "" @@ -646,16 +967,23 @@ msgid "" "``yield`` expression returns the specified value. If the regular :meth:" "`~generator.__next__` method is called, the ``yield`` returns ``None``." msgstr "" +"Des valeurs peuvent être transmises à un générateur en appelant sa méthode :" +"meth:`send(value) `. Celle-ci reprend l'exécution du " +"générateur et l'expression ``yield`` renvoie la valeur spécifiée. Si c'est " +"la méthode :meth:`~generator.__next__` habituelle qui est appelée, alors " +"``yield`` renvoie ``None``." #: ../Doc/howto/functional.rst:553 msgid "" "Here's a simple counter that increments by 1 and allows changing the value " "of the internal counter." 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 msgid "And here's an example of changing the counter:" -msgstr "" +msgstr "Et voici comment il est possible de modifier le compteur :" #: ../Doc/howto/functional.rst:585 msgid "" @@ -664,12 +992,18 @@ msgid "" "that the :meth:`~generator.send` method will be the only method used to " "resume your generator function." msgstr "" +"Puisque ``yield`` renvoie souvent ``None``, vous devez toujours vérifier si " +"c'est le cas. N'utilisez pas la valeur de retour à moins d'être certain que " +"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 msgid "" "In addition to :meth:`~generator.send`, there are two other methods on " "generators:" msgstr "" +"En plus de :meth:`~generator.send`, il existe deux autres méthodes " +"s'appliquant aux générateurs :" #: ../Doc/howto/functional.rst:593 msgid "" @@ -677,6 +1011,9 @@ msgid "" "raise an exception inside the generator; the exception is raised by the " "``yield`` expression where the generator's execution is paused." 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." #: ../Doc/howto/functional.rst:597 msgid "" @@ -688,6 +1025,13 @@ msgid "" "be called by Python's garbage collector when the generator is garbage-" "collected." msgstr "" +":meth:`~generator.close` lève une exception :exc:`GeneratorExit` dans le " +"générateur afin de terminer l'itération. Le code du générateur qui reçoit " +"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 collecte le générateur, il appelle sa méthode :" +"meth:`~generator.close`." #: ../Doc/howto/functional.rst:605 msgid "" @@ -695,12 +1039,18 @@ msgid "" "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`, nous vous suggérons d'utiliser une structure ``try: ... " +"finally`` plutôt que d'attraper :exc:`GeneratorExit`." #: ../Doc/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." msgstr "" +"Ces changements cumulés transforment les générateurs de producteurs " +"unidirectionnels d'information vers un statut hybride à la fois producteur " +"et consommateur." #: ../Doc/howto/functional.rst:611 msgid "" @@ -710,6 +1060,12 @@ msgid "" "can be entered, exited, and resumed at many different points (the ``yield`` " "statements)." msgstr "" +"Les générateurs sont également devenus des **coroutines**, une forme " +"généralisée de sous-routine. L'exécution des sous-routines démarre à un " +"endroit et se termine à un autre (au début de la fonction et au niveau de " +"l'instruction ``return``), tandis qu'il est possible d'entrer, de sortir ou " +"de reprendre une coroutine à différents endroits (les instructions " +"``yield``)." #: ../Doc/howto/functional.rst:618 msgid "Built-in functions" @@ -719,26 +1075,34 @@ msgstr "Fonctions natives" 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 msgid "" "Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " "the features of generator expressions:" 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 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 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 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 msgid "" @@ -748,10 +1112,16 @@ msgid "" "truth value of some condition; for use with :func:`filter`, the predicate " "must take a single value." msgstr "" +":func:`filter(predicate, iter) ` renvoie un itérateur sur l'ensemble " +"des éléments de la séquence qui vérifient une certaine condition. Son " +"comportement peut également être reproduit par une compréhension de liste. " +"Un **prédicat** est une fonction qui renvoie vrai ou faux en fonction d'une " +"certaine condition. Dans le cas de :func:`filter`, le prédicat ne doit " +"prendre qu'un seul argument." #: ../Doc/howto/functional.rst:651 msgid "This can also be written as a list comprehension:" -msgstr "" +msgstr "Cela peut se réécrire sous la forme d'une compréhension de liste :" #: ../Doc/howto/functional.rst:657 msgid "" @@ -759,12 +1129,18 @@ msgid "" "iterable returning 2-tuples containing the count (from *start*) and each " "element. ::" 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 ::" #: ../Doc/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é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 msgid "" @@ -773,11 +1149,17 @@ msgid "" "result. The *key* and *reverse* arguments are passed through to the " "constructed list's :meth:`~list.sort` method. ::" msgstr "" +":func:`sorted(iterable, key=None, reverse=False) ` rassemble tous " +"les éléments de l'itérable dans une liste, les classe et renvoie le résultat " +"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 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:" +"`sortinghowto`.)" #: ../Doc/howto/functional.rst:693 msgid "" @@ -786,12 +1168,19 @@ msgid "" "any element in the iterable is a true value, and :func:`all` returns " "``True`` if all of the elements are true values:" msgstr "" +"Les fonctions natives :func:`any(iter) ` et :func:`all(iter) ` " +"permettent d'observer les valeurs de vérité des éléments d'un itérable. :" +"func:`any` renvoie ``True`` si au moins un élément de l'itérable s'évalue " +"comme vrai et :func:`all` renvoie ``True`` si tous les éléments s'évaluent " +"comme vrai :" #: ../Doc/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 ::" #: ../Doc/howto/functional.rst:718 msgid "" @@ -800,6 +1189,11 @@ msgid "" "they're requested. (The technical term for this behaviour is `lazy " "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 n-uplets 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 msgid "" @@ -807,6 +1201,9 @@ msgid "" "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 a la même longueur que le " +"plus court des itérables. ::" #: ../Doc/howto/functional.rst:730 msgid "" @@ -814,10 +1211,15 @@ msgid "" "the longer iterators and discarded. This means you can't go on to use the " "iterators further because you risk skipping a discarded element." msgstr "" +"Toutefois, vous devez éviter de dépendre de ce comportement. En effet un " +"élément d'un des itérables les plus longs peut être retiré puis jeté (car " +"l'autre itérable est trop court). Cela signifie que vous ne pouvez alors " +"plus utiliser cet itérable car vous allez sauter l'élément qui vient d'être " +"jeté." #: ../Doc/howto/functional.rst:736 msgid "The itertools module" -msgstr "" +msgstr "Le module *itertools*" #: ../Doc/howto/functional.rst:738 msgid "" @@ -825,30 +1227,38 @@ msgid "" "well as functions for combining several iterators. This section will " "introduce the module's contents by showing small examples." msgstr "" +"Le module :mod:`itertools` contient de nombreux itérateurs très utilisés, " +"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 msgid "The module's functions fall into a few broad classes:" -msgstr "" +msgstr "Les fonctions du module se divisent en quelques grandes catégories :" #: ../Doc/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." #: ../Doc/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." #: ../Doc/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." #: ../Doc/howto/functional.rst:747 msgid "A function for grouping an iterator's output." -msgstr "" +msgstr "Une fonction qui permet de grouper la sortie d'un itérateur." #: ../Doc/howto/functional.rst:750 msgid "Creating new iterators" -msgstr "" +msgstr "Créer de nouveaux itérateurs" #: ../Doc/howto/functional.rst:752 msgid "" @@ -857,6 +1267,9 @@ msgid "" "number, which defaults to 0, and the interval between numbers, which " "defaults to 1::" 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) ::" #: ../Doc/howto/functional.rst:763 msgid "" @@ -865,6 +1278,9 @@ msgid "" "from first to last. The new iterator will repeat these elements " "infinitely. ::" msgstr "" +":func:`itertools.cycle(iter) ` sauvegarde une copie du " +"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 msgid "" @@ -872,6 +1288,9 @@ msgid "" "element *n* times, or returns the element endlessly if *n* is not " "provided. ::" msgstr "" +":func:`itertools.repeat(elem, [n]) ` renvoie l'élément " +"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 msgid "" @@ -880,6 +1299,10 @@ msgid "" "first iterator, then all the elements of the second, and so on, until all of " "the iterables have been exhausted. ::" msgstr "" +":func:`itertools.chain(iterA, iterB, ...) ` reçoit un " +"nombre arbitraire d'itérables en entrée et les concatène, renvoyant tous les " +"é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 msgid "" @@ -891,6 +1314,13 @@ msgid "" "and list slicing, you can't use negative values for *start*, *stop*, or " "*step*. ::" 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 ; 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 msgid "" @@ -901,10 +1331,16 @@ msgid "" "iterator, so this can consume significant memory if the iterator is large " "and one of the new iterators is consumed more than the others. ::" msgstr "" +":func:`itertools.tee(iter, [n]) ` duplique un itérateur et " +"renvoie *n* itérateurs indépendants, chacun copiant le contenu de " +"l'itérateur source. La valeur par défaut pour *n* est 2. La réplication des " +"itérateurs nécessite la sauvegarde d'une partie du contenu de l'itérateur " +"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 msgid "Calling functions on elements" -msgstr "" +msgstr "Appliquer des fonctions au contenu des itérateurs" #: ../Doc/howto/functional.rst:821 msgid "" @@ -914,6 +1350,11 @@ msgid "" "``a != b``), and :func:`operator.attrgetter('id') ` " "(returns a callable that fetches the ``.id`` attribute)." msgstr "" +"Le module :mod:`operator` rassemble des fonctions équivalentes aux " +"opérateurs Python. Par exemple, :func:`operator.add(a,b) ` " +"additionne deux valeurs, :func:`operator.ne(a, b) ` est " +"équivalent à ``a != b`` et :func:`operator.attrgetter('id') ` renvoie un objet appelable qui récupère l'attribut ``.id``." #: ../Doc/howto/functional.rst:827 msgid "" @@ -921,16 +1362,21 @@ msgid "" "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 n-uplets et appelle *func* en utilisant " +"tous les n-uplets comme arguments ::" #: ../Doc/howto/functional.rst:839 msgid "Selecting elements" -msgstr "" +msgstr "Sélectionner des éléments" #: ../Doc/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 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 msgid "" @@ -938,6 +1384,9 @@ msgid "" "the opposite of :func:`filter`, returning all elements for which the " "predicate returns false::" 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 ::" #: ../Doc/howto/functional.rst:851 msgid "" @@ -945,6 +1394,9 @@ msgid "" "elements for as long as the predicate returns true. Once the predicate " "returns false, the iterator will signal the end of its results. ::" msgstr "" +":func:`itertools.takewhile(predicate, iter) ` renvoie " +"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 msgid "" @@ -952,6 +1404,9 @@ msgid "" "elements while the predicate returns true, and then returns the rest of the " "iterable's results. ::" msgstr "" +":func:`itertools.dropwhile(predicate, iter) ` supprime " +"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 msgid "" @@ -960,10 +1415,14 @@ msgid "" "corresponding element of *selectors* is true, stopping whenever either one " "is exhausted::" 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* est évalué à " +"vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" #: ../Doc/howto/functional.rst:883 msgid "Combinatoric functions" -msgstr "" +msgstr "Fonctions combinatoires" #: ../Doc/howto/functional.rst:885 msgid "" @@ -971,6 +1430,9 @@ msgid "" "returns an iterator giving all possible *r*-tuple combinations of the " "elements contained in *iterable*. ::" msgstr "" +":func:`itertools.combinations(iterable, r) ` renvoie " +"un itérateur qui produit toutes les combinaisons possibles de *r*-uplets des " +"éléments de *iterable*. ::" #: ../Doc/howto/functional.rst:900 msgid "" @@ -980,24 +1442,38 @@ msgid "" "permutations(iterable, r=None) `, removes this " "constraint on the order, returning all possible arrangements of length *r*::" msgstr "" +"Les éléments de chaque tuple sont ordonnés dans le même ordre que leur " +"apparition dans *iterable*. Ainsi, dans les exemples ci-dessus, le nombre 1 " +"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* ::" #: ../Doc/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." msgstr "" +"Si vous ne spécifiez pas de valeur pour *r*, la longueur de l'itérable est " +"utilisée par défaut, c'est-à-dire que toutes les permutations de la séquence " +"sont renvoyées." #: ../Doc/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 ::" #: ../Doc/howto/functional.rst:929 msgid "" "The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " "strings came from different positions." 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 msgid "" @@ -1007,10 +1483,15 @@ msgid "" "selected for the first position of each tuple and then is replaced before " "the second element is selected. ::" msgstr "" +"La fonction :func:`itertools.combinations_with_replacement(iterable, r) " +"` assouplit une autre contrainte : " +"les éléments peuvent être répétés au sein du même n-uplet. Il s'agit d'un " +"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 msgid "Grouping elements" -msgstr "" +msgstr "Grouper les éléments" #: ../Doc/howto/functional.rst:949 msgid "" @@ -1020,6 +1501,12 @@ msgid "" "element returned by the iterable. If you don't supply a key function, the " "key is simply each element itself." 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 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 msgid "" @@ -1027,6 +1514,9 @@ msgid "" "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 paires contenant la " +"clé et un itérateur produisant la liste des éléments pour cette clé." #: ../Doc/howto/functional.rst:982 msgid "" @@ -1035,10 +1525,17 @@ msgid "" "also use the underlying iterable, so you have to consume the results of " "iterator-1 before requesting iterator-2 and its corresponding key." 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 devez " +"donc consommer l'intégralité des résultats du premier itérateur renvoyé " +"(*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 msgid "The functools module" -msgstr "" +msgstr "Le module *functools*" #: ../Doc/howto/functional.rst:991 msgid "" @@ -1047,6 +1544,10 @@ msgid "" "and returns a new function. The most useful tool in this module is the :" "func:`functools.partial` function." msgstr "" +"Le module :mod:`functools` introduit par Python 2.5 contient diverses " +"fonctions d'ordre supérieur. Une **fonction d'ordre supérieur** prend une ou " +"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 msgid "" @@ -1057,6 +1558,12 @@ msgid "" "filling in a value for one of ``f()``'s parameters. This is called " "\"partial function application\"." msgstr "" +"En programmant dans un style fonctionnel, il est courant de vouloir " +"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 msgid "" @@ -1065,6 +1572,9 @@ msgid "" "resulting object is callable, so you can just call it to invoke ``function`` " "with the filled-in arguments." msgstr "" +"Le constructeur de :func:`~functools.partial` prend en argument ``(fonction, " +"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 msgid "Here's a small but realistic example::" @@ -1084,6 +1594,17 @@ msgid "" "If the initial value is supplied, it's used as a starting point and " "``func(initial_value, A)`` is the first calculation. ::" msgstr "" +":func:`functools.reduce(func, iter, [initial_value]) ` " +"applique une opération cumulative à tous les éléments d'un itérable et ne " +"peut donc être appliquée à des itérables infinis. *func* doit être une " +"fonction qui prend deux éléments et renvoie une seule valeur. :func:" +"`functools.reduce` prend les deux premiers éléments A et B renvoyés par " +"l'itérateur et calcule ``func(A, B)``. Elle extrait ensuite le troisième " +"élément C et calcule ``func(func(A, B), C)`` puis combine ce résultat avec " +"le quatrième élément renvoyé etc. jusqu'à épuisement de l'itérable. Une " +"exception :exc:`TypeError` est levée si l'itérable ne renvoie aucune valeur. " +"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 msgid "" @@ -1091,12 +1612,19 @@ msgid "" "all the elements of the iterable. This case is so common that there's a " "special built-in called :func:`sum` to compute it:" msgstr "" +"Si vous combinez :func:`operator.add` avec :func:`functools.reduce`, vous " +"allez additionner tous les éléments de l'itérable. Ce cas est suffisamment " +"courant pour qu'il existe une fonction native :func:`sum` qui lui est " +"équivalent :" #: ../Doc/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` ::" #: ../Doc/howto/functional.rst:1067 msgid "" @@ -1105,10 +1633,15 @@ msgid "" "of returning only the final result, :func:`accumulate` returns an iterator " "that also yields each partial result::" msgstr "" +":func:`itertools.accumulate(iterable, func=operator.add) ` 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 ::" #: ../Doc/howto/functional.rst:1080 msgid "The operator module" -msgstr "" +msgstr "Le module *operator*" #: ../Doc/howto/functional.rst:1082 msgid "" @@ -1117,73 +1650,98 @@ msgid "" "useful in functional-style code because they save you from writing trivial " "functions that perform a single operation." msgstr "" +"Le module :mod:`operator` mentionné précédemment contient un ensemble de " +"fonctions reproduisant les opérateurs de Python. Ces fonctions sont souvent " +"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 msgid "Some of the functions in this module are:" -msgstr "" +msgstr "Voici quelques fonctions de ce module :" #: ../Doc/howto/functional.rst:1089 msgid "" "Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " "``abs()``, ..." msgstr "" +"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " +"``floordiv()``, ``abs()``, ..." #: ../Doc/howto/functional.rst:1090 msgid "Logical operations: ``not_()``, ``truth()``." -msgstr "" +msgstr "Les opérations logiques : ``not_()``, ``truth()``." #: ../Doc/howto/functional.rst:1091 msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." -msgstr "" +msgstr "Les opérations bit à bit : ``and_()``, ``or_()``, ``invert()``." #: ../Doc/howto/functional.rst:1092 msgid "" "Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." msgstr "" +"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " +"``ge()``." #: ../Doc/howto/functional.rst:1093 msgid "Object identity: ``is_()``, ``is_not()``." -msgstr "" +msgstr "L'identification des objets : ``is_()``, ``is_not()``." #: ../Doc/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 msgid "Small functions and the lambda expression" -msgstr "" +msgstr "Expressions lambda et fonctions courtes" #: ../Doc/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." msgstr "" +"Dans un style de programmation fonctionnel, il est courant d'avoir besoin de " +"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 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 ::" #: ../Doc/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` statement. ``lambda`` " -"takes a number of parameters and an expression combining these parameters, " -"and creates an anonymous function that returns the value of the expression::" +"write small functions is to use the :keyword:`lambda` expression. " +"``lambda`` takes a number of parameters and an expression combining these " +"parameters, and creates an anonymous function that returns the value of the " +"expression::" msgstr "" +"Si la fonction dont vous avez besoin n'existe pas, vous devez l'écrire. Une " +"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 ::" #: ../Doc/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 ::" #: ../Doc/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 l'auteur évite " +"l'utilisation de ``lambda``." #: ../Doc/howto/functional.rst:1131 msgid "" @@ -1194,6 +1752,13 @@ 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 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 ? ::" #: ../Doc/howto/functional.rst:1141 msgid "" @@ -1201,58 +1766,74 @@ msgid "" "figure out what's going on. Using a short nested ``def`` statements makes " "things a little bit better::" 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 ::" #: ../Doc/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 aurait été de simplement se contenter d'une boucle " +"``for`` ::" #: ../Doc/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 ::" #: ../Doc/howto/functional.rst:1161 msgid "" "Many uses of :func:`functools.reduce` are clearer when written as ``for`` " "loops." msgstr "" +"Les boucles ``for`` sont souvent plus lisibles que la fonction :func:" +"`functools.reduce`." #: ../Doc/howto/functional.rst:1163 msgid "" "Fredrik Lundh once suggested the following set of rules for refactoring uses " "of ``lambda``:" msgstr "" +"Frederik Lundh a suggéré quelques règles pour le réusinage de code " +"impliquant les expressions ``lambda`` :" #: ../Doc/howto/functional.rst:1166 msgid "Write a lambda function." -msgstr "" +msgstr "Écrire une fonction lambda." #: ../Doc/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 msgid "" "Study the comment for a while, and think of a name that captures the essence " "of the comment." msgstr "" +"Scruter le commentaire pendant quelques temps et réfléchir à un nom qui " +"synthétise son essence." #: ../Doc/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 msgid "Remove the comment." -msgstr "" +msgstr "Effacer le commentaire." #: ../Doc/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." #: ../Doc/howto/functional.rst:1178 msgid "Revision History and Acknowledgements" -msgstr "" +msgstr "Historique des modifications et remerciements" #: ../Doc/howto/functional.rst:1180 msgid "" @@ -1261,31 +1842,43 @@ msgid "" "Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike " "Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." msgstr "" +"L'auteur souhaiterait remercier les personnes suivantes pour leurs " +"suggestions, leurs corrections et leur aide sur les premières versions de " +"cet article : Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim " +"Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake " +"Winton." #: ../Doc/howto/functional.rst:1185 msgid "Version 0.1: posted June 30 2006." -msgstr "" +msgstr "Version 0.1 : publiée le 30 juin 2006." #: ../Doc/howto/functional.rst:1187 msgid "Version 0.11: posted July 1 2006. Typo fixes." -msgstr "" +msgstr "Version 0.11 : publiée le 1er juillet 2006. Correction orthographique." #: ../Doc/howto/functional.rst:1189 msgid "" "Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " "one. Typo fixes." msgstr "" +"Version 0.2 : publiée le 10 juillet 2006. Fusion des sections *genexp* et " +"*listcomp*. Correction orthographique." #: ../Doc/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 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." msgstr "" +"Version 0.30 : ajout d'une section sur le module ``functional`` écrite par " +"Collin Winter ; ajout d'une courte section sur le module ``operator`` ; " +"quelques autres modifications." #: ../Doc/howto/functional.rst:1199 msgid "References" @@ -1293,7 +1886,7 @@ msgstr "Références" #: ../Doc/howto/functional.rst:1202 msgid "General" -msgstr "" +msgstr "Général" #: ../Doc/howto/functional.rst:1204 msgid "" @@ -1305,6 +1898,13 @@ msgid "" "approaches described in these chapters are applicable to functional-style " "Python code." msgstr "" +"**Structure and Interpretation of Computer Programs** par Harold Abelson et " +"Gerald Jay Sussman avec Julie Sussman. Disponible à l'adresse https://" +"mitpress.mit.edu/sicp/. Ce livre est un classique en informatique. Les " +"chapitres 2 et 3 présentent l'utilisation des séquences et des flux pour " +"organiser le flot de données dans un programme. Les exemples du livre " +"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 msgid "" @@ -1312,25 +1912,33 @@ msgid "" "functional programming that uses Java examples and has a lengthy historical " "introduction." msgstr "" +"http://www.defmacro.org/ramblings/fp.html : une présentation générale à la " +"programmation fonctionnelle avec une longue introduction historique et des " +"exemples en Java." #: ../Doc/howto/functional.rst:1215 msgid "" "https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " "entry describing functional programming." msgstr "" +"https://fr.wikipedia.org/wiki/Programmation_fonctionnelle : l'entrée " +"Wikipédia qui décrit la programmation fonctionnelle." #: ../Doc/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 msgid "" "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." msgstr "" +"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de " +"curryfication (création d'applications partielles)." #: ../Doc/howto/functional.rst:1223 msgid "Python-specific" -msgstr "" +msgstr "Spécifique à Python" #: ../Doc/howto/functional.rst:1225 msgid "" @@ -1339,6 +1947,10 @@ msgid "" "text processing, in the section titled \"Utilizing Higher-Order Functions in " "Text Processing\"." msgstr "" +"http://gnosis.cx/TPiP/ : le premier chapitre du livre de David Mertz :title-" +"reference:`Text Processing in Python` présente l'utilisation de la " +"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 msgid "" @@ -1348,29 +1960,37 @@ msgid "" "developerworks/linux/library/l-prog2/index.html>`__, 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 `__." #: ../Doc/howto/functional.rst:1238 msgid "Python documentation" -msgstr "" +msgstr "Documentation Python" #: ../Doc/howto/functional.rst:1240 msgid "Documentation for the :mod:`itertools` module." -msgstr "" +msgstr "Documentation du module :mod:`itertools`." #: ../Doc/howto/functional.rst:1242 msgid "Documentation for the :mod:`functools` module." -msgstr "" +msgstr "Documentation du module :mod:`functools`." #: ../Doc/howto/functional.rst:1244 msgid "Documentation for the :mod:`operator` module." -msgstr "" +msgstr "Documentation du module :mod:`operator`." #: ../Doc/howto/functional.rst:1246 msgid ":pep:`289`: \"Generator Expressions\"" -msgstr "" +msgstr ":pep:`289`: *\"Generator Expressions\"*" #: ../Doc/howto/functional.rst:1248 msgid "" ":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " "generator features in Python 2.5." msgstr "" +":pep:`342`: *\"Coroutines via Enhanced Generators\"* décrit les nouvelles " +"fonctionnalités des générateurs en Python 2.5." diff --git a/howto/instrumentation.po b/howto/instrumentation.po index 35d51129d..d9c2eb43f 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" -msgstr "" +msgstr "Instrumenter CPython avec DTrace et SystemTap" #: ../Doc/howto/instrumentation.rst:0 msgid "author" @@ -24,11 +24,11 @@ msgstr "auteur" #: ../Doc/howto/instrumentation.rst:9 msgid "David Malcolm" -msgstr "" +msgstr "David Malcolm" #: ../Doc/howto/instrumentation.rst:10 msgid "Łukasz Langa" -msgstr "" +msgstr "Łukasz Langa" #: ../Doc/howto/instrumentation.rst:12 msgid "" @@ -36,18 +36,22 @@ msgid "" "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 msgid "filter which processes are to be observed" -msgstr "" +msgstr "Filtrer les processus à observer." #: ../Doc/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 msgid "generate reports on the data" -msgstr "" +msgstr "Générer des rapports sur les données." #: ../Doc/howto/instrumentation.rst:20 msgid "" @@ -55,6 +59,9 @@ msgid "" "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 msgid "" @@ -63,10 +70,15 @@ msgid "" "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 msgid "Enabling the static markers" -msgstr "" +msgstr "Activer les marqueurs statiques" #: ../Doc/howto/instrumentation.rst:36 msgid "" @@ -74,18 +86,21 @@ msgid "" "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 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 msgid "or::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/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 msgid "" @@ -93,22 +108,33 @@ msgid "" "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 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 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 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 msgid "" @@ -116,10 +142,14 @@ msgid "" "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 msgid "Static DTrace probes" -msgstr "" +msgstr "Sondes DTrace statiques" #: ../Doc/howto/instrumentation.rst:131 msgid "" @@ -128,18 +158,22 @@ msgid "" "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 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 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" #: ../Doc/howto/instrumentation.rst:199 msgid "Static SystemTap markers" -msgstr "" +msgstr "Marqueurs statiques *SystemTap*" #: ../Doc/howto/instrumentation.rst:201 msgid "" @@ -147,33 +181,39 @@ msgid "" "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 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 msgid "where the columns are:" -msgstr "" +msgstr "où les colonnes sont ::" #: ../Doc/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 msgid "name of executable" -msgstr "" +msgstr "nom de l'exécutable" #: ../Doc/howto/instrumentation.rst:251 msgid "PID of process" -msgstr "" +msgstr "PID du processus" #: ../Doc/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 msgid "" @@ -181,24 +221,30 @@ msgid "" "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 msgid "should instead read:" -msgstr "" +msgstr "doit plutôt se lire comme ::" #: ../Doc/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 msgid "Available static markers" -msgstr "" +msgstr "Marqueurs statiques disponibles" #: ../Doc/howto/instrumentation.rst:279 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 msgid "" @@ -206,22 +252,29 @@ msgid "" "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 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 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 msgid "``$arg3`` : ``int`` line number" -msgstr "" +msgstr "``$arg3`` : numéro de ligne ``int``" #: ../Doc/howto/instrumentation.rst:295 msgid "" @@ -229,10 +282,14 @@ msgid "" "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 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 msgid "" @@ -240,38 +297,51 @@ msgid "" "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 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 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 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 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 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:336 msgid "SystemTap Tapsets" -msgstr "" +msgstr "*Tapsets* de *SystemTap*" #: ../Doc/howto/instrumentation.rst:338 msgid "" @@ -279,22 +349,32 @@ msgid "" "\": 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:342 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:365 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:371 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:376 msgid "" @@ -303,6 +383,10 @@ msgid "" "``return``, or via an exception). It is only triggered for pure-Python " "(bytecode) functions." msgstr "" +"Cette sonde est l'inverse de :c:func:`python.function.return`, et indique " +"que l'exécution d'une fonction Python est terminée (soit via ``return``, " +"soit via une exception). Elle est uniquement déclenchée pour les fonctions " +"en Python pur (code intermédiaire)." #: ../Doc/howto/instrumentation.rst:383 msgid "Examples" @@ -314,6 +398,10 @@ msgid "" "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:403 msgid "" @@ -321,3 +409,7 @@ msgid "" "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 b17cf069d..2511a330b 100644 --- a/howto/ipaddress.po +++ b/howto/ipaddress.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\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" +"PO-Revision-Date: 2019-01-11 23:02+0100\n" +"Last-Translator: BAILLY Geoffroy \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" #: ../Doc/howto/ipaddress.rst:9 msgid "An introduction to the ipaddress module" -msgstr "" +msgstr "Introduction au module ``ipaddress``" #: ../Doc/howto/ipaddress.rst:0 msgid "author" @@ -24,15 +25,15 @@ msgstr "auteur" #: ../Doc/howto/ipaddress.rst:11 msgid "Peter Moody" -msgstr "" +msgstr "Peter Moody" #: ../Doc/howto/ipaddress.rst:12 msgid "Nick Coghlan" -msgstr "" +msgstr "Nick Coghlan" #: ../Doc/howto/ipaddress.rst:None msgid "Overview" -msgstr "" +msgstr "Aperçu" #: ../Doc/howto/ipaddress.rst:16 msgid "" @@ -42,10 +43,15 @@ msgid "" "an overview of how :mod:`ipaddress` represents IP network addressing " "concepts." msgstr "" +"Ce document vise à fournir une introduction rapide au module :mod:" +"`ipaddress`. Il est destiné aux utilisateurs qui ne sont pas familiers avec " +"la terminologie des réseaux IP, mais il peut aussi être utile aux ingénieurs " +"réseaux qui cherchent un aperçu de la représentation des concepts " +"d'adressage IP avec le module :mod:`ipaddress`." #: ../Doc/howto/ipaddress.rst:24 msgid "Creating Address/Network/Interface objects" -msgstr "" +msgstr "Créer un objet Adresse/Réseau/Interface" #: ../Doc/howto/ipaddress.rst:26 msgid "" @@ -53,10 +59,14 @@ msgid "" "addresses, the first thing you'll want to do is create some objects. You " "can use :mod:`ipaddress` to create objects from strings and integers." msgstr "" +"Vu que :mod:`ipaddress` est un module pour inspecter et manipuler des " +"adresses IP, la première chose que vous voudrez faire est de créer quelques " +"objets. Vous pouvez utiliser :mod:`ipaddress` pour créer des objets à partir " +"de chaînes de caractères et d'entiers." #: ../Doc/howto/ipaddress.rst:32 msgid "A Note on IP Versions" -msgstr "" +msgstr "Note sur les versions d'IP" #: ../Doc/howto/ipaddress.rst:34 msgid "" @@ -67,6 +77,13 @@ msgid "" "addresses to handle the needs of the whole world, especially given the " "increasing number of devices with direct connections to the internet." msgstr "" +"Pour les lecteurs qui ne sont pas particulièrement familiers avec " +"l'adressage IP il est important de savoir que le protocole IP est " +"actuellement en évolution de la version 4 du protocole vers la version 6. " +"Cette transition est largement due au fait que la version 4 du protocole ne " +"fournit pas assez d'adresses pour gérer les besoins du monde entier, " +"particulièrement à cause de la croissance des périphériques directement " +"connectés à Internet." #: ../Doc/howto/ipaddress.rst:41 msgid "" @@ -75,10 +92,14 @@ msgid "" "least be aware that these two versions exist, and it will sometimes be " "necessary to force the use of one version or the other." msgstr "" +"Expliquer les détails des différences entre les deux versions du protocole " +"est au-delà du périmètre de cette introduction, mais les lecteurs doivent au " +"moins être avertis de l'existence de ces deux versions et qu'il sera " +"nécessaire de forcer l'utilisation d'une version ou de l'autre." #: ../Doc/howto/ipaddress.rst:48 msgid "IP Host Addresses" -msgstr "" +msgstr "Adresses IP des hôtes" #: ../Doc/howto/ipaddress.rst:50 msgid "" @@ -88,12 +109,21 @@ msgid "" "determines whether to create an IPv4 or IPv6 address based on the passed in " "value:" msgstr "" +"Les adresses, souvent dénommées \"adresses hôtes\" sont les unités les plus " +"basiques quand on travaille avec l'adressage IP. Le moyen le plus simple de " +"créer des adresses est d'utiliser la fonction de fabrication :func:" +"`ipaddress.ip_address` qui va automatiquement déterminer quoi créer entre " +"une adresse IPv4 ou une adresse IPv6 en fonction de la valeur qui est " +"transmise :" #: ../Doc/howto/ipaddress.rst:61 msgid "" "Addresses can also be created directly from integers. Values that will fit " "within 32 bits are assumed to be IPv4 addresses::" msgstr "" +"Les adresses peuvent être créées directement depuis des entiers. Les valeurs " +"qui correspondent à des entiers 32 bits sont assimilées à des adresses " +"IPv4 ::" #: ../Doc/howto/ipaddress.rst:69 msgid "" @@ -101,10 +131,13 @@ msgid "" "invoked directly. This is particularly useful to force creation of IPv6 " "addresses for small integers::" msgstr "" +"Pour forcer l'utilisation d'IPv4 ou d'IPv6, la classe appropriée peut être " +"invoquée directement. C'est particulièrement utile pour forcer la création " +"d'adresse IPv6 pour de petits entiers ::" #: ../Doc/howto/ipaddress.rst:82 msgid "Defining Networks" -msgstr "" +msgstr "Définir des réseaux" #: ../Doc/howto/ipaddress.rst:84 msgid "" @@ -117,12 +150,23 @@ msgid "" "whether or not an address is part of the network and the network address " "defines the expected value of those bits." msgstr "" +"Les adresses hôtes sont souvent regroupées dans des réseaux IP, donc :mod:" +"`ipaddress` fournit un moyen de créer, d'inspecter et de manipuler les " +"définitions des réseaux. Les objets correspondants aux réseaux IP sont " +"construits à partir de chaînes de caractères qui définissent le périmètre " +"des adresses hôtes qui font partie de ce réseau. La forme la plus simple de " +"cette information est un couple \"adresse réseau/préfixe réseau\" , où le " +"préfixe définit le nombre de bits de tête qui sont comparés pour déterminer " +"si l'adresse fait ou ne fait pas partie de ce réseau et l'adresse réseau " +"définit la valeur attendue pour ces bits." #: ../Doc/howto/ipaddress.rst:93 msgid "" "As for addresses, a factory function is provided that determines the correct " "IP version automatically::" msgstr "" +"Tout comme pour les adresses, une fonction de fabrication est disponible et " +"détermine automatiquement la version correcte d'IP ::" #: ../Doc/howto/ipaddress.rst:101 msgid "" @@ -132,6 +176,12 @@ msgid "" "commonly used to describe network interfaces of a computer on a given " "network and are described further in the next section." msgstr "" +"Il est interdit pour des objets réseaux d'avoir des bits affectés à leurs " +"hôtes mis à 1. Ainsi la chaine de caractères ``192.0.2.1/24`` ne peut " +"définir un réseau. Ces objets réseaux sont aussi appelés objets d'interfaces " +"car la notation ``adresse ip / réseau`` est couramment utilisée pour décrire " +"les interfaces réseau d'un ordinateur sur un réseau donné (nous les " +"détaillons plus loin dans cette section)." #: ../Doc/howto/ipaddress.rst:107 msgid "" @@ -140,6 +190,10 @@ msgid "" "bits instead be coerced to zero, the flag ``strict=False`` can be passed to " "the constructor::" msgstr "" +"Par défaut, tenter de créer un objet réseau avec des bits d'hôtes mis à 1 " +"lève une :exc:`ValueError`. Pour demander que les bits supplémentaires " +"soient plutôt forcés à zéro, l'attribut ``strict=False`` peut être passé au " +"constructeur ::" #: ../Doc/howto/ipaddress.rst:119 msgid "" @@ -148,16 +202,24 @@ msgid "" "network is considered to contain only the single address identified by the " "integer, so the network prefix includes the entire network address::" msgstr "" +"Alors que la forme textuelle offre davantage de flexibilité les réseaux " +"peuvent aussi être définis avec des entiers, tout comme les adresses hôtes. " +"Dans ce cas le réseau est considéré comme contenant uniquement l'adresse " +"identifiée par l'entier, donc le préfixe réseau inclut l'adresse du réseau " +"complet ::" #: ../Doc/howto/ipaddress.rst:129 msgid "" "As with addresses, creation of a particular kind of network can be forced by " "calling the class constructor directly instead of using the factory function." msgstr "" +"Comme avec les adresses, la création d'un type de réseau particulier peut " +"être forcée en appelant directement le constructeur de la classe plutôt que " +"d'utiliser la fonction de fabrication." #: ../Doc/howto/ipaddress.rst:135 msgid "Host Interfaces" -msgstr "" +msgstr "Interfaces des hôtes" #: ../Doc/howto/ipaddress.rst:137 msgid "" @@ -171,16 +233,29 @@ msgid "" "defining network objects, except that the address portion isn't constrained " "to being a network address." msgstr "" +"Comme mentionné ci-dessus, si vous avez besoin de décrire une adresse sur un " +"réseau particulier, ni l'adresse ni les classes réseaux ne sont suffisantes. " +"Les notations comme ``192.0.2.1/24`` sont généralement utilisées par les " +"ingénieurs réseaux et les personnes qui écrivent des outils pour les pare-" +"feu et les routeurs comme raccourci pour \" l'hôte ``192.0.2.1`` sur le " +"réseau ``192.0.2.0/24``\", par conséquent, :mod:`ipaddress` fournit un " +"ensemble de classes hybrides qui associent une adresse à un réseau " +"particulier. L'interface pour la création est identique à celle pour la " +"définition des objets réseaux, excepté que la partie adresse n'est pas " +"contrainte d'être une adresse réseau." #: ../Doc/howto/ipaddress.rst:152 msgid "" "Integer inputs are accepted (as with networks), and use of a particular IP " "version can be forced by calling the relevant constructor directly." msgstr "" +"Les entiers sont acceptés en entrée (comme avec les réseaux) et " +"l'utilisation d'une version d'IP peut être forcée en appelant directement le " +"constructeur adapté." #: ../Doc/howto/ipaddress.rst:157 msgid "Inspecting Address/Network/Interface Objects" -msgstr "" +msgstr "Inspecter les objets Address/Network/Interface" #: ../Doc/howto/ipaddress.rst:159 msgid "" @@ -188,32 +263,38 @@ msgid "" "Interface) object, so you probably want to get information about it. :mod:" "`ipaddress` tries to make doing this easy and intuitive." msgstr "" +"Vous vous êtes donné la peine de créer un objet (adresse|réseau|" +"interface)IPv(4|6), donc vous voudrez probablement des informations sur " +"celui-ci. :mod:`ipaddress` essaie de rendre ceci facile et intuitif." #: ../Doc/howto/ipaddress.rst:163 msgid "Extracting the IP version::" -msgstr "" +msgstr "Extraire la version du protocole IP ::" #: ../Doc/howto/ipaddress.rst:172 msgid "Obtaining the network from an interface::" -msgstr "" +msgstr "Obtenir le réseau à partir de l'interface ::" #: ../Doc/howto/ipaddress.rst:181 msgid "Finding out how many individual addresses are in a network::" -msgstr "" +msgstr "Trouver combien d'adresses individuelles sont dans un réseau ::" #: ../Doc/howto/ipaddress.rst:190 msgid "Iterating through the \"usable\" addresses on a network::" -msgstr "" +msgstr "Itération sur chacune des adresses \"utilisables\" d'un réseau ::" #: ../Doc/howto/ipaddress.rst:205 msgid "" "Obtaining the netmask (i.e. set bits corresponding to the network prefix) or " "the hostmask (any bits that are not part of the netmask):" msgstr "" +"Obtenir le masque réseau (définit les bits correspondant au préfixe du " +"réseau) ou le masque de l'hôte (tous les bits qui ne sont pas dans le masque " +"du réseau) :" #: ../Doc/howto/ipaddress.rst:220 msgid "Exploding or compressing the address::" -msgstr "" +msgstr "Éclater ou compresser l'adresse ::" #: ../Doc/howto/ipaddress.rst:231 msgid "" @@ -222,26 +303,37 @@ msgid "" "easily ensure the most concise or most verbose form is used for IPv6 " "addresses while still correctly handling IPv4 addresses." msgstr "" +"Alors que IPv4 ne gère pas l'éclatement ou la compression, les objets " +"associés fournissent toujours les propriétés adaptées pour que du code, le " +"plus neutre possible vis-à-vis de la version, puisse facilement s'assurer " +"que la forme la plus concise ou la plus verbeuse utilisée pour des adresses " +"IPv6 va aussi fonctionner pour gérer des adresses IPv4." #: ../Doc/howto/ipaddress.rst:238 msgid "Networks as lists of Addresses" -msgstr "" +msgstr "Réseaux en tant que listes d'adresses" #: ../Doc/howto/ipaddress.rst:240 msgid "" "It's sometimes useful to treat networks as lists. This means it is possible " "to index them like this::" msgstr "" +"Il est parfois utile de traiter les réseaux en tant que listes. Cela " +"signifie qu'il est possible de les indexer comme ça ::" #: ../Doc/howto/ipaddress.rst:253 msgid "" "It also means that network objects lend themselves to using the list " "membership test syntax like this::" msgstr "" +"Cela signifie aussi que les objets réseaux se prêtent bien à l'utilisation " +"de la syntaxe suivante pour le test d'appartenance à la liste ::" #: ../Doc/howto/ipaddress.rst:259 msgid "Containment testing is done efficiently based on the network prefix::" msgstr "" +"En se basant sur le préfixe réseau on peut efficacement tester " +"l'appartenance ::" #: ../Doc/howto/ipaddress.rst:269 msgid "Comparisons" @@ -252,16 +344,20 @@ msgid "" ":mod:`ipaddress` provides some simple, hopefully intuitive ways to compare " "objects, where it makes sense::" msgstr "" +":mod:`ipaddress` fournit des moyens simples et intuitifs (du moins nous " +"l'espérons) pour comparer les objets, quand cela fait sens ::" #: ../Doc/howto/ipaddress.rst:277 msgid "" "A :exc:`TypeError` exception is raised if you try to compare objects of " "different versions or different types." msgstr "" +"Une exception :exc:`TypeError` est levée si vous tentez de comparer des " +"objets de différentes versions ou de types différents." #: ../Doc/howto/ipaddress.rst:282 msgid "Using IP Addresses with other modules" -msgstr "" +msgstr "Utiliser des adresse IP avec d'autre modules" #: ../Doc/howto/ipaddress.rst:284 msgid "" @@ -269,10 +365,14 @@ msgid "" "accept objects from this module directly. Instead, they must be coerced to " "an integer or string that the other module will accept::" msgstr "" +"Les autres modules qui utilisent des adresses IP (comme :mod:`socket`) " +"n'acceptent généralement pas les objets de ce module directement. Au lieu de " +"cela, ils doivent être convertis en entiers ou en chaînes de caractères que " +"l'autre module va accepter ::" #: ../Doc/howto/ipaddress.rst:296 msgid "Getting more detail when instance creation fails" -msgstr "" +msgstr "Obtenir plus de détails lors de l'échec de la création de l'instance" #: ../Doc/howto/ipaddress.rst:298 msgid "" @@ -283,6 +383,13 @@ msgid "" "because it's necessary to know whether the value is *supposed* to be IPv4 or " "IPv6 in order to provide more detail on why it has been rejected." msgstr "" +"Lors de la création des objets Adresse/Réseau/Interface en utilisant les " +"fonctions de fabrication agnostiques à la version, n'importe quelle erreur " +"va être signalée en tant que :exc:`ValueError` avec un message d'erreur " +"générique qui dit simplement que la valeur entrée n'a pas été reconnue en " +"tant qu'objet de ce type. Pour fournir plus de détails sur la cause du " +"rejet, il faudrait reconnaitre si la valeur est *supposée* être une adresse " +"IPv4 ou IPv6." #: ../Doc/howto/ipaddress.rst:305 msgid "" @@ -292,12 +399,19 @@ msgid "" "`ipaddress.NetmaskValueError` to indicate exactly which part of the " "definition failed to parse correctly." msgstr "" +"Pour gérer les cas d'usage où il est utile d'avoir accès à ces détails, les " +"constructeurs individuels des classes lèvent actuellement les sous-classes " +"de :exc:`ValueError`, :exc:`ipaddress.AddressValueError` et :exc:`ipaddress." +"NetmaskValueError` pour indiquer précisément quelle partie de la définition " +"n'a pas pu être correctement traitée." #: ../Doc/howto/ipaddress.rst:311 msgid "" "The error messages are significantly more detailed when using the class " "constructors directly. For example::" msgstr "" +"Les messages d'erreur sont particulièrement plus détaillés lors de " +"l'utilisation directe du constructeur. Par exemple ::" #: ../Doc/howto/ipaddress.rst:332 msgid "" @@ -305,3 +419,6 @@ msgid "" "their parent class, so if you're not concerned with the particular type of " "error, you can still write code like the following::" msgstr "" +"Cependant, les exceptions spécifiques des deux modules ont :exc:`ValueError` " +"comme classe parent ; donc si vous n'êtes pas intéressé par le type " +"particulier d'erreur remontée, vous pouvez écrire votre code comme suit ::" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 6c617e90f..f12524d87 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -24,7 +24,7 @@ msgstr "Auteur" #: ../Doc/howto/logging-cookbook.rst:7 msgid "Vinay Sajip " -msgstr "" +msgstr "Vinay Sajip " #: ../Doc/howto/logging-cookbook.rst:9 msgid "" @@ -54,7 +54,7 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:75 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" #: ../Doc/howto/logging-cookbook.rst:101 msgid "Logging from multiple threads" @@ -726,27 +726,27 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:1320 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Module :mod:`logging`" #: ../Doc/howto/logging-cookbook.rst:1320 msgid "API reference for the logging module." -msgstr "" +msgstr "Référence d'API pour le module de journalisation." #: ../Doc/howto/logging-cookbook.rst:1323 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Module :mod:`logging.config`" #: ../Doc/howto/logging-cookbook.rst:1323 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuration pour le module de journalisation." #: ../Doc/howto/logging-cookbook.rst:1326 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Module :mod:`logging.handlers`" #: ../Doc/howto/logging-cookbook.rst:1326 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestionnaires utiles inclus avec le module de journalisation." #: ../Doc/howto/logging-cookbook.rst:1328 msgid ":ref:`A basic logging tutorial `" diff --git a/howto/logging.po b/howto/logging.po index 78c0e9f78..9c2df090f 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -1,22 +1,22 @@ # Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. -# msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-10 15:38+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.3\n" #: ../Doc/howto/logging.rst:3 msgid "Logging HOWTO" -msgstr "" +msgstr "Tutoriel sur la journalisation" #: ../Doc/howto/logging.rst:0 msgid "Author" @@ -24,11 +24,11 @@ msgstr "Auteur" #: ../Doc/howto/logging.rst:5 msgid "Vinay Sajip " -msgstr "" +msgstr "Vinay Sajip " #: ../Doc/howto/logging.rst:12 msgid "Basic Logging Tutorial" -msgstr "" +msgstr "Les bases de l'utilisation du module `logging`" #: ../Doc/howto/logging.rst:14 msgid "" @@ -40,10 +40,19 @@ msgid "" "which the developer ascribes to the event; the importance can also be called " "the *level* or *severity*." msgstr "" +"La journalisation (*logging* en anglais) est une façon de suivre les " +"événements qui ont lieu durant le fonctionnement d'un logiciel. Le " +"développeur du logiciel ajoute des appels à l'outil de journalisation dans " +"son code pour indiquer que certains événements ont eu lieu. Un événement est " +"décrit par un message descriptif, qui peut éventuellement contenir des " +"données variables (c'est-à-dire qui peuvent être différentes pour chaque " +"occurrence de l'événement). Un événement a aussi une importance que le " +"développeur lui attribue ; cette importance peut aussi être appelée *niveau* " +"ou *sévérité*." #: ../Doc/howto/logging.rst:23 msgid "When to use logging" -msgstr "" +msgstr "Quand utiliser `logging`" #: ../Doc/howto/logging.rst:25 msgid "" @@ -52,19 +61,26 @@ msgid "" "func:`critical`. To determine when to use logging, see the table below, " "which states, for each of a set of common tasks, the best tool to use for it." msgstr "" +"Le module *logging* fournit un ensemble de fonctions de commodités pour une " +"utilisation simple du module. Ce sont les fonctions :func:`debug`, :func:" +"`info`, :func:`warning`, :func:`error` et :func:`critical`. Pour déterminer " +"quand employer la journalisation, voyez la table ci-dessous, qui vous " +"indique, pour chaque tâche parmi les plus communes, l'outil approprié." #: ../Doc/howto/logging.rst:31 msgid "Task you want to perform" -msgstr "" +msgstr "Tâche que vous souhaitez mener" #: ../Doc/howto/logging.rst:31 msgid "The best tool for the task" -msgstr "" +msgstr "Le meilleur outil pour cette tâche" #: ../Doc/howto/logging.rst:33 msgid "" "Display console output for ordinary usage of a command line script or program" msgstr "" +"Affiche la sortie console d'un script en ligne de commande ou d'un programme " +"lors de son utilisation ordinaire" #: ../Doc/howto/logging.rst:33 msgid ":func:`print`" @@ -75,48 +91,65 @@ msgid "" "Report events that occur during normal operation of a program (e.g. for " "status monitoring or fault investigation)" msgstr "" +"Rapporter des évènements qui ont lieu au cours du fonctionnement normal d'un " +"programme (par exemple pour suivre un statut ou examiner des " +"dysfonctionnements)" #: ../Doc/howto/logging.rst:37 msgid "" ":func:`logging.info` (or :func:`logging.debug` for very detailed output for " "diagnostic purposes)" msgstr "" +":func:`logging.info` (ou :func:`logging.debug` pour une sortie très " +"détaillée à visée diagnostique)" #: ../Doc/howto/logging.rst:42 msgid "Issue a warning regarding a particular runtime event" msgstr "" +"Émettre un avertissement (*warning* en anglais) en relation avec un " +"évènement particulier au cours du fonctionnement d’un programme" #: ../Doc/howto/logging.rst:42 msgid "" ":func:`warnings.warn` in library code if the issue is avoidable and the " "client application should be modified to eliminate the warning" msgstr "" +":func:`warnings.warn` dans le code de la bibliothèque si le problème est " +"évitable et l'application cliente doit être modifiée pour éliminer cet " +"avertissement" #: ../Doc/howto/logging.rst:47 msgid "" ":func:`logging.warning` if there is nothing the client application can do " "about the situation, but the event should still be noted" msgstr "" +":func:`logging.warning` si l'application cliente ne peut rien faire pour " +"corriger la situation mais l'évènement devrait quand même être noté" #: ../Doc/howto/logging.rst:52 msgid "Report an error regarding a particular runtime event" msgstr "" +"Rapporter une erreur lors d'un évènement particulier en cours d'exécution" #: ../Doc/howto/logging.rst:52 msgid "Raise an exception" -msgstr "" +msgstr "Lever une exception" #: ../Doc/howto/logging.rst:55 msgid "" "Report suppression of an error without raising an exception (e.g. error " "handler in a long-running server process)" msgstr "" +"Rapporter la suppression d'une erreur sans lever d'exception (par exemple " +"pour la gestion d'erreur d'un processus de long terme sur un serveur)" #: ../Doc/howto/logging.rst:55 msgid "" ":func:`logging.error`, :func:`logging.exception` or :func:`logging.critical` " "as appropriate for the specific error and application domain" msgstr "" +":func:`logging.error`, :func:`logging.exception` ou :func:`logging." +"critical`, au mieux, selon l'erreur spécifique et le domaine d'application" #: ../Doc/howto/logging.rst:62 msgid "" @@ -124,14 +157,17 @@ msgid "" "they are used to track. The standard levels and their applicability are " "described below (in increasing order of severity):" msgstr "" +"Les fonctions de journalisation sont nommées d'après le niveau ou la " +"sévérité des évènements qu'elles suivent. Les niveaux standards et leurs " +"applications sont décrits ci-dessous (par ordre croissant de sévérité) :" #: ../Doc/howto/logging.rst:69 ../Doc/howto/logging.rst:846 msgid "Level" -msgstr "" +msgstr "Niveau" #: ../Doc/howto/logging.rst:69 msgid "When it's used" -msgstr "" +msgstr "Quand il est utilisé" #: ../Doc/howto/logging.rst:71 ../Doc/howto/logging.rst:856 msgid "``DEBUG``" @@ -141,6 +177,8 @@ msgstr "``DEBUG``" msgid "" "Detailed information, typically of interest only when diagnosing problems." msgstr "" +"Information détaillée, intéressante seulement lorsqu'on diagnostique un " +"problème." #: ../Doc/howto/logging.rst:74 ../Doc/howto/logging.rst:854 msgid "``INFO``" @@ -148,7 +186,7 @@ msgstr "``INFO``" #: ../Doc/howto/logging.rst:74 msgid "Confirmation that things are working as expected." -msgstr "" +msgstr "Confirmation que tout fonctionne comme prévu." #: ../Doc/howto/logging.rst:77 ../Doc/howto/logging.rst:852 msgid "``WARNING``" @@ -160,6 +198,9 @@ msgid "" "problem in the near future (e.g. 'disk space low'). The software is still " "working as expected." msgstr "" +"L'indication que quelque chose d'inattendu a eu lieu, ou de la possibilité " +"d'un problème dans un futur proche (par exemple « espace disque faible »). " +"Le logiciel fonctionne encore normalement." #: ../Doc/howto/logging.rst:82 ../Doc/howto/logging.rst:850 msgid "``ERROR``" @@ -170,6 +211,8 @@ msgid "" "Due to a more serious problem, the software has not been able to perform " "some function." msgstr "" +"Du fait d'un problème plus sérieux, le logiciel n'a pas été capable de " +"réaliser une tâche." #: ../Doc/howto/logging.rst:85 ../Doc/howto/logging.rst:848 msgid "``CRITICAL``" @@ -180,6 +223,8 @@ msgid "" "A serious error, indicating that the program itself may be unable to " "continue running." msgstr "" +"Une erreur sérieuse, indiquant que le programme lui-même pourrait être " +"incapable de continuer à fonctionner." #: ../Doc/howto/logging.rst:89 msgid "" @@ -187,6 +232,9 @@ msgid "" "and above will be tracked, unless the logging package is configured to do " "otherwise." msgstr "" +"Le niveau par défaut est ``WARNING``, ce qui signifie que seuls les " +"évènements de ce niveau et au-dessus sont suivis, sauf si le paquet " +"*logging* est configuré pour faire autrement." #: ../Doc/howto/logging.rst:93 msgid "" @@ -194,18 +242,22 @@ msgid "" "of handling tracked events is to print them to the console. Another common " "way is to write them to a disk file." msgstr "" +"Les évènements suivis peuvent être gérés de différentes façons. La manière " +"la plus simple est de les afficher dans la console. Une autre méthode " +"commune est de les écrire dans un fichier." #: ../Doc/howto/logging.rst:101 msgid "A simple example" -msgstr "" +msgstr "Un exemple simple" #: ../Doc/howto/logging.rst:103 msgid "A very simple example is::" -msgstr "" +msgstr "Un exemple très simple est ::" #: ../Doc/howto/logging.rst:109 msgid "If you type these lines into a script and run it, you'll see:" msgstr "" +"Si vous entrez ces lignes dans un script que vous exécutez, vous verrez :" #: ../Doc/howto/logging.rst:115 msgid "" @@ -216,10 +268,17 @@ msgid "" "explained later. The actual output can be formatted quite flexibly if you " "need that; formatting options will also be explained later." msgstr "" +"affiché dans la console. Le message ``INFO`` n'apparaît pas parce que le " +"niveau par défaut est ``WARNING``. Le message affiché inclut l'indication du " +"niveau et la description de l'évènement fournie dans l'appel à *logging*, " +"ici « Watch out! ». Ne vous préoccupez pas de la partie « *root* » pour le " +"moment : nous détaillerons ce point plus bas. La sortie elle-même peut être " +"formatée de multiples manières si besoin. Les options de formatage seront " +"aussi expliquées plus bas." #: ../Doc/howto/logging.rst:124 msgid "Logging to a file" -msgstr "" +msgstr "Enregistrer les évènements dans un fichier" #: ../Doc/howto/logging.rst:126 msgid "" @@ -228,12 +287,18 @@ msgid "" "Python interpreter, and don't just continue from the session described " "above::" msgstr "" +"Il est très commun d'enregistrer les évènements dans un fichier, c'est donc " +"ce que nous allons regarder maintenant. Il faut essayer ce qui suit avec un " +"interpréteur Python nouvellement démarré, ne poursuivez pas la session " +"commencée ci-dessus ::" #: ../Doc/howto/logging.rst:136 msgid "" "And now if we open the file and look at what we have, we should find the log " "messages:" msgstr "" +"Maintenant, si nous ouvrons le fichier et lisons ce qui s'y trouve, on " +"trouvera les messages de log :" #: ../Doc/howto/logging.rst:145 msgid "" @@ -241,17 +306,24 @@ msgid "" "threshold for tracking. In this case, because we set the threshold to " "``DEBUG``, all of the messages were printed." msgstr "" +"Cet exemple montre aussi comment on peut régler le niveau de journalisation " +"qui sert de seuil pour le suivi. Dans ce cas, comme nous avons réglé le " +"seuil à ``DEBUG``, tous les messages ont été écrits." #: ../Doc/howto/logging.rst:149 msgid "" "If you want to set the logging level from a command-line option such as:" msgstr "" +"Si vous souhaitez régler le niveau de journalisation à partir d'une option " +"de la ligne de commande comme :" #: ../Doc/howto/logging.rst:155 msgid "" "and you have the value of the parameter passed for ``--log`` in some " "variable *loglevel*, you can use::" msgstr "" +"et que vous passez ensuite la valeur du paramètre donné à l'option `--log` " +"dans une variable *loglevel*, vous pouvez utiliser ::" #: ../Doc/howto/logging.rst:160 msgid "" @@ -259,6 +331,9 @@ msgid "" "argument. You may want to error check any user input value, perhaps as in " "the following example::" msgstr "" +"de manière à obtenir la valeur à passer à :func:`basicConfig` à travers " +"l'argument *level*. Vous pouvez vérifier que l'utilisateur n'a fait aucune " +"erreur pour la valeur de ce paramètre, comme dans l'exemple ci-dessous ::" #: ../Doc/howto/logging.rst:172 msgid "" @@ -267,6 +342,10 @@ msgid "" "configuration facility, only the first call will actually do anything: " "subsequent calls are effectively no-ops." msgstr "" +"L'appel à :func:`basicConfig` doit être fait *avant* un appel à :func:" +"`debug`, :func:`info`, etc. Comme l'objectif est d'avoir un outil de " +"configuration simple et d'usage unique, seul le premier appel aura un effet, " +"les appels suivants ne font rien." #: ../Doc/howto/logging.rst:177 msgid "" @@ -275,26 +354,36 @@ msgid "" "afresh, not remembering the messages from earlier runs, you can specify the " "*filemode* argument, by changing the call in the above example to::" msgstr "" +"Si vous exécutez le script plusieurs fois, les messages des exécutions " +"successives sont ajoutés au fichier *example.log*. Si vous voulez que chaque " +"exécution reprenne un fichier vierge, sans conserver les messages des " +"exécutions précédentes, vous pouvez spécifier l'argument *filemode*, en " +"changeant l'appel à l'exemple précédent par ::" #: ../Doc/howto/logging.rst:184 msgid "" "The output will be the same as before, but the log file is no longer " "appended to, so the messages from earlier runs are lost." msgstr "" +"La sortie est identique à la précédente, mais le texte n'est plus ajouté au " +"fichier de log, donc les messages des exécutions précédentes sont perdus." #: ../Doc/howto/logging.rst:189 msgid "Logging from multiple modules" -msgstr "" +msgstr "Employer *logging* à partir de différents modules" #: ../Doc/howto/logging.rst:191 msgid "" "If your program consists of multiple modules, here's an example of how you " "could organize logging in it::" msgstr "" +"Si votre programme est composé de plusieurs modules, voici une façon " +"d'organiser\n" +"l'outil de journalisation ::" #: ../Doc/howto/logging.rst:215 msgid "If you run *myapp.py*, you should see this in *myapp.log*:" -msgstr "" +msgstr "Si vous exécutez *myapp.py*, vous verrez ceci dans *myapp.log* :" #: ../Doc/howto/logging.rst:223 msgid "" @@ -306,20 +395,30 @@ msgid "" "to refer to the documentation beyond the tutorial level -- see :ref:`logging-" "advanced-tutorial`." msgstr "" +"ce qui est normalement ce à quoi vous vous attendiez. Vous pouvez " +"généraliser cela à plusieurs modules, en employant le motif de *mylib.py*. " +"Remarquez qu'avec cette méthode simple, vous ne pourrez pas savoir, en " +"lisant le fichier de log, *d'où* viennent les messages dans votre " +"application, sauf dans la description de l'évènement. Si vous voulez suivre " +"la localisation des messages, référerez-vous à la documentation avancée :ref:" +"`logging-advanced-tutorial`." #: ../Doc/howto/logging.rst:233 msgid "Logging variable data" -msgstr "" +msgstr "Journalisation de données variables" #: ../Doc/howto/logging.rst:235 msgid "" "To log variable data, use a format string for the event description message " "and append the variable data as arguments. For example::" msgstr "" +"Pour enregistrer des données variables, utilisez une chaîne formatée dans le " +"message de description de l'évènement et ajoutez les données variables comme " +"argument. Par exemple ::" #: ../Doc/howto/logging.rst:241 msgid "will display:" -msgstr "" +msgstr "affichera :" #: ../Doc/howto/logging.rst:247 msgid "" @@ -330,20 +429,29 @@ msgid "" "options *are* supported, but exploring them is outside the scope of this " "tutorial: see :ref:`formatting-styles` for more information." msgstr "" +"Comme vous pouvez le voir, l'inclusion des données variables dans le message " +"de description de l'évènement emploie le vieux style de formatage avec %. " +"C'est pour assurer la rétrocompatibilité : le module `logging` est antérieur " +"aux nouvelles options de formatage comme :meth:`str.format` ou :class:" +"`string.Template`. Ces nouvelles options de formatage *sont* gérées, mais " +"leur exploration sort du cadre de ce tutoriel, voyez :ref:`formatting-" +"styles` pour plus d'information." #: ../Doc/howto/logging.rst:256 msgid "Changing the format of displayed messages" -msgstr "" +msgstr "Modifier le format du message affiché" #: ../Doc/howto/logging.rst:258 msgid "" "To change the format which is used to display messages, you need to specify " "the format you want to use::" msgstr "" +"Pour changer le format utilisé pour afficher le message, vous devez préciser " +"le format que vous souhaitez employer ::" #: ../Doc/howto/logging.rst:267 msgid "which would print:" -msgstr "" +msgstr "ce qui affiche :" #: ../Doc/howto/logging.rst:275 msgid "" @@ -354,20 +462,29 @@ msgid "" "including variable data) and perhaps to display when the event occurred. " "This is described in the next section." msgstr "" +"Notez que le `root` qui apparaissait dans les exemples précédents a disparu. " +"Pour voir l'ensemble des éléments qui peuvent apparaître dans la chaîne de " +"format, référez-vous à la documentation pour :ref:`logrecord-attributes`. " +"Pour une utilisation simple, vous avez seulement besoin du *levelname* (la " +"sévérité), du *message* (la description de l'évènement, avec les données " +"variables) et peut-être du moment auquel l'évènement a eu lieu. Nous " +"décrivons ces points dans la prochaine section." #: ../Doc/howto/logging.rst:284 msgid "Displaying the date/time in messages" -msgstr "" +msgstr "Afficher l'horodatage dans les messages" #: ../Doc/howto/logging.rst:286 msgid "" "To display the date and time of an event, you would place '%(asctime)s' in " "your format string::" msgstr "" +"Pour afficher la date ou le temps d'un évènement, ajoutez `%(asctime)` dans " +"votre chaîne de formatage ::" #: ../Doc/howto/logging.rst:293 msgid "which should print something like this:" -msgstr "" +msgstr "ce qui affichera quelque chose comme :" #: ../Doc/howto/logging.rst:299 msgid "" @@ -375,20 +492,24 @@ msgid "" "rfc:`3339`. If you need more control over the formatting of the date/time, " "provide a *datefmt* argument to ``basicConfig``, as in this example::" msgstr "" +"Le format par défaut de l'horodatage (comme ci-dessus) est donné par la " +"norme ISO8601 ou :rfc:`3339`. Pour plus de contrôle sur le formatage de " +"l'horodatage, vous pouvez fournir à ``basicConfig`` un argument *datefmt*, " +"comme dans l'exemple suivant ::" #: ../Doc/howto/logging.rst:307 msgid "which would display something like this:" -msgstr "" +msgstr "ce qui affichera quelque chose comme :" #: ../Doc/howto/logging.rst:313 msgid "" "The format of the *datefmt* argument is the same as supported by :func:`time." "strftime`." -msgstr "" +msgstr "Le format de *datefmt* est le même que celui de :func:`time.strftime`." #: ../Doc/howto/logging.rst:318 msgid "Next Steps" -msgstr "" +msgstr "Étapes suivantes" #: ../Doc/howto/logging.rst:320 msgid "" @@ -398,6 +519,11 @@ msgid "" "time in reading the following sections. If you're ready for that, grab some " "of your favourite beverage and carry on." msgstr "" +"Nous concluons ainsi le tutoriel basique. Il devrait suffire à vous mettre " +"le pied à l'étrier pour utiliser `logging`. Le module `logging` a beaucoup " +"d'autre cordes à son arc, mais pour en profiter au maximum, vous devez " +"prendre le temps de lire les sections suivantes. Si vous êtes prêt, servez-" +"vous votre boisson préférée et poursuivons." #: ../Doc/howto/logging.rst:326 msgid "" @@ -407,6 +533,12 @@ msgid "" "group (available at https://groups.google.com/forum/#!forum/comp.lang." "python) and you should receive help before too long." msgstr "" +"Si vos besoins avec `logging` sont simples, vous pouvez incorporer les " +"exemples ci-dessus dans vos scripts. Si vous rencontrez des difficultés ou " +"s'il y a quelque chose que vous ne comprenez pas, vous pouvez poser une " +"question sur le groupe Usenet `comp.lang.python` (accessible à https://" +"groups.google.com/forum/#!forum/comp.lang.python), on vous répondra " +"rapidement." #: ../Doc/howto/logging.rst:332 msgid "" @@ -414,42 +546,58 @@ msgid "" "slightly more advanced/in-depth tutorial than the basic one above. After " "that, you can take a look at the :ref:`logging-cookbook`." msgstr "" +"Vous êtes encore là ? Vous pouvez lire les prochaines sections, qui donnent " +"un peu plus de détails que l'introduction ci-dessus. Après ça, vous pouvez " +"jeter un œil à :ref:`logging-cookbook`." #: ../Doc/howto/logging.rst:340 msgid "Advanced Logging Tutorial" -msgstr "" +msgstr "Usage avancé de Logging" #: ../Doc/howto/logging.rst:342 msgid "" "The logging library takes a modular approach and offers several categories " "of components: loggers, handlers, filters, and formatters." msgstr "" +"La bibliothèque de journalisation adopte une approche modulaire et offre " +"différentes catégories de composants : *loggers*, *handlers*, *filters* et " +"*formatters*." #: ../Doc/howto/logging.rst:345 msgid "Loggers expose the interface that application code directly uses." msgstr "" +"Les enregistreurs (*loggers* en anglais) exposent l'interface que le code de " +"l'application utilise directement." #: ../Doc/howto/logging.rst:346 msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" +"Les gestionnaires (*handlers*) envoient les entrées de journal (créés par " +"les *loggers*) vers les destinations voulues." #: ../Doc/howto/logging.rst:348 msgid "" "Filters provide a finer grained facility for determining which log records " "to output." msgstr "" +"Les filtres (*filters*) fournissent un moyen de choisir finement quelles " +"entrées de journal doivent être sorties." #: ../Doc/howto/logging.rst:350 msgid "Formatters specify the layout of log records in the final output." msgstr "" +"Les formateurs (*formatters*) spécifient la structure de l'entrée de journal " +"dans la sortie finale." #: ../Doc/howto/logging.rst:352 msgid "" "Log event information is passed between loggers, handlers, filters and " "formatters in a :class:`LogRecord` instance." msgstr "" +"L'information relative à un événement est passée entre *loggers*, *handlers* " +"et *formatters* dans une instance de la classe :class:`LogRecord`." #: ../Doc/howto/logging.rst:355 msgid "" @@ -461,18 +609,32 @@ msgid "" "want, and indicate the area of an application in which a logged message " "originates." msgstr "" +"La journalisation est réalisée en appelant les méthodes d'instance de la " +"classe :class:`Logger` (que l'on appelle ci-dessous :dfn:`loggers`). Chaque " +"instance a un nom et les instances sont organisées conceptuellement comme " +"des hiérarchies dans l'espace de nommage, en utilisant un point comme " +"séparateur. Par exemple, un `logger` appelé `scan` est le parent des " +"`loggers` `scan.text`, `scan.html` et `scan.pdf`. Les noms des `loggers` " +"peuvent être ce que vous voulez et indiquent le sous-domaine d'une " +"application depuis lequel le message enregistré a été émis." #: ../Doc/howto/logging.rst:362 msgid "" "A good convention to use when naming loggers is to use a module-level " "logger, in each module which uses logging, named as follows::" msgstr "" +"Une bonne convention lorsqu'on nomme les *loggers* est d'utiliser un " +"*logger* au niveau du module, dans chaque module qui emploie `logging`, " +"nommé de la façon suivante ::" #: ../Doc/howto/logging.rst:367 msgid "" "This means that logger names track the package/module hierarchy, and it's " "intuitively obvious where events are logged just from the logger name." msgstr "" +"Cela signifie que le nom d'un `logger` se rapporte à la hiérarchie du paquet " +"et des modules, et il est évident de voir où un événement a été enregistré " +"simplement en regardant le nom du `logger`." #: ../Doc/howto/logging.rst:370 msgid "" @@ -482,6 +644,12 @@ msgid "" "the root logger. The functions and the methods have the same signatures. The " "root logger's name is printed as 'root' in the logged output." msgstr "" +"La racine de la hiérarchie des `loggers` est appelée le *root logger*. C'est " +"le `logger` utilisé par les fonctions :func:`debug`, :func:`info`, :func:" +"`warning`, :func:`error` et :func:`critical`, qui appelle en fait les " +"méthodes du même nom de l'objet *root logger*. Les fonctions et les méthodes " +"ont la même signature. Le nom du *root logger* est affiché comme « `root` » " +"dans la sortie." #: ../Doc/howto/logging.rst:376 msgid "" @@ -493,6 +661,15 @@ msgid "" "destination class if you have special requirements not met by any of the " "built-in handler classes." msgstr "" +"Il est bien sûr possible d'enregistrer des messages pour des destinations " +"différentes. Ce paquet permet d'écrire des entrées de journal dans des " +"fichiers, des ressources HTTP GET/POST, par courriel via SMTP, des " +"connecteurs (*socket* en anglais) génériques, des files d'attente, ou des " +"mécanismes d'enregistrement spécifiques au système d'exploitation, comme " +"*syslog* ou le journal d'événements de Windows NT. Les destinations sont " +"servies par des classes :dfn:`handler`. Vous pouvez créer votre propre " +"classe de destination si vous avez des besoins spéciaux qui ne sont couverts " +"par aucune classe *handler* prédéfinie." #: ../Doc/howto/logging.rst:383 msgid "" @@ -505,10 +682,21 @@ msgid "" "displayed message before delegating to the root logger to do the actual " "message output." msgstr "" +"Par défaut, aucune destination n'est prédéfinie pour les messages de " +"journalisation. Vous pouvez définir une destination (comme la console ou un " +"fichier) en utilisant :func:`basicConfig` comme dans les exemples donnés " +"dans le tutoriel. Si vous appelez les fonctions :func:`debug`, :func:" +"`info`, :func:`warning`, :func:`error` et :func:`critical`, celles-ci " +"vérifient si une destination a été définie ; si ce n'est pas le cas, la " +"destination est assignée à la console (``sys.stderr``) avec un format par " +"défaut pour le message affiché, avant d'être déléguée au *logger* racine, " +"qui sort le message." #: ../Doc/howto/logging.rst:391 msgid "The default format set by :func:`basicConfig` for messages is:" msgstr "" +"Le format par défaut des messages est défini par :func:`basicConfig` comme " +"suit ::" #: ../Doc/howto/logging.rst:397 msgid "" @@ -516,20 +704,26 @@ msgid "" "the *format* keyword argument. For all options regarding how a format string " "is constructed, see :ref:`formatter-objects`." msgstr "" +"Vous pouvez modifier ce comportement en passant une chaîne de formatage à :" +"func:`basicConfig` par l'argument nommé *format*. Consultez :ref:`formatter-" +"objects` pour toutes les options de construction de cette chaîne de " +"formatage." #: ../Doc/howto/logging.rst:402 msgid "Logging Flow" -msgstr "" +msgstr "Flux du processus de journalisation" #: ../Doc/howto/logging.rst:404 msgid "" "The flow of log event information in loggers and handlers is illustrated in " "the following diagram." msgstr "" +"Le flux des informations associées à un évènement dans les `loggers` et les " +"`handlers` est illustré dans le diagramme suivant." #: ../Doc/howto/logging.rst:410 msgid "Loggers" -msgstr "" +msgstr "Loggers" #: ../Doc/howto/logging.rst:412 msgid "" @@ -540,16 +734,25 @@ msgid "" "Third, logger objects pass along relevant log messages to all interested log " "handlers." msgstr "" +"Les objets de classe :class:`Logger` ont un rôle triple. Premièrement, ils " +"exposent plusieurs méthodes au code de l'application, de manière à ce " +"qu'elle puisse enregistrer des messages en cours d'exécution. Deuxièmement, " +"les objets `logger` déterminent sur quel message agir selon leur sévérité (à " +"partir des filtres par défaut) ou selon les objets `filter` associés. " +"Troisièmement, les objets `logger` transmettent les messages pertinents à " +"tous les `handlers` concernés." #: ../Doc/howto/logging.rst:418 msgid "" "The most widely used methods on logger objects fall into two categories: " "configuration and message sending." msgstr "" +"Les méthodes des objets `logger` les plus utilisées appartiennent à deux " +"catégories : la configuration et l'envoi de messages." #: ../Doc/howto/logging.rst:421 msgid "These are the most common configuration methods:" -msgstr "" +msgstr "Voici les méthodes de configuration les plus communes :" #: ../Doc/howto/logging.rst:423 msgid "" @@ -559,6 +762,11 @@ msgid "" "INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL " "messages and will ignore DEBUG messages." msgstr "" +":meth:`Logger.setLevel` spécifie le plus bas niveau de sévérité qu'un " +"`logger` traitera. Ainsi, `debug` est le niveau de sévérité défini par " +"défaut le plus bas et `critical` est le plus haut. Par exemple, si le niveau " +"de sévérité est INFO, le `logger` ne traite que les messages de niveau INFO, " +"WARNING, ERROR et CRITICAL ; il ignore les messages de niveau DEBUG." #: ../Doc/howto/logging.rst:429 msgid "" @@ -566,6 +774,9 @@ msgid "" "handler objects from the logger object. Handlers are covered in more detail " "in :ref:`handler-basic`." msgstr "" +":meth:`Logger.addHandler` et :meth:`Logger.removeHandler` ajoutent ou " +"enlèvent des objets `handlers` au `logger`. Les objets `handlers` sont " +"expliqués plus en détail dans :ref:`handler-basic`." #: ../Doc/howto/logging.rst:433 msgid "" @@ -573,17 +784,25 @@ msgid "" "filter objects from the logger object. Filters are covered in more detail " "in :ref:`filter`." msgstr "" +":meth:`Logger.addFilter` et :meth:`Logger.removeFilter` ajoutent ou enlèvent " +"des objets `filter` au `logger`. Les objets `filters` sont expliqués plus en " +"détail dans :ref:`filter`." #: ../Doc/howto/logging.rst:437 msgid "" "You don't need to always call these methods on every logger you create. See " "the last two paragraphs in this section." msgstr "" +"Comme nous l'expliquons aux deux derniers paragraphes de cette section, vous " +"n'avez pas besoin de faire appel à ces méthodes à chaque fois que vous créez " +"un `logger`." #: ../Doc/howto/logging.rst:440 msgid "" "With the logger object configured, the following methods create log messages:" msgstr "" +"Une fois que l'objet `logger` est correctement configuré, les méthodes " +"suivantes permettent de créer un message :" #: ../Doc/howto/logging.rst:442 msgid "" @@ -597,6 +816,16 @@ msgid "" "about a keyword of ``exc_info`` and use it to determine whether to log " "exception information." msgstr "" +"Les méthodes :meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger." +"warning`, :meth:`Logger.error` et :meth:`Logger.critical` créent des entrées " +"de journal avec un message et un niveau correspondant à leur nom. Le message " +"est en fait une chaîne de caractères qui peut contenir la syntaxe standard " +"de substitution de chaînes de caractères : ``%s``, ``%d``, ``%f``, etc. " +"L'argument suivant est une liste des objets correspondant aux champs à " +"substituer dans le message. En ce qui concerne ``**kwargs``, les méthodes de " +"`logging` ne tiennent compte que du mot clef ``exc_info`` et l'utilisent " +"pour déterminer s'il faut enregistrer les informations associées à une " +"exception." #: ../Doc/howto/logging.rst:452 msgid "" @@ -604,6 +833,10 @@ msgid "" "error`. The difference is that :meth:`Logger.exception` dumps a stack trace " "along with it. Call this method only from an exception handler." msgstr "" +":meth:`Logger.exception` crée un message similaire à :meth:`Logger.error`. " +"La différence est que :meth:`Logger.exception` ajoute la trace de la pile " +"d'exécution au message. On ne peut appeler cette méthode qu'à l'intérieur " +"d'un bloc de gestion d'exception." #: ../Doc/howto/logging.rst:456 msgid "" @@ -612,6 +845,11 @@ msgid "" "convenience methods listed above, but this is how to log at custom log " "levels." msgstr "" +":meth:`Logger.log` prend le niveau de sévérité comme argument explicite. " +"C'est un peu plus verbeux pour enregistrer des messages que d'utiliser les " +"méthodes plus pratiques décrites si dessus, mais c'est ce qui permet " +"d'enregistrer des messages pour des niveaux de sévérité définis par " +"l'utilisateur." #: ../Doc/howto/logging.rst:460 msgid "" @@ -624,6 +862,15 @@ msgid "" "loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` are all " "descendants of ``foo``." msgstr "" +":func:`getLogger` renvoie une référence à un objet `logger` du nom spécifié " +"si celui-ci est donné en argument. Dans le cas contraire, se sera le `logger " +"root`. Ces noms sont des structures hiérarchiques séparées par des points. " +"Des appels répétés à :func:`getLogger` avec le même nom renvoient une " +"référence au même objet `logger`. Les `loggers` qui sont plus bas dans cette " +"liste hiérarchique sont des enfants des `loggers` plus haut dans la liste. " +"Par exemple, si un `logger` a le nom ``foo``, les `loggers` avec les noms " +"``foo.bar``, ``foo.bar.baz``, et ``foo.bam`` sont tous des descendants de " +"``foo``." #: ../Doc/howto/logging.rst:468 msgid "" @@ -636,6 +883,14 @@ msgid "" "the logger is used to determine whether the event is passed to the logger's " "handlers." msgstr "" +"On associe aux `loggers` un concept de *niveau effectif*. Si aucun niveau " +"n'est explicitement défini pour un `logger`, c'est le niveau du parent qui " +"est utilisé comme niveau effectif. Si le parent n'a pas de niveau défini, " +"c'est celui de *son* parent qui est considéré, et ainsi de suite ; on " +"examine tous les ancêtres jusqu'à ce qu'un niveau explicite soit trouvé. Le " +"`logger root` a toujours un niveau explicite (``WARNING`` par défaut). Quand " +"le `logger` traite un événement, c'est ce niveau effectif qui est utilisé " +"pour déterminer si cet événement est transmis à ses `handlers`." #: ../Doc/howto/logging.rst:476 msgid "" @@ -646,10 +901,17 @@ msgid "" "needed. (You can, however, turn off propagation by setting the *propagate* " "attribute of a logger to ``False``.)" msgstr "" +"Les `loggers` fils font remonter leurs messages aux `handlers` associés à " +"leurs `loggers` parents. De ce fait, il n'est pas nécessaire de définir et " +"configurer des `handlers` pour tous les `loggers` employés par une " +"application. Il suffit de configurer les `handlers` pour un `logger` de haut " +"niveau et de créer des `loggers` fils quand c'est nécessaire (on peut " +"cependant empêcher la propagation aux ancêtres des messages en donnant la " +"valeur ``False`` à l'attribut *propagate* d'un `logger`)." #: ../Doc/howto/logging.rst:487 msgid "Handlers" -msgstr "" +msgstr "Handlers" #: ../Doc/howto/logging.rst:489 msgid "" @@ -663,6 +925,16 @@ msgid "" "individual handlers where each handler is responsible for sending messages " "of a specific severity to a specific location." msgstr "" +"Les objets de type :class:`~logging.Handler` sont responsables de la " +"distribution des messages (selon leur niveau de sévérité) vers les " +"destinations spécifiées pour ce `handler`. Les objets :class:`Logger` " +"peuvent ajouter des objets `handler` à eux-mêmes en appelant :meth:`~Logger." +"addHandler`. Pour donner un exemple, une application peut envoyer tous les " +"messages dans un fichier journal, tous les messages de niveau `error` ou " +"supérieur vers la sortie standard, et tous les messages de niveau `critical` " +"vers une adresse de courriel. Dans ce scenario, nous avons besoin de trois " +"`handlers`, responsable chacun d'envoyer des messages d'une sévérité donnée " +"vers une destination donnée." #: ../Doc/howto/logging.rst:499 msgid "" @@ -670,6 +942,9 @@ msgid "" "handlers`); the tutorials use mainly :class:`StreamHandler` and :class:" "`FileHandler` in its examples." msgstr "" +"La bibliothèque standard inclut déjà un bon nombre de types de gestionnaires " +"(voir :ref:`useful-handlers`) ; le tutoriel utilise surtout :class:" +"`StreamHandler` et :class:`FileHandler` dans ses exemples." #: ../Doc/howto/logging.rst:503 msgid "" @@ -678,6 +953,10 @@ msgid "" "application developers who are using the built-in handler objects (that is, " "not creating custom handlers) are the following configuration methods:" msgstr "" +"Peu de méthodes des objets `handlers` sont intéressantes pour les " +"développeurs. Les seules méthodes intéressantes lorsqu'on utilise les objets " +"`handlers` natifs (c'est à dire si l'on ne crée pas d'`handler` " +"personnalisé) sont les méthodes de configuration suivantes :" #: ../Doc/howto/logging.rst:508 msgid "" @@ -688,18 +967,28 @@ msgid "" "level set in each handler determines which messages that handler will send " "on." msgstr "" +"La méthode :meth:`~Handler.setLevel`, comme celle des objets `logger` permet " +"de spécifier le plus bas niveau de sévérité qui sera distribué à la " +"destination appropriée. Pourquoi y a-t-il deux méthodes :func:`setLevel` ? " +"Le niveau défini dans le `logger` détermine quelle sévérité doit avoir un " +"message pour être transmis à ses `handlers`. Le niveau mis pour chaque " +"`handler` détermine quels messages seront envoyés aux destinations." #: ../Doc/howto/logging.rst:514 msgid "" ":meth:`~Handler.setFormatter` selects a Formatter object for this handler to " "use." msgstr "" +":meth:`~Handler.setFormatter` sélectionne l'objet `Formatter` utilisé par " +"cet `handler`." #: ../Doc/howto/logging.rst:517 msgid "" ":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively " "configure and deconfigure filter objects on handlers." msgstr "" +":meth:`~Handler.addFilter` et :meth:`~Handler.removeFilter` configurent et " +"respectivement dé-configurent des objets `filter` sur les `handlers`." #: ../Doc/howto/logging.rst:520 msgid "" @@ -708,10 +997,15 @@ msgid "" "the interface that all handlers should have and establishes some default " "behavior that child classes can use (or override)." msgstr "" +"Le code d'une application ne devrait ni instancier, ni utiliser d'instances " +"de la classe :class:`Handler`. La classe :class:`Handler` est plutôt d'une " +"classe de base qui définit l'interface que tous les gestionnaires doivent " +"avoir et établit les comportements par défaut que les classes filles peuvent " +"employer (ou redéfinir)." #: ../Doc/howto/logging.rst:527 msgid "Formatters" -msgstr "" +msgstr "Formatters" #: ../Doc/howto/logging.rst:529 msgid "" @@ -722,18 +1016,30 @@ msgid "" "takes three optional arguments -- a message format string, a date format " "string and a style indicator." msgstr "" +"Les objets `formatter` configurent l'ordre final, la structure et le contenu " +"du message. Contrairement à la classe de base :class:`logging.Handler`, le " +"code d'une application peut instancier un objet de classe `formatter`, même " +"si vous pouvez toujours sous-classer `formatter` si vous avez besoin d'un " +"comportement spécial dans votre application. Le constructeur a trois " +"arguments optionnels : une chaîne de formatage du message, un chaîne de " +"formatage de la date et un indicateur de style." #: ../Doc/howto/logging.rst:538 msgid "" "If there is no message format string, the default is to use the raw " "message. If there is no date format string, the default date format is:" msgstr "" +"S'il n'y a pas de chaîne de formatage, la chaîne brute est utilisée par " +"défaut. S'il n'y a pas de chaîne de formatage de date, le format de date par " +"défaut est :" #: ../Doc/howto/logging.rst:545 msgid "" "with the milliseconds tacked on at the end. The ``style`` is one of `%`, '{' " "or '$'. If one of these is not specified, then '%' will be used." msgstr "" +"avec les millisecondes en suffixe. Le ``style`` est `%`, `{` ou `$`. Si " +"aucun n'est spécifié, `%` sera utilisé." #: ../Doc/howto/logging.rst:548 msgid "" @@ -744,10 +1050,17 @@ msgid "" "arguments), while if the style is '$' then the message format string should " "conform to what is expected by :meth:`string.Template.substitute`." msgstr "" +"Si l'argument ``style`` est `%`, la chaîne de formatage utilise ``%()s`` comme style de substitution de chaîne de caractères ; les " +"clefs possibles sont documentées dans :ref:`logrecord-attributes`. Si le " +"style est `{`, le message de la chaîne de formatage est compatible avec :" +"meth:`str.format` (en employant des arguments à mots clefs). Enfin si le " +"style est `$` alors la chaîne de formatage du message doit être conforme à " +"ce qui est attendu de :meth:`string.Template.substitute`." #: ../Doc/howto/logging.rst:555 msgid "Added the ``style`` parameter." -msgstr "" +msgstr "Ajout du paramètre ``style``." #: ../Doc/howto/logging.rst:558 msgid "" @@ -755,6 +1068,9 @@ msgid "" "format, the severity of the message, and the contents of the message, in " "that order::" msgstr "" +"La chaîne de formatage de message suivante enregistrera le temps dans un " +"format lisible par les humains, la sévérité du message et son contenu, dans " +"cet ordre ::" #: ../Doc/howto/logging.rst:564 msgid "" @@ -766,32 +1082,47 @@ msgid "" "want all logging times to be shown in GMT, set the ``converter`` attribute " "in the Formatter class (to ``time.gmtime`` for GMT display)." msgstr "" +"Les `formatters` emploient une fonction configurable par l'utilisateur pour " +"convertir le temps de création d'une entrée de journal en un tuple. Par " +"défaut, :func:`time.localtime` est employé ; pour changer cela pour une " +"instance particulière de `formatter`, assignez une fonction avec la même " +"signature que :func:`time.localtime` ou :func:`time.gmtime` à l'attribut " +"``converter`` de cette instance. Pour changer cela pour tous les " +"`formatters`, par exemple si vous voulez que tous votre horodatage soit " +"affiché en GMT, changez l'attribut ``converter`` de la classe ``Formatter`` " +"en ``time.gmtime``." #: ../Doc/howto/logging.rst:574 msgid "Configuring Logging" -msgstr "" +msgstr "Configuration de `Logging`" #: ../Doc/howto/logging.rst:578 msgid "Programmers can configure logging in three ways:" -msgstr "" +msgstr "On peut configurer `logging` de trois façons :" #: ../Doc/howto/logging.rst:580 msgid "" "Creating loggers, handlers, and formatters explicitly using Python code that " "calls the configuration methods listed above." msgstr "" +"Créer des `loggers`, `handlers` et `formatters` explicitement en utilisant " +"du code Python qui appelle les méthodes de configuration listées ci-dessus." #: ../Doc/howto/logging.rst:582 msgid "" "Creating a logging config file and reading it using the :func:`fileConfig` " "function." msgstr "" +"Créer un fichier de configuration de `logging` et le lire en employant la " +"fonction :func:`fileConfig`." #: ../Doc/howto/logging.rst:584 msgid "" "Creating a dictionary of configuration information and passing it to the :" "func:`dictConfig` function." msgstr "" +"Créer un dictionnaire d'informations de configuration et le passer à la " +"fonction :func:`dictConfig`." #: ../Doc/howto/logging.rst:587 msgid "" @@ -799,11 +1130,17 @@ msgid "" "config-api`. The following example configures a very simple logger, a " "console handler, and a simple formatter using Python code::" msgstr "" +"Pour la documentation de référence de ces deux dernières options, voyez :ref:" +"`logging-config-api`. L'exemple suivant configure un `logger` très simple, " +"un `handler` employant la console, et un `formatter` simple en utilisant du " +"code Python ::" #: ../Doc/howto/logging.rst:617 msgid "" "Running this module from the command line produces the following output:" msgstr "" +"L'exécution de ce module via la ligne de commande produit la sortie " +"suivante :" #: ../Doc/howto/logging.rst:628 msgid "" @@ -811,15 +1148,19 @@ msgid "" "identical to those in the example listed above, with the only difference " "being the names of the objects::" msgstr "" +"Le module Python suivant crée un *logger*, un *handler* et un *formatter* " +"identiques à ceux de l'exemple détaillé au-dessus, au nom des objets près ::" #: ../Doc/howto/logging.rst:647 msgid "Here is the logging.conf file:" -msgstr "" +msgstr "Voici le fichier *logging.conf* :" #: ../Doc/howto/logging.rst:680 msgid "" "The output is nearly identical to that of the non-config-file-based example:" msgstr "" +"La sortie est presque identique à celle de l'exemple qui n'est pas basé sur " +"un fichier de configuration :" #: ../Doc/howto/logging.rst:691 msgid "" @@ -827,26 +1168,44 @@ msgid "" "Python code approach, mainly separation of configuration and code and the " "ability of noncoders to easily modify the logging properties." msgstr "" +"Vous pouvez constatez les avantages de l'approche par fichier de " +"configuration par rapport à celle du code Python, principalement la " +"séparation de la configuration et du code, et la possibilité pour une " +"personne qui ne code pas de modifier facilement les propriétés de `logging`." #: ../Doc/howto/logging.rst:695 msgid "" "The :func:`fileConfig` function takes a default parameter, " "``disable_existing_loggers``, which defaults to ``True`` for reasons of " "backward compatibility. This may or may not be what you want, since it will " -"cause any loggers existing before the :func:`fileConfig` call to be disabled " -"unless they (or an ancestor) are explicitly named in the configuration. " -"Please refer to the reference documentation for more information, and " -"specify ``False`` for this parameter if you wish." -msgstr "" +"cause any non-root loggers existing before the :func:`fileConfig` call to be " +"disabled unless they (or an ancestor) are explicitly named in the " +"configuration. Please refer to the reference documentation for more " +"information, and specify ``False`` for this parameter if you wish." +msgstr "" +"La fonction :func:`fileConfig` accepte un paramètre par défaut " +"``disable_existing_loggers``, qui vaut ``True`` par défaut pour des raisons " +"de compatibilité ascendante. Ce n'est pas forcément ce que vous souhaitez : " +"en effet, tous les *loggers* créés avant l'appel à :func:`fileConfig` seront " +"désactivés sauf si eux-mêmes (ou l'un de leurs parents) sont explicitement " +"nommés dans le fichier de configuration. Veuillez vous rapporter à la " +"documentation pour plus de détails, et donner la valeur ``False`` à ce " +"paramètre si vous le souhaitez." #: ../Doc/howto/logging.rst:703 msgid "" "The dictionary passed to :func:`dictConfig` can also specify a Boolean value " "with key ``disable_existing_loggers``, which if not specified explicitly in " -"the dictionary also defaults to being interpreted as ``True``. This leads " -"to the logger-disabling behaviour described above, which may not be what you " +"the dictionary also defaults to being interpreted as ``True``. This leads to " +"the logger-disabling behaviour described above, which may not be what you " "want - in which case, provide the key explicitly with a value of ``False``." msgstr "" +"Le dictionnaire passé à :func:`dictConfig` peut aussi spécifier une valeur " +"Booléenne pour la clef ``disable_existing_loggers``. Si cette valeur n'est " +"pas donnée, elle est interprétée comme vraie par défaut. Cela conduit au " +"comportement de désactivation des *loggers* décrit ci-dessus, qui n'est pas " +"forcément celui que vous souhaitez ; dans ce cas, donnez explicitement la " +"valeur ``False`` à cette clef." #: ../Doc/howto/logging.rst:713 msgid "" @@ -858,6 +1217,13 @@ msgid "" "module ``mymodule``, where ``mypackage`` is available on the Python import " "path)." msgstr "" +"Notez que les noms de classe référencés dans le fichier de configuration " +"doivent être relatifs au module `logging`, ou des valeurs absolues qui " +"peuvent être résolues à travers les mécanismes d'importation habituels. " +"Ainsi, on peut soit utiliser :class:`~logging.handlers.WatchedFileHandler` " +"(relativement au module `logging`) ou ``mypackage.mymodule.MyHandler`` (pour " +"une classe définie dans le paquet ``mypackage`` et le module ``mymodule``, " +"si ``mypackage`` est disponible dans les chemins d'importation de Python)." #: ../Doc/howto/logging.rst:721 msgid "" @@ -873,22 +1239,40 @@ msgid "" "can construct the dictionary in Python code, receive it in pickled form over " "a socket, or use whatever approach makes sense for your application." msgstr "" +"Dans Python 3.2, un nouveau moyen de configuration de la journalisation a " +"été introduit, à l'aide de dictionnaires pour contenir les informations de " +"configuration. Cela fournit un sur-ensemble de la fonctionnalité décrite ci-" +"dessus basée sur un fichier de configuration et c’est la méthode recommandée " +"pour les nouvelles applications et les déploiements. Étant donné qu'un " +"dictionnaire Python est utilisé pour contenir des informations de " +"configuration et que vous pouvez remplir ce dictionnaire à l'aide de " +"différents moyens, vous avez plus d'options pour la configuration. Par " +"exemple, vous pouvez utiliser un fichier de configuration au format JSON ou, " +"si vous avez accès à la fonctionnalité de traitement YAML, un fichier au " +"format YAML, pour remplir le dictionnaire de configuration. Ou bien sûr, " +"vous pouvez construire le dictionnaire dans le code Python, le recevoir sous " +"forme de *pickle* sur un connecteur, ou utiliser n'importe quelle approche " +"suivant la logique de votre application." #: ../Doc/howto/logging.rst:733 msgid "" "Here's an example of the same configuration as above, in YAML format for the " "new dictionary-based approach:" msgstr "" +"Voici un exemple définissant la même configuration que ci-dessus, au format " +"YAML pour le dictionnaire correspondant à cette nouvelle approche :" #: ../Doc/howto/logging.rst:757 msgid "" "For more information about logging using a dictionary, see :ref:`logging-" "config-api`." msgstr "" +"Pour plus d'informations sur la journalisation à l'aide d'un dictionnaire, " +"consultez :ref:`logging-config-api`." #: ../Doc/howto/logging.rst:761 msgid "What happens if no configuration is provided" -msgstr "" +msgstr "Comportement par défaut (si aucune configuration n'est fournie)" #: ../Doc/howto/logging.rst:763 msgid "" @@ -897,26 +1281,38 @@ msgid "" "output the event. The behaviour of the logging package in these " "circumstances is dependent on the Python version." msgstr "" +"Si aucune configuration de journalisation n'est fournie, il est possible " +"d'avoir une situation où un événement doit faire l'objet d'une " +"journalisation, mais où aucun gestionnaire ne peut être trouvé pour tracer " +"l'événement. Le comportement du paquet ``logging`` dans ces circonstances " +"dépend de la version Python." #: ../Doc/howto/logging.rst:768 msgid "For versions of Python prior to 3.2, the behaviour is as follows:" msgstr "" +"Pour les versions de Python antérieures à 3.2, le comportement est le " +"suivant :" #: ../Doc/howto/logging.rst:770 msgid "" "If *logging.raiseExceptions* is ``False`` (production mode), the event is " "silently dropped." msgstr "" +"Si *logging.raiseExceptions* vaut ``False`` (mode production), l’événement " +"est silencieusement abandonné." #: ../Doc/howto/logging.rst:773 msgid "" "If *logging.raiseExceptions* is ``True`` (development mode), a message 'No " "handlers could be found for logger X.Y.Z' is printed once." msgstr "" +"Si *logging.raiseExceptions* vaut ``True`` (mode de développement), un " +"message *No handlers could be found for logger X.Y.Z* est écrit sur la " +"sortie standard une fois." #: ../Doc/howto/logging.rst:776 msgid "In Python 3.2 and later, the behaviour is as follows:" -msgstr "" +msgstr "Dans Python 3.2 et ultérieur, le comportement est le suivant :" #: ../Doc/howto/logging.rst:778 msgid "" @@ -929,16 +1325,27 @@ msgid "" "handler's level is set to ``WARNING``, so all events at this and greater " "severities will be output." msgstr "" +"L'événement est sorti à l'aide d'un « gestionnaire de dernier recours », " +"stocké dans ``logging.lastResort``. Ce gestionnaire interne n'est associé à " +"aucun enregistreur et agit comme un :class:`~logging.StreamHandler` qui " +"écrit le message de description de l'événement vers la valeur actuelle de " +"``sys.stderr`` (par conséquent, en respectant les redirections qui peuvent " +"être en vigueur). Aucun formatage n'est fait sur le message – juste le " +"message de description de l'événement nu est affiché. Le niveau du " +"gestionnaire est défini sur ``WARNING``, de sorte que tous les événements de " +"cette sévérité et plus seront écrits." #: ../Doc/howto/logging.rst:787 msgid "" "To obtain the pre-3.2 behaviour, ``logging.lastResort`` can be set to " "``None``." msgstr "" +"Pour obtenir un comportement antérieur à 3.2, ``logging.lastResort`` peut " +"être mis à ``None``." #: ../Doc/howto/logging.rst:792 msgid "Configuring Logging for a Library" -msgstr "" +msgstr "Configuration de la journalisation pour une bibliothèque" #: ../Doc/howto/logging.rst:794 msgid "" @@ -950,18 +1357,38 @@ msgid "" "of severity ``WARNING`` and greater will be printed to ``sys.stderr``. This " "is regarded as the best default behaviour." msgstr "" +"Lors du développement d'une bibliothèque qui utilise la journalisation, vous " +"devez prendre soin de documenter la façon dont la bibliothèque utilise la " +"journalisation (par exemple, les noms des enregistreurs utilisés). Consacrez " +"aussi un peu de temps à la configuration de la journalisation. Si " +"l'application utilisant votre bibliothèque n'utilise pas la journalisation " +"et que le code de la bibliothèque effectue des appels de journalisation, " +"alors (comme décrit dans la section précédente), les événements de gravité " +"``WARNING`` et au-dessus seront écrits sur ``sys.stderr``. Cela est " +"considéré comme le meilleur comportement par défaut." #: ../Doc/howto/logging.rst:802 msgid "" "If for some reason you *don't* want these messages printed in the absence of " "any logging configuration, you can attach a do-nothing handler to the top-" "level logger for your library. This avoids the message being printed, since " -"a handler will be always be found for the library's events: it just doesn't " +"a handler will always be found for the library's events: it just doesn't " "produce any output. If the library user configures logging for application " "use, presumably that configuration will add some handlers, and if levels are " "suitably configured then logging calls made in library code will send output " "to those handlers, as normal." msgstr "" +"Si, pour une raison quelconque, vous ne voulez *pas* que ces messages soient " +"affichés en l'absence de toute configuration de journalisation, vous pouvez " +"attacher un gestionnaire *ne-fait-rien* à l'enregistreur de niveau supérieur " +"de votre bibliothèque. Cela évite qu’un message ne soit écrit, puisqu’un " +"gestionnaire sera toujours trouvé pour les événements de la bibliothèque, il " +"ne produit tout simplement pas de sortie. Si celui qui utilise la " +"bibliothèque configure la journalisation pour son application, il est " +"vraisemblable que la configuration ajoutera certains gestionnaires et, si " +"les niveaux sont convenablement configurés, alors la journalisation des " +"appels effectués dans le code de bibliothèque enverra la sortie à ces " +"gestionnaires, comme d'habitude." #: ../Doc/howto/logging.rst:811 msgid "" @@ -973,6 +1400,15 @@ msgid "" "library *foo* is done using loggers with names matching 'foo.x', 'foo.x.y', " "etc. then the code::" msgstr "" +"Un gestionnaire *ne-fait-rien* est inclus dans le paquet de " +"journalisation : :class:`~logging.NullHandler` (depuis Python 3.1). Une " +"instance de ce gestionnaire peut être ajoutée à l'enregistreur de niveau " +"supérieur de l'espace de nommage de journalisation utilisé par la " +"bibliothèque (*si* vous souhaitez empêcher la copie de la journalisation de " +"votre bibliothèque dans ``sys.stderr`` en l'absence de configuration de " +"journalisation). Si toute la journalisation par une bibliothèque *foo* est " +"effectuée en utilisant des enregistreurs avec des noms correspondant à *foo." +"x*, *foo.x.y*, etc., alors le code ::" #: ../Doc/howto/logging.rst:822 msgid "" @@ -980,6 +1416,9 @@ msgid "" "libraries, then the logger name specified can be 'orgname.foo' rather than " "just 'foo'." msgstr "" +"doit avoir l'effet désiré. Si une organisation produit un certain nombre de " +"bibliothèques, le nom de l'enregistreur spécifié peut être ``orgname.foo`` " +"plutôt que simplement ``foo``." #: ../Doc/howto/logging.rst:826 msgid "" @@ -991,10 +1430,18 @@ msgid "" "handlers 'under the hood', you might well interfere with their ability to " "carry out unit tests and deliver logs which suit their requirements." msgstr "" +"Il est vivement conseillé de ne *pas ajouter de gestionnaires autres que* :" +"class:`~logging.NullHandler` *aux enregistreurs de votre bibliothèque*. Cela " +"est dû au fait que la configuration des gestionnaires est la prérogative du " +"développeur d'applications qui utilise votre bibliothèque. Le développeur " +"d'applications connaît le public cible et les gestionnaires les plus " +"appropriés pour ses applications : si vous ajoutez des gestionnaires « sous " +"le manteau », vous pourriez bien interférer avec les tests unitaires et la " +"journalisation qui convient à ses exigences." #: ../Doc/howto/logging.rst:837 msgid "Logging Levels" -msgstr "" +msgstr "Niveaux de journalisation" #: ../Doc/howto/logging.rst:839 msgid "" @@ -1004,10 +1451,15 @@ msgid "" "define a level with the same numeric value, it overwrites the predefined " "value; the predefined name is lost." msgstr "" +"Les valeurs numériques des niveaux de journalisation sont données dans le " +"tableau suivant. Celles-ci n'ont d'intérêt que si vous voulez définir vos " +"propres niveaux, avec des valeurs spécifiques par rapport aux niveaux " +"prédéfinis. Si vous définissez un niveau avec la même valeur numérique, il " +"écrase la valeur prédéfinie ; le nom prédéfini est perdu." #: ../Doc/howto/logging.rst:846 msgid "Numeric value" -msgstr "" +msgstr "Valeur numérique" #: ../Doc/howto/logging.rst:848 msgid "50" @@ -1046,6 +1498,14 @@ msgid "" "the method call's, no logging message is actually generated. This is the " "basic mechanism controlling the verbosity of logging output." msgstr "" +"Les niveaux peuvent également être associés à des enregistreurs, étant " +"définis soit par le développeur, soit par le chargement d'une configuration " +"de journalisation enregistrée. Lorsqu'une méthode de journalisation est " +"appelée sur un enregistreur, l'enregistreur compare son propre niveau avec " +"le niveau associé à l'appel de méthode. Si le niveau de l'enregistreur est " +"supérieur à l'appel de méthode, aucun message de journalisation n'est " +"réellement généré. C'est le mécanisme de base contrôlant la verbosité de la " +"sortie de journalisation." #: ../Doc/howto/logging.rst:868 msgid "" @@ -1053,6 +1513,10 @@ msgid "" "class. When a logger decides to actually log an event, a :class:`~logging." "LogRecord` instance is created from the logging message." msgstr "" +"Les messages de journalisation sont codés en tant qu'instances de :class:" +"`~logging.LogRecord`. Lorsqu'un enregistreur décide de réellement " +"enregistrer un événement, une instance de :class:`~logging.LogRecord` est " +"créée à partir du message de journalisation." #: ../Doc/howto/logging.rst:872 msgid "" @@ -1070,6 +1534,23 @@ msgid "" "message (unless the *propagate* flag for a logger is set to a false value, " "at which point the passing to ancestor handlers stops)." msgstr "" +"Les messages de journalisation sont soumis à un mécanisme d'expédition via " +"l'utilisation de :dfn:`handlers`, qui sont des instances de sous-classes de " +"la classe :class:`Handler`. Les gestionnaires sont chargés de s'assurer " +"qu'un message journalisé (sous la forme d'un :class:`LogRecord`) atterrit " +"dans un emplacement particulier (ou un ensemble d'emplacements) qui est " +"utile pour le public cible pour ce message (tels que les utilisateurs " +"finaux, le personnel chargé de l'assistance aux utilisateurs, les " +"administrateurs système ou les développeurs). Des instances de :class:" +"`LogRecord` adaptées à leur destination finale sont passées aux " +"gestionnaires destinées à des destinations particulières. Chaque " +"enregistreur peut avoir zéro, un ou plusieurs gestionnaires associés à celui-" +"ci (via la méthode :meth:`~Logger.addHandler` de :class:`Logger`). En plus " +"de tous les gestionnaires directement associés à un enregistreur, *tous les " +"gestionnaires associés à tous les ancêtres de l'enregistreur* sont appelés " +"pour envoyer le message (à moins que l'indicateur *propager* pour un " +"enregistreur soit défini sur la valeur ``False``, auquel cas le passage à " +"l'ancêtre gestionnaires s'arrête)." #: ../Doc/howto/logging.rst:886 msgid "" @@ -1080,10 +1561,17 @@ msgid "" "defined subclasses of :class:`Handler` will need to override this :meth:" "`~Handler.emit`." msgstr "" +"Tout comme pour les enregistreurs, les gestionnaires peuvent avoir des " +"niveaux associés. Le niveau d'un gestionnaire agit comme un filtre de la " +"même manière que le niveau d'un enregistreur. Si un gestionnaire décide de " +"réellement distribuer un événement, la méthode :meth:`~Handler.emit` est " +"utilisée pour envoyer le message à sa destination. La plupart des sous-" +"classes définies par l'utilisateur de :class:`Handler` devront remplacer ce :" +"meth:`~Handler.emit`." #: ../Doc/howto/logging.rst:895 msgid "Custom Levels" -msgstr "" +msgstr "Niveaux personnalisés" #: ../Doc/howto/logging.rst:897 msgid "" @@ -1097,26 +1585,43 @@ msgid "" "difficult for the using developer to control and/or interpret, because a " "given numeric value might mean different things for different libraries." msgstr "" +"La définition de vos propres niveaux est possible, mais ne devrait pas être " +"nécessaire, car les niveaux existants ont été choisis par expérience. " +"Cependant, si vous êtes convaincu que vous avez besoin de niveaux " +"personnalisés, prenez grand soin à leur réalisation et il est pratiquement " +"certain que c’est *une très mauvaise idée de définir des niveaux " +"personnalisés si vous développez une bibliothèque*. Car si plusieurs auteurs " +"de bibliothèque définissent tous leurs propres niveaux personnalisés, il y a " +"une chance que la sortie de journalisation de ces multiples bibliothèques " +"utilisées ensemble sera difficile pour le développeur à utiliser pour " +"contrôler et/ou interpréter, car une valeur numérique donnée peut signifier " +"des choses différentes pour différentes bibliothèques." #: ../Doc/howto/logging.rst:910 msgid "Useful Handlers" -msgstr "" +msgstr "Gestionnaires utiles" #: ../Doc/howto/logging.rst:912 msgid "" "In addition to the base :class:`Handler` class, many useful subclasses are " "provided:" msgstr "" +"En plus de la classe de base :class:`Handler`, de nombreuses sous-classes " +"utiles sont fournies :" #: ../Doc/howto/logging.rst:915 msgid "" ":class:`StreamHandler` instances send messages to streams (file-like " "objects)." msgstr "" +"Les instances :class:`StreamHandler` envoient des messages aux flux (objets " +"de type fichier)." #: ../Doc/howto/logging.rst:918 msgid ":class:`FileHandler` instances send messages to disk files." msgstr "" +"Les instances :class:`FileHandler` envoient des messages à des fichiers sur " +"le disque." #: ../Doc/howto/logging.rst:920 msgid "" @@ -1125,60 +1630,88 @@ msgid "" "directly. Instead, use :class:`~handlers.RotatingFileHandler` or :class:" "`~handlers.TimedRotatingFileHandler`." msgstr "" +":class:`~handlers.BaseRotatingHandler` est la classe de base pour les " +"gestionnaires qui assurent la rotation des fichiers de journalisation à " +"partir d’un certain point. Elle n'est pas destinée à être instanciée " +"directement. Utilisez plutôt :class:`~handlers.RotatingFileHandler` ou :" +"class:`~handlers.TimedRotatingFileHandler`." #: ../Doc/howto/logging.rst:925 msgid "" ":class:`~handlers.RotatingFileHandler` instances send messages to disk " "files, with support for maximum log file sizes and log file rotation." msgstr "" +"Les instances :class:`~handlers.RotatingFileHandler` envoient des messages à " +"des fichiers sur le disque, avec la prise en charge des tailles maximales de " +"fichiers de journalisation et de la rotation des fichiers de journalisation." #: ../Doc/howto/logging.rst:928 msgid "" ":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk " "files, rotating the log file at certain timed intervals." msgstr "" +"Les instances de :class:`~handlers.TimedRotatingFileHandler` envoient des " +"messages aux fichiers de disque, en permutant le fichier journal à " +"intervalles réguliers." #: ../Doc/howto/logging.rst:931 msgid "" ":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. " "Since 3.4, Unix domain sockets are also supported." msgstr "" +"Les instances de :class:`~handlers.SocketHandler` envoient des messages aux " +"connecteurs TCP/IP. Depuis 3.4, les connecteurs UNIX sont également pris en " +"charge." #: ../Doc/howto/logging.rst:934 msgid "" ":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. " "Since 3.4, Unix domain sockets are also supported." msgstr "" +"Les instances de :class:`~handlers.DatagramHandler` envoient des messages " +"aux connecteurs UDP. Depuis 3.4, les connecteurs UNIX sont également pris en " +"charge." #: ../Doc/howto/logging.rst:937 msgid "" ":class:`~handlers.SMTPHandler` instances send messages to a designated email " "address." msgstr "" +"Les instances de :class:`~handlers.SMTPHandler` envoient des messages à une " +"adresse e-mail désignée." #: ../Doc/howto/logging.rst:940 msgid "" ":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog " "daemon, possibly on a remote machine." msgstr "" +"Les instances de :class:`~handlers.SysLogHandler` envoient des messages à un " +"*daemon* *syslog* UNIX, éventuellement sur un ordinateur distant." #: ../Doc/howto/logging.rst:943 msgid "" ":class:`~handlers.NTEventLogHandler` instances send messages to a Windows " "NT/2000/XP event log." msgstr "" +"Les instances de :class:`~handlers.NTEventLogHandler` envoient des messages " +"à un journal des événements Windows NT/2000/XP." #: ../Doc/howto/logging.rst:946 msgid "" ":class:`~handlers.MemoryHandler` instances send messages to a buffer in " "memory, which is flushed whenever specific criteria are met." msgstr "" +"Les instances de :class:`~handlers.MemoryHandler` envoient des messages à un " +"tampon en mémoire, qui est vidé chaque fois que des critères spécifiques " +"sont remplis." #: ../Doc/howto/logging.rst:949 msgid "" ":class:`~handlers.HTTPHandler` instances send messages to an HTTP server " "using either ``GET`` or ``POST`` semantics." msgstr "" +"Les instances de :class:`~handlers.HTTPHandler` envoient des messages à un " +"serveur HTTP à l'aide de la sémantique ``GET`` ou ``POST``." #: ../Doc/howto/logging.rst:952 msgid "" @@ -1187,12 +1720,20 @@ msgid "" "name. This handler is only useful on Unix-like systems; Windows does not " "support the underlying mechanism used." msgstr "" +"Les instances de :class:`~handlers.WatchedFileHandler` surveillent le " +"fichier sur lequel elles se connectent. Si le fichier change, il est fermé " +"et rouvert à l'aide du nom de fichier. Ce gestionnaire n'est utile que sur " +"les systèmes de type UNIX ; Windows ne prend pas en charge le mécanisme sous-" +"jacent utilisé." #: ../Doc/howto/logging.rst:957 msgid "" ":class:`~handlers.QueueHandler` instances send messages to a queue, such as " "those implemented in the :mod:`queue` or :mod:`multiprocessing` modules." msgstr "" +"Les instances de :class:`~handlers.QueueHandler` envoient des messages à une " +"file d'attente, telles que celles implémentées dans les modules :mod:`queue` " +"ou :mod:`multiprocessing`." #: ../Doc/howto/logging.rst:960 msgid "" @@ -1202,22 +1743,33 @@ msgid "" "the library user has not configured logging. See :ref:`library-config` for " "more information." msgstr "" +"Les instances :class:`NullHandler` ne font rien avec les messages d'erreur. " +"Ils sont utilisés par les développeurs de bibliothèques qui veulent utiliser " +"la journalisation, mais qui veulent éviter les messages de type *No handlers " +"could be found for logger XXX*, affiché si celui qui utilise la bibliothèque " +"n'a pas configuré la journalisation. Voir :ref:`library-config` pour plus " +"d'informations." #: ../Doc/howto/logging.rst:966 msgid "The :class:`NullHandler` class." -msgstr "" +msgstr "La classe :class:`NullHandler`." #: ../Doc/howto/logging.rst:969 msgid "The :class:`~handlers.QueueHandler` class." -msgstr "" +msgstr "La classe :class:`~handlers.QueueHandler`." #: ../Doc/howto/logging.rst:972 msgid "" "The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler` " "classes are defined in the core logging package. The other handlers are " -"defined in a sub- module, :mod:`logging.handlers`. (There is also another " -"sub-module, :mod:`logging.config`, for configuration functionality.)" +"defined in a sub-module, :mod:`logging.handlers`. (There is also another sub-" +"module, :mod:`logging.config`, for configuration functionality.)" msgstr "" +"Les classes :class:`NullHandler`, :class:`StreamHandler` et :class:" +"`FileHandler` sont définies dans le module de journalisation de base. Les " +"autres gestionnaires sont définis dans un sous-module, :mod:`logging." +"handlers` (il existe également un autre sous-module, :mod:`logging.config`, " +"pour la fonctionnalité de configuration)." #: ../Doc/howto/logging.rst:977 msgid "" @@ -1225,6 +1777,10 @@ msgid "" "class:`Formatter` class. They are initialized with a format string suitable " "for use with the % operator and a dictionary." msgstr "" +"Les messages journalisés sont mis en forme pour la présentation via des " +"instances de la classe :class:`Formatter`. Ils sont initialisés avec une " +"chaîne de format appropriée pour une utilisation avec l'opérateur % et un " +"dictionnaire." #: ../Doc/howto/logging.rst:981 msgid "" @@ -1233,6 +1789,10 @@ msgid "" "applied to each message in the batch), there is provision for header and " "trailer format strings." msgstr "" +"Pour formater plusieurs messages dans un lot, des instances de :class:" +"`~handlers.BufferingFormatter` peuvent être utilisées. En plus de la chaîne " +"de format (qui est appliquée à chaque message dans le lot), il existe des " +"dispositions pour les chaînes de format d'en-tête et de fin." #: ../Doc/howto/logging.rst:986 msgid "" @@ -1243,6 +1803,13 @@ msgid "" "consult all their filters for permission. If any filter returns a false " "value, the message is not processed further." msgstr "" +"Lorsque le filtrage basé sur le niveau de l'enregistreur et/ou le niveau du " +"gestionnaire ne suffit pas, les instances de :class:`Filter` peuvent être " +"ajoutées aux deux instances de :class:`Logger` et :class:`Handler` (par le " +"biais de leur méthode :meth:`~Handler.addFilter`). Avant de décider de " +"traiter un message plus loin, les enregistreurs et les gestionnaires " +"consultent tous leurs filtres pour obtenir l'autorisation. Si un filtre " +"renvoie une valeur ``False``, le traitement du message est arrêté." #: ../Doc/howto/logging.rst:993 msgid "" @@ -1250,10 +1817,14 @@ msgid "" "name. If this feature is used, messages sent to the named logger and its " "children are allowed through the filter, and all others dropped." msgstr "" +"La fonctionnalité de base :class:`Filter` permet de filtrer par nom de " +"*logger* spécifique. Si cette fonctionnalité est utilisée, les messages " +"envoyés à l'enregistreur nommé et à ses enfants sont autorisés via le filtre " +"et tous les autres sont abandonnés." #: ../Doc/howto/logging.rst:1001 msgid "Exceptions raised during logging" -msgstr "" +msgstr "Exceptions levées par la journalisation" #: ../Doc/howto/logging.rst:1003 msgid "" @@ -1262,6 +1833,12 @@ msgid "" "logging events - such as logging misconfiguration, network or other similar " "errors - do not cause the application using logging to terminate prematurely." msgstr "" +"Le paquet de journalisation est conçu pour ne pas faire apparaître les " +"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 " +"provoquent pas l'arrêt de l'application utilisant la journalisation." #: ../Doc/howto/logging.rst:1008 msgid "" @@ -1270,6 +1847,10 @@ msgid "" "method of a :class:`Handler` subclass are passed to its :meth:`~Handler." "handleError` method." msgstr "" +"Les exceptions :class:`SystemExit` et :class:`KeyboardInterrupt` ne sont " +"jamais passées sous silence. Les autres exceptions qui se produisent pendant " +"la méthode :meth:`~Handler.emit` d'une sous classe :class:`Handler` sont " +"passées à sa méthode :meth:`~Handler.handleError`." #: ../Doc/howto/logging.rst:1013 msgid "" @@ -1278,6 +1859,11 @@ msgid "" "is set. If set, a traceback is printed to :data:`sys.stderr`. If not set, " "the exception is swallowed." msgstr "" +"L'implémentation par défaut de :meth:`~Handler.handleError` dans la classe :" +"class:`Handler` vérifie si une variable au niveau du module, :data:" +"`raiseExceptions`, est définie. Si cette valeur est définie, la trace de la " +"pile d'appels est affichée sur :data:`sys.stderr`. Si elle n'est pas " +"définie, l'exception est passée sous silence." #: ../Doc/howto/logging.rst:1018 msgid "" @@ -1286,10 +1872,14 @@ msgid "" "occur. It's advised that you set :data:`raiseExceptions` to ``False`` for " "production usage." msgstr "" +"La valeur par défaut de :data:`raiseExceptions` est ``True``. C'est parce " +"que pendant le développement, vous voulez généralement être notifié de " +"toutes les exceptions qui se produisent. Il est conseillé de définir :data:" +"`raiseExceptions` à ``False`` pour une utilisation en production." #: ../Doc/howto/logging.rst:1028 msgid "Using arbitrary objects as messages" -msgstr "" +msgstr "Utilisation d'objets arbitraires comme messages" #: ../Doc/howto/logging.rst:1030 msgid "" @@ -1302,10 +1892,19 @@ msgid "" "`~handlers.SocketHandler` emits an event by pickling it and sending it over " "the wire." msgstr "" +"Dans les sections et exemples précédents, il a été supposé que le message " +"passé lors de la journalisation de l'événement est une chaîne. Cependant, ce " +"n'est pas la seule possibilité. Vous pouvez passer un objet arbitraire en " +"tant que message et sa méthode :meth:`~object.__str__` est appelée lorsque " +"le système de journalisation doit le convertir en une représentation sous " +"forme de chaîne. En fait, si vous le souhaitez, vous pouvez complètement " +"éviter de calculer une représentation sous forme de chaîne. Par exemple, les " +"gestionnaires :class:`~handlers.SocketHandler` émettent un événement en lui " +"appliquant *pickle* et en l'envoyant sur le réseau." #: ../Doc/howto/logging.rst:1041 msgid "Optimization" -msgstr "" +msgstr "Optimisation" #: ../Doc/howto/logging.rst:1043 msgid "" @@ -1317,12 +1916,23 @@ msgid "" "event would be created by the Logger for that level of call. You can write " "code like this::" msgstr "" +"La mise en forme des arguments de message est différée jusqu'à ce qu'elle ne " +"puisse pas être évitée. Toutefois, le calcul des arguments passés à la " +"méthode de journalisation peut également être coûteux et vous voudrez peut-" +"être éviter de le faire si l'enregistreur va simplement jeter votre " +"événement. Pour décider de ce qu'il faut faire, vous pouvez appeler la " +"méthode :meth:`~Logger.isEnabledFor` qui prend en argument le niveau et " +"renvoie ``True`` si un événement est créé par l'enregistreur pour ce niveau " +"d'appel. Vous pouvez écrire un code qui ressemble à ça ::" #: ../Doc/howto/logging.rst:1055 msgid "" "so that if the logger's threshold is set above ``DEBUG``, the calls to :func:" "`expensive_func1` and :func:`expensive_func2` are never made." msgstr "" +"de sorte que si le seuil du journaliseur est défini au-dessus de ``DEBUG``, " +"les appels à :func:`expensive_func1` et :func:`expensive_func2` ne sont " +"jamais faits." #: ../Doc/howto/logging.rst:1058 msgid "" @@ -1335,6 +1945,16 @@ msgid "" "need to be recomputed when the logging configuration changes dynamically " "while the application is running (which is not all that common)." msgstr "" +"Dans certains cas, :meth:`~Logger.isEnabledFor` peut être plus coûteux que " +"vous le souhaitez (par exemple pour les enregistreurs profondément imbriqués " +"où un niveau explicite n'est défini que dans la hiérarchie des " +"enregistreurs). Dans de tels cas (ou si vous souhaitez éviter d'appeler une " +"méthode dans des boucles optimisées), vous pouvez mettre en cache le " +"résultat d'un appel à :meth:`~Logger.isEnabledFor` dans une variable locale " +"ou d'instance, et l'utiliser au lieu d'appeler la méthode à chaque fois. Une " +"telle valeur mise en cache ne doit être recalculée que lorsque la " +"configuration de journalisation change dynamiquement pendant l'exécution de " +"l'application (ce qui est rarement le cas)." #: ../Doc/howto/logging.rst:1067 msgid "" @@ -1343,18 +1963,23 @@ msgid "" "Here's a list of things you can do to avoid processing during logging which " "you don't need:" msgstr "" +"Il existe d'autres optimisations qui peuvent être faites pour des " +"applications spécifiques qui nécessitent un contrôle plus précis sur les " +"informations de journalisation collectées. Voici une liste de choses que " +"vous pouvez faire pour éviter le traitement pendant la journalisation dont " +"vous n'avez pas besoin :" #: ../Doc/howto/logging.rst:1073 msgid "What you don't want to collect" -msgstr "" +msgstr "Ce que vous ne voulez pas collecter" #: ../Doc/howto/logging.rst:1073 msgid "How to avoid collecting it" -msgstr "" +msgstr "Comment éviter de le collecter" #: ../Doc/howto/logging.rst:1075 msgid "Information about where calls were made from." -msgstr "" +msgstr "Informations sur l'endroit où les appels ont été faits." #: ../Doc/howto/logging.rst:1075 msgid "" @@ -1363,22 +1988,26 @@ msgid "" "(which can't speed up code that uses :func:`sys._getframe`), if and when " "PyPy supports Python 3.x." msgstr "" +"Définissez ``logging._srcfile`` à ``None``. Cela évite d'appeler :func:`sys." +"_getframe`, qui peut aider à accélérer votre code dans des environnements " +"comme PyPy (qui ne peut pas accélérer le code qui utilise :func:`sys." +"_getframe`), si et quand PyPy prendra en charge Python 3.x." #: ../Doc/howto/logging.rst:1083 msgid "Threading information." -msgstr "" +msgstr "Informations de *threading*." #: ../Doc/howto/logging.rst:1083 msgid "Set ``logging.logThreads`` to ``0``." -msgstr "" +msgstr "Mettez ``logging.logThreads`` à ``0``." #: ../Doc/howto/logging.rst:1085 msgid "Process information." -msgstr "" +msgstr "Informations sur le processus." #: ../Doc/howto/logging.rst:1085 msgid "Set ``logging.logProcesses`` to ``0``." -msgstr "" +msgstr "Mettez ``logging.logProcesses`` à ``0``." #: ../Doc/howto/logging.rst:1088 msgid "" @@ -1386,31 +2015,34 @@ msgid "" "you don't import :mod:`logging.handlers` and :mod:`logging.config`, they " "won't take up any memory." msgstr "" +"Notez également que le module de journalisation principale inclut uniquement " +"les gestionnaires de base. Si vous n'importez pas :mod:`logging.handlers` " +"et :mod:`logging.config`, ils ne prendront pas de mémoire." #: ../Doc/howto/logging.rst:1095 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Module :mod:`logging`" #: ../Doc/howto/logging.rst:1095 msgid "API reference for the logging module." -msgstr "" +msgstr "Référence d'API pour le module de journalisation." #: ../Doc/howto/logging.rst:1098 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Module :mod:`logging.config`" #: ../Doc/howto/logging.rst:1098 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuration pour le module de journalisation." #: ../Doc/howto/logging.rst:1101 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Module :mod:`logging.handlers`" #: ../Doc/howto/logging.rst:1101 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestionnaires utiles inclus avec le module de journalisation." #: ../Doc/howto/logging.rst:1103 msgid ":ref:`A logging cookbook `" -msgstr "" +msgstr ":ref:`A logging cookbook `" diff --git a/howto/pyporting.po b/howto/pyporting.po index 257859454..9a6a8ab43 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\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" +"PO-Revision-Date: 2019-09-05 10:42+0200\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/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" -msgstr "" +msgstr "Portage de code Python 2 vers Python 3" #: ../Doc/howto/pyporting.rst:0 msgid "author" @@ -24,7 +25,7 @@ msgstr "auteur" #: ../Doc/howto/pyporting.rst:7 msgid "Brett Cannon" -msgstr "" +msgstr "Brett Cannon" #: ../Doc/howto/pyporting.rst:None msgid "Abstract" @@ -37,12 +38,18 @@ msgid "" "Python. This guide is meant to help you figure out how best to support both " "Python 2 & 3 simultaneously." msgstr "" +"Python 3 étant le futur de Python tandis que Python 2 est encore activement " +"utilisé, il est préférable de faire en sorte que votre projet soit " +"disponible pour les deux versions majeures de Python. Ce guide est destiné à " +"vous aider à comprendre comment gérer simultanément Python 2 & 3." #: ../Doc/howto/pyporting.rst:16 msgid "" "If you are looking to port an extension module instead of pure Python code, " "please see :ref:`cporting-howto`." msgstr "" +"Si vous cherchez à porter un module d'extension plutôt que du pur Python, " +"veuillez consulter :ref:`cporting-howto`." #: ../Doc/howto/pyporting.rst:19 msgid "" @@ -50,54 +57,70 @@ msgid "" "came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett " "Cannon's `Why Python 3 exists`_." msgstr "" +"Si vous souhaitez lire l'avis d'un développeur principal de Python sur ce " +"qui a motivé la création de Python 3, vous pouvez lire le `Python 3 Q & A`_ " +"de Nick Coghlan ou bien `Why Python 3 exists`_ de Brett Cannon." #: ../Doc/howto/pyporting.rst:23 msgid "" "For help with porting, you can email the python-porting_ mailing list with " "questions." msgstr "" +"Vous pouvez solliciter par courriel l'aide de la liste de diffusion python-" +"porting_ pour vos questions liées au portage." #: ../Doc/howto/pyporting.rst:27 msgid "The Short Explanation" -msgstr "" +msgstr "La version courte" #: ../Doc/howto/pyporting.rst:29 msgid "" "To make your project be single-source Python 2/3 compatible, the basic steps " "are:" msgstr "" +"Afin de rendre votre projet compatible Python 2/3 avec le même code source, " +"les étapes de base sont :" #: ../Doc/howto/pyporting.rst:32 msgid "Only worry about supporting Python 2.7" -msgstr "" +msgstr "Ne se préoccuper que du support de Python 2.7" #: ../Doc/howto/pyporting.rst:33 msgid "" "Make sure you have good test coverage (coverage.py_ can help; ``pip install " "coverage``)" msgstr "" +"S'assurer d'une bonne couverture des tests (coverage.py_ peut aider ; ``pip " +"install coverage``)" #: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:116 msgid "Learn the differences between Python 2 & 3" -msgstr "" +msgstr "Apprendre les différences entre Python 2 et 3" #: ../Doc/howto/pyporting.rst:36 msgid "" "Use Futurize_ (or Modernize_) to update your code (e.g. ``pip install " "future``)" msgstr "" +"Utiliser Futurize_ (ou Modernize_) pour mettre à jour votre code (par " +"exemple ``pip install future``)" #: ../Doc/howto/pyporting.rst:37 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``)" #: ../Doc/howto/pyporting.rst:41 msgid "" @@ -105,6 +128,10 @@ msgid "" "integration to make sure you stay compatible with Python 2 & 3 (tox_ can " "help test against multiple versions of Python; ``pip install tox``)" msgstr "" +"Une fois que vos dépendances ne sont plus un obstacle, utiliser " +"l'intégration continue pour s'assurer que votre code demeure compatible " +"Python 2 & 3 (tox_ peut aider à tester la comptabilité de sources avec " +"plusieurs versions de Python; ``pip install tox``)" #: ../Doc/howto/pyporting.rst:44 msgid "" @@ -112,10 +139,13 @@ msgid "" "works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both " "Python 2 & Python 3)." msgstr "" +"Envisager l'utilisation d'un vérifieur de type statique afin de vous assurer " +"que votre façon d'utiliser les types est compatible avec Python 2 et 3 (par " +"exemple en utilisant mypy_ pour vérifier votre typage sous Python 2 et 3)." #: ../Doc/howto/pyporting.rst:50 msgid "Details" -msgstr "" +msgstr "Détails" #: ../Doc/howto/pyporting.rst:52 msgid "" @@ -125,6 +155,12 @@ msgid "" "3. Most changes required to support Python 3 lead to cleaner code using " "newer practices even in Python 2 code." msgstr "" +"Un point clé du support simultané de Python 2 et 3 est qu'il vous est " +"possible de commencer **dès aujourd'hui** ! Même si vos dépendances ne sont " +"pas encore compatibles Python 3, vous pouvez moderniser votre code **dès " +"maintenant** pour gérer Python 3. La plupart des modifications nécessaires à " +"la compatibilité Python 3 donnent un code plus propre utilisant une syntaxe " +"plus récente, même dans du code Python 2." #: ../Doc/howto/pyporting.rst:58 msgid "" @@ -134,16 +170,25 @@ msgid "" "lower-level work is now mostly done for you and thus can at least benefit " "from the automated changes immediately." msgstr "" +"Un autre point important est que la modernisation de votre code Python 2 " +"pour le rendre compatible Python 3 est pratiquement automatique. Bien qu'il " +"soit possible d'avoir à effectuer des changements d'API compte-tenu de la " +"clarification de la gestion des données textuelles et binaires dans Python " +"3, le travail de bas niveau est en grande partie fait pour vous et vous " +"pouvez ainsi bénéficiez de ces modifications automatiques immédiatement." #: ../Doc/howto/pyporting.rst:64 msgid "" "Keep those key points in mind while you read on about the details of porting " "your code to support Python 2 & 3 simultaneously." msgstr "" +"Gardez ces points-clés en tête pendant que vous lisez les détails ci-dessous " +"concernant le portage de votre code vers une compatibilité simultanée Python " +"2 et 3." #: ../Doc/howto/pyporting.rst:69 msgid "Drop support for Python 2.6 and older" -msgstr "" +msgstr "Abandon de la compatibilité Python 2.6 et antérieures" #: ../Doc/howto/pyporting.rst:71 msgid "" @@ -153,6 +198,12 @@ msgid "" "simultaneously (``pip install six``). Do realize, though, that nearly all " "the projects listed in this HOWTO will not be available to you." msgstr "" +"Bien qu'il soit possible de rendre Python 2.5 compatible avec Python 3, il " +"est **beaucoup** plus simple de n'avoir qu'à travailler avec Python 2.7. Si " +"abandonner Python 2.5 n'est pas une option, alors le projet six_ peut vous " +"aider à gérer simultanément Python 2.5 et 3 (``pip install six``). " +"Néanmoins, soyez conscient que la quasi-totalité des projets listés dans ce " +"guide pratique ne seront pas applicables à votre situation." #: ../Doc/howto/pyporting.rst:77 msgid "" @@ -162,6 +213,12 @@ msgid "" "or have to import a function instead of using a built-in one, but otherwise " "the overall transformation should not feel foreign to you." msgstr "" +"Si vous pouvez ignorer Python 2.5 et antérieur, les changements nécessaires " +"à appliquer à votre code devraient encore ressembler à vos yeux à du code " +"Python idiomatique. Dans le pire cas, vous devrez utiliser une fonction " +"plutôt qu'une méthode dans certains cas, ou bien vous devrez importer une " +"fonction plutôt qu'utiliser une fonction native, mais le reste du temps le " +"code transformé devrait vous rester familier." #: ../Doc/howto/pyporting.rst:83 msgid "" @@ -173,11 +230,22 @@ msgid "" "simply be easier for you if you only support the versions of Python that you " "have to support." msgstr "" +"Mais nous vous conseillons de viser seulement un support de Python 2.7. " +"Python 2.6 n'est plus supporté gratuitement et par conséquent ne reçoit plus " +"aucun correctif. Cela signifie que **vous** devrez trouver des solutions de " +"contournement aux problèmes que vous rencontrez avec Python 2.6. Il existe " +"en outre des outils mentionnés dans ce guide pratique qui ne supportent pas " +"Python 2.6 (par exemple Pylint_), ce qui sera de plus en plus courant au fil " +"du temps. Il est simplement plus facile pour vous de n'assurer une " +"compatibilité qu'avec les versions de Python que vous avez l'obligation de " +"gérer." #: ../Doc/howto/pyporting.rst:92 msgid "" "Make sure you specify the proper version support in your ``setup.py`` file" msgstr "" +"Assurez vous de spécifier la bonne version supportée dans le fichier ``setup." +"py``" #: ../Doc/howto/pyporting.rst:94 msgid "" @@ -188,10 +256,16 @@ msgid "" "minor version of Python that you do support, e.g. ``Programming Language :: " "Python :: 2.7``." msgstr "" +"Votre fichier ``setup.py`` devrait contenir le bon `trove classifier`_ " +"spécifiant les versions de Python avec lesquelles vous êtes compatible. " +"Comme votre projet ne supporte pas encore Python 3, vous devriez au moins " +"spécifier ``Programming Language :: Python :: 2 :: Only``. Dans l'idéal vous " +"devriez indiquer chaque version majeure/mineure de Python que vous gérez, " +"par exemple ``Programming Language :: Python :: 2.7``." #: ../Doc/howto/pyporting.rst:103 msgid "Have good test coverage" -msgstr "" +msgstr "Obtenir une bonne couverture de code" #: ../Doc/howto/pyporting.rst:105 msgid "" @@ -204,6 +278,16 @@ msgid "" "get better than 90% coverage). If you don't already have a tool to measure " "test coverage then coverage.py_ is recommended." msgstr "" +"Une fois que votre code est compatible avec la plus ancienne version de " +"Python 2 que vous souhaitez, vous devez vous assurer que votre suite de test " +"a une couverture suffisante. Une bonne règle empirique consiste à avoir " +"suffisamment confiance en la suite de test pour qu'une erreur apparaissant " +"après la réécriture du code par les outils automatiques résulte de bogues de " +"ces derniers et non de votre code. Si vous souhaitez une valeur cible, " +"essayez de dépasser les 80 % de couverture (et ne vous sentez pas coupable " +"si vous trouvez difficile de faire mieux que 90 % de couverture). Si vous ne " +"disposez pas encore d'un outil pour mesurer la couverture de code, coverage." +"py_ est recommandé." #: ../Doc/howto/pyporting.rst:118 msgid "" @@ -215,10 +299,18 @@ msgid "" "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." #: ../Doc/howto/pyporting.rst:128 msgid "Update your code" -msgstr "" +msgstr "Mettre à jour votre code" #: ../Doc/howto/pyporting.rst:130 msgid "" @@ -234,6 +326,20 @@ msgid "" "future, it might be best to consider Futurize to begin adjusting to any new " "practices that Python 3 introduces which you are not accustomed to yet." msgstr "" +"Une fois que vous pensez en savoir suffisamment sur les différences entre " +"Python 3 et Python 2, il est temps de mettre à jour votre code ! Vous avez " +"le choix entre deux outils pour porter votre code automatiquement : " +"Futurize_ et Modernize_. Le choix de l'outil dépend de la dose de Python 3 " +"que vous souhaitez introduire dans votre code. Futurize_ s'efforce " +"d'introduire les idiomes et pratiques de Python 3 dans Python 2, par exemple " +"en réintroduisant le type ``bytes`` de Python 3 de telle sorte que la " +"sémantique soit identique entre les deux versions majeures de Python. En " +"revanche, Modernize_ est plus conservateur et vise un sous-ensemble " +"d'instructions Python 2/3, en s'appuyant directement sur six_ pour la " +"compatibilité. Python 3 étant le futur de Python, il pourrait être " +"préférable d'utiliser *Futurize* afin de commencer à s'ajuster aux nouvelles " +"pratiques introduites par Python 3 avec lesquelles vous n'êtes pas encore " +"habitué." #: ../Doc/howto/pyporting.rst:142 msgid "" @@ -246,6 +352,16 @@ msgid "" "transform your application code knowing that any tests which fail is a " "translation failure." msgstr "" +"Indépendamment de l'outil sur lequel se porte votre choix, celui-ci mettra à " +"jour votre code afin qu'il puisse être exécuté par Python 3 tout en " +"maintenant sa compatibilité avec la version de Python 2 dont vous êtes " +"parti. En fonction du niveau de prudence que vous visez, vous pouvez " +"exécuter l'outil sur votre suite de test d'abord puis inspecter visuellement " +"la différence afin de vous assurer que la transformation est exacte. Après " +"avoir transformé votre suite de test et vérifié que tous les tests " +"s'exécutent comme attendu, vous pouvez transformer le code de votre " +"application avec l'assurance que chaque test qui échoue correspond à un " +"échec de traduction." #: ../Doc/howto/pyporting.rst:150 msgid "" @@ -260,10 +376,22 @@ msgid "" "watch out for which can be considered large issues that may be hard to debug " "if not watched for." msgstr "" +"Malheureusement les outils ne peuvent pas automatiser tous les changements " +"requis pour permettre à votre code de s'exécuter sous Python 3 et il y a " +"donc quelques points sur lesquels vous devrez travailler manuellement afin " +"d'atteindre la compatibilité totale Python 3 (les étapes nécessaires peuvent " +"varier en fonction de l'outil utilisé). Lisez la documentation de l'outil " +"que vous avez choisi afin d'identifier ce qu'il corrige par défaut et ce qui " +"peut être appliqué de façon optionnelle afin de savoir ce qui sera (ou non) " +"corrigé pour vous ou ce que vous devrez modifier vous-même (par exemple, le " +"remplacement ``io.open()`` plutôt que la fonction native ``open()`` est " +"inactif par défaut dans *Modernize*). Heureusement, il n'y a que quelques " +"points à surveiller qui peuvent réellement être considérés comme des " +"problèmes difficiles à déboguer si vous n'y prêtez pas attention." #: ../Doc/howto/pyporting.rst:162 msgid "Division" -msgstr "" +msgstr "Division" #: ../Doc/howto/pyporting.rst:164 msgid "" @@ -275,16 +403,27 @@ msgid "" "Q`` flag. If you have not been doing this then you will need to go through " "your code and do two things:" msgstr "" +"Dans Python 3, ``5 / 2 == 2.5`` et non ``2``; toutes les divisions entre des " +"valeurs ``int`` renvoient un ``float``. Ce changement était en réalité " +"planifié depuis Python 2.2, publié en 2002. Depuis cette date, les " +"utilisateurs ont été encouragés à ajouter ``from __future__ import " +"division`` à tous les fichiers utilisant les opérateurs ``/`` et ``//`` ou à " +"exécuter l'interpréteur avec l'option ``-Q``. Si vous n'avez pas suivi cette " +"recommandation, vous devrez manuellement modifier votre code et effectuer " +"deux changements :" #: ../Doc/howto/pyporting.rst:172 msgid "Add ``from __future__ import division`` to your files" -msgstr "" +msgstr "Ajouter ``from __future__ import division`` à vos fichiers" #: ../Doc/howto/pyporting.rst:173 msgid "" "Update any division operator as necessary to either use ``//`` to use floor " "division or continue using ``/`` and expect a float" msgstr "" +"Remplacer tous les opérateurs de division par ``//`` pour la division " +"entière, le cas échant, ou utiliser ``/`` et vous attendre à un résultat " +"flottant" #: ../Doc/howto/pyporting.rst:176 msgid "" @@ -293,10 +432,16 @@ msgid "" "then your code would begin to fail (e.g. a user-defined class that uses ``/" "`` to signify some operation but not ``//`` for the same thing or at all)." msgstr "" +"La raison pour laquelle ``/`` n'est pas simplement remplacé par ``//`` " +"automatiquement est que si un objet définit une méthode ``__truediv__`` mais " +"pas de méthode ``__floordiv__``, alors votre code pourrait produire une " +"erreur (par exemple, une classe définie par l'utilisateur qui utilise ``/`` " +"pour définir une opération quelconque mais pour laquelle ``//`` n'a pas du " +"tout la même signification, voire n'est pas utilisé du tout)." #: ../Doc/howto/pyporting.rst:183 msgid "Text versus binary data" -msgstr "" +msgstr "Texte et données binaires" #: ../Doc/howto/pyporting.rst:185 msgid "" @@ -309,6 +454,16 @@ msgid "" "supporting multiple languages as APIs wouldn't bother explicitly supporting " "``unicode`` when they claimed text data support." msgstr "" +"Dans Python 2, il était possible d'utiliser le type ``str`` pour du texte et " +"pour des données binaires. Malheureusement cet amalgame entre deux concepts " +"différents peut conduire à du code fragile pouvant parfois fonctionner pour " +"les deux types de données et parfois non. Cela a également conduit à des API " +"confuses si les auteurs ne déclaraient pas explicitement que quelque chose " +"qui acceptait ``str`` était compatible avec du texte ou des données binaires " +"et pas un seul des deux types. Cela a compliqué la situation pour les " +"personnes devant gérer plusieurs langages avec des API qui ne se " +"préoccupaient pas de la gestion de ``unicode`` lorsqu'elles affirmaient être " +"compatibles avec des données au format texte." #: ../Doc/howto/pyporting.rst:194 msgid "" @@ -321,6 +476,15 @@ msgid "" "it does mean you might have to now care about when you are using text " "compared to binary data, which is why this cannot be entirely automated." msgstr "" +"Afin de rendre la distinction entre texte et données binaires claire et " +"prononcée, Python 3 a suivi la voie pavée par la plupart des langages créés " +"à l'ère d'Internet et a séparé les types texte et données binaires de telle " +"sorte qu'il ne soit plus possible de les confondre (Python est antérieur à " +"la démocratisation de l'accès à Internet). Cette séparation ne pose pas de " +"problème pour du code ne gérant soit que du texte, soit que des données " +"binaires. Cependant un code source devant gérer les deux doit désormais se " +"préoccuper du type des données manipulées, ce qui explique que ce processus " +"ne peut pas être entièrement automatisé." #: ../Doc/howto/pyporting.rst:203 msgid "" @@ -341,38 +505,57 @@ msgid "" "Python 3 doesn't have the method). Do note that as of Python 3.5 the " "``__mod__`` method was added to the bytes type." msgstr "" +"Pour commencer, vous devrez choisir quelles API travaillent sur du texte et " +"lesquelles travaillent avec des données binaires (il est **fortement** " +"recommandé de ne pas concevoir d'API qui gèrent les deux types compte-tenu " +"de la difficulté supplémentaire que cela induit). Dans Python 2, cela " +"signifie s'assurer que les API recevant du texte en entrée peuvent gérer " +"``unicode`` et celles qui reçoivent des données binaires fonctionnent avec " +"le type ``bytes`` de Python 3 (qui est un sous-ensemble de ``str`` dans " +"Python 2 et opère comme un alias du type ``bytes`` de Python 2). En général, " +"le principal problème consiste à inventorier quelles méthodes existent et " +"opèrent sur quel type dans Python & 3 simultanément (pour le texte, il " +"s'agit de ``unicode`` dans Python 2 et ``str`` dans Python 3, pour le " +"binaire il s'agit de ``str``/``bytes`` dans Python 2 et ``bytes`` dans " +"Python 3). Le tableau ci-dessous liste les méthodes **spécifiques** à chaque " +"type de données dans Python 2 et 3 (par exemple, la méthode ``decode()`` " +"peut être utilisée sur des données binaires équivalentes en Python 2 et 3, " +"mais ne peut pas être utilisée de la même façon sur le type texte en Python " +"2 et 3 car le type ``str`` de Python 3 ne possède pas de telle méthode). " +"Notez que depuis Python 3.5, la méthode ``__mod__`` a été ajoutée au type " +"*bytes*." #: ../Doc/howto/pyporting.rst:220 msgid "**Text data**" -msgstr "" +msgstr "**Format texte**" #: ../Doc/howto/pyporting.rst:220 msgid "**Binary data**" -msgstr "" +msgstr "**Format binaire**" #: ../Doc/howto/pyporting.rst:222 msgid "\\" -msgstr "" +msgstr "\\" #: ../Doc/howto/pyporting.rst:222 msgid "decode" -msgstr "" +msgstr "decode" #: ../Doc/howto/pyporting.rst:224 msgid "encode" -msgstr "" +msgstr "encode" #: ../Doc/howto/pyporting.rst:226 msgid "format" -msgstr "" +msgstr "format" #: ../Doc/howto/pyporting.rst:228 msgid "isdecimal" -msgstr "" +msgstr "isdecimal" #: ../Doc/howto/pyporting.rst:230 msgid "isnumeric" -msgstr "" +msgstr "isnumeric" #: ../Doc/howto/pyporting.rst:233 msgid "" @@ -383,6 +566,14 @@ msgid "" "possible. This allows your code to work with only text internally and thus " "eliminates having to keep track of what type of data you are working with." msgstr "" +"Vous pouvez rendre le problème plus simple à gérer en réalisant les " +"opérations d'encodage et de décodage entre données binaires et texte aux " +"extrémités de votre code. Cela signifie que lorsque vous recevez du texte " +"dans un format binaire, vous devez immédiatement le décoder. À l'inverse si " +"votre code doit transmettre du texte sous forme binaire, encodez-le le plus " +"tard possible. Cela vous permet de ne manipuler que du texte à l'intérieur " +"de votre code et permet de ne pas se préoccuper du type des données sur " +"lesquelles vous travaillez." #: ../Doc/howto/pyporting.rst:240 msgid "" @@ -393,6 +584,14 @@ msgid "" "unspecified literals to be Unicode, but usage has shown it isn't as " "effective as adding a ``b`` or ``u`` prefix to all literals explicitly)" msgstr "" +"Le point suivant est de s'assurer que vous savez quelles chaînes de " +"caractères littérales de votre code correspondent à du texte ou à du " +"binaire. Vous devez préfixer par ``b`` tous les littéraux qui représentent " +"des données binaires et par ``u`` les littéraux qui représentent du texte " +"(il existe une importation du module :mod:`__future__` permettant de forcer " +"l'encodage de toutes les chaînes de caractères littérales non spécifiées en " +"Unicode, mais cette pratique s'est avérée moins efficace que l'ajout " +"explicite des préfixe ``b`` et ``u``)." #: ../Doc/howto/pyporting.rst:247 msgid "" @@ -411,6 +610,22 @@ msgid "" "`codecs.open` as that's only necessary for keeping compatibility with Python " "2.5." msgstr "" +"Une conséquence de cette dichotomie est que vous devez être prudents lors de " +"l'ouverture d'un fichier. À moins que vous travailliez sous Windows, il y a " +"des chances pour que vous ne vous soyez jamais préoccupé de spécifier le " +"mode ``b`` lorsque vous ouvrez des fichiers binaires (par exemple ``rb`` " +"pour lire un fichier binaire). Sous Python 3, les fichiers binaire et texte " +"sont distincts et mutuellement incompatibles ; se référer au module :mod:" +"`io` pour plus de détails. Ainsi vous **devez** décider lorsque vous ouvrez " +"un fichier si vous y accéderez en mode binaire (ce qui permet de lire et " +"écrire des données binaires) ou en mode texte (ce qui permet de lire et " +"écrire du texte). Vous devez également utiliser :func:`io.open` pour ouvrir " +"des fichiers plutôt que la fonction native :func:`open` étant donné que le " +"module :mod:`io` est cohérent de Python 2 à 3, ce qui n'est pas vrai pour la " +"fonction :func:`open` (en Python 3, il s'agit en réalité de :func:`io." +"open`). Ne cherchez pas à appliquer l'ancienne pratique consistant à " +"utiliser :func:`codecs.open` qui n'est nécessaire que pour préserver une " +"compatibilité avec Python 2.5." #: ../Doc/howto/pyporting.rst:261 msgid "" @@ -424,6 +639,16 @@ msgid "" "back: ``str(b'3') == b'3'``. But in Python 3 you get the string " "representation of the bytes object: ``str(b'3') == \"b'3'\"``." msgstr "" +"Les constructeurs des types ``str`` et ``bytes`` possèdent une sémantique " +"différente pour les mêmes arguments sous Python 2 et 3. Passer un entier à " +"``bytes`` sous Python 2 produit une représentation de cet entier en chaîne " +"de caractères : ``bytes(3) == '3'``. Mais sous Python 3, fournir un argument " +"entier à ``bytes`` produit un objet *bytes* de la longueur de l'entier " +"spécifié, rempli par des octets nuls : ``bytes(3) == b'\\x00\\x00\\x00'``. " +"La même prudence est nécessaire lorsque vous passez un objet *bytes* à " +"``str``. En Python 2, vous récupérez simplement l'objet *bytes* initial : " +"``str(b'3') == b'3'``. Mais en Python 3, vous récupérez la représentation en " +"chaîne de caractères de l'objet *bytes* : ``str(b'3') == \"b'3'\"``." #: ../Doc/howto/pyporting.rst:271 msgid "" @@ -436,14 +661,25 @@ msgid "" "``six.indexbytes()`` which will return an integer like in Python 3: ``six." "indexbytes(b'123', 1)``." msgstr "" +"Enfin, l'indiçage des données binaires exige une manipulation prudente (bien " +"que le découpage, ou *slicing* en anglais, ne nécessite pas d'attention " +"particulière). En Python 2, ``b'123'[1] == b'2'`` tandis qu'en Python 3 " +"``b'123'[1] == 50``. Puisque les données binaires ne sont simplement qu'une " +"collection de nombres en binaire, Python 3 renvoie la valeur entière de " +"l'octet indicé. Mais en Python 2, étant donné que ``bytes == str``, " +"l'indiçage renvoie une tranche de longueur 1 de *bytes*. Le projet six_ " +"dispose d'une fonction appelée ``six.indexbytes()`` qui renvoie un entier " +"comme en Python 3 : ``six.indexbytes(b'123', 1)``." #: ../Doc/howto/pyporting.rst:280 msgid "To summarize:" -msgstr "" +msgstr "Pour résumer :" #: ../Doc/howto/pyporting.rst:282 msgid "Decide which of your APIs take text and which take binary data" msgstr "" +"Décidez lesquelles de vos API travaillent sur du texte et lesquelles " +"travaillent sur des données binaires" #: ../Doc/howto/pyporting.rst:283 msgid "" @@ -451,32 +687,43 @@ msgid "" "and code for binary data works with ``bytes`` in Python 2 (see the table " "above for what methods you cannot use for each type)" msgstr "" +"Assurez vous que votre code travaillant sur du texte fonctionne aussi avec " +"le type ``unicode`` et que le code travaillant sur du binaire fonctionne " +"avec le type ``bytes`` en Python 2 (voir le tableau ci-dessus pour la liste " +"des méthodes utilisables par chaque type)" #: ../Doc/howto/pyporting.rst:286 msgid "" "Mark all binary literals with a ``b`` prefix, textual literals with a ``u`` " "prefix" msgstr "" +"Préfixez tous vos littéraux binaires par ``b`` et toutes vos chaînes de " +"caractères littérales par ``u``" #: ../Doc/howto/pyporting.rst:288 msgid "" "Decode binary data to text as soon as possible, encode text as binary data " "as late as possible" msgstr "" +"Décodez les données binaires en texte dès que possible, encodez votre texte " +"au format binaire le plus tard possible" #: ../Doc/howto/pyporting.rst:290 msgid "" "Open files using :func:`io.open` and make sure to specify the ``b`` mode " "when appropriate" msgstr "" +"Ouvrez les fichiers avec la fonction :func:`io.open` et assurez-vous de " +"spécifier le mode ``b`` le cas échéant" #: ../Doc/howto/pyporting.rst:292 msgid "Be careful when indexing into binary data" -msgstr "" +msgstr "Utilisez avec prudence l'indiçage sur des données binaires" #: ../Doc/howto/pyporting.rst:296 msgid "Use feature detection instead of version detection" msgstr "" +"Utilisez la détection de fonctionnalités plutôt que la détection de version" #: ../Doc/howto/pyporting.rst:298 msgid "" @@ -487,6 +734,13 @@ msgid "" "version check be against Python 2 and not Python 3. To help explain this, " "let's look at an example." msgstr "" +"Vous rencontrerez inévitablement du code devant décider quoi faire en " +"fonction de la version de Python qui s'exécute. La meilleure façon de gérer " +"ce cas est de détecter si les fonctionnalités dont vous avez besoin sont " +"gérées par la version de Python sous laquelle le code s'exécute. Si pour " +"certaines raisons cela ne fonctionne pas, alors vous devez tester si votre " +"version est Python 2 et non Python 3. Afin de clarifier cette pratique, " +"voici un exemple." #: ../Doc/howto/pyporting.rst:305 msgid "" @@ -495,6 +749,11 @@ msgid "" "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::" 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 : ::" #: ../Doc/howto/pyporting.rst:317 msgid "" @@ -503,6 +762,10 @@ msgid "" "assume that future Python versions will be more compatible with Python 3 " "than Python 2::" 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 ::" #: ../Doc/howto/pyporting.rst:329 msgid "" @@ -510,10 +773,14 @@ msgid "" "rely on feature detection. That avoids any potential issues of getting the " "version detection wrong and helps keep you future-compatible::" 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 ::" #: ../Doc/howto/pyporting.rst:340 msgid "Prevent compatibility regressions" -msgstr "" +msgstr "Prévenir les régressions de compatibilité" #: ../Doc/howto/pyporting.rst:342 msgid "" @@ -522,12 +789,19 @@ msgid "" "Python 3. This is especially true if you have a dependency which is blocking " "you from actually running under Python 3 at the moment." msgstr "" +"Une fois votre code traduit pour être compatible avec Python 3, vous devez " +"vous assurer que votre code n'a pas régressé ou qu'il ne fonctionne pas sous " +"Python 3. Ceci est particulièrement important si une de vos dépendances vous " +"empêche de réellement exécuter le code sous Python 3 pour le moment." #: ../Doc/howto/pyporting.rst:347 msgid "" "To help with staying compatible, any new modules you create should have at " "least the following block of code at the top of it::" 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 ::" #: ../Doc/howto/pyporting.rst:354 msgid "" @@ -536,6 +810,11 @@ msgid "" "warnings into errors with ``-Werror`` then you can make sure that you don't " "accidentally miss a warning." msgstr "" +"Vous pouvez également lancer Python 2 avec le paramètre ``-3`` afin d'être " +"alerté en cas de divers problèmes de compatibilité que votre code déclenche " +"durant son exécution. Si vous transformez les avertissements en erreur avec " +"``-Werror``, vous pouvez être certain que ne passez pas accidentellement à " +"côté d'un avertissement." #: ../Doc/howto/pyporting.rst:359 msgid "" @@ -546,10 +825,17 @@ msgid "" "does require you only support Python 2.7 and Python 3.4 or newer as that is " "Pylint's minimum Python version support." msgstr "" +"Vous pouvez également utiliser le projet Pylint_ et son option ``--py3k`` " +"afin de modifier votre code pour recevoir des avertissements lorsque celui-" +"ci dévie de la compatibilité Python 3. Cela vous évite par ailleurs " +"d'appliquer Modernize_ ou Futurize_ sur votre code régulièrement pour " +"détecter des régressions liées à la compatibilité. Cependant cela nécessite " +"de votre part le support de Python 2.7 et Python 3.4 ou ultérieur étant " +"donné qu'il s'agit de la version minimale gérée par Pylint." #: ../Doc/howto/pyporting.rst:368 msgid "Check which dependencies block your transition" -msgstr "" +msgstr "Vérifier quelles dépendances empêchent la migration" #: ../Doc/howto/pyporting.rst:370 msgid "" @@ -560,6 +846,12 @@ msgid "" "is both a command-line tool as well as a web interface at https://" "caniusepython3.com." 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 " +"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." #: ../Doc/howto/pyporting.rst:377 msgid "" @@ -569,10 +861,17 @@ msgid "" "manually check your dependencies and to be notified quickly when you can " "start running on Python 3." msgstr "" +"Le projet fournit également du code intégrable dans votre suite de test qui " +"déclenchera un échec de test lorsque plus aucune de vos dépendances n'est " +"bloquante pour l'utilisation de Python 3. Cela vous permet de ne pas avoir à " +"vérifier manuellement vos dépendances et d'être notifié rapidement quand " +"vous pouvez exécuter votre application avec Python 3." #: ../Doc/howto/pyporting.rst:384 msgid "Update your ``setup.py`` file to denote Python 3 compatibility" msgstr "" +"Mettre à jour votre fichier ``setup.py`` pour spécifier la compatibilité " +"avec Python 3" #: ../Doc/howto/pyporting.rst:386 msgid "" @@ -582,10 +881,16 @@ msgid "" "that you support Python 2 **and** 3. Ideally you will also want to add " "classifiers for each major/minor version of Python you now support." msgstr "" +"Une fois que votre code fonctionne sous Python 3, vous devez mettre à jour " +"vos classeurs dans votre ``setup.py`` pour inclure ``Programming Language :: " +"Python :: 3`` et non seulement le support de Python 2. Cela signifiera à " +"quiconque utilise votre code que vous gérez Python 2 **et** 3. Dans l'idéal " +"vous devrez aussi ajouter une mention pour chaque version majeure/mineure de " +"Python que vous supportez désormais." #: ../Doc/howto/pyporting.rst:394 msgid "Use continuous integration to stay compatible" -msgstr "" +msgstr "Utiliser l'intégration continue pour maintenir la compatibilité" #: ../Doc/howto/pyporting.rst:396 msgid "" @@ -595,6 +900,12 @@ msgid "" "integrate tox with your continuous integration system so that you never " "accidentally break Python 2 or 3 support." msgstr "" +"Une fois que vous êtes en mesure d'exécuter votre code sous Python 3, vous " +"devrez vous assurer que celui-ci fonctionne toujours pour Python 2 & 3. tox_ " +"est vraisemblablement le meilleur outil pour exécuter vos tests avec " +"plusieurs interpréteurs Python. Vous pouvez alors intégrer *tox* à votre " +"système d'intégration continue afin de ne jamais accidentellement casser " +"votre gestion de Python 2 ou 3." #: ../Doc/howto/pyporting.rst:402 msgid "" @@ -607,6 +918,15 @@ msgid "" "these kinds of comparisons occur, making the mistake much easier to track " "down." msgstr "" +"Vous pouvez également utiliser l'option ``-bb`` de l'interpréteur Python 3 " +"afin de déclencher une exception lorsque vous comparez des *bytes* à des " +"chaînes de caractères ou à un entier (cette deuxième possibilité est " +"disponible à partir de Python 3.5). Par défaut, des comparaisons entre types " +"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 son " +"identification et sa localisation." #: ../Doc/howto/pyporting.rst:410 msgid "" @@ -615,10 +935,15 @@ msgid "" "don't accidentally break Python 2 or 3 compatibility regardless of which " "version you typically run your tests under while developing." msgstr "" +"Et c'est à peu près tout ! Une fois ceci fait, votre code source est " +"compatible avec Python 2 et 3 simultanément. Votre suite de test est " +"également en place de telle sorte que vous ne cassiez pas la compatibilité " +"Python 2 ou 3 indépendamment de la version que vous utilisez pendant le " +"développement." #: ../Doc/howto/pyporting.rst:417 msgid "Consider using optional static type checking" -msgstr "" +msgstr "Envisager l'utilisation d'un vérificateur de type statique optionnel" #: ../Doc/howto/pyporting.rst:419 msgid "" @@ -632,3 +957,14 @@ msgid "" "binary data, helping to make sure everything functions as expected in both " "versions of Python." msgstr "" +"Une autre façon de faciliter le portage de votre code est d'utiliser un " +"vérificateur de type statique comme mypy_ ou pytype_. Ces outils peuvent " +"être utilisés pour analyser votre code comme s'il était exécuté sous Python " +"2, puis une seconde fois comme s'il était exécuté sous Python 3. " +"L'utilisation double d'un vérificateur de type statique de cette façon " +"permet de détecter si, par exemple, vous faites une utilisation inappropriée " +"des types de données binaires dans une version de Python par rapport à " +"l'autre. Si vous ajoutez les indices optionnels de typage à votre code, vous " +"pouvez alors explicitement déclarer que vos API attendent des données " +"binaires ou du texte, ce qui facilite alors la vérification du comportement " +"de votre code dans les deux versions de Python." diff --git a/howto/regex.po b/howto/regex.po index dec31e96f..c35905a75 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-27 23:16+0200\n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-03-26 22:48+0100\n" "Last-Translator: Nabil Bendafi \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -213,18 +213,20 @@ msgstr "" msgid "" "You can match the characters not listed within the class by :dfn:" "`complementing` the set. This is indicated by including a ``'^'`` as the " -"first character of the class; ``'^'`` outside a character class will simply " -"match the ``'^'`` character. For example, ``[^5]`` will match any character " -"except ``'5'``." +"first character of the class. For example, ``[^5]`` will match any character " +"except ``'5'``. If the caret appears elsewhere in a character class, it " +"does not have special meaning. For example: ``[5^]`` will match either a " +"``'5'`` or a ``'^'``." msgstr "" "Vous pouvez trouver une correspondance avec les caractères non listés dans " "une classe en spécifiant le :dfn:`complément` de l'ensemble. Ceci est " -"indiqué en plaçant un ``'^'`` en tant que premier caractère de la classe ; " -"``'^'`` en dehors d'une classe de caractères correspond au caractère " -"``'^'``. Par exemple, ``[^5]`` correspond à tous les caractères, sauf " -"``'5'``." +"indiqué en plaçant un ``'^'`` en tant que premier caractère de la classe. " +"Par exemple, ``[^5]`` correspond à tous les caractères, sauf ``'5'``. Si le " +"caret se trouve ailleurs dans la classe de caractères, il ne possède pas de " +"signification spéciale. Ainsi, ``[5^]`` correspond au ``'5'`` ou au " +"caractère ``'^'``." -#: ../Doc/howto/regex.rst:102 +#: ../Doc/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 " @@ -242,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:109 +#: ../Doc/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 " @@ -253,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:114 +#: ../Doc/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-" @@ -272,7 +274,7 @@ msgstr "" "\\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:122 +#: ../Doc/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 " @@ -288,32 +290,32 @@ 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:130 +#: ../Doc/howto/regex.rst:131 msgid "``\\d``" msgstr "``\\d``" -#: ../Doc/howto/regex.rst:130 +#: ../Doc/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:133 +#: ../Doc/howto/regex.rst:134 msgid "``\\D``" msgstr "``\\D``" -#: ../Doc/howto/regex.rst:133 +#: ../Doc/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:137 +#: ../Doc/howto/regex.rst:138 msgid "``\\s``" msgstr "``\\s``" -#: ../Doc/howto/regex.rst:136 +#: ../Doc/howto/regex.rst:137 msgid "" "Matches any whitespace character; this is equivalent to the class ``[ \\t\\n" "\\r\\f\\v]``." @@ -321,11 +323,11 @@ msgstr "" "Correspond à n'importe quel caractère \"blanc\" ; équivalent à la classe " "``[ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/regex.rst:141 +#: ../Doc/howto/regex.rst:142 msgid "``\\S``" msgstr "``\\S``" -#: ../Doc/howto/regex.rst:140 +#: ../Doc/howto/regex.rst:141 msgid "" "Matches any non-whitespace character; this is equivalent to the class ``[^ " "\\t\\n\\r\\f\\v]``." @@ -333,11 +335,11 @@ msgstr "" "Correspond à n'importe caractère autre que \"blanc\" ; équivalent à la " "classe ``[^ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/regex.rst:145 +#: ../Doc/howto/regex.rst:146 msgid "``\\w``" msgstr "``\\w``" -#: ../Doc/howto/regex.rst:144 +#: ../Doc/howto/regex.rst:145 msgid "" "Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" "Z0-9_]``." @@ -345,11 +347,11 @@ msgstr "" "Correspond à n'importe caractère alphanumérique ; équivalent à la classe " "``[a-zA-Z0-9_]``." -#: ../Doc/howto/regex.rst:149 +#: ../Doc/howto/regex.rst:150 msgid "``\\W``" msgstr "``\\W``" -#: ../Doc/howto/regex.rst:148 +#: ../Doc/howto/regex.rst:149 msgid "" "Matches any non-alphanumeric character; this is equivalent to the class " "``[^a-zA-Z0-9_]``." @@ -357,7 +359,7 @@ msgstr "" "Correspond à n'importe caractère non-alphanumérique ; équivalent à la classe " "``[^a-zA-Z0-9_]``." -#: ../Doc/howto/regex.rst:151 +#: ../Doc/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, " @@ -367,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:155 +#: ../Doc/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." @@ -380,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:162 +#: ../Doc/howto/regex.rst:163 msgid "Repeating Things" msgstr "Répétitions" -#: ../Doc/howto/regex.rst:164 +#: ../Doc/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 " @@ -399,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:170 +#: ../Doc/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 " @@ -411,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:174 +#: ../Doc/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." @@ -420,7 +422,7 @@ msgstr "" "``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 caractères ``'a'``) et ainsi de " "suite." -#: ../Doc/howto/regex.rst:177 +#: ../Doc/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 " @@ -433,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:182 +#: ../Doc/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 " @@ -446,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:188 +#: ../Doc/howto/regex.rst:189 msgid "Step" msgstr "Étape" -#: ../Doc/howto/regex.rst:188 +#: ../Doc/howto/regex.rst:189 msgid "Matched" msgstr "Correspond" -#: ../Doc/howto/regex.rst:188 +#: ../Doc/howto/regex.rst:189 msgid "Explanation" msgstr "Explication" -#: ../Doc/howto/regex.rst:190 +#: ../Doc/howto/regex.rst:191 msgid "1" msgstr "1" -#: ../Doc/howto/regex.rst:190 +#: ../Doc/howto/regex.rst:191 msgid "``a``" msgstr "``a``" -#: ../Doc/howto/regex.rst:190 +#: ../Doc/howto/regex.rst:191 msgid "The ``a`` in the RE matches." msgstr "Le ``a`` correspond dans la RE." -#: ../Doc/howto/regex.rst:192 +#: ../Doc/howto/regex.rst:193 msgid "2" msgstr "2" -#: ../Doc/howto/regex.rst:192 +#: ../Doc/howto/regex.rst:193 msgid "``abcbd``" msgstr "``abcbd``" -#: ../Doc/howto/regex.rst:192 +#: ../Doc/howto/regex.rst:193 msgid "" "The engine matches ``[bcd]*``, going as far as it can, which is to the end " "of the string." @@ -486,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:196 +#: ../Doc/howto/regex.rst:197 msgid "3" msgstr "3" -#: ../Doc/howto/regex.rst:196 ../Doc/howto/regex.rst:204 +#: ../Doc/howto/regex.rst:197 ../Doc/howto/regex.rst:205 msgid "*Failure*" msgstr "*échec*" -#: ../Doc/howto/regex.rst:196 +#: ../Doc/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." @@ -502,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:201 +#: ../Doc/howto/regex.rst:202 msgid "4" msgstr "4" -#: ../Doc/howto/regex.rst:201 ../Doc/howto/regex.rst:212 +#: ../Doc/howto/regex.rst:202 ../Doc/howto/regex.rst:213 msgid "``abcb``" msgstr "``abcb``" -#: ../Doc/howto/regex.rst:201 +#: ../Doc/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:204 +#: ../Doc/howto/regex.rst:205 msgid "5" msgstr "5" -#: ../Doc/howto/regex.rst:204 +#: ../Doc/howto/regex.rst:205 msgid "" "Try ``b`` again, but the current position is at the last character, which is " "a ``'d'``." @@ -528,21 +530,21 @@ msgstr "" "Essaie encore ``b``, mais la position courante est le dernier caractère, qui " "est ``'d'``." -#: ../Doc/howto/regex.rst:208 ../Doc/howto/regex.rst:212 +#: ../Doc/howto/regex.rst:209 ../Doc/howto/regex.rst:213 msgid "6" msgstr "6" -#: ../Doc/howto/regex.rst:208 +#: ../Doc/howto/regex.rst:209 msgid "``abc``" msgstr "``abc``" -#: ../Doc/howto/regex.rst:208 +#: ../Doc/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:212 +#: ../Doc/howto/regex.rst:213 msgid "" "Try ``b`` again. This time the character at the current position is " "``'b'``, so it succeeds." @@ -550,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:218 +#: ../Doc/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 " @@ -567,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:225 +#: ../Doc/howto/regex.rst:226 msgid "" "Another repeating metacharacter is ``+``, which matches one or more times. " "Pay careful attention to the difference between ``*`` and ``+``; ``*`` " @@ -584,7 +586,7 @@ msgstr "" "``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 ``'a'``) mais ne correspond pas avec " "``'ct'``." -#: ../Doc/howto/regex.rst:232 +#: ../Doc/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 " @@ -597,7 +599,7 @@ msgstr "" "caractère`` fait correspondre soit ``métacaractère``, soit ``méta-" "caractère``." -#: ../Doc/howto/regex.rst:237 +#: ../Doc/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* " @@ -611,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:243 +#: ../Doc/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, " @@ -621,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:247 +#: ../Doc/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 ``*``, " @@ -635,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:255 +#: ../Doc/howto/regex.rst:256 msgid "Using Regular Expressions" msgstr "Utilisation des expressions régulières" -#: ../Doc/howto/regex.rst:257 +#: ../Doc/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 " @@ -651,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:264 +#: ../Doc/howto/regex.rst:265 msgid "Compiling Regular Expressions" msgstr "Compilation des expressions régulières" -#: ../Doc/howto/regex.rst:266 +#: ../Doc/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 " @@ -665,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:275 +#: ../Doc/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 " @@ -676,7 +678,7 @@ msgstr "" "étudierons la définition des variables plus tard et, pour l'instant, un seul " "exemple suffit ::" -#: ../Doc/howto/regex.rst:281 +#: ../Doc/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, " @@ -694,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:288 +#: ../Doc/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." @@ -703,11 +705,11 @@ msgstr "" "simple mais introduit un inconvénient qui fait l'objet de la section " "suivante." -#: ../Doc/howto/regex.rst:295 +#: ../Doc/howto/regex.rst:296 msgid "The Backslash Plague" msgstr "La maudite barre oblique inverse" -#: ../Doc/howto/regex.rst:297 +#: ../Doc/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 " @@ -721,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:302 +#: ../Doc/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 " @@ -743,40 +745,40 @@ msgstr "" "littérale Python, nous devons échapper les deux barres obliques inverses " "*encore une fois*." -#: ../Doc/howto/regex.rst:311 +#: ../Doc/howto/regex.rst:312 msgid "Characters" msgstr "Caractères" -#: ../Doc/howto/regex.rst:311 +#: ../Doc/howto/regex.rst:312 msgid "Stage" msgstr "Niveau" -#: ../Doc/howto/regex.rst:313 +#: ../Doc/howto/regex.rst:314 msgid "``\\section``" msgstr "``\\section``" -#: ../Doc/howto/regex.rst:313 +#: ../Doc/howto/regex.rst:314 msgid "Text string to be matched" msgstr "Chaîne de caractère à chercher" -#: ../Doc/howto/regex.rst:315 +#: ../Doc/howto/regex.rst:316 msgid "``\\\\section``" msgstr "``\\\\section``" -#: ../Doc/howto/regex.rst:315 +#: ../Doc/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:317 ../Doc/howto/regex.rst:344 +#: ../Doc/howto/regex.rst:318 ../Doc/howto/regex.rst:345 msgid "``\"\\\\\\\\section\"``" msgstr "``\"\\\\\\\\section\"``" -#: ../Doc/howto/regex.rst:317 +#: ../Doc/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:320 +#: ../Doc/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 " @@ -792,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:326 +#: ../Doc/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 " @@ -809,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:332 +#: ../Doc/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:" @@ -824,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:340 +#: ../Doc/howto/regex.rst:341 msgid "Regular String" msgstr "Chaîne normale" -#: ../Doc/howto/regex.rst:340 +#: ../Doc/howto/regex.rst:341 msgid "Raw string" msgstr "Chaîne de caractères brute" -#: ../Doc/howto/regex.rst:342 +#: ../Doc/howto/regex.rst:343 msgid "``\"ab*\"``" msgstr "``\"ab*\"``" -#: ../Doc/howto/regex.rst:342 +#: ../Doc/howto/regex.rst:343 msgid "``r\"ab*\"``" msgstr "``r\"ab*\"``" -#: ../Doc/howto/regex.rst:344 +#: ../Doc/howto/regex.rst:345 msgid "``r\"\\\\section\"``" msgstr "``r\"\\\\section\"``" -#: ../Doc/howto/regex.rst:346 +#: ../Doc/howto/regex.rst:347 msgid "``\"\\\\w+\\\\s+\\\\1\"``" msgstr "``\"\\\\w+\\\\s+\\\\1\"``" -#: ../Doc/howto/regex.rst:346 +#: ../Doc/howto/regex.rst:347 msgid "``r\"\\w+\\s+\\1\"``" msgstr "``r\"\\w+\\s+\\1\"``" -#: ../Doc/howto/regex.rst:351 +#: ../Doc/howto/regex.rst:352 msgid "Performing Matches" msgstr "Recherche de correspondances" -#: ../Doc/howto/regex.rst:353 +#: ../Doc/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 " @@ -868,47 +870,47 @@ msgstr "" "attributs. Seuls les plus significatifs seront couverts ici ; consultez la " "documentation :mod:`re` pour la liste complète." -#: ../Doc/howto/regex.rst:359 ../Doc/howto/regex.rst:417 -#: ../Doc/howto/regex.rst:1056 +#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 +#: ../Doc/howto/regex.rst:1057 msgid "Method/Attribute" msgstr "Méthode/Attribut" -#: ../Doc/howto/regex.rst:359 ../Doc/howto/regex.rst:417 -#: ../Doc/howto/regex.rst:1056 +#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 +#: ../Doc/howto/regex.rst:1057 msgid "Purpose" msgstr "Objectif" -#: ../Doc/howto/regex.rst:361 +#: ../Doc/howto/regex.rst:362 msgid "``match()``" msgstr "``match()``" -#: ../Doc/howto/regex.rst:361 +#: ../Doc/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:364 +#: ../Doc/howto/regex.rst:365 msgid "``search()``" msgstr "``search()``" -#: ../Doc/howto/regex.rst:364 +#: ../Doc/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:367 +#: ../Doc/howto/regex.rst:368 msgid "``findall()``" msgstr "``findall()``" -#: ../Doc/howto/regex.rst:367 +#: ../Doc/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:370 +#: ../Doc/howto/regex.rst:371 msgid "``finditer()``" msgstr "``finditer()``" -#: ../Doc/howto/regex.rst:370 +#: ../Doc/howto/regex.rst:371 msgid "" "Find all substrings where the RE matches, and returns them as an :term:" "`iterator`." @@ -916,7 +918,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:374 +#: ../Doc/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:412 +#: ../Doc/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 " @@ -993,44 +995,44 @@ msgstr "" "instances d'objets correspondances possèdent plusieurs méthodes et " "attributs ; les plus importants sont :" -#: ../Doc/howto/regex.rst:419 +#: ../Doc/howto/regex.rst:420 msgid "``group()``" msgstr "``group()``" -#: ../Doc/howto/regex.rst:419 +#: ../Doc/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:421 +#: ../Doc/howto/regex.rst:422 msgid "``start()``" msgstr "``start()``" -#: ../Doc/howto/regex.rst:421 +#: ../Doc/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:423 +#: ../Doc/howto/regex.rst:424 msgid "``end()``" msgstr "``end()``" -#: ../Doc/howto/regex.rst:423 +#: ../Doc/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:425 +#: ../Doc/howto/regex.rst:426 msgid "``span()``" msgstr "``span()``" -#: ../Doc/howto/regex.rst:425 +#: ../Doc/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:429 +#: ../Doc/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:438 +#: ../Doc/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 " @@ -1050,7 +1052,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:455 +#: ../Doc/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 " @@ -1060,7 +1062,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:466 +#: ../Doc/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::" @@ -1068,7 +1070,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:473 +#: ../Doc/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 " @@ -1083,7 +1085,7 @@ msgstr "" "deviendront possiblement des :exc:`SyntaxError`. Reportez-vous à :ref:`the-" "backslash-plague`." -#: ../Doc/howto/regex.rst:479 +#: ../Doc/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 " @@ -1095,11 +1097,11 @@ msgstr "" "d'instances :ref:`d'objets correspondances ` en tant :term:" "`qu'itérateur ` ::" -#: ../Doc/howto/regex.rst:495 +#: ../Doc/howto/regex.rst:496 msgid "Module-Level Functions" msgstr "Fonctions de niveau module" -#: ../Doc/howto/regex.rst:497 +#: ../Doc/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`, :" @@ -1116,7 +1118,7 @@ msgstr "" "premier argument. Elles renvoient toujours ``None`` ou une instance :ref:" "`d'objet correspondance `. ::" -#: ../Doc/howto/regex.rst:509 +#: ../Doc/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 " @@ -1128,7 +1130,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:514 +#: ../Doc/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, " @@ -1141,11 +1143,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:522 +#: ../Doc/howto/regex.rst:523 msgid "Compilation Flags" msgstr "Options de compilation" -#: ../Doc/howto/regex.rst:524 +#: ../Doc/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 " @@ -1166,7 +1168,7 @@ msgstr "" "bit *OR* ; par exemple, ``re.I | re.M`` active à la fois les options :const:" "`I` et :const:`M`." -#: ../Doc/howto/regex.rst:532 +#: ../Doc/howto/regex.rst:533 msgid "" "Here's a table of the available flags, followed by a more detailed " "explanation of each one." @@ -1174,19 +1176,19 @@ msgstr "" "Vous trouvez ci-dessous le tableau des options disponibles, suivies " "d'explications détaillées." -#: ../Doc/howto/regex.rst:536 +#: ../Doc/howto/regex.rst:537 msgid "Flag" msgstr "Option" -#: ../Doc/howto/regex.rst:536 +#: ../Doc/howto/regex.rst:537 msgid "Meaning" msgstr "Signification" -#: ../Doc/howto/regex.rst:538 +#: ../Doc/howto/regex.rst:539 msgid ":const:`ASCII`, :const:`A`" msgstr ":const:`ASCII`, :const:`A`" -#: ../Doc/howto/regex.rst:538 +#: ../Doc/howto/regex.rst:539 msgid "" "Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only " "on ASCII characters with the respective property." @@ -1195,55 +1197,55 @@ msgstr "" "\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII " "ayant la propriété demandée." -#: ../Doc/howto/regex.rst:542 +#: ../Doc/howto/regex.rst:543 msgid ":const:`DOTALL`, :const:`S`" msgstr ":const:`DOTALL`, :const:`S`" -#: ../Doc/howto/regex.rst:542 +#: ../Doc/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:545 +#: ../Doc/howto/regex.rst:546 msgid ":const:`IGNORECASE`, :const:`I`" msgstr ":const:`IGNORECASE`, :const:`I`" -#: ../Doc/howto/regex.rst:545 +#: ../Doc/howto/regex.rst:546 msgid "Do case-insensitive matches." msgstr "Recherche une correspondance sans tenir compte de la casse." -#: ../Doc/howto/regex.rst:547 +#: ../Doc/howto/regex.rst:548 msgid ":const:`LOCALE`, :const:`L`" msgstr ":const:`LOCALE`, :const:`L`" -#: ../Doc/howto/regex.rst:547 +#: ../Doc/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:549 +#: ../Doc/howto/regex.rst:550 msgid ":const:`MULTILINE`, :const:`M`" msgstr ":const:`MULTILINE`, :const:`M`" -#: ../Doc/howto/regex.rst:549 +#: ../Doc/howto/regex.rst:550 msgid "Multi-line matching, affecting ``^`` and ``$``." msgstr "Correspondance multi-lignes, affecte ``^`` et ``$``." -#: ../Doc/howto/regex.rst:552 +#: ../Doc/howto/regex.rst:553 msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" msgstr "" ":const:`VERBOSE`, :const:`X` (pour *extended*, c-à-d étendu en anglais)" -#: ../Doc/howto/regex.rst:552 +#: ../Doc/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:561 +#: ../Doc/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 " @@ -1274,7 +1276,7 @@ msgstr "" "de région courante ; elle le fait si vous mettez aussi l'option :const:" "`LOCALE`." -#: ../Doc/howto/regex.rst:579 +#: ../Doc/howto/regex.rst:580 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " "dependent on the current locale instead of the Unicode database." @@ -1283,7 +1285,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:582 +#: ../Doc/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 " @@ -1321,7 +1323,7 @@ msgstr "" "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:604 +#: ../Doc/howto/regex.rst:605 msgid "" "(``^`` and ``$`` haven't been explained yet; they'll be introduced in " "section :ref:`more-metacharacters`.)" @@ -1329,7 +1331,7 @@ msgstr "" "Nota : ``^`` et ``$`` n'ont pas encore été expliqués ; ils sont introduits " "dans la section :ref:`more-metacharacters`." -#: ../Doc/howto/regex.rst:607 +#: ../Doc/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 " @@ -1348,7 +1350,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:620 +#: ../Doc/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." @@ -1357,7 +1359,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:628 +#: ../Doc/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 " @@ -1368,7 +1370,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:637 +#: ../Doc/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 " @@ -1389,19 +1391,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:646 +#: ../Doc/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:659 +#: ../Doc/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:665 +#: ../Doc/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 " @@ -1412,11 +1414,11 @@ msgstr "" "morceaux, mais la RE reste plus difficile à comprendre que sa version " "utilisant :const:`re.VERBOSE`." -#: ../Doc/howto/regex.rst:671 +#: ../Doc/howto/regex.rst:672 msgid "More Pattern Power" msgstr "Des motifs plus puissants" -#: ../Doc/howto/regex.rst:673 +#: ../Doc/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 " @@ -1427,11 +1429,11 @@ msgstr "" "nouveaux métacaractères et l'utilisation des groupes pour récupérer des " "portions de textes correspondantes." -#: ../Doc/howto/regex.rst:681 +#: ../Doc/howto/regex.rst:682 msgid "More Metacharacters" msgstr "Plus de métacaractères" -#: ../Doc/howto/regex.rst:683 +#: ../Doc/howto/regex.rst:684 msgid "" "There are some metacharacters that we haven't covered yet. Most of them " "will be covered in this section." @@ -1439,7 +1441,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:686 +#: ../Doc/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; " @@ -1460,11 +1462,11 @@ msgstr "" "correspondent à un endroit donné, elles correspondent automatiquement un " "nombre infini de fois." -#: ../Doc/howto/regex.rst:702 +#: ../Doc/howto/regex.rst:703 msgid "``|``" msgstr "``|``" -#: ../Doc/howto/regex.rst:695 +#: ../Doc/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*. " @@ -1480,7 +1482,7 @@ msgstr "" "``'Crow'`` ou ``'Servo'``, mais pas avec ``'Cro'``, un ``'w'`` ou un " "``'S'``, ou encore ``'ervo'``." -#: ../Doc/howto/regex.rst:701 +#: ../Doc/howto/regex.rst:702 msgid "" "To match a literal ``'|'``, use ``\\|``, or enclose it inside a character " "class, as in ``[|]``." @@ -1488,11 +1490,11 @@ msgstr "" "Pour correspondre avec un ``'|'`` littéral, utilisez ``\\|`` ou placez-le " "dans une classe de caractères, comme ceci ``[|]``." -#: ../Doc/howto/regex.rst:717 +#: ../Doc/howto/regex.rst:718 msgid "``^``" msgstr "``^``" -#: ../Doc/howto/regex.rst:705 +#: ../Doc/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:" @@ -1504,7 +1506,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:709 +#: ../Doc/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``. ::" @@ -1512,15 +1514,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:717 +#: ../Doc/howto/regex.rst:718 msgid "To match a literal ``'^'``, use ``\\^``." msgstr "Pour trouver un ``'^'`` littéral, utilisez ``\\^``." -#: ../Doc/howto/regex.rst:731 +#: ../Doc/howto/regex.rst:732 msgid "``$``" msgstr "``$``" -#: ../Doc/howto/regex.rst:720 +#: ../Doc/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. ::" @@ -1528,7 +1530,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:730 +#: ../Doc/howto/regex.rst:731 msgid "" "To match a literal ``'$'``, use ``\\$`` or enclose it inside a character " "class, as in ``[$]``." @@ -1536,11 +1538,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:737 +#: ../Doc/howto/regex.rst:738 msgid "``\\A``" msgstr "``\\A``" -#: ../Doc/howto/regex.rst:734 +#: ../Doc/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` " @@ -1555,19 +1557,19 @@ msgstr "" "emplacements situés immédiatement après une nouvelle ligne à l'intérieur de " "la chaîne." -#: ../Doc/howto/regex.rst:740 +#: ../Doc/howto/regex.rst:741 msgid "``\\Z``" msgstr "``\\Z``" -#: ../Doc/howto/regex.rst:740 +#: ../Doc/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:775 +#: ../Doc/howto/regex.rst:776 msgid "``\\b``" msgstr "``\\b``" -#: ../Doc/howto/regex.rst:743 +#: ../Doc/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 " @@ -1579,7 +1581,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:748 +#: ../Doc/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. ::" @@ -1588,7 +1590,7 @@ msgstr "" "complet ; il n'y a pas de correspondance quand il est à l'intérieur d'un " "autre mot. ::" -#: ../Doc/howto/regex.rst:759 +#: ../Doc/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 " @@ -1608,7 +1610,7 @@ msgstr "" "ressemble à notre RE précédente, mais nous avons omis le ```'r'`` devant la " "chaîne RE. ::" -#: ../Doc/howto/regex.rst:773 +#: ../Doc/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 " @@ -1618,11 +1620,11 @@ msgstr "" "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:780 +#: ../Doc/howto/regex.rst:781 msgid "``\\B``" msgstr "``\\B``" -#: ../Doc/howto/regex.rst:778 +#: ../Doc/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." @@ -1631,11 +1633,11 @@ msgstr "" "dire qu'elle fait correspondre uniquement les emplacements qui ne sont pas à " "la limite d'un mot." -#: ../Doc/howto/regex.rst:783 +#: ../Doc/howto/regex.rst:784 msgid "Grouping" msgstr "Regroupement" -#: ../Doc/howto/regex.rst:785 +#: ../Doc/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 " @@ -1651,7 +1653,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:798 +#: ../Doc/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 " @@ -1661,7 +1663,7 @@ 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:802 +#: ../Doc/howto/regex.rst:803 msgid "" "Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and " "``')'`` have much the same meaning as they do in mathematical expressions; " @@ -1677,7 +1679,7 @@ msgstr "" "quantificateur, comme ``*``, ``+``, ``?`` ou ``{m,n}``. Par exemple, " "``(ab)*`` correspond à zéro, une ou plusieurs fois ``ab``. ::" -#: ../Doc/howto/regex.rst:813 +#: ../Doc/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 " @@ -1698,7 +1700,7 @@ msgstr "" "voyons comment exprimer les groupes qui ne capturent pas l'étendue du texte " "avec lequel ils correspondent. ::" -#: ../Doc/howto/regex.rst:829 +#: ../Doc/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 " @@ -1709,7 +1711,7 @@ msgstr "" "suffit de compter le nombre de parenthèses ouvrantes de la gauche vers la " "droite. ::" -#: ../Doc/howto/regex.rst:842 +#: ../Doc/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 " @@ -1719,7 +1721,7 @@ msgstr "" "même temps, elle vous renvoie alors un *tuple* contenant les valeurs " "correspondantes pour ces groupes. ::" -#: ../Doc/howto/regex.rst:848 +#: ../Doc/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. ::" @@ -1728,7 +1730,7 @@ msgstr "" "chaînes pour tous les sous-groupes, en commençant par le numéro 1 jusqu'au " "dernier. ::" -#: ../Doc/howto/regex.rst:854 +#: ../Doc/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 " @@ -1746,12 +1748,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:862 +#: ../Doc/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:868 +#: ../Doc/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 " @@ -1763,11 +1765,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:874 +#: ../Doc/howto/regex.rst:875 msgid "Non-capturing and Named Groups" msgstr "Groupes non de capture et groupes nommés" -#: ../Doc/howto/regex.rst:876 +#: ../Doc/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 " @@ -1783,7 +1785,7 @@ msgstr "" "expressions régulières. Nous allons donc commencer en examinant cette " "syntaxe." -#: ../Doc/howto/regex.rst:882 +#: ../Doc/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 " @@ -1802,7 +1804,7 @@ msgstr "" "auraient considéré que ``&`` était un caractère standard et ne l'aurait pas " "échappé en écrivant ``\\&`` ou ``[&]``." -#: ../Doc/howto/regex.rst:889 +#: ../Doc/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 " @@ -1820,7 +1822,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:897 +#: ../Doc/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 " @@ -1831,7 +1833,7 @@ msgstr "" "d'interrogation est ``P``, cela signifie que c'est une extension spécifique " "à Python." -#: ../Doc/howto/regex.rst:902 +#: ../Doc/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." @@ -1840,7 +1842,7 @@ msgstr "" "aux fonctionnalités qui simplifient le travail avec les groupes dans des RE " "complexes." -#: ../Doc/howto/regex.rst:905 +#: ../Doc/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 " @@ -1854,7 +1856,7 @@ msgstr "" "``(?:...)``, où vous remplacez les ``...`` par n'importe quelle expression " "régulière. ::" -#: ../Doc/howto/regex.rst:917 +#: ../Doc/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 " @@ -1876,7 +1878,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:926 +#: ../Doc/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." @@ -1885,7 +1887,7 @@ msgstr "" "faire référence par des nombres, vous pouvez référencer des groupes par leur " "nom." -#: ../Doc/howto/regex.rst:929 +#: ../Doc/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 " @@ -1906,7 +1908,7 @@ 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:944 +#: ../Doc/howto/regex.rst:945 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:" @@ -1915,7 +1917,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:955 +#: ../Doc/howto/regex.rst:956 msgid "" "It's obviously much easier to retrieve ``m.group('zonem')``, instead of " "having to remember to retrieve group 9." @@ -1923,7 +1925,7 @@ 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:958 +#: ../Doc/howto/regex.rst:959 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 " @@ -1941,11 +1943,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:971 +#: ../Doc/howto/regex.rst:972 msgid "Lookahead Assertions" msgstr "Assertions prédictives" -#: ../Doc/howto/regex.rst:973 +#: ../Doc/howto/regex.rst:974 msgid "" "Another zero-width assertion is the lookahead assertion. Lookahead " "assertions are available in both positive and negative form, and look like " @@ -1955,11 +1957,11 @@ msgstr "" "assertion prédictive peut s'exprimer sous deux formes, la positive et la " "négative, comme ceci :" -#: ../Doc/howto/regex.rst:981 +#: ../Doc/howto/regex.rst:982 msgid "``(?=...)``" msgstr "``(?=...)``" -#: ../Doc/howto/regex.rst:977 +#: ../Doc/howto/regex.rst:978 msgid "" "Positive lookahead assertion. This succeeds if the contained regular " "expression, represented here by ``...``, successfully matches at the current " @@ -1974,11 +1976,11 @@ msgstr "" "n'avance pas ; le reste du motif est testé à l'endroit même où l'assertion a " "commencé." -#: ../Doc/howto/regex.rst:986 +#: ../Doc/howto/regex.rst:987 msgid "``(?!...)``" msgstr "``(?!...)``" -#: ../Doc/howto/regex.rst:984 +#: ../Doc/howto/regex.rst:985 msgid "" "Negative lookahead assertion. This is the opposite of the positive " "assertion; it succeeds if the contained expression *doesn't* match at the " @@ -1988,7 +1990,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:988 +#: ../Doc/howto/regex.rst:989 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 " @@ -2001,15 +2003,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:993 +#: ../Doc/howto/regex.rst:994 msgid "The pattern to match this is quite simple:" msgstr "Le motif de correspondance est plutôt simple :" -#: ../Doc/howto/regex.rst:995 +#: ../Doc/howto/regex.rst:996 msgid "``.*[.].*$``" msgstr "``.*[.].*$``" -#: ../Doc/howto/regex.rst:997 +#: ../Doc/howto/regex.rst:998 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 " @@ -2025,7 +2027,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:1004 +#: ../Doc/howto/regex.rst:1005 msgid "" "Now, consider complicating the problem a bit; what if you want to match " "filenames where the extension is not ``bat``? Some incorrect attempts:" @@ -2034,7 +2036,7 @@ msgstr "" "correspondre les noms de fichiers dont l'extension n'est pas ``bat`` ? voici " "quelques tentatives incorrectes :" -#: ../Doc/howto/regex.rst:1007 +#: ../Doc/howto/regex.rst:1008 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 " @@ -2044,11 +2046,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:1011 +#: ../Doc/howto/regex.rst:1012 msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``" -#: ../Doc/howto/regex.rst:1013 +#: ../Doc/howto/regex.rst:1014 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 " @@ -2067,11 +2069,11 @@ msgstr "" "``sendmail.cf``. Compliquons encore une fois le motif pour essayer de le " "réparer." -#: ../Doc/howto/regex.rst:1021 +#: ../Doc/howto/regex.rst:1022 msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" -#: ../Doc/howto/regex.rst:1023 +#: ../Doc/howto/regex.rst:1024 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 " @@ -2081,7 +2083,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:1027 +#: ../Doc/howto/regex.rst:1028 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 " @@ -2093,11 +2095,11 @@ msgstr "" "à la fois ``bat`` et ``exe`` en tant qu'extensions, le modèle deviendra " "encore plus compliqué et confus." -#: ../Doc/howto/regex.rst:1032 +#: ../Doc/howto/regex.rst:1033 msgid "A negative lookahead cuts through all this confusion:" msgstr "Une assertion prédictive négative supprime toute cette confusion :" -#: ../Doc/howto/regex.rst:1034 +#: ../Doc/howto/regex.rst:1035 msgid "" "``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression " "``bat`` doesn't match at this point, try the rest of the pattern; if ``bat" @@ -2114,7 +2116,7 @@ msgstr "" "``[^...]*`` s'assure que le motif fonctionne lorsqu'il y a plusieurs points " "dans le nom de fichier." -#: ../Doc/howto/regex.rst:1041 +#: ../Doc/howto/regex.rst:1042 msgid "" "Excluding another filename extension is now easy; simply add it as an " "alternative inside the assertion. The following pattern excludes filenames " @@ -2124,15 +2126,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:1045 +#: ../Doc/howto/regex.rst:1046 msgid "``.*[.](?!bat$|exe$)[^.]*$``" msgstr "``.*[.](?!bat$|exe$)[^.]*$``" -#: ../Doc/howto/regex.rst:1049 +#: ../Doc/howto/regex.rst:1050 msgid "Modifying Strings" msgstr "Modification de chaînes" -#: ../Doc/howto/regex.rst:1051 +#: ../Doc/howto/regex.rst:1052 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 " @@ -2143,21 +2145,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:1058 +#: ../Doc/howto/regex.rst:1059 msgid "``split()``" msgstr "``split()``" -#: ../Doc/howto/regex.rst:1058 +#: ../Doc/howto/regex.rst:1059 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:1061 +#: ../Doc/howto/regex.rst:1062 msgid "``sub()``" msgstr "``sub()``" -#: ../Doc/howto/regex.rst:1061 +#: ../Doc/howto/regex.rst:1062 msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" @@ -2165,11 +2167,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:1064 +#: ../Doc/howto/regex.rst:1065 msgid "``subn()``" msgstr "``subn()``" -#: ../Doc/howto/regex.rst:1064 +#: ../Doc/howto/regex.rst:1065 msgid "" "Does the same thing as :meth:`!sub`, but returns the new string and the " "number of replacements" @@ -2177,11 +2179,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:1071 +#: ../Doc/howto/regex.rst:1072 msgid "Splitting Strings" msgstr "Découpage de chaînes" -#: ../Doc/howto/regex.rst:1073 +#: ../Doc/howto/regex.rst:1074 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 " @@ -2198,7 +2200,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:1084 +#: ../Doc/howto/regex.rst:1085 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 " @@ -2210,7 +2212,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:1089 +#: ../Doc/howto/regex.rst:1090 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 " @@ -2224,7 +2226,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:1101 +#: ../Doc/howto/regex.rst:1102 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 " @@ -2236,7 +2238,7 @@ msgstr "" "la RE, leurs valeurs sont également renvoyées dans la liste. Comparons les " "appels suivants ::" -#: ../Doc/howto/regex.rst:1113 +#: ../Doc/howto/regex.rst:1114 msgid "" "The module-level function :func:`re.split` adds the RE to be used as the " "first argument, but is otherwise the same. ::" @@ -2244,11 +2246,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:1125 +#: ../Doc/howto/regex.rst:1126 msgid "Search and Replace" msgstr "Recherche et substitution" -#: ../Doc/howto/regex.rst:1127 +#: ../Doc/howto/regex.rst:1128 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 " @@ -2260,7 +2262,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:1134 +#: ../Doc/howto/regex.rst:1135 msgid "" "Returns the string obtained by replacing the leftmost non-overlapping " "occurrences of the RE in *string* by the replacement *replacement*. If the " @@ -2270,7 +2272,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:1138 +#: ../Doc/howto/regex.rst:1139 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 " @@ -2280,7 +2282,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:1142 +#: ../Doc/howto/regex.rst:1143 msgid "" "Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " "replaces colour names with the word ``colour``::" @@ -2288,7 +2290,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:1151 +#: ../Doc/howto/regex.rst:1152 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 " @@ -2298,7 +2300,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:1160 +#: ../Doc/howto/regex.rst:1161 msgid "" "Empty matches are replaced only when they're not adjacent to a previous " "empty match. ::" @@ -2306,7 +2308,7 @@ 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:1167 +#: ../Doc/howto/regex.rst:1168 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 " @@ -2324,7 +2326,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:1174 +#: ../Doc/howto/regex.rst:1175 msgid "" "This example matches the word ``section`` followed by a string enclosed in " "``{``, ``}``, and changes ``section`` to ``subsection``::" @@ -2332,7 +2334,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:1181 +#: ../Doc/howto/regex.rst:1182 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 " @@ -2353,7 +2355,7 @@ msgstr "" "substitutions suivantes sont toutes équivalentes mais utilisent les trois " "variantes de la chaîne de remplacement. ::" -#: ../Doc/howto/regex.rst:1198 +#: ../Doc/howto/regex.rst:1199 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-" @@ -2368,7 +2370,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:1204 +#: ../Doc/howto/regex.rst:1205 msgid "" "In the following example, the replacement function translates decimals into " "hexadecimal::" @@ -2376,7 +2378,7 @@ msgstr "" "Dans l'exemple suivant, la fonction de substitution convertit un nombre " "décimal en hexadécimal ::" -#: ../Doc/howto/regex.rst:1216 +#: ../Doc/howto/regex.rst:1217 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 " @@ -2393,11 +2395,11 @@ msgstr "" "chaîne de caractères, par exemple ``sub(\"(?i)b+\", \"x\", \"bbbb BBBBB" "\")```renvoie ``'x x'``." -#: ../Doc/howto/regex.rst:1224 +#: ../Doc/howto/regex.rst:1225 msgid "Common Problems" msgstr "Problèmes classiques" -#: ../Doc/howto/regex.rst:1226 +#: ../Doc/howto/regex.rst:1227 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 " @@ -2409,11 +2411,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:1232 +#: ../Doc/howto/regex.rst:1233 msgid "Use String Methods" msgstr "Utilisez les méthodes du type *string*" -#: ../Doc/howto/regex.rst:1234 +#: ../Doc/howto/regex.rst:1235 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:" @@ -2433,7 +2435,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:1242 +#: ../Doc/howto/regex.rst:1243 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 " @@ -2455,7 +2457,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:1251 +#: ../Doc/howto/regex.rst:1252 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 " @@ -2469,7 +2471,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:1257 +#: ../Doc/howto/regex.rst:1258 msgid "" "In short, before turning to the :mod:`re` module, consider whether your " "problem can be solved with a faster and simpler string method." @@ -2477,11 +2479,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:1262 +#: ../Doc/howto/regex.rst:1263 msgid "match() versus search()" msgstr "*match()* contre *search()*" -#: ../Doc/howto/regex.rst:1264 +#: ../Doc/howto/regex.rst:1265 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 " @@ -2497,7 +2499,7 @@ msgstr "" "correspondance qui commence à 0 ; si la correspondance commence plus loin, :" "func:`!match` *ne la trouve pas*. ::" -#: ../Doc/howto/regex.rst:1275 +#: ../Doc/howto/regex.rst:1276 msgid "" "On the other hand, :func:`~re.search` will scan forward through the string, " "reporting the first match it finds. ::" @@ -2505,7 +2507,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:1283 +#: ../Doc/howto/regex.rst:1284 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." @@ -2526,7 +2528,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:1292 +#: ../Doc/howto/regex.rst:1293 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. " @@ -2537,11 +2539,11 @@ msgstr "" "une correspondance pour le reste de la RE. Préférez l'utilisation :func:`re." "search`." -#: ../Doc/howto/regex.rst:1298 +#: ../Doc/howto/regex.rst:1299 msgid "Greedy versus Non-Greedy" msgstr "Glouton contre non-glouton" -#: ../Doc/howto/regex.rst:1300 +#: ../Doc/howto/regex.rst:1301 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 " @@ -2556,7 +2558,7 @@ msgstr "" "pour faire correspondre une seule balise HTML ne fonctionne pas en raison de " "la nature gloutonne de ``.*``. ::" -#: ../Doc/howto/regex.rst:1314 +#: ../Doc/howto/regex.rst:1315 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 ``>`` " @@ -2573,7 +2575,7 @@ msgstr "" "correspondance finale s'étend du ``'<'`` de ``''`` au ``'>'`` de ``''``, ce qui n'est pas ce que vous voulez." -#: ../Doc/howto/regex.rst:1321 +#: ../Doc/howto/regex.rst:1322 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 " @@ -2588,7 +2590,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:1330 +#: ../Doc/howto/regex.rst:1331 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 " @@ -2604,11 +2606,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:1338 +#: ../Doc/howto/regex.rst:1339 msgid "Using re.VERBOSE" msgstr "Utilisez *re.VERBOSE*" -#: ../Doc/howto/regex.rst:1340 +#: ../Doc/howto/regex.rst:1341 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 " @@ -2621,7 +2623,7 @@ msgstr "" "obliques inverses, de parenthèses et de métacaractères, ce qui la rend " "difficile à lire et à comprendre." -#: ../Doc/howto/regex.rst:1345 +#: ../Doc/howto/regex.rst:1346 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 " @@ -2631,7 +2633,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:1349 +#: ../Doc/howto/regex.rst:1350 msgid "" "The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " "expression that *isn't* inside a character class is ignored. This means " @@ -2651,15 +2653,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:1366 +#: ../Doc/howto/regex.rst:1367 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:1372 +#: ../Doc/howto/regex.rst:1373 msgid "Feedback" msgstr "Vos commentaires" -#: ../Doc/howto/regex.rst:1374 +#: ../Doc/howto/regex.rst:1375 msgid "" "Regular expressions are a complicated topic. Did this document help you " "understand them? Were there parts that were unclear, or Problems you " @@ -2671,7 +2673,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:1379 +#: ../Doc/howto/regex.rst:1380 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 ad3d9ff77..26706127d 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -6,8 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\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" +"PO-Revision-Date: 2019-06-10 15:41+0200\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -16,7 +15,7 @@ msgstr "" #: ../Doc/howto/sockets.rst:5 msgid "Socket Programming HOWTO" -msgstr "" +msgstr "Guide pratique : programmation avec les *sockets*" #: ../Doc/howto/sockets.rst:0 msgid "Author" @@ -24,7 +23,7 @@ msgstr "Auteur" #: ../Doc/howto/sockets.rst:7 msgid "Gordon McMillan" -msgstr "" +msgstr "Gordon McMillan" #: ../Doc/howto/sockets.rst:None msgid "Abstract" @@ -39,6 +38,12 @@ 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 msgid "Sockets" @@ -55,6 +60,17 @@ 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 " +"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 " +"connecteurs non bloquants." #: ../Doc/howto/sockets.rst:31 msgid "" @@ -66,6 +82,14 @@ 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 msgid "History" @@ -78,6 +102,11 @@ msgid "" "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 msgid "" @@ -86,16 +115,23 @@ msgid "" "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 msgid "Creating a Socket" -msgstr "Créer un *socket*" +msgstr "Créer un connecteur" #: ../Doc/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 msgid "" @@ -104,12 +140,19 @@ msgid "" "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 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 msgid "" @@ -120,6 +163,12 @@ msgid "" "machine. ``s.bind(('', 80))`` specifies that the socket is reachable by any " "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." #: ../Doc/howto/sockets.rst:87 msgid "" @@ -127,6 +176,9 @@ msgid "" "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 " +"vous expérimentez, utilisez un nombre suffisamment élevé (4 chiffres)." #: ../Doc/howto/sockets.rst:91 msgid "" @@ -135,12 +187,18 @@ msgid "" "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." #: ../Doc/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 msgid "" @@ -157,10 +215,24 @@ 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 "" +"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." #: ../Doc/howto/sockets.rst:121 msgid "IPC" -msgstr "" +msgstr "Communication Entre Processus" #: ../Doc/howto/sockets.rst:123 msgid "" @@ -170,16 +242,24 @@ msgid "" "a shortcut around a couple of layers of network code and be quite a bit " "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 " +"rapide." #: ../Doc/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 msgid "Using a Socket" -msgstr "" +msgstr "Utilisation d'un connecteur" #: ../Doc/howto/sockets.rst:136 msgid "" @@ -191,6 +271,14 @@ 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 msgid "" @@ -203,6 +291,16 @@ 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 msgid "" @@ -214,6 +312,14 @@ 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 msgid "" @@ -222,6 +328,10 @@ msgid "" "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 msgid "" @@ -229,6 +339,10 @@ msgid "" "request, then reads a reply. That's it. The socket is discarded. This means " "that a client can detect the end of the reply by receiving 0 bytes." msgstr "" +"Un protocole comme HTTP utilise un connecteur pour un seul transfert. Le " +"client envoie une demande, puis lit une réponse. C'est tout. Le connecteur " +"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 msgid "" @@ -243,12 +357,27 @@ msgid "" "they are* (much better), *or end by shutting down the connection*. The " "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é " +"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)." #: ../Doc/howto/sockets.rst:180 msgid "" "Assuming you don't want to end the connection, the simplest solution is a " "fixed length message::" 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 msgid "" @@ -258,6 +387,12 @@ 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 msgid "" @@ -269,6 +404,15 @@ 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 msgid "" @@ -278,6 +422,12 @@ 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 msgid "" @@ -290,6 +440,16 @@ 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 msgid "" @@ -297,10 +457,14 @@ msgid "" "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 msgid "Binary Data" -msgstr "" +msgstr "Données binaires" #: ../Doc/howto/sockets.rst:254 msgid "" @@ -314,6 +478,18 @@ msgid "" "order is host order, these do nothing, but where the machine is byte-" "reversed, these swap the bytes around appropriately." msgstr "" +"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." #: ../Doc/howto/sockets.rst:264 msgid "" @@ -323,10 +499,17 @@ 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 msgid "Disconnecting" -msgstr "" +msgstr "Déconnexion" #: ../Doc/howto/sockets.rst:274 msgid "" @@ -339,6 +522,15 @@ 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 msgid "" @@ -349,6 +541,13 @@ 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 msgid "" @@ -359,10 +558,17 @@ 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 msgid "When Sockets Die" -msgstr "" +msgstr "Quand les connecteurs meurent" #: ../Doc/howto/sockets.rst:299 msgid "" @@ -378,10 +584,23 @@ 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 "" +"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." #: ../Doc/howto/sockets.rst:313 msgid "Non-blocking Sockets" -msgstr "" +msgstr "Connecteurs non bloquants" #: ../Doc/howto/sockets.rst:315 msgid "" @@ -390,6 +609,10 @@ msgid "" "calls, in much the same ways. It's just that, if you do it right, your app " "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." #: ../Doc/howto/sockets.rst:320 msgid "" @@ -400,6 +623,13 @@ msgid "" "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 à " +"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 " +"fou, vous pouvez alterner)." #: ../Doc/howto/sockets.rst:327 msgid "" @@ -410,10 +640,17 @@ 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 msgid "Use ``select``." -msgstr "" +msgstr "Utiliser ``select``." #: ../Doc/howto/sockets.rst:336 msgid "" @@ -421,6 +658,9 @@ msgid "" "but it's close enough to the C version that if you understand ``select`` in " "Python, you'll have little trouble with it in C::" 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 ::" #: ../Doc/howto/sockets.rst:347 msgid "" @@ -432,6 +672,15 @@ 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 msgid "" @@ -439,6 +688,10 @@ msgid "" "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 msgid "" @@ -449,6 +702,14 @@ 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, " +"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)." #: ../Doc/howto/sockets.rst:366 msgid "" @@ -458,6 +719,13 @@ 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é." #: ../Doc/howto/sockets.rst:372 msgid "" @@ -467,6 +735,11 @@ msgid "" "problem of determining whether the other end is done, or just busy with " "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." #: ../Doc/howto/sockets.rst:377 msgid "" @@ -476,3 +749,9 @@ msgid "" "differently on Windows. In fact, on Windows I usually use threads (which " "work very, very well) with my sockets." msgstr "" +"**Alerte de portabilité** : Sous Unix, ``select`` fonctionne aussi bien avec " +"les connecteurs qu'avec les fichiers. N'essayez pas cela sous Windows. Sous " +"Windows, ``select`` ne fonctionne qu'avec les connecteurs. Notez également " +"qu'en C, la plupart des options de connecteurs les plus avancées se font " +"différemment sous Windows. En fait, sous Windows, j'utilise habituellement " +"des fils d'exécution (qui fonctionnent très, très bien) avec mes connecteurs." diff --git a/howto/sorting.po b/howto/sorting.po index 48ee50342..9ad35fa82 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -62,7 +62,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 "" @@ -365,7 +365,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:245 msgid "To convert to a key function, just wrap the old comparison function:" @@ -414,7 +414,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:285 msgid "" diff --git a/howto/unicode.po b/howto/unicode.po index 22be9610c..ea8483f11 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-09-03 13:11+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.1\n" #: ../Doc/howto/unicode.rst:5 msgid "Unicode HOWTO" -msgstr "" +msgstr "Guide Unicode" #: ../Doc/howto/unicode.rst:0 msgid "Release" @@ -24,145 +25,116 @@ msgstr "Version" #: ../Doc/howto/unicode.rst:7 msgid "1.12" -msgstr "" +msgstr "1.12" #: ../Doc/howto/unicode.rst:9 msgid "" -"This HOWTO discusses Python support for Unicode, and explains various " -"problems that people commonly encounter when trying to work with Unicode." +"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 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:14 +#: ../Doc/howto/unicode.rst:15 msgid "Introduction to Unicode" -msgstr "" - -#: ../Doc/howto/unicode.rst:17 -msgid "History of Character Codes" -msgstr "" - -#: ../Doc/howto/unicode.rst:19 -msgid "" -"In 1968, the American Standard Code for Information Interchange, better " -"known by its acronym ASCII, was standardized. ASCII defined numeric codes " -"for various characters, with the numeric values running from 0 to 127. For " -"example, the lowercase letter 'a' is assigned 97 as its code value." -msgstr "" - -#: ../Doc/howto/unicode.rst:24 -msgid "" -"ASCII was an American-developed standard, so it only defined unaccented " -"characters. There was an 'e', but no 'é' or 'Í'. This meant that languages " -"which required accented characters couldn't be faithfully represented in " -"ASCII. (Actually the missing accents matter for English, too, which contains " -"words such as 'naïve' and 'café', and some publications have house styles " -"which require spellings such as 'coöperate'.)" -msgstr "" - -#: ../Doc/howto/unicode.rst:31 -msgid "" -"For a while people just wrote programs that didn't display accents. In the " -"mid-1980s an Apple II BASIC program written by a French speaker might have " -"lines like these:" -msgstr "" - -#: ../Doc/howto/unicode.rst:40 -msgid "" -"Those messages should contain accents (terminée, paramètre, enregistrés) and " -"they just look wrong to someone who can read French." -msgstr "" - -#: ../Doc/howto/unicode.rst:43 -msgid "" -"In the 1980s, almost all personal computers were 8-bit, meaning that bytes " -"could hold values ranging from 0 to 255. ASCII codes only went up to 127, " -"so some machines assigned values between 128 and 255 to accented " -"characters. Different machines had different codes, however, which led to " -"problems exchanging files. Eventually various commonly used sets of values " -"for the 128--255 range emerged. Some were true standards, defined by the " -"International Organization for Standardization, and some were *de facto* " -"conventions that were invented by one company or another and managed to " -"catch on." -msgstr "" - -#: ../Doc/howto/unicode.rst:52 -msgid "" -"255 characters aren't very many. For example, you can't fit both the " -"accented characters used in Western Europe and the Cyrillic alphabet used " -"for Russian into the 128--255 range because there are more than 128 such " -"characters." -msgstr "" - -#: ../Doc/howto/unicode.rst:56 -msgid "" -"You could write files using different codes (all your Russian files in a " -"coding system called KOI8, all your French files in a different coding " -"system called Latin1), but what if you wanted to write a French document " -"that quotes some Russian text? In the 1980s people began to want to solve " -"this problem, and the Unicode standardization effort began." -msgstr "" - -#: ../Doc/howto/unicode.rst:62 -msgid "" -"Unicode started out using 16-bit characters instead of 8-bit characters. 16 " -"bits means you have 2^16 = 65,536 distinct values available, making it " -"possible to represent many different characters from many different " -"alphabets; an initial goal was to have Unicode contain the alphabets for " -"every single human language. It turns out that even 16 bits isn't enough to " -"meet that goal, and the modern Unicode specification uses a wider range of " -"codes, 0 through 1,114,111 ( ``0x10FFFF`` in base 16)." -msgstr "" - -#: ../Doc/howto/unicode.rst:70 -msgid "" -"There's a related ISO standard, ISO 10646. Unicode and ISO 10646 were " -"originally separate efforts, but the specifications were merged with the 1.1 " -"revision of Unicode." -msgstr "" - -#: ../Doc/howto/unicode.rst:74 -msgid "" -"(This discussion of Unicode's history is highly simplified. The precise " -"historical details aren't necessary for understanding how to use Unicode " -"effectively, but if you're curious, consult the Unicode consortium site " -"listed in the References or the `Wikipedia entry for Unicode `_ for more information.)" -msgstr "" +msgstr "Introduction à Unicode" -#: ../Doc/howto/unicode.rst:83 +#: ../Doc/howto/unicode.rst:18 msgid "Definitions" -msgstr "" - -#: ../Doc/howto/unicode.rst:85 +msgstr "Définitions" + +#: ../Doc/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 " +"variety of user-selectable languages; the same program might need to output " +"an error message in English, French, Japanese, Hebrew, or Russian. Web " +"content can be written in any of these languages and can also include a " +"variety of emoji symbols. Python's string type uses the Unicode Standard for " +"representing characters, which lets Python programs work with all these " +"different possible characters." +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 " +"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 " +"de caractères de Python utilise le standard Unicode pour représenter les " +"caractères, ce qui permet aux programmes Python de travailler avec tous ces " +"différents caractères possibles." + +#: ../Doc/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 " +"unique code. The Unicode specifications are continually revised and updated " +"to add new languages and symbols." +msgstr "" +"Unicode (https://www.unicode.org/) est une spécification qui vise à lister " +"tous les caractères utilisés par les langues humaines et à donner à chaque " +"caractère son propre code unique. Les spécifications Unicode sont " +"continuellement révisées et mises à jour pour ajouter de nouvelles langues " +"et de nouveaux symboles." + +#: ../Doc/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 " -"are abstractions, and vary depending on the language or context you're " -"talking about. For example, the symbol for ohms (Ω) is usually drawn much " -"like the capital letter omega (Ω) in the Greek alphabet (they may even be " -"the same in some fonts), but these are two different characters that have " -"different meanings." +"vary depending on the language or context you're talking about. For " +"example, there's a character for \"Roman Numeral One\", 'Ⅰ', that's separate " +"from the uppercase letter 'I'. They'll usually look the same, but these are " +"two different characters that have different meanings." msgstr "" +"Un **caractère** est le plus petit composant possible d'un texte. « A », " +"« 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 " +"différents qui ont des significations différentes." -#: ../Doc/howto/unicode.rst:93 +#: ../Doc/howto/unicode.rst:42 msgid "" "The Unicode standard describes how characters are represented by **code " -"points**. A code point is an integer value, usually denoted in base 16. In " -"the standard, a code point is written using the notation ``U+12CA`` to mean " -"the character with value ``0x12ca`` (4,810 decimal). The Unicode standard " -"contains a lot of tables listing characters and their corresponding code " -"points:" +"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)." +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 " +"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 +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 :" -#: ../Doc/howto/unicode.rst:107 +#: ../Doc/howto/unicode.rst:70 msgid "" "Strictly, these definitions imply that it's meaningless to say 'this is " -"character ``U+12CA``'. ``U+12CA`` is a code point, which represents some " -"particular character; in this case, it represents the character 'ETHIOPIC " -"SYLLABLE WI'. In informal contexts, this distinction between code points " +"character ``U+265E``'. ``U+265E`` is a code point, which represents some " +"particular character; in this case, it represents the character 'BLACK CHESS " +"KNIGHT', '♞'. In informal contexts, this distinction between code points " "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 " +"distinction entre les points de code et les caractères sera parfois oubliée." -#: ../Doc/howto/unicode.rst:113 +#: ../Doc/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 " @@ -171,37 +143,61 @@ msgid "" "to worry about glyphs; figuring out the correct glyph to display is " "generally the job of a GUI toolkit or a terminal's font renderer." msgstr "" +"Un caractère est représenté sur un écran ou sur papier par un ensemble " +"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 " +"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:122 +#: ../Doc/howto/unicode.rst:86 msgid "Encodings" -msgstr "" +msgstr "Encodages" -#: ../Doc/howto/unicode.rst:124 +#: ../Doc/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). " -"This sequence needs to be represented as a set of bytes (meaning, values " -"from 0 through 255) in memory. The rules for translating a Unicode string " -"into a sequence of bytes are called an **encoding**." +"This sequence of code points needs to be represented in memory as a set of " +"**code units**, and **code units** are then mapped to 8-bit bytes. The " +"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 " +"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:130 +#: ../Doc/howto/unicode.rst:96 msgid "" -"The first encoding you might think of is an array of 32-bit integers. In " -"this representation, the string \"Python\" would look like this:" +"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 " +"representation, the string \"Python\" might look like this:" 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 :" -#: ../Doc/howto/unicode.rst:139 +#: ../Doc/howto/unicode.rst:106 msgid "" "This representation is straightforward but using it presents a number of " "problems." msgstr "" +"Cette représentation est simple mais son utilisation pose un certain nombre " +"de problèmes." -#: ../Doc/howto/unicode.rst:142 +#: ../Doc/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 " +"différemment." -#: ../Doc/howto/unicode.rst:144 +#: ../Doc/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 " @@ -211,123 +207,130 @@ 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 " +"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. " +"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:152 +#: ../Doc/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." msgstr "" +"Elle n’est pas compatible avec les fonctions C existantes telles que " +"``strlen()``, il faudrait donc utiliser une nouvelle famille de fonctions, " +"celle des chaînes larges (*wide strings*)." -#: ../Doc/howto/unicode.rst:155 -msgid "" -"Many Internet standards are defined in terms of textual data, and can't " -"handle content with embedded zero bytes." -msgstr "" - -#: ../Doc/howto/unicode.rst:158 -msgid "" -"Generally people don't use this encoding, instead choosing other encodings " -"that are more efficient and convenient. UTF-8 is probably the most commonly " -"supported encoding; it will be discussed below." -msgstr "" - -#: ../Doc/howto/unicode.rst:162 -msgid "" -"Encodings don't have to handle every possible Unicode character, and most " -"encodings don't. The rules for converting a Unicode string into the ASCII " -"encoding, for example, are simple; for each code point:" -msgstr "" - -#: ../Doc/howto/unicode.rst:166 -msgid "" -"If the code point is < 128, each byte is the same as the value of the code " -"point." -msgstr "" - -#: ../Doc/howto/unicode.rst:169 -msgid "" -"If the code point is 128 or greater, the Unicode string can't be represented " -"in this encoding. (Python raises a :exc:`UnicodeEncodeError` exception in " -"this case.)" -msgstr "" - -#: ../Doc/howto/unicode.rst:173 -msgid "" -"Latin-1, also known as ISO-8859-1, is a similar encoding. Unicode code " -"points 0--255 are identical to the Latin-1 values, so converting to this " -"encoding simply requires converting code points to byte values; if a code " -"point larger than 255 is encountered, the string can't be encoded into " -"Latin-1." -msgstr "" - -#: ../Doc/howto/unicode.rst:178 +#: ../Doc/howto/unicode.rst:122 msgid "" -"Encodings don't have to be simple one-to-one mappings like Latin-1. " -"Consider IBM's EBCDIC, which was used on IBM mainframes. Letter values " -"weren't in one block: 'a' through 'i' had values from 129 to 137, but 'j' " -"through 'r' were 145 through 153. If you wanted to use EBCDIC as an " -"encoding, you'd probably use some sort of lookup table to perform the " -"conversion, but this is largely an internal detail." +"Therefore this encoding isn't used very much, and people instead choose " +"other encodings that are more efficient and convenient, such as UTF-8." 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:185 +#: ../Doc/howto/unicode.rst:125 msgid "" -"UTF-8 is one of the most commonly used encodings. UTF stands for \"Unicode " -"Transformation Format\", and the '8' means that 8-bit numbers are used in " -"the encoding. (There are also a UTF-16 and UTF-32 encodings, but they are " -"less frequently used than UTF-8.) UTF-8 uses the following rules:" +"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' " +"means that 8-bit values are used in the encoding. (There are also UTF-16 " +"and UTF-32 encodings, but they are less frequently used than UTF-8.) UTF-8 " +"uses the following rules:" msgstr "" +"UTF-8 est l’un des encodages les plus couramment utilisés et Python " +"l’utilise souvent par défaut. UTF signifie « Unicode Transformation " +"Format » (format de transformation Unicode) et « 8 » signifie que des " +"nombres à 8 bits sont utilisés dans l'encodage (il existe également des " +"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:190 +#: ../Doc/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:191 +#: ../Doc/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, " +"trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " +"et 255." -#: ../Doc/howto/unicode.rst:194 +#: ../Doc/howto/unicode.rst:135 msgid "UTF-8 has several convenient properties:" -msgstr "" +msgstr "UTF-8 a plusieurs propriétés intéressantes :" -#: ../Doc/howto/unicode.rst:196 +#: ../Doc/howto/unicode.rst:137 msgid "It can handle any Unicode code point." -msgstr "" +msgstr "Il peut gérer n'importe quel point de code Unicode." -#: ../Doc/howto/unicode.rst:197 +#: ../Doc/howto/unicode.rst:138 msgid "" -"A Unicode string is turned into a sequence of bytes containing no embedded " -"zero bytes. This avoids byte-ordering issues, and means UTF-8 strings can " -"be processed by C functions such as ``strcpy()`` and sent through protocols " -"that can't handle zero bytes." +"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 " +"that UTF-8 strings can be processed by C functions such as ``strcpy()`` and " +"sent through protocols that can't handle zero bytes for anything other than " +"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+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:201 +#: ../Doc/howto/unicode.rst:143 msgid "A string of ASCII text is also valid UTF-8 text." -msgstr "" +msgstr "Une chaîne de texte ASCII est également un texte UTF-8 valide." -#: ../Doc/howto/unicode.rst:202 +#: ../Doc/howto/unicode.rst:144 msgid "" "UTF-8 is fairly compact; the majority of commonly used characters can be " "represented with one or two bytes." 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:204 +#: ../Doc/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 " "random 8-bit data will look like valid UTF-8." msgstr "" +"Si des octets sont corrompus ou perdus, il est possible de déterminer le " +"début du prochain point de code encodé en UTF-8 et de se resynchroniser. Il " +"est également improbable que des données 8-bits aléatoires ressemblent à du " +"UTF-8 valide." -#: ../Doc/howto/unicode.rst:211 ../Doc/howto/unicode.rst:485 -#: ../Doc/howto/unicode.rst:705 +#: ../Doc/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 " +"avoids the byte-ordering issues that can occur with integer and word " +"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é 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 msgid "References" msgstr "Références" -#: ../Doc/howto/unicode.rst:213 +#: ../Doc/howto/unicode.rst:159 msgid "" "The `Unicode Consortium site `_ has character " "charts, a glossary, and PDF versions of the Unicode specification. Be " @@ -335,15 +338,34 @@ msgid "" "history/>`_ of the origin and development of Unicode is also available on " "the site." 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 " +"`chronologie `_ de l’origine et du " +"développement de l’Unicode est également disponible sur le site." + +#: ../Doc/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)." -#: ../Doc/howto/unicode.rst:218 +#: ../Doc/howto/unicode.rst:168 msgid "" "To help understand the standard, Jukka Korpela has written `an introductory " "guide `_ to reading the Unicode " "character tables." msgstr "" +"Pour aider à comprendre le standard, Jukka Korpela a écrit `un guide " +"d’introduction `_ à la lecture des " +"tables de caractères Unicode (ressource en anglais)." -#: ../Doc/howto/unicode.rst:222 +#: ../Doc/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 " +"continuer." -#: ../Doc/howto/unicode.rst:227 +#: ../Doc/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 " +"caractères `_ » et " +"`UTF-8 `_, par exemple." -#: ../Doc/howto/unicode.rst:233 +#: ../Doc/howto/unicode.rst:183 msgid "Python's Unicode Support" -msgstr "" +msgstr "Prise en charge Unicode de Python" -#: ../Doc/howto/unicode.rst:235 +#: ../Doc/howto/unicode.rst:185 msgid "" "Now that you've learned the rudiments of Unicode, we can look at Python's " "Unicode features." msgstr "" +"Maintenant que vous avez appris les rudiments de l'Unicode, nous pouvons " +"regarder les fonctionnalités Unicode de Python." -#: ../Doc/howto/unicode.rst:239 +#: ../Doc/howto/unicode.rst:189 msgid "The String Type" -msgstr "" +msgstr "Le type *String*" -#: ../Doc/howto/unicode.rst:241 +#: ../Doc/howto/unicode.rst:191 msgid "" -"Since Python 3.0, the language features a :class:`str` type that contain " -"Unicode characters, meaning any string created using ``\"unicode rocks!\"``, " +"Since Python 3.0, the language's :class:`str` type contains Unicode " +"characters, meaning any string created using ``\"unicode rocks!\"``, " "``'unicode rocks!'``, or the triple-quoted string syntax is stored as " "Unicode." msgstr "" +"Depuis Python 3.0, le type :class:`str` du langage contient des caractères " +"Unicode, c'est-à-dire n'importe quelle chaîne créée à l'aide de ``\"unicode " +"déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets " +"est enregistrée comme Unicode." -#: ../Doc/howto/unicode.rst:245 +#: ../Doc/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::" 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:255 -msgid "" -"You can use a different encoding from UTF-8 by putting a specially-formatted " -"comment as the first or second line of the source code::" -msgstr "" - -#: ../Doc/howto/unicode.rst:260 +#: ../Doc/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 ::" -#: ../Doc/howto/unicode.rst:266 +#: ../Doc/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 " "string literals. (Depending on your system, you may see the actual capital-" "delta glyph instead of a \\u escape.) ::" msgstr "" +"Si vous ne pouvez pas entrer un caractère particulier dans votre éditeur ou " +"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 " +"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence " +"d'échappement ``\\u...``) ::" -#: ../Doc/howto/unicode.rst:278 +#: ../Doc/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 " +"argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument " +"*errors*." -#: ../Doc/howto/unicode.rst:282 +#: ../Doc/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 " @@ -423,17 +467,31 @@ msgid "" "``'backslashreplace'`` (inserts a ``\\xNN`` escape sequence). The following " "examples show the differences::" 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``, " +"``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:302 +#: ../Doc/howto/unicode.rst:247 msgid "" "Encodings are specified as strings containing the encoding's name. Python " -"3.2 comes with roughly 100 different encodings; see the Python Library " -"Reference at :ref:`standard-encodings` for a list. Some encodings have " -"multiple names; for example, ``'latin-1'``, ``'iso_8859_1'`` and ``'8859``' " -"are all synonyms for the same encoding." +"comes with roughly 100 different encodings; see the Python Library Reference " +"at :ref:`standard-encodings` for a list. Some encodings have multiple " +"names; for example, ``'latin-1'``, ``'iso_8859_1'`` and ``'8859``' are all " +"synonyms for the same encoding." 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:" +"`encodages standards ` pour une liste. Certains " +"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " +"et ``'8859'`` sont tous synonymes du même encodage." -#: ../Doc/howto/unicode.rst:308 +#: ../Doc/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 " @@ -441,19 +499,27 @@ msgid "" "built-in :func:`ord` function that takes a one-character Unicode string and " "returns the code point value::" msgstr "" +"Des chaînes Unicode à un caractère peuvent également être créées avec la " +"fonction native :func:`chr`, qui prend des entiers et renvoie une chaîne " +"Unicode de longueur 1 qui contient le point de code correspondant. " +"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:320 +#: ../Doc/howto/unicode.rst:265 msgid "Converting to Bytes" -msgstr "" +msgstr "Conversion en octets" -#: ../Doc/howto/unicode.rst:322 +#: ../Doc/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 " "the requested *encoding*." msgstr "" +"La méthode inverse de :meth:`bytes.decode` est :meth:`str.encode`, qui " +"renvoie une représentation :class:`bytes` de la chaîne Unicode, codée dans " +"l’encodage *encoding* demandé." -#: ../Doc/howto/unicode.rst:326 +#: ../Doc/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 " @@ -463,12 +529,19 @@ msgid "" "``backslashreplace`` (inserts a ``\\uNNNN`` escape sequence) and " "``namereplace`` (inserts a ``\\N{...}`` escape sequence)." msgstr "" +"Le paramètre *errors* est le même que le paramètre de la méthode :meth:" +"`~bytes.decode` mais possède quelques gestionnaires supplémentaires. En plus " +"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{...}``)." -#: ../Doc/howto/unicode.rst:334 +#: ../Doc/howto/unicode.rst:279 msgid "The following example shows the different results::" -msgstr "" +msgstr "L'exemple suivant montre les différents résultats ::" -#: ../Doc/howto/unicode.rst:355 +#: ../Doc/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 " @@ -477,20 +550,31 @@ msgid "" "is comfortable, and writing new encodings is a specialized task, so the " "module won't be covered in this HOWTO." msgstr "" +"Les routines de bas niveau pour enregistrer et accéder aux encodages " +"disponibles se trouvent dans le module :mod:`codecs`. L'implémentation de " +"nouveaux encodages nécessite également de comprendre le module :mod:" +"`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 guide." -#: ../Doc/howto/unicode.rst:364 +#: ../Doc/howto/unicode.rst:309 msgid "Unicode Literals in Python Source Code" -msgstr "" +msgstr "Littéraux Unicode dans le code source Python" -#: ../Doc/howto/unicode.rst:366 +#: ../Doc/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 " "code point. The ``\\U`` escape sequence is similar, but expects eight hex " "digits, not four::" 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 ::" -#: ../Doc/howto/unicode.rst:378 +#: ../Doc/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 " @@ -498,24 +582,38 @@ msgid "" "language. You can also assemble strings using the :func:`chr` built-in " "function, but this is even more tedious." msgstr "" +"L'utilisation de séquences d'échappement pour des points de code supérieurs " +"à 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 à " +"l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux." -#: ../Doc/howto/unicode.rst:384 +#: ../Doc/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 " "which would display the accented characters naturally, and have the right " "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 " +"naturellement, et a les bons caractères utilisés au moment de l'exécution." -#: ../Doc/howto/unicode.rst:389 +#: ../Doc/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 " "including a special comment as either the first or second line of the source " "file::" 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 " +"la deuxième ligne du fichier source ::" -#: ../Doc/howto/unicode.rst:399 +#: ../Doc/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 " @@ -523,38 +621,55 @@ 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 " +"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." -#: ../Doc/howto/unicode.rst:405 +#: ../Doc/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." -#: ../Doc/howto/unicode.rst:410 +#: ../Doc/howto/unicode.rst:355 msgid "Unicode Properties" -msgstr "" +msgstr "Propriétés Unicode" -#: ../Doc/howto/unicode.rst:412 +#: ../Doc/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 " -"character's name, its category, the numeric value if applicable (Unicode has " -"characters representing the Roman numerals and fractions such as one-third " -"and four-fifths). There are also properties related to the code point's use " -"in bidirectional text and other display-related properties." -msgstr "" - -#: ../Doc/howto/unicode.rst:419 +"points. For each defined code point, the information includes the " +"character's name, its category, the numeric value if applicable (for " +"characters representing numeric concepts such as the Roman numerals, " +"fractions such as one-third and four-fifths, etc.). There are also display-" +"related properties, such as how to use the code point in bidirectional text." +msgstr "" +"La spécification Unicode inclut une base de données d'informations sur les " +"points de code. Pour chaque point de code défini, l'information comprend le " +"nom du caractère, sa catégorie, la valeur numérique s'il y a lieu (pour les " +"caractères représentant des concepts numériques tels que les chiffres " +"romains, les fractions telles qu'un tiers et quatre cinquièmes, etc.). Il " +"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 msgid "" "The following program displays some information about several characters, " "and prints the numeric value of one particular character::" 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:433 +#: ../Doc/howto/unicode.rst:379 msgid "When run, this prints:" -msgstr "" +msgstr "Si vous l'exécutez, cela affiche :" -#: ../Doc/howto/unicode.rst:444 +#: ../Doc/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\", " @@ -566,12 +681,108 @@ msgid "" "unicode.org/reports/tr44/#General_Category_Values>`_ for a list of category " "codes." msgstr "" - -#: ../Doc/howto/unicode.rst:455 +"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, " +"``'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 " +"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 +msgid "Comparing Strings" +msgstr "Comparaison de chaînes de caractères" + +#: ../Doc/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 " +"example, a letter like 'ê' can be represented as a single code point U+00EA, " +"or as U+0065 U+0302, which is the code point for 'e' followed by a code " +"point for 'COMBINING CIRCUMFLEX ACCENT'. These will produce the same output " +"when printed, but one is a string of length 1 and the other is of length 2." +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 caractères de " +"longueur 1 et l'autre de longueur 2." + +#: ../Doc/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 " +"algorithm described by the Unicode Standard. This algorithm has special " +"handling for characters such as the German letter 'ß' (code point U+00DF), " +"which becomes the pair of lowercase letters 'ss'." +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 " +"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 +msgid "" +"A second tool is the :mod:`unicodedata` module's :func:`~unicodedata." +"normalize` function that converts strings to one of several normal forms, " +"where letters followed by a combining character are replaced with single " +"characters. :func:`normalize` can be used to perform string comparisons " +"that won't falsely report inequality if two strings use combining characters " +"differently:" +msgstr "" +"Un deuxième outil est la fonction :mod:`unicodedata` du module :func:" +"`~unicodedata.normalize` qui convertit les chaînes de caractères en l'une de " +"plusieurs formes normales, où les lettres suivies d'un caractère de " +"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 :" + +#: ../Doc/howto/unicode.rst:447 +msgid "When run, this outputs:" +msgstr "Si vous l'exécutez, cela affiche :" + +#: ../Doc/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', " +"'NFKC', 'NFD', and 'NFKD'." +msgstr "" +"Le premier argument de la fonction :func:`~unicodedata.normalize` est une " +"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 +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 +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 ? " +"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 msgid "Unicode Regular Expressions" -msgstr "" +msgstr "Expressions régulières Unicode" -#: ../Doc/howto/unicode.rst:457 +#: ../Doc/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 " @@ -580,58 +791,81 @@ msgid "" "characters ``[0-9]`` in bytes but in strings will match any character that's " "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 " +"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 " +"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:464 +#: ../Doc/howto/unicode.rst:492 msgid "" "The string in this example has the number 57 written in both Thai and Arabic " "numerals::" msgstr "" +"Dans cet exemple, la chaîne contient le nombre 57 écrit en chiffres arabes " +"et thaïlandais ::" -#: ../Doc/howto/unicode.rst:474 +#: ../Doc/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." +"compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"." -#: ../Doc/howto/unicode.rst:478 +#: ../Doc/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`` " "will match either Unicode whitespace characters or ``[ \\t\\n\\r\\f\\v]``." msgstr "" +"De même, ``\\w`` correspond à une grande variété de caractères Unicode mais " +"seulement ``[a-zA-Z0-9_]`` en octets (ou si :const:`re.ASCII` est fourni) et " +"``\\s`` correspond soit aux caractères blancs Unicode soit aux caractères " +"``[ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/unicode.rst:489 +#: ../Doc/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 :" -#: ../Doc/howto/unicode.rst:491 +#: ../Doc/howto/unicode.rst:519 msgid "" "`Processing Text Files in Python 3 `_, by Nick Coghlan." msgstr "" +"`Processing Text Files in Python 3 `_, par Nick Coghlan." -#: ../Doc/howto/unicode.rst:492 +#: ../Doc/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." -#: ../Doc/howto/unicode.rst:494 +#: ../Doc/howto/unicode.rst:522 msgid "" "The :class:`str` type is described in the Python library reference at :ref:" "`textseq`." msgstr "" +"Le type :class:`str` est décrit dans la référence de la bibliothèque Python " +"à :ref:`textseq`." -#: ../Doc/howto/unicode.rst:497 +#: ../Doc/howto/unicode.rst:525 msgid "The documentation for the :mod:`unicodedata` module." -msgstr "" +msgstr "La documentation du module :mod:`unicodedata`." -#: ../Doc/howto/unicode.rst:499 +#: ../Doc/howto/unicode.rst:527 msgid "The documentation for the :mod:`codecs` module." -msgstr "" +msgstr "La documentation du module :mod:`codecs`." -#: ../Doc/howto/unicode.rst:501 +#: ../Doc/howto/unicode.rst:529 msgid "" "Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF " "slides) `_ at " @@ -639,19 +873,29 @@ msgid "" "Python 2's Unicode features (where the Unicode string type is called " "``unicode`` and literals start with ``u``)." msgstr "" +"Marc-André Lemburg a donné une présentation intitulée `« Python et " +"Unicode » (diapositives 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:509 +#: ../Doc/howto/unicode.rst:537 msgid "Reading and Writing Unicode Data" -msgstr "" +msgstr "Lecture et écriture de données Unicode" -#: ../Doc/howto/unicode.rst:511 +#: ../Doc/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 " "do you convert Unicode into a form suitable for storage or transmission?" 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 ?" -#: ../Doc/howto/unicode.rst:515 +#: ../Doc/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 " @@ -659,8 +903,15 @@ msgid "" "Unicode data, for example. Many relational databases also support Unicode-" "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 " +"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:521 +#: ../Doc/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 " @@ -668,8 +919,13 @@ msgid "" "bytes with ``bytes.decode(encoding)``. However, the manual approach is not " "recommended." msgstr "" +"Les données Unicode sont généralement converties en un encodage particulier " +"avant d'être écrites sur le disque ou envoyées sur un connecteur réseau. Il " +"est possible de faire tout le travail vous-même : ouvrir un fichier, lire un " +"é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:526 +#: ../Doc/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-" @@ -682,8 +938,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 " +"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 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:536 +#: ../Doc/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 " @@ -694,18 +961,29 @@ msgid "" "*encoding* and *errors* parameters which are interpreted just like those in :" "meth:`str.encode` and :meth:`bytes.decode`." msgstr "" - -#: ../Doc/howto/unicode.rst:545 +"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` " +"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`." + +#: ../Doc/howto/unicode.rst:573 msgid "Reading Unicode from a file is therefore simple::" -msgstr "" +msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::" -#: ../Doc/howto/unicode.rst:551 +#: ../Doc/howto/unicode.rst:579 msgid "" "It's also possible to open files in update mode, allowing both reading and " "writing::" 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:559 +#: ../Doc/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 " @@ -717,33 +995,58 @@ msgid "" "endian encodings, that specify one particular byte ordering and don't skip " "the BOM." msgstr "" +"Le caractère Unicode ``U+FEFFF`` est utilisé comme marque pour indiquer le " +"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*." -#: ../Doc/howto/unicode.rst:568 +#: ../Doc/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 " -"dependent. The mark simply announces that the file is encoded in UTF-8. Use " -"the 'utf-8-sig' codec to automatically skip the mark if present for reading " -"such files." +"dependent. The mark simply announces that the file is encoded in UTF-8. For " +"reading such files, use the 'utf-8-sig' codec to automatically skip the mark " +"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 " +"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 " +"``utf-8-sig`` pour sauter automatiquement la marque si elle est présente." -#: ../Doc/howto/unicode.rst:576 +#: ../Doc/howto/unicode.rst:603 msgid "Unicode filenames" -msgstr "" +msgstr "Noms de fichiers Unicode" -#: ../Doc/howto/unicode.rst:578 +#: ../Doc/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 " "converting the Unicode string into some encoding that varies depending on " -"the system. For example, Mac OS X uses UTF-8 while Windows uses a " -"configurable encoding; on Windows, Python uses the name \"mbcs\" to refer to " -"whatever the currently configured encoding is. On Unix systems, there will " -"only be a filesystem encoding if you've set the ``LANG`` or ``LC_CTYPE`` " -"environment variables; if you haven't, the default encoding is UTF-8." -msgstr "" - -#: ../Doc/howto/unicode.rst:587 +"the system. Today Python is converging on using UTF-8: Python on MacOS has " +"used UTF-8 for several versions, and Python 3.6 switched to using UTF-8 on " +"Windows as well. On Unix systems, there will only be a filesystem encoding " +"if you've set the ``LANG`` or ``LC_CTYPE`` environment variables; if you " +"haven't, the default encoding is again UTF-8." +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." + +#: ../Doc/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 " @@ -751,18 +1054,26 @@ msgid "" "writing, you can usually just provide the Unicode string as the filename, " "and it will be automatically converted to the right encoding for you::" 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. " +"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:597 +#: ../Doc/howto/unicode.rst:625 msgid "" "Functions in the :mod:`os` module such as :func:`os.stat` will also accept " "Unicode filenames." msgstr "" +"Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent " +"également les noms de fichiers Unicode." -#: ../Doc/howto/unicode.rst:600 +#: ../Doc/howto/unicode.rst:628 msgid "" -"The :func:`os.listdir` function returns filenames and raises an issue: " +"The :func:`os.listdir` function returns filenames, which raises an issue: " "should it return the Unicode version of filenames, or should it return bytes " -"containing the encoded versions? :func:`os.listdir` will do both, depending " +"containing the encoded versions? :func:`os.listdir` can do both, depending " "on whether you provided the directory path as bytes or a Unicode string. If " "you pass a Unicode string as the path, filenames will be decoded using the " "filesystem's encoding and a list of Unicode strings will be returned, while " @@ -770,45 +1081,69 @@ msgid "" "assuming the default filesystem encoding is UTF-8, running the following " "program::" msgstr "" - -#: ../Doc/howto/unicode.rst:618 +"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 ? :" +"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 " +"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 " +"l'encodage par défaut du système de fichiers est UTF-8, exécuter le " +"programme suivant ::" + +#: ../Doc/howto/unicode.rst:646 msgid "will produce the following output:" -msgstr "" +msgstr "produit la sortie suivante :" -#: ../Doc/howto/unicode.rst:626 +#: ../Doc/howto/unicode.rst:654 msgid "" "The first list contains UTF-8-encoded filenames, and the second list " "contains the Unicode versions." 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:629 +#: ../Doc/howto/unicode.rst:657 msgid "" -"Note that on most occasions, the Unicode APIs should be used. The bytes " -"APIs should only be used on systems where undecodable file names can be " -"present, i.e. Unix systems." +"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 " +"undecodable file names can be present; that's pretty much only Unix systems " +"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 " +"peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix " +"maintenant." -#: ../Doc/howto/unicode.rst:635 +#: ../Doc/howto/unicode.rst:664 msgid "Tips for Writing Unicode-aware Programs" -msgstr "" +msgstr "Conseils pour écrire des programmes compatibles Unicode" -#: ../Doc/howto/unicode.rst:637 +#: ../Doc/howto/unicode.rst:666 msgid "" "This section provides some suggestions on writing software that deals with " "Unicode." msgstr "" +"Cette section fournit quelques suggestions sur l'écriture de logiciels qui " +"traitent de l'Unicode." -#: ../Doc/howto/unicode.rst:640 +#: ../Doc/howto/unicode.rst:669 msgid "The most important tip is:" -msgstr "" +msgstr "Le conseil le plus important est :" -#: ../Doc/howto/unicode.rst:642 +#: ../Doc/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." msgstr "" +"Il convient que le logiciel ne traite que des chaînes Unicode en interne, " +"décodant les données d'entrée dès que possible et encodant la sortie " +"uniquement à la fin." -#: ../Doc/howto/unicode.rst:645 +#: ../Doc/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 " @@ -816,8 +1151,14 @@ msgid "" "or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be " "raised." 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:" +"`TypeError` est levée." -#: ../Doc/howto/unicode.rst:650 +#: ../Doc/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 " @@ -828,53 +1169,83 @@ msgid "" "true if the input data also specifies the encoding, since the attacker can " "then choose a clever way to hide malicious text in the encoded bytestream." msgstr "" - -#: ../Doc/howto/unicode.rst:661 +"Lors de l'utilisation de données provenant d'un navigateur Web ou d'une " +"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 " +"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 " +"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 msgid "Converting Between File Encodings" -msgstr "" +msgstr "Conversion entre les encodages de fichiers" -#: ../Doc/howto/unicode.rst:663 +#: ../Doc/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 " "like a stream returning data in encoding #2." msgstr "" +"La classe :class:`~codecs.StreamRecoder` peut convertir de manière " +"transparente entre les encodages : prenant un flux qui renvoie des données " +"dans l'encodage #1, elle se comporte comme un flux qui renvoie des données " +"dans l'encodage #2." -#: ../Doc/howto/unicode.rst:667 +#: ../Doc/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::" msgstr "" +"Par exemple, si vous avez un fichier d'entrée *f* qui est en Latin-1, vous " +"pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il " +"renvoie des octets encodés en UTF-8 ::" -#: ../Doc/howto/unicode.rst:681 +#: ../Doc/howto/unicode.rst:710 msgid "Files in an Unknown Encoding" -msgstr "" +msgstr "Fichiers dans un encodage inconnu" -#: ../Doc/howto/unicode.rst:683 +#: ../Doc/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 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:697 +#: ../Doc/howto/unicode.rst:726 msgid "" "The ``surrogateescape`` error handler will decode any non-ASCII bytes as " -"code points in the Unicode Private Use Area ranging from U+DC80 to U+DCFF. " -"These private code points will then be turned back into the same bytes when " -"the ``surrogateescape`` error handler is used when encoding the data and " -"writing it back out." +"code points in a special range running from U+DC80 to U+DCFF. These code " +"points will then turn back into the same bytes when the ``surrogateescape`` " +"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 " +"données et les réécrire." -#: ../Doc/howto/unicode.rst:707 +#: ../Doc/howto/unicode.rst:736 msgid "" "One section of `Mastering Python 3 Input/Output `_, a PyCon 2010 talk by David " "Beazley, discusses text processing and binary data handling." 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." -#: ../Doc/howto/unicode.rst:711 +#: ../Doc/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 " +"diapositives ne couvrent que Python 2.x." -#: ../Doc/howto/unicode.rst:717 +#: ../Doc/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 " +"donnée par Benjamin Peterson qui traite de la représentation interne Unicode " +"en Python 3.3." -#: ../Doc/howto/unicode.rst:724 +#: ../Doc/howto/unicode.rst:753 msgid "Acknowledgements" msgstr "Remerciements" -#: ../Doc/howto/unicode.rst:726 +#: ../Doc/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 " "Kuchling, and Ezio Melotti." msgstr "" +"La première ébauche de ce document a été rédigée par Andrew Kuchling. Il a " +"depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et " +"Ezio Melotti." -#: ../Doc/howto/unicode.rst:730 +#: ../Doc/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 " "Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, " -"Terry J. Reedy, Chad Whitacre." -msgstr "" +"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, " +"Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von " +"Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham " +"Wideman." + +#~ msgid "History of Character Codes" +#~ msgstr "Histoire des codes de caractères" + +#~ msgid "" +#~ "In 1968, the American Standard Code for Information Interchange, better " +#~ "known by its acronym ASCII, was standardized. ASCII defined numeric " +#~ "codes for various characters, with the numeric values running from 0 to " +#~ "127. For example, the lowercase letter 'a' is assigned 97 as its code " +#~ "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 " +#~ "assignée à 97 comme valeur de code." + +#~ msgid "" +#~ "ASCII was an American-developed standard, so it only defined unaccented " +#~ "characters. There was an 'e', but no 'é' or 'Í'. This meant that " +#~ "languages which required accented characters couldn't be faithfully " +#~ "represented in ASCII. (Actually the missing accents matter for English, " +#~ "too, which contains words such as 'naïve' and 'café', and some " +#~ "publications have house styles which require spellings such as " +#~ "'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 " +#~ "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 " +#~ "publications ont des styles propres qui exigent des orthographes tels que " +#~ "« *coöperate* ».)" + +#~ msgid "" +#~ "For a while people just wrote programs that didn't display accents. In " +#~ "the mid-1980s an Apple II BASIC program written by a French speaker might " +#~ "have lines like these:" +#~ msgstr "" +#~ "Pendant un certain temps, les gens ont juste écrit des programmes qui " +#~ "n'affichaient pas d'accents. Au milieu des années 1980, un programme " +#~ "Apple II BASIC écrit par un français pouvait avoir des lignes comme " +#~ "celles-ci ::" + +#~ msgid "" +#~ "Those messages should contain accents (terminée, paramètre, enregistrés) " +#~ "and they just look wrong to someone who can read French." +#~ msgstr "" +#~ "Ces messages devraient contenir des accents (terminée, paramètre, " +#~ "enregistrés) et ils ont juste l'air anormaux à quelqu'un lisant le " +#~ "français." + +#~ msgid "" +#~ "In the 1980s, almost all personal computers were 8-bit, meaning that " +#~ "bytes could hold values ranging from 0 to 255. ASCII codes only went up " +#~ "to 127, so some machines assigned values between 128 and 255 to accented " +#~ "characters. Different machines had different codes, however, which led " +#~ "to problems exchanging files. Eventually various commonly used sets of " +#~ "values for the 128--255 range emerged. Some were true standards, defined " +#~ "by the International Organization for Standardization, and some were *de " +#~ "facto* conventions that were invented by one company or another and " +#~ "managed to catch on." +#~ 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 " +#~ "certaines machines ont assigné les valeurs entre 128 et 255 à des " +#~ "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 " +#~ "l'Organisation internationale de normalisation, et certaines étaient des " +#~ "conventions *de facto* qui ont été inventées par une entreprise ou une " +#~ "autre et qui ont fini par se répandre." + +#~ msgid "" +#~ "255 characters aren't very many. For example, you can't fit both the " +#~ "accented characters used in Western Europe and the Cyrillic alphabet used " +#~ "for Russian into the 128--255 range because there are more than 128 such " +#~ "characters." +#~ msgstr "" +#~ "255 caractères, ça n'est pas beaucoup. Par exemple, vous ne pouvez pas " +#~ "contenir à la fois les caractères accentués utilisés en Europe " +#~ "occidentale et l'alphabet cyrillique utilisé pour le russe dans la gamme " +#~ "128--255, car il y a plus de 128 de tous ces caractères." + +#~ msgid "" +#~ "You could write files using different codes (all your Russian files in a " +#~ "coding system called KOI8, all your French files in a different coding " +#~ "system called Latin1), but what if you wanted to write a French document " +#~ "that quotes some Russian text? In the 1980s people began to want to " +#~ "solve this problem, and the Unicode standardization effort began." +#~ msgstr "" +#~ "Vous pouviez écrire les fichiers avec des codes différents (tous vos " +#~ "fichiers russes dans un système de codage appelé *KOI8*, tous vos " +#~ "fichiers français dans un système de codage différent appelé *Latin1*), " +#~ "mais que faire si vous souhaitiez écrire un document français citant du " +#~ "texte russe ? Dans les années 80, les gens ont commencé à vouloir " +#~ "résoudre ce problème, et les efforts de standardisation Unicode ont " +#~ "commencé." + +#~ msgid "" +#~ "Unicode started out using 16-bit characters instead of 8-bit characters. " +#~ "16 bits means you have 2^16 = 65,536 distinct values available, making it " +#~ "possible to represent many different characters from many different " +#~ "alphabets; an initial goal was to have Unicode contain the alphabets for " +#~ "every single human language. It turns out that even 16 bits isn't enough " +#~ "to meet that goal, and the modern Unicode specification uses a wider " +#~ "range of codes, 0 through 1,114,111 ( ``0x10FFFF`` in base 16)." +#~ msgstr "" +#~ "Unicode a commencé par utiliser des caractères 16 bits au lieu de 8 bits. " +#~ "16 bits signifie que vous avez 2^16 = 65 536 valeurs distinctes " +#~ "disponibles, ce qui permet de représenter de nombreux caractères " +#~ "différents à partir de nombreux alphabets différents. Un des objectifs " +#~ "initiaux était de faire en sorte que Unicode contienne les alphabets de " +#~ "chaque langue humaine. Il s’avère que même 16 bits ne suffisent pas pour " +#~ "atteindre cet objectif, et la spécification Unicode moderne utilise une " +#~ "gamme de codes plus étendue, allant de 0 à 1 114 111 (``0x10FFFF`` en " +#~ "base 16)." + +#~ msgid "" +#~ "There's a related ISO standard, ISO 10646. Unicode and ISO 10646 were " +#~ "originally separate efforts, but the specifications were merged with the " +#~ "1.1 revision of Unicode." +#~ msgstr "" +#~ "Il existe une norme ISO connexe, ISO 10646. Unicode et ISO 10646 étaient " +#~ "à l’origine des efforts séparés, mais les spécifications ont été " +#~ "fusionnées avec la révision 1.1 d’Unicode." + +#~ msgid "" +#~ "(This discussion of Unicode's history is highly simplified. The precise " +#~ "historical details aren't necessary for understanding how to use Unicode " +#~ "effectively, but if you're curious, consult the Unicode consortium site " +#~ "listed in the References or the `Wikipedia entry for Unicode `_ for more information.)" +#~ msgstr "" +#~ "(Cette discussion sur l’historique d’Unicode est extrêmement simplifiée. " +#~ "Les détails historiques précis ne sont pas nécessaires pour comprendre " +#~ "comment utiliser efficacement Unicode, mais si vous êtes curieux, " +#~ "consultez le site du consortium Unicode indiqué dans les références ou la " +#~ "`page Wikipédia pour Unicode `_ (page en anglais) pour plus d’informations.)" + +#~ msgid "" +#~ "Many Internet standards are defined in terms of textual data, and can't " +#~ "handle content with embedded zero bytes." +#~ msgstr "" +#~ "De nombreuses normes Internet sont définies en termes de données " +#~ "textuelles et ne peuvent pas gérer le contenu incorporant des octets " +#~ "*zéro*." + +#~ msgid "" +#~ "Generally people don't use this encoding, instead choosing other " +#~ "encodings that are more efficient and convenient. UTF-8 is probably the " +#~ "most commonly supported encoding; it will be discussed below." +#~ msgstr "" +#~ "Généralement, les gens n’utilisent pas cet encodage, mais optent pour " +#~ "d’autres encodages plus efficaces et pratiques. UTF-8 est probablement " +#~ "l’encodage le plus couramment pris en charge ; celui-ci sera abordé ci-" +#~ "dessous." + +#~ msgid "" +#~ "Encodings don't have to handle every possible Unicode character, and most " +#~ "encodings don't. The rules for converting a Unicode string into the " +#~ "ASCII encoding, for example, are simple; for each code point:" +#~ msgstr "" +#~ "Les encodages n'ont pas à gérer tous les caractères Unicode possibles, et " +#~ "les plupart ne le font pas. Les règles pour convertir une chaîne Unicode " +#~ "en codage ASCII, par exemple, sont simples. pour chaque point de code :" + +#~ msgid "" +#~ "If the code point is < 128, each byte is the same as the value of the " +#~ "code point." +#~ msgstr "" +#~ "Si le point de code est < 128, chaque octet est identique à la valeur du " +#~ "point de code." + +#~ msgid "" +#~ "If the code point is 128 or greater, the Unicode string can't be " +#~ "represented in this encoding. (Python raises a :exc:`UnicodeEncodeError` " +#~ "exception in this case.)" +#~ msgstr "" +#~ "Si le point de code est égal à 128 ou plus, la chaîne Unicode ne peut pas " +#~ "être représentée dans ce codage (Python déclenche une exception :exc:" +#~ "`UnicodeEncodeError` dans ce cas)." + +#~ msgid "" +#~ "Latin-1, also known as ISO-8859-1, is a similar encoding. Unicode code " +#~ "points 0--255 are identical to the Latin-1 values, so converting to this " +#~ "encoding simply requires converting code points to byte values; if a code " +#~ "point larger than 255 is encountered, the string can't be encoded into " +#~ "Latin-1." +#~ msgstr "" +#~ "Latin-1, également connu sous le nom de ISO-8859-1, est un encodage " +#~ "similaire. Les points de code Unicode 0–255 étant identiques aux valeurs " +#~ "de Latin-1, la conversion en cet encodage nécessite simplement la " +#~ "conversion des points de code en octets de même valeur ; si un point de " +#~ "code supérieur à 255 est rencontré, la chaîne ne peut pas être codée en " +#~ "latin-1." + +#~ msgid "" +#~ "Encodings don't have to be simple one-to-one mappings like Latin-1. " +#~ "Consider IBM's EBCDIC, which was used on IBM mainframes. Letter values " +#~ "weren't in one block: 'a' through 'i' had values from 129 to 137, but 'j' " +#~ "through 'r' were 145 through 153. If you wanted to use EBCDIC as an " +#~ "encoding, you'd probably use some sort of lookup table to perform the " +#~ "conversion, but this is largely an internal detail." +#~ msgstr "" +#~ "Les encodages ne doivent pas nécessairement être de simples mappages un à " +#~ "un, comme Latin-1. Prenons l’exemple du code EBCDIC d’IBM, utilisé sur " +#~ "les ordinateurs centraux IBM. Les valeurs de lettre ne faisaient pas " +#~ "partie d’un bloc: les lettres « a » à « i » étaient comprises entre 129 " +#~ "et 137, mais les lettres « j » à « r » étaient comprises entre 145 et " +#~ "153. Si vous vouliez utiliser EBCDIC comme encodage, vous auriez " +#~ "probablement utilisé une sorte de table de correspondance pour effectuer " +#~ "la conversion, mais il s’agit en surtout d’un détail d'implémentation." diff --git a/howto/urllib2.po b/howto/urllib2.po index 134c51f05..d4ebbac9a 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -17,6 +17,7 @@ msgstr "" #: ../Doc/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 msgid "Author" diff --git a/install/index.po b/install/index.po index aaf5fe67d..ddda2a146 100644 --- a/install/index.po +++ b/install/index.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-08-01 23:52+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-16 09:10+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -55,6 +55,12 @@ msgid "" "recommendations section `__ in the Python Packaging User Guide for more information." msgstr "" +"Ce guide ne couvre que les outils de base, fournis avec cette version de " +"Python, pour construire et distribuer des extensions. D'autres outils " +"peuvent être plus sécurisés et plus simple à utiliser. Consultez `quick " +"recommendations section `__ dans le *Python Packaging User Guide* pour plus " +"d'informations." #: ../Doc/install/index.rst:47 msgid "Introduction" @@ -128,7 +134,7 @@ msgstr "" "distribution du module que vous souhaitez installer qui est destiné " "spécifiquement à votre plateforme et elle va s'installer comme n'importe " "quel autre logiciel sur votre plateforme. Par exemple, le développeur du " -"module pourrait faire un installeur exécutable disponible pour les " +"module pourrait faire un installateur exécutable disponible pour les " "utilisateurs Windows, un paquetage RPM pour les utilisateurs de systèmes " "Linux basés sur RPM (Red Hat, SuSE, Mandrake et bien d'autres), un paquet " "Debian pour les utilisateurs de Linux basé sur le système Debian et ainsi de " @@ -196,13 +202,15 @@ msgstr "" "distribution va contenir 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 : ::" +"module se fait simplement en exécutant ceci ::" #: ../Doc/install/index.rst:116 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:121 msgid "" @@ -231,7 +239,7 @@ msgid "" 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 : ::" +"habituellement fait avec la commande dans un terminal ::" #: ../Doc/install/index.rst:143 msgid "Platform variations" @@ -250,7 +258,7 @@ msgstr "" "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 : ::" +"consiste à faire ::" #: ../Doc/install/index.rst:154 msgid "" @@ -267,7 +275,7 @@ msgstr "" "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'invite de commandes et exécutez ::" #: ../Doc/install/index.rst:168 msgid "Splitting the job up" @@ -302,7 +310,7 @@ msgid "" msgstr "" "Par exemple, vous pouvez construire tout en une seule étape et ensuite " "installer le tout dans une deuxième étape, en invoquant le script " -"d'installation deux fois : ::" +"d'installation deux fois ::" #: ../Doc/install/index.rst:184 msgid "" @@ -347,7 +355,7 @@ msgstr "" "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 : ::" +"l'option :option:`!--build-base`. Par exemple ::" #: ../Doc/install/index.rst:208 msgid "" @@ -363,7 +371,7 @@ msgstr "" 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 " -"suit : ::" +"suit ::" #: ../Doc/install/index.rst:219 msgid "" @@ -435,7 +443,7 @@ msgstr "" "`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 " +"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\"):" @@ -566,7 +574,7 @@ msgstr "" "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 " "d’être installée. Les points et la capitalisation sont importantes dans les " -"chemins ; par exemple, une valeur qui utilise ``python3.2`` sur UNIX " +"chemins ; par exemple, une valeur qui utilise ``python3.2`` sur Unix " "utilisera typiquement ``Python32`` sur Windows." #: ../Doc/install/index.rst:306 @@ -756,6 +764,11 @@ msgid "" "`{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:391 msgid "Alternate installation: the home scheme" @@ -772,7 +785,7 @@ msgid "" 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 " +"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." @@ -986,7 +999,7 @@ msgstr "" #: ../Doc/install/index.rst:503 msgid "Alternate installation: Windows (the prefix scheme)" -msgstr "" +msgstr "Installation alternative : Windows (le schéma de préfixe)" #: ../Doc/install/index.rst:505 msgid "" @@ -995,12 +1008,18 @@ msgid "" "`!--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:512 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:514 msgid "" @@ -1009,10 +1028,14 @@ msgid "" "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:523 msgid ":file:`{prefix}\\\\Scripts`" -msgstr "" +msgstr ":file:`{prefix}\\\\Scripts`" #: ../Doc/install/index.rst:525 msgid ":file:`{prefix}\\\\Include\\\\{distname}`" @@ -1020,7 +1043,7 @@ msgstr ":file:`{prefix}\\\\Include\\\\{distname}`" #: ../Doc/install/index.rst:532 msgid "Custom Installation" -msgstr "" +msgstr "Installation personnalisée" #: ../Doc/install/index.rst:534 msgid "" @@ -1030,6 +1053,12 @@ 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:540 msgid "" @@ -1037,44 +1066,47 @@ msgid "" "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:545 msgid "Override option" -msgstr "" +msgstr "Option" #: ../Doc/install/index.rst:547 msgid "``--install-purelib``" -msgstr "" +msgstr "``--install-purelib``" #: ../Doc/install/index.rst:548 msgid "``--install-platlib``" -msgstr "" +msgstr "``--install-platlib``" #: ../Doc/install/index.rst:549 msgid "all modules" -msgstr "" +msgstr "tous les modules" #: ../Doc/install/index.rst:549 msgid "``--install-lib``" -msgstr "" +msgstr "``--install-lib``" #: ../Doc/install/index.rst:550 msgid "``--install-scripts``" -msgstr "" +msgstr "``--install-scripts``" #: ../Doc/install/index.rst:551 msgid "``--install-data``" -msgstr "" +msgstr "``--install-data``" #: ../Doc/install/index.rst:552 msgid "``--install-headers``" -msgstr "" +msgstr "``--install-headers``" #: ../Doc/install/index.rst:555 msgid "" "These override options can be relative, absolute, or explicitly defined in " "terms of one of the installation base directories. (There are two " -"installation base directories, and they are normally the same--- they only " +"installation base directories, and they are normally the same---they only " "differ when you use the Unix \"prefix scheme\" and supply different ``--" "prefix`` and ``--exec-prefix`` options; using ``--install-lib`` will " "override values computed or given for ``--install-purelib`` and ``--install-" @@ -1114,7 +1146,7 @@ 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:" "`{prefix}` itself. This is almost as easy as customizing the script " -"installation directory ---you just have to remember that there are two types " +"installation directory---you just have to remember that there are two types " "of modules to worry about, Python and extension modules, which can " "conveniently be both controlled by one option::" msgstr "" @@ -1140,7 +1172,7 @@ msgstr "" #: ../Doc/install/index.rst:613 msgid "or, equivalently, ::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/install/index.rst:621 msgid "" diff --git a/installing/index.po b/installing/index.po index 023b2bed1..92ebe6179 100644 --- a/installing/index.po +++ b/installing/index.po @@ -5,13 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-08-01 00:26+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-12-14 15:02+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" #: ../Doc/installing/index.rst:7 msgid "Installing Python Modules" @@ -31,7 +33,7 @@ msgid "" "supporting community of contributors and users that also make their software " "available for other Python developers to use under open source license terms." msgstr "" -"En temps que logiciel libre populaire, Python bénéficie d'une communauté " +"En tant que logiciel libre populaire, Python bénéficie d'une communauté " "active de contributeurs et d'utilisateurs qui rendent à leur tour leurs " "logiciels disponibles, sous licence libre, pour les autres développeurs " "Python." @@ -124,7 +126,7 @@ msgstr "" #: ../Doc/installing/index.rst:50 msgid "" -"the `Python Packaging Authority `__ are the group of " +"the `Python Packaging Authority `__ is 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 " @@ -169,7 +171,7 @@ msgstr "" msgid "" "The use of ``venv`` is now recommended for creating virtual environments." msgstr "" -"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " +"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " "environnements virtuels." #: ../Doc/installing/index.rst:75 @@ -239,7 +241,7 @@ msgid "" msgstr "" "Normalement, si un module approprié est déjà installé, l'installer à nouveau " "n'aura aucun effet. La mise à jour de modules existants doit être demandée " -"explicitement : ::" +"explicitement ::" #: ../Doc/installing/index.rst:113 msgid "" @@ -354,7 +356,7 @@ msgid "" msgstr "" "Sous Linux, Max OS X et autres systèmes POSIX, utiliser les commandes Python " "de la version souhaitée en combinaison avec l'option ``-m`` permet de lancer " -"la version appropriée de ``pip`` : ::" +"la version appropriée de ``pip`` ::" #: ../Doc/installing/index.rst:180 msgid "Appropriately versioned ``pip`` commands may also be available." @@ -386,7 +388,7 @@ msgid "" "package manager and other components of the system if a component is " "unexpectedly upgraded using ``pip``." msgstr "" -"Sur les systèmes Linux, une installation de Python sera généralement inclue " +"Sur les systèmes Linux, une installation de Python sera généralement incluse " "dans le cadre de la distribution. Installer dans cette installation de " "Python nécessite un accès *root* sur le système, et peut interférer avec le " "fonctionnement du gestionnaire de paquets du système et d'autres composants " diff --git a/library/2to3.po b/library/2to3.po index 1ff5b8390..5f3d314e6 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-09-29 19:28+0200\n" +"PO-Revision-Date: 2019-09-16 11:04+0200\n" "Last-Translator: Léa Klein \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/2to3.rst:4 msgid "2to3 - Automated Python 2 to 3 code translation" -msgstr "*2to3* --- Traduction automatique de code en Python 2 vers Python 3" +msgstr "*2to3* — Traduction automatique de code en Python 2 vers Python 3" #: ../Doc/library/2to3.rst:8 msgid "" @@ -47,7 +47,7 @@ msgid "" "2to3 will usually be installed with the Python interpreter as a script. It " "is also located in the :file:`Tools/scripts` directory of the Python root." msgstr "" -"*2to3* sera généralement installé avec l'interpréteur Python en temps que " +"*2to3* sera généralement installé avec l'interpréteur Python en tant que " "script. Il est également situé dans le dossier :file:`Tools/scripts` à " "racine de Python." @@ -84,7 +84,7 @@ msgstr "" #: ../Doc/library/2to3.rst:51 msgid "After transformation, :file:`example.py` looks like this::" -msgstr "Après transformation, :file:`example.py` ressemble à : ::" +msgstr "Après transformation, :file:`example.py` ressemble à ::" #: ../Doc/library/2to3.rst:59 msgid "" @@ -106,7 +106,7 @@ msgstr "" "fixers>`. L'option :option:`!-l` énumère tous les correcteurs disponibles. " "Un ensemble explicite de correcteurs à exécuter peut être donné avec :option:" "`!-f`. De même, :option:`!-x` désactive explicitement un correcteur. " -"L'exemple suivant exécute uniquement les ``imports`` et les correcteurs " +"L'exemple suivant exécute uniquement les ``import`` et les correcteurs " "``has_key`` :" #: ../Doc/library/2to3.rst:70 @@ -383,8 +383,8 @@ msgid "" msgstr "" "Fixe les méthodes d'itération sur les dictionnaires. :meth:`dict.iteritems` " "est converti en :meth:`dict.items`, :meth:`dict.iterkeys` en :meth:`dict." -"keys` et :meth:`dict.itervalues` en :meth:`dict.values`. Similarly, :meth:" -"`dict.viewitems`, :meth:`dict.viewkeys` et :meth:`dict.viewvalues` sont " +"keys` et :meth:`dict.itervalues` en :meth:`dict.values`. De la même façon, :" +"meth:`dict.viewitems`, :meth:`dict.viewkeys` et :meth:`dict.viewvalues` sont " "convertis respectivement en :meth:`dict.items`, :meth:`dict.keys` et :meth:" "`dict.values`. Il encapsule également les usages existants de :meth:`dict." "items`, :meth:`dict.keys` et :meth:`dict.values` dans un appel à :class:" @@ -455,11 +455,12 @@ 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." -msgstr "Détecte les imports voisins et les convertis en imports relatifs." +msgstr "" +"Détecte les importations voisines et les convertit en importations relatives." #: ../Doc/library/2to3.rst:272 msgid "Handles module renames in the standard library." @@ -500,9 +501,9 @@ msgid "" "func:`itertools.imap`. Imports of :func:`itertools.ifilterfalse` are also " "changed to :func:`itertools.filterfalse`." msgstr "" -"Supprime les imports de :func:`itertools.ifilter`, :func:`itertools.izip` " -"et :func:`itertools.imap`. Les imports de :func:`itertools.ifilterfalse` " -"sont aussi changés en :func:`itertools.filterfalse`." +"Supprime les importations de :func:`itertools.ifilter`, :func:`itertools." +"izip` et :func:`itertools.imap`. Les importations de :func:`itertools." +"ifilterfalse` sont aussi changées en :func:`itertools.filterfalse`." #: ../Doc/library/2to3.rst:302 msgid "" @@ -766,7 +767,7 @@ msgstr "" #: ../Doc/library/2to3.rst:456 msgid ":mod:`lib2to3` - 2to3's library" -msgstr ":mod:`lib2to3` --- la bibliothèque de *2to3*" +msgstr ":mod:`lib2to3` — la bibliothèque de *2to3*" #: ../Doc/library/2to3.rst:465 msgid "**Source code:** :source:`Lib/lib2to3/`" diff --git a/library/__future__.po b/library/__future__.po index 29394c40e..72f3469b4 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-05 11:18+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-06-01 23:02+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" #: ../Doc/library/__future__.rst:2 msgid ":mod:`__future__` --- Future statement definitions" -msgstr ":mod:`__future__` --- Définitions des futurs" +msgstr ":mod:`__future__` — Définitions des futurs" #: ../Doc/library/__future__.rst:7 msgid "**Source code:** :source:`Lib/__future__.py`" @@ -25,12 +26,15 @@ msgstr "**Source code:** :source:`Lib/_future_.py`" #: ../Doc/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 msgid "" "To avoid confusing existing tools that analyze import statements and expect " "to find the modules they're importing." 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 msgid "" @@ -38,6 +42,10 @@ msgid "" "2.1 at least yield runtime exceptions (the import of :mod:`__future__` will " "fail, because there was no module of that name prior to 2.1)." msgstr "" +"s'assurer que les :ref:`instructions *future* ` lancées sous les " +"versions antérieures à 2.1 lèvent au moins des exceptions à l'exécution " +"(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 msgid "" @@ -46,22 +54,31 @@ msgid "" "and can be inspected programmatically via importing :mod:`__future__` and " "examining its contents." msgstr "" +"Pour documenter le phasage de changements entraînant des incompatibilités : " +"introduction, utilisation obligatoire. Il s’agit d’une forme de " +"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 msgid "Each statement in :file:`__future__.py` is of the form::" -msgstr "" +msgstr "Chaque instruction dans :file:`__future__.py` est de la forme ::" #: ../Doc/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`::" msgstr "" +"où, normalement, *OptionalRelease* est inférieur à *MandatoryRelease*, et " +"les deux sont des quintuplets de la même forme que :data:`sys." +"version_info` ::" #: ../Doc/library/__future__.rst:41 msgid "" "*OptionalRelease* records the first release in which the feature was " "accepted." msgstr "" +"*OptionalRelease* enregistre la première version dans laquelle la " +"fonctionnalité a été acceptée." #: ../Doc/library/__future__.rst:43 msgid "" @@ -69,6 +86,9 @@ msgid "" "*MandatoryRelease* predicts the release in which the feature will become " "part of the language." msgstr "" +"Dans le cas d'un *MandatoryRelease* qui n'a pas encore eu lieu, " +"*MandatoryRelease* prédit la *release* dans laquelle la fonctionnalité " +"deviendra un élément du langage." #: ../Doc/library/__future__.rst:47 msgid "" @@ -77,18 +97,26 @@ msgid "" "statement to use the feature in question, but may continue to use such " "imports." msgstr "" +"Sinon *MandatoryRelease* enregistre lorsque la fonctionnalité est devenue " +"une partie du langage ; dans cette version ou les suivantes, les modules " +"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 msgid "" "*MandatoryRelease* may also be ``None``, meaning that a planned feature got " "dropped." msgstr "" +"*MandatoryRelease* peut également être ``None``, ce qui signifie qu'une " +"fonction planifiée a été abandonnée." #: ../Doc/library/__future__.rst:54 msgid "" "Instances of class :class:`_Feature` have two corresponding methods, :meth:" "`getOptionalRelease` and :meth:`getMandatoryRelease`." msgstr "" +"Les instances de classe :class:`_Feature` ont deux méthodes " +"correspondantes, :meth:`getOptionalRelease` et :meth:`getMandatoryRelease`." #: ../Doc/library/__future__.rst:57 msgid "" @@ -97,6 +125,11 @@ msgid "" "dynamically compiled code. This flag is stored in the :attr:`compiler_flag` " "attribute on :class:`_Feature` instances." msgstr "" +"*CompilerFlag* est un drapeau (chaque bit représente un champ) qui doit être " +"passé en tant que quatrième argument à la fonction native :func:`compile` " +"pour activer la fonctionnalité dans le code compilé dynamiquement. Cet " +"indicateur est stocké dans l'attribut :attr:`compiler_flag` dans les " +"instances de :class:`_Feature`." #: ../Doc/library/__future__.rst:62 msgid "" @@ -138,7 +171,7 @@ msgstr "2.2" #: ../Doc/library/__future__.rst:69 msgid ":pep:`227`: *Statically Nested Scopes*" -msgstr ":pep:`227`: *Statically Nested Scopes*" +msgstr ":pep:`227` : *Portées imbriquées*" #: ../Doc/library/__future__.rst:72 msgid "generators" @@ -154,7 +187,7 @@ msgstr "2.3" #: ../Doc/library/__future__.rst:72 msgid ":pep:`255`: *Simple Generators*" -msgstr ":pep:`255` : *Générateurs simples*" +msgstr ":pep:`255` : *Générateurs simples*" #: ../Doc/library/__future__.rst:75 msgid "division" @@ -171,7 +204,7 @@ msgstr "3.0" #: ../Doc/library/__future__.rst:75 msgid ":pep:`238`: *Changing the Division Operator*" -msgstr ":pep:`328` : *Changer l'opérateur de division*" +msgstr ":pep:`238` : *Changement de l'opérateur de division*" #: ../Doc/library/__future__.rst:78 msgid "absolute_import" @@ -184,6 +217,8 @@ msgstr "2.5.0a1" #: ../Doc/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 msgid "with_statement" @@ -195,7 +230,7 @@ msgstr "2.6" #: ../Doc/library/__future__.rst:81 msgid ":pep:`343`: *The \"with\" Statement*" -msgstr ":pep:`343` : *L'instruction \"with\"*" +msgstr ":pep:`343` : *L'instruction \"with\"*" #: ../Doc/library/__future__.rst:84 msgid "print_function" @@ -207,7 +242,7 @@ msgstr "2.6.0a2" #: ../Doc/library/__future__.rst:84 msgid ":pep:`3105`: *Make print a function*" -msgstr ":pep:`3105`: *Make print a function*" +msgstr ":pep:`3105` : *Transformation de print en fonction*" #: ../Doc/library/__future__.rst:87 msgid "unicode_literals" @@ -215,7 +250,7 @@ msgstr "unicode_literals" #: ../Doc/library/__future__.rst:87 msgid ":pep:`3112`: *Bytes literals in Python 3000*" -msgstr ":pep:`3112` : *Obtets littéraux en Python 3000*" +msgstr ":pep:`3112` : *Chaînes d'octets littéraux en Python 3000*" #: ../Doc/library/__future__.rst:90 msgid "generator_stop" @@ -232,10 +267,11 @@ msgstr "3.7" #: ../Doc/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 msgid "annotations" -msgstr "" +msgstr "annotations" #: ../Doc/library/__future__.rst:93 msgid "3.7.0b1" @@ -247,7 +283,7 @@ msgstr "4.0" #: ../Doc/library/__future__.rst:93 msgid ":pep:`563`: *Postponed evaluation of annotations*" -msgstr "" +msgstr ":pep:`563` : *Évaluation différée des annotations*" #: ../Doc/library/__future__.rst:102 msgid ":ref:`future`" @@ -255,7 +291,7 @@ msgstr ":ref:`future`" #: ../Doc/library/__future__.rst:103 msgid "How the compiler treats future imports." -msgstr "Comment le compilateur gère les imports du futur." +msgstr "Comment le compilateur gère les importations « futures »." #, fuzzy #~ msgid "future" diff --git a/library/__main__.po b/library/__main__.po index d5fe92544..026580392 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/__main__.rst:3 msgid ":mod:`__main__` --- Top-level script environment" -msgstr ":mod:`__main__` --- Point d'entrée des scripts" +msgstr ":mod:`__main__` — Point d'entrée des scripts" #: ../Doc/library/__main__.rst:10 msgid "" diff --git a/library/_dummy_thread.po b/library/_dummy_thread.po index 7bba1a025..d29dc963d 100644 --- a/library/_dummy_thread.po +++ b/library/_dummy_thread.po @@ -5,14 +5,14 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2018-09-29 16:01+0200\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" -"Last-Translator: \n" "X-Generator: Poedit 2.0.2\n" #: ../Doc/library/_dummy_thread.rst:2 diff --git a/library/_thread.po b/library/_thread.po index 23dc03cb7..8f4472a90 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-04 11:23+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-11 18:37+0100\n" +"Last-Translator: Stéphane HUC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/_thread.rst:2 msgid ":mod:`_thread` --- Low-level threading API" -msgstr ":mod:`_thread` --- API bas niveau de gestion de fils d'exécution" +msgstr ":mod:`_thread` — API bas niveau de gestion de fils d'exécution" #: ../Doc/library/_thread.rst:15 msgid "" @@ -28,18 +28,25 @@ msgid "" "provided. The :mod:`threading` module provides an easier to use and higher-" "level threading API built on top of this module." msgstr "" +"Ce module fournit les primitives de bas niveau pour travailler avec de " +"multiples fils d'exécution (aussi appelés :dfn:`light-weight processes` ou :" +"dfn:`tasks`) — plusieurs fils d'exécution de contrôle partagent leur espace " +"de données global. Pour la synchronisation, de simples verrous (aussi " +"appelés des :dfn:`mutexes` ou des :dfn:`binary semaphores`) sont fournis. Le " +"module :mod:`threading` fournit une API de fils d'exécution de haut niveau, " +"plus facile à utiliser et construite à partir de ce module." #: ../Doc/library/_thread.rst:26 msgid "This module used to be optional, it is now always available." -msgstr "" +msgstr "Ce module était optionnel, il est maintenant toujours disponible." #: ../Doc/library/_thread.rst:29 msgid "This module defines the following constants and functions:" -msgstr "Ce module définit les constantes et fonctions suivantes :" +msgstr "Ce module définit les constantes et les fonctions suivantes :" #: ../Doc/library/_thread.rst:33 msgid "Raised on thread-specific errors." -msgstr "Levée lors d'erreur spécifique aux fils d'exécution." +msgstr "Levée lors d'erreurs spécifiques aux fils d'exécution." #: ../Doc/library/_thread.rst:35 msgid "This is now a synonym of the built-in :exc:`RuntimeError`." @@ -48,7 +55,7 @@ msgstr "" #: ../Doc/library/_thread.rst:41 msgid "This is the type of lock objects." -msgstr "C'est le type des verrous." +msgstr "C'est le type d'objets verrous." #: ../Doc/library/_thread.rst:46 msgid "" @@ -59,28 +66,50 @@ msgid "" "terminates with an unhandled exception, a stack trace is printed and then " "the thread exits (but other threads continue to run)." 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)." #: ../Doc/library/_thread.rst:56 msgid "" -"Raise a :exc:`KeyboardInterrupt` exception in the main thread. A subthread " -"can use this function to interrupt the main thread." +"Simulate the effect of a :data:`signal.SIGINT` signal arriving in the main " +"thread. A thread can use this function to interrupt the main thread." +msgstr "" +"Simule l'effet d'un signal :data:`signal.SIGINT` arrivant au fil d'exécution " +"principal. Un fil d'exécution peut utiliser cette fonction pour interrompre " +"le fil d'exécution principal." + +#: ../Doc/library/_thread.rst:59 +msgid "" +"If :data:`signal.SIGINT` isn't handled by Python (it was set to :data:" +"`signal.SIG_DFL` or :data:`signal.SIG_IGN`), this function does nothing." msgstr "" +"Si le signal :data:`signal.SIGINT` n'est pas géré par Python (s'il a été " +"paramétré à :data:`signal.SIG_DFL` ou :data:`signal.SIG_IGN`), cette " +"fonction ne fait rien." -#: ../Doc/library/_thread.rst:62 +#: ../Doc/library/_thread.rst:66 msgid "" "Raise the :exc:`SystemExit` exception. When not caught, this will cause the " "thread to exit silently." msgstr "" +"Lève une exception :exc:`SystemExit`. Quand elle n'est pas interceptée, le " +"fil d'exécution se terminera silencieusement." -#: ../Doc/library/_thread.rst:76 +#: ../Doc/library/_thread.rst:80 msgid "" "Return a new lock object. Methods of locks are described below. The lock " "is initially unlocked." msgstr "" -"Renvoie un nouvel objet *lock*. Les méthodes de l'objet *lock* sont décrites " -"ci-après. Le *lock* est initialement déverrouillé." +"Renvoie un nouveau verrou. Les méthodes des verrous sont décrites ci-" +"dessous. Le verrou est initialement déverrouillé." -#: ../Doc/library/_thread.rst:82 +#: ../Doc/library/_thread.rst:86 msgid "" "Return the 'thread identifier' of the current thread. This is a nonzero " "integer. Its value has no direct meaning; it is intended as a magic cookie " @@ -88,8 +117,14 @@ msgid "" "identifiers may be recycled when a thread exits and another thread is " "created." msgstr "" +"Renvoie l'« identifiant de fil » du fil d'exécution courant. C'est un " +"entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " +"à être utilisé comme *cookie* magique, par exemple pour indexer un " +"dictionnaire de données pour chaque fil. Les identifiants de fils peuvent " +"être recyclés lorsqu'un fil d'exécution se termine et qu'un autre fil est " +"créé." -#: ../Doc/library/_thread.rst:90 +#: ../Doc/library/_thread.rst:94 msgid "" "Return the thread stack size used when creating new threads. The optional " "*size* argument specifies the stack size to be used for subsequently created " @@ -105,113 +140,175 @@ msgid "" "system memory page size - platform documentation should be referred to for " "more information (4 KiB pages are common; using multiples of 4096 for the " "stack size is the suggested approach in the absence of more specific " -"information). Availability: Windows, systems with POSIX threads." +"information)." msgstr "" +"Renvoie la taille de la pile d'exécution utilisée lors de la création de " +"nouveaux fils d'exécution. L'argument optionnel *size* spécifie la taille de " +"pile à utiliser pour les fils créés ultérieurement, et doit être à 0 (pour " +"utiliser la taille de la plate-forme ou la valeur configurée par défaut) ou " +"un entier positif supérieur ou égal à 32 768 (32 Kio). Si *size* n'est pas " +"spécifié, 0 est utilisé. Si la modification de la taille de la pile de fils " +"n'est pas prise en charge, une exception :exc:`RuntimeError` est levée. Si " +"la taille de la pile spécifiée n'est pas valide, une exception :exc:" +"`ValueError` est levée et la taille de la pile n'est pas modifiée. 32 Kio " +"est actuellement la valeur minimale de taille de la pile prise en charge " +"pour garantir un espace de pile suffisant pour l'interpréteur lui-même. " +"Notez que certaines plates-formes peuvent avoir des restrictions " +"particulières sur les valeurs de taille de la pile, telles que l'exigence " +"d'une taille de pile minimale > 32 Kio ou d'une allocation en multiples de " +"la taille de page de la mémoire du système – la documentation de la plate-" +"forme devrait être consultée pour plus d'informations (4 Kio sont courants ; " +"en l'absence de renseignements plus spécifiques, l'approche suggérée est " +"l'utilisation de multiples de 4 096 octets pour la taille de la pile)." #: ../Doc/library/_thread.rst:109 msgid "" +":ref:`Availability `: Windows, systems with POSIX threads." +msgstr "" +":ref:`Disponibilité ` : Windows et systèmes gérant les fils " +"d'exécution POSIX." + +#: ../Doc/library/_thread.rst:114 +msgid "" "The maximum value allowed for the *timeout* parameter of :meth:`Lock." "acquire`. Specifying a timeout greater than this value will raise an :exc:" "`OverflowError`." msgstr "" "La valeur maximale autorisée pour le paramètre *timeout* de la méthode :" -"meth:`Lock.acquire`. Donner un délai d'attente supérieur à cette valeur lève " -"une :exc:`OverflowError`." +"meth:`Lock.acquire`. Préciser un délai d'attente supérieur à cette valeur " +"lève une exception :exc:`OverflowError`." -#: ../Doc/library/_thread.rst:116 +#: ../Doc/library/_thread.rst:121 msgid "Lock objects have the following methods:" -msgstr "Les verrous (`lock objects`) ont les méthodes suivantes :" +msgstr "Les verrous ont les méthodes suivantes :" -#: ../Doc/library/_thread.rst:121 +#: ../Doc/library/_thread.rst:126 msgid "" "Without any optional argument, this method acquires the lock " "unconditionally, if necessary waiting until it is released by another thread " "(only one thread at a time can acquire a lock --- that's their reason for " "existence)." msgstr "" +"Sans aucun argument optionnel, cette méthode acquiert le verrou " +"inconditionnellement, et si nécessaire attend jusqu'à ce qu'il soit relâché " +"par un autre fil d'exécution (un seul fil d'exécution à la fois peut " +"acquérir le verrou — c'est leur raison d'être)." -#: ../Doc/library/_thread.rst:125 +#: ../Doc/library/_thread.rst:130 msgid "" "If the integer *waitflag* argument is present, the action depends on its " "value: if it is zero, the lock is only acquired if it can be acquired " "immediately without waiting, while if it is nonzero, the lock is acquired " "unconditionally as above." msgstr "" +"Si l'argument *waitflag*, un entier, est présent, l'action dépend de sa " +"valeur : si elle est de zéro, le verrou est seulement acquis s'il peut être " +"acquis immédiatement, sans attendre, sinon le verrou est acquis " +"inconditionnellement comme ci-dessus." -#: ../Doc/library/_thread.rst:130 +#: ../Doc/library/_thread.rst:135 msgid "" "If the floating-point *timeout* argument is present and positive, it " "specifies the maximum wait time in seconds before returning. A negative " "*timeout* argument specifies an unbounded wait. You cannot specify a " "*timeout* if *waitflag* is zero." msgstr "" +"Si l'argument *timeout*, en virgule flottante, est présent et positif, il " +"spécifie le temps d'attente maximum en secondes avant de renvoyer. Un " +"argument *timeout* négatif spécifie une attente illimitée. Vous ne pouvez " +"pas spécifier un *timeout* si *waitflag* est à zéro." -#: ../Doc/library/_thread.rst:135 +#: ../Doc/library/_thread.rst:140 msgid "" "The return value is ``True`` if the lock is acquired successfully, ``False`` " "if not." msgstr "" +"La valeur renvoyée est ``True`` si le verrou est acquis avec succès, sinon " +"``False``." -#: ../Doc/library/_thread.rst:138 +#: ../Doc/library/_thread.rst:143 msgid "The *timeout* parameter is new." msgstr "Le paramètre *timeout* est nouveau." -#: ../Doc/library/_thread.rst:141 +#: ../Doc/library/_thread.rst:146 msgid "Lock acquires can now be interrupted by signals on POSIX." msgstr "" +"Le verrou acquis peut maintenant être interrompu par des signaux sur POSIX." -#: ../Doc/library/_thread.rst:147 +#: ../Doc/library/_thread.rst:152 msgid "" "Releases the lock. The lock must have been acquired earlier, but not " "necessarily by the same thread." msgstr "" +"Relâche le verrou. Le verrou doit avoir été acquis plus tôt, mais pas " +"nécessairement par le même fil d'exécution." -#: ../Doc/library/_thread.rst:153 +#: ../Doc/library/_thread.rst:158 msgid "" "Return the status of the lock: ``True`` if it has been acquired by some " "thread, ``False`` if not." msgstr "" +"Renvoie le statut du verrou : ``True`` s'il a été acquis par certains fils " +"d'exécution, sinon ``False``." -#: ../Doc/library/_thread.rst:156 +#: ../Doc/library/_thread.rst:161 msgid "" "In addition to these methods, lock objects can also be used via the :keyword:" "`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. ::" -#: ../Doc/library/_thread.rst:166 +#: ../Doc/library/_thread.rst:171 msgid "**Caveats:**" msgstr "**Avertissements :**" -#: ../Doc/library/_thread.rst:170 +#: ../Doc/library/_thread.rst:175 msgid "" "Threads interact strangely with interrupts: the :exc:`KeyboardInterrupt` " "exception will be received by an arbitrary thread. (When the :mod:`signal` " "module is available, interrupts always go to the main thread.)" msgstr "" +"Les fils d'exécution interagissent étrangement avec les interruptions : " +"l'exception :exc:`KeyboardInterrupt` sera reçue par un fil d'exécution " +"arbitraire. (Quand le module :mod:`signal` est disponible, les interruptions " +"vont toujours au fil d'exécution principal)." -#: ../Doc/library/_thread.rst:174 +#: ../Doc/library/_thread.rst:179 msgid "" "Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is " "equivalent to calling :func:`_thread.exit`." msgstr "" +"Appeler la fonction :func:`sys.exit` ou lever l'exception :exc:`SystemExit` " +"est équivalent à appeler la fonction :func:`_thread.exit`." -#: ../Doc/library/_thread.rst:177 +#: ../Doc/library/_thread.rst:182 msgid "" "It is not possible to interrupt the :meth:`acquire` method on a lock --- " "the :exc:`KeyboardInterrupt` exception will happen after the lock has been " "acquired." msgstr "" +"Il n'est pas possible d'interrompre la méthode :meth:`acquire` sur un verrou " +"— l'exception :exc:`KeyboardInterrupt` surviendra après que le verrou a été " +"acquis." -#: ../Doc/library/_thread.rst:180 +#: ../Doc/library/_thread.rst:185 msgid "" "When the main thread exits, it is system defined whether the other threads " "survive. On most systems, they are killed without executing :keyword:" "`try` ... :keyword:`finally` clauses or executing object destructors." msgstr "" +"Quand le fil d'exécution principal s'arrête, il est défini par le système si " +"les autres fils d'exécution survivent. Sur beaucoup de systèmes, ils sont " +"tués sans l'exécution des clauses :keyword:`try`… :keyword:`finally` ou " +"l'exécution des destructeurs d'objets." -#: ../Doc/library/_thread.rst:185 +#: ../Doc/library/_thread.rst:190 msgid "" "When the main thread exits, it does not do any of its usual cleanup (except " "that :keyword:`try` ... :keyword:`finally` clauses are honored), and the " "standard I/O files are not flushed." msgstr "" +"Quand le fil d'exécution principal s'arrête, il ne fait pas son nettoyage " +"habituel (excepté que les clauses :keyword:`try`… :keyword:`finally` sont " +"honorées) et les fichiers d'entrée/sortie standards ne sont pas nettoyés." diff --git a/library/abc.po b/library/abc.po index 41bb25b6d..5fc34e356 100644 --- a/library/abc.po +++ b/library/abc.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-07-27 22:56+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-21 17:32+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.9\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/library/abc.rst:2 msgid ":mod:`abc` --- Abstract Base Classes" -msgstr ":mod:`abc` --- Classes de Base Abstraites" +msgstr ":mod:`abc` — Classes de Base Abstraites" #: ../Doc/library/abc.rst:11 msgid "**Source code:** :source:`Lib/abc.py`" @@ -42,10 +42,10 @@ msgstr "" #: ../Doc/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:" +"ABCs; these can, of course, be further derived. In addition, the :mod:" "`collections.abc` submodule has some ABCs that can be used to test whether a " -"class or instance provides a particular interface, for example, is it " -"hashable or a mapping." +"class or instance provides a particular interface, for example, if it is " +"hashable or if it is a mapping." msgstr "" "Le module :mod:`collections` possède certaines classes concrètes qui " "dérivent d'ABC. Celles-ci peuvent, bien sur, être elles-mêmes dérivées. De " @@ -71,7 +71,7 @@ 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 msgid "" @@ -86,7 +86,7 @@ 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 msgid "Metaclass for defining Abstract Base Classes (ABCs)." @@ -127,7 +127,7 @@ 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 msgid "Returns the registered subclass, to allow usage as a class decorator." @@ -149,7 +149,7 @@ msgstr "Vous pouvez également redéfinir cette méthode dans une ABC :" #: ../Doc/library/abc.rst:96 msgid "(Must be defined as a class method.)" -msgstr "(Doit être définie en temps que méthode de classe.)" +msgstr "(Doit être définie en tant que méthode de classe.)" #: ../Doc/library/abc.rst:98 msgid "" @@ -186,7 +186,7 @@ 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 msgid "" @@ -278,7 +278,7 @@ 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 msgid "" @@ -286,13 +286,13 @@ msgid "" "the descriptor must identify itself as abstract using :attr:" "`__isabstractmethod__`. In general, this attribute should be ``True`` if any " "of the methods used to compose the descriptor are abstract. For example, " -"Python's built-in property does the equivalent of::" +"Python's built-in :class:`property` does the equivalent of::" msgstr "" "Afin d'interagir correctement avec le mécanisme de classe de base abstraite, " "un descripteur doit s'identifier comme abstrait en utilisant :attr:" "`__isabstractmethod__`. En général, cet attribut doit être ``True`` si au " "moins une des méthodes faisant partie du descripteur est abstraite. Par " -"exemple, la propriété native de python fait l'équivalent de : ::" +"exemple, la classe native :class:`property` de python fait l'équivalent de ::" #: ../Doc/library/abc.rst:231 msgid "" @@ -337,7 +337,7 @@ msgid "" 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 msgid "" @@ -363,7 +363,7 @@ msgid "" 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 msgid "" @@ -387,7 +387,7 @@ msgid "" 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 msgid "" @@ -397,7 +397,7 @@ 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 msgid "" @@ -406,7 +406,7 @@ msgid "" 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 msgid "The :mod:`abc` module also provides the following functions:" diff --git a/library/aifc.po b/library/aifc.po index 6e627510f..9d7bc658a 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-12 13:37+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+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/aifc.rst:2 msgid ":mod:`aifc` --- Read and write AIFF and AIFC files" -msgstr ":mod:`aifc` --- Lis et écrit dans les fichiers AIFF et AIFC" +msgstr ":mod:`aifc` — Lis et écrit dans les fichiers AIFF et AIFC" #: ../Doc/library/aifc.rst:7 msgid "**Source code:** :source:`Lib/aifc.py`" @@ -64,12 +64,12 @@ msgid "" "be seekable, unless you know ahead of time how many samples you are going to " "write in total and use :meth:`writeframesraw` and :meth:`setnframes`. The :" "func:`.open` function may be used in a :keyword:`with` statement. When the :" -"keyword:`with` block completes, the :meth:`~aifc.close` method is called." +"keyword:`!with` block completes, the :meth:`~aifc.close` method is called." 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 "" @@ -112,6 +112,9 @@ msgid "" "framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" "`get\\*` methods." msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." #: ../Doc/library/aifc.rst:100 msgid "" diff --git a/library/argparse.po b/library/argparse.po index ed801a7fd..f670ea2d2 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-07-28 23:47+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -48,6 +48,12 @@ 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 msgid "Example" @@ -66,20 +72,25 @@ 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 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 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 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 msgid "Creating a parser" @@ -90,12 +101,17 @@ 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 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 msgid "Adding arguments" @@ -110,6 +126,13 @@ 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 msgid "" @@ -119,6 +142,11 @@ 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 msgid "Parsing arguments" @@ -132,6 +160,11 @@ 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 msgid "" @@ -139,10 +172,13 @@ msgid "" "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 msgid "ArgumentParser objects" -msgstr "Objets ArgumentParser" +msgstr "Objets ``ArgumentParser``" #: ../Doc/library/argparse.rst:147 msgid "" @@ -150,69 +186,92 @@ msgid "" "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 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 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 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 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 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 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 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 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 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 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 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 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 msgid "*allow_abbrev* parameter was added." @@ -221,10 +280,12 @@ msgstr "Le paramètre *allow_abbrev* est ajouté." #: ../Doc/library/argparse.rst:185 ../Doc/library/argparse.rst:683 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:189 msgid "prog" -msgstr "prog" +msgstr "Le paramètre *prog*" #: ../Doc/library/argparse.rst:191 msgid "" @@ -234,18 +295,28 @@ 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:202 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:221 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:231 msgid "" @@ -253,31 +324,40 @@ msgid "" "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:248 msgid "usage" -msgstr "usage" +msgstr "Le paramètre *usage*" #: ../Doc/library/argparse.rst:250 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:266 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:281 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:286 msgid "description" -msgstr "description" +msgstr "Le paramètre *description*" #: ../Doc/library/argparse.rst:288 msgid "" @@ -287,16 +367,24 @@ 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:303 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:308 msgid "epilog" -msgstr "epilog" +msgstr "Le paramètre *epilog*" #: ../Doc/library/argparse.rst:310 msgid "" @@ -304,6 +392,9 @@ msgid "" "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:327 msgid "" @@ -311,10 +402,14 @@ msgid "" "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:333 msgid "parents" -msgstr "parents" +msgstr "Le paramètre *parents*" #: ../Doc/library/argparse.rst:335 msgid "" @@ -326,6 +421,14 @@ 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:355 msgid "" @@ -333,6 +436,10 @@ msgid "" "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:360 msgid "" @@ -340,10 +447,13 @@ msgid "" "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:366 msgid "formatter_class" -msgstr "formatter_class" +msgstr "Le paramètre *formatter_class*" #: ../Doc/library/argparse.rst:368 msgid "" @@ -351,6 +461,9 @@ msgid "" "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:377 msgid "" @@ -359,6 +472,11 @@ msgid "" "`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:402 msgid "" @@ -366,6 +484,10 @@ msgid "" "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:428 msgid "" @@ -374,12 +496,19 @@ msgid "" "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:433 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:451 msgid "" @@ -387,10 +516,13 @@ msgid "" "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:472 msgid "prefix_chars" -msgstr "prefix_chars" +msgstr "Le paramètre *prefix_chars*" #: ../Doc/library/argparse.rst:474 msgid "" @@ -399,6 +531,11 @@ msgid "" "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:486 msgid "" @@ -406,10 +543,13 @@ msgid "" "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:492 msgid "fromfile_prefix_chars" -msgstr "fromfile_prefix_chars" +msgstr "Le paramètre *fromfile_prefix_chars*" #: ../Doc/library/argparse.rst:494 msgid "" @@ -420,6 +560,13 @@ 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:508 msgid "" @@ -430,16 +577,25 @@ 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:514 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:519 msgid "argument_default" -msgstr "argument_default" +msgstr "Le paramètre *argument_default*" #: ../Doc/library/argparse.rst:521 msgid "" @@ -452,10 +608,20 @@ msgid "" "suppress attribute creation on :meth:`~ArgumentParser.parse_args` calls, we " "supply ``argument_default=SUPPRESS``::" msgstr "" +"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`` ::" #: ../Doc/library/argparse.rst:541 msgid "allow_abbrev" -msgstr "allow_abbrev" +msgstr "Le paramètre *allow_abbrev*" #: ../Doc/library/argparse.rst:543 msgid "" @@ -463,14 +629,19 @@ msgid "" "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:547 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:560 msgid "conflict_handler" -msgstr "conflict_handler" +msgstr "Le paramètre *conflict_handler*" #: ../Doc/library/argparse.rst:562 msgid "" @@ -479,6 +650,10 @@ msgid "" "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:574 msgid "" @@ -487,6 +662,10 @@ msgid "" "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:590 msgid "" @@ -495,10 +674,14 @@ msgid "" "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:597 msgid "add_help" -msgstr "add_help" +msgstr "Le paramètre *add_help*" #: ../Doc/library/argparse.rst:599 msgid "" @@ -506,12 +689,17 @@ msgid "" "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:608 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:620 msgid "" @@ -519,6 +707,9 @@ msgid "" "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:632 msgid "" @@ -527,6 +718,11 @@ msgid "" "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:647 msgid "The add_argument() method" @@ -537,66 +733,82 @@ 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:656 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:659 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:662 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:664 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:666 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:669 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:671 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:673 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:676 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:678 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:680 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:687 msgid "name or flags" -msgstr "nom ou option" +msgstr "Les paramètres *name* et *flags*" #: ../Doc/library/argparse.rst:689 msgid "" @@ -607,10 +819,17 @@ 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:698 msgid "while a positional argument could be created like::" -msgstr "" +msgstr "alors qu'un argument positionnel est créé comme suit ::" #: ../Doc/library/argparse.rst:702 msgid "" @@ -618,10 +837,13 @@ msgid "" "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:719 msgid "action" -msgstr "action" +msgstr "Le paramètre *action*" #: ../Doc/library/argparse.rst:721 msgid "" @@ -632,12 +854,21 @@ 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:727 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:735 msgid "" @@ -645,6 +876,10 @@ msgid "" "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:744 msgid "" @@ -653,6 +888,10 @@ msgid "" "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:756 msgid "" @@ -660,6 +899,9 @@ msgid "" "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:765 msgid "" @@ -669,12 +911,19 @@ 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:777 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:785 msgid "" @@ -683,6 +932,10 @@ msgid "" "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:790 msgid "" @@ -690,6 +943,9 @@ msgid "" "`~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:800 msgid "" @@ -701,7 +957,7 @@ msgstr "" #: ../Doc/library/argparse.rst:805 msgid "An example of a custom action::" -msgstr "Un exemple d'action personnalisée : ::" +msgstr "Un exemple d'action personnalisée ::" #: ../Doc/library/argparse.rst:825 msgid "For more details, see :class:`Action`." @@ -709,7 +965,7 @@ msgstr "Pour plus d'information, voir :class:`Action`." #: ../Doc/library/argparse.rst:828 msgid "nargs" -msgstr "nargs" +msgstr "Le paramètre *nargs*" #: ../Doc/library/argparse.rst:830 msgid "" @@ -718,20 +974,29 @@ msgid "" "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:835 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:844 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:847 +#: ../Doc/library/argparse.rst:849 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 " @@ -740,64 +1005,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:864 +#: ../Doc/library/argparse.rst:866 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:879 +#: ../Doc/library/argparse.rst:883 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:891 +#: ../Doc/library/argparse.rst:897 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:905 +#: ../Doc/library/argparse.rst:911 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:916 +#: ../Doc/library/argparse.rst:922 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:922 +#: ../Doc/library/argparse.rst:928 msgid "const" -msgstr "const" +msgstr "Le paramètre *const*" -#: ../Doc/library/argparse.rst:924 +#: ../Doc/library/argparse.rst:930 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:928 +#: ../Doc/library/argparse.rst:934 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:933 +#: ../Doc/library/argparse.rst:939 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with option strings " "(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional " @@ -806,18 +1100,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:940 +#: ../Doc/library/argparse.rst:946 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:945 +#: ../Doc/library/argparse.rst:951 msgid "default" -msgstr "default" +msgstr "Le paramètre *default*" -#: ../Doc/library/argparse.rst:947 +#: ../Doc/library/argparse.rst:953 msgid "" "All optional arguments and some positional arguments may be omitted at the " "command line. The ``default`` keyword argument of :meth:`~ArgumentParser." @@ -826,32 +1130,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:961 +#: ../Doc/library/argparse.rst:967 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:972 +#: ../Doc/library/argparse.rst:978 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:983 +#: ../Doc/library/argparse.rst:989 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:995 +#: ../Doc/library/argparse.rst:1001 msgid "type" -msgstr "type" +msgstr "Le paramètre *type*" -#: ../Doc/library/argparse.rst:997 +#: ../Doc/library/argparse.rst:1003 msgid "" "By default, :class:`ArgumentParser` objects read command-line arguments in " "as simple strings. However, quite often the command-line string should " @@ -861,42 +1182,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:1010 +#: ../Doc/library/argparse.rst:1016 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:1013 +#: ../Doc/library/argparse.rst:1019 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:1023 +#: ../Doc/library/argparse.rst:1029 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:1042 +#: ../Doc/library/argparse.rst:1048 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:1053 +#: ../Doc/library/argparse.rst:1059 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:1057 +#: ../Doc/library/argparse.rst:1063 msgid "choices" -msgstr "choices" +msgstr "Le paramètre *choices*" -#: ../Doc/library/argparse.rst:1059 +#: ../Doc/library/argparse.rst:1065 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* " @@ -904,59 +1244,83 @@ 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:1074 +#: ../Doc/library/argparse.rst:1080 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:1086 +#: ../Doc/library/argparse.rst:1092 msgid "" "Any object that supports the ``in`` operator can be passed as the *choices* " "value, so :class:`dict` objects, :class:`set` objects, custom containers, " "etc. are all supported." msgstr "" -#: ../Doc/library/argparse.rst:1092 +#: ../Doc/library/argparse.rst:1098 msgid "required" -msgstr "required" +msgstr "Le paramètre *required*" -#: ../Doc/library/argparse.rst:1094 +#: ../Doc/library/argparse.rst:1100 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:1107 +#: ../Doc/library/argparse.rst:1113 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:1113 +#: ../Doc/library/argparse.rst:1119 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:1118 +#: ../Doc/library/argparse.rst:1124 msgid "help" -msgstr "help" +msgstr "Le paramètre *help*" -#: ../Doc/library/argparse.rst:1120 +#: ../Doc/library/argparse.rst:1126 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:1140 +#: ../Doc/library/argparse.rst:1146 msgid "" "The ``help`` strings can include various format specifiers to avoid " "repetition of things like the program name or the argument default_. The " @@ -964,24 +1328,35 @@ msgid "" "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:1157 +#: ../Doc/library/argparse.rst:1163 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:1160 +#: ../Doc/library/argparse.rst:1166 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:1173 +#: ../Doc/library/argparse.rst:1179 msgid "metavar" -msgstr "metavar" +msgstr "Le paramètre *metavar*" -#: ../Doc/library/argparse.rst:1175 +#: ../Doc/library/argparse.rst:1181 msgid "" "When :class:`ArgumentParser` generates help messages, it needs some way to " "refer to each expected argument. By default, ArgumentParser objects use the " @@ -992,30 +1367,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:1199 +"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 ::" + +#: ../Doc/library/argparse.rst:1205 msgid "An alternative name can be specified with ``metavar``::" -msgstr "" +msgstr "Un nom alternatif peut être fourni à ``metavar`` ::" -#: ../Doc/library/argparse.rst:1216 +#: ../Doc/library/argparse.rst:1222 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:1220 +#: ../Doc/library/argparse.rst:1226 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:1237 +#: ../Doc/library/argparse.rst:1243 msgid "dest" -msgstr "dest" +msgstr "Le paramètre *dest*" -#: ../Doc/library/argparse.rst:1239 +#: ../Doc/library/argparse.rst:1245 msgid "" "Most :class:`ArgumentParser` actions add some value as an attribute of the " "object returned by :meth:`~ArgumentParser.parse_args`. The name of this " @@ -1024,8 +1414,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:1251 +#: ../Doc/library/argparse.rst:1257 msgid "" "For optional argument actions, the value of ``dest`` is normally inferred " "from the option strings. :class:`ArgumentParser` generates the value of " @@ -1036,23 +1432,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:1268 +#: ../Doc/library/argparse.rst:1274 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:1276 +#: ../Doc/library/argparse.rst:1282 msgid "Action classes" msgstr "Classes Action" -#: ../Doc/library/argparse.rst:1278 +#: ../Doc/library/argparse.rst:1284 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:1287 +#: ../Doc/library/argparse.rst:1293 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 " @@ -1060,128 +1468,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:1293 +#: ../Doc/library/argparse.rst:1299 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:1298 +#: ../Doc/library/argparse.rst:1304 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:1301 +#: ../Doc/library/argparse.rst:1307 msgid "``parser`` - The ArgumentParser object which contains this action." -msgstr "" +msgstr "``parser`` – L'objet ``ArgumentParser`` qui contient cette action." -#: ../Doc/library/argparse.rst:1303 +#: ../Doc/library/argparse.rst:1309 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:1307 +#: ../Doc/library/argparse.rst:1313 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:1311 +#: ../Doc/library/argparse.rst:1317 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:1315 +#: ../Doc/library/argparse.rst:1321 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:1320 +#: ../Doc/library/argparse.rst:1326 msgid "The parse_args() method" msgstr "La méthode *parse_args()*" -#: ../Doc/library/argparse.rst:1324 +#: ../Doc/library/argparse.rst:1330 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:1327 +#: ../Doc/library/argparse.rst:1333 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:1331 +#: ../Doc/library/argparse.rst:1337 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:1334 +#: ../Doc/library/argparse.rst:1340 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:1339 +#: ../Doc/library/argparse.rst:1345 msgid "Option value syntax" -msgstr "" +msgstr "Syntaxe de la valeur des options" -#: ../Doc/library/argparse.rst:1341 +#: ../Doc/library/argparse.rst:1347 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:1353 +#: ../Doc/library/argparse.rst:1359 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:1360 +#: ../Doc/library/argparse.rst:1366 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:1366 +#: ../Doc/library/argparse.rst:1372 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:1378 +#: ../Doc/library/argparse.rst:1384 msgid "Invalid arguments" msgstr "Arguments invalides" -#: ../Doc/library/argparse.rst:1380 +#: ../Doc/library/argparse.rst:1386 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:1406 +#: ../Doc/library/argparse.rst:1412 msgid "Arguments containing ``-``" msgstr "Arguments contenant ``-``" -#: ../Doc/library/argparse.rst:1408 +#: ../Doc/library/argparse.rst:1414 msgid "" "The :meth:`~ArgumentParser.parse_args` method attempts to give errors " "whenever the user has clearly made a mistake, but some situations are " @@ -1192,77 +1653,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:1446 +#: ../Doc/library/argparse.rst:1452 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:1457 +#: ../Doc/library/argparse.rst:1463 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:1459 +#: ../Doc/library/argparse.rst:1465 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:1474 +#: ../Doc/library/argparse.rst:1480 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:1480 +#: ../Doc/library/argparse.rst:1486 msgid "Beyond ``sys.argv``" -msgstr "Au delà de ``sys.argv``" +msgstr "Au-delà de ``sys.argv``" -#: ../Doc/library/argparse.rst:1482 +#: ../Doc/library/argparse.rst:1488 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:1502 +#: ../Doc/library/argparse.rst:1508 msgid "The Namespace object" msgstr "L'objet namespace" -#: ../Doc/library/argparse.rst:1506 +#: ../Doc/library/argparse.rst:1512 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:1509 +#: ../Doc/library/argparse.rst:1515 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:1519 +#: ../Doc/library/argparse.rst:1525 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:1535 +#: ../Doc/library/argparse.rst:1541 msgid "Other utilities" msgstr "Autres outils" -#: ../Doc/library/argparse.rst:1538 +#: ../Doc/library/argparse.rst:1544 msgid "Sub-commands" msgstr "Sous commandes" -#: ../Doc/library/argparse.rst:1545 +#: ../Doc/library/argparse.rst:1551 msgid "" "Many programs split up their functionality into a number of sub-commands, " "for example, the ``svn`` program can invoke sub-commands like ``svn " @@ -1277,70 +1774,102 @@ msgid "" "constructor arguments, and returns an :class:`ArgumentParser` object that " "can be modified as usual." msgstr "" +"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." -#: ../Doc/library/argparse.rst:1557 +#: ../Doc/library/argparse.rst:1563 msgid "Description of parameters:" msgstr "Description des paramètres" -#: ../Doc/library/argparse.rst:1559 +#: ../Doc/library/argparse.rst:1565 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:1563 +#: ../Doc/library/argparse.rst:1569 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:1566 +#: ../Doc/library/argparse.rst:1572 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:1570 +#: ../Doc/library/argparse.rst:1576 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:1573 +#: ../Doc/library/argparse.rst:1579 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:1576 +#: ../Doc/library/argparse.rst:1582 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:1579 +#: ../Doc/library/argparse.rst:1585 msgid "" "required_ - Whether or not a subcommand must be provided, by default " "``False``." msgstr "" -#: ../Doc/library/argparse.rst:1582 +#: ../Doc/library/argparse.rst:1588 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:1584 +#: ../Doc/library/argparse.rst:1590 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:1587 +#: ../Doc/library/argparse.rst:1593 msgid "Some example usage::" -msgstr "Quelques exemples d'utilisation : ::" +msgstr "Quelques exemples d'utilisation ::" -#: ../Doc/library/argparse.rst:1608 +#: ../Doc/library/argparse.rst:1614 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 " @@ -1349,8 +1878,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:1615 +#: ../Doc/library/argparse.rst:1621 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 " @@ -1358,30 +1894,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:1651 +#: ../Doc/library/argparse.rst:1657 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:1672 +#: ../Doc/library/argparse.rst:1678 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:1683 +#: ../Doc/library/argparse.rst:1689 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:1720 +#: ../Doc/library/argparse.rst:1726 msgid "" "This way, you can let :meth:`parse_args` do the job of calling the " "appropriate function after argument parsing is complete. Associating " @@ -1390,12 +1944,18 @@ 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:1738 +#: ../Doc/library/argparse.rst:1744 msgid "FileType objects" msgstr "Objets ``FileType``" -#: ../Doc/library/argparse.rst:1742 +#: ../Doc/library/argparse.rst:1748 msgid "" "The :class:`FileType` factory creates objects that can be passed to the type " "argument of :meth:`ArgumentParser.add_argument`. Arguments that have :class:" @@ -1403,23 +1963,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:1754 +#: ../Doc/library/argparse.rst:1760 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:1763 +#: ../Doc/library/argparse.rst:1769 msgid "The *encodings* and *errors* keyword arguments." msgstr "Les arguments nommés ``encodings`` et ``errors``." -#: ../Doc/library/argparse.rst:1768 +#: ../Doc/library/argparse.rst:1774 msgid "Argument groups" msgstr "Groupes d'arguments" -#: ../Doc/library/argparse.rst:1772 +#: ../Doc/library/argparse.rst:1778 msgid "" "By default, :class:`ArgumentParser` groups command-line arguments into " "\"positional arguments\" and \"optional arguments\" when displaying help " @@ -1427,8 +1997,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:1789 +#: ../Doc/library/argparse.rst:1795 msgid "" "The :meth:`add_argument_group` method returns an argument group object which " "has an :meth:`~ArgumentParser.add_argument` method just like a regular :" @@ -1438,43 +2013,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:1815 +#: ../Doc/library/argparse.rst:1821 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:1820 +#: ../Doc/library/argparse.rst:1826 msgid "Mutual exclusion" msgstr "Exclusion mutuelle" -#: ../Doc/library/argparse.rst:1824 +#: ../Doc/library/argparse.rst:1830 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:1840 +#: ../Doc/library/argparse.rst:1846 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:1852 +#: ../Doc/library/argparse.rst:1858 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:1858 +#: ../Doc/library/argparse.rst:1864 msgid "Parser defaults" msgstr "Valeurs par défaut de l'analyseur" -#: ../Doc/library/argparse.rst:1862 +#: ../Doc/library/argparse.rst:1868 msgid "" "Most of the time, the attributes of the object returned by :meth:" "`parse_args` will be fully determined by inspecting the command-line " @@ -1482,73 +2076,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:1874 +#: ../Doc/library/argparse.rst:1880 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:1882 +#: ../Doc/library/argparse.rst:1888 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:1888 +#: ../Doc/library/argparse.rst:1894 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:1899 +#: ../Doc/library/argparse.rst:1905 msgid "Printing help" msgstr "Afficher l'aide" -#: ../Doc/library/argparse.rst:1901 +#: ../Doc/library/argparse.rst:1907 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:1907 +#: ../Doc/library/argparse.rst:1913 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:1913 +#: ../Doc/library/argparse.rst:1919 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:1917 +#: ../Doc/library/argparse.rst:1923 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:1922 +#: ../Doc/library/argparse.rst:1928 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:1927 +#: ../Doc/library/argparse.rst:1933 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:1932 +#: ../Doc/library/argparse.rst:1938 msgid "Partial parsing" msgstr "*Parsing* partiel" -#: ../Doc/library/argparse.rst:1936 +#: ../Doc/library/argparse.rst:1942 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 " @@ -1558,97 +2181,140 @@ 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:1952 +#: ../Doc/library/argparse.rst:1958 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:1959 +#: ../Doc/library/argparse.rst:1965 msgid "Customizing file parsing" msgstr "Personnaliser le *parsing* de fichiers" -#: ../Doc/library/argparse.rst:1963 +#: ../Doc/library/argparse.rst:1969 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:1968 +#: ../Doc/library/argparse.rst:1974 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:1972 +#: ../Doc/library/argparse.rst:1978 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:1981 +#: ../Doc/library/argparse.rst:1987 msgid "Exiting methods" -msgstr "" +msgstr "Méthodes d'interruptions" -#: ../Doc/library/argparse.rst:1985 +#: ../Doc/library/argparse.rst:1991 msgid "" "This method terminates the program, exiting with the specified *status* and, " "if given, it prints a *message* before that." msgstr "" -#: ../Doc/library/argparse.rst:1990 +#: ../Doc/library/argparse.rst:1996 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:1995 +#: ../Doc/library/argparse.rst:2001 msgid "Intermixed parsing" msgstr "Analyse entremêlée" -#: ../Doc/library/argparse.rst:2000 +#: ../Doc/library/argparse.rst:2006 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:2005 +#: ../Doc/library/argparse.rst:2011 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:2010 +#: ../Doc/library/argparse.rst:2016 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:2025 +#: ../Doc/library/argparse.rst:2031 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:2035 +#: ../Doc/library/argparse.rst:2041 msgid "Upgrading optparse code" msgstr "Mettre à jour du code ``optparse``" -#: ../Doc/library/argparse.rst:2037 +#: ../Doc/library/argparse.rst:2043 msgid "" "Originally, the :mod:`argparse` module had attempted to maintain " "compatibility with :mod:`optparse`. However, :mod:`optparse` was difficult " @@ -1658,90 +2324,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:2044 +#: ../Doc/library/argparse.rst:2050 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:2047 +#: ../Doc/library/argparse.rst:2053 msgid "Handling positional arguments." -msgstr "Gérer les arguments positionnels." +msgstr "Gère les arguments positionnels." -#: ../Doc/library/argparse.rst:2048 +#: ../Doc/library/argparse.rst:2054 msgid "Supporting sub-commands." -msgstr "Gérer les sous commandes." +msgstr "Prise en charge des sous commandes." -#: ../Doc/library/argparse.rst:2049 +#: ../Doc/library/argparse.rst:2055 msgid "Allowing alternative option prefixes like ``+`` and ``/``." msgstr "" +"Permet d'utiliser les alternatives ``+`` ou ``/`` comme préfixes d'option." -#: ../Doc/library/argparse.rst:2050 +#: ../Doc/library/argparse.rst:2056 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:2051 +#: ../Doc/library/argparse.rst:2057 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:2052 +#: ../Doc/library/argparse.rst:2058 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:2054 +#: ../Doc/library/argparse.rst:2060 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:2056 +#: ../Doc/library/argparse.rst:2062 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:2059 +#: ../Doc/library/argparse.rst:2065 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:2064 +#: ../Doc/library/argparse.rst:2070 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:2068 +#: ../Doc/library/argparse.rst:2074 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:2071 +#: ../Doc/library/argparse.rst:2077 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:2074 +#: ../Doc/library/argparse.rst:2080 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:2078 +#: ../Doc/library/argparse.rst:2084 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:2082 +#: ../Doc/library/argparse.rst:2088 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 d07acd96e..cfd681fc9 100644 --- a/library/array.po +++ b/library/array.po @@ -6,18 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-07-27 23:05+0200\n" +"PO-Revision-Date: 2018-10-06 15:31+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.1.1\n" #: ../Doc/library/array.rst:2 msgid ":mod:`array` --- Efficient arrays of numeric values" -msgstr "" +msgstr ":mod:`array` — Tableaux efficaces de valeurs numériques" #: ../Doc/library/array.rst:11 msgid "" @@ -28,9 +28,9 @@ msgid "" "creation time by using a :dfn:`type code`, which is a single character. The " "following type codes are defined:" msgstr "" -"Ce module définit un type objet qui permet de représenter de façon compacte " -"un tableau (*array*) de valeurs élémentaires : caractères, entier, " -"flottants. Les tableaux sont des types séquence et se comportent de manière " +"Ce module définit un type d'objet qui permet de représenter de façon " +"compacte un tableau (*array*) de valeurs élémentaires : caractères, entiers, " +"flottants. Les tableaux sont de type séquence et se comportent de manière " "très similaire aux listes, sauf que les types d'objets qui y sont stockés " "sont limités. Le type est spécifié au moment de la création de l’objet en " "utilisant :dfn:`type code`, qui est un caractère unique. Voir ci-dessous " @@ -38,7 +38,7 @@ msgstr "" #: ../Doc/library/array.rst:19 msgid "Type code" -msgstr "Code du type" +msgstr "Code d'indication du type" #: ../Doc/library/array.rst:19 msgid "C Type" @@ -62,7 +62,7 @@ msgstr "``'b'``" #: ../Doc/library/array.rst:21 msgid "signed char" -msgstr "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 @@ -82,7 +82,7 @@ msgstr "``'B'``" #: ../Doc/library/array.rst:23 msgid "unsigned char" -msgstr "unsigned char" +msgstr "``unsigned char``" #: ../Doc/library/array.rst:25 msgid "``'u'``" @@ -112,7 +112,7 @@ msgstr "``'h'``" #: ../Doc/library/array.rst:27 msgid "signed short" -msgstr "signed short" +msgstr "``signed short``" #: ../Doc/library/array.rst:29 msgid "``'H'``" @@ -120,7 +120,7 @@ msgstr "``'H'``" #: ../Doc/library/array.rst:29 msgid "unsigned short" -msgstr "unsigned short" +msgstr "``unsigned short``" #: ../Doc/library/array.rst:31 msgid "``'i'``" @@ -128,7 +128,7 @@ msgstr "``'i'``" #: ../Doc/library/array.rst:31 msgid "signed int" -msgstr "signed int" +msgstr "``signed int``" #: ../Doc/library/array.rst:33 msgid "``'I'``" @@ -136,7 +136,7 @@ msgstr "``'I'``" #: ../Doc/library/array.rst:33 msgid "unsigned int" -msgstr "unsigned int" +msgstr "``unsigned int``" #: ../Doc/library/array.rst:35 msgid "``'l'``" @@ -144,7 +144,7 @@ msgstr "``'l'``" #: ../Doc/library/array.rst:35 msgid "signed long" -msgstr "signed long" +msgstr "``signed long``" #: ../Doc/library/array.rst:35 ../Doc/library/array.rst:37 #: ../Doc/library/array.rst:43 @@ -157,7 +157,7 @@ msgstr "``'L'``" #: ../Doc/library/array.rst:37 msgid "unsigned long" -msgstr "unsigned long" +msgstr "``unsigned long``" #: ../Doc/library/array.rst:39 msgid "``'q'``" @@ -165,7 +165,7 @@ msgstr "``'q'``" #: ../Doc/library/array.rst:39 msgid "signed long long" -msgstr "signed long long" +msgstr "``signed long long``" #: ../Doc/library/array.rst:39 ../Doc/library/array.rst:41 #: ../Doc/library/array.rst:45 @@ -182,7 +182,7 @@ msgstr "``'Q'``" #: ../Doc/library/array.rst:41 msgid "unsigned long long" -msgstr "unsigned long long" +msgstr "``unsigned long long``" #: ../Doc/library/array.rst:43 msgid "``'f'``" @@ -210,12 +210,15 @@ msgid "" "type:`Py_UNICODE` which is :c:type:`wchar_t`). Depending on the platform, it " "can be 16 bits or 32 bits." msgstr "" +"Le code de type ``'u'`` correspond au type obsolète de Python caractère " +"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 msgid "" "``'u'`` will be removed together with the rest of the :c:type:`Py_UNICODE` " "API." -msgstr "" +msgstr "``'u'`` sera supprimé avec le reste de l'API :c:type:`Py_UNICODE`." #: ../Doc/library/array.rst:61 msgid "" @@ -223,6 +226,9 @@ msgid "" "compiler used to build Python supports C :c:type:`long long`, or, on " "Windows, :c:type:`__int64`." msgstr "" +"Les codes de type ``'q'`` et ``'Q'`` ne sont disponibles que si le " +"compilateur C de la plateforme utilisé pour construire Python gère le type " +"C :c:type:`long long`, ou, sur Windows, :c:type:`__int64`." #: ../Doc/library/array.rst:67 msgid "" @@ -230,6 +236,9 @@ msgid "" "architecture (strictly speaking, by the C implementation). The actual size " "can be accessed through the :attr:`itemsize` attribute." msgstr "" +"La représentation réelle des valeurs est déterminée par l'architecture de la " +"machine (à proprement parler, par l'implémentation C). La taille réelle est " +"accessible via l'attribut :attr:`itemsize`." #: ../Doc/library/array.rst:71 msgid "The module defines the following type:" @@ -241,6 +250,10 @@ msgid "" "the optional *initializer* value, which must be a list, a :term:`bytes-like " "object`, or iterable over elements of the appropriate type." msgstr "" +"Un nouveau tableau dont les éléments sont limités par *typecode*, et " +"initialisés par la valeur optionnelle *initializer*, qui peut être une " +"liste, un :term:`bytes-like object`, ou un itérable sur des éléments du type " +"approprié." #: ../Doc/library/array.rst:81 msgid "" @@ -249,10 +262,15 @@ msgid "" "below) to add initial items to the array. Otherwise, the iterable " "initializer is passed to the :meth:`extend` method." msgstr "" +"Si le paramètre *initializer* est une liste ou une chaîne de caractères, il " +"est passé à la méthode :meth:`fromlist`, :meth:`frombytes` ou :meth:" +"`fromunicode` du tableau (voir ci-dessous) pour ajouter les éléments " +"initiaux du tableau. Si c'est un itérable, il est passé à la méthode :meth:" +"`extend`." #: ../Doc/library/array.rst:89 msgid "A string with all available type codes." -msgstr "" +msgstr "Une chaîne avec tous les codes de types disponibles." #: ../Doc/library/array.rst:91 msgid "" @@ -263,19 +281,28 @@ msgid "" "interface, and may be used wherever :term:`bytes-like objects ` are supported." msgstr "" +"Les objets de tableau supportent les opérations classiques de séquence : " +"indiçage, découpage, concaténation et multiplication. Lors de l'utilisation " +"de tranche, la valeur assignée doit être un tableau du même type ; dans tous " +"les autres cas, l'exception :exc:`TypeError` est levée. Les objets de " +"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:97 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:101 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:106 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." +"La longueur en octets d'un élément du tableau dans la représentation interne." #: ../Doc/library/array.rst:111 msgid "Append a new item with value *x* to the end of the array." @@ -292,6 +319,15 @@ msgid "" "as long as the array exists and no length-changing operations are applied to " "it." msgstr "" +"Renvoie un tuple ``(address, length)`` indiquant l'adresse mémoire courante " +"et la longueur en éléments du tampon utilisé pour contenir le contenu du " +"tableau. La taille du tampon mémoire en octets peut être calculée par " +"``array.buffer_info()[1] * array.itemsize``. Ceci est parfois utile lorsque " +"vous travaillez sur des interfaces E/S de bas niveau (et intrinsèquement " +"dangereuses) qui nécessitent des adresses mémoire, telles que certaines " +"opérations :c:func:`ioctl`. Les nombres renvoyés sont valides tant que le " +"tableau existe et qu'aucune opération qui modifie sa taille ne lui est " +"appliquée." #: ../Doc/library/array.rst:126 msgid "" @@ -301,6 +337,12 @@ msgid "" "backward compatibility and should be avoided in new code. The buffer " "interface is documented in :ref:`bufferobjects`." msgstr "" +"Lors de l'utilisation d'objets tableaux provenant de codes écrits en C ou C+" +"+ (le seul moyen d'utiliser efficacement ces informations), il est plus " +"logique d'utiliser l'interface tampon supportée par les objets tableaux. " +"Cette méthode est maintenue pour des raisons de rétrocompatibilité et " +"devrait être évitée dans un nouveau code. L'interface tampon est documentée " +"dans :ref:`bufferobjects`." #: ../Doc/library/array.rst:135 msgid "" @@ -309,10 +351,14 @@ msgid "" "`RuntimeError` is raised. It is useful when reading data from a file " "written on a machine with a different byte order." msgstr "" +"Boutisme de tous les éléments du tableau. Ceci n'est pris en charge que pour " +"les valeurs de 1, 2, 4 ou 8 octets ; pour les autres types de valeur, :exc:" +"`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:143 msgid "Return the number of occurrences of *x* in the array." -msgstr "" +msgstr "Renvoi le nombre d'occurrences de *x* dans le tableau." #: ../Doc/library/array.rst:148 msgid "" @@ -321,6 +367,11 @@ msgid "" "`TypeError` will be raised. If *iterable* is not an array, it must be " "iterable and its elements must be the right type to be appended to the array." msgstr "" +"Ajoute les éléments de *iterable* à la fin du tableau. Si *iterable* est un " +"autre tableau, il doit le même code d'indication du type ; dans le cas " +"contraire, :exc:`TypeError` sera levée. Si *iterable* n'est pas un tableau, " +"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:156 msgid "" @@ -328,10 +379,14 @@ msgid "" "machine values (as if it had been read from a file using the :meth:" "`fromfile` method)." msgstr "" +"Ajoute des éléments de la chaîne, interprétant la chaîne comme un tableau de " +"valeurs machine (comme si elle avait été lue depuis le fichier en utilisant " +"la méthode :meth:`from file`)." #: ../Doc/library/array.rst:159 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:165 msgid "" @@ -341,12 +396,19 @@ msgid "" "inserted into the array. *f* must be a real built-in file object; something " "else with a :meth:`read` method won't do." 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, :" +"exc:`EOFError` est levée, mais les éléments qui étaient disponibles sont " +"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:174 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." 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:180 msgid "Deprecated alias for :meth:`frombytes`." @@ -359,18 +421,27 @@ msgid "" "``array.frombytes(unicodestring.encode(enc))`` to append Unicode data to an " "array of some other type." msgstr "" +"Étend ce tableau avec les données de la chaîne Unicode donnée. Le tableau " +"doit être de type ``'u'`` ; sinon :exc:`ValueError` est levée. Utiliser " +"``array.frombytes(unicodestring.encode(enc))`` pour ajouter des données " +"Unicode à un tableau d'un autre type." #: ../Doc/library/array.rst:193 msgid "" "Return the smallest *i* such that *i* is the index of the first occurrence " "of *x* in the array." 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:199 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." msgstr "" +"Ajoute un nouvel élément avec la valeur *x* dans le tableau avant la " +"position *i*. Les valeurs négatives sont traitées relativement à la fin du " +"tableau." #: ../Doc/library/array.rst:205 msgid "" @@ -378,14 +449,17 @@ msgid "" "optional argument defaults to ``-1``, so that by default the last item is " "removed and returned." msgstr "" +"Supprime l'élément du tableau avec l'index *i* et le renvoie. L'argument " +"optionnel par défaut est à ``-1``, de sorte que par défaut le dernier " +"élément est supprimé et renvoyé." #: ../Doc/library/array.rst:212 msgid "Remove the first occurrence of *x* from the array." -msgstr "Supprime la dernière occurrence de *x* du tableau." +msgstr "Supprime la première occurrence de *x* du tableau." #: ../Doc/library/array.rst:217 msgid "Reverse the order of the items in the array." -msgstr "Inverse l'ordre des élégante du tableau." +msgstr "Inverse l'ordre des éléments du tableau." #: ../Doc/library/array.rst:222 msgid "" @@ -393,18 +467,24 @@ msgid "" "representation (the same sequence of bytes that would be written to a file " "by the :meth:`tofile` method.)" msgstr "" +"Convertit le tableau en un tableau de valeurs machine et renvoie la " +"représentation en octets (la même séquence d'octets qui serait écrite par la " +"méthode :meth:`tofile`)." #: ../Doc/library/array.rst:226 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:232 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:237 msgid "Convert the array to an ordinary list with the same items." -msgstr "" +msgstr "Convertit le tableau en une liste ordinaire avec les mêmes éléments." #: ../Doc/library/array.rst:242 msgid "Deprecated alias for :meth:`tobytes`." @@ -416,6 +496,10 @@ msgid "" "array; otherwise a :exc:`ValueError` is raised. Use ``array.tobytes()." "decode(enc)`` to obtain a unicode string from an array of some other type." msgstr "" +"Convertit le tableau en une chaîne Unicode. Le tableau doit être un tableau " +"de type ``'u'`` ; sinon :exc:`ValueError` est levée. Utilisez ``array." +"tobytes().decode(enc)`` pour obtenir une chaîne Unicode depuis un tableau de " +"tout autre type." #: ../Doc/library/array.rst:252 msgid "" @@ -427,6 +511,13 @@ msgid "" "`eval`, so long as the :class:`~array.array` class has been imported using " "``from array import array``. Examples::" msgstr "" +"Quand un objet tableau est affiché ou converti en chaîne, il est représenté " +"en tant que ``array(typecode, initializer)``. *initializer* est omis si le " +"tableau est vide, sinon c'est une chaine si le *typecode* est ``'u'``, sinon " +"c'est une liste de nombres. Il est garanti que la chaîne puisse être " +"convertie en un tableau avec le même type et la même valeur en utilisant :" +"func:`eval`, tant que la classe :class:`~array.array` a été importée en " +"utilisant ``from array import array``. Exemples ::" #: ../Doc/library/array.rst:269 msgid "Module :mod:`struct`" @@ -434,7 +525,7 @@ msgstr "Module :mod:`struct`" #: ../Doc/library/array.rst:269 msgid "Packing and unpacking of heterogeneous binary data." -msgstr "" +msgstr "Empaquetage et dépaquetage de données binaires hétérogènes." #: ../Doc/library/array.rst:273 msgid "Module :mod:`xdrlib`" @@ -445,13 +536,18 @@ msgid "" "Packing and unpacking of External Data Representation (XDR) data as used in " "some remote procedure call systems." msgstr "" +"Empaquetage et dépaquetage des données XDR (External Data Representation) " +"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:276 msgid "`The Numerical Python Documentation `_" -msgstr "" +msgstr "`La documentation de *Numerical Python* `" #: ../Doc/library/array.rst:276 msgid "" "The Numeric Python extension (NumPy) defines another array type; see http://" "www.numpy.org/ for further information about Numerical Python." msgstr "" +"L'extension *Numeric Python* (NumPy) définit un autre type de tableau ; voir " +"http://www.numpy.org/ pour plus d'informations sur *Numeric Python*." diff --git a/library/ast.po b/library/ast.po index 6a1b623e0..1b018cc68 100644 --- a/library/ast.po +++ b/library/ast.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-09-11 07:42+0200\n" +"Last-Translator: Julien VITARD \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: Julien VITARD \n" "X-Generator: Poedit 1.8.11\n" #: ../Doc/library/ast.rst:2 msgid ":mod:`ast` --- Abstract Syntax Trees" -msgstr ":mod:`ast` --- Arbres Syntaxiques Abstraits" +msgstr ":mod:`ast` — Arbres Syntaxiques Abstraits" #: ../Doc/library/ast.rst:10 msgid "**Source code:** :source:`Lib/ast.py`" @@ -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:46 +#: ../Doc/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:49 +#: ../Doc/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:53 +#: ../Doc/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:62 +#: ../Doc/library/ast.rst:65 msgid "" "Instances of :class:`ast.expr` and :class:`ast.stmt` subclasses have :attr:" "`lineno` and :attr:`col_offset` attributes. The :attr:`lineno` is the line " @@ -135,14 +135,14 @@ 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:69 +#: ../Doc/library/ast.rst:72 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:71 +#: ../Doc/library/ast.rst:74 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." @@ -150,7 +150,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:73 +#: ../Doc/library/ast.rst:76 msgid "" "If there are keyword arguments, they will set the attributes of the same " "names to the given values." @@ -158,31 +158,31 @@ 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:76 +#: ../Doc/library/ast.rst:79 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:88 +#: ../Doc/library/ast.rst:91 msgid "or the more compact ::" -msgstr "ou, plus compact : ::" +msgstr "ou, plus compact ::" -#: ../Doc/library/ast.rst:97 +#: ../Doc/library/ast.rst:100 msgid "Abstract Grammar" msgstr "Grammaire abstraite" -#: ../Doc/library/ast.rst:99 +#: ../Doc/library/ast.rst:102 msgid "The abstract grammar is currently defined as follows:" msgstr "La grammaire abstraite est actuellement définie comme suit :" -#: ../Doc/library/ast.rst:106 +#: ../Doc/library/ast.rst:109 msgid ":mod:`ast` Helpers" msgstr "Outils du module :mod:`ast`" -#: ../Doc/library/ast.rst:108 +#: ../Doc/library/ast.rst:111 msgid "" "Apart from the node classes, the :mod:`ast` module defines these utility " "functions and classes for traversing abstract syntax trees:" @@ -190,7 +190,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:113 +#: ../Doc/library/ast.rst:116 msgid "" "Parse the source into an AST node. Equivalent to ``compile(source, " "filename, mode, ast.PyCF_ONLY_AST)``." @@ -198,7 +198,7 @@ msgstr "" "Analyse le code source en un nœud AST. Équivalent à ``compile(source, " "filename, mode, ast.PyCF_ONLY_AST)``." -#: ../Doc/library/ast.rst:117 ../Doc/library/ast.rst:135 +#: ../Doc/library/ast.rst:120 ../Doc/library/ast.rst:138 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." @@ -207,7 +207,7 @@ 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:124 +#: ../Doc/library/ast.rst:127 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 " @@ -220,7 +220,7 @@ msgstr "" "Python suivants : chaînes de caractères, bytes, nombres, n-uplets, listes, " "dictionnaires, ensembles, booléens, et ``None``." -#: ../Doc/library/ast.rst:129 +#: ../Doc/library/ast.rst:132 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 " @@ -233,11 +233,11 @@ msgstr "" "d'évaluer des expressions complexes arbitraires, par exemple impliquant des " "opérateurs ou de l'indexation." -#: ../Doc/library/ast.rst:139 +#: ../Doc/library/ast.rst:142 msgid "Now allows bytes and set literals." msgstr "Accepte maintenant les littéraux suivants *bytes* et *sets*." -#: ../Doc/library/ast.rst:145 +#: ../Doc/library/ast.rst:148 msgid "" "Return the docstring of the given *node* (which must be a :class:" "`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:" @@ -250,11 +250,11 @@ msgstr "" "cette fonction nettoie l'indentation de la *docstring* avec :func:`inspect." "cleandoc`." -#: ../Doc/library/ast.rst:151 +#: ../Doc/library/ast.rst:154 msgid ":class:`AsyncFunctionDef` is now supported." msgstr ":class:`AsyncFunctionDef` est maintenant gérée" -#: ../Doc/library/ast.rst:157 +#: ../Doc/library/ast.rst:160 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 " @@ -269,7 +269,7 @@ 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:166 +#: ../Doc/library/ast.rst:169 msgid "" "Increment the line number of each node in the tree starting at *node* by " "*n*. This is useful to \"move code\" to a different location in a file." @@ -278,7 +278,7 @@ msgstr "" "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:172 +#: ../Doc/library/ast.rst:175 msgid "" "Copy source location (:attr:`lineno` and :attr:`col_offset`) from *old_node* " "to *new_node* if possible, and return *new_node*." @@ -287,7 +287,7 @@ msgstr "" "*old_node* vers le nouveau nœud *new_node* si possible, et renvoie " "*new_node*." -#: ../Doc/library/ast.rst:178 +#: ../Doc/library/ast.rst:181 msgid "" "Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " "that is present on *node*." @@ -295,7 +295,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:184 +#: ../Doc/library/ast.rst:187 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." @@ -304,7 +304,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:190 +#: ../Doc/library/ast.rst:193 msgid "" "Recursively yield all descendant nodes in the tree starting at *node* " "(including *node* itself), in no specified order. This is useful if you " @@ -315,7 +315,7 @@ msgstr "" "lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au " "contexte." -#: ../Doc/library/ast.rst:197 +#: ../Doc/library/ast.rst:200 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 " @@ -326,7 +326,7 @@ msgstr "" "Cette fonction peut renvoyer une valeur qui est transmise par la méthode :" "meth:`visit`." -#: ../Doc/library/ast.rst:201 +#: ../Doc/library/ast.rst:204 msgid "" "This class is meant to be subclassed, with the subclass adding visitor " "methods." @@ -334,7 +334,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:206 +#: ../Doc/library/ast.rst:209 msgid "" "Visit a node. The default implementation calls the method called :samp:" "`self.visit_{classname}` where *classname* is the name of the node class, " @@ -344,12 +344,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:212 +#: ../Doc/library/ast.rst:215 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:214 +#: ../Doc/library/ast.rst:217 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." @@ -358,7 +358,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:218 +#: ../Doc/library/ast.rst:221 msgid "" "Don't use the :class:`NodeVisitor` if you want to apply changes to nodes " "during traversal. For this a special visitor exists (:class:" @@ -368,7 +368,7 @@ 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:225 +#: ../Doc/library/ast.rst:228 msgid "" "A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " "allows modification of nodes." @@ -376,7 +376,7 @@ msgstr "" "Une sous-classe :class:`NodeVisitor` qui traverse l'arbre syntaxique " "abstrait et permet les modifications des nœuds." -#: ../Doc/library/ast.rst:228 +#: ../Doc/library/ast.rst:231 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 " @@ -391,15 +391,15 @@ 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:234 +#: ../Doc/library/ast.rst:237 msgid "" "Here is an example transformer that rewrites all occurrences of name lookups " "(``foo``) to ``data['foo']``::" msgstr "" "Voici un exemple du *transformer* qui réécrit les occurrences du " -"dictionnaire (``foo``) en ``data['foo']`` : ::" +"dictionnaire (``foo``) en ``data['foo']`` ::" -#: ../Doc/library/ast.rst:246 +#: ../Doc/library/ast.rst:249 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` " @@ -409,7 +409,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:250 +#: ../Doc/library/ast.rst:253 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 " @@ -419,11 +419,11 @@ 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:254 +#: ../Doc/library/ast.rst:257 msgid "Usually you use the transformer like this::" msgstr "Utilisation typique du *transformer* ::" -#: ../Doc/library/ast.rst:261 +#: ../Doc/library/ast.rst:264 msgid "" "Return a formatted dump of the tree in *node*. This is mainly useful for " "debugging purposes. The returned string will show the names and the values " @@ -440,7 +440,7 @@ msgstr "" "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``." -#: ../Doc/library/ast.rst:270 +#: ../Doc/library/ast.rst:273 msgid "" "`Green Tree Snakes `_, an external " "documentation resource, has good details on working with Python ASTs." diff --git a/library/asynchat.po b/library/asynchat.po index 91c1792f1..301509446 100644 --- a/library/asynchat.po +++ b/library/asynchat.po @@ -6,17 +6,20 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-07-27 23:08+0200\n" +"PO-Revision-Date: 2018-10-06 17:04+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.1.1\n" #: ../Doc/library/asynchat.rst:2 msgid ":mod:`asynchat` --- Asynchronous socket command/response handler" msgstr "" +":mod:`asynchat` --- Gestionnaire d'interfaces de connexion (*socket*) " +"commande/réponse asynchrones" #: ../Doc/library/asynchat.rst:10 msgid "**Source code:** :source:`Lib/asynchat.py`" @@ -24,13 +27,15 @@ msgstr "*Code source :** :source:`Lib/asynchat.py`" #: ../Doc/library/asynchat.rst:12 msgid "Please use :mod:`asyncio` instead." -msgstr "" +msgstr "Utilisez :mod:`asyncio` à la place." #: ../Doc/library/asynchat.rst:19 msgid "" "This module exists for backwards compatibility only. For new code we " "recommend using :mod:`asyncio`." msgstr "" +"Ce module n'existe que pour des raisons de rétrocompatibilité. Pour du code " +"nouveau, l'utilisation de :mod:`asyncio` est recommandée." #: ../Doc/library/asynchat.rst:22 msgid "" @@ -46,6 +51,18 @@ msgid "" "class:`asynchat.async_chat` channel objects as it receives incoming " "connection requests." msgstr "" +"Ce module s'appuie sur l'infrastructure de :mod:`asyncore`, en simplifiant " +"les clients et serveurs asynchrones et en rendant plus facile la gestion de " +"protocoles dont les éléments finissent par une chaine arbitraire, ou sont de " +"longueur variable. :mod:`asynchat` définit une classe abstraite :class:" +"`async_chat` dont vous héritez, et qui fournit des implémentations des " +"méthodes :meth:`collect_incoming_data` et :meth:`found_terminator`. Il " +"utilise la même boucle asynchrone que :mod:`asyncore`, et deux types de " +"canaux, :class:`asyncore.dispatcher` et :class:`asynchat.async_chat`, qui " +"peuvent être librement mélangés dans la carte des canaux. Habituellement, un " +"canal de serveur :class:`asyncore.dispatcher` génère de nouveaux canaux " +"d'objets :class:`asynchat.async_chat` à la réception de requêtes de " +"connexion." #: ../Doc/library/asynchat.rst:37 msgid "" @@ -55,6 +72,12 @@ msgid "" "methods. The :class:`asyncore.dispatcher` methods can be used, although not " "all make sense in a message/response context." msgstr "" +"Cette classe est une sous-classe abstraite de :class:`asyncore.dispatcher`. " +"Pour en faire un usage pratique, vous devez créer une classe héritant de :" +"class:`async_chat`, et implémentant des méthodes :meth:" +"`collect_incoming_data` et :meth:`found_terminator` sensées. Les méthodes " +"de :class:`asyncore.dispatcher` peuvent être utilisées, même si toutes " +"n'ont pas de sens dans un contexte de messages/réponse." #: ../Doc/library/asynchat.rst:44 msgid "" @@ -64,20 +87,28 @@ msgid "" "`async_chat` object's methods are called by the event-processing framework " "with no action on the part of the programmer." msgstr "" +"Comme :class:`asyncore.dispatcher`, :class:`async_chat` définit un ensemble " +"d’événements générés par une analyse de l'état des interfaces de connexion " +"(*socket* en anglais) après un appel à :c:func:`select`. Une fois que la " +"boucle de scrutation (*polling* en anglais) a été lancée, les méthodes des " +"objets :class:`async_chat` sont appelées par le *framework* de traitement " +"d’événements sans que le programmeur n'ait à le spécifier." #: ../Doc/library/asynchat.rst:50 msgid "" "Two class attributes can be modified, to improve performance, or possibly " "even to conserve memory." msgstr "" +"Deux attributs de classe peuvent être modifiés, pour améliorer la " +"performance, ou potentiellement pour économiser de la mémoire." #: ../Doc/library/asynchat.rst:56 msgid "The asynchronous input buffer size (default ``4096``)." -msgstr "" +msgstr "La taille du tampon d'entrées asynchrones (``4096`` par défaut)." #: ../Doc/library/asynchat.rst:61 msgid "The asynchronous output buffer size (default ``4096``)." -msgstr "" +msgstr "La taille du tampon de sorties asynchrones (``4096`` par défaut)." #: ../Doc/library/asynchat.rst:63 msgid "" @@ -93,6 +124,18 @@ msgid "" "recognize the end of, or an important breakpoint in, an incoming " "transmission from the remote endpoint." msgstr "" +"Contrairement à :class:`asyncore.dispatcher`, :class:`async_chat` permet de " +"définir une queue :abbr:`FIFO (first-in, first-out)` de *producteurs*. Un " +"producteur nécessite seulement une méthode, :meth:`more`, qui renvoie la " +"donnée à transmettre au canal. Le producteur indique son épuisement (*c.-à-d." +"* qu'il ne contiens plus de données) en ne retournant avec sa méthode :meth:" +"`more` l'objet bytes vide. L'objet :class:`async_chat` retire alors le " +"producteur de la queue et commence à utiliser le producteur suivant, si il y " +"en à un. Quand la queue de producteurs est vide, la méthode :meth:" +"`handle_write` ne fait rien. La méthode :meth:`set_terminator` de l'objet du " +"canal est utilisé pour décrire comment reconnaître la fin, ou la présence " +"d'un point d'arrêt, dans in transmission entrante depuis le point d’accès " +"distant." #: ../Doc/library/asynchat.rst:76 msgid "" @@ -101,12 +144,18 @@ msgid "" "data that the channel receives asynchronously. The methods are described " "below." msgstr "" +"Pour construire une sous classe fonctionnelle de :class:`async_chat` pour " +"vos méthodes d'entrées :meth:`collect_incoming_data` et :meth:" +"`found_terminator` doivent gérer la donnée que le canal reçoit de manière " +"asynchrone. Ces méthodes sont décrites ci-dessous." #: ../Doc/library/asynchat.rst:84 msgid "" "Pushes a ``None`` on to the producer queue. When this producer is popped off " "the queue it causes the channel to be closed." msgstr "" +"Pousse un ``None`` sur la pile de producteurs. Quand ce producteur est " +"récupéré dans la queue, le canal est fermé." #: ../Doc/library/asynchat.rst:90 msgid "" @@ -114,12 +163,16 @@ msgid "" "default method, which must be overridden, raises a :exc:" "`NotImplementedError` exception." msgstr "" +"Appelé avec *data* contenant une quantité arbitraire de données. La méthode " +"par défaut, qui doit être écrasée, lève une :exc:`NotImplementedError`." #: ../Doc/library/asynchat.rst:97 msgid "" "In emergencies this method will discard any data held in the input and/or " "output buffers and the producer queue." msgstr "" +"En cas d'urgence, cette méthode va supprimer tout donnée présente dans les " +"tampons d'entrée et/ou de sortie dans la queue de producteurs." #: ../Doc/library/asynchat.rst:103 msgid "" @@ -128,10 +181,14 @@ msgid "" "raises a :exc:`NotImplementedError` exception. The buffered input data " "should be available via an instance attribute." msgstr "" +"Appelée quand le flux de donné corresponds à la condition de fin décrite " +"par :meth:`set_terminator`. La méthode par défaut, qui doit être écrasée, " +"lève une :exc:`NotImplementedError`. Les données entrantes mise en tampon " +"devraient être disponible via un attribut de l'instance." #: ../Doc/library/asynchat.rst:111 msgid "Returns the current terminator for the channel." -msgstr "" +msgstr "Renvoie le terminateur courant pour le canal." #: ../Doc/library/asynchat.rst:116 msgid "" @@ -140,6 +197,11 @@ msgid "" "although it is possible to use your own producers in more complex schemes to " "implement encryption and chunking, for example." msgstr "" +"Pousse *data* sur la pile du canal pour assurer sa transmission. C'est tout " +"ce dont on a besoin pour que le canal envoie des données sur le réseau. " +"Cependant, il est possible d'utiliser vos propres producteurs dans des " +"schémas plus complexes qui implémentent de la cryptographie et du *chunking* " +"par exemple." #: ../Doc/library/asynchat.rst:124 msgid "" @@ -148,6 +210,10 @@ msgid "" "channel will consume this producer's data by calling its :meth:`more` method " "and send the data to the remote endpoint." msgstr "" +"Prends un objet producteur l'ajoute à la queue de producteurs associée au " +"canal. Quand tout les producteurs actuellement poussés ont été épuisé, le " +"canal consomme les données de ce producteur en appelant sa méthode :meth:" +"`more` et envoie les données au point d’accès distant." #: ../Doc/library/asynchat.rst:132 msgid "" @@ -155,6 +221,9 @@ msgid "" "may be any of three types of value, corresponding to three different ways to " "handle incoming protocol data." msgstr "" +"Définit le marqueur de fin que le canal doit reconnaître. ``term`` peut être " +"n'importe lequel des trois types de valeurs, correspondant aux trois " +"différentes manières de gérer les données entrantes." #: ../Doc/library/asynchat.rst:137 msgid "term" @@ -173,6 +242,8 @@ msgid "" "Will call :meth:`found_terminator` when the string is found in the input " "stream" msgstr "" +"Appellera :meth:`found_terminator` quand la chaîne est trouvée dans le flux " +"d'entré" #: ../Doc/library/asynchat.rst:142 msgid "*integer*" @@ -183,6 +254,8 @@ msgid "" "Will call :meth:`found_terminator` when the indicated number of characters " "have been received" msgstr "" +"Appellera :meth:`found_terminator` quand le nombre de caractère indiqué à " +"été reçu" #: ../Doc/library/asynchat.rst:146 msgid "``None``" @@ -197,6 +270,8 @@ msgid "" "Note that any data following the terminator will be available for reading by " "the channel after :meth:`found_terminator` is called." msgstr "" +"Notez que toute donnée située après le marqueur de fin sera accessible en " +"lecture par le canal après que :meth:`found_terminator` ai été appelé." #: ../Doc/library/asynchat.rst:157 msgid "asynchat Example" @@ -211,6 +286,12 @@ msgid "" "end of the HTTP headers, and a flag indicates that the headers are being " "read." msgstr "" +"L'exemple partiel suivant montre comment des requêtes HTTP peuvent être lues " +"avec :class:`async_chat`. Un serveur web pourrait créer un objet :class:" +"`http_request_handler` pour chaque connections lient entrantes. Notez que " +"initialement, le marqueur de fin du canal est défini pour reconnaître les " +"lignes vides à la fin des entêtes HTTP, et une option indique que les " +"entêtes sont en train d'être lues." #: ../Doc/library/asynchat.rst:166 msgid "" @@ -219,6 +300,10 @@ msgid "" "`` header is used to set a numeric terminator to read the right amount of " "data from the channel." msgstr "" +"Une fois que les entêtes ont été lues, si la requête est de type *POST* (ce " +"qui indique que davantage de données sont présent dans dans le flux entrant) " +"alors l'entête ``Content-Length:`` est utilisé pour définir un marqueur de " +"fin numérique pour lire la bonne quantité de donné depuis le canal." #: ../Doc/library/asynchat.rst:171 msgid "" @@ -226,3 +311,7 @@ msgid "" "marshalled, after setting the channel terminator to ``None`` to ensure that " "any extraneous data sent by the web client are ignored. ::" msgstr "" +"La méthode :meth:`handle_request` est appelée une fois que toutes les " +"données pertinentes ont été rassemblées, après avoir définit le marqueur de " +"fin à ``None`` pour s'assurer que toute données étrangères envoyées par le " +"client web sont ignorées. ::" diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po new file mode 100644 index 000000000..b741f53fc --- /dev/null +++ b/library/asyncio-api-index.po @@ -0,0 +1,395 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\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" +"Last-Translator: FULL NAME \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/asyncio-api-index.rst:6 +msgid "High-level API Index" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:8 +msgid "This page lists all high-level async/await enabled asyncio APIs." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:12 +msgid "Tasks" +msgstr "Tâches" + +#: ../Doc/library/asyncio-api-index.rst:14 +msgid "" +"Utilities to run asyncio programs, create Tasks, and await on multiple " +"things with timeouts." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:21 +msgid ":func:`run`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:22 +msgid "Create event loop, run a coroutine, close the loop." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:24 +msgid ":func:`create_task`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:25 +msgid "Start an asyncio Task." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:27 +msgid "``await`` :func:`sleep`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:28 +msgid "Sleep for a number of seconds." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:30 +msgid "``await`` :func:`gather`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:31 +msgid "Schedule and wait for things concurrently." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:33 +msgid "``await`` :func:`wait_for`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:34 +msgid "Run with a timeout." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:36 +msgid "``await`` :func:`shield`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:37 +msgid "Shield from cancellation." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:39 +msgid "``await`` :func:`wait`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:40 +msgid "Monitor for completion." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:42 +msgid ":func:`current_task`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:43 +msgid "Return the current Task." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:45 +msgid ":func:`all_tasks`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:46 +msgid "Return all tasks for an event loop." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:48 +msgid ":class:`Task`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:49 +msgid "Task object." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:51 +msgid ":func:`run_coroutine_threadsafe`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:52 +msgid "Schedule a coroutine from another OS thread." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:54 +msgid "``for in`` :func:`as_completed`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:55 +msgid "Monitor for completion with a ``for`` loop." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:59 +#: ../Doc/library/asyncio-api-index.rst:95 +#: ../Doc/library/asyncio-api-index.rst:119 +#: ../Doc/library/asyncio-api-index.rst:155 +#: ../Doc/library/asyncio-api-index.rst:188 +#: ../Doc/library/asyncio-api-index.rst:213 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-api-index.rst:60 +msgid "" +":ref:`Using asyncio.gather() to run things in parallel " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:63 +msgid "" +":ref:`Using asyncio.wait_for() to enforce a timeout " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:66 +msgid ":ref:`Cancellation `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:68 +msgid ":ref:`Using asyncio.sleep() `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:70 +msgid "See also the main :ref:`Tasks documentation page `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:74 +msgid "Queues" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:76 +msgid "" +"Queues should be used to distribute work amongst multiple asyncio Tasks, " +"implement connection pools, and pub/sub patterns." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:84 +msgid ":class:`Queue`" +msgstr ":class:`Queue`" + +#: ../Doc/library/asyncio-api-index.rst:85 +msgid "A FIFO queue." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:87 +msgid ":class:`PriorityQueue`" +msgstr ":class:`PriorityQueue`" + +#: ../Doc/library/asyncio-api-index.rst:88 +msgid "A priority queue." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:90 +msgid ":class:`LifoQueue`" +msgstr ":class:`LifoQueue`" + +#: ../Doc/library/asyncio-api-index.rst:91 +msgid "A LIFO queue." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:96 +msgid "" +":ref:`Using asyncio.Queue to distribute workload between several Tasks " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:99 +msgid "See also the :ref:`Queues documentation page `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:103 +msgid "Subprocesses" +msgstr "Sous-processus" + +#: ../Doc/library/asyncio-api-index.rst:105 +msgid "Utilities to spawn subprocesses and run shell commands." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:111 +msgid "``await`` :func:`create_subprocess_exec`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:112 +msgid "Create a subprocess." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:114 +msgid "``await`` :func:`create_subprocess_shell`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:115 +msgid "Run a shell command." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:120 +msgid ":ref:`Executing a shell command `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:122 +msgid "See also the :ref:`subprocess APIs ` documentation." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:127 +msgid "Streams" +msgstr "Streams" + +#: ../Doc/library/asyncio-api-index.rst:129 +msgid "High-level APIs to work with network IO." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:135 +msgid "``await`` :func:`open_connection`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:136 +msgid "Establish a TCP connection." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:138 +msgid "``await`` :func:`open_unix_connection`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:139 +msgid "Establish a Unix socket connection." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:141 +msgid "``await`` :func:`start_server`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:142 +msgid "Start a TCP server." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:144 +msgid "``await`` :func:`start_unix_server`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:145 +msgid "Start a Unix socket server." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:147 +msgid ":class:`StreamReader`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:148 +msgid "High-level async/await object to receive network data." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:150 +msgid ":class:`StreamWriter`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:151 +msgid "High-level async/await object to send network data." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:156 +msgid ":ref:`Example TCP client `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:158 +msgid "See also the :ref:`streams APIs ` documentation." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:163 +msgid "Synchronization" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:165 +msgid "Threading-like synchronization primitives that can be used in Tasks." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:171 +msgid ":class:`Lock`" +msgstr ":class:`Lock`" + +#: ../Doc/library/asyncio-api-index.rst:172 +msgid "A mutex lock." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:174 +msgid ":class:`Event`" +msgstr ":class:`Event`" + +#: ../Doc/library/asyncio-api-index.rst:175 +msgid "An event object." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:177 +msgid ":class:`Condition`" +msgstr ":class:`Condition`" + +#: ../Doc/library/asyncio-api-index.rst:178 +msgid "A condition object." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:180 +msgid ":class:`Semaphore`" +msgstr ":class:`Semaphore`" + +#: ../Doc/library/asyncio-api-index.rst:181 +msgid "A semaphore." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:183 +msgid ":class:`BoundedSemaphore`" +msgstr ":class:`BoundedSemaphore`" + +#: ../Doc/library/asyncio-api-index.rst:184 +msgid "A bounded semaphore." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:189 +msgid ":ref:`Using asyncio.Event `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:191 +msgid "" +"See also the documentation of asyncio :ref:`synchronization primitives " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:196 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/asyncio-api-index.rst:203 +msgid ":exc:`asyncio.TimeoutError`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:204 +msgid "" +"Raised on timeout by functions like :func:`wait_for`. Keep in mind that " +"``asyncio.TimeoutError`` is **unrelated** to the built-in :exc:" +"`TimeoutError` exception." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:208 +msgid ":exc:`asyncio.CancelledError`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:209 +msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:214 +msgid "" +":ref:`Handling CancelledError to run code on cancellation request " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:217 +msgid "" +"See also the full list of :ref:`asyncio-specific exceptions `." +msgstr "" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index 1a32e9353..0a93aefc6 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-08-01 00:05+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-10-13 17:38+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -14,403 +14,262 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-dev.rst:6 -msgid "Develop with asyncio" +#: ../Doc/library/asyncio-dev.rst:7 +msgid "Developing with asyncio" msgstr "Programmer avec *asyncio*" -#: ../Doc/library/asyncio-dev.rst:8 +#: ../Doc/library/asyncio-dev.rst:9 msgid "" -"Asynchronous programming is different than classical \"sequential\" " -"programming. This page lists common traps and explains how to avoid them." +"Asynchronous programming is different from classic \"sequential\" " +"programming." msgstr "" -#: ../Doc/library/asyncio-dev.rst:15 -msgid "Debug mode of asyncio" -msgstr "Mode de débogage d'*asyncio*" - -#: ../Doc/library/asyncio-dev.rst:17 +#: ../Doc/library/asyncio-dev.rst:12 msgid "" -"The implementation of :mod:`asyncio` has been written for performance. In " -"order to ease the development of asynchronous code, you may wish to enable " -"*debug mode*." +"This page lists common mistakes and traps and explains how to avoid them." msgstr "" -#: ../Doc/library/asyncio-dev.rst:21 -msgid "To enable all debug checks for an application:" +#: ../Doc/library/asyncio-dev.rst:19 +msgid "Debug Mode" msgstr "" -"Pour activer toutes les vérifications de débogage pour une application :" -#: ../Doc/library/asyncio-dev.rst:23 +#: ../Doc/library/asyncio-dev.rst:21 msgid "" -"Enable the asyncio debug mode globally by setting the environment variable :" -"envvar:`PYTHONASYNCIODEBUG` to ``1``, using ``-X dev`` command line option " -"(see the :option:`-X` option), or by calling :meth:`AbstractEventLoop." -"set_debug`." +"By default asyncio runs in production mode. In order to ease the " +"development asyncio has a *debug mode*." msgstr "" -#: ../Doc/library/asyncio-dev.rst:27 -msgid "" -"Set the log level of the :ref:`asyncio logger ` to :py:data:" -"`logging.DEBUG`. For example, call ``logging.basicConfig(level=logging." -"DEBUG)`` at startup." +#: ../Doc/library/asyncio-dev.rst:24 +msgid "There are several ways to enable asyncio debug mode:" msgstr "" -#: ../Doc/library/asyncio-dev.rst:30 -msgid "" -"Configure the :mod:`warnings` module to display :exc:`ResourceWarning` " -"warnings. For example, use the ``-Wdefault`` command line option of Python " -"to display them." +#: ../Doc/library/asyncio-dev.rst:26 +msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``." msgstr "" -#: ../Doc/library/asyncio-dev.rst:34 -msgid "Examples debug checks:" -msgstr "Exemples de vérifications de débogage :" - -#: ../Doc/library/asyncio-dev.rst:36 -msgid "" -"Log :ref:`coroutines defined but never \"yielded from\" `" +#: ../Doc/library/asyncio-dev.rst:28 +msgid "Using the :option:`-X` ``dev`` Python command line option." msgstr "" -#: ../Doc/library/asyncio-dev.rst:38 -msgid "" -":meth:`~AbstractEventLoop.call_soon` and :meth:`~AbstractEventLoop.call_at` " -"methods raise an exception if they are called from the wrong thread." +#: ../Doc/library/asyncio-dev.rst:30 +msgid "Passing ``debug=True`` to :func:`asyncio.run`." msgstr "" -#: ../Doc/library/asyncio-dev.rst:40 -msgid "Log the execution time of the selector" -msgstr "Enregistre le temps d'exécution du sélecteur dans le journal" - -#: ../Doc/library/asyncio-dev.rst:41 -msgid "" -"Log callbacks taking more than 100 ms to be executed. The :attr:" -"`AbstractEventLoop.slow_callback_duration` attribute is the minimum duration " -"in seconds of \"slow\" callbacks." +#: ../Doc/library/asyncio-dev.rst:32 +msgid "Calling :meth:`loop.set_debug`." msgstr "" -#: ../Doc/library/asyncio-dev.rst:44 -msgid "" -":exc:`ResourceWarning` warnings are emitted when transports and event loops " -"are :ref:`not closed explicitly `." +#: ../Doc/library/asyncio-dev.rst:34 +msgid "In addition to enabling the debug mode, consider also:" msgstr "" -#: ../Doc/library/asyncio-dev.rst:49 +#: ../Doc/library/asyncio-dev.rst:36 msgid "" -"The new ``-X dev`` command line option can now also be used to enable the " -"debug mode." +"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 "" -#: ../Doc/library/asyncio-dev.rst:54 +#: ../Doc/library/asyncio-dev.rst:42 msgid "" -"The :meth:`AbstractEventLoop.set_debug` method and the :ref:`asyncio logger " -"`." +"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 "" -#: ../Doc/library/asyncio-dev.rst:59 -msgid "Cancellation" -msgstr "Annulation" - -#: ../Doc/library/asyncio-dev.rst:61 -msgid "" -"Cancellation of tasks is not common in classic programming. In asynchronous " -"programming, not only is it something common, but you have to prepare your " -"code to handle it." +#: ../Doc/library/asyncio-dev.rst:47 +msgid "When the debug mode is enabled:" msgstr "" -#: ../Doc/library/asyncio-dev.rst:65 +#: ../Doc/library/asyncio-dev.rst:49 msgid "" -"Futures and tasks can be cancelled explicitly with their :meth:`Future." -"cancel` method. The :func:`wait_for` function cancels the waited task when " -"the timeout occurs. There are many other cases where a task can be cancelled " -"indirectly." +"asyncio checks for :ref:`coroutines that were not awaited ` and logs them; this mitigates the \"forgotten await\" " +"pitfall." msgstr "" -#: ../Doc/library/asyncio-dev.rst:69 +#: ../Doc/library/asyncio-dev.rst:53 msgid "" -"Don't call :meth:`~Future.set_result` or :meth:`~Future.set_exception` " -"method of :class:`Future` if the future is cancelled: it would fail with an " -"exception. For example, write::" +"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 "" -#: ../Doc/library/asyncio-dev.rst:76 +#: ../Doc/library/asyncio-dev.rst:57 msgid "" -"Don't schedule directly a call to the :meth:`~Future.set_result` or the :" -"meth:`~Future.set_exception` method of a future with :meth:" -"`AbstractEventLoop.call_soon`: the future can be cancelled before its method " -"is called." +"The execution time of the I/O selector is logged if it takes too long to " +"perform an I/O operation." msgstr "" -#: ../Doc/library/asyncio-dev.rst:81 +#: ../Doc/library/asyncio-dev.rst:60 msgid "" -"If you wait for a future, you should check early if the future was cancelled " -"to avoid useless operations. Example::" +"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:91 -msgid "The :func:`shield` function can also be used to ignore cancellation." -msgstr "" - -#: ../Doc/library/asyncio-dev.rst:97 -msgid "Concurrency and multithreading" +#: ../Doc/library/asyncio-dev.rst:68 +msgid "Concurrency and Multithreading" msgstr "Concourance et *multithreading*" -#: ../Doc/library/asyncio-dev.rst:99 +#: ../Doc/library/asyncio-dev.rst:70 msgid "" -"An event loop runs in a thread and executes all callbacks and tasks in the " -"same thread. While a task is running in the event loop, no other task is " -"running in the same thread. But when the task uses ``await``, the task is " -"suspended and the event loop executes the next task." +"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 " +"loop, no other Tasks can run in the same thread. When a Task executes an " +"``await`` expression, the running Task gets suspended, and the event loop " +"executes the next Task." msgstr "" -#: ../Doc/library/asyncio-dev.rst:104 +#: ../Doc/library/asyncio-dev.rst:76 msgid "" -"To schedule a callback from a different thread, the :meth:`AbstractEventLoop." +"To schedule a callback from a different OS thread, the :meth:`loop." "call_soon_threadsafe` method should be used. Example::" msgstr "" -#: ../Doc/library/asyncio-dev.rst:109 -msgid "" -"Most asyncio objects are not thread safe. You should only worry if you " -"access objects outside the event loop. For example, to cancel a future, " -"don't call directly its :meth:`Future.cancel` method, but::" -msgstr "" - -#: ../Doc/library/asyncio-dev.rst:115 +#: ../Doc/library/asyncio-dev.rst:81 msgid "" -"To handle signals and to execute subprocesses, the event loop must be run in " -"the main thread." +"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 "" -#: ../Doc/library/asyncio-dev.rst:118 +#: ../Doc/library/asyncio-dev.rst:89 msgid "" -"To schedule a coroutine object from a different thread, the :func:" +"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 "" -#: ../Doc/library/asyncio-dev.rst:125 +#: ../Doc/library/asyncio-dev.rst:102 msgid "" -"The :meth:`AbstractEventLoop.run_in_executor` method can be used with a " -"thread pool executor to execute a callback in different thread to not block " -"the thread of the event loop." -msgstr "" - -#: ../Doc/library/asyncio-dev.rst:131 -msgid "" -"The :ref:`Synchronization primitives ` section describes ways " -"to synchronize tasks." +"To handle signals and to execute subprocesses, the event loop must be run in " +"the main thread." msgstr "" -#: ../Doc/library/asyncio-dev.rst:134 +#: ../Doc/library/asyncio-dev.rst:105 msgid "" -"The :ref:`Subprocess and threads ` section lists " -"asyncio limitations to run subprocesses from different threads." +"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 "" -#: ../Doc/library/asyncio-dev.rst:143 -msgid "Handle blocking functions correctly" -msgstr "Gérer les fonctions bloquantes correctement" - -#: ../Doc/library/asyncio-dev.rst:145 -msgid "" -"Blocking functions should not be called directly. For example, if a function " -"blocks for 1 second, other tasks are delayed by 1 second which can have an " -"important impact on reactivity." +#: ../Doc/library/asyncio-dev.rst:114 +msgid "Running Blocking Code" msgstr "" -#: ../Doc/library/asyncio-dev.rst:149 +#: ../Doc/library/asyncio-dev.rst:116 msgid "" -"For networking and subprocesses, the :mod:`asyncio` module provides high-" -"level APIs like :ref:`protocols `." +"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 "" -#: ../Doc/library/asyncio-dev.rst:152 +#: ../Doc/library/asyncio-dev.rst:121 msgid "" "An executor can be used to run a task in a different thread or even in a " -"different process, to not block the thread of the event loop. See the :meth:" -"`AbstractEventLoop.run_in_executor` method." -msgstr "" - -#: ../Doc/library/asyncio-dev.rst:158 -msgid "" -"The :ref:`Delayed calls ` section details how the " -"event loop handles time." +"different process to avoid blocking block the OS thread with the event " +"loop. See the :meth:`loop.run_in_executor` method for more details." msgstr "" -#: ../Doc/library/asyncio-dev.rst:165 +#: ../Doc/library/asyncio-dev.rst:130 msgid "Logging" msgstr "Journalisation" -#: ../Doc/library/asyncio-dev.rst:167 +#: ../Doc/library/asyncio-dev.rst:132 msgid "" -"The :mod:`asyncio` module logs information with the :mod:`logging` module in " -"the logger ``'asyncio'``." +"asyncio uses the :mod:`logging` module and all logging is performed via the " +"``\"asyncio\"`` logger." msgstr "" -#: ../Doc/library/asyncio-dev.rst:170 +#: ../Doc/library/asyncio-dev.rst:135 msgid "" -"The default log level for the :mod:`asyncio` module is :py:data:`logging." -"INFO`. For those not wanting such verbosity from :mod:`asyncio` the log " -"level can be changed. For example, to change the level to :py:data:`logging." -"WARNING`:" +"The default log level is :py:data:`logging.INFO`, which can be easily " +"adjusted::" msgstr "" -#: ../Doc/library/asyncio-dev.rst:182 -msgid "Detect coroutine objects never scheduled" -msgstr "Détecte les coroutines qui ne sont jamais exécutées" - -#: ../Doc/library/asyncio-dev.rst:184 -msgid "" -"When a coroutine function is called and its result is not passed to :func:" -"`ensure_future` or to the :meth:`AbstractEventLoop.create_task` method, the " -"execution of the coroutine object will never be scheduled which is probably " -"a bug. :ref:`Enable the debug mode of asyncio ` to :ref:" -"`log a warning ` to detect it." +#: ../Doc/library/asyncio-dev.rst:144 +msgid "Detect never-awaited coroutines" msgstr "" -#: ../Doc/library/asyncio-dev.rst:190 -msgid "Example with the bug::" -msgstr "Exemple avec le bug : ::" - -#: ../Doc/library/asyncio-dev.rst:199 -msgid "Output in debug mode::" -msgstr "Affichage en mode débogage : ::" - -#: ../Doc/library/asyncio-dev.rst:206 +#: ../Doc/library/asyncio-dev.rst:146 msgid "" -"The fix is to call the :func:`ensure_future` function or the :meth:" -"`AbstractEventLoop.create_task` method with the coroutine object." +"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 "" -#: ../Doc/library/asyncio-dev.rst:211 -msgid ":ref:`Pending task destroyed `." -msgstr "" - -#: ../Doc/library/asyncio-dev.rst:215 -msgid "Detect exceptions never consumed" -msgstr "" - -#: ../Doc/library/asyncio-dev.rst:217 -msgid "" -"Python usually calls :func:`sys.excepthook` on unhandled exceptions. If :" -"meth:`Future.set_exception` is called, but the exception is never consumed, :" -"func:`sys.excepthook` is not called. Instead, :ref:`a log is emitted " -"` when the future is deleted by the garbage collector, with " -"the traceback where the exception was raised." -msgstr "" - -#: ../Doc/library/asyncio-dev.rst:223 -msgid "Example of unhandled exception::" -msgstr "" - -#: ../Doc/library/asyncio-dev.rst:236 +#: ../Doc/library/asyncio-dev.rst:161 ../Doc/library/asyncio-dev.rst:206 msgid "Output::" msgstr "Sortie ::" -#: ../Doc/library/asyncio-dev.rst:249 -msgid "" -":ref:`Enable the debug mode of asyncio ` to get the " -"traceback where the task was created. Output in debug mode::" -msgstr "" +#: ../Doc/library/asyncio-dev.rst:166 ../Doc/library/asyncio-dev.rst:222 +msgid "Output in debug mode::" +msgstr "Affichage en mode débogage ::" -#: ../Doc/library/asyncio-dev.rst:268 +#: ../Doc/library/asyncio-dev.rst:179 msgid "" -"There are different options to fix this issue. The first option is to chain " -"the coroutine in another coroutine and use classic try/except::" +"The usual fix is to either await the coroutine or call the :meth:`asyncio." +"create_task` function::" msgstr "" -#: ../Doc/library/asyncio-dev.rst:282 -msgid "" -"Another option is to use the :meth:`AbstractEventLoop.run_until_complete` " -"function::" +#: ../Doc/library/asyncio-dev.rst:187 +msgid "Detect never-retrieved exceptions" msgstr "" -#: ../Doc/library/asyncio-dev.rst:293 -msgid "The :meth:`Future.exception` method." -msgstr "La méthode :meth:`Future.exception`." - -#: ../Doc/library/asyncio-dev.rst:297 -msgid "Chain coroutines correctly" -msgstr "Chaîner les coroutines correctement" - -#: ../Doc/library/asyncio-dev.rst:299 +#: ../Doc/library/asyncio-dev.rst:189 msgid "" -"When a coroutine function calls other coroutine functions and tasks, they " -"should be chained explicitly with ``await``. Otherwise, the execution is not " -"guaranteed to be sequential." +"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 "" -#: ../Doc/library/asyncio-dev.rst:303 -msgid "" -"Example with different bugs using :func:`asyncio.sleep` to simulate slow " -"operations::" +#: ../Doc/library/asyncio-dev.rst:194 +msgid "Example of an unhandled exception::" msgstr "" -#: ../Doc/library/asyncio-dev.rst:332 -msgid "Expected output:" +#: ../Doc/library/asyncio-dev.rst:217 +msgid "" +":ref:`Enable the debug mode ` to get the traceback where " +"the task was created::" msgstr "" -#: ../Doc/library/asyncio-dev.rst:341 -msgid "Actual output:" -msgstr "Affichage obtenu :" +#~ msgid "Debug mode of asyncio" +#~ msgstr "Mode de débogage d'*asyncio*" -#: ../Doc/library/asyncio-dev.rst:351 -msgid "" -"The loop stopped before the ``create()`` finished, ``close()`` has been " -"called before ``write()``, whereas coroutine functions were called in this " -"order: ``create()``, ``write()``, ``close()``." -msgstr "" +#~ msgid "To enable all debug checks for an application:" +#~ msgstr "" +#~ "Pour activer toutes les vérifications de débogage pour une application :" -#: ../Doc/library/asyncio-dev.rst:355 -msgid "To fix the example, tasks must be marked with ``await``::" -msgstr "" +#~ msgid "Examples debug checks:" +#~ msgstr "Exemples de vérifications de débogage :" -#: ../Doc/library/asyncio-dev.rst:364 -msgid "Or without ``asyncio.ensure_future()``::" -msgstr "Ou sans ``asyncio.ensure_future()`` ::" +#~ msgid "Log the execution time of the selector" +#~ msgstr "Enregistre le temps d'exécution du sélecteur dans le journal" -#: ../Doc/library/asyncio-dev.rst:377 -msgid "Pending task destroyed" -msgstr "" +#~ msgid "Cancellation" +#~ msgstr "Annulation" -#: ../Doc/library/asyncio-dev.rst:379 -msgid "" -"If a pending task is destroyed, the execution of its wrapped :ref:`coroutine " -"` did not complete. It is probably a bug and so a warning is " -"logged." -msgstr "" +#~ msgid "Handle blocking functions correctly" +#~ msgstr "Gérer les fonctions bloquantes correctement" -#: ../Doc/library/asyncio-dev.rst:382 -msgid "Example of log:" -msgstr "" +#~ msgid "Detect coroutine objects never scheduled" +#~ msgstr "Détecte les coroutines qui ne sont jamais exécutées" -#: ../Doc/library/asyncio-dev.rst:389 -msgid "" -":ref:`Enable the debug mode of asyncio ` to get the " -"traceback where the task was created. Example of log in debug mode:" -msgstr "" +#~ msgid "Example with the bug::" +#~ msgstr "Exemple avec le bug ::" -#: ../Doc/library/asyncio-dev.rst:403 -msgid "" -":ref:`Detect coroutine objects never scheduled `." -msgstr "" +#~ msgid "The :meth:`Future.exception` method." +#~ msgstr "La méthode :meth:`Future.exception`." -#: ../Doc/library/asyncio-dev.rst:408 -msgid "Close transports and event loops" -msgstr "" +#~ msgid "Chain coroutines correctly" +#~ msgstr "Chaîner les coroutines correctement" -#: ../Doc/library/asyncio-dev.rst:410 -msgid "" -"When a transport is no more needed, call its ``close()`` method to release " -"resources. Event loops must also be closed explicitly." -msgstr "" +#~ msgid "Actual output:" +#~ msgstr "Affichage obtenu :" -#: ../Doc/library/asyncio-dev.rst:413 -msgid "" -"If a transport or an event loop is not closed explicitly, a :exc:" -"`ResourceWarning` warning will be emitted in its destructor. By default, :" -"exc:`ResourceWarning` warnings are ignored. The :ref:`Debug mode of asyncio " -"` section explains how to display them." -msgstr "" +#~ msgid "Or without ``asyncio.ensure_future()``::" +#~ msgstr "Ou sans ``asyncio.ensure_future()`` ::" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 64234327f..374c77793 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -5,430 +5,519 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-27 23:10+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-10 15:50+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.0.2\n" #: ../Doc/library/asyncio-eventloop.rst:6 -msgid "Base Event Loop" -msgstr "" - -#: ../Doc/library/asyncio-eventloop.rst:8 -msgid "**Source code:** :source:`Lib/asyncio/events.py`" -msgstr "" +msgid "Event Loop" +msgstr "Boucle d'évènements" #: ../Doc/library/asyncio-eventloop.rst:10 -msgid "" -"The event loop is the central execution device provided by :mod:`asyncio`. " -"It provides multiple facilities, including:" +msgid "Preface" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:13 -msgid "Registering, executing and cancelling delayed calls (timeouts)." +#: ../Doc/library/asyncio-eventloop.rst:11 +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 msgid "" -"Creating client and server :ref:`transports ` for various " -"kinds of communication." +"Application developers should typically use the high-level asyncio " +"functions, such as :func:`asyncio.run`, and should rarely need to reference " +"the loop object or call its methods. This section is intended mostly for " +"authors of lower-level code, libraries, and frameworks, who need finer " +"control over the event loop behavior." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:18 +#: ../Doc/library/asyncio-eventloop.rst:22 +msgid "Obtaining the Event Loop" +msgstr "Obtenir une boucle d'évènements" + +#: ../Doc/library/asyncio-eventloop.rst:23 msgid "" -"Launching subprocesses and the associated :ref:`transports ` for communication with an external program." +"The following low-level functions can be used to get, set, or create an " +"event loop:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:21 -msgid "Delegating costly function calls to a pool of threads." +#: ../Doc/library/asyncio-eventloop.rst:28 +msgid "Return the running event loop in the current OS thread." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:25 +#: ../Doc/library/asyncio-eventloop.rst:30 msgid "" -"This class is an implementation detail. It is a subclass of :class:" -"`AbstractEventLoop` and may be a base class of concrete event loop " -"implementations found in :mod:`asyncio`. It should not be used directly; " -"use :class:`AbstractEventLoop` instead. ``BaseEventLoop`` should not be " -"subclassed by third-party code; the internal interface is not stable." +"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:34 -msgid "Abstract base class of event loops." +#: ../Doc/library/asyncio-eventloop.rst:37 +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." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:36 -msgid "This class is :ref:`not thread safe `." +#: ../Doc/library/asyncio-eventloop.rst:42 +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:39 -msgid "Run an event loop" -msgstr "Exécuter une boucle d'évènements" - -#: ../Doc/library/asyncio-eventloop.rst:43 +#: ../Doc/library/asyncio-eventloop.rst:47 msgid "" -"Run until :meth:`stop` is called. If :meth:`stop` is called before :meth:" -"`run_forever()` is called, this polls the I/O selector once with a timeout " -"of zero, runs all callbacks scheduled in response to I/O events (and those " -"that were already scheduled), and then exits. If :meth:`stop` is called " -"while :meth:`run_forever` is running, this will run the current batch of " -"callbacks and then exit. Note that callbacks scheduled by callbacks will " -"not run in that case; they will run the next time :meth:`run_forever` is " -"called." +"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 +msgid "Set *loop* as a current event loop for the current OS thread." msgstr "" #: ../Doc/library/asyncio-eventloop.rst:56 -msgid "Run until the :class:`Future` is done." -msgstr "Exécuter jusqu'à ce que :class:`Future` soit terminé." +msgid "Create a new event loop object." +msgstr "" #: ../Doc/library/asyncio-eventloop.rst:58 msgid "" -"If the argument is a :ref:`coroutine object `, it is wrapped by :" -"func:`ensure_future`." +"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:61 -msgid "Return the Future's result, or raise its exception." -msgstr "" +#: ../Doc/library/asyncio-eventloop.rst:64 +msgid "Contents" +msgstr "Sommaire" #: ../Doc/library/asyncio-eventloop.rst:65 -msgid "Returns running status of event loop." -msgstr "Donne le status d'exécution de la boucle d'évènements." +msgid "This documentation page contains the following sections:" +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:69 -msgid "Stop running the event loop." -msgstr "Arrête l'exécution de la boucle d'évènements." +#: ../Doc/library/asyncio-eventloop.rst:67 +msgid "" +"The `Event Loop Methods`_ section is the reference documentation of the " +"event loop APIs;" +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:71 +#: ../Doc/library/asyncio-eventloop.rst:70 msgid "" -"This causes :meth:`run_forever` to exit at the next suitable opportunity " -"(see there for more details)." +"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:78 -msgid "Returns ``True`` if the event loop was closed." -msgstr "Donne ``True`` si la boucle d'évènements est fermée." +#: ../Doc/library/asyncio-eventloop.rst:74 +msgid "" +"The `Server Objects`_ section documents types returned from event loop " +"methods like :meth:`loop.create_server`;" +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:84 +#: ../Doc/library/asyncio-eventloop.rst:77 msgid "" -"Close the event loop. The loop must not be running. Pending callbacks will " -"be lost." +"The `Event Loop Implementations`_ section documents the :class:" +"`SelectorEventLoop` and :class:`ProactorEventLoop` classes;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:80 +msgid "" +"The `Examples`_ section showcases how to work with some event loop APIs." msgstr "" #: ../Doc/library/asyncio-eventloop.rst:87 +msgid "Event Loop Methods" +msgstr "Méthodes de la boucle d'évènements" + +#: ../Doc/library/asyncio-eventloop.rst:89 +msgid "Event loops have **low-level** APIs for the following:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:97 +msgid "Running and stopping the loop" +msgstr "Démarrer et arrêter une boucle d'évènements" + +#: ../Doc/library/asyncio-eventloop.rst:101 +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 msgid "" -"This clears the queues and shuts down the executor, but does not wait for " -"the executor to finish." +"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 +msgid "Return the Future's result or raise its exception." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:90 +#: ../Doc/library/asyncio-eventloop.rst:111 +msgid "Run the event loop until :meth:`stop` is called." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:113 msgid "" -"This is idempotent and irreversible. No other methods should be called after " -"this one." +"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 " +"scheduled in response to I/O events (and those that were already scheduled), " +"and then exit." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:96 +#: ../Doc/library/asyncio-eventloop.rst:118 msgid "" -"Schedule all currently open :term:`asynchronous generator` objects to close " -"with an :meth:`~agen.aclose()` call. After calling this method, the event " -"loop will issue a warning whenever a new asynchronous generator is " -"iterated. Should be used to finalize all scheduled asynchronous generators " -"reliably. Example::" +"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 " +"callbacks scheduled by callbacks will not run in this case; instead, they " +"will run the next time :meth:`run_forever` or :meth:`run_until_complete` is " +"called." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:114 -msgid "Calls" -msgstr "Appels" +#: ../Doc/library/asyncio-eventloop.rst:126 +msgid "Stop the event loop." +msgstr "Arrête l'exécution de la boucle d'évènements." + +#: ../Doc/library/asyncio-eventloop.rst:130 +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:116 +#: ../Doc/library/asyncio-eventloop.rst:134 +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 +msgid "Close the event loop." +msgstr "Arrête la boucle d'évènements." + +#: ../Doc/library/asyncio-eventloop.rst:140 msgid "" -"Most :mod:`asyncio` functions don't accept keywords. If you want to pass " -"keywords to your callback, use :func:`functools.partial`. For example, " -"``loop.call_soon(functools.partial(print, \"Hello\", flush=True))`` will " -"call ``print(\"Hello\", flush=True)``." +"The loop must not be running when this function is called. Any pending " +"callbacks will be discarded." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:122 +#: ../Doc/library/asyncio-eventloop.rst:143 msgid "" -":func:`functools.partial` is better than ``lambda`` functions, because :mod:" -"`asyncio` can inspect :func:`functools.partial` object to display parameters " -"in debug mode, whereas ``lambda`` functions have a poor representation." +"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:129 +#: ../Doc/library/asyncio-eventloop.rst:146 msgid "" -"Arrange for a callback to be called as soon as possible. The callback is " -"called after :meth:`call_soon` returns, when control returns to the event " -"loop." +"This method is idempotent and irreversible. No other methods should be " +"called after the event loop is closed." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:133 +#: ../Doc/library/asyncio-eventloop.rst:151 msgid "" -"This operates as a :abbr:`FIFO (first-in, first-out)` queue, callbacks are " -"called in the order in which they are registered. Each callback will be " -"called exactly once." +"Schedule all currently open :term:`asynchronous generator` objects to close " +"with an :meth:`~agen.aclose()` call. After calling this method, the event " +"loop will issue a warning if a new asynchronous generator is iterated. This " +"should be used to reliably finalize all scheduled asynchronous generators." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:137 +#: ../Doc/library/asyncio-eventloop.rst:157 msgid "" -"Any positional arguments after the callback will be passed to the callback " -"when it is called." +"Note that there is no need to call this function when :func:`asyncio.run` is " +"used." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:140 -#: ../Doc/library/asyncio-eventloop.rst:197 +#: ../Doc/library/asyncio-eventloop.rst:160 +#: ../Doc/library/asyncio-eventloop.rst:1001 +#: ../Doc/library/asyncio-eventloop.rst:1363 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/asyncio-eventloop.rst:172 +msgid "Scheduling callbacks" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:176 +msgid "" +"Schedule a *callback* to be called with *args* arguments at the next " +"iteration of the event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:179 +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 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" -"class:`contextvars.Context` for the *callback* to run in. The current " +"class:`contextvars.Context` for the *callback* to run in. The current " "context is used when no *context* is provided." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:144 +#: ../Doc/library/asyncio-eventloop.rst:186 msgid "" -"An instance of :class:`asyncio.Handle` is returned, which can be used to " -"cancel the callback." +"An instance of :class:`asyncio.Handle` is returned, which can be used later " +"to cancel the callback." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:147 -#: ../Doc/library/asyncio-eventloop.rst:201 -#: ../Doc/library/asyncio-eventloop.rst:219 -#: ../Doc/library/asyncio-eventloop.rst:649 -#: ../Doc/library/asyncio-eventloop.rst:661 -#: ../Doc/library/asyncio-eventloop.rst:867 +#: ../Doc/library/asyncio-eventloop.rst:189 +msgid "This method is not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:193 msgid "" -":ref:`Use functools.partial to pass keywords to the callback `." +"A thread-safe variant of :meth:`call_soon`. Must be used to schedule " +"callbacks *from another thread*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:150 -#: ../Doc/library/asyncio-eventloop.rst:161 -#: ../Doc/library/asyncio-eventloop.rst:204 -#: ../Doc/library/asyncio-eventloop.rst:222 +#: ../Doc/library/asyncio-eventloop.rst:196 +msgid "" +"See the :ref:`concurrency and multithreading ` " +"section of the documentation." +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 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:156 -msgid "Like :meth:`call_soon`, but thread safe." -msgstr "Comme :meth:`call_soon` mais *thread safe*." +#: ../Doc/library/asyncio-eventloop.rst:207 +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:158 +#: ../Doc/library/asyncio-eventloop.rst:214 msgid "" -"See the :ref:`concurrency and multithreading ` " -"section of the documentation." +"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:169 -msgid "Delayed calls" -msgstr "Appels différés" +#: ../Doc/library/asyncio-eventloop.rst:222 +msgid "Scheduling delayed callbacks" +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:171 +#: ../Doc/library/asyncio-eventloop.rst:224 msgid "" -"The event loop has its own internal clock for computing timeouts. Which " -"clock is used depends on the (platform-specific) event loop implementation; " -"ideally it is a monotonic clock. This will generally be a different clock " -"than :func:`time.time`." +"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:178 +#: ../Doc/library/asyncio-eventloop.rst:231 msgid "" -"Timeouts (relative *delay* or absolute *when*) should not exceed one day." +"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:183 +#: ../Doc/library/asyncio-eventloop.rst:234 +#: ../Doc/library/asyncio-eventloop.rst:266 msgid "" -"Arrange for the *callback* to be called after the given *delay* seconds " -"(either an int or float)." +"An instance of :class:`asyncio.TimerHandle` is returned which can be used to " +"cancel the callback." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:186 -#: ../Doc/library/asyncio-eventloop.rst:216 +#: ../Doc/library/asyncio-eventloop.rst:237 msgid "" -"An instance of :class:`asyncio.TimerHandle` is returned, which can be used " -"to cancel the callback." +"*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:189 +#: ../Doc/library/asyncio-eventloop.rst:241 msgid "" -"*callback* will be called exactly once per call to :meth:`call_later`. If " -"two callbacks are scheduled for exactly the same time, it is undefined which " -"will be called first." +"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:193 +#: ../Doc/library/asyncio-eventloop.rst:253 msgid "" -"The optional positional *args* will be passed to the callback when it is " -"called. If you want the callback to be called with some named arguments, use " -"a closure or :func:`functools.partial`." +"In Python 3.7.0 and earlier with the default event loop implementation, the " +"*delay* could not exceed one day. This has been fixed in Python 3.7.1." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:210 +#: ../Doc/library/asyncio-eventloop.rst:260 msgid "" -"Arrange for the *callback* to be called at the given absolute timestamp " -"*when* (an int or float), using the same time reference as :meth:" -"`AbstractEventLoop.time`." +"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:214 +#: ../Doc/library/asyncio-eventloop.rst:264 msgid "This method's behavior is the same as :meth:`call_later`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:228 +#: ../Doc/library/asyncio-eventloop.rst:273 +msgid "" +"In Python 3.7.0 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.7.1." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:280 msgid "" "Return the current time, as a :class:`float` value, according to the event " -"loop's internal clock." +"loop's internal monotonic clock." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:284 +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:233 +#: ../Doc/library/asyncio-eventloop.rst:290 msgid "The :func:`asyncio.sleep` function." msgstr "La fonction :func:`asyncio.sleep`." -#: ../Doc/library/asyncio-eventloop.rst:237 -msgid "Futures" +#: ../Doc/library/asyncio-eventloop.rst:294 +msgid "Creating Futures and Tasks" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:241 -msgid "Create an :class:`asyncio.Future` object attached to the loop." +#: ../Doc/library/asyncio-eventloop.rst:298 +msgid "Create an :class:`asyncio.Future` object attached to the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:243 +#: ../Doc/library/asyncio-eventloop.rst:300 msgid "" -"This is a preferred way to create futures in asyncio, as event loop " -"implementations can provide alternative implementations of the Future class " +"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:251 -msgid "Tasks" -msgstr "Tâches" - -#: ../Doc/library/asyncio-eventloop.rst:255 +#: ../Doc/library/asyncio-eventloop.rst:308 msgid "" -"Schedule the execution of a :ref:`coroutine object `: wrap it in " -"a future. Return a :class:`Task` object." +"Schedule the execution of a :ref:`coroutine`. Return a :class:`Task` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:258 +#: ../Doc/library/asyncio-eventloop.rst:311 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:266 +#: ../Doc/library/asyncio-eventloop.rst:317 +msgid "Set a task factory that will be used by :meth:`loop.create_task`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:320 msgid "" -"Set a task factory that will be used by :meth:`AbstractEventLoop." -"create_task`." +"If *factory* is ``None`` the default task factory will be set. Otherwise, " +"*factory* must be a *callable* with the signature matching ``(loop, coro)``, " +"where *loop* is a reference to the active event loop, and *coro* is a " +"coroutine object. The callable must return a :class:`asyncio.Future`-" +"compatible object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:269 -msgid "If *factory* is ``None`` the default task factory will be set." +#: ../Doc/library/asyncio-eventloop.rst:328 +msgid "Return a task factory or ``None`` if the default one is in use." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:271 +#: ../Doc/library/asyncio-eventloop.rst:332 +msgid "Opening network connections" +msgstr "Créer des connexions" + +#: ../Doc/library/asyncio-eventloop.rst:340 msgid "" -"If *factory* is a *callable*, it should have a signature matching ``(loop, " -"coro)``, where *loop* will be a reference to the active event loop, *coro* " -"will be a coroutine object. The callable must return an :class:`asyncio." -"Future` compatible object." +"Open a streaming transport connection to a given address specified by *host* " +"and *port*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:280 -msgid "Return a task factory, or ``None`` if the default one is in use." +#: ../Doc/library/asyncio-eventloop.rst:343 +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:286 -msgid "Creating connections" -msgstr "Créer des connections" +#: ../Doc/library/asyncio-eventloop.rst:347 +msgid "The socket type will be :py:data:`~socket.SOCK_STREAM`." +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:290 +#: ../Doc/library/asyncio-eventloop.rst:349 +#: ../Doc/library/asyncio-eventloop.rst:917 +#: ../Doc/library/asyncio-eventloop.rst:933 msgid "" -"Create a streaming transport connection to a given Internet *host* and " -"*port*: socket family :py:data:`~socket.AF_INET` or :py:data:`~socket." -"AF_INET6` depending on *host* (or *family* if specified), socket type :py:" -"data:`~socket.SOCK_STREAM`. *protocol_factory* must be a callable returning " -"a :ref:`protocol ` instance." +"*protocol_factory* must be a callable returning an :ref:`asyncio protocol " +"` implementation." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:296 -#: ../Doc/library/asyncio-eventloop.rst:378 -#: ../Doc/library/asyncio-eventloop.rst:431 +#: ../Doc/library/asyncio-eventloop.rst:352 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:299 +#: ../Doc/library/asyncio-eventloop.rst:355 msgid "The chronological synopsis of the underlying operation is as follows:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:301 +#: ../Doc/library/asyncio-eventloop.rst:357 msgid "" -"The connection is established, and a :ref:`transport ` is " -"created to represent it." +"The connection is established and a :ref:`transport ` is " +"created for it." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:304 +#: ../Doc/library/asyncio-eventloop.rst:360 msgid "" -"*protocol_factory* is called without arguments and must return a :ref:" -"`protocol ` instance." +"*protocol_factory* is called without arguments and is expected to return a :" +"ref:`protocol ` instance." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:307 +#: ../Doc/library/asyncio-eventloop.rst:363 msgid "" -"The protocol instance is tied to the transport, and its :meth:" -"`connection_made` method is called." +"The protocol instance is coupled with the transport by calling its :meth:" +"`~BaseProtocol.connection_made` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:310 -msgid "" -"The coroutine returns successfully with the ``(transport, protocol)`` pair." +#: ../Doc/library/asyncio-eventloop.rst:366 +msgid "A ``(transport, protocol)`` tuple is returned on success." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:313 +#: ../Doc/library/asyncio-eventloop.rst:368 msgid "" "The created transport is an implementation-dependent bidirectional stream." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:316 -msgid "" -"*protocol_factory* can be any kind of callable, not necessarily a class. " -"For example, if you want to use a pre-created protocol instance, you can " -"pass ``lambda: my_protocol``." +#: ../Doc/library/asyncio-eventloop.rst:371 +#: ../Doc/library/asyncio-eventloop.rst:445 +msgid "Other arguments:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:320 -msgid "Options that change how the connection is created:" -msgstr "Options modifiant la création de la connexion :" - -#: ../Doc/library/asyncio-eventloop.rst:322 +#: ../Doc/library/asyncio-eventloop.rst:373 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` " "object, this context is used to create the transport; if *ssl* is :const:" -"`True`, a context with some unspecified default settings is used." +"`True`, a default context returned from :func:`ssl.create_default_context` " +"is used." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:328 +#: ../Doc/library/asyncio-eventloop.rst:379 msgid ":ref:`SSL/TLS security considerations `" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:330 +#: ../Doc/library/asyncio-eventloop.rst:381 msgid "" -"*server_hostname*, is only for use together with *ssl*, and sets or " -"overrides the hostname that the target server's certificate will be matched " -"against. By default the value of the *host* argument is used. If *host* is " -"empty, there is no default and you must pass a value for *server_hostname*. " -"If *server_hostname* is an empty string, hostname matching is disabled " -"(which is a serious security risk, allowing for man-in-the-middle-attacks)." +"*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 " +"``None``. By default the value of the *host* argument is used. If *host* " +"is empty, there is no default and you must pass a value for " +"*server_hostname*. If *server_hostname* is an empty string, hostname " +"matching is disabled (which is a serious security risk, allowing for " +"potential man-in-the-middle attacks)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:338 +#: ../Doc/library/asyncio-eventloop.rst:389 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to getaddrinfo() for *host* resolution. If given, " @@ -436,7 +525,7 @@ msgid "" "constants." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:343 +#: ../Doc/library/asyncio-eventloop.rst:394 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 " @@ -444,67 +533,89 @@ msgid "" "specified." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:348 +#: ../Doc/library/asyncio-eventloop.rst:399 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*." +"using ``getaddrinfo()``, similarly to *host* and *port*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:352 -#: ../Doc/library/asyncio-eventloop.rst:560 -#: ../Doc/library/asyncio-eventloop.rst:629 +#: ../Doc/library/asyncio-eventloop.rst:403 +#: ../Doc/library/asyncio-eventloop.rst:726 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. " +"*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:358 -#: ../Doc/library/asyncio-eventloop.rst:444 -#: ../Doc/library/asyncio-eventloop.rst:568 +#: ../Doc/library/asyncio-eventloop.rst:409 +#: ../Doc/library/asyncio-eventloop.rst:511 +#: ../Doc/library/asyncio-eventloop.rst:664 msgid "The *ssl_handshake_timeout* parameter." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:362 -#: ../Doc/library/asyncio-eventloop.rst:514 -msgid "On Windows with :class:`ProactorEventLoop`, SSL/TLS is now supported." +#: ../Doc/library/asyncio-eventloop.rst:413 +#: ../Doc/library/asyncio-eventloop.rst:594 +msgid "" +"The socket option :py:data:`~socket.TCP_NODELAY` is set by default for all " +"TCP connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:366 +#: ../Doc/library/asyncio-eventloop.rst:418 +#: ../Doc/library/asyncio-eventloop.rst:599 +msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:422 +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:432 +msgid "Create a datagram connection." +msgstr "Créer une connexion par datagramme" + +#: ../Doc/library/asyncio-eventloop.rst:434 msgid "" -"The :func:`open_connection` function can be used to get a pair of (:class:" -"`StreamReader`, :class:`StreamWriter`) instead of a protocol." +"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:372 +#: ../Doc/library/asyncio-eventloop.rst:438 +msgid "The socket type will be :py:data:`~socket.SOCK_DGRAM`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:440 +#: ../Doc/library/asyncio-eventloop.rst:536 +#: ../Doc/library/asyncio-eventloop.rst:647 msgid "" -"Create datagram connection: socket family :py:data:`~socket.AF_INET`, :py:" -"data:`~socket.AF_INET6` or :py:data:`~socket.AF_UNIX` depending on *host* " -"(or *family* if specified), socket type :py:data:`~socket.SOCK_DGRAM`. " "*protocol_factory* must be a callable returning a :ref:`protocol ` instance." +"protocol>` implementation." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:381 -msgid "Options changing how the connection is created:" -msgstr "Options modifiant la création de la connexion :" +#: ../Doc/library/asyncio-eventloop.rst:443 +#: ../Doc/library/asyncio-eventloop.rst:497 +msgid "A tuple of ``(transport, protocol)`` is returned on success." +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:383 +#: ../Doc/library/asyncio-eventloop.rst:447 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:387 +#: ../Doc/library/asyncio-eventloop.rst:451 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:391 +#: ../Doc/library/asyncio-eventloop.rst:455 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " @@ -512,30 +623,30 @@ msgid "" "module constants." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:396 -#: ../Doc/library/asyncio-eventloop.rst:488 +#: ../Doc/library/asyncio-eventloop.rst:460 +#: ../Doc/library/asyncio-eventloop.rst:568 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." +"*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:401 +#: ../Doc/library/asyncio-eventloop.rst:465 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 and some " -"UNIX's. If the :py:data:`~socket.SO_REUSEPORT` constant is not defined then " +"Unixes. If the :py:data:`~socket.SO_REUSEPORT` constant is not defined then " "this capability is unsupported." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:407 +#: ../Doc/library/asyncio-eventloop.rst:471 msgid "" "*allow_broadcast* tells the kernel to allow this endpoint to send messages " "to the broadcast address." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:410 +#: ../Doc/library/asyncio-eventloop.rst:474 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 " @@ -543,132 +654,143 @@ msgid "" "`None`)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:415 +#: ../Doc/library/asyncio-eventloop.rst:479 msgid "" -"On Windows with :class:`ProactorEventLoop`, this method is not supported." +"On Windows, with :class:`ProactorEventLoop`, this method is not supported." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:417 +#: ../Doc/library/asyncio-eventloop.rst:481 msgid "" "See :ref:`UDP echo client protocol ` and :" "ref:`UDP echo server protocol ` examples." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:420 +#: ../Doc/library/asyncio-eventloop.rst:484 msgid "" "The *family*, *proto*, *flags*, *reuse_address*, *reuse_port, " "*allow_broadcast*, and *sock* parameters were added." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:426 +#: ../Doc/library/asyncio-eventloop.rst:492 +msgid "Create a Unix connection." +msgstr "Créer une connexion Unix" + +#: ../Doc/library/asyncio-eventloop.rst:494 msgid "" -"Create UNIX connection: socket family :py:data:`~socket.AF_UNIX`, socket " -"type :py:data:`~socket.SOCK_STREAM`. The :py:data:`~socket.AF_UNIX` socket " -"family is used to communicate between processes on the same machine " -"efficiently." +"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:434 -#: ../Doc/library/asyncio-eventloop.rst:531 +#: ../Doc/library/asyncio-eventloop.rst:499 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:" +"*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:438 +#: ../Doc/library/asyncio-eventloop.rst:504 msgid "" -"See the :meth:`AbstractEventLoop.create_connection` method for parameters." +"See the documentation of the :meth:`loop.create_connection` method for " +"information about arguments to this method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:440 -#: ../Doc/library/asyncio-eventloop.rst:535 -msgid "Availability: UNIX." -msgstr "Disponible sur : UNIX." +#: ../Doc/library/asyncio-eventloop.rst:508 +#: ../Doc/library/asyncio-eventloop.rst:628 +#: ../Doc/library/asyncio-eventloop.rst:984 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." -#: ../Doc/library/asyncio-eventloop.rst:448 +#: ../Doc/library/asyncio-eventloop.rst:515 msgid "The *path* parameter can now be a :term:`path-like object`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:452 -msgid "Creating listening connections" -msgstr "Attendre des connections" +#: ../Doc/library/asyncio-eventloop.rst:519 +msgid "Creating network servers" +msgstr "Créer des serveurs" -#: ../Doc/library/asyncio-eventloop.rst:456 +#: ../Doc/library/asyncio-eventloop.rst:529 msgid "" -"Create a TCP server (socket type :data:`~socket.SOCK_STREAM`) bound to " -"*host* and *port*." +"Create a TCP server (socket type :data:`~socket.SOCK_STREAM`) listening on " +"*port* of the *host* address." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:459 +#: ../Doc/library/asyncio-eventloop.rst:532 +msgid "Returns a :class:`Server` object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:534 +msgid "Arguments:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:539 msgid "" -"Return a :class:`Server` object, its :attr:`~Server.sockets` attribute " -"contains created sockets. Use the :meth:`Server.close` method to stop the " -"server: close listening sockets." +"The *host* parameter can be set to several types which determine where the " +"server would be listening:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:463 -#: ../Doc/library/asyncio-eventloop.rst:552 -#: ../Doc/library/asyncio-eventloop.rst:615 -msgid "Parameters:" -msgstr "Paramètres :" +#: ../Doc/library/asyncio-eventloop.rst:542 +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:465 +#: ../Doc/library/asyncio-eventloop.rst:545 msgid "" -"The *host* parameter can be a string, in that case the TCP server is bound " -"to *host* and *port*. The *host* parameter can also be a sequence of strings " -"and in that case the TCP server is bound to all hosts of the sequence. 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)." +"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:472 +#: ../Doc/library/asyncio-eventloop.rst:548 +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:552 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 it will be " -"determined from host (defaults to :data:`socket.AF_UNSPEC`)." +"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:476 +#: ../Doc/library/asyncio-eventloop.rst:557 msgid "*flags* is a bitmask for :meth:`getaddrinfo`." msgstr "*flags* est un masque de bits pour :meth:`getaddrinfo`." -#: ../Doc/library/asyncio-eventloop.rst:478 +#: ../Doc/library/asyncio-eventloop.rst:559 msgid "" "*sock* can optionally be specified in order to use a preexisting socket " -"object. If specified, *host* and *port* should be omitted (must be :const:" -"`None`)." +"object. If specified, *host* and *port* must not be specified." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:482 +#: ../Doc/library/asyncio-eventloop.rst:562 msgid "" "*backlog* is the maximum number of queued connections passed to :meth:" "`~socket.socket.listen` (defaults to 100)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:485 -#: ../Doc/library/asyncio-eventloop.rst:557 +#: ../Doc/library/asyncio-eventloop.rst:565 msgid "" -"*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " -"accepted connections." +"*ssl* can be set to an :class:`~ssl.SSLContext` instance to enable TLS over " +"the accepted connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:493 +#: ../Doc/library/asyncio-eventloop.rst:573 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:498 +#: ../Doc/library/asyncio-eventloop.rst:578 msgid "" -"*ssl_handshake_timeout* is (for an SSL server) the time in seconds to wait " -"for the SSL handshake to complete before aborting the connection. ``60.0`` " +"*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:502 +#: ../Doc/library/asyncio-eventloop.rst:582 msgid "" "*start_serving* set to ``True`` (the default) causes the created server to " "start accepting connections immediately. When set to ``False``, the user " @@ -676,269 +798,301 @@ msgid "" "to make the server to start accepting connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:510 -msgid "*ssl_handshake_timeout* and *start_serving* parameters." +#: ../Doc/library/asyncio-eventloop.rst:590 +msgid "Added *ssl_handshake_timeout* and *start_serving* parameters." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:603 +msgid "The *host* parameter can be a sequence of strings." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:518 +#: ../Doc/library/asyncio-eventloop.rst:607 msgid "" -"The function :func:`start_server` creates a (:class:`StreamReader`, :class:" -"`StreamWriter`) pair and calls back a function with this pair." +"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:523 -msgid "The *host* parameter can now be a sequence of strings." +#: ../Doc/library/asyncio-eventloop.rst:616 +msgid "" +"Similar to :meth:`loop.create_server` but works with the :py:data:`~socket." +"AF_UNIX` socket family." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:528 +#: ../Doc/library/asyncio-eventloop.rst:619 msgid "" -"Similar to :meth:`AbstractEventLoop.create_server`, but specific to the " -"socket family :py:data:`~socket.AF_UNIX`." +"*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:539 +#: ../Doc/library/asyncio-eventloop.rst:624 +msgid "" +"See the documentation of the :meth:`loop.create_server` method for " +"information about arguments to this method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:631 msgid "The *ssl_handshake_timeout* and *start_serving* parameters." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:543 +#: ../Doc/library/asyncio-eventloop.rst:635 msgid "The *path* parameter can now be a :class:`~pathlib.Path` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:547 -msgid "Handle an accepted connection." +#: ../Doc/library/asyncio-eventloop.rst:640 +msgid "Wrap an already accepted connection into a transport/protocol pair." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:549 +#: ../Doc/library/asyncio-eventloop.rst:642 msgid "" -"This is used by servers that accept connections outside of asyncio but that " -"use asyncio to handle them." +"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:554 -msgid "*sock* is a preexisting socket object returned from an ``accept`` call." +#: ../Doc/library/asyncio-eventloop.rst:645 +#: ../Doc/library/asyncio-eventloop.rst:712 +msgid "Parameters:" +msgstr "Paramètres :" + +#: ../Doc/library/asyncio-eventloop.rst:650 +msgid "" +"*sock* is a preexisting socket object returned from :meth:`socket.accept " +"`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:564 -msgid "When completed it returns a ``(transport, protocol)`` pair." +#: ../Doc/library/asyncio-eventloop.rst:653 +msgid "" +"*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " +"accepted connections." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:656 +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:574 -msgid "File Transferring" +#: ../Doc/library/asyncio-eventloop.rst:660 +msgid "Returns a ``(transport, protocol)`` pair." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:580 +#: ../Doc/library/asyncio-eventloop.rst:670 +msgid "Transferring files" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:675 msgid "" -"Send a *file* to *transport*, return the total number of bytes which were " -"sent." +"Send a *file* over a *transport*. Return the total number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:583 +#: ../Doc/library/asyncio-eventloop.rst:678 msgid "The method uses high-performance :meth:`os.sendfile` if available." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:585 -#: ../Doc/library/asyncio-eventloop.rst:780 +#: ../Doc/library/asyncio-eventloop.rst:680 msgid "*file* must be a regular file object opened in binary mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:587 -#: ../Doc/library/asyncio-eventloop.rst:782 +#: ../Doc/library/asyncio-eventloop.rst:682 +#: ../Doc/library/asyncio-eventloop.rst:872 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 " -"until EOF is reached. File position is updated on return or also in case of " -"error in which case :meth:`file.tell() ` can be used to " -"figure out the number of bytes which were sent." +"until EOF is reached. File position is always updated, even when this method " +"raises an error, and :meth:`file.tell() ` can be used to " +"obtain the actual number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:594 -#: ../Doc/library/asyncio-eventloop.rst:789 +#: ../Doc/library/asyncio-eventloop.rst:689 msgid "" "*fallback* set to ``True`` makes asyncio to manually read and send the file " -"when the platform does not support the sendfile syscall (e.g. Windows or SSL " -"socket on Unix)." +"when the platform does not support the sendfile system call (e.g. Windows or " +"SSL socket on Unix)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:598 -#: ../Doc/library/asyncio-eventloop.rst:793 +#: ../Doc/library/asyncio-eventloop.rst:693 msgid "" -"Raise :exc:`SendfileNotAvailableError` if the system does not support " +"Raise :exc:`SendfileNotAvailableError` if the system does not support the " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:605 +#: ../Doc/library/asyncio-eventloop.rst:700 msgid "TLS Upgrade" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:609 -msgid "Upgrades an existing connection to TLS." +#: ../Doc/library/asyncio-eventloop.rst:706 +msgid "Upgrade an existing transport-based connection to TLS." msgstr "Convertit une connexion existante en connexion TLS." -#: ../Doc/library/asyncio-eventloop.rst:611 +#: ../Doc/library/asyncio-eventloop.rst:708 msgid "" -"Returns a new transport instance, that the *protocol* must start using " +"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:617 +#: ../Doc/library/asyncio-eventloop.rst:714 msgid "" -"*transport* and *protocol* instances that methods like :meth:" -"`~AbstractEventLoop.create_server` and :meth:`~AbstractEventLoop." -"create_connection` return." +"*transport* and *protocol* instances that methods like :meth:`~loop." +"create_server` and :meth:`~loop.create_connection` return." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:621 +#: ../Doc/library/asyncio-eventloop.rst:718 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:623 +#: ../Doc/library/asyncio-eventloop.rst:720 msgid "" "*server_side* pass ``True`` when a server-side connection is being upgraded " -"(like the one created by :meth:`~AbstractEventLoop.create_server`)." +"(like the one created by :meth:`~loop.create_server`)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:626 +#: ../Doc/library/asyncio-eventloop.rst:723 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:637 -msgid "Watch file descriptors" +#: ../Doc/library/asyncio-eventloop.rst:734 +msgid "Watching file descriptors" msgstr "Surveiller des descripteurs de fichiers" -#: ../Doc/library/asyncio-eventloop.rst:639 +#: ../Doc/library/asyncio-eventloop.rst:738 msgid "" -"On Windows with :class:`SelectorEventLoop`, only socket handles are " -"supported (ex: pipe file descriptors are not supported)." +"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:642 -msgid "" -"On Windows with :class:`ProactorEventLoop`, these methods are not supported." +#: ../Doc/library/asyncio-eventloop.rst:744 +msgid "Stop monitoring the *fd* file descriptor for read availability." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:646 +#: ../Doc/library/asyncio-eventloop.rst:748 msgid "" -"Start watching the file descriptor for read availability and then call the " -"*callback* with specified arguments." -msgstr "" - -#: ../Doc/library/asyncio-eventloop.rst:654 -msgid "Stop watching the file descriptor for read availability." +"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:658 +#: ../Doc/library/asyncio-eventloop.rst:752 +#: ../Doc/library/asyncio-eventloop.rst:971 msgid "" -"Start watching the file descriptor for write availability and then call the " -"*callback* with specified arguments." +"Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:666 -msgid "Stop watching the file descriptor for write availability." +#: ../Doc/library/asyncio-eventloop.rst:757 +msgid "Stop monitoring the *fd* file descriptor for write availability." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:668 +#: ../Doc/library/asyncio-eventloop.rst:759 msgid "" -"The :ref:`watch a file descriptor for read events ` example uses the low-level :meth:`AbstractEventLoop.add_reader` " -"method to register the file descriptor of a socket." +"See also :ref:`Platform Support ` section for some " +"limitations of these methods." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:674 -msgid "Low-level socket operations" -msgstr "Opérations bas niveau sur les *socket*" +#: ../Doc/library/asyncio-eventloop.rst:764 +msgid "Working with socket objects directly" +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:678 +#: ../Doc/library/asyncio-eventloop.rst:766 msgid "" -"Receive data from the socket. Modeled after blocking :meth:`socket.socket." -"recv` method." +"In general, protocol implementations that use transport-based APIs such as :" +"meth:`loop.create_connection` and :meth:`loop.create_server` are faster than " +"implementations that work with sockets directly. However, there are some use " +"cases when performance is not critical, and working with :class:`~socket." +"socket` objects directly is more convenient." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:681 +#: ../Doc/library/asyncio-eventloop.rst:775 msgid "" -"The return value is a bytes object representing the data received. The " -"maximum amount of data to be received at once is specified by *nbytes*." +"Receive up to *nbytes* from *sock*. Asynchronous version of :meth:`socket." +"recv() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:685 -#: ../Doc/library/asyncio-eventloop.rst:701 -#: ../Doc/library/asyncio-eventloop.rst:717 -#: ../Doc/library/asyncio-eventloop.rst:730 -msgid "" -"With :class:`SelectorEventLoop` event loop, the socket *sock* must be non-" -"blocking." +#: ../Doc/library/asyncio-eventloop.rst:778 +msgid "Return the received data as a bytes object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:688 -#: ../Doc/library/asyncio-eventloop.rst:759 +#: ../Doc/library/asyncio-eventloop.rst:780 +#: ../Doc/library/asyncio-eventloop.rst:794 +#: ../Doc/library/asyncio-eventloop.rst:809 +#: ../Doc/library/asyncio-eventloop.rst:822 +#: ../Doc/library/asyncio-eventloop.rst:848 +#: ../Doc/library/asyncio-eventloop.rst:886 +msgid "*sock* must be a non-blocking socket." +msgstr "Le connecteur *sock* ne doit pas être bloquant." + +#: ../Doc/library/asyncio-eventloop.rst:782 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." +"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:695 +#: ../Doc/library/asyncio-eventloop.rst:789 msgid "" -"Receive data from the socket. Modeled after blocking :meth:`socket.socket." -"recv_into` method." +"Receive data from *sock* into the *buf* buffer. Modeled after the blocking :" +"meth:`socket.recv_into() ` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:698 -msgid "" -"The received data is written into *buf* (a writable buffer). The return " -"value is the number of bytes written." +#: ../Doc/library/asyncio-eventloop.rst:792 +msgid "Return the number of bytes written to the buffer." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:708 +#: ../Doc/library/asyncio-eventloop.rst:800 msgid "" -"Send data to the socket. Modeled after blocking :meth:`socket.socket." -"sendall` method." +"Send *data* to the *sock* socket. Asynchronous version of :meth:`socket." +"sendall() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:711 +#: ../Doc/library/asyncio-eventloop.rst:803 msgid "" -"The socket must be connected to a remote socket. This method continues to " -"send data from *data* until either all data has been sent or an error " -"occurs. ``None`` is returned on success. On error, an exception is raised, " -"and there is no way to determine how much data, if any, was successfully " -"processed by the receiving end of the connection." +"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 " +"error, an exception is raised. Additionally, there is no way to determine " +"how much data, if any, was successfully processed by the receiving end of " +"the connection." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:720 +#: ../Doc/library/asyncio-eventloop.rst:811 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:727 +#: ../Doc/library/asyncio-eventloop.rst:818 +msgid "Connect *sock* to a remote socket at *address*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:820 msgid "" -"Connect to a remote socket at *address*. Modeled after blocking :meth:" -"`socket.socket.connect` method." +"Asynchronous version of :meth:`socket.connect() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:733 +#: ../Doc/library/asyncio-eventloop.rst:824 msgid "" "``address`` no longer needs to be resolved. ``sock_connect`` will try to " "check if the *address* is already resolved by calling :func:`socket." -"inet_pton`. If not, :meth:`AbstractEventLoop.getaddrinfo` will be used to " -"resolve the *address*." +"inet_pton`. If not, :meth:`loop.getaddrinfo` will be used to resolve the " +"*address*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:742 +#: ../Doc/library/asyncio-eventloop.rst:833 msgid "" -":meth:`AbstractEventLoop.create_connection` and :func:`asyncio." -"open_connection() `." +":meth:`loop.create_connection` and :func:`asyncio.open_connection() " +"`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:748 +#: ../Doc/library/asyncio-eventloop.rst:839 msgid "" -"Accept a connection. Modeled after blocking :meth:`socket.socket.accept`." +"Accept a connection. Modeled after the blocking :meth:`socket.accept() " +"` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:751 +#: ../Doc/library/asyncio-eventloop.rst:842 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 " @@ -946,47 +1100,64 @@ msgid "" "the address bound to the socket on the other end of the connection." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:757 -msgid "The socket *sock* must be non-blocking." -msgstr "La *socket* *sock* ne soit pas être bloquante." +#: ../Doc/library/asyncio-eventloop.rst:850 +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:766 -msgid ":meth:`AbstractEventLoop.create_server` and :func:`start_server`." +#: ../Doc/library/asyncio-eventloop.rst:857 +msgid ":meth:`loop.create_server` and :func:`start_server`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:772 +#: ../Doc/library/asyncio-eventloop.rst:862 msgid "" -"Send a file using high-performance :mod:`os.sendfile` if possible and return " -"the total number of bytes which were sent." +"Send a file using high-performance :mod:`os.sendfile` if possible. Return " +"the total number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:775 -msgid "Asynchronous version of :meth:`socket.socket.sendfile`." +#: ../Doc/library/asyncio-eventloop.rst:865 +msgid "" +"Asynchronous version of :meth:`socket.sendfile() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:777 +#: ../Doc/library/asyncio-eventloop.rst:867 msgid "" -"*sock* must be non-blocking :class:`~socket.socket` of :const:`socket." -"SOCK_STREAM` type." +"*sock* must be a non-blocking :const:`socket.SOCK_STREAM` :class:`~socket." +"socket`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:800 -msgid "Resolve host name" -msgstr "Résout le nom d'hôte" +#: ../Doc/library/asyncio-eventloop.rst:870 +msgid "*file* must be a regular file object open in binary mode." +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:804 +#: ../Doc/library/asyncio-eventloop.rst:879 msgid "" -"This method is a :ref:`coroutine `, similar to :meth:`socket." -"getaddrinfo` function but non-blocking." +"*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:809 +#: ../Doc/library/asyncio-eventloop.rst:883 msgid "" -"This method is a :ref:`coroutine `, similar to :meth:`socket." -"getnameinfo` function but non-blocking." +"Raise :exc:`SendfileNotAvailableError` if the system does not support " +"*sendfile* syscall and *fallback* is ``False``." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:892 +msgid "DNS" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:897 +msgid "Asynchronous version of :meth:`socket.getaddrinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:812 +#: ../Doc/library/asyncio-eventloop.rst:901 +msgid "Asynchronous version of :meth:`socket.getnameinfo`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:903 msgid "" "Both *getaddrinfo* and *getnameinfo* methods were always documented to " "return a coroutine, but prior to Python 3.7 they were, in fact, returning :" @@ -994,470 +1165,744 @@ msgid "" "coroutines." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:820 -msgid "Connect pipes" +#: ../Doc/library/asyncio-eventloop.rst:911 +msgid "Working with pipes" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:822 -msgid "" -"On Windows with :class:`SelectorEventLoop`, these methods are not supported. " -"Use :class:`ProactorEventLoop` to support pipes on Windows." +#: ../Doc/library/asyncio-eventloop.rst:915 +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:827 -msgid "Register read pipe in eventloop." +#: ../Doc/library/asyncio-eventloop.rst:920 +msgid "*pipe* is a :term:`file-like object `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:829 +#: ../Doc/library/asyncio-eventloop.rst:922 msgid "" -"*protocol_factory* should instantiate object with :class:`Protocol` " -"interface. *pipe* is a :term:`file-like object `. Return pair " -"``(transport, protocol)``, where *transport* supports the :class:" -"`ReadTransport` interface." +"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:834 -#: ../Doc/library/asyncio-eventloop.rst:846 +#: ../Doc/library/asyncio-eventloop.rst:926 +#: ../Doc/library/asyncio-eventloop.rst:942 msgid "" "With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" "blocking mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:839 -msgid "Register write pipe in eventloop." +#: ../Doc/library/asyncio-eventloop.rst:931 +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:936 +msgid "*pipe* is :term:`file-like object `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:841 +#: ../Doc/library/asyncio-eventloop.rst:938 msgid "" -"*protocol_factory* should instantiate object with :class:`BaseProtocol` " -"interface. *pipe* is :term:`file-like object `. Return pair " -"``(transport, protocol)``, where *transport* supports :class:" -"`WriteTransport` interface." +"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:851 +#: ../Doc/library/asyncio-eventloop.rst:947 msgid "" -"The :meth:`AbstractEventLoop.subprocess_exec` and :meth:`AbstractEventLoop." -"subprocess_shell` methods." +":class:`SelectorEventLoop` does not support the above methods on Windows. " +"Use :class:`ProactorEventLoop` instead for Windows." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:856 -msgid "UNIX signals" -msgstr "Signaux UNIX" +#: ../Doc/library/asyncio-eventloop.rst:952 +msgid "" +"The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:858 -msgid "Availability: UNIX only." -msgstr "Disponibilité : UNIX seulement." +#: ../Doc/library/asyncio-eventloop.rst:957 +msgid "Unix signals" +msgstr "Signaux Unix" -#: ../Doc/library/asyncio-eventloop.rst:862 -msgid "Add a handler for a signal." -msgstr "Ajouter un gestionnaire (*handler*) pour un signal." +#: ../Doc/library/asyncio-eventloop.rst:961 +msgid "Set *callback* as the handler for the *signum* signal." +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:864 +#: ../Doc/library/asyncio-eventloop.rst:963 +msgid "" +"The callback will be invoked by *loop*, along with other queued callbacks " +"and runnable coroutines of that event loop. Unlike signal handlers " +"registered using :func:`signal.signal`, a callback registered with this " +"function is allowed to interact with the event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:968 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:872 -msgid "Remove a handler for a signal." -msgstr "Supprimer un *handler* pour un signal." +#: ../Doc/library/asyncio-eventloop.rst:974 +msgid "" +"Like :func:`signal.signal`, this function must be invoked in the main thread." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:979 +msgid "Remove the handler for the *sig* signal." +msgstr "Supprime le gestionnaire du signal *sig*." -#: ../Doc/library/asyncio-eventloop.rst:874 -msgid "Return ``True`` if a signal handler was removed, ``False`` if not." +#: ../Doc/library/asyncio-eventloop.rst:981 +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:878 +#: ../Doc/library/asyncio-eventloop.rst:988 msgid "The :mod:`signal` module." msgstr "Le module :mod:`signal`." -#: ../Doc/library/asyncio-eventloop.rst:882 -msgid "Executor" -msgstr "Exécuteur" +#: ../Doc/library/asyncio-eventloop.rst:992 +msgid "Executing code in thread or process pools" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:996 +msgid "Arrange for *func* to be called in the specified executor." +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:884 +#: ../Doc/library/asyncio-eventloop.rst:998 msgid "" -"Call a function in an :class:`~concurrent.futures.Executor` (pool of threads " -"or pool of processes). By default, an event loop uses a thread pool executor " -"(:class:`~concurrent.futures.ThreadPoolExecutor`)." +"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:890 -msgid "Arrange for a *func* to be called in the specified executor." +#: ../Doc/library/asyncio-eventloop.rst:1042 +msgid "This method returns a :class:`asyncio.Future` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:892 +#: ../Doc/library/asyncio-eventloop.rst:1044 msgid "" -"The *executor* argument should be an :class:`~concurrent.futures.Executor` " -"instance. The default executor is used if *executor* is ``None``." +"Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:895 +#: ../Doc/library/asyncio-eventloop.rst:1047 msgid "" -":ref:`Use functools.partial to pass keywords to the *func* `." +":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 " +"executor (:class:`~concurrent.futures.ThreadPoolExecutor`) to set the " +"default." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:898 -msgid "This method returns a :class:`asyncio.Future` object." +#: ../Doc/library/asyncio-eventloop.rst:1056 +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:900 +#: ../Doc/library/asyncio-eventloop.rst:1060 msgid "" -":meth:`BaseEventLoop.run_in_executor` no longer configures the " -"``max_workers`` of the thread pool executor it creates, instead leaving it " -"up to the thread pool executor (:class:`~concurrent.futures." -"ThreadPoolExecutor`) to set the default." +"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:909 -msgid "Set the default executor used by :meth:`run_in_executor`." +#: ../Doc/library/asyncio-eventloop.rst:1065 +msgid "" +"*executor* must be an instance of :class:`concurrent.futures." +"ThreadPoolExecutor`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:913 +#: ../Doc/library/asyncio-eventloop.rst:1070 msgid "Error Handling API" msgstr "API de gestion d'erreur" -#: ../Doc/library/asyncio-eventloop.rst:915 +#: ../Doc/library/asyncio-eventloop.rst:1072 msgid "Allows customizing how exceptions are handled in the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:919 +#: ../Doc/library/asyncio-eventloop.rst:1076 msgid "Set *handler* as the new event loop exception handler." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:921 -msgid "If *handler* is ``None``, the default exception handler will be set." -msgstr "" - -#: ../Doc/library/asyncio-eventloop.rst:924 +#: ../Doc/library/asyncio-eventloop.rst:1078 msgid "" -"If *handler* is a callable object, it should have a matching signature to " -"``(loop, context)``, where ``loop`` will be a reference to the active event " -"loop, ``context`` will be a ``dict`` object (see :meth:" -"`call_exception_handler` documentation for details about context)." +"If *handler* is ``None``, the default exception handler will be set. " +"Otherwise, *handler* must be a callable with the signature matching ``(loop, " +"context)``, where ``loop`` is a reference to the active event loop, and " +"``context`` is a ``dict`` object containing the details of the exception " +"(see :meth:`call_exception_handler` documentation for details about context)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:932 -msgid "Return the exception handler, or ``None`` if the default one is in use." +#: ../Doc/library/asyncio-eventloop.rst:1088 +msgid "" +"Return the current exception handler, or ``None`` if no custom exception " +"handler was set." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:939 +#: ../Doc/library/asyncio-eventloop.rst:1095 msgid "Default exception handler." msgstr "Gestionnaire d'exception par défaut." -#: ../Doc/library/asyncio-eventloop.rst:941 +#: ../Doc/library/asyncio-eventloop.rst:1097 msgid "" -"This is called when an exception occurs and no exception handler is set, and " -"can be called by a custom exception handler that wants to defer to the " -"default behavior." +"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:945 +#: ../Doc/library/asyncio-eventloop.rst:1101 msgid "" "*context* parameter has the same meaning as in :meth:" "`call_exception_handler`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:950 +#: ../Doc/library/asyncio-eventloop.rst:1106 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:952 +#: ../Doc/library/asyncio-eventloop.rst:1108 msgid "" "*context* is a ``dict`` object containing the following keys (new keys may " -"be introduced later):" +"be introduced in future Python versions):" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:955 +#: ../Doc/library/asyncio-eventloop.rst:1111 msgid "'message': Error message;" msgstr "``message`` : Message d'erreur ;" -#: ../Doc/library/asyncio-eventloop.rst:956 +#: ../Doc/library/asyncio-eventloop.rst:1112 msgid "'exception' (optional): Exception object;" msgstr "``exception`` (optionnel): Un objet exception ;" -#: ../Doc/library/asyncio-eventloop.rst:957 +#: ../Doc/library/asyncio-eventloop.rst:1113 msgid "'future' (optional): :class:`asyncio.Future` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:958 +#: ../Doc/library/asyncio-eventloop.rst:1114 msgid "'handle' (optional): :class:`asyncio.Handle` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:959 +#: ../Doc/library/asyncio-eventloop.rst:1115 msgid "'protocol' (optional): :ref:`Protocol ` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:960 +#: ../Doc/library/asyncio-eventloop.rst:1116 msgid "'transport' (optional): :ref:`Transport ` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:961 +#: ../Doc/library/asyncio-eventloop.rst:1117 msgid "'socket' (optional): :class:`socket.socket` instance." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:965 +#: ../Doc/library/asyncio-eventloop.rst:1121 msgid "" -"Note: this method should not be overloaded in subclassed event loops. For " -"any custom exception handling, use :meth:`set_exception_handler()` method." +"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:970 -msgid "Debug mode" -msgstr "Mode débogage" +#: ../Doc/library/asyncio-eventloop.rst:1126 +msgid "Enabling debug mode" +msgstr "Active le mode débogage" -#: ../Doc/library/asyncio-eventloop.rst:974 +#: ../Doc/library/asyncio-eventloop.rst:1130 msgid "Get the debug mode (:class:`bool`) of the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:976 +#: ../Doc/library/asyncio-eventloop.rst:1132 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:984 +#: ../Doc/library/asyncio-eventloop.rst:1138 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:990 +#: ../Doc/library/asyncio-eventloop.rst:1142 +msgid "" +"The new ``-X dev`` command line option can now also be used to enable the " +"debug mode." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1147 msgid "The :ref:`debug mode of asyncio `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:993 -msgid "Server" -msgstr "Serveur" +#: ../Doc/library/asyncio-eventloop.rst:1151 +msgid "Running Subprocesses" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1153 +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:1160 +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:1168 +msgid "" +"Create a subprocess from one or more string arguments specified by *args*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1171 +msgid "*args* must be a list of strings represented by:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1173 +msgid ":class:`str`;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1174 +msgid "" +"or :class:`bytes`, encoded to the :ref:`filesystem encoding `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1177 +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:1181 +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 " +"argument; however, where :class:`~subprocess.Popen` takes a single argument " +"which is list of strings, *subprocess_exec* takes multiple string arguments." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1187 +msgid "" +"The *protocol_factory* must be a callable returning a subclass of the :class:" +"`asyncio.SubprocessProtocol` class." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1190 +msgid "Other parameters:" +msgstr "Autres paramètres :" + +#: ../Doc/library/asyncio-eventloop.rst:1192 +msgid "" +"*stdin*: either a file-like object representing a pipe to be connected to " +"the subprocess's standard input stream using :meth:`~loop." +"connect_write_pipe`, or the :const:`subprocess.PIPE` constant (default). By " +"default a new pipe will be created and connected." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1198 +msgid "" +"*stdout*: either a file-like object representing the pipe to be connected to " +"the subprocess's standard output stream using :meth:`~loop." +"connect_read_pipe`, or the :const:`subprocess.PIPE` constant (default). By " +"default a new pipe will be created and connected." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1204 +msgid "" +"*stderr*: either a file-like object representing the pipe to be connected to " +"the subprocess's standard error stream using :meth:`~loop." +"connect_read_pipe`, or one of :const:`subprocess.PIPE` (default) or :const:" +"`subprocess.STDOUT` constants." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1210 +msgid "" +"By default a new pipe will be created and connected. When :const:`subprocess." +"STDOUT` is specified, the subprocess' standard error stream will be " +"connected to the same pipe as the standard output stream." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1215 +msgid "" +"All other keyword arguments are passed to :class:`subprocess.Popen` without " +"interpretation, except for *bufsize*, *universal_newlines* and *shell*, " +"which should not be specified at all." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1219 +msgid "" +"See the constructor of the :class:`subprocess.Popen` class for documentation " +"on other arguments." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1222 +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:1230 +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:997 -msgid "Server listening on sockets." -msgstr "Serveur écoutant sur des *sockets*." +#: ../Doc/library/asyncio-eventloop.rst:1235 +msgid "" +"This is similar to the standard library :class:`subprocess.Popen` class " +"called with ``shell=True``." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1238 +msgid "" +"The *protocol_factory* must be a callable returning a subclass of the :class:" +"`SubprocessProtocol` class." +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:999 +#: ../Doc/library/asyncio-eventloop.rst:1241 msgid "" -"Object created by :meth:`AbstractEventLoop.create_server`, :meth:" -"`AbstractEventLoop.create_unix_server`, :func:`start_server`, and :func:" -"`start_unix_server` functions. Don't instantiate the class directly." +"See :meth:`~loop.subprocess_exec` for more details about the remaining " +"arguments." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1004 +#: ../Doc/library/asyncio-eventloop.rst:1244 +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:1249 +msgid "" +"It is the application's responsibility to ensure that all whitespace and " +"special characters are quoted appropriately to avoid `shell injection " +"`_ " +"vulnerabilities. The :func:`shlex.quote` function can be used to properly " +"escape whitespace and special characters in strings that are going to be " +"used to construct shell commands." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1258 +msgid "Callback Handles" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1262 +msgid "" +"A callback wrapper object returned by :meth:`loop.call_soon`, :meth:`loop." +"call_soon_threadsafe`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1267 +msgid "" +"Cancel the callback. If the callback has already been canceled or executed, " +"this method has no effect." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1272 +msgid "Return ``True`` if the callback was cancelled." +msgstr "Renvoie ``True`` si la fonction de rappel à été annulé." + +#: ../Doc/library/asyncio-eventloop.rst:1278 +msgid "" +"A callback wrapper object returned by :meth:`loop.call_later`, and :meth:" +"`loop.call_at`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1281 +msgid "This class is a subclass of :class:`Handle`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1285 +msgid "Return a scheduled callback time as :class:`float` seconds." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1287 +msgid "" +"The time is an absolute timestamp, using the same time reference as :meth:" +"`loop.time`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1294 +msgid "Server Objects" +msgstr "Objets Serveur" + +#: ../Doc/library/asyncio-eventloop.rst:1296 +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:1300 +msgid "Do not instantiate the class directly." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1304 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:1017 +#: ../Doc/library/asyncio-eventloop.rst:1317 msgid "Server object is an asynchronous context manager since Python 3.7." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1022 +#: ../Doc/library/asyncio-eventloop.rst:1322 msgid "" "Stop serving: close listening sockets and set the :attr:`sockets` attribute " "to ``None``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1025 +#: ../Doc/library/asyncio-eventloop.rst:1325 msgid "" "The sockets that represent existing incoming client connections are left " "open." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1028 +#: ../Doc/library/asyncio-eventloop.rst:1328 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:1033 -msgid "Gives the event loop associated with the server object." +#: ../Doc/library/asyncio-eventloop.rst:1333 +msgid "Return the event loop associated with the server object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1039 +#: ../Doc/library/asyncio-eventloop.rst:1339 msgid "Start accepting connections." msgstr "Commence à accepter les connexions." -#: ../Doc/library/asyncio-eventloop.rst:1041 +#: ../Doc/library/asyncio-eventloop.rst:1341 msgid "" "This method is idempotent, so it can be called when the server is already " "being serving." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1044 +#: ../Doc/library/asyncio-eventloop.rst:1344 msgid "" -"The new *start_serving* keyword-only parameter to :meth:`AbstractEventLoop." -"create_server` and :meth:`asyncio.start_server` allows to create a Server " -"object that is not accepting connections right away. In which case this " -"method, or :meth:`Server.serve_forever` can be used to make the Server " -"object to start accepting connections." +"The *start_serving* keyword-only parameter to :meth:`loop.create_server` " +"and :meth:`asyncio.start_server` allows creating a Server object that is not " +"accepting connections initially. In this case ``Server.start_serving()``, " +"or :meth:`Server.serve_forever` can be used to make the Server start " +"accepting connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1055 +#: ../Doc/library/asyncio-eventloop.rst:1355 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:1059 +#: ../Doc/library/asyncio-eventloop.rst:1359 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:1063 -msgid "Example::" -msgstr "Exemple ::" - -#: ../Doc/library/asyncio-eventloop.rst:1081 +#: ../Doc/library/asyncio-eventloop.rst:1381 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:1087 +#: ../Doc/library/asyncio-eventloop.rst:1387 msgid "Wait until the :meth:`close` method completes." msgstr "Attends que la méthode :meth:`close` se termine." -#: ../Doc/library/asyncio-eventloop.rst:1091 +#: ../Doc/library/asyncio-eventloop.rst:1391 msgid "" -"List of :class:`socket.socket` objects the server is listening to, or " +"List of :class:`socket.socket` objects the server is listening on, or " "``None`` if the server is closed." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1094 +#: ../Doc/library/asyncio-eventloop.rst:1394 msgid "" -"Prior to Python 3.7 ``Server.sockets`` used to return the internal list of " -"server's sockets directly. In 3.7 a copy of that list is returned." +"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:1101 -msgid "Handle" -msgstr "Handle" +#: ../Doc/library/asyncio-eventloop.rst:1403 +msgid "Event Loop Implementations" +msgstr "Implémentations de boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:1105 +#: ../Doc/library/asyncio-eventloop.rst:1405 msgid "" -"A callback wrapper object returned by :func:`AbstractEventLoop.call_soon`, :" -"func:`AbstractEventLoop.call_soon_threadsafe`." +"asyncio ships with two different event loop implementations: :class:" +"`SelectorEventLoop` and :class:`ProactorEventLoop`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1110 +#: ../Doc/library/asyncio-eventloop.rst:1408 msgid "" -"Cancel the call. If the callback is already canceled or executed, this " -"method has no effect." +"By default asyncio is configured to use :class:`SelectorEventLoop` on all " +"platforms." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1115 -msgid "Return ``True`` if the call was cancelled." -msgstr "Donne ``True`` si l'appel à été annulé." +#: ../Doc/library/asyncio-eventloop.rst:1414 +msgid "An event loop based on the :mod:`selectors` module." +msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1121 +#: ../Doc/library/asyncio-eventloop.rst:1416 msgid "" -"A callback wrapper object returned by :func:`AbstractEventLoop.call_later`, " -"and :func:`AbstractEventLoop.call_at`." +"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:1124 -msgid "The class is inherited from :class:`Handle`." +#: ../Doc/library/asyncio-eventloop.rst:1428 +msgid ":ref:`Availability `: Unix, Windows." +msgstr ":ref:`Disponibilité ` : Unix, Windows." + +#: ../Doc/library/asyncio-eventloop.rst:1433 +msgid "An event loop for Windows that uses \"I/O Completion Ports\" (IOCP)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1128 -msgid "Return a scheduled callback time as :class:`float` seconds." +#: ../Doc/library/asyncio-eventloop.rst:1436 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/asyncio-eventloop.rst:1437 +msgid "An example how to use :class:`ProactorEventLoop` on Windows::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1130 +#: ../Doc/library/asyncio-eventloop.rst:1448 msgid "" -"The time is an absolute timestamp, using the same time reference as :meth:" -"`AbstractEventLoop.time`." +"`MSDN documentation on I/O Completion Ports `_." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1137 -msgid "SendfileNotAvailableError" +#: ../Doc/library/asyncio-eventloop.rst:1454 +msgid "Abstract base class for asyncio-compliant event loops." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1142 -msgid "Sendfile syscall is not available, subclass of :exc:`RuntimeError`." +#: ../Doc/library/asyncio-eventloop.rst:1456 +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:1144 +#: ../Doc/library/asyncio-eventloop.rst:1462 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-eventloop.rst:1464 msgid "" -"Raised if the OS does not support sendfile syscall for given socket or file " -"type." +"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." +"call_soon`. Modern asyncio applications rarely need to be written this way; " +"consider using the high-level functions like :func:`asyncio.run`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1149 -msgid "Event loop examples" -msgstr "Exemples de boucles d'évènements" - -#: ../Doc/library/asyncio-eventloop.rst:1154 +#: ../Doc/library/asyncio-eventloop.rst:1474 msgid "Hello World with call_soon()" msgstr "\"Hello World\" avec ``call_soon()``" -#: ../Doc/library/asyncio-eventloop.rst:1156 +#: ../Doc/library/asyncio-eventloop.rst:1476 msgid "" -"Example using the :meth:`AbstractEventLoop.call_soon` method to schedule a " -"callback. The callback displays ``\"Hello World\"`` and then stops the event " -"loop::" +"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:1177 +#: ../Doc/library/asyncio-eventloop.rst:1500 msgid "" -"The :ref:`Hello World coroutine ` example " -"uses a :ref:`coroutine `." +"A similar :ref:`Hello World ` example created with a coroutine " +"and the :func:`run` function." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1184 +#: ../Doc/library/asyncio-eventloop.rst:1507 msgid "Display the current date with call_later()" msgstr "Afficher la date actuelle avec ``call_later()``" -#: ../Doc/library/asyncio-eventloop.rst:1186 +#: ../Doc/library/asyncio-eventloop.rst:1509 msgid "" -"Example of callback displaying the current date every second. The callback " -"uses the :meth:`AbstractEventLoop.call_later` method to reschedule itself " -"during 5 seconds, and then stops the event loop::" +"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:1212 +#: ../Doc/library/asyncio-eventloop.rst:1537 msgid "" -"The :ref:`coroutine displaying the current date ` " -"example uses a :ref:`coroutine `." +"A similar :ref:`current date ` example created with a " +"coroutine and the :func:`run` function." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1220 +#: ../Doc/library/asyncio-eventloop.rst:1544 msgid "Watch a file descriptor for read events" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1222 +#: ../Doc/library/asyncio-eventloop.rst:1546 msgid "" -"Wait until a file descriptor received some data using the :meth:" -"`AbstractEventLoop.add_reader` method and then close the event loop::" +"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:1256 +#: ../Doc/library/asyncio-eventloop.rst:1584 msgid "" -"The :ref:`register an open socket to wait for data using a protocol ` example uses a low-level protocol created by the :meth:" -"`AbstractEventLoop.create_connection` method." +"A similar :ref:`example ` using " +"transports, protocols, and the :meth:`loop.create_connection` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1260 +#: ../Doc/library/asyncio-eventloop.rst:1588 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." +"Another similar :ref:`example ` " +"using the high-level :func:`asyncio.open_connection` function and streams." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1266 +#: ../Doc/library/asyncio-eventloop.rst:1596 msgid "Set signal handlers for SIGINT and SIGTERM" msgstr "Définit les gestionnaires de signaux pour *SIGINT* et *SIGTERM*" -#: ../Doc/library/asyncio-eventloop.rst:1268 +#: ../Doc/library/asyncio-eventloop.rst:1598 +msgid "(This ``signals`` example only works on Unix.)" +msgstr "(Cet exemple ne fonctionne que sur Unix.)" + +#: ../Doc/library/asyncio-eventloop.rst:1600 msgid "" "Register handlers for signals :py:data:`SIGINT` and :py:data:`SIGTERM` using " -"the :meth:`AbstractEventLoop.add_signal_handler` method::" +"the :meth:`loop.add_signal_handler` method::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1292 -msgid "This example only works on UNIX." -msgstr "Cet exemple fonctionne seulement sur UNIX." +#~ msgid "Returns running status of event loop." +#~ msgstr "Donne le status d'exécution de la boucle d'évènements." + +#~ msgid "Calls" +#~ msgstr "Appels" + +#~ msgid "Like :meth:`call_soon`, but thread safe." +#~ msgstr "Comme :meth:`call_soon` mais *thread safe*." + +#~ msgid "Delayed calls" +#~ msgstr "Appels différés" + +#~ msgid "Tasks" +#~ msgstr "Tâches" + +#~ msgid "Options that change how the connection is created:" +#~ msgstr "Options modifiant la création de la connexion :" + +#~ msgid "Options changing how the connection is created:" +#~ msgstr "Options modifiant la création de la connexion :" + +#~ msgid "Creating listening connections" +#~ msgstr "Attendre des connections" + +#~ msgid "Low-level socket operations" +#~ msgstr "Opérations bas niveau sur les *socket*" + +#~ msgid "Resolve host name" +#~ msgstr "Résout le nom d'hôte" + +#~ msgid "Add a handler for a signal." +#~ msgstr "Ajouter un gestionnaire (*handler*) pour un signal." + +#~ msgid "Executor" +#~ msgstr "Exécuteur" + +#~ msgid "Server listening on sockets." +#~ msgstr "Serveur écoutant sur des *sockets*." + +#~ msgid "Handle" +#~ msgstr "Handle" #~ msgid "This method is a :ref:`coroutine `." #~ msgstr "Cette méthode est une :ref:`coroutine `." diff --git a/library/asyncio-eventloops.po b/library/asyncio-eventloops.po deleted file mode 100644 index 0ad7aabe7..000000000 --- a/library/asyncio-eventloops.po +++ /dev/null @@ -1,328 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3.6\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-27 23:16+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" - -#: ../Doc/library/asyncio-eventloops.rst:4 -msgid "Event loops" -msgstr "Boucles d'évènements" - -#: ../Doc/library/asyncio-eventloops.rst:6 -msgid "**Source code:** :source:`Lib/asyncio/events.py`" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:9 -msgid "Event loop functions" -msgstr "Fonctions des boucles d'évènements" - -#: ../Doc/library/asyncio-eventloops.rst:11 -msgid "" -"The following functions are convenient shortcuts to accessing the methods of " -"the global policy. Note that this provides access to the default policy, " -"unless an alternative policy was set by calling :func:" -"`set_event_loop_policy` earlier in the execution of the process." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:18 -msgid "Equivalent to calling ``get_event_loop_policy().get_event_loop()``." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:22 -msgid "Equivalent to calling ``get_event_loop_policy().set_event_loop(loop)``." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:26 -msgid "Equivalent to calling ``get_event_loop_policy().new_event_loop()``." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:30 -msgid "" -"Return the running event loop in the current OS thread. If there is no " -"running event loop a :exc:`RuntimeError` is raised." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:39 -msgid "Available event loops" -msgstr "Boucles d'évènements disponibles" - -#: ../Doc/library/asyncio-eventloops.rst:41 -msgid "" -"asyncio currently provides two implementations of event loops: :class:" -"`SelectorEventLoop` and :class:`ProactorEventLoop`." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:46 -msgid "" -"Event loop based on the :mod:`selectors` module. Subclass of :class:" -"`AbstractEventLoop`." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:49 -msgid "Use the most efficient selector available on the platform." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:51 -msgid "" -"On Windows, only sockets are supported (ex: pipes are not supported): see " -"the `MSDN documentation of select `_." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:57 -msgid "" -"Proactor event loop for Windows using \"I/O Completion Ports\" aka IOCP. " -"Subclass of :class:`AbstractEventLoop`." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:60 -msgid "Availability: Windows." -msgstr "Disponibilité : Windows." - -#: ../Doc/library/asyncio-eventloops.rst:64 -msgid "" -"`MSDN documentation on I/O Completion Ports `_." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:67 -msgid "Example to use a :class:`ProactorEventLoop` on Windows::" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:78 -msgid "Platform support" -msgstr "Support des plateformes" - -#: ../Doc/library/asyncio-eventloops.rst:80 -msgid "" -"The :mod:`asyncio` module has been designed to be portable, but each " -"platform still has subtle differences and may not support all :mod:`asyncio` " -"features." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:84 -msgid "Windows" -msgstr "Windows" - -#: ../Doc/library/asyncio-eventloops.rst:86 -msgid "Common limits of Windows event loops:" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:88 -msgid "" -":meth:`~AbstractEventLoop.create_unix_connection` and :meth:" -"`~AbstractEventLoop.create_unix_server` are not supported: the socket " -"family :data:`socket.AF_UNIX` is specific to UNIX" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:91 -msgid "" -":meth:`~AbstractEventLoop.add_signal_handler` and :meth:`~AbstractEventLoop." -"remove_signal_handler` are not supported" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:93 -msgid "" -":meth:`EventLoopPolicy.set_child_watcher` is not supported. :class:" -"`ProactorEventLoop` supports subprocesses. It has only one implementation to " -"watch child processes, there is no need to configure it." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:97 -msgid ":class:`SelectorEventLoop` specific limits:" -msgstr "Limites spécifiques à :class:`SelectorEventLoop` :" - -#: ../Doc/library/asyncio-eventloops.rst:99 -msgid "" -":class:`~selectors.SelectSelector` is used which only supports sockets and " -"is limited to 512 sockets." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:101 -msgid "" -":meth:`~AbstractEventLoop.add_reader` and :meth:`~AbstractEventLoop." -"add_writer` only accept file descriptors of sockets" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:103 -msgid "" -"Pipes are not supported (ex: :meth:`~AbstractEventLoop.connect_read_pipe`, :" -"meth:`~AbstractEventLoop.connect_write_pipe`)" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:106 -msgid "" -":ref:`Subprocesses ` are not supported (ex: :meth:" -"`~AbstractEventLoop.subprocess_exec`, :meth:`~AbstractEventLoop." -"subprocess_shell`)" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:110 -msgid ":class:`ProactorEventLoop` specific limits:" -msgstr "Limites spécifiques à :class:`ProactorEventLoop` :" - -#: ../Doc/library/asyncio-eventloops.rst:112 -msgid "" -":meth:`~AbstractEventLoop.create_datagram_endpoint` (UDP) is not supported" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:113 -msgid "" -":meth:`~AbstractEventLoop.add_reader` and :meth:`~AbstractEventLoop." -"add_writer` are not supported" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:116 -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 " -"hardware (availability of `HPET `_) and on the Windows configuration. See :ref:" -"`asyncio delayed calls `." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:124 -msgid ":class:`ProactorEventLoop` now supports SSL." -msgstr "La classe :class:`ProactorEventLoop` gère maintenant le SSL." - -#: ../Doc/library/asyncio-eventloops.rst:128 -msgid "Mac OS X" -msgstr "Mac OS X" - -#: ../Doc/library/asyncio-eventloops.rst:130 -msgid "" -"Character devices like PTY are only well supported since Mavericks (Mac OS " -"10.9). They are not supported at all on Mac OS 10.5 and older." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:133 -msgid "" -"On Mac OS 10.6, 10.7 and 10.8, the default event loop is :class:" -"`SelectorEventLoop` which uses :class:`selectors.KqueueSelector`. :class:" -"`selectors.KqueueSelector` does not support character devices on these " -"versions. The :class:`SelectorEventLoop` can be used with :class:" -"`~selectors.SelectSelector` or :class:`~selectors.PollSelector` to support " -"character devices on these versions of Mac OS X. Example::" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:149 -msgid "Event loop policies and the default policy" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:151 -msgid "" -"Event loop management is abstracted with a *policy* pattern, to provide " -"maximal flexibility for custom platforms and frameworks. Throughout the " -"execution of a process, a single global policy object manages the event " -"loops available to the process based on the calling context. A policy is an " -"object implementing the :class:`AbstractEventLoopPolicy` interface." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:157 -msgid "" -"For most users of :mod:`asyncio`, policies never have to be dealt with " -"explicitly, since the default global policy is sufficient (see below)." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:160 -msgid "" -"The module-level functions :func:`get_event_loop` and :func:`set_event_loop` " -"provide convenient access to event loops managed by the default policy." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:166 -msgid "Event loop policy interface" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:168 -msgid "An event loop policy must implement the following interface:" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:172 -msgid "Event loop policy." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:176 -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-eventloops.rst:178 -msgid "" -"Returns an event loop object implementing the :class:`AbstractEventLoop` " -"interface. In case called from coroutine, it returns the currently running " -"event loop." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:182 -msgid "" -"Raises an exception in case no event loop has been set for the current " -"context and the current policy does not specify to create one. It must never " -"return ``None``." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:190 -msgid "Set the event loop for the current context to *loop*." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:194 -msgid "" -"Create and return a new event loop object according to this policy's rules." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:197 -msgid "" -"If there's need to set this loop as the event loop for the current context, :" -"meth:`set_event_loop` must be called explicitly." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:201 -msgid "" -"The default policy defines context as the current thread, and manages an " -"event loop per thread that interacts with :mod:`asyncio`. An exception to " -"this rule happens when :meth:`~AbstractEventLoopPolicy.get_event_loop` is " -"called from a running future/coroutine, in which case it will return the " -"current loop running that future/coroutine." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:207 -msgid "" -"If the current thread doesn't already have an event loop associated with it, " -"the default policy's :meth:`~AbstractEventLoopPolicy.get_event_loop` method " -"creates one when called from the main thread, but raises :exc:`RuntimeError` " -"otherwise." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:214 -msgid "Access to the global loop policy" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:218 -msgid "Get the current event loop policy." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:222 -msgid "" -"Set the current event loop policy. If *policy* is ``None``, the default " -"policy is restored." -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:227 -msgid "Customizing the event loop policy" -msgstr "" - -#: ../Doc/library/asyncio-eventloops.rst:229 -msgid "" -"To implement a new event loop policy, it is recommended you subclass the " -"concrete default event loop policy :class:`DefaultEventLoopPolicy` and " -"override the methods for which you want to change behavior, for example::" -msgstr "" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po new file mode 100644 index 000000000..13562feee --- /dev/null +++ b/library/asyncio-exceptions.po @@ -0,0 +1,99 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\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" +"Last-Translator: FULL NAME \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/asyncio-exceptions.rst:8 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/asyncio-exceptions.rst:13 +msgid "The operation has exceeded the given deadline." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:16 +msgid "" +"This exception is different from the builtin :exc:`TimeoutError` exception." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:22 +msgid "The operation has been cancelled." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:24 +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 +msgid "" +"This exception is a subclass of :exc:`Exception`, so it can be accidentally " +"suppressed by an overly broad ``try..except`` block::" +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:40 +msgid "Instead, the following pattern should be used::" +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:52 +msgid "Invalid internal state of :class:`Task` or :class:`Future`." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:54 +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:60 +msgid "" +"The \"sendfile\" syscall is not available for the given socket or file type." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:63 +msgid "A subclass of :exc:`RuntimeError`." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:68 +msgid "The requested read operation did not complete fully." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:70 +msgid "Raised by the :ref:`asyncio stream APIs`." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:72 +msgid "This exception is a subclass of :exc:`EOFError`." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:76 +msgid "The total number (:class:`int`) of expected bytes." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:80 +msgid "A string of :class:`bytes` read before the end of stream was reached." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:85 +msgid "Reached the buffer size limit while looking for a separator." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:87 +msgid "Raised by the :ref:`asyncio stream APIs `." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:91 +msgid "The total number of to be consumed bytes." +msgstr "" diff --git a/library/asyncio-future.po b/library/asyncio-future.po new file mode 100644 index 000000000..d41490ffb --- /dev/null +++ b/library/asyncio-future.po @@ -0,0 +1,300 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\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" +"Last-Translator: FULL NAME \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/asyncio-future.rst:8 +msgid "Futures" +msgstr "Futurs" + +#: ../Doc/library/asyncio-future.rst:10 +msgid "" +"*Future* objects are used to bridge **low-level callback-based code** with " +"high-level async/await code." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:15 +msgid "Future Functions" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:19 +msgid "Return ``True`` if *obj* is either of:" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:21 +msgid "an instance of :class:`asyncio.Future`," +msgstr "" + +#: ../Doc/library/asyncio-future.rst:22 +msgid "an instance of :class:`asyncio.Task`," +msgstr "" + +#: ../Doc/library/asyncio-future.rst:23 +msgid "a Future-like object with a ``_asyncio_future_blocking`` attribute." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:31 +msgid "Return:" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:33 +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 "" + +#: ../Doc/library/asyncio-future.rst:37 +msgid "" +"a :class:`Task` object wrapping *obj*, if *obj* is a coroutine (:func:" +"`iscoroutine` is used for the test.)" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:40 +msgid "" +"a :class:`Task` object that would await on *obj*, if *obj* is an awaitable (:" +"func:`inspect.isawaitable` is used for the test.)" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:43 +msgid "If *obj* is neither of the above a :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:47 +msgid "" +"See also the :func:`create_task` function which is the preferred way for " +"creating new Tasks." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:50 +msgid "The function accepts any :term:`awaitable` object." +msgstr "La fonction accepte n'importe quel objet :term:`awaitable`." + +#: ../Doc/library/asyncio-future.rst:56 +msgid "" +"Wrap a :class:`concurrent.futures.Future` object in a :class:`asyncio." +"Future` object." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:61 +msgid "Future Object" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:65 +msgid "" +"A Future represents an eventual result of an asynchronous operation. Not " +"thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:68 +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:72 +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 "" + +#: ../Doc/library/asyncio-future.rst:77 +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 "" + +#: ../Doc/library/asyncio-future.rst:83 +msgid "Added support for the :mod:`contextvars` module." +msgstr "Ajout du support du module :mod:`contextvars`." + +#: ../Doc/library/asyncio-future.rst:88 +msgid "Return the result of the Future." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:90 +msgid "" +"If the Future is *done* and has a result set by the :meth:`set_result` " +"method, the result value is returned." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:93 +msgid "" +"If the Future is *done* and has an exception set by the :meth:" +"`set_exception` method, this method raises the exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:96 ../Doc/library/asyncio-future.rst:181 +msgid "" +"If the Future has been *cancelled*, this method raises a :exc:" +"`CancelledError` exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:99 +msgid "" +"If the Future's result isn't yet available, this method raises a :exc:" +"`InvalidStateError` exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:104 +msgid "Mark the Future as *done* and set its result." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:106 ../Doc/library/asyncio-future.rst:113 +msgid "" +"Raises a :exc:`InvalidStateError` error if the Future is already *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:111 +msgid "Mark the Future as *done* and set an exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:118 +msgid "Return ``True`` if the Future is *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:120 +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 "" + +#: ../Doc/library/asyncio-future.rst:126 +msgid "Return ``True`` if the Future was *cancelled*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:128 +msgid "" +"The method is usually used to check if a Future is not *cancelled* before " +"setting a result or an exception for it::" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:136 +msgid "Add a callback to be run when the Future is *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:138 +msgid "The *callback* is called with the Future object as its only argument." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:141 +msgid "" +"If the Future is already *done* when this method is called, the callback is " +"scheduled with :meth:`loop.call_soon`." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:144 +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 "" + +#: ../Doc/library/asyncio-future.rst:148 +msgid "" +":func:`functools.partial` can be used to pass parameters to the callback, e." +"g.::" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:155 +msgid "" +"The *context* keyword-only parameter was added. See :pep:`567` for more " +"details." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:161 +msgid "Remove *callback* from the callbacks list." +msgstr "Retire *callback* de la liste de fonctions de rappel." + +#: ../Doc/library/asyncio-future.rst:163 +msgid "" +"Returns the number of callbacks removed, which is typically 1, unless a " +"callback was added more than once." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:168 +msgid "Cancel the Future and schedule callbacks." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:170 +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 "" + +#: ../Doc/library/asyncio-future.rst:176 +msgid "Return the exception that was set on this Future." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:178 +msgid "" +"The exception (or ``None`` if no exception was set) is returned only if the " +"Future is *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:184 +msgid "" +"If the Future isn't *done* yet, this method raises an :exc:" +"`InvalidStateError` exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:189 +msgid "Return the event loop the Future object is bound to." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:196 +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 "" + +#: ../Doc/library/asyncio-future.rst:231 +msgid "" +"The Future object was designed to mimic :class:`concurrent.futures.Future`. " +"Key differences include:" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:234 +msgid "" +"unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " +"be awaited." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:237 +msgid "" +":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " +"accept the *timeout* argument." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:240 +msgid "" +":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise an :" +"exc:`InvalidStateError` exception when the Future is not *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:244 +msgid "" +"Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not " +"called immediately. They are scheduled with :meth:`loop.call_soon` instead." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:248 +msgid "" +"asyncio Future is not compatible with the :func:`concurrent.futures.wait` " +"and :func:`concurrent.futures.as_completed` functions." +msgstr "" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po new file mode 100644 index 000000000..1bfe29dde --- /dev/null +++ b/library/asyncio-llapi-index.po @@ -0,0 +1,984 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\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" +"Last-Translator: FULL NAME \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/asyncio-llapi-index.rst:6 +msgid "Low-level API Index" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:8 +msgid "This page lists all low-level asyncio APIs." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:12 +msgid "Obtaining the Event Loop" +msgstr "Obtenir une boucle d'évènements" + +#: ../Doc/library/asyncio-llapi-index.rst:18 +msgid ":func:`asyncio.get_running_loop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:19 +msgid "The **preferred** function to get the running event loop." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:21 +msgid ":func:`asyncio.get_event_loop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:22 +msgid "Get an event loop instance (current or via the policy)." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:24 +msgid ":func:`asyncio.set_event_loop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:25 +msgid "Set the event loop as current via the current policy." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:27 +msgid ":func:`asyncio.new_event_loop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:28 +msgid "Create a new event loop." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:32 +#: ../Doc/library/asyncio-llapi-index.rst:260 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-llapi-index.rst:33 +msgid ":ref:`Using asyncio.get_running_loop() `." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:37 +msgid "Event Loop Methods" +msgstr "Méthodes de la boucle d'évènements" + +#: ../Doc/library/asyncio-llapi-index.rst:39 +msgid "" +"See also the main documentation section about the :ref:`event loop methods " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:42 +msgid "Lifecycle" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:47 +msgid ":meth:`loop.run_until_complete`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:48 +msgid "Run a Future/Task/awaitable until complete." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:50 +msgid ":meth:`loop.run_forever`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:51 +msgid "Run the event loop forever." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:53 +msgid ":meth:`loop.stop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:54 +msgid "Stop the event loop." +msgstr "Arrête l'exécution de la boucle d'évènements." + +#: ../Doc/library/asyncio-llapi-index.rst:56 +msgid ":meth:`loop.close`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:57 +msgid "Close the event loop." +msgstr "Arrête la boucle d'évènements." + +#: ../Doc/library/asyncio-llapi-index.rst:59 +msgid ":meth:`loop.is_running()`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:60 +msgid "Return ``True`` if the event loop is running." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:62 +msgid ":meth:`loop.is_closed()`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:63 +msgid "Return ``True`` if the event loop is closed." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:65 +msgid "``await`` :meth:`loop.shutdown_asyncgens`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:66 +msgid "Close asynchronous generators." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:69 +msgid "Debugging" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:74 +msgid ":meth:`loop.set_debug`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:75 +msgid "Enable or disable the debug mode." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:77 +msgid ":meth:`loop.get_debug`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:78 +msgid "Get the current debug mode." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:81 +msgid "Scheduling Callbacks" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:86 +msgid ":meth:`loop.call_soon`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:87 +msgid "Invoke a callback soon." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:89 +msgid ":meth:`loop.call_soon_threadsafe`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:90 +msgid "A thread-safe variant of :meth:`loop.call_soon`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:92 +msgid ":meth:`loop.call_later`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:93 +msgid "Invoke a callback *after* the given time." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:95 +msgid ":meth:`loop.call_at`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:96 +msgid "Invoke a callback *at* the given time." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:99 +msgid "Thread/Process Pool" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:104 +msgid "``await`` :meth:`loop.run_in_executor`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:105 +msgid "" +"Run a CPU-bound or other blocking function in a :mod:`concurrent.futures` " +"executor." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:108 +msgid ":meth:`loop.set_default_executor`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:109 +msgid "Set the default executor for :meth:`loop.run_in_executor`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:112 +msgid "Tasks and Futures" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:117 +msgid ":meth:`loop.create_future`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:118 +msgid "Create a :class:`Future` object." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:120 +msgid ":meth:`loop.create_task`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:121 +msgid "Schedule coroutine as a :class:`Task`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:123 +msgid ":meth:`loop.set_task_factory`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:124 +msgid "" +"Set a factory used by :meth:`loop.create_task` to create :class:`Tasks " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:127 +msgid ":meth:`loop.get_task_factory`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:128 +msgid "" +"Get the factory :meth:`loop.create_task` uses to create :class:`Tasks " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:132 +msgid "DNS" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:137 +msgid "``await`` :meth:`loop.getaddrinfo`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:138 +msgid "Asynchronous version of :meth:`socket.getaddrinfo`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:140 +msgid "``await`` :meth:`loop.getnameinfo`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:141 +msgid "Asynchronous version of :meth:`socket.getnameinfo`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:144 +msgid "Networking and IPC" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:149 +msgid "``await`` :meth:`loop.create_connection`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:150 +msgid "Open a TCP connection." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:152 +msgid "``await`` :meth:`loop.create_server`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:153 +msgid "Create a TCP server." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:155 +msgid "``await`` :meth:`loop.create_unix_connection`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:156 +msgid "Open a Unix socket connection." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:158 +msgid "``await`` :meth:`loop.create_unix_server`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:159 +msgid "Create a Unix socket server." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:161 +msgid "``await`` :meth:`loop.connect_accepted_socket`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:162 +msgid "Wrap a :class:`~socket.socket` into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:165 +msgid "``await`` :meth:`loop.create_datagram_endpoint`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:166 +msgid "Open a datagram (UDP) connection." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:168 +msgid "``await`` :meth:`loop.sendfile`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:169 +msgid "Send a file over a transport." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:171 +msgid "``await`` :meth:`loop.start_tls`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:172 +msgid "Upgrade an existing connection to TLS." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:174 +msgid "``await`` :meth:`loop.connect_read_pipe`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:175 +msgid "Wrap a read end of a pipe into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:177 +msgid "``await`` :meth:`loop.connect_write_pipe`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:178 +msgid "Wrap a write end of a pipe into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:181 +msgid "Sockets" +msgstr "Interfaces de connexion (*sockets*)" + +#: ../Doc/library/asyncio-llapi-index.rst:186 +msgid "``await`` :meth:`loop.sock_recv`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:187 +msgid "Receive data from the :class:`~socket.socket`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:189 +msgid "``await`` :meth:`loop.sock_recv_into`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:190 +msgid "Receive data from the :class:`~socket.socket` into a buffer." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:192 +msgid "``await`` :meth:`loop.sock_sendall`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:193 +msgid "Send data to the :class:`~socket.socket`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:195 +msgid "``await`` :meth:`loop.sock_connect`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:196 +msgid "Connect the :class:`~socket.socket`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:198 +msgid "``await`` :meth:`loop.sock_accept`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:199 +msgid "Accept a :class:`~socket.socket` connection." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:201 +msgid "``await`` :meth:`loop.sock_sendfile`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:202 +msgid "Send a file over the :class:`~socket.socket`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:204 +msgid ":meth:`loop.add_reader`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:205 +msgid "Start watching a file descriptor for read availability." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:207 +msgid ":meth:`loop.remove_reader`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:208 +msgid "Stop watching a file descriptor for read availability." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:210 +msgid ":meth:`loop.add_writer`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:211 +msgid "Start watching a file descriptor for write availability." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:213 +msgid ":meth:`loop.remove_writer`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:214 +msgid "Stop watching a file descriptor for write availability." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:217 +msgid "Unix Signals" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:222 +msgid ":meth:`loop.add_signal_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:223 +msgid "Add a handler for a :mod:`signal`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:225 +msgid ":meth:`loop.remove_signal_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:226 +msgid "Remove a handler for a :mod:`signal`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:229 +msgid "Subprocesses" +msgstr "Sous-processus" + +#: ../Doc/library/asyncio-llapi-index.rst:234 +msgid ":meth:`loop.subprocess_exec`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:235 +msgid "Spawn a subprocess." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:237 +msgid ":meth:`loop.subprocess_shell`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:238 +msgid "Spawn a subprocess from a shell command." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:241 +msgid "Error Handling" +msgstr "Gestion des erreurs" + +#: ../Doc/library/asyncio-llapi-index.rst:246 +msgid ":meth:`loop.call_exception_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:247 +msgid "Call the exception handler." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:249 +msgid ":meth:`loop.set_exception_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:250 +msgid "Set a new exception handler." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:252 +msgid ":meth:`loop.get_exception_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:253 +msgid "Get the current exception handler." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:255 +msgid ":meth:`loop.default_exception_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:256 +msgid "The default exception handler implementation." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:261 +msgid "" +":ref:`Using asyncio.get_event_loop() and loop.run_forever() " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:264 +msgid ":ref:`Using loop.call_later() `." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:266 +msgid "" +"Using ``loop.create_connection()`` to implement :ref:`an echo-client " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:269 +msgid "" +"Using ``loop.create_connection()`` to :ref:`connect a socket " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:272 +msgid "" +":ref:`Using add_reader() to watch an FD for read events " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:275 +msgid ":ref:`Using loop.add_signal_handler() `." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:277 +msgid ":ref:`Using loop.subprocess_exec() `." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:281 +msgid "Transports" +msgstr "Transports" + +#: ../Doc/library/asyncio-llapi-index.rst:283 +msgid "All transports implement the following methods:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:289 +msgid ":meth:`transport.close() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:290 +msgid "Close the transport." +msgstr "Ferme le transport." + +#: ../Doc/library/asyncio-llapi-index.rst:292 +msgid ":meth:`transport.is_closing() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:293 +msgid "Return ``True`` if the transport is closing or is closed." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:295 +msgid ":meth:`transport.get_extra_info() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:296 +msgid "Request for information about the transport." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:298 +msgid ":meth:`transport.set_protocol() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:299 +msgid "Set a new protocol." +msgstr "Change le protocole." + +#: ../Doc/library/asyncio-llapi-index.rst:301 +msgid ":meth:`transport.get_protocol() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:302 +msgid "Return the current protocol." +msgstr "Renvoie le protocole courant." + +#: ../Doc/library/asyncio-llapi-index.rst:305 +msgid "" +"Transports that can receive data (TCP and Unix connections, pipes, etc). " +"Returned from methods like :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.connect_read_pipe`, etc:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:310 +msgid "Read Transports" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:315 +msgid ":meth:`transport.is_reading() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:316 +msgid "Return ``True`` if the transport is receiving." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:318 +msgid ":meth:`transport.pause_reading() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:319 +msgid "Pause receiving." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:321 +msgid ":meth:`transport.resume_reading() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:322 +msgid "Resume receiving." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:325 +msgid "" +"Transports that can Send data (TCP and Unix connections, pipes, etc). " +"Returned from methods like :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.connect_write_pipe`, etc:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:330 +msgid "Write Transports" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:335 +msgid ":meth:`transport.write() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:336 +msgid "Write data to the transport." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:338 +msgid ":meth:`transport.writelines() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:339 +msgid "Write buffers to the transport." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:341 +msgid ":meth:`transport.can_write_eof() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:342 +msgid "Return :const:`True` if the transport supports sending EOF." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:344 +msgid ":meth:`transport.write_eof() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:345 +msgid "Close and send EOF after flushing buffered data." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:347 +msgid ":meth:`transport.abort() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:348 +#: ../Doc/library/asyncio-llapi-index.rst:370 +msgid "Close the transport immediately." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:350 +msgid "" +":meth:`transport.get_write_buffer_size() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:352 +msgid "Return high and low water marks for write flow control." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:354 +msgid "" +":meth:`transport.set_write_buffer_limits() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:356 +msgid "Set new high and low water marks for write flow control." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:359 +msgid "Transports returned by :meth:`loop.create_datagram_endpoint`:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:361 +msgid "Datagram Transports" +msgstr "Transports de datagrammes" + +#: ../Doc/library/asyncio-llapi-index.rst:366 +msgid ":meth:`transport.sendto() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:367 +msgid "Send data to the remote peer." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:369 +msgid ":meth:`transport.abort() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:373 +msgid "" +"Low-level transport abstraction over subprocesses. Returned by :meth:`loop." +"subprocess_exec` and :meth:`loop.subprocess_shell`:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:377 +msgid "Subprocess Transports" +msgstr "Transports vers des sous-processus" + +#: ../Doc/library/asyncio-llapi-index.rst:382 +msgid ":meth:`transport.get_pid() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:383 +msgid "Return the subprocess process id." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:385 +msgid "" +":meth:`transport.get_pipe_transport() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:387 +msgid "" +"Return the transport for the requested communication pipe (*stdin*, " +"*stdout*, or *stderr*)." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:390 +msgid ":meth:`transport.get_returncode() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:391 +msgid "Return the subprocess return code." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:393 +msgid ":meth:`transport.kill() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:394 +msgid "Kill the subprocess." +msgstr "Tue le sous-processus." + +#: ../Doc/library/asyncio-llapi-index.rst:396 +msgid ":meth:`transport.send_signal() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:397 +msgid "Send a signal to the subprocess." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:399 +msgid ":meth:`transport.terminate() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:400 +msgid "Stop the subprocess." +msgstr "Termine le sous-processus." + +#: ../Doc/library/asyncio-llapi-index.rst:402 +msgid ":meth:`transport.close() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:403 +msgid "Kill the subprocess and close all pipes." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:407 +msgid "Protocols" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:409 +msgid "Protocol classes can implement the following **callback methods**:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:415 +msgid "``callback`` :meth:`connection_made() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:416 +msgid "Called when a connection is made." +msgstr "Appelé lorsqu'une connexion est établie." + +#: ../Doc/library/asyncio-llapi-index.rst:418 +msgid "``callback`` :meth:`connection_lost() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:419 +msgid "Called when the connection is lost or closed." +msgstr "Appelé lorsqu'une connexion est perdue ou fermée." + +#: ../Doc/library/asyncio-llapi-index.rst:421 +msgid "``callback`` :meth:`pause_writing() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:422 +msgid "Called when the transport's buffer goes over the high water mark." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:424 +msgid "``callback`` :meth:`resume_writing() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:425 +msgid "Called when the transport's buffer drains below the low water mark." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:428 +msgid "Streaming Protocols (TCP, Unix Sockets, Pipes)" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:433 +msgid "``callback`` :meth:`data_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:434 +msgid "Called when some data is received." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:436 +msgid "``callback`` :meth:`eof_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:437 +#: ../Doc/library/asyncio-llapi-index.rst:452 +msgid "Called when an EOF is received." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:440 +msgid "Buffered Streaming Protocols" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:445 +msgid "``callback`` :meth:`get_buffer() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:446 +msgid "Called to allocate a new receive buffer." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:448 +msgid "``callback`` :meth:`buffer_updated() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:449 +msgid "Called when the buffer was updated with the received data." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:451 +msgid "``callback`` :meth:`eof_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:455 +msgid "Datagram Protocols" +msgstr "Protocoles non-connectés" + +#: ../Doc/library/asyncio-llapi-index.rst:460 +msgid "" +"``callback`` :meth:`datagram_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:462 +msgid "Called when a datagram is received." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:464 +msgid "``callback`` :meth:`error_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:465 +msgid "" +"Called when a previous send or receive operation raises an :class:`OSError`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:469 +msgid "Subprocess Protocols" +msgstr "Protocoles liés aux sous-processus" + +#: ../Doc/library/asyncio-llapi-index.rst:474 +msgid "" +"``callback`` :meth:`pipe_data_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:476 +msgid "" +"Called when the child process writes data into its *stdout* or *stderr* pipe." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:479 +msgid "" +"``callback`` :meth:`pipe_connection_lost() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:481 +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-llapi-index.rst:484 +msgid "" +"``callback`` :meth:`process_exited() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:486 +msgid "Called when the child process has exited." +msgstr "Appelé lorsqu'un processus enfant se termine." + +#: ../Doc/library/asyncio-llapi-index.rst:490 +msgid "Event Loop Policies" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:492 +msgid "" +"Policies is a low-level mechanism to alter the behavior of functions like :" +"func:`asyncio.get_event_loop`. See also the main :ref:`policies section " +"` for more details." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:498 +msgid "Accessing Policies" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:503 +msgid ":meth:`asyncio.get_event_loop_policy`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:504 +msgid "Return the current process-wide policy." +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 "" + +#: ../Doc/library/asyncio-llapi-index.rst:507 +msgid "Set a new process-wide policy." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:509 +msgid ":class:`AbstractEventLoopPolicy`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:510 +msgid "Base class for policy objects." +msgstr "" diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po new file mode 100644 index 000000000..ddb9ff308 --- /dev/null +++ b/library/asyncio-platforms.po @@ -0,0 +1,145 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\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" +"Last-Translator: FULL NAME \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/asyncio-platforms.rst:9 +msgid "Platform Support" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:11 +msgid "" +"The :mod:`asyncio` module is designed to be portable, but some platforms " +"have subtle differences and limitations due to the platforms' underlying " +"architecture and capabilities." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:17 +msgid "All Platforms" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:19 +msgid "" +":meth:`loop.add_reader` and :meth:`loop.add_writer` cannot be used to " +"monitor file I/O." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:24 +msgid "Windows" +msgstr "Windows" + +#: ../Doc/library/asyncio-platforms.rst:26 +msgid "All event loops on Windows do not support the following methods:" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:28 +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:32 +msgid "" +":meth:`loop.add_signal_handler` and :meth:`loop.remove_signal_handler` are " +"not supported." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:35 +msgid ":class:`SelectorEventLoop` has the following limitations:" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:37 +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:40 +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:43 +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:46 +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:50 +msgid ":class:`ProactorEventLoop` has the following limitations:" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:52 +msgid "The :meth:`loop.create_datagram_endpoint` method is not supported." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:55 +msgid "" +"The :meth:`loop.add_reader` and :meth:`loop.add_writer` methods are not " +"supported." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:58 +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 " +"hardware (availability of `HPET `_) and on the Windows configuration." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:68 +msgid "Subprocess Support on Windows" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:70 +msgid "" +":class:`SelectorEventLoop` on Windows does not support subproceses. On " +"Windows, :class:`ProactorEventLoop` should be used instead::" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:81 +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:88 +msgid "macOS" +msgstr "macOS" + +#: ../Doc/library/asyncio-platforms.rst:90 +msgid "Modern macOS versions are fully supported." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:93 +msgid "macOS <= 10.8" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:94 +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 " +"versions. The :class:`SelectorEventLoop` can be manually configured to use :" +"class:`~selectors.SelectSelector` or :class:`~selectors.PollSelector` to " +"support character devices on these older versions of macOS. Example::" +msgstr "" diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po new file mode 100644 index 000000000..93e6c4482 --- /dev/null +++ b/library/asyncio-policy.po @@ -0,0 +1,367 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2019-04-11 22:41+0200\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/asyncio-policy.rst:8 +msgid "Policies" +msgstr "Stratégies" + +#: ../Doc/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 +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 +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 +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 +msgid "Getting and Setting the Policy" +msgstr "Obtenir et définir la stratégie" + +#: ../Doc/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 +msgid "Return the current process-wide policy." +msgstr "Renvoie la stratégie actuelle à l'échelle du processus." + +#: ../Doc/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 +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 +msgid "Policy Objects" +msgstr "Sujets de stratégie" + +#: ../Doc/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 +msgid "An abstract base class for asyncio policies." +msgstr "Une classe de base abstraite pour les stratégies *asyncio*." + +#: ../Doc/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 +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 +msgid "This method should never return ``None``." +msgstr "Cette méthode ne devrait jamais renvoyer ``None``." + +#: ../Doc/library/asyncio-policy.rst:65 +msgid "Set the event loop for the current context to *loop*." +msgstr "Définit la boucle d'événements du contexte actuel sur *loop*." + +#: ../Doc/library/asyncio-policy.rst:69 +msgid "Create and return a new event loop object." +msgstr "Crée et renvoie un nouvel objet de boucle d'événements." + +#: ../Doc/library/asyncio-policy.rst:75 +msgid "Get a child process watcher object." +msgstr "Récupère un objet observateur du processus enfant." + +#: ../Doc/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 +msgid "This function is Unix specific." +msgstr "Cette fonction est spécifique à Unix." + +#: ../Doc/library/asyncio-policy.rst:84 +msgid "Set the current child process watcher to *watcher*." +msgstr "Définit l'observateur du processus enfant actuel à *watcher*." + +#: ../Doc/library/asyncio-policy.rst:89 +msgid "asyncio ships with the following built-in policies:" +msgstr "*asyncio* est livré avec les stratégies intégrées suivantes :" + +#: ../Doc/library/asyncio-policy.rst:94 +msgid "" +"The default asyncio policy. Uses :class:`SelectorEventLoop` on both Unix " +"and Windows platforms." +msgstr "" +"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur " +"les plates-formes Unix et Windows." + +#: ../Doc/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:103 +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:106 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/asyncio-policy.rst:110 +msgid "Process Watchers" +msgstr "Observateurs de processus" + +#: ../Doc/library/asyncio-policy.rst:112 +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:116 +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:120 +msgid "" +"asyncio defines the :class:`AbstractChildWatcher` abstract base class, which " +"child watchers should implement, and has two different implementations: :" +"class:`SafeChildWatcher` (configured to be used by default) 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:125 +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:128 +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:133 +msgid "Return the current child watcher for the current policy." +msgstr "Renvoie l'observateur enfant actuel pour la stratégie actuelle." + +#: ../Doc/library/asyncio-policy.rst:137 +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:142 +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:150 +msgid "Register a new child handler." +msgstr "Enregistre un nouveau gestionnaire." + +#: ../Doc/library/asyncio-policy.rst:152 +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:157 +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:161 +msgid "Removes the handler for process with PID equal to *pid*." +msgstr "Supprime le gestionnaire de processus avec un PID égal à *pid*." + +#: ../Doc/library/asyncio-policy.rst:163 +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:168 +msgid "Attach the watcher to an event loop." +msgstr "Attache l'observateur à une boucle d'événement." + +#: ../Doc/library/asyncio-policy.rst:170 +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:173 +msgid "Note: loop may be ``None``." +msgstr "Remarque : la boucle peut être ``None``." + +#: ../Doc/library/asyncio-policy.rst:177 +msgid "Close the watcher." +msgstr "Ferme l'observateur." + +#: ../Doc/library/asyncio-policy.rst:179 +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:184 +msgid "" +"This implementation avoids disrupting other code spawning processes by " +"polling every process explicitly on a :py:data:`SIGCHLD` signal." +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:187 +msgid "" +"This is a safe solution but it has a significant overhead when handling a " +"big number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)." +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:191 +msgid "asyncio uses this safe implementation by default." +msgstr "*asyncio* utilise cette implémentation sécurisée par défaut." + +#: ../Doc/library/asyncio-policy.rst:195 +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:199 +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:204 +msgid "Custom Policies" +msgstr "Stratégies personnalisées" + +#: ../Doc/library/asyncio-policy.rst:206 +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 fd4bbf5e6..1113623ca 100644 --- a/library/asyncio-protocol.po +++ b/library/asyncio-protocol.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-29 00:14+0200\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-18 22:29+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -15,833 +15,1034 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/asyncio-protocol.rst:5 -msgid "Transports and protocols (callback based API)" -msgstr "Transports et protocoles (APi basée sur des fonctions de rappel)" +#: ../Doc/library/asyncio-protocol.rst:9 +msgid "Transports and Protocols" +msgstr "Transports et Protocoles" -#: ../Doc/library/asyncio-protocol.rst:7 -msgid "**Source code:** :source:`Lib/asyncio/transports.py`" +#: ../Doc/library/asyncio-protocol.rst:12 +msgid "Preface" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:9 -msgid "**Source code:** :source:`Lib/asyncio/protocols.py`" +#: ../Doc/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 " +"style and enable high-performance implementations of network or IPC " +"protocols (e.g. HTTP)." +msgstr "" + +#: ../Doc/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 +msgid "This documentation page covers both `Transports`_ and `Protocols`_." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:25 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/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 +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 +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 +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 +msgid "" +"Most of connection oriented event loop methods (such as :meth:`loop." +"create_connection`) usually accept a *protocol_factory* argument used to " +"create a *Protocol* object for an accepted connection, represented by a " +"*Transport* object. Such methods usually return a tuple of ``(transport, " +"protocol)``." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:51 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/library/asyncio-protocol.rst:52 +msgid "This documentation page contains the following sections:" +msgstr "" + +#: ../Doc/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 +msgid "" +"The `Protocols`_ section documents asyncio :class:`BaseProtocol`, :class:" +"`Protocol`, :class:`BufferedProtocol`, :class:`DatagramProtocol`, and :class:" +"`SubprocessProtocol` classes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:14 +#: ../Doc/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 msgid "Transports" msgstr "Transports" -#: ../Doc/library/asyncio-protocol.rst:16 +#: ../Doc/library/asyncio-protocol.rst:72 msgid "" "Transports are classes provided by :mod:`asyncio` in order to abstract " -"various kinds of communication channels. You generally won't instantiate a " -"transport yourself; instead, you will call an :class:`AbstractEventLoop` " -"method which will create the transport and try to initiate the underlying " -"communication channel, calling you back when it succeeds." +"various kinds of communication channels." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:22 +#: ../Doc/library/asyncio-protocol.rst:75 msgid "" -"Once the communication channel is established, a transport is always paired " -"with a :ref:`protocol ` instance. The protocol can then " -"call the transport's methods for various purposes." +"Transport objects are always instantiated by an :ref:`asyncio event loop " +"`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:26 +#: ../Doc/library/asyncio-protocol.rst:78 msgid "" -":mod:`asyncio` currently implements transports for TCP, UDP, SSL, and " -"subprocess pipes. The methods available on a transport depend on the " -"transport's kind." +"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:30 +#: ../Doc/library/asyncio-protocol.rst:81 msgid "" "The transport classes are :ref:`not thread safe `." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:32 -msgid "The socket option ``TCP_NODELAY`` is now set by default." +#: ../Doc/library/asyncio-protocol.rst:85 +msgid "Transports Hierarchy" +msgstr "Hiérarchie des transports" + +#: ../Doc/library/asyncio-protocol.rst:89 +msgid "" +"Base class for all transports. Contains methods that all asyncio transports " +"share." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:94 +msgid "A base transport for write-only connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:37 -msgid "BaseTransport" -msgstr "BaseTransport" +#: ../Doc/library/asyncio-protocol.rst:96 +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:41 -msgid "Base class for transports." -msgstr "Classe de base des transports." +#: ../Doc/library/asyncio-protocol.rst:103 +msgid "A base transport for read-only connections." +msgstr "" -#: ../Doc/library/asyncio-protocol.rst:45 +#: ../Doc/library/asyncio-protocol.rst:105 msgid "" -"Close the transport. If the transport has a buffer for outgoing data, " -"buffered data will be flushed asynchronously. No more data will be " -"received. After all buffered data is flushed, the protocol's :meth:" -"`connection_lost` method will be called with :const:`None` as its argument." +"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:53 +#: ../Doc/library/asyncio-protocol.rst:112 +msgid "" +"Interface representing a bidirectional transport, such as a TCP connection." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:115 +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 +msgid "" +"Instances of the *Transport* class are returned from or used by event loop " +"methods like :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.create_server`, :meth:`loop.sendfile`, " +"etc." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:127 +msgid "A transport for datagram (UDP) connections." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:129 +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 +msgid "" +"An abstraction to represent a connection between a parent and its child OS " +"process." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:138 +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 +msgid "Base Transport" +msgstr "Classe de base des Transports" + +#: ../Doc/library/asyncio-protocol.rst:148 +msgid "Close the transport." +msgstr "Ferme le transport." + +#: ../Doc/library/asyncio-protocol.rst:150 +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 " +"data is flushed, the protocol's :meth:`protocol.connection_lost() " +"` method will be called with :const:`None` as " +"its argument." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:159 msgid "Return ``True`` if the transport is closing or is closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:59 +#: ../Doc/library/asyncio-protocol.rst:163 +msgid "Return information about the transport or underlying resources it uses." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:166 msgid "" -"Return optional transport information. *name* is a string representing the " -"piece of transport-specific information to get, *default* is the value to " -"return if the information doesn't exist." +"*name* is a string representing the piece of transport-specific information " +"to get." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:63 +#: ../Doc/library/asyncio-protocol.rst:169 +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 msgid "" -"This method allows transport implementations to easily expose channel-" -"specific information." +"For example, the following code attempts to get the underlying socket object " +"of the transport::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:66 +#: ../Doc/library/asyncio-protocol.rst:181 +msgid "Categories of information that can be queried on some transports:" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:183 msgid "socket:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:68 +#: ../Doc/library/asyncio-protocol.rst:185 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:70 +#: ../Doc/library/asyncio-protocol.rst:189 msgid "``'socket'``: :class:`socket.socket` instance" msgstr "``'socket'`` : Instance de :class:`socket.socket`" -#: ../Doc/library/asyncio-protocol.rst:71 +#: ../Doc/library/asyncio-protocol.rst:191 msgid "" "``'sockname'``: the socket's own address, result of :meth:`socket.socket." "getsockname`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:74 +#: ../Doc/library/asyncio-protocol.rst:194 msgid "SSL socket:" -msgstr "*Socket* SSL :" +msgstr "Connecteur (*socket* en anglais) SSL :" -#: ../Doc/library/asyncio-protocol.rst:76 +#: ../Doc/library/asyncio-protocol.rst:196 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:79 +#: ../Doc/library/asyncio-protocol.rst:200 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:83 +#: ../Doc/library/asyncio-protocol.rst:205 msgid "" "``'peercert'``: peer certificate; result of :meth:`ssl.SSLSocket.getpeercert`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:85 +#: ../Doc/library/asyncio-protocol.rst:208 msgid "``'sslcontext'``: :class:`ssl.SSLContext` instance" msgstr "``sslcontext'`` : Instance de :class:`ssl.SSLContext`" -#: ../Doc/library/asyncio-protocol.rst:86 +#: ../Doc/library/asyncio-protocol.rst:210 msgid "" "``'ssl_object'``: :class:`ssl.SSLObject` or :class:`ssl.SSLSocket` instance" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:89 +#: ../Doc/library/asyncio-protocol.rst:213 msgid "pipe:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:91 +#: ../Doc/library/asyncio-protocol.rst:215 msgid "``'pipe'``: pipe object" msgstr "``'pipe'`` : objet *pipe*" -#: ../Doc/library/asyncio-protocol.rst:93 +#: ../Doc/library/asyncio-protocol.rst:217 msgid "subprocess:" -msgstr "processus fils :" +msgstr "sous-processus :" -#: ../Doc/library/asyncio-protocol.rst:95 +#: ../Doc/library/asyncio-protocol.rst:219 msgid "``'subprocess'``: :class:`subprocess.Popen` instance" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:99 +#: ../Doc/library/asyncio-protocol.rst:223 +msgid "Set a new protocol." +msgstr "Change le protocole." + +#: ../Doc/library/asyncio-protocol.rst:225 msgid "" -"Set a new protocol. Switching protocol should only be done when both " -"protocols are documented to support the switch." +"Switching protocol should only be done when both protocols are documented to " +"support the switch." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:106 +#: ../Doc/library/asyncio-protocol.rst:230 msgid "Return the current protocol." msgstr "Renvoie le protocole courant." -#: ../Doc/library/asyncio-protocol.rst:110 -msgid "``'ssl_object'`` info was added to SSL sockets." -msgstr "``'ssl_object'`` est ajouté aux *sockets* SSL." - -#: ../Doc/library/asyncio-protocol.rst:115 -msgid "ReadTransport" -msgstr "ReadTransport" - -#: ../Doc/library/asyncio-protocol.rst:119 -msgid "Interface for read-only transports." -msgstr "Interface pour les transports en lecture seule." +#: ../Doc/library/asyncio-protocol.rst:234 +msgid "Read-only Transports" +msgstr "Transports en lecture seule" -#: ../Doc/library/asyncio-protocol.rst:123 +#: ../Doc/library/asyncio-protocol.rst:238 msgid "Return ``True`` if the transport is receiving new data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:129 +#: ../Doc/library/asyncio-protocol.rst:244 msgid "" "Pause the receiving end of the transport. No data will be passed to the " -"protocol's :meth:`data_received` method until :meth:`resume_reading` is " -"called." +"protocol's :meth:`protocol.data_received() ` method " +"until :meth:`resume_reading` is called." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:133 +#: ../Doc/library/asyncio-protocol.rst:248 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:139 +#: ../Doc/library/asyncio-protocol.rst:254 msgid "" -"Resume the receiving end. The protocol's :meth:`data_received` method will " -"be called once again if some data is available for reading." +"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:142 +#: ../Doc/library/asyncio-protocol.rst:258 msgid "" "The method is idempotent, i.e. it can be called when the transport is " "already reading." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:148 -msgid "WriteTransport" -msgstr "WriteTransport" - -#: ../Doc/library/asyncio-protocol.rst:152 -msgid "Interface for write-only transports." -msgstr "Interface pour les transports en écriture seule." +#: ../Doc/library/asyncio-protocol.rst:264 +msgid "Write-only Transports" +msgstr "Transports en lecture/écriture" -#: ../Doc/library/asyncio-protocol.rst:156 -#: ../Doc/library/asyncio-protocol.rst:244 +#: ../Doc/library/asyncio-protocol.rst:268 msgid "" "Close the transport immediately, without waiting for pending operations to " "complete. Buffered data will be lost. No more data will be received. The " -"protocol's :meth:`connection_lost` method will eventually be called with :" -"const:`None` as its argument." +"protocol's :meth:`protocol.connection_lost() ` " +"method will eventually be called with :const:`None` as its argument." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:163 +#: ../Doc/library/asyncio-protocol.rst:276 msgid "" -"Return :const:`True` if the transport supports :meth:`write_eof`, :const:" -"`False` if not." +"Return :const:`True` if the transport supports :meth:`~WriteTransport." +"write_eof`, :const:`False` if not." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:168 +#: ../Doc/library/asyncio-protocol.rst:281 msgid "Return the current size of the output buffer used by the transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:172 +#: ../Doc/library/asyncio-protocol.rst:285 msgid "" -"Get the *high*- and *low*-water limits for write flow control. Return a " -"tuple ``(low, high)`` where *low* and *high* are positive number of bytes." +"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:176 +#: ../Doc/library/asyncio-protocol.rst:289 msgid "Use :meth:`set_write_buffer_limits` to set the limits." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:182 -msgid "Set the *high*- and *low*-water limits for write flow control." +#: ../Doc/library/asyncio-protocol.rst:295 +msgid "Set the *high* and *low* watermarks for write flow control." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:184 +#: ../Doc/library/asyncio-protocol.rst:297 msgid "" "These two values (measured in number of bytes) control when the protocol's :" -"meth:`pause_writing` and :meth:`resume_writing` methods are called. If " -"specified, the low-water limit must be less than or equal to the high-water " -"limit. Neither *high* nor *low* can be negative." +"meth:`protocol.pause_writing() ` and :meth:" +"`protocol.resume_writing() ` methods are " +"called. If specified, the low watermark must be less than or equal to the " +"high watermark. Neither *high* nor *low* can be negative." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:190 +#: ../Doc/library/asyncio-protocol.rst:305 msgid "" -":meth:`pause_writing` is called when the buffer size becomes greater than or " -"equal to the *high* value. If writing has been paused, :meth:" -"`resume_writing` is called when the buffer size becomes less than or equal " -"to the *low* value." +":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:" +"`~BaseProtocol.resume_writing` is called when the buffer size becomes less " +"than or equal to the *low* value." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:195 +#: ../Doc/library/asyncio-protocol.rst:310 msgid "" -"The defaults are implementation-specific. If only the high-water limit is " -"given, the low-water limit defaults to an implementation-specific value less " -"than or equal to the high-water limit. Setting *high* to zero forces *low* " -"to zero as well, and causes :meth:`pause_writing` to be called whenever the " -"buffer becomes non-empty. Setting *low* to zero causes :meth:" -"`resume_writing` to be called only once the buffer is empty. Use of zero for " -"either limit is generally sub-optimal as it reduces opportunities for doing " -"I/O and computation concurrently." +"The defaults are implementation-specific. If only the high watermark is " +"given, the low watermark defaults to an implementation-specific value less " +"than or equal to the high watermark. Setting *high* to zero forces *low* to " +"zero as well, and causes :meth:`~BaseProtocol.pause_writing` to be called " +"whenever the buffer becomes non-empty. Setting *low* to zero causes :meth:" +"`~BaseProtocol.resume_writing` to be called only once the buffer is empty. " +"Use of zero for either limit is generally sub-optimal as it reduces " +"opportunities for doing I/O and computation concurrently." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:206 -msgid "Use :meth:`get_write_buffer_limits` to get the limits." +#: ../Doc/library/asyncio-protocol.rst:321 +msgid "Use :meth:`~WriteTransport.get_write_buffer_limits` to get the limits." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:210 +#: ../Doc/library/asyncio-protocol.rst:326 msgid "Write some *data* bytes to the transport." msgstr "Écrit des octets de *data* sur le transport." -#: ../Doc/library/asyncio-protocol.rst:212 -#: ../Doc/library/asyncio-protocol.rst:239 +#: ../Doc/library/asyncio-protocol.rst:328 +#: ../Doc/library/asyncio-protocol.rst:357 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:217 +#: ../Doc/library/asyncio-protocol.rst:333 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:223 +#: ../Doc/library/asyncio-protocol.rst:340 msgid "" -"Close the write end of the transport after flushing buffered data. Data may " -"still be received." +"Close the write end of the transport after flushing all buffered data. Data " +"may still be received." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:226 +#: ../Doc/library/asyncio-protocol.rst:343 msgid "" "This method can raise :exc:`NotImplementedError` if the transport (e.g. SSL) " -"doesn't support half-closes." +"doesn't support half-closed connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:231 -msgid "DatagramTransport" -msgstr "DatagramTransport" +#: ../Doc/library/asyncio-protocol.rst:348 +msgid "Datagram Transports" +msgstr "Transports de datagrammes" -#: ../Doc/library/asyncio-protocol.rst:235 +#: ../Doc/library/asyncio-protocol.rst:352 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:251 -msgid "BaseSubprocessTransport" -msgstr "BaseSubprocessTransport" +#: ../Doc/library/asyncio-protocol.rst:362 +msgid "" +"Close the transport immediately, without waiting for pending operations to " +"complete. Buffered data will be lost. No more data will be received. The " +"protocol's :meth:`protocol.connection_lost() ` " +"method will eventually be called with :const:`None` as its argument." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:372 +msgid "Subprocess Transports" +msgstr "Transports vers des sous-processus" -#: ../Doc/library/asyncio-protocol.rst:257 +#: ../Doc/library/asyncio-protocol.rst:376 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:261 +#: ../Doc/library/asyncio-protocol.rst:380 msgid "" "Return the transport for the communication pipe corresponding to the integer " "file descriptor *fd*:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:264 +#: ../Doc/library/asyncio-protocol.rst:383 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:266 +#: ../Doc/library/asyncio-protocol.rst:385 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:268 +#: ../Doc/library/asyncio-protocol.rst:387 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:270 +#: ../Doc/library/asyncio-protocol.rst:389 msgid "other *fd*: :const:`None`" msgstr "autre *fd* : :const:`None`" -#: ../Doc/library/asyncio-protocol.rst:274 +#: ../Doc/library/asyncio-protocol.rst:393 msgid "" -"Return the subprocess returncode as an integer or :const:`None` if it hasn't " -"returned, similarly to the :attr:`subprocess.Popen.returncode` attribute." +"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:280 -msgid "Kill the subprocess, as in :meth:`subprocess.Popen.kill`." -msgstr "" +#: ../Doc/library/asyncio-protocol.rst:399 +msgid "Kill the subprocess." +msgstr "Tue le sous-processus." -#: ../Doc/library/asyncio-protocol.rst:282 +#: ../Doc/library/asyncio-protocol.rst:401 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:287 +#: ../Doc/library/asyncio-protocol.rst:404 +msgid "See also :meth:`subprocess.Popen.kill`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:408 msgid "" "Send the *signal* number to the subprocess, as in :meth:`subprocess.Popen." "send_signal`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:292 -msgid "" -"Ask the subprocess to stop, as in :meth:`subprocess.Popen.terminate`. This " -"method is an alias for the :meth:`close` method." -msgstr "" +#: ../Doc/library/asyncio-protocol.rst:413 +msgid "Stop the subprocess." +msgstr "Termine le sous-processus." -#: ../Doc/library/asyncio-protocol.rst:295 +#: ../Doc/library/asyncio-protocol.rst:415 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:301 -msgid "" -"Ask the subprocess to stop by calling the :meth:`terminate` method if the " -"subprocess hasn't returned yet, and close transports of all pipes (*stdin*, " -"*stdout* and *stderr*)." +#: ../Doc/library/asyncio-protocol.rst:419 +msgid "See also :meth:`subprocess.Popen.terminate`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:309 -msgid "Protocols" +#: ../Doc/library/asyncio-protocol.rst:423 +msgid "Kill the subprocess by calling the :meth:`kill` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:311 +#: ../Doc/library/asyncio-protocol.rst:425 msgid "" -":mod:`asyncio` provides base classes that you can subclass to implement your " -"network protocols. Those classes are used in conjunction with :ref:" -"`transports ` (see below): the protocol parses incoming " -"data and asks for the writing of outgoing data, while the transport is " -"responsible for the actual I/O and buffering." +"If the subprocess hasn't returned yet, and close transports of *stdin*, " +"*stdout*, and *stderr* pipes." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:432 +msgid "Protocols" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:317 +#: ../Doc/library/asyncio-protocol.rst:434 msgid "" -"When subclassing a protocol class, it is recommended you override certain " -"methods. Those methods are callbacks: they will be called by the transport " -"on certain events (for example when some data is received); you shouldn't " -"call them yourself, unless you are implementing a transport." +"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:323 +#: ../Doc/library/asyncio-protocol.rst:438 msgid "" -"All callbacks have default implementations, which are empty. Therefore, you " -"only need to implement the callbacks for the events in which you are " -"interested." +"Subclasses of abstract base protocol classes may implement some or all " +"methods. All these methods are callbacks: they are called by transports on " +"certain events, for example when some data is received. A base protocol " +"method should be called by the corresponding transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:329 -msgid "Protocol classes" +#: ../Doc/library/asyncio-protocol.rst:445 +msgid "Base Protocols" +msgstr "Protocoles de base" + +#: ../Doc/library/asyncio-protocol.rst:449 +msgid "Base protocol with methods that all protocols share." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:333 +#: ../Doc/library/asyncio-protocol.rst:453 msgid "" -"The base class for implementing streaming protocols (for use with e.g. TCP " -"and SSL transports)." +"The base class for implementing streaming protocols (TCP, Unix sockets, etc)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:338 +#: ../Doc/library/asyncio-protocol.rst:458 msgid "" "A base class for implementing streaming protocols with manual control of the " "receive buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:341 -msgid "" -"**Important:** this has been added to asyncio in Python 3.7 *on a " -"provisional basis*! Treat it as an experimental API that might be changed " -"or removed in Python 3.8." +#: ../Doc/library/asyncio-protocol.rst:463 +msgid "The base class for implementing datagram (UDP) protocols." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:348 +#: ../Doc/library/asyncio-protocol.rst:467 msgid "" -"The base class for implementing datagram protocols (for use with e.g. UDP " -"transports)." +"The base class for implementing protocols communicating with child processes " +"(unidirectional pipes)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:353 -msgid "" -"The base class for implementing protocols communicating with child processes " -"(through a set of unidirectional pipes)." +#: ../Doc/library/asyncio-protocol.rst:472 +msgid "Base Protocol" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:358 -msgid "Connection callbacks" +#: ../Doc/library/asyncio-protocol.rst:474 +msgid "All asyncio protocols can implement Base Protocol callbacks." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:360 -#: ../Doc/library/asyncio-protocol.rst:537 +#: ../Doc/library/asyncio-protocol.rst:477 +msgid "Connection Callbacks" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:478 msgid "" -"These callbacks may be called on :class:`Protocol`, :class:" -"`DatagramProtocol` and :class:`SubprocessProtocol` instances:" +"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:365 +#: ../Doc/library/asyncio-protocol.rst:484 msgid "Called when a connection is made." msgstr "Appelé lorsqu'une connexion est établie." -#: ../Doc/library/asyncio-protocol.rst:367 +#: ../Doc/library/asyncio-protocol.rst:486 msgid "" -"The *transport* argument is the transport representing the connection. You " -"are responsible for storing it somewhere (e.g. as an attribute) if you need " -"to." +"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:373 +#: ../Doc/library/asyncio-protocol.rst:492 msgid "Called when the connection is lost or closed." msgstr "Appelé lorsqu'une connexion est perdue ou fermée." -#: ../Doc/library/asyncio-protocol.rst:375 +#: ../Doc/library/asyncio-protocol.rst:494 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:379 -msgid "" -":meth:`~BaseProtocol.connection_made` and :meth:`~BaseProtocol." -"connection_lost` are called exactly once per successful connection. All " -"other callbacks will be called between those two methods, which allows for " -"easier resource management in your protocol implementation." +#: ../Doc/library/asyncio-protocol.rst:500 +msgid "Flow Control Callbacks" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:384 +#: ../Doc/library/asyncio-protocol.rst:501 msgid "" -"The following callbacks may be called only on :class:`SubprocessProtocol` " -"instances:" +"Flow control callbacks can be called by transports to pause or resume " +"writing performed by the protocol." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:389 +#: ../Doc/library/asyncio-protocol.rst:504 msgid "" -"Called when the child process writes data into its stdout or stderr pipe. " -"*fd* is the integer file descriptor of the pipe. *data* is a non-empty " -"bytes object containing the data." +"See the documentation of the :meth:`~WriteTransport.set_write_buffer_limits` " +"method for more details." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:395 -msgid "" -"Called when one of the pipes communicating with the child process is " -"closed. *fd* is the integer file descriptor that was closed." +#: ../Doc/library/asyncio-protocol.rst:509 +msgid "Called when the transport's buffer goes over the high watermark." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:400 -msgid "Called when the child process has exited." -msgstr "Appelé lorsqu'un processus enfant se termine." +#: ../Doc/library/asyncio-protocol.rst:513 +msgid "Called when the transport's buffer drains below the low watermark." +msgstr "" -#: ../Doc/library/asyncio-protocol.rst:404 -msgid "Streaming protocols" +#: ../Doc/library/asyncio-protocol.rst:515 +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 +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:406 -msgid "The following callbacks are called on :class:`Protocol` instances:" +#: ../Doc/library/asyncio-protocol.rst:526 +msgid "Streaming Protocols" +msgstr "Protocoles connectés" + +#: ../Doc/library/asyncio-protocol.rst:528 +msgid "" +"Event methods, such as :meth:`loop.create_server`, :meth:`loop." +"create_unix_server`, :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.connect_accepted_socket`, :meth:`loop." +"connect_read_pipe`, and :meth:`loop.connect_write_pipe` accept factories " +"that return streaming protocols." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:410 +#: ../Doc/library/asyncio-protocol.rst:536 msgid "" "Called when some data is received. *data* is a non-empty bytes object " "containing the incoming data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:414 +#: ../Doc/library/asyncio-protocol.rst:539 msgid "" "Whether the data is buffered, chunked or reassembled depends on the " "transport. In general, you shouldn't rely on specific semantics and instead " -"make your parsing generic and flexible enough. However, data is always " -"received in the correct order." +"make your parsing generic and flexible. However, data is always received in " +"the correct order." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:421 +#: ../Doc/library/asyncio-protocol.rst:544 msgid "" -"Called when the other end signals it won't send any more data (for example " -"by calling :meth:`write_eof`, if the other end also uses asyncio)." +"The method can be called an arbitrary number of times while a connection is " +"open." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:425 +#: ../Doc/library/asyncio-protocol.rst:547 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 " -"value, closing the transport is up to the protocol. Since the default " -"implementation returns ``None``, it implicitly closes the connection." +"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:431 +#: ../Doc/library/asyncio-protocol.rst:553 msgid "" -"Some transports such as SSL don't support half-closed connections, in which " -"case returning true from this method will not prevent closing the connection." +"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:435 +#: ../Doc/library/asyncio-protocol.rst:558 msgid "" -":meth:`data_received` can be called an arbitrary number of times during a " -"connection. However, :meth:`eof_received` is called at most once and, if " -"called, :meth:`data_received` won't be called after it." +"This method may return a false value (including ``None``), in which case the " +"transport will close itself. Conversely, if this method returns a true " +"value, the protocol used determines whether to close the transport. Since " +"the default implementation returns ``None``, it implicitly closes the " +"connection." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:439 -#: ../Doc/library/asyncio-protocol.rst:500 +#: ../Doc/library/asyncio-protocol.rst:564 +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 msgid "State machine:" msgstr "Machine à états :" -#: ../Doc/library/asyncio-protocol.rst:450 -msgid "Streaming protocols with manual receive buffer control" +#: ../Doc/library/asyncio-protocol.rst:580 +msgid "Buffered Streaming Protocols" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:452 +#: ../Doc/library/asyncio-protocol.rst:582 msgid "" -"**Important:** :class:`BufferedProtocol` has been added to asyncio in Python " -"3.7 *on a provisional basis*! Consider it as an experimental API that might " -"be changed or removed in Python 3.8." +"**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:458 +#: ../Doc/library/asyncio-protocol.rst:587 msgid "" -"Event methods, such as :meth:`AbstractEventLoop.create_server` and :meth:" -"`AbstractEventLoop.create_connection`, accept factories that return " -"protocols that implement this interface." +"Buffered Protocols can be used with any event loop method that supports " +"`Streaming Protocols`_." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:462 +#: ../Doc/library/asyncio-protocol.rst:590 msgid "" -"The idea of BufferedProtocol is that it allows to manually allocate and " -"control the receive buffer. Event loops can then use the buffer provided by " -"the protocol to avoid unnecessary data copies. This can result in " +"``BufferedProtocol`` implementations allow explicit manual allocation and " +"control of the receive buffer. Event loops can then use the buffer provided " +"by the protocol to avoid unnecessary data copies. This can result in " "noticeable performance improvement for protocols that receive big amounts of " -"data. Sophisticated protocols implementations can allocate the buffer only " -"once at creation time." +"data. Sophisticated protocol implementations can significantly reduce the " +"number of buffer allocations." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:469 +#: ../Doc/library/asyncio-protocol.rst:597 msgid "" "The following callbacks are called on :class:`BufferedProtocol` instances:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:474 +#: ../Doc/library/asyncio-protocol.rst:602 msgid "Called to allocate a new receive buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:476 +#: ../Doc/library/asyncio-protocol.rst:604 msgid "" -"*sizehint* is a recommended minimal size for the returned buffer. It is " -"acceptable to return smaller or bigger buffers than what *sizehint* " +"*sizehint* is the recommended minimum size for the returned buffer. It is " +"acceptable to return smaller or larger buffers than what *sizehint* " "suggests. When set to -1, the buffer size can be arbitrary. It is an error " -"to return a zero-sized buffer." +"to return a buffer with a zero size." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:481 +#: ../Doc/library/asyncio-protocol.rst:609 msgid "" -"Must return an object that implements the :ref:`buffer protocol " -"`." +"``get_buffer()`` must return an object implementing the :ref:`buffer " +"protocol `." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:486 +#: ../Doc/library/asyncio-protocol.rst:614 msgid "Called when the buffer was updated with the received data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:488 +#: ../Doc/library/asyncio-protocol.rst:616 msgid "*nbytes* is the total number of bytes that were written to the buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:492 -msgid "See the documentation of the :meth:`Protocol.eof_received` method." +#: ../Doc/library/asyncio-protocol.rst:620 +msgid "" +"See the documentation of the :meth:`protocol.eof_received() ` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:495 +#: ../Doc/library/asyncio-protocol.rst:624 msgid "" -":meth:`get_buffer` can be called an arbitrary number of times during a " -"connection. However, :meth:`eof_received` is called at most once and, if " -"called, :meth:`get_buffer` and :meth:`buffer_updated` won't be called after " -"it." +":meth:`~BufferedProtocol.get_buffer` can be called an arbitrary number of " +"times during a connection. However, :meth:`protocol.eof_received() " +"` is called at most once and, if called, :meth:" +"`~BufferedProtocol.get_buffer` and :meth:`~BufferedProtocol.buffer_updated` " +"won't be called after it." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:513 -msgid "Datagram protocols" -msgstr "Protocoles de datagrammes" +#: ../Doc/library/asyncio-protocol.rst:643 +msgid "Datagram Protocols" +msgstr "Protocoles non-connectés" -#: ../Doc/library/asyncio-protocol.rst:515 +#: ../Doc/library/asyncio-protocol.rst:645 msgid "" -"The following callbacks are called on :class:`DatagramProtocol` instances." +"Datagram Protocol instances should be constructed by protocol factories " +"passed to the :meth:`loop.create_datagram_endpoint` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:519 +#: ../Doc/library/asyncio-protocol.rst:650 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:525 +#: ../Doc/library/asyncio-protocol.rst:656 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:528 +#: ../Doc/library/asyncio-protocol.rst:659 msgid "" "This method is called in rare conditions, when the transport (e.g. UDP) " -"detects that a datagram couldn't be delivered to its recipient. In many " +"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:535 -msgid "Flow control callbacks" +#: ../Doc/library/asyncio-protocol.rst:666 +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:542 -msgid "Called when the transport's buffer goes over the high-water mark." +#: ../Doc/library/asyncio-protocol.rst:670 +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 " +"raised; if it is raised, it will be reported to :meth:`DatagramProtocol." +"error_received` but otherwise ignored." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:546 -msgid "Called when the transport's buffer drains below the low-water mark." -msgstr "" +#: ../Doc/library/asyncio-protocol.rst:679 +msgid "Subprocess Protocols" +msgstr "Protocoles liés aux sous-processus" -#: ../Doc/library/asyncio-protocol.rst:549 +#: ../Doc/library/asyncio-protocol.rst:681 msgid "" -":meth:`pause_writing` and :meth:`resume_writing` calls are paired -- :meth:" -"`pause_writing` is called once when the buffer goes strictly over the high-" -"water mark (even if subsequent writes increases the buffer size even more), " -"and eventually :meth:`resume_writing` is called once when the buffer size " -"reaches the low-water mark." +"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:556 +#: ../Doc/library/asyncio-protocol.rst:687 msgid "" -"If the buffer size equals the high-water mark, :meth:`pause_writing` is not " -"called -- it must go strictly over. Conversely, :meth:`resume_writing` is " -"called when the buffer size is equal or lower than the low-water mark. " -"These end conditions are important to ensure that things go as expected when " -"either mark is zero." +"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:564 -msgid "" -"On BSD systems (OS X, FreeBSD, etc.) flow control is not supported for :" -"class:`DatagramProtocol`, because send failures caused by writing too many " -"packets cannot be detected easily. 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 raised; if it is raised, it will be " -"reported to :meth:`DatagramProtocol.error_received` but otherwise ignored." +#: ../Doc/library/asyncio-protocol.rst:690 +msgid "*fd* is the integer file descriptor of the pipe." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:574 -msgid "Coroutines and protocols" -msgstr "Coroutines et protocoles" +#: ../Doc/library/asyncio-protocol.rst:692 +msgid "*data* is a non-empty bytes object containing the received data." +msgstr "" -#: ../Doc/library/asyncio-protocol.rst:576 +#: ../Doc/library/asyncio-protocol.rst:696 msgid "" -"Coroutines can be scheduled in a protocol method using :func:" -"`ensure_future`, but there is no guarantee made about the execution order. " -"Protocols are not aware of coroutines created in protocol methods and so " -"will not wait for them." +"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:580 -msgid "" -"To have a reliable execution order, use :ref:`stream objects ` in a coroutine with ``await``. For example, the :meth:" -"`StreamWriter.drain` coroutine can be used to wait until the write buffer is " -"flushed." +#: ../Doc/library/asyncio-protocol.rst:699 +msgid "*fd* is the integer file descriptor that was closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:587 -msgid "Protocol examples" -msgstr "Exemples de protocole" +#: ../Doc/library/asyncio-protocol.rst:703 +msgid "Called when the child process has exited." +msgstr "Appelé lorsqu'un processus enfant se termine." -#: ../Doc/library/asyncio-protocol.rst:592 -msgid "TCP echo client protocol" -msgstr "Protocole \"*echo client*\" en TCP" +#: ../Doc/library/asyncio-protocol.rst:707 +msgid "Examples" +msgstr "Exemples" -#: ../Doc/library/asyncio-protocol.rst:594 -msgid "" -"TCP echo client using the :meth:`AbstractEventLoop.create_connection` " -"method, send data and wait until the connection is closed::" -msgstr "" +#: ../Doc/library/asyncio-protocol.rst:712 +msgid "TCP Echo Server" +msgstr "Serveur de *ping* en TCP" -#: ../Doc/library/asyncio-protocol.rst:624 +#: ../Doc/library/asyncio-protocol.rst:714 msgid "" -"The event loop is running twice. The :meth:`~AbstractEventLoop." -"run_until_complete` method is preferred in this short example to raise an " -"exception if the server is not listening, instead of having to write a short " -"coroutine to handle the exception and stop the running loop. At :meth:" -"`~AbstractEventLoop.run_until_complete` exit, the loop is no longer running, " -"so there is no need to stop the loop in case of an error." +"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:633 +#: ../Doc/library/asyncio-protocol.rst:755 msgid "" -"The :ref:`TCP echo client using streams ` " -"example uses the :func:`asyncio.open_connection` function." +"The :ref:`TCP echo server using streams ` " +"example uses the high-level :func:`asyncio.start_server` function." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:640 -msgid "TCP echo server protocol" -msgstr "Protocole \"*echo serveur*\" en TCP" +#: ../Doc/library/asyncio-protocol.rst:761 +msgid "TCP Echo Client" +msgstr "Client de *ping* en TCP" -#: ../Doc/library/asyncio-protocol.rst:642 +#: ../Doc/library/asyncio-protocol.rst:763 msgid "" -"TCP echo server using the :meth:`AbstractEventLoop.create_server` method, " -"send back received data and close the connection::" +"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:680 +#: ../Doc/library/asyncio-protocol.rst:812 msgid "" -":meth:`Transport.close` can be called immediately after :meth:" -"`WriteTransport.write` even if data are not sent yet on the socket: both " -"methods are asynchronous. ``await`` is not needed because these transport " -"methods are not coroutines." +"The :ref:`TCP echo client using streams ` " +"example uses the high-level :func:`asyncio.open_connection` function." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:687 +#: ../Doc/library/asyncio-protocol.rst:819 +msgid "UDP Echo Server" +msgstr "Serveur de *ping* en UDP" + +#: ../Doc/library/asyncio-protocol.rst:821 msgid "" -"The :ref:`TCP echo server using streams ` " -"example uses the :func:`asyncio.start_server` function." +"A UDP echo server, using the :meth:`loop.create_datagram_endpoint` method, " +"sends back received data::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:694 -msgid "UDP echo client protocol" -msgstr "Protocole \"*echo client*\" en UDP" +#: ../Doc/library/asyncio-protocol.rst:863 +msgid "UDP Echo Client" +msgstr "Client de *ping* en UDP" -#: ../Doc/library/asyncio-protocol.rst:696 +#: ../Doc/library/asyncio-protocol.rst:865 msgid "" -"UDP echo client using the :meth:`AbstractEventLoop.create_datagram_endpoint` " -"method, send data and close the transport when we received the answer::" +"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:740 -msgid "UDP echo server protocol" -msgstr "Protocole \"*echo serveur*\" en UDP" +#: ../Doc/library/asyncio-protocol.rst:919 +msgid "Connecting Existing Sockets" +msgstr "" -#: ../Doc/library/asyncio-protocol.rst:742 +#: ../Doc/library/asyncio-protocol.rst:921 msgid "" -"UDP echo server using the :meth:`AbstractEventLoop.create_datagram_endpoint` " -"method, send back received data::" +"Wait until a socket receives data using the :meth:`loop.create_connection` " +"method with a protocol::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:776 -msgid "Register an open socket to wait for data using a protocol" +#: ../Doc/library/asyncio-protocol.rst:974 +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:778 +#: ../Doc/library/asyncio-protocol.rst:978 msgid "" -"Wait until a socket receives data using the :meth:`AbstractEventLoop." -"create_connection` method with a protocol, and then close the event loop ::" +"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:985 +msgid "loop.subprocess_exec() and SubprocessProtocol" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:822 +#: ../Doc/library/asyncio-protocol.rst:987 msgid "" -"The :ref:`watch a file descriptor for read events ` example uses the low-level :meth:`AbstractEventLoop.add_reader` " -"method to register the file descriptor of a socket." +"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:827 +#: ../Doc/library/asyncio-protocol.rst:990 +msgid "The subprocess is created by th :meth:`loop.subprocess_exec` method::" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:1040 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." +"See also the :ref:`same example ` " +"written using high-level APIs." msgstr "" + +#~ msgid "Transports and protocols (callback based API)" +#~ msgstr "Transports et protocoles (APi basée sur des fonctions de rappel)" + +#~ msgid "``'ssl_object'`` info was added to SSL sockets." +#~ msgstr "``'ssl_object'`` est ajouté aux *sockets* SSL." + +#~ msgid "Interface for read-only transports." +#~ msgstr "Interface pour les transports en lecture seule." + +#~ msgid "Interface for write-only transports." +#~ msgstr "Interface pour les transports en écriture seule." + +#~ msgid "Protocol examples" +#~ msgstr "Exemples de protocole" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index 851842740..778176e72 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-10-13 17:37+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -14,36 +14,25 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-queue.rst:4 +#: ../Doc/library/asyncio-queue.rst:7 msgid "Queues" msgstr "" -#: ../Doc/library/asyncio-queue.rst:6 -msgid "**Source code:** :source:`Lib/asyncio/queues.py`" +#: ../Doc/library/asyncio-queue.rst:9 +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:8 -msgid "Queues:" +#: ../Doc/library/asyncio-queue.rst:13 +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:10 -msgid ":class:`Queue`" -msgstr ":class:`Queue`" - -#: ../Doc/library/asyncio-queue.rst:11 -msgid ":class:`PriorityQueue`" -msgstr ":class:`PriorityQueue`" - -#: ../Doc/library/asyncio-queue.rst:12 -msgid ":class:`LifoQueue`" -msgstr ":class:`LifoQueue`" - -#: ../Doc/library/asyncio-queue.rst:14 -msgid "" -"asyncio queue API was designed to be close to classes of the :mod:`queue` " -"module (:class:`~queue.Queue`, :class:`~queue.PriorityQueue`, :class:`~queue." -"LifoQueue`), but it has no *timeout* parameter. The :func:`asyncio.wait_for` " -"function can be used to cancel a task after a timeout." +#: ../Doc/library/asyncio-queue.rst:17 +msgid "See also the `Examples`_ section below." msgstr "" #: ../Doc/library/asyncio-queue.rst:20 @@ -51,169 +40,179 @@ msgid "Queue" msgstr "" #: ../Doc/library/asyncio-queue.rst:24 -msgid "A queue, useful for coordinating producer and consumer coroutines." +msgid "A first in, first out (FIFO) queue." msgstr "" #: ../Doc/library/asyncio-queue.rst:26 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()`` will block when " -"the queue reaches *maxsize*, until an item is removed by :meth:`get`." +"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:30 +#: ../Doc/library/asyncio-queue.rst:31 msgid "" -"Unlike the standard library :mod:`queue`, you can reliably know this Queue's " -"size with :meth:`qsize`, since your single-threaded asyncio application " -"won't be interrupted between calling :meth:`qsize` and doing an operation on " -"the Queue." +"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:35 msgid "This class is :ref:`not thread safe `." msgstr "" -#: ../Doc/library/asyncio-queue.rst:37 -msgid "New :meth:`join` and :meth:`task_done` methods." -msgstr "Les nouvelles méthodes :meth:`join` et :meth:`task_done`." +#: ../Doc/library/asyncio-queue.rst:39 +msgid "Number of items allowed in the queue." +msgstr "Nombre d'éléments autorisés dans la queue." -#: ../Doc/library/asyncio-queue.rst:42 +#: ../Doc/library/asyncio-queue.rst:43 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." -msgstr "" +msgstr "Renvoie ``True`` si la queue est vide, ``False`` sinon." -#: ../Doc/library/asyncio-queue.rst:46 +#: ../Doc/library/asyncio-queue.rst:47 msgid "Return ``True`` if there are :attr:`maxsize` items in the queue." msgstr "" -#: ../Doc/library/asyncio-queue.rst:50 +#: ../Doc/library/asyncio-queue.rst:49 msgid "" -"If the Queue was initialized with ``maxsize=0`` (the default), then :meth:" -"`full()` is never ``True``." +"If the queue was initialized with ``maxsize=0`` (the default), then :meth:" +"`full()` never returns ``True``." msgstr "" -#: ../Doc/library/asyncio-queue.rst:55 +#: ../Doc/library/asyncio-queue.rst:54 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:58 ../Doc/library/asyncio-queue.rst:81 -#: ../Doc/library/asyncio-queue.rst:90 -msgid "This method is a :ref:`coroutine `." -msgstr "Cette méthode est une :ref:`coroutine `." - -#: ../Doc/library/asyncio-queue.rst:62 -msgid "The :meth:`empty` method." -msgstr "La méthode :meth:`empty`." - -#: ../Doc/library/asyncio-queue.rst:66 -msgid "Remove and return an item from the queue." -msgstr "Supprime et donne un élément de la queue." - -#: ../Doc/library/asyncio-queue.rst:68 +#: ../Doc/library/asyncio-queue.rst:59 msgid "" "Return an item if one is immediately available, else raise :exc:`QueueEmpty`." msgstr "" -#: ../Doc/library/asyncio-queue.rst:73 -msgid "Block until all items in the queue have been gotten and processed." +#: ../Doc/library/asyncio-queue.rst:64 +msgid "Block until all items in the queue have been received and processed." msgstr "" -#: ../Doc/library/asyncio-queue.rst:75 +#: ../Doc/library/asyncio-queue.rst:66 msgid "" "The count of unfinished tasks goes up whenever an item is added to the " -"queue. The count goes down whenever a consumer thread calls :meth:" +"queue. The count goes down whenever a consumer coroutine calls :meth:" "`task_done` to indicate that the item was retrieved and all work on it is " "complete. When the count of unfinished tasks drops to zero, :meth:`join` " "unblocks." msgstr "" -#: ../Doc/library/asyncio-queue.rst:87 +#: ../Doc/library/asyncio-queue.rst:74 msgid "" "Put an item into the queue. If the queue is full, wait until a free slot is " -"available before adding item." +"available before adding the item." msgstr "" -#: ../Doc/library/asyncio-queue.rst:94 -msgid "The :meth:`full` method." -msgstr "La méthode :meth:`full`." - -#: ../Doc/library/asyncio-queue.rst:98 +#: ../Doc/library/asyncio-queue.rst:79 msgid "Put an item into the queue without blocking." msgstr "Ajoute un élément dans la queue sans bloquer." -#: ../Doc/library/asyncio-queue.rst:100 +#: ../Doc/library/asyncio-queue.rst:81 msgid "If no free slot is immediately available, raise :exc:`QueueFull`." msgstr "" -#: ../Doc/library/asyncio-queue.rst:104 -msgid "Number of items in the queue." -msgstr "Nombre d'éléments dans la queue." +#: ../Doc/library/asyncio-queue.rst:85 +msgid "Return the number of items in the queue." +msgstr "Renvoie le nombre d'éléments dans la queue." -#: ../Doc/library/asyncio-queue.rst:108 +#: ../Doc/library/asyncio-queue.rst:89 msgid "Indicate that a formerly enqueued task is complete." msgstr "" -#: ../Doc/library/asyncio-queue.rst:110 +#: ../Doc/library/asyncio-queue.rst:91 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:114 +#: ../Doc/library/asyncio-queue.rst:95 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 "" -#: ../Doc/library/asyncio-queue.rst:118 +#: ../Doc/library/asyncio-queue.rst:100 msgid "" "Raises :exc:`ValueError` if called more times than there were items placed " "in the queue." msgstr "" -#: ../Doc/library/asyncio-queue.rst:125 -msgid "Number of items allowed in the queue." -msgstr "Nombre d'éléments autorisés dans la queue." - -#: ../Doc/library/asyncio-queue.rst:129 -msgid "PriorityQueue" -msgstr "PriorityQueue" +#: ../Doc/library/asyncio-queue.rst:105 +msgid "Priority Queue" +msgstr "File de priorité" -#: ../Doc/library/asyncio-queue.rst:133 +#: ../Doc/library/asyncio-queue.rst:109 msgid "" -"A subclass of :class:`Queue`; retrieves entries in priority order (lowest " +"A variant of :class:`Queue`; retrieves entries in priority order (lowest " "first)." msgstr "" -#: ../Doc/library/asyncio-queue.rst:136 -msgid "Entries are typically tuples of the form: (priority number, data)." +#: ../Doc/library/asyncio-queue.rst:112 +msgid "Entries are typically tuples of the form ``(priority_number, data)``." msgstr "" -#: ../Doc/library/asyncio-queue.rst:140 -msgid "LifoQueue" +#: ../Doc/library/asyncio-queue.rst:117 +msgid "LIFO Queue" msgstr "" -#: ../Doc/library/asyncio-queue.rst:144 +#: ../Doc/library/asyncio-queue.rst:121 msgid "" -"A subclass of :class:`Queue` that retrieves most recently added entries " -"first." +"A variant of :class:`Queue` that retrieves most recently added entries first " +"(last in, first out)." msgstr "" -#: ../Doc/library/asyncio-queue.rst:149 +#: ../Doc/library/asyncio-queue.rst:126 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/asyncio-queue.rst:153 +#: ../Doc/library/asyncio-queue.rst:130 msgid "" -"Exception raised when the :meth:`~Queue.get_nowait` method is called on a :" -"class:`Queue` object which is empty." +"This exception is raised when the :meth:`~Queue.get_nowait` method is called " +"on an empty queue." msgstr "" -#: ../Doc/library/asyncio-queue.rst:159 +#: ../Doc/library/asyncio-queue.rst:136 +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:141 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-queue.rst:145 msgid "" -"Exception raised when the :meth:`~Queue.put_nowait` method is called on a :" -"class:`Queue` object which is full." +"Queues can be used to distribute workload between several concurrent tasks::" msgstr "" + +#~ msgid ":class:`Queue`" +#~ msgstr ":class:`Queue`" + +#~ msgid ":class:`PriorityQueue`" +#~ msgstr ":class:`PriorityQueue`" + +#~ msgid ":class:`LifoQueue`" +#~ msgstr ":class:`LifoQueue`" + +#~ msgid "New :meth:`join` and :meth:`task_done` methods." +#~ msgstr "Les nouvelles méthodes :meth:`join` et :meth:`task_done`." + +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." + +#~ msgid "The :meth:`empty` method." +#~ msgstr "La méthode :meth:`empty`." + +#~ msgid "Remove and return an item from the queue." +#~ msgstr "Supprime et donne un élément de la queue." + +#~ msgid "The :meth:`full` method." +#~ msgstr "La méthode :meth:`full`." diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index 120a61d75..898fa86a8 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-07-27 23:20+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-29 18:28+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -15,453 +15,408 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../Doc/library/asyncio-stream.rst:7 -msgid "Streams (coroutine based API)" -msgstr "" +msgid "Streams" +msgstr "Streams" #: ../Doc/library/asyncio-stream.rst:9 -msgid "**Source code:** :source:`Lib/asyncio/streams.py`" +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 +msgid "Here is an example of a TCP echo client written using asyncio streams::" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:37 +msgid "See also the `Examples`_ section below." msgstr "" -#: ../Doc/library/asyncio-stream.rst:12 -msgid "Stream functions" +#: ../Doc/library/asyncio-stream.rst:41 +msgid "Stream Functions" msgstr "" -#: ../Doc/library/asyncio-stream.rst:16 +#: ../Doc/library/asyncio-stream.rst:42 msgid "" -"The top-level functions in this module are meant as convenience wrappers " -"only; there's really nothing special there, and if they don't do exactly " -"what you want, feel free to copy their code." +"The following top-level asyncio functions can be used to create and work " +"with streams:" msgstr "" -#: ../Doc/library/asyncio-stream.rst:23 +#: ../Doc/library/asyncio-stream.rst:51 msgid "" -"A wrapper for :meth:`~AbstractEventLoop.create_connection()` returning a " -"(reader, writer) pair." +"Establish a network connection and return a pair of ``(reader, writer)`` " +"objects." msgstr "" -#: ../Doc/library/asyncio-stream.rst:26 +#: ../Doc/library/asyncio-stream.rst:54 msgid "" -"The reader returned is a :class:`StreamReader` instance; the writer is a :" -"class:`StreamWriter` instance." +"The returned *reader* and *writer* objects are instances of :class:" +"`StreamReader` and :class:`StreamWriter` classes." msgstr "" -#: ../Doc/library/asyncio-stream.rst:29 ../Doc/library/asyncio-stream.rst:74 +#: ../Doc/library/asyncio-stream.rst:57 msgid "" -"When specified, the *loop* argument determines which event loop to use, and " -"the *limit* argument determines the buffer size limit used by the returned :" -"class:`StreamReader` instance." +"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:33 +#: ../Doc/library/asyncio-stream.rst:60 ../Doc/library/asyncio-stream.rst:93 msgid "" -"The rest of the arguments are passed directly to :meth:`AbstractEventLoop." -"create_connection`." +"*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:36 ../Doc/library/asyncio-stream.rst:63 -#: ../Doc/library/asyncio-stream.rst:81 ../Doc/library/asyncio-stream.rst:113 -msgid "This function is a :ref:`coroutine `." -msgstr "Cette fonction est une :ref:`coroutine `." +#: ../Doc/library/asyncio-stream.rst:64 +msgid "" +"The rest of the arguments are passed directly to :meth:`loop." +"create_connection`." +msgstr "" -#: ../Doc/library/asyncio-stream.rst:40 ../Doc/library/asyncio-stream.rst:87 +#: ../Doc/library/asyncio-stream.rst:69 ../Doc/library/asyncio-stream.rst:122 msgid "The *ssl_handshake_timeout* parameter." msgstr "" -#: ../Doc/library/asyncio-stream.rst:44 -msgid "" -"Start a socket server, with a callback for each client connected. The return " -"value is the same as :meth:`~AbstractEventLoop.create_server()`." +#: ../Doc/library/asyncio-stream.rst:79 +msgid "Start a socket server." msgstr "" -#: ../Doc/library/asyncio-stream.rst:47 ../Doc/library/asyncio-stream.rst:97 +#: ../Doc/library/asyncio-stream.rst:81 msgid "" "The *client_connected_cb* callback is called whenever a new client " -"connection is established. It receives a reader/writer pair as two " -"arguments, the first is a :class:`StreamReader` instance, and the second is " -"a :class:`StreamWriter` instance." +"connection is established. It receives a ``(reader, writer)`` pair as two " +"arguments, instances of the :class:`StreamReader` and :class:`StreamWriter` " +"classes." msgstr "" -#: ../Doc/library/asyncio-stream.rst:52 ../Doc/library/asyncio-stream.rst:102 +#: ../Doc/library/asyncio-stream.rst:86 msgid "" -"*client_connected_cb* accepts a plain callable or a :ref:`coroutine function " +"*client_connected_cb* can be a plain callable or a :ref:`coroutine function " "`; if it is a coroutine function, it will be automatically " -"converted into a :class:`Task`." +"scheduled as a :class:`Task`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:56 ../Doc/library/asyncio-stream.rst:106 +#: ../Doc/library/asyncio-stream.rst:90 msgid "" -"When specified, the *loop* argument determines which event loop to use, and " -"the *limit* argument determines the buffer size limit used by the :class:" -"`StreamReader` instance passed to *client_connected_cb*." +"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:60 +#: ../Doc/library/asyncio-stream.rst:97 msgid "" -"The rest of the arguments are passed directly to :meth:`~AbstractEventLoop." -"create_server()`." +"The rest of the arguments are passed directly to :meth:`loop.create_server`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:67 ../Doc/library/asyncio-stream.rst:119 +#: ../Doc/library/asyncio-stream.rst:102 ../Doc/library/asyncio-stream.rst:144 msgid "The *ssl_handshake_timeout* and *start_serving* parameters." msgstr "" -#: ../Doc/library/asyncio-stream.rst:71 -msgid "" -"A wrapper for :meth:`~AbstractEventLoop.create_unix_connection()` returning " -"a (reader, writer) pair." +#: ../Doc/library/asyncio-stream.rst:106 +msgid "Unix Sockets" msgstr "" -#: ../Doc/library/asyncio-stream.rst:78 +#: ../Doc/library/asyncio-stream.rst:111 msgid "" -"The rest of the arguments are passed directly to :meth:`~AbstractEventLoop." -"create_unix_connection()`." +"Establish a Unix socket connection and return a pair of ``(reader, writer)``." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:114 +msgid "Similar to :func:`open_connection` but operates on Unix sockets." msgstr "" -#: ../Doc/library/asyncio-stream.rst:83 ../Doc/library/asyncio-stream.rst:115 -msgid "Availability: UNIX." -msgstr "Disponible sur : UNIX." +#: ../Doc/library/asyncio-stream.rst:116 +msgid "See also the documentation of :meth:`loop.create_unix_connection`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:119 ../Doc/library/asyncio-stream.rst:141 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." -#: ../Doc/library/asyncio-stream.rst:91 +#: ../Doc/library/asyncio-stream.rst:126 msgid "The *path* parameter can now be a :term:`path-like object`" msgstr "" -#: ../Doc/library/asyncio-stream.rst:95 -msgid "" -"Start a UNIX Domain Socket server, with a callback for each client connected." +#: ../Doc/library/asyncio-stream.rst:134 +msgid "Start a Unix socket server." msgstr "" -#: ../Doc/library/asyncio-stream.rst:110 -msgid "" -"The rest of the arguments are passed directly to :meth:`~AbstractEventLoop." -"create_unix_server()`." +#: ../Doc/library/asyncio-stream.rst:136 +msgid "Similar to :func:`start_server` but works with Unix sockets." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:138 +msgid "See also the documentation of :meth:`loop.create_unix_server`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:123 +#: ../Doc/library/asyncio-stream.rst:148 msgid "The *path* parameter can now be a :term:`path-like object`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:127 +#: ../Doc/library/asyncio-stream.rst:155 msgid "StreamReader" msgstr "StreamReader" -#: ../Doc/library/asyncio-stream.rst:131 ../Doc/library/asyncio-stream.rst:229 -msgid "This class is :ref:`not thread safe `." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:133 +#: ../Doc/library/asyncio-stream.rst:159 msgid "" -"The *limit* argument's default value is set to _DEFAULT_LIMIT which is 2**16 " -"(64 KiB)" +"Represents a reader object that provides APIs to read data from the IO " +"stream." msgstr "" -#: ../Doc/library/asyncio-stream.rst:137 -msgid "Get the exception." -msgstr "Récupère l'exception." - -#: ../Doc/library/asyncio-stream.rst:141 -msgid "Acknowledge the EOF." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:145 +#: ../Doc/library/asyncio-stream.rst:162 msgid "" -"Feed *data* bytes in the internal buffer. Any operations waiting for the " -"data will be resumed." +"It is not recommended to instantiate *StreamReader* objects directly; use :" +"func:`open_connection` and :func:`start_server` instead." msgstr "" -#: ../Doc/library/asyncio-stream.rst:150 -msgid "Set the exception." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:154 -msgid "Set the transport." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:158 +#: ../Doc/library/asyncio-stream.rst:168 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:161 ../Doc/library/asyncio-stream.rst:173 +#: ../Doc/library/asyncio-stream.rst:171 msgid "" -"If the EOF was received and the internal buffer is empty, return an empty " +"If EOF was received and the internal buffer is empty, return an empty " "``bytes`` object." msgstr "" -#: ../Doc/library/asyncio-stream.rst:164 ../Doc/library/asyncio-stream.rst:176 -#: ../Doc/library/asyncio-stream.rst:185 ../Doc/library/asyncio-stream.rst:278 -msgid "This method is a :ref:`coroutine `." -msgstr "Cette méthode est une :ref:`coroutine `." - -#: ../Doc/library/asyncio-stream.rst:168 +#: ../Doc/library/asyncio-stream.rst:176 msgid "" "Read one line, where \"line\" is a sequence of bytes ending with ``\\n``." msgstr "" -#: ../Doc/library/asyncio-stream.rst:170 +#: ../Doc/library/asyncio-stream.rst:179 msgid "" -"If EOF is received, and ``\\n`` was not found, the method will return the " -"partial read bytes." +"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:182 msgid "" -"Read exactly *n* bytes. Raise an :exc:`IncompleteReadError` if the end of " -"the stream is reached before *n* can be read, the :attr:`IncompleteReadError." -"partial` attribute of the exception contains the partial read bytes." +"If EOF is received and the internal buffer is empty, return an empty " +"``bytes`` object." msgstr "" -#: ../Doc/library/asyncio-stream.rst:189 -msgid "Read data from the stream until ``separator`` is found." +#: ../Doc/library/asyncio-stream.rst:187 +msgid "Read exactly *n* bytes." msgstr "" -#: ../Doc/library/asyncio-stream.rst:191 +#: ../Doc/library/asyncio-stream.rst:189 msgid "" -"On success, the data and separator will be removed from the internal buffer " -"(consumed). Returned data will include the separator at the end." +"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:195 +msgid "Read data from the stream until *separator* is found." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:197 msgid "" -"Configured stream limit is used to check result. Limit sets the maximal " -"length of data that can be returned, not counting the separator." +"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:201 msgid "" -"If an EOF occurs and the complete separator is still not found, an :exc:" -"`IncompleteReadError` exception will be raised, and the internal buffer will " -"be reset. The :attr:`IncompleteReadError.partial` attribute may contain the " -"separator partially." +"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:205 msgid "" -"If the data cannot be read because of over limit, a :exc:`LimitOverrunError` " -"exception will be raised, and the data will be left in the internal buffer, " -"so it can be read again." +"If EOF is reached before the complete separator is found, an :exc:" +"`IncompleteReadError` exception is raised, and the internal buffer is " +"reset. The :attr:`IncompleteReadError.partial` attribute may contain a " +"portion of the separator." msgstr "" -#: ../Doc/library/asyncio-stream.rst:213 +#: ../Doc/library/asyncio-stream.rst:214 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:219 msgid "StreamWriter" msgstr "StreamWriter" -#: ../Doc/library/asyncio-stream.rst:221 -msgid "Wraps a Transport." -msgstr "" - #: ../Doc/library/asyncio-stream.rst:223 msgid "" -"This exposes :meth:`write`, :meth:`writelines`, :meth:`can_write_eof()`, :" -"meth:`write_eof`, :meth:`get_extra_info` and :meth:`close`. It adds :meth:" -"`drain` which returns an optional :class:`Future` on which you can wait for " -"flow control. It also adds a transport attribute which references the :" -"class:`Transport` directly." +"Represents a writer object that provides APIs to write data to the IO stream." msgstr "" -#: ../Doc/library/asyncio-stream.rst:233 -msgid "Transport." -msgstr "Transport." - -#: ../Doc/library/asyncio-stream.rst:237 +#: ../Doc/library/asyncio-stream.rst:226 msgid "" -"Return :const:`True` if the transport supports :meth:`write_eof`, :const:" -"`False` if not. See :meth:`WriteTransport.can_write_eof`." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:242 -msgid "Close the transport: see :meth:`BaseTransport.close`." +"It is not recommended to instantiate *StreamWriter* objects directly; use :" +"func:`open_connection` and :func:`start_server` instead." msgstr "" -#: ../Doc/library/asyncio-stream.rst:246 -msgid "Return ``True`` if the writer is closing or is closed." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:252 -msgid "Wait until the writer is closed." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:254 +#: ../Doc/library/asyncio-stream.rst:232 msgid "" -"Should be called after :meth:`close` to wait until the underlying " -"connection (and the associated transport/protocol pair) is closed." +"Return *True* if the underlying transport supports the :meth:`write_eof` " +"method, *False* otherwise." msgstr "" -#: ../Doc/library/asyncio-stream.rst:261 +#: ../Doc/library/asyncio-stream.rst:237 msgid "" -"Let the write buffer of the underlying transport a chance to be flushed." +"Close the write end of the stream after the buffered write data is flushed." msgstr "" -#: ../Doc/library/asyncio-stream.rst:263 -msgid "The intended use is to write::" +#: ../Doc/library/asyncio-stream.rst:242 +msgid "Return the underlying asyncio transport." msgstr "" -#: ../Doc/library/asyncio-stream.rst:268 +#: ../Doc/library/asyncio-stream.rst:246 msgid "" -"When the size of the transport buffer reaches the high-water limit (the " -"protocol is paused), block until the size of the buffer is drained down to " -"the low-water limit and the protocol is resumed. When there is nothing to " -"wait for, the yield-from continues immediately." +"Access optional transport information; see :meth:`BaseTransport." +"get_extra_info` for details." msgstr "" -#: ../Doc/library/asyncio-stream.rst:273 -msgid "" -"Yielding from :meth:`drain` gives the opportunity for the loop to schedule " -"the write operation and flush the buffer. It should especially be used when " -"a possibly large amount of data is written to the transport, and the " -"coroutine does not yield-from between calls to :meth:`write`." +#: ../Doc/library/asyncio-stream.rst:251 +msgid "Write *data* to the stream." msgstr "" -#: ../Doc/library/asyncio-stream.rst:282 +#: ../Doc/library/asyncio-stream.rst:253 msgid "" -"Return optional transport information: see :meth:`BaseTransport." -"get_extra_info`." +"This method is not subject to flow control. Calls to ``write()`` should be " +"followed by :meth:`drain`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:287 -msgid "" -"Write some *data* bytes to the transport: see :meth:`WriteTransport.write`." +#: ../Doc/library/asyncio-stream.rst:258 +msgid "Write a list (or any iterable) of bytes to the stream." msgstr "" -#: ../Doc/library/asyncio-stream.rst:292 +#: ../Doc/library/asyncio-stream.rst:260 msgid "" -"Write a list (or any iterable) of data bytes to the transport: see :meth:" -"`WriteTransport.writelines`." +"This method is not subject to flow control. Calls to ``writelines()`` should " +"be followed by :meth:`drain`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:297 -msgid "" -"Close the write end of the transport after flushing buffered data: see :meth:" -"`WriteTransport.write_eof`." +#: ../Doc/library/asyncio-stream.rst:265 +msgid "Wait until it is appropriate to resume writing to the stream. Example::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:302 -msgid "StreamReaderProtocol" -msgstr "StreamReaderProtocol" - -#: ../Doc/library/asyncio-stream.rst:306 +#: ../Doc/library/asyncio-stream.rst:271 msgid "" -"Trivial helper class to adapt between :class:`Protocol` and :class:" -"`StreamReader`. Subclass of :class:`Protocol`." +"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()* " +"blocks until the size of the buffer is drained down to the low watermark and " +"writing can be resumed. When there is nothing to wait for, the :meth:" +"`drain` returns immediately." msgstr "" -#: ../Doc/library/asyncio-stream.rst:309 -msgid "" -"*stream_reader* is a :class:`StreamReader` instance, *client_connected_cb* " -"is an optional function called with (stream_reader, stream_writer) when a " -"connection is made, *loop* is the event loop instance to use." +#: ../Doc/library/asyncio-stream.rst:280 +msgid "Close the stream." msgstr "" -#: ../Doc/library/asyncio-stream.rst:313 +#: ../Doc/library/asyncio-stream.rst:284 msgid "" -"(This is a helper class instead of making :class:`StreamReader` itself a :" -"class:`Protocol` subclass, because the :class:`StreamReader` has other " -"potential uses, and to prevent the user of the :class:`StreamReader` from " -"accidentally calling inappropriate methods of the protocol.)" +"Return ``True`` if the stream is closed or in the process of being closed." msgstr "" -#: ../Doc/library/asyncio-stream.rst:320 -msgid "IncompleteReadError" -msgstr "IncompleteReadError" - -#: ../Doc/library/asyncio-stream.rst:324 -msgid "Incomplete read error, subclass of :exc:`EOFError`." +#: ../Doc/library/asyncio-stream.rst:291 +msgid "Wait until the stream is closed." msgstr "" -#: ../Doc/library/asyncio-stream.rst:328 -msgid "Total number of expected bytes (:class:`int`)." -msgstr "Nombre total d'octets attendus (:class:`int`)." - -#: ../Doc/library/asyncio-stream.rst:332 +#: ../Doc/library/asyncio-stream.rst:293 msgid "" -"Read bytes string before the end of stream was reached (:class:`bytes`)." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:336 -msgid "LimitOverrunError" +"Should be called after :meth:`close` to wait until the underlying connection " +"is closed." msgstr "" -#: ../Doc/library/asyncio-stream.rst:340 -msgid "Reached the buffer limit while looking for a separator." -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:344 -msgid "Total number of to be consumed bytes." -msgstr "" +#: ../Doc/library/asyncio-stream.rst:300 +msgid "Examples" +msgstr "Exemples" -#: ../Doc/library/asyncio-stream.rst:348 -msgid "Stream examples" -msgstr "" - -#: ../Doc/library/asyncio-stream.rst:353 +#: ../Doc/library/asyncio-stream.rst:305 msgid "TCP echo client using streams" msgstr "" -#: ../Doc/library/asyncio-stream.rst:355 +#: ../Doc/library/asyncio-stream.rst:307 msgid "TCP echo client using the :func:`asyncio.open_connection` function::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:379 +#: ../Doc/library/asyncio-stream.rst:329 msgid "" -"The :ref:`TCP echo client protocol ` " -"example uses the :meth:`AbstractEventLoop.create_connection` method." +"The :ref:`TCP echo client protocol " +"` example uses the low-level :meth:" +"`loop.create_connection` method." msgstr "" -#: ../Doc/library/asyncio-stream.rst:386 +#: ../Doc/library/asyncio-stream.rst:336 msgid "TCP echo server using streams" msgstr "" -#: ../Doc/library/asyncio-stream.rst:388 +#: ../Doc/library/asyncio-stream.rst:338 msgid "TCP echo server using the :func:`asyncio.start_server` function::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:423 +#: ../Doc/library/asyncio-stream.rst:371 msgid "" -"The :ref:`TCP echo server protocol ` " -"example uses the :meth:`AbstractEventLoop.create_server` method." +"The :ref:`TCP echo server protocol " +"` example uses the :meth:`loop." +"create_server` method." msgstr "" -#: ../Doc/library/asyncio-stream.rst:428 +#: ../Doc/library/asyncio-stream.rst:376 msgid "Get HTTP headers" msgstr "Récupère les en-têtes HTTP" -#: ../Doc/library/asyncio-stream.rst:430 +#: ../Doc/library/asyncio-stream.rst:378 msgid "" "Simple example querying HTTP headers of the URL passed on the command line::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:464 +#: ../Doc/library/asyncio-stream.rst:416 msgid "Usage::" -msgstr "" +msgstr "Utilisation ::" -#: ../Doc/library/asyncio-stream.rst:468 +#: ../Doc/library/asyncio-stream.rst:420 msgid "or with HTTPS::" msgstr "ou avec HTTPS ::" -#: ../Doc/library/asyncio-stream.rst:475 +#: ../Doc/library/asyncio-stream.rst:428 msgid "Register an open socket to wait for data using streams" msgstr "" -#: ../Doc/library/asyncio-stream.rst:477 +#: ../Doc/library/asyncio-stream.rst:430 msgid "" "Coroutine waiting until a socket receives data using the :func:" "`open_connection` function::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:509 +#: ../Doc/library/asyncio-stream.rst:464 msgid "" -"The :ref:`register an open socket to wait for data using a protocol ` example uses a low-level protocol created by the :meth:" -"`AbstractEventLoop.create_connection` method." +"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:513 +#: ../Doc/library/asyncio-stream.rst:468 msgid "" -"The :ref:`watch a file descriptor for read events ` example uses the low-level :meth:`AbstractEventLoop.add_reader` " -"method to register the file descriptor of a socket." +"The :ref:`watch a file descriptor for read events " +"` example uses the low-level :meth:`loop." +"add_reader` method to watch a file descriptor." msgstr "" + +#~ msgid "This function is a :ref:`coroutine `." +#~ msgstr "Cette fonction est une :ref:`coroutine `." + +#~ msgid "Get the exception." +#~ msgstr "Récupère l'exception." + +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." + +#~ msgid "Transport." +#~ msgstr "Transport." + +#~ msgid "StreamReaderProtocol" +#~ msgstr "StreamReaderProtocol" + +#~ msgid "IncompleteReadError" +#~ msgstr "IncompleteReadError" + +#~ msgid "Total number of expected bytes (:class:`int`)." +#~ msgstr "Nombre total d'octets attendus (:class:`int`)." diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index 3e5bf44f2..a0db5bdb6 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-27 23:31+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-15 00:37+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -14,445 +14,426 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-subprocess.rst:6 -msgid "Subprocess" +#: ../Doc/library/asyncio-subprocess.rst:7 +msgid "Subprocesses" +msgstr "Sous-processus" + +#: ../Doc/library/asyncio-subprocess.rst:9 +msgid "" +"This section describes high-level async/await asyncio APIs to create and " +"manage subprocesses." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:8 -msgid "**Source code:** :source:`Lib/asyncio/subprocess.py`" +#: ../Doc/library/asyncio-subprocess.rst:14 +msgid "" +"Here's an example of how asyncio can run a shell command and obtain its " +"result::" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:11 -msgid "Windows event loop" -msgstr "Boucle d'évènements Windows" +#: ../Doc/library/asyncio-subprocess.rst:35 +msgid "will print::" +msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:13 +#: ../Doc/library/asyncio-subprocess.rst:41 msgid "" -"On Windows, the default event loop is :class:`SelectorEventLoop` which does " -"not support subprocesses. :class:`ProactorEventLoop` should be used instead. " -"Example to use it on Windows::" +"Because all asyncio subprocess functions are asynchronous and asyncio " +"provides many tools to work with such functions, it is easy to execute and " +"monitor multiple subprocesses in parallel. It is indeed trivial to modify " +"the above example to run several commands simultaneously::" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:25 -msgid "" -":ref:`Available event loops ` and :ref:`Platform " -"support `." +#: ../Doc/library/asyncio-subprocess.rst:53 +msgid "See also the `Examples`_ subsection." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:30 -msgid "Create a subprocess: high-level API using Process" -msgstr "Créer un processus fils : API de haut niveau utilisant ``Process``" +#: ../Doc/library/asyncio-subprocess.rst:57 +msgid "Creating Subprocesses" +msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:34 +#: ../Doc/library/asyncio-subprocess.rst:63 msgid "Create a subprocess." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:36 +#: ../Doc/library/asyncio-subprocess.rst:65 +#: ../Doc/library/asyncio-subprocess.rst:80 msgid "" -"The *limit* parameter sets the buffer limit passed to the :class:" -"`StreamReader`. See :meth:`AbstractEventLoop.subprocess_exec` for other " -"parameters." +"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 "" -#: ../Doc/library/asyncio-subprocess.rst:40 -#: ../Doc/library/asyncio-subprocess.rst:52 +#: ../Doc/library/asyncio-subprocess.rst:69 +#: ../Doc/library/asyncio-subprocess.rst:84 msgid "Return a :class:`~asyncio.subprocess.Process` instance." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:42 -#: ../Doc/library/asyncio-subprocess.rst:61 -msgid "This function is a :ref:`coroutine `." -msgstr "Cette fonction est une :ref:`coroutine `." +#: ../Doc/library/asyncio-subprocess.rst:71 +msgid "" +"See the documentation of :meth:`loop.subprocess_exec` for other parameters." +msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:46 -msgid "Run the shell command *cmd*." -msgstr "Exécute la commande *shell* *cmd*." +#: ../Doc/library/asyncio-subprocess.rst:78 +msgid "Run the *cmd* shell command." +msgstr "Exécute la commande *cmd* dans un *shell*." -#: ../Doc/library/asyncio-subprocess.rst:48 +#: ../Doc/library/asyncio-subprocess.rst:86 msgid "" -"The *limit* parameter sets the buffer limit passed to the :class:" -"`StreamReader`. See :meth:`AbstractEventLoop.subprocess_shell` for other " -"parameters." +"See the documentation of :meth:`loop.subprocess_shell` for other parameters." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:54 -#: ../Doc/library/asyncio-subprocess.rst:137 +#: ../Doc/library/asyncio-subprocess.rst:91 msgid "" "It is the application's responsibility to ensure that all whitespace and " -"metacharacters are quoted appropriately to avoid `shell injection `_ vulnerabilities. " -"The :func:`shlex.quote` function can be used to properly escape whitespace " -"and shell metacharacters in strings that are going to be used to construct " -"shell commands." +"special characters are quoted appropriately to avoid `shell injection " +"`_ " +"vulnerabilities. The :func:`shlex.quote` function can be used to properly " +"escape whitespace and special shell characters in strings that are going to " +"be used to construct shell commands." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:63 +#: ../Doc/library/asyncio-subprocess.rst:100 msgid "" -"Use the :meth:`AbstractEventLoop.connect_read_pipe` and :meth:" -"`AbstractEventLoop.connect_write_pipe` methods to connect pipes." +"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." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:68 -msgid "Create a subprocess: low-level API using subprocess.Popen" +#: ../Doc/library/asyncio-subprocess.rst:108 +msgid "" +"asyncio also has the following *low-level* APIs to work with subprocesses: :" +"meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop." +"connect_read_pipe`, :meth:`loop.connect_write_pipe`, as well as the :ref:" +"`Subprocess Transports ` and :ref:`Subprocess " +"Protocols `." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:70 -msgid "Run subprocesses asynchronously using the :mod:`subprocess` module." -msgstr "" +#: ../Doc/library/asyncio-subprocess.rst:116 +msgid "Constants" +msgstr "Constantes" -#: ../Doc/library/asyncio-subprocess.rst:74 -msgid "" -"Create a subprocess from one or more string arguments (character strings or " -"bytes strings encoded to the :ref:`filesystem encoding `), where the first string specifies the program to execute, and " -"the remaining strings specify the program's arguments. (Thus, together the " -"string arguments form the ``sys.argv`` value of the program, assuming it is " -"a Python script.) This is similar to the standard library :class:`subprocess." -"Popen` class called with shell=False and the list of strings passed as the " -"first argument; however, where :class:`~subprocess.Popen` takes a single " -"argument which is list of strings, :func:`subprocess_exec` takes multiple " -"string arguments." +#: ../Doc/library/asyncio-subprocess.rst:120 +msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:85 -#: ../Doc/library/asyncio-subprocess.rst:128 +#: ../Doc/library/asyncio-subprocess.rst:122 msgid "" -"The *protocol_factory* must instantiate a subclass of the :class:`asyncio." -"SubprocessProtocol` class." +"If *PIPE* is passed to *stdin* argument, the :attr:`Process.stdin ` attribute will point to a :class:`StreamWriter` " +"instance." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:88 -msgid "Other parameters:" -msgstr "Autres paramètres :" - -#: ../Doc/library/asyncio-subprocess.rst:90 +#: ../Doc/library/asyncio-subprocess.rst:126 msgid "" -"*stdin*: Either a file-like object representing the pipe to be connected to " -"the subprocess's standard input stream using :meth:`~AbstractEventLoop." -"connect_write_pipe`, or the constant :const:`subprocess.PIPE` (the default). " -"By default a new pipe will be created and connected." +"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 "" -#: ../Doc/library/asyncio-subprocess.rst:96 +#: ../Doc/library/asyncio-subprocess.rst:133 msgid "" -"*stdout*: Either a file-like object representing the pipe to be connected to " -"the subprocess's standard output stream using :meth:`~AbstractEventLoop." -"connect_read_pipe`, or the constant :const:`subprocess.PIPE` (the default). " -"By default a new pipe will be created and connected." +"Special value that can be used as the *stderr* argument and indicates that " +"standard error should be redirected into standard output." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:102 +#: ../Doc/library/asyncio-subprocess.rst:138 msgid "" -"*stderr*: Either a file-like object representing the pipe to be connected to " -"the subprocess's standard error stream using :meth:`~AbstractEventLoop." -"connect_read_pipe`, or one of the constants :const:`subprocess.PIPE` (the " -"default) or :const:`subprocess.STDOUT`. By default a new pipe will be " -"created and connected. When :const:`subprocess.STDOUT` is specified, the " -"subprocess's standard error stream will be connected to the same pipe as the " -"standard output stream." +"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 "" -#: ../Doc/library/asyncio-subprocess.rst:110 -msgid "" -"All other keyword arguments are passed to :class:`subprocess.Popen` without " -"interpretation, except for *bufsize*, *universal_newlines* and *shell*, " -"which should not be specified at all." +#: ../Doc/library/asyncio-subprocess.rst:144 +msgid "Interacting with Subprocesses" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:114 -#: ../Doc/library/asyncio-subprocess.rst:134 +#: ../Doc/library/asyncio-subprocess.rst:146 msgid "" -"Returns a pair of ``(transport, protocol)``, where *transport* is an " -"instance of :class:`BaseSubprocessTransport`." +"Both :func:`create_subprocess_exec` and :func:`create_subprocess_shell` " +"functions return instances of the *Process* class. *Process* is a high-" +"level wrapper that allows communicating with subprocesses and watching for " +"their completion." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:117 -#: ../Doc/library/asyncio-subprocess.rst:144 -#: ../Doc/library/asyncio-subprocess.rst:206 -#: ../Doc/library/asyncio-subprocess.rst:234 -msgid "This method is a :ref:`coroutine `." -msgstr "Cette méthode est une :ref:`coroutine `." - -#: ../Doc/library/asyncio-subprocess.rst:119 +#: ../Doc/library/asyncio-subprocess.rst:153 msgid "" -"See the constructor of the :class:`subprocess.Popen` class for parameters." +"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:123 +#: ../Doc/library/asyncio-subprocess.rst:157 msgid "" -"Create a subprocess from *cmd*, which is a character string or a bytes " -"string encoded to the :ref:`filesystem encoding `, " -"using the platform's \"shell\" syntax. This is similar to the standard " -"library :class:`subprocess.Popen` class called with ``shell=True``." +"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:131 +#: ../Doc/library/asyncio-subprocess.rst:161 msgid "" -"See :meth:`~AbstractEventLoop.subprocess_exec` for more details about the " -"remaining arguments." +"unlike Popen, Process instances do not have an equivalent to the :meth:" +"`~subprocess.Popen.poll` method;" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:148 +#: ../Doc/library/asyncio-subprocess.rst:164 msgid "" -"The :meth:`AbstractEventLoop.connect_read_pipe` and :meth:`AbstractEventLoop." -"connect_write_pipe` methods." +"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:153 -msgid "Constants" -msgstr "Constantes" - -#: ../Doc/library/asyncio-subprocess.rst:157 +#: ../Doc/library/asyncio-subprocess.rst:168 msgid "" -"Special value that can be used as the *stdin*, *stdout* or *stderr* argument " -"to :func:`create_subprocess_shell` and :func:`create_subprocess_exec` and " -"indicates that a pipe to the standard stream should be opened." +"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:163 -msgid "" -"Special value that can be used as the *stderr* argument to :func:" -"`create_subprocess_shell` and :func:`create_subprocess_exec` and indicates " -"that standard error should go into the same handle as standard output." +#: ../Doc/library/asyncio-subprocess.rst:172 +msgid "the *universal_newlines* parameter is not supported." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:170 -msgid "" -"Special value that can be used as the *stdin*, *stdout* or *stderr* argument " -"to :func:`create_subprocess_shell` and :func:`create_subprocess_exec` and " -"indicates that the special file :data:`os.devnull` will be used." +#: ../Doc/library/asyncio-subprocess.rst:174 +msgid "This class is :ref:`not thread safe `." msgstr "" #: ../Doc/library/asyncio-subprocess.rst:176 -msgid "Process" +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:180 -msgid "" -"A subprocess created by the :func:`create_subprocess_exec` or the :func:" -"`create_subprocess_shell` function." +#: ../Doc/library/asyncio-subprocess.rst:181 +msgid "Wait for the child process to terminate." msgstr "" #: ../Doc/library/asyncio-subprocess.rst:183 -msgid "" -"The API of the :class:`~asyncio.subprocess.Process` class was designed to be " -"close to the API of the :class:`subprocess.Popen` class, but there are some " -"differences:" +msgid "Set and return the :attr:`returncode` attribute." msgstr "" #: ../Doc/library/asyncio-subprocess.rst:187 -msgid "There is no explicit :meth:`~subprocess.Popen.poll` method" -msgstr "" - -#: ../Doc/library/asyncio-subprocess.rst:188 msgid "" -"The :meth:`~subprocess.Popen.communicate` and :meth:`~subprocess.Popen.wait` " -"methods don't take a *timeout* parameter: use the :func:`wait_for` function" +"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 "" -#: ../Doc/library/asyncio-subprocess.rst:191 -msgid "" -"The *universal_newlines* parameter is not supported (only bytes strings are " -"supported)" +#: ../Doc/library/asyncio-subprocess.rst:195 +msgid "Interact with process:" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:193 -msgid "" -"The :meth:`~asyncio.subprocess.Process.wait` method of the :class:`~asyncio." -"subprocess.Process` class is asynchronous whereas the :meth:`~subprocess." -"Popen.wait` method of the :class:`~subprocess.Popen` class is implemented as " -"a busy loop." +#: ../Doc/library/asyncio-subprocess.rst:197 +msgid "send data to *stdin* (if *input* is not ``None``);" msgstr "" #: ../Doc/library/asyncio-subprocess.rst:198 -msgid "" -"This class is :ref:`not thread safe `. See also the :" -"ref:`Subprocess and threads ` section." +msgid "read data from *stdout* and *stderr*, until EOF is reached;" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:203 -msgid "" -"Wait for child process to terminate. Set and return :attr:`returncode` " -"attribute." -msgstr "" - -#: ../Doc/library/asyncio-subprocess.rst:210 -msgid "" -"This will deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and the " -"child process generates enough output to a pipe such that it blocks waiting " -"for the OS pipe buffer to accept more data. Use the :meth:`communicate` " -"method when using pipes to avoid that." +#: ../Doc/library/asyncio-subprocess.rst:199 +msgid "wait for process to terminate." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:217 +#: ../Doc/library/asyncio-subprocess.rst:201 msgid "" -"Interact with process: Send data to stdin. Read data from stdout and " -"stderr, until end-of-file is reached. Wait for process to terminate. The " -"optional *input* argument should be data to be sent to the child process, or " -"``None``, if no data should be sent to the child. The type of *input* must " -"be bytes." +"The optional *input* argument is the data (:class:`bytes` object) that will " +"be sent to the child process." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:223 -msgid ":meth:`communicate` returns a tuple ``(stdout_data, stderr_data)``." +#: ../Doc/library/asyncio-subprocess.rst:204 +msgid "Return a tuple ``(stdout_data, stderr_data)``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:225 -msgid "" -"If a :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " -"raised when writing *input* into stdin, the exception is ignored. It occurs " -"when the process exits before all data are written into stdin." -msgstr "" - -#: ../Doc/library/asyncio-subprocess.rst:229 +#: ../Doc/library/asyncio-subprocess.rst:206 msgid "" -"Note that if you want to send data to the process's stdin, you need to " -"create the Process object with ``stdin=PIPE``. Similarly, to get anything " -"other than ``None`` in the result tuple, you need to give ``stdout=PIPE`` " -"and/or ``stderr=PIPE`` too." +"If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " +"raised when writing *input* into *stdin*, the exception is ignored. This " +"condition occurs when the process exits before all data are written into " +"*stdin*." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:238 +#: ../Doc/library/asyncio-subprocess.rst:211 msgid "" -"The data read is buffered in memory, so do not use this method if the data " -"size is large or unlimited." +"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 " +"``None`` in the result tuple, the process has to be created with " +"``stdout=PIPE`` and/or ``stderr=PIPE`` arguments." msgstr "" -"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:241 +#: ../Doc/library/asyncio-subprocess.rst:217 msgid "" -"The method now ignores :exc:`BrokenPipeError` and :exc:" -"`ConnectionResetError`." +"Note, that the data read is buffered in memory, so do not use this method if " +"the data size is large or unlimited." 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:247 +#: ../Doc/library/asyncio-subprocess.rst:222 msgid "Sends the signal *signal* to the child process." -msgstr "Envoie le signal *signal* au processus fils." +msgstr "Envoie le signal *signal* au sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:251 +#: ../Doc/library/asyncio-subprocess.rst:226 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 "" -#: ../Doc/library/asyncio-subprocess.rst:258 +#: ../Doc/library/asyncio-subprocess.rst:233 +msgid "Stop the child process." +msgstr "Arrête le sous-processus." + +#: ../Doc/library/asyncio-subprocess.rst:235 +msgid "" +"On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child " +"process." +msgstr "" +"Sur les systèmes POSIX, cette méthode envoie un :py:data:`signal.SIGTERM` au " +"sous-processus." + +#: ../Doc/library/asyncio-subprocess.rst:238 msgid "" -"Stop the child. On Posix OSs the method sends :py:data:`signal.SIGTERM` to " -"the child. On Windows the Win32 API function :c:func:`TerminateProcess` is " -"called to stop the child." +"On Windows the Win32 API function :c:func:`TerminateProcess` is called to " +"stop the child process." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:264 +#: ../Doc/library/asyncio-subprocess.rst:243 +msgid "Kill the child." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:245 msgid "" -"Kills the child. On Posix OSs the function sends :py:data:`SIGKILL` to the " -"child. On Windows :meth:`kill` is an alias for :meth:`terminate`." +"On POSIX systems this method sends :py:data:`SIGKILL` to the child process." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:248 +msgid "On Windows this method is an alias for :meth:`terminate`." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:269 +#: ../Doc/library/asyncio-subprocess.rst:252 msgid "" -"Standard input stream (:class:`StreamWriter`), ``None`` if the process was " +"Standard input stream (:class:`StreamWriter`) or ``None`` if the process was " "created with ``stdin=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:274 +#: ../Doc/library/asyncio-subprocess.rst:257 msgid "" -"Standard output stream (:class:`StreamReader`), ``None`` if the process was " -"created with ``stdout=None``." +"Standard output stream (:class:`StreamReader`) or ``None`` if the process " +"was created with ``stdout=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:279 +#: ../Doc/library/asyncio-subprocess.rst:262 msgid "" -"Standard error stream (:class:`StreamReader`), ``None`` if the process was " +"Standard error stream (:class:`StreamReader`) or ``None`` if the process was " "created with ``stderr=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:284 +#: ../Doc/library/asyncio-subprocess.rst:267 msgid "" -"Use the :meth:`communicate` method rather than :attr:`.stdin.write " -"`, :attr:`.stdout.read ` or :attr:`.stderr.read ` to " -"avoid deadlocks due to streams pausing reading or writing and blocking the " -"child process." +"Use the :meth:`communicate` method rather than :attr:`process.stdin.write() " +"`, :attr:`await process.stdout.read() ` or :attr:`await " +"process.stderr.read `. This avoids deadlocks due to streams pausing " +"reading or writing and blocking the child process." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:291 -msgid "The identifier of the process." -msgstr "L'identifiant du processus." +#: ../Doc/library/asyncio-subprocess.rst:276 +msgid "Process identification number (PID)." +msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:293 +#: ../Doc/library/asyncio-subprocess.rst:278 msgid "" "Note that for processes created by the :func:`create_subprocess_shell` " -"function, this attribute is the process identifier of the spawned shell." +"function, this attribute is the PID of the spawned shell." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:298 -msgid "" -"Return code of the process when it exited. A ``None`` value indicates that " -"the process has not terminated yet." +#: ../Doc/library/asyncio-subprocess.rst:283 +msgid "Return code of the process when it exits." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:301 +#: ../Doc/library/asyncio-subprocess.rst:285 +msgid "A ``None`` value indicates that the process has not terminated yet." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:287 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " -"``N`` (Unix only)." +"``N`` (POSIX only)." 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:308 -msgid "Subprocess and threads" -msgstr "Processus fils et fils d'exécution" +#: ../Doc/library/asyncio-subprocess.rst:294 +msgid "Subprocess and Threads" +msgstr "Sous-processus et fils d'exécution" -#: ../Doc/library/asyncio-subprocess.rst:310 +#: ../Doc/library/asyncio-subprocess.rst:296 msgid "" -"asyncio supports running subprocesses from different threads, but there are " -"limits:" +"Standard asyncio event loop supports running subprocesses from different " +"threads, but there are limitations:" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:313 -msgid "An event loop must run in the main thread" +#: ../Doc/library/asyncio-subprocess.rst:299 +msgid "An event loop must run in the main thread." msgstr "" -"Une boucle d'évènements doit être exécutée sur le fil d'exécution principal" +"Une boucle d'évènements doit être exécutée sur le fil d'exécution principal." -#: ../Doc/library/asyncio-subprocess.rst:314 +#: ../Doc/library/asyncio-subprocess.rst:301 msgid "" -"The child watcher must be instantiated in the main thread, before executing " +"The child watcher must be instantiated in the main thread before executing " "subprocesses from other threads. Call the :func:`get_child_watcher` function " "in the main thread to instantiate the child watcher." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:318 -msgid "The :class:`asyncio.subprocess.Process` class is not thread safe." +#: ../Doc/library/asyncio-subprocess.rst:306 +msgid "" +"Note that alternative event loop implementations might not share the above " +"limitations; please refer to their documentation." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:322 +#: ../Doc/library/asyncio-subprocess.rst:311 msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:327 -msgid "Subprocess examples" -msgstr "" - -#: ../Doc/library/asyncio-subprocess.rst:330 -msgid "Subprocess using transport and protocol" -msgstr "" +#: ../Doc/library/asyncio-subprocess.rst:316 +msgid "Examples" +msgstr "Exemples" -#: ../Doc/library/asyncio-subprocess.rst:332 +#: ../Doc/library/asyncio-subprocess.rst:318 msgid "" -"Example of a subprocess protocol using to get the output of a subprocess and " -"to wait for the subprocess exit. The subprocess is created by the :meth:" -"`AbstractEventLoop.subprocess_exec` method::" +"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 "" -#: ../Doc/library/asyncio-subprocess.rst:385 -msgid "Subprocess using streams" +#: ../Doc/library/asyncio-subprocess.rst:324 +msgid "" +"The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:387 +#: ../Doc/library/asyncio-subprocess.rst:355 msgid "" -"Example using the :class:`~asyncio.subprocess.Process` class to control the " -"subprocess and the :class:`StreamReader` class to read from the standard " -"output. The subprocess is created by the :func:`create_subprocess_exec` " -"function::" +"See also the :ref:`same example ` written " +"using low-level APIs." msgstr "" + +#~ msgid "Windows event loop" +#~ msgstr "Boucle d'évènements Windows" + +#~ msgid "Create a subprocess: high-level API using Process" +#~ msgstr "Créer un processus fils : API de haut niveau utilisant ``Process``" + +#~ msgid "This function is a :ref:`coroutine `." +#~ msgstr "Cette fonction est une :ref:`coroutine `." + +#~ msgid "Other parameters:" +#~ msgstr "Autres paramètres :" + +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." + +#~ msgid "The identifier of the process." +#~ msgstr "L'identifiant du processus." diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po index 32e16ca34..aadc9b9f7 100644 --- a/library/asyncio-sync.po +++ b/library/asyncio-sync.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-10-15 00:46+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -14,389 +14,361 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-sync.rst:5 -msgid "Synchronization primitives" -msgstr "" - #: ../Doc/library/asyncio-sync.rst:7 -msgid "**Source code:** :source:`Lib/asyncio/locks.py`" +msgid "Synchronization Primitives" msgstr "" #: ../Doc/library/asyncio-sync.rst:9 -msgid "Locks:" +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 +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 +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:11 +#: ../Doc/library/asyncio-sync.rst:20 +msgid "asyncio has the following basic synchronization primitives:" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:22 msgid ":class:`Lock`" msgstr ":class:`Lock`" -#: ../Doc/library/asyncio-sync.rst:12 +#: ../Doc/library/asyncio-sync.rst:23 msgid ":class:`Event`" msgstr ":class:`Event`" -#: ../Doc/library/asyncio-sync.rst:13 +#: ../Doc/library/asyncio-sync.rst:24 msgid ":class:`Condition`" msgstr ":class:`Condition`" -#: ../Doc/library/asyncio-sync.rst:15 -msgid "Semaphores:" -msgstr "Sémaphores :" - -#: ../Doc/library/asyncio-sync.rst:17 +#: ../Doc/library/asyncio-sync.rst:25 msgid ":class:`Semaphore`" msgstr ":class:`Semaphore`" -#: ../Doc/library/asyncio-sync.rst:18 +#: ../Doc/library/asyncio-sync.rst:26 msgid ":class:`BoundedSemaphore`" msgstr ":class:`BoundedSemaphore`" -#: ../Doc/library/asyncio-sync.rst:20 -msgid "" -"asyncio lock API was designed to be close to classes of the :mod:`threading` " -"module (:class:`~threading.Lock`, :class:`~threading.Event`, :class:" -"`~threading.Condition`, :class:`~threading.Semaphore`, :class:`~threading." -"BoundedSemaphore`), but it has no *timeout* parameter. The :func:`asyncio." -"wait_for` function can be used to cancel a task after a timeout." -msgstr "" - -#: ../Doc/library/asyncio-sync.rst:28 +#: ../Doc/library/asyncio-sync.rst:33 msgid "Lock" msgstr "" -#: ../Doc/library/asyncio-sync.rst:32 -msgid "Primitive lock objects." +#: ../Doc/library/asyncio-sync.rst:37 +msgid "Implements a mutex lock for asyncio tasks. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:34 +#: ../Doc/library/asyncio-sync.rst:39 msgid "" -"A primitive lock is a synchronization primitive that is not owned by a " -"particular coroutine when locked. A primitive lock is in one of two states, " -"'locked' or 'unlocked'." +"An asyncio lock can be used to guarantee exclusive access to a shared " +"resource." msgstr "" -#: ../Doc/library/asyncio-sync.rst:38 -msgid "" -"The lock is created in the unlocked state. It has two basic methods, :meth:" -"`acquire` and :meth:`release`. When the state is unlocked, acquire() changes " -"the state to locked and returns immediately. When the state is locked, " -"acquire() blocks until a call to release() in another coroutine changes it " -"to unlocked, then the acquire() call resets it to locked and returns. The " -"release() method should only be called in the locked state; it changes the " -"state to unlocked and returns immediately. If an attempt is made to release " -"an unlocked lock, a :exc:`RuntimeError` will be raised." +#: ../Doc/library/asyncio-sync.rst:42 +msgid "The preferred way to use a Lock is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:48 -msgid "" -"When more than one coroutine is blocked in acquire() waiting for the state " -"to turn to unlocked, only one coroutine proceeds when a release() call " -"resets the state to unlocked; first coroutine which is blocked in acquire() " -"is being processed." +#: ../Doc/library/asyncio-sync.rst:51 ../Doc/library/asyncio-sync.rst:185 +#: ../Doc/library/asyncio-sync.rst:281 +msgid "which is equivalent to::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:53 -msgid ":meth:`acquire` is a coroutine and should be called with ``await``." +#: ../Doc/library/asyncio-sync.rst:64 +msgid "Acquire the lock." msgstr "" -#: ../Doc/library/asyncio-sync.rst:55 +#: ../Doc/library/asyncio-sync.rst:66 msgid "" -"Locks support the :ref:`context management protocol `." -msgstr "" - -#: ../Doc/library/asyncio-sync.rst:57 ../Doc/library/asyncio-sync.rst:97 -#: ../Doc/library/asyncio-sync.rst:145 ../Doc/library/asyncio-sync.rst:237 -#: ../Doc/library/asyncio-sync.rst:274 -msgid "This class is :ref:`not thread safe `." +"This method waits until the lock is *unlocked*, sets it to *locked* and " +"returns ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:61 -msgid "Return ``True`` if the lock is acquired." -msgstr "Donne ``True`` si le verrou est acquis." - -#: ../Doc/library/asyncio-sync.rst:65 -msgid "Acquire a lock." +#: ../Doc/library/asyncio-sync.rst:69 +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:67 ../Doc/library/asyncio-sync.rst:151 +#: ../Doc/library/asyncio-sync.rst:73 msgid "" -"This method blocks until the lock is unlocked, then sets it to locked and " -"returns ``True``." +"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:70 ../Doc/library/asyncio-sync.rst:123 -#: ../Doc/library/asyncio-sync.rst:154 ../Doc/library/asyncio-sync.rst:206 -#: ../Doc/library/asyncio-sync.rst:215 ../Doc/library/asyncio-sync.rst:248 -msgid "This method is a :ref:`coroutine `." -msgstr "Cette méthode est une :ref:`coroutine `." - -#: ../Doc/library/asyncio-sync.rst:74 -msgid "Release a lock." +#: ../Doc/library/asyncio-sync.rst:78 +msgid "Release the lock." msgstr "Libère un verrou." -#: ../Doc/library/asyncio-sync.rst:76 -msgid "" -"When the lock is locked, reset it to unlocked, and return. If any other " -"coroutines are blocked waiting for the lock to become unlocked, allow " -"exactly one of them to proceed." +#: ../Doc/library/asyncio-sync.rst:80 +msgid "When the lock is *locked*, reset it to *unlocked* and return." msgstr "" -#: ../Doc/library/asyncio-sync.rst:80 ../Doc/library/asyncio-sync.rst:190 -msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." +#: ../Doc/library/asyncio-sync.rst:82 +msgid "If the lock is *unlocked*, a :exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:82 ../Doc/library/asyncio-sync.rst:192 -msgid "There is no return value." -msgstr "Il n'y a pas de valeur de retour." - #: ../Doc/library/asyncio-sync.rst:86 +msgid "Return ``True`` if the lock is *locked*." +msgstr "Donne ``True`` si le verrou est verrouillé." + +#: ../Doc/library/asyncio-sync.rst:90 msgid "Event" msgstr "" -#: ../Doc/library/asyncio-sync.rst:90 +#: ../Doc/library/asyncio-sync.rst:94 +msgid "An event object. Not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:96 msgid "" -"An Event implementation, asynchronous equivalent to :class:`threading.Event`." +"An asyncio event can be used to notify multiple asyncio tasks that some " +"event has happened." msgstr "" -#: ../Doc/library/asyncio-sync.rst:92 +#: ../Doc/library/asyncio-sync.rst:99 msgid "" -"Class implementing event objects. An event manages a 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 true. The flag is " -"initially false." +"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." msgstr "" -#: ../Doc/library/asyncio-sync.rst:101 +#: ../Doc/library/asyncio-sync.rst:106 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/asyncio-sync.rst:131 +msgid "Wait until the event is set." +msgstr "Attend que l'évènement ait une valeur." + +#: ../Doc/library/asyncio-sync.rst:133 msgid "" -"Reset the internal flag to false. Subsequently, coroutines calling :meth:" -"`wait` will block until :meth:`set` is called to set the internal flag to " -"true again." +"If the event is set, return ``True`` immediately. Otherwise block until " +"another task calls :meth:`set`." msgstr "" -#: ../Doc/library/asyncio-sync.rst:107 -msgid "Return ``True`` if and only if the internal flag is true." +#: ../Doc/library/asyncio-sync.rst:138 +msgid "Set the event." msgstr "" -#: ../Doc/library/asyncio-sync.rst:111 -msgid "" -"Set the internal flag to true. All coroutines waiting for it to become true " -"are awakened. Coroutine that call :meth:`wait` once the flag is true will " -"not block at all." +#: ../Doc/library/asyncio-sync.rst:140 +msgid "All tasks waiting for event to be set will be immediately awakened." msgstr "" -#: ../Doc/library/asyncio-sync.rst:117 -msgid "Block until the internal flag is true." +#: ../Doc/library/asyncio-sync.rst:145 +msgid "Clear (unset) the event." msgstr "" -#: ../Doc/library/asyncio-sync.rst:119 +#: ../Doc/library/asyncio-sync.rst:147 msgid "" -"If the internal flag is true on entry, return ``True`` immediately. " -"Otherwise, block until another coroutine calls :meth:`set` to set the flag " -"to true, then return ``True``." +"Tasks awaiting on :meth:`wait` will now block until the :meth:`set` method " +"is called again." msgstr "" -#: ../Doc/library/asyncio-sync.rst:127 +#: ../Doc/library/asyncio-sync.rst:152 +msgid "Return ``True`` if the event is set." +msgstr "Renvoie ``True`` si l'évènement a une valeur." + +#: ../Doc/library/asyncio-sync.rst:156 msgid "Condition" msgstr "" -#: ../Doc/library/asyncio-sync.rst:131 +#: ../Doc/library/asyncio-sync.rst:160 +msgid "A Condition object. Not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:162 msgid "" -"A Condition implementation, asynchronous equivalent to :class:`threading." -"Condition`." +"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:134 +#: ../Doc/library/asyncio-sync.rst:166 msgid "" -"This class implements condition variable objects. A condition variable " -"allows one or more coroutines to wait until they are notified by another " -"coroutine." +"In essence, a Condition object combines the functionality of an :class:" +"`Event` and a :class:`Lock`. It is possible to have multiple Condition " +"objects share one Lock, which allows coordinating exclusive access to a " +"shared resource between different tasks interested in particular states of " +"that shared resource." msgstr "" -#: ../Doc/library/asyncio-sync.rst:138 +#: ../Doc/library/asyncio-sync.rst:172 msgid "" -"If the *lock* argument is given and not ``None``, it must be a :class:`Lock` " -"object, and it is used as the underlying lock. Otherwise, a new :class:" -"`Lock` object is created and used as the underlying lock." +"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:142 +#: ../Doc/library/asyncio-sync.rst:176 msgid "" -"Conditions support the :ref:`context management protocol `." +"The preferred way to use a Condition is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:149 +#: ../Doc/library/asyncio-sync.rst:198 msgid "Acquire the underlying lock." msgstr "" -#: ../Doc/library/asyncio-sync.rst:158 +#: ../Doc/library/asyncio-sync.rst:200 msgid "" -"By default, wake up one coroutine waiting on this condition, if any. If the " -"calling coroutine has not acquired the lock when this method is called, a :" -"exc:`RuntimeError` is raised." +"This method waits until the underlying lock is *unlocked*, sets it to " +"*locked* and returns ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:162 +#: ../Doc/library/asyncio-sync.rst:205 msgid "" -"This method wakes up at most *n* of the coroutines waiting for the condition " -"variable; it is a no-op if no coroutines are waiting." +"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:167 +#: ../Doc/library/asyncio-sync.rst:208 ../Doc/library/asyncio-sync.rst:223 msgid "" -"An awakened coroutine does not actually return from its :meth:`wait` call " -"until it can reacquire the lock. Since :meth:`notify` does not release the " -"lock, its caller should." +"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:173 +#: ../Doc/library/asyncio-sync.rst:214 msgid "Return ``True`` if the underlying lock is acquired." msgstr "" -#: ../Doc/library/asyncio-sync.rst:177 -msgid "" -"Wake up all coroutines waiting on this condition. This method acts like :" -"meth:`notify`, but wakes up all waiting coroutines instead of one. If the " -"calling coroutine has not acquired the lock when this method is called, a :" -"exc:`RuntimeError` is raised." +#: ../Doc/library/asyncio-sync.rst:218 +msgid "Wake up all tasks waiting on this condition." msgstr "" -#: ../Doc/library/asyncio-sync.rst:184 +#: ../Doc/library/asyncio-sync.rst:220 +msgid "This method acts like :meth:`notify`, but wakes up all waiting tasks." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:229 msgid "Release the underlying lock." msgstr "Libère le verrou sous-jacent." -#: ../Doc/library/asyncio-sync.rst:186 -msgid "" -"When the lock is locked, reset it to unlocked, and return. If any other " -"coroutines are blocked waiting for the lock to become unlocked, allow " -"exactly one of them to proceed." +#: ../Doc/library/asyncio-sync.rst:231 +msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:196 +#: ../Doc/library/asyncio-sync.rst:236 msgid "Wait until notified." msgstr "Attends d'être notifié." -#: ../Doc/library/asyncio-sync.rst:198 +#: ../Doc/library/asyncio-sync.rst:238 msgid "" -"If the calling coroutine has not acquired the lock when this method is " -"called, a :exc:`RuntimeError` is raised." +"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:201 +#: ../Doc/library/asyncio-sync.rst:241 msgid "" "This method releases the underlying lock, and then blocks until it is " -"awakened by a :meth:`notify` or :meth:`notify_all` call for the same " -"condition variable in another coroutine. Once awakened, it re-acquires the " -"lock and returns ``True``." +"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:210 -msgid "Wait until a predicate becomes true." +#: ../Doc/library/asyncio-sync.rst:248 +msgid "Wait until a predicate becomes *true*." msgstr "Attends jusqu'à ce qu'un prédicat devienne vrai." -#: ../Doc/library/asyncio-sync.rst:212 +#: ../Doc/library/asyncio-sync.rst:250 msgid "" -"The predicate should be a callable which result will be interpreted as a " -"boolean value. The final predicate value is the return value." +"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:219 +#: ../Doc/library/asyncio-sync.rst:256 msgid "Semaphore" msgstr "Sémaphore" -#: ../Doc/library/asyncio-sync.rst:223 -msgid "A Semaphore implementation." +#: ../Doc/library/asyncio-sync.rst:260 +msgid "A Semaphore object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:225 +#: ../Doc/library/asyncio-sync.rst:262 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 " "never go below zero; when :meth:`acquire` finds that it is zero, it blocks, " -"waiting until some other coroutine calls :meth:`release`." +"waiting until some task calls :meth:`release`." msgstr "" -#: ../Doc/library/asyncio-sync.rst:230 +#: ../Doc/library/asyncio-sync.rst:268 msgid "" -"The optional argument gives the initial value for the internal counter; it " -"defaults to ``1``. If the value given is less than ``0``, :exc:`ValueError` " -"is raised." +"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:234 +#: ../Doc/library/asyncio-sync.rst:272 msgid "" -"Semaphores support the :ref:`context management protocol `." +"The preferred way to use a Semaphore is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:241 +#: ../Doc/library/asyncio-sync.rst:294 msgid "Acquire a semaphore." msgstr "" -#: ../Doc/library/asyncio-sync.rst:243 +#: ../Doc/library/asyncio-sync.rst:296 msgid "" -"If the internal counter is larger than zero on entry, decrement it by one " -"and return ``True`` immediately. If it is zero on entry, block, waiting " -"until some other coroutine has called :meth:`release` to make it larger than " -"``0``, and then return ``True``." +"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:252 +#: ../Doc/library/asyncio-sync.rst:302 msgid "Returns ``True`` if semaphore can not be acquired immediately." msgstr "" -#: ../Doc/library/asyncio-sync.rst:256 +#: ../Doc/library/asyncio-sync.rst:306 msgid "" -"Release a semaphore, incrementing the internal counter by one. When it was " -"zero on entry and another coroutine is waiting for it to become larger than " -"zero again, wake up that coroutine." -msgstr "" - -#: ../Doc/library/asyncio-sync.rst:262 -msgid "BoundedSemaphore" -msgstr "BoundedSemaphore" - -#: ../Doc/library/asyncio-sync.rst:266 -msgid "A bounded semaphore implementation. Inherit from :class:`Semaphore`." +"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:268 +#: ../Doc/library/asyncio-sync.rst:309 msgid "" -"This raises :exc:`ValueError` in :meth:`~Semaphore.release` if it would " -"increase the value above the initial value." +"Unlike :class:`BoundedSemaphore`, :class:`Semaphore` allows making more " +"``release()`` calls than ``acquire()`` calls." msgstr "" -#: ../Doc/library/asyncio-sync.rst:271 -msgid "" -"Bounded semaphores support the :ref:`context management protocol `." -msgstr "" +#: ../Doc/library/asyncio-sync.rst:314 +msgid "BoundedSemaphore" +msgstr "BoundedSemaphore" -#: ../Doc/library/asyncio-sync.rst:280 -msgid "" -"Using locks, conditions and semaphores in the :keyword:`async with` statement" +#: ../Doc/library/asyncio-sync.rst:318 +msgid "A bounded semaphore object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:282 +#: ../Doc/library/asyncio-sync.rst:320 msgid "" -":class:`Lock`, :class:`Condition`, :class:`Semaphore`, and :class:" -"`BoundedSemaphore` objects can be used in :keyword:`async with` statements." +"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:286 +#: ../Doc/library/asyncio-sync.rst:330 msgid "" -"The :meth:`acquire` method will be called when the block is entered, and :" -"meth:`release` will be called when the block is exited. Hence, the " -"following snippet::" +"Acquiring a lock using ``await lock`` or ``yield from lock`` and/or :keyword:" +"`with` statement (``with await lock``, ``with (yield from lock)``) is " +"deprecated. Use ``async with lock`` instead." msgstr "" -#: ../Doc/library/asyncio-sync.rst:293 -msgid "is equivalent to::" -msgstr "" +#~ msgid "Semaphores:" +#~ msgstr "Sémaphores :" -#: ../Doc/library/asyncio-sync.rst:303 -msgid "" -"Lock acquiring using ``await lock`` or ``yield from lock`` and :keyword:" -"`with` statement (``with await lock``, ``with (yield from lock)``) are " -"deprecated." -msgstr "" +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." + +#~ msgid "There is no return value." +#~ msgstr "Il n'y a pas de valeur de retour." #~ msgid "Semaphores" #~ msgstr "Sémaphores" diff --git a/library/asyncio-task.po b/library/asyncio-task.po index e15e3705c..7d57083bd 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -5,953 +5,1245 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-27 23:20+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 20:05+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" - -#: ../Doc/library/asyncio-task.rst:4 -msgid "Tasks and coroutines" -msgstr "Tâches et coroutines" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/asyncio-task.rst:6 -msgid "**Source code:** :source:`Lib/asyncio/tasks.py`" -msgstr "" +msgid "Coroutines and Tasks" +msgstr "Coroutines et tâches" #: ../Doc/library/asyncio-task.rst:8 -msgid "**Source code:** :source:`Lib/asyncio/coroutines.py`" +msgid "" +"This section outlines high-level asyncio APIs to work with coroutines and " +"Tasks." 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:13 +#: ../Doc/library/asyncio-task.rst:19 ../Doc/library/asyncio-task.rst:121 msgid "Coroutines" msgstr "Coroutines" -#: ../Doc/library/asyncio-task.rst:15 +#: ../Doc/library/asyncio-task.rst:21 msgid "" -"Coroutines used with :mod:`asyncio` may be implemented using the :keyword:" -"`async def` statement, or by using :term:`generators `. The :" -"keyword:`async def` type of coroutine was added in Python 3.5, and is " -"recommended if there is no need to support older Python versions." +"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\"::" 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* ::" -#: ../Doc/library/asyncio-task.rst:20 +#: ../Doc/library/asyncio-task.rst:37 msgid "" -"Generator-based coroutines should be decorated with :func:`@asyncio." -"coroutine `, although this is not strictly enforced. The " -"decorator enables compatibility with :keyword:`async def` coroutines, and " -"also serves as documentation. Generator-based coroutines use the ``yield " -"from`` syntax introduced in :pep:`380`, instead of the original ``yield`` " -"syntax." -msgstr "" +"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:27 -msgid "" -"The word \"coroutine\", like the word \"generator\", is used for two " -"different (though related) concepts:" +#: ../Doc/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:30 +#: ../Doc/library/asyncio-task.rst:45 msgid "" -"The function that defines a coroutine (a function definition using :keyword:" -"`async def` or decorated with ``@asyncio.coroutine``). If disambiguation is " -"needed we will call this a *coroutine function* (:func:`iscoroutinefunction` " -"returns ``True``)." +"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 " +"point d'entrée de haut-niveau (voir l'exemple ci-dessus)." -#: ../Doc/library/asyncio-task.rst:36 +#: ../Doc/library/asyncio-task.rst:48 msgid "" -"The object obtained by calling a coroutine function. This object represents " -"a computation or an I/O operation (usually a combination) that will complete " -"eventually. If disambiguation is needed we will call it a *coroutine " -"object* (:func:`iscoroutine` returns ``True``)." +"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* ::" -#: ../Doc/library/asyncio-task.rst:41 -msgid "Things a coroutine can do:" -msgstr "Les choses que les coroutines peuvent faire :" +#: ../Doc/library/asyncio-task.rst:69 +msgid "Expected output::" +msgstr "Sortie attendue ::" -#: ../Doc/library/asyncio-task.rst:43 +#: ../Doc/library/asyncio-task.rst:76 msgid "" -"``result = await future`` or ``result = yield from future`` -- suspends the " -"coroutine until the future is done, then returns the future's result, or " -"raises an exception, which will be propagated. (If the future is cancelled, " -"it will raise a ``CancelledError`` exception.) Note that tasks are futures, " -"and everything said about futures also applies to tasks." +"The :func:`asyncio.create_task` function to run coroutines concurrently as " +"asyncio :class:`Tasks `." 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:50 +#: ../Doc/library/asyncio-task.rst:79 msgid "" -"``result = await coroutine`` or ``result = yield from coroutine`` -- wait " -"for another coroutine to produce a result (or raise an exception, which will " -"be propagated). The ``coroutine`` expression must be a *call* to another " -"coroutine." +"Let's modify the above example and run two ``say_after`` coroutines " +"*concurrently*::" msgstr "" +"Modifions l'exemple ci-dessus et lançons deux coroutines ``say_after`` *de " +"manière concurrente* ::" -#: ../Doc/library/asyncio-task.rst:55 +#: ../Doc/library/asyncio-task.rst:98 msgid "" -"``return expression`` -- produce a result to the coroutine that is waiting " -"for this one using :keyword:`await` or ``yield from``." +"Note that expected output now shows that the snippet runs 1 second faster " +"than before::" 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:58 +#: ../Doc/library/asyncio-task.rst:110 +msgid "Awaitables" +msgstr "Awaitables" + +#: ../Doc/library/asyncio-task.rst:112 msgid "" -"``raise exception`` -- raise an exception in the coroutine that is waiting " -"for this one using :keyword:`await` or ``yield from``." +"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*." -#: ../Doc/library/asyncio-task.rst:61 +#: ../Doc/library/asyncio-task.rst:116 msgid "" -"Calling a coroutine does not start its code running -- the coroutine object " -"returned by the call doesn't do anything until you schedule its execution. " -"There are two basic ways to start it running: call ``await coroutine`` or " -"``yield from coroutine`` from another coroutine (assuming the other " -"coroutine is already running!), or schedule its execution using the :func:" -"`ensure_future` function or the :meth:`AbstractEventLoop.create_task` method." +"There are three main types of *awaitable* objects: **coroutines**, " +"**Tasks**, and **Futures**." msgstr "" +"Il existe trois types principaux d'*awaitables* : les **coroutines**, les " +"**tâches** et les **futurs**." -#: ../Doc/library/asyncio-task.rst:70 -msgid "Coroutines (and tasks) can only run when the event loop is running." +#: ../Doc/library/asyncio-task.rst:122 +msgid "" +"Python coroutines are *awaitables* and therefore can be awaited from other " +"coroutines::" msgstr "" +"Les coroutines sont des *awaitables* et peuvent donc être attendues par " +"d'autres coroutines ::" -#: ../Doc/library/asyncio-task.rst:74 +#: ../Doc/library/asyncio-task.rst:143 msgid "" -"Decorator to mark generator-based coroutines. This enables the generator " -"use :keyword:`!yield from` to call :keyword:`async def` coroutines, and also " -"enables the generator to be called by :keyword:`async def` coroutines, for " -"instance using an :keyword:`await` expression." +"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 " +"deux concepts voisins :" + +#: ../Doc/library/asyncio-task.rst:146 +msgid "a *coroutine function*: an :keyword:`async def` function;" +msgstr "une *fonction coroutine* : une fonction :keyword:`async def`;" -#: ../Doc/library/asyncio-task.rst:80 +#: ../Doc/library/asyncio-task.rst:148 msgid "" -"There is no need to decorate :keyword:`async def` coroutines themselves." -msgstr "" +"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:82 +#: ../Doc/library/asyncio-task.rst:151 msgid "" -"If the generator is not yielded from before it is destroyed, an error " -"message is logged. See :ref:`Detect coroutines never scheduled `." +"asyncio also supports legacy :ref:`generator-based " +"` coroutines." 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:88 -msgid "" -"In this documentation, some methods are documented as coroutines, even if " -"they are plain Python functions returning a :class:`Future`. This is " -"intentional to have a freedom of tweaking the implementation of these " -"functions in the future. If such a function is needed to be used in a " -"callback-style code, wrap its result with :func:`ensure_future`." +#: ../Doc/library/asyncio-task.rst:156 +msgid "Tasks" +msgstr "Tâches" + +#: ../Doc/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:97 +#: ../Doc/library/asyncio-task.rst:159 msgid "" -"This function runs the passed coroutine, taking care of managing the asyncio " -"event loop and finalizing asynchronous generators." +"When a coroutine is wrapped into a *Task* with functions like :func:`asyncio." +"create_task` the coroutine is automatically scheduled to run soon::" msgstr "" +"Lorsqu'une coroutine est encapsulée dans une *tâche* à l'aide de fonctions " +"comme :func:`asyncio.create_task`, la coroutine est automatiquement " +"planifiée pour s'exécuter prochainement ::" -#: ../Doc/library/asyncio-task.rst:101 +#: ../Doc/library/asyncio-task.rst:181 +msgid "Futures" +msgstr "Futurs" + +#: ../Doc/library/asyncio-task.rst:182 msgid "" -"This function cannot be called when another asyncio event loop is running in " -"the same thread." +"A :class:`Future` is a special **low-level** awaitable object that " +"represents an **eventual result** of an asynchronous operation." 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:104 -msgid "If debug is True, the event loop will be run in debug mode." +#: ../Doc/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." 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:106 +#: ../Doc/library/asyncio-task.rst:188 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 " -"ideally only be called once." +"Future objects in asyncio are needed to allow callback-based code to be used " +"with async/await." 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:110 +#: ../Doc/library/asyncio-task.rst:191 msgid "" -"**Important:** this has been been added to asyncio in Python 3.7 on a :term:" -"`provisional basis `." +"Normally **there is no need** to create Future objects at the application " +"level code." msgstr "" +"Il est normalement **inutile** de créer des objets *Future* dans la couche " +"applicative du code." -#: ../Doc/library/asyncio-task.rst:118 -msgid "Example: Hello World coroutine" -msgstr "Exemple : Coroutine \"Hello World\"" - -#: ../Doc/library/asyncio-task.rst:120 -msgid "Example of coroutine displaying ``\"Hello World\"``::" +#: ../Doc/library/asyncio-task.rst:194 +msgid "" +"Future objects, sometimes exposed by libraries and some asyncio APIs, can be " +"awaited::" msgstr "" +"Les objets *Future*, parfois exposés par des bibliothèques et quelques API " +"d'*asyncio*, peuvent être attendus ::" -#: ../Doc/library/asyncio-task.rst:131 +#: ../Doc/library/asyncio-task.rst:206 msgid "" -"The :ref:`Hello World with call_soon() ` " -"example uses the :meth:`AbstractEventLoop.call_soon` method to schedule a " -"callback." +"A good example of a low-level function that returns a Future object is :meth:" +"`loop.run_in_executor`." msgstr "" +":meth:`loop.run_in_executor` est l'exemple typique d'une fonction bas-niveau " +"renvoyant un objet *Future*." -#: ../Doc/library/asyncio-task.rst:139 -msgid "Example: Coroutine displaying the current date" -msgstr "Exemple : Coroutine affichant la date actuelle" +#: ../Doc/library/asyncio-task.rst:211 +msgid "Running an asyncio Program" +msgstr "Exécution d'un programme *asyncio*" -#: ../Doc/library/asyncio-task.rst:141 +#: ../Doc/library/asyncio-task.rst:215 msgid "" -"Example of coroutine displaying the current date every second during 5 " -"seconds using the :meth:`sleep` function::" +"This function runs the passed coroutine, taking care of managing the asyncio " +"event loop and *finalizing asynchronous generators*." 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:160 +#: ../Doc/library/asyncio-task.rst:219 msgid "" -"The :ref:`display the current date with call_later() ` example uses a callback with the :meth:`AbstractEventLoop." -"call_later` method." +"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." -#: ../Doc/library/asyncio-task.rst:166 -msgid "Example: Chain coroutines" -msgstr "Exemple : Chaîner des coroutines" - -#: ../Doc/library/asyncio-task.rst:168 -msgid "Example chaining coroutines::" +#: ../Doc/library/asyncio-task.rst:222 +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:185 +#: ../Doc/library/asyncio-task.rst:224 msgid "" -"``compute()`` is chained to ``print_sum()``: ``print_sum()`` coroutine waits " -"until ``compute()`` is completed before returning its result." +"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 " +"ideally only be called once." msgstr "" +"Cette fonction crée toujours une nouvelle boucle d'événement et la clôt à la " +"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:188 -msgid "Sequence diagram of the example:" +#: ../Doc/library/asyncio-task.rst:228 +msgid "" +"**Important:** this function has been added to asyncio in Python 3.7 on a :" +"term:`provisional basis `." msgstr "" +"**Important :** cette fonction a été ajoutée à *asyncio* dans Python 3.7 de :" +"term:`manière provisoire `." -#: ../Doc/library/asyncio-task.rst:193 +#: ../Doc/library/asyncio-task.rst:234 +msgid "Creating Tasks" +msgstr "Création de tâches" + +#: ../Doc/library/asyncio-task.rst:238 msgid "" -"The \"Task\" is created by the :meth:`AbstractEventLoop.run_until_complete` " -"method when it gets a coroutine object instead of a task." +"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`." -#: ../Doc/library/asyncio-task.rst:196 +#: ../Doc/library/asyncio-task.rst:241 msgid "" -"The diagram shows the control flow, it does not describe exactly how things " -"work internally. For example, the sleep coroutine creates an internal future " -"which uses :meth:`AbstractEventLoop.call_later` to wake up the task in 1 " -"second." +"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." msgstr "" +"La tâche est exécutée dans la boucle renvoyée par :func:" +"`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:202 -msgid "InvalidStateError" -msgstr "InvalidStateError" - -#: ../Doc/library/asyncio-task.rst:206 -msgid "The operation is not allowed in this state." -msgstr "L'opération n'est pas autorisée dans cet état." +#: ../Doc/library/asyncio-task.rst:245 +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::" +msgstr "" +"Cette fonction a été **ajoutée dans Python 3.7**. Pour les versions " +"antérieures à la 3.7, la fonction de bas-niveau :func:`asyncio." +"ensure_future` peut-être utilisée ::" -#: ../Doc/library/asyncio-task.rst:210 -msgid "TimeoutError" -msgstr "TimeoutError" +#: ../Doc/library/asyncio-task.rst:264 +msgid "Sleeping" +msgstr "Attente" -#: ../Doc/library/asyncio-task.rst:214 -msgid "The operation exceeded the given deadline." -msgstr "L'opération a dépassé le délai donné." +#: ../Doc/library/asyncio-task.rst:268 +msgid "Block for *delay* seconds." +msgstr "Attend pendant *delay* secondes." -#: ../Doc/library/asyncio-task.rst:218 +#: ../Doc/library/asyncio-task.rst:270 msgid "" -"This exception is different from the builtin :exc:`TimeoutError` exception!" +"If *result* is provided, it is returned to the caller when the coroutine " +"completes." msgstr "" +"Si *result* est spécifié, il est renvoyé à l'appelant quand la coroutine se " +"termine." -#: ../Doc/library/asyncio-task.rst:222 -msgid "Future" +#: ../Doc/library/asyncio-task.rst:273 +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:226 +#: ../Doc/library/asyncio-task.rst:276 ../Doc/library/asyncio-task.rst:434 +#: ../Doc/library/asyncio-task.rst:486 msgid "" -"This class is *almost* compatible with :class:`concurrent.futures.Future`." +"The *loop* argument is deprecated and scheduled for removal in Python 3.10." +msgstr "L'argument *loop* est obsolète et sera supprimé en Python 3.10." + +#: ../Doc/library/asyncio-task.rst:281 +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:228 -msgid "Differences:" -msgstr "Différences :" +#: ../Doc/library/asyncio-task.rst:300 +msgid "Running Tasks Concurrently" +msgstr "Exécution de tâches de manière concurrente" -#: ../Doc/library/asyncio-task.rst:230 +#: ../Doc/library/asyncio-task.rst:304 msgid "" -":meth:`result` and :meth:`exception` do not take a timeout argument and " -"raise an exception when the future isn't done yet." +"Run :ref:`awaitable objects ` in the *aws* sequence " +"*concurrently*." msgstr "" +"Exécute les objets :ref:`awaitable ` de la séquence " +"*aws*, *de manière concurrente*." -#: ../Doc/library/asyncio-task.rst:233 +#: ../Doc/library/asyncio-task.rst:307 msgid "" -"Callbacks registered with :meth:`add_done_callback` are always called via " -"the event loop's :meth:`~AbstractEventLoop.call_soon`." +"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." -#: ../Doc/library/asyncio-task.rst:236 +#: ../Doc/library/asyncio-task.rst:310 msgid "" -"This class is not compatible with the :func:`~concurrent.futures.wait` and :" -"func:`~concurrent.futures.as_completed` functions in the :mod:`concurrent." -"futures` package." +"If all awaitables are completed successfully, the result is an aggregate " +"list of returned values. The order of result values corresponds to the " +"order of awaitables in *aws*." msgstr "" +"Si tous les *awaitables* s'achèvent avec succès, le résultat est la liste " +"des valeurs renvoyées. L'ordre de cette liste correspond à l'ordre des " +"*awaitables* dans *aws*." -#: ../Doc/library/asyncio-task.rst:240 ../Doc/library/asyncio-task.rst:436 -msgid "This class is :ref:`not thread safe `." +#: ../Doc/library/asyncio-task.rst:314 +msgid "" +"If *return_exceptions* is ``False`` (default), the first raised exception is " +"immediately propagated to the task that awaits on ``gather()``. Other " +"awaitables in the *aws* sequence **won't be cancelled** and will continue to " +"run." 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 " +"annulés** et poursuivent leur exécution." -#: ../Doc/library/asyncio-task.rst:244 -msgid "Cancel the future and schedule callbacks." +#: ../Doc/library/asyncio-task.rst:319 +msgid "" +"If *return_exceptions* is ``True``, exceptions are treated the same as " +"successful results, and aggregated in the result list." msgstr "" +"Si *return_exceptions* vaut ``True``, les exceptions sont traitées de la " +"même manière que les exécutions normales, et incluses dans la liste des " +"résultats." -#: ../Doc/library/asyncio-task.rst:246 +#: ../Doc/library/asyncio-task.rst:322 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``." +"If ``gather()`` is *cancelled*, all submitted awaitables (that have not " +"completed yet) are also *cancelled*." 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:252 -msgid "Return ``True`` if the future was cancelled." +#: ../Doc/library/asyncio-task.rst:325 +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** " +"cancelled in this case. This is to prevent the cancellation of one " +"submitted Task/Future to cause other Tasks/Futures to be cancelled." 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 " +"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:256 -msgid "Return ``True`` if the future is done." -msgstr "" +#: ../Doc/library/asyncio-task.rst:333 ../Doc/library/asyncio-task.rst:439 +#: ../Doc/library/asyncio-task.rst:561 +msgid "Example::" +msgstr "Exemple ::" -#: ../Doc/library/asyncio-task.rst:258 +#: ../Doc/library/asyncio-task.rst:367 msgid "" -"Done means either that a result / exception are available, or that the " -"future was cancelled." +"If the *gather* itself is cancelled, the cancellation is propagated " +"regardless of *return_exceptions*." msgstr "" +"Si *gather* est lui-même annulé, l'annulation est propagée indépendamment de " +"*return_exceptions*." -#: ../Doc/library/asyncio-task.rst:263 -msgid "Return the result this future represents." -msgstr "" +#: ../Doc/library/asyncio-task.rst:373 +msgid "Shielding From Cancellation" +msgstr "Protection contre l'annulation" -#: ../Doc/library/asyncio-task.rst:265 +#: ../Doc/library/asyncio-task.rst:377 msgid "" -"If the future has been cancelled, raises :exc:`CancelledError`. If the " -"future's result isn't yet available, raises :exc:`InvalidStateError`. If the " -"future is done and has an exception set, this exception is raised." +"Protect an :ref:`awaitable object ` from being :meth:" +"`cancelled `." msgstr "" +"Empêche qu'un objet :ref:`awaitable ` puisse être :meth:" +"`annulé `." -#: ../Doc/library/asyncio-task.rst:271 -msgid "Return the exception that was set on this future." +#: ../Doc/library/asyncio-task.rst:380 ../Doc/library/asyncio-task.rst:417 +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:273 +#: ../Doc/library/asyncio-task.rst:382 +msgid "The statement::" +msgstr "L'instruction ::" + +#: ../Doc/library/asyncio-task.rst:386 +msgid "is equivalent to::" +msgstr "est équivalente à ::" + +#: ../Doc/library/asyncio-task.rst:390 msgid "" -"The exception (or ``None`` if no exception was set) is returned only if the " -"future is done. If the future has been cancelled, raises :exc:" -"`CancelledError`. If the future isn't done yet, raises :exc:" -"`InvalidStateError`." +"*except* that if the coroutine containing it is cancelled, the Task running " +"in ``something()`` is not cancelled. From the point of view of " +"``something()``, the cancellation did not happen. Although its caller is " +"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`." -#: ../Doc/library/asyncio-task.rst:280 -msgid "Add a callback to be run when the future becomes done." +#: ../Doc/library/asyncio-task.rst:396 +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) " +"ceci annule également ``shield()``." -#: ../Doc/library/asyncio-task.rst:282 +#: ../Doc/library/asyncio-task.rst:399 msgid "" -"The *callback* is called with a single argument - the future object. If the " -"future is already done when this is called, the callback is scheduled with :" -"meth:`~AbstractEventLoop.call_soon`." +"If it is desired to completely ignore cancellation (not recommended) the " +"``shield()`` function should be combined with a try/except clause, as " +"follows::" msgstr "" +"Pour ignorer complètement l'annulation (déconseillé), la fonction " +"``shield()`` peut être combinée à une clause *try* / *except*, comme dans le " +"code ci-dessous ::" -#: ../Doc/library/asyncio-task.rst:286 +#: ../Doc/library/asyncio-task.rst:410 +msgid "Timeouts" +msgstr "Délais d'attente" + +#: ../Doc/library/asyncio-task.rst:414 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." +"Wait for the *aw* :ref:`awaitable ` to complete with a " +"timeout." msgstr "" +"Attend la fin de l':ref:`awaitable ` *aw* avec délai " +"d'attente." -#: ../Doc/library/asyncio-task.rst:290 +#: ../Doc/library/asyncio-task.rst:419 msgid "" -":ref:`Use functools.partial to pass parameters to the callback `. For example, ``fut.add_done_callback(functools.partial(print, " -"\"Future:\", flush=True))`` will call ``print(\"Future:\", fut, " -"flush=True)``." +"*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." msgstr "" +"*timeout* peut-être soit ``None``, soit le nombre de secondes (entier ou " +"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:295 +#: ../Doc/library/asyncio-task.rst:423 msgid "" -"The *context* keyword-only parameter was added. See :pep:`567` for more " -"details." +"If a timeout occurs, it cancels the task and raises :exc:`asyncio." +"TimeoutError`." 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:301 -msgid "Remove all instances of a callback from the \"call when done\" list." +#: ../Doc/library/asyncio-task.rst:426 +msgid "" +"To avoid the task :meth:`cancellation `, wrap it in :func:" +"`shield`." 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:303 -msgid "Returns the number of callbacks removed." -msgstr "Donne le nombre de fonctions de rappel supprimées." +#: ../Doc/library/asyncio-task.rst:429 +msgid "" +"The function will wait until the future is actually cancelled, so the total " +"wait time may exceed the *timeout*." +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:307 -msgid "Mark the future done and set its result." -msgstr "Marque le futur comme terminé et définit son résultat." +#: ../Doc/library/asyncio-task.rst:432 +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:309 ../Doc/library/asyncio-task.rst:316 +#: ../Doc/library/asyncio-task.rst:459 msgid "" -"If the future is already done when this method is called, raises :exc:" -"`InvalidStateError`." +"When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " +"cancelled. Previously, it raised :exc:`asyncio.TimeoutError` immediately." msgstr "" +"Si le dépassement du délai d'attente maximal provoque l'annulation de *aw*, " +"``wait_for`` attend que *aw* soit annulée. Auparavant, l'exception :exc:" +"`asyncio.TimeoutError` était immédiatement levée." -#: ../Doc/library/asyncio-task.rst:314 -msgid "Mark the future done and set an exception." -msgstr "Marque le futur comme terminé et définit une exception." +#: ../Doc/library/asyncio-task.rst:466 +msgid "Waiting Primitives" +msgstr "Primitives d'attente" -#: ../Doc/library/asyncio-task.rst:321 -msgid "Return the event loop the future object is bound to." +#: ../Doc/library/asyncio-task.rst:471 +msgid "" +"Run :ref:`awaitable objects ` in the *aws* set " +"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:327 -msgid "Example: Future with run_until_complete()" -msgstr "Exemple : Futur avec ``run_until_complete()``" +#: ../Doc/library/asyncio-task.rst:475 +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 " +"leads to :ref:`confusing behavior `." +msgstr "" +"Si un *awaitable* de *aws* est une coroutine, celle-ci est automatiquement " +"planifiée comme une tâche. Passer directement des objets coroutines à " +"``wait()`` est obsolète, car ceci conduisait :ref:`à un comportement portant " +"à confusion `." + +#: ../Doc/library/asyncio-task.rst:480 +msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." +msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``." + +#: ../Doc/library/asyncio-task.rst:482 +msgid "Usage::" +msgstr "Utilisation ::" -#: ../Doc/library/asyncio-task.rst:329 +#: ../Doc/library/asyncio-task.rst:489 msgid "" -"Example combining a :class:`Future` and a :ref:`coroutine function " -"`::" +"*timeout* (a float or int), if specified, can be used to control the maximum " +"number of seconds to wait before returning." 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:345 +#: ../Doc/library/asyncio-task.rst:492 msgid "" -"The coroutine function is responsible for the computation (which takes 1 " -"second) and it stores the result into the future. The :meth:" -"`~AbstractEventLoop.run_until_complete` method waits for the completion of " -"the future." +"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 " +"second set." msgstr "" +"Cette fonction ne lève pas :exc:`asyncio.TimeoutError`. Les futurs et les " +"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:351 +#: ../Doc/library/asyncio-task.rst:496 msgid "" -"The :meth:`~AbstractEventLoop.run_until_complete` method uses internally " -"the :meth:`~Future.add_done_callback` method to be notified when the future " -"is done." +"*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 :" -#: ../Doc/library/asyncio-task.rst:357 -msgid "Example: Future with run_forever()" -msgstr "Exemple : Futur avec ``run_forever()``" +#: ../Doc/library/asyncio-task.rst:502 +msgid "Constant" +msgstr "Constante" -#: ../Doc/library/asyncio-task.rst:359 -msgid "" -"The previous example can be written differently using the :meth:`Future." -"add_done_callback` method to describe explicitly the control flow::" +#: ../Doc/library/asyncio-task.rst:502 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/asyncio-task.rst:504 +msgid ":const:`FIRST_COMPLETED`" +msgstr ":const:`FIRST_COMPLETED`" + +#: ../Doc/library/asyncio-task.rst:504 +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:382 +#: ../Doc/library/asyncio-task.rst:507 +msgid ":const:`FIRST_EXCEPTION`" +msgstr ":const:`FIRST_EXCEPTION`" + +#: ../Doc/library/asyncio-task.rst:507 msgid "" -"In this example, the future is used to link ``slow_operation()`` to " -"``got_result()``: when ``slow_operation()`` is done, ``got_result()`` is " -"called with the result." +"The function will return when any future finishes by raising an exception. " +"If no future raises an exception then it is equivalent to :const:" +"`ALL_COMPLETED`." msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine en levant une " +"exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" +"`ALL_COMPLETED`." -#: ../Doc/library/asyncio-task.rst:388 -msgid "Task" +#: ../Doc/library/asyncio-task.rst:513 +msgid ":const:`ALL_COMPLETED`" +msgstr ":const:`ALL_COMPLETED`" + +#: ../Doc/library/asyncio-task.rst:513 +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:392 +#: ../Doc/library/asyncio-task.rst:517 msgid "" -"Wrap a :ref:`coroutine ` *coro* into a task and schedule its " -"execution. Return the task object." +"Unlike :func:`~asyncio.wait_for`, ``wait()`` does not cancel the futures " +"when a timeout occurs." 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:395 +#: ../Doc/library/asyncio-task.rst:523 msgid "" -"The task is executed in :func:`get_running_loop` context, :exc:" -"`RuntimeError` is raised if there is no running loop in current thread." +"``wait()`` schedules coroutines as Tasks automatically and later returns " +"those implicitly created Task objects in ``(done, pending)`` sets. " +"Therefore the following code won't work as expected::" 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 ::" + +#: ../Doc/library/asyncio-task.rst:536 +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:547 +msgid "Passing coroutine objects to ``wait()`` directly is deprecated." +msgstr "Passer directement des objets coroutines à ``wait()`` est obsolète." -#: ../Doc/library/asyncio-task.rst:403 +#: ../Doc/library/asyncio-task.rst:553 msgid "" -"A unit for concurrent running of :ref:`coroutines `, subclass of :" -"class:`Future`." +"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." 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:406 +#: ../Doc/library/asyncio-task.rst:558 msgid "" -"A task is responsible for executing a coroutine object in an event loop. If " -"the wrapped coroutine yields from a future, the task suspends the execution " -"of the wrapped coroutine and waits for the completion of the future. When " -"the future is done, the execution of the wrapped coroutine restarts with the " -"result or the exception of the future." +"Raises :exc:`asyncio.TimeoutError` if the timeout occurs before all Futures " +"are done." 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:412 -msgid "" -"Event loops use cooperative scheduling: an event loop only runs one task at " -"a time. Other tasks may run in parallel if other event loops are running in " -"different threads. While a task waits for the completion of a future, the " -"event loop executes a new task." +#: ../Doc/library/asyncio-task.rst:569 +msgid "Scheduling From Other Threads" +msgstr "Planification depuis d'autres fils d'exécution" + +#: ../Doc/library/asyncio-task.rst:573 +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:417 +#: ../Doc/library/asyncio-task.rst:575 msgid "" -"The cancellation of a task is different from the cancellation of a future. " -"Calling :meth:`cancel` will throw a :exc:`~concurrent.futures." -"CancelledError` to the wrapped coroutine. :meth:`~Future.cancelled` only " -"returns ``True`` if the wrapped coroutine did not catch the :exc:" -"`~concurrent.futures.CancelledError` exception, or raised a :exc:" -"`~concurrent.futures.CancelledError` exception." +"Return a :class:`concurrent.futures.Future` to wait for the result from " +"another OS thread." 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:425 +#: ../Doc/library/asyncio-task.rst:578 msgid "" -"If a pending task is destroyed, the execution of its wrapped :ref:`coroutine " -"` did not complete. It is probably a bug and a warning is logged: " -"see :ref:`Pending task destroyed `." +"This function is meant to be called from a different OS thread than the one " +"where the event loop is running. Example::" 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:429 +#: ../Doc/library/asyncio-task.rst:590 msgid "" -"Don't directly create :class:`Task` instances: use the :func:`create_task` " -"function or the :meth:`AbstractEventLoop.create_task` method." +"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::" msgstr "" +"Si une exception est levée dans une coroutine, le futur renvoyé en sera " +"averti. Elle peut également être utilisée pour annuler la tâche de la boucle " +"d'événement ::" -#: ../Doc/library/asyncio-task.rst:432 +#: ../Doc/library/asyncio-task.rst:604 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 " -"context. See :pep:`567` for more details." +"See the :ref:`concurrency and multithreading ` " +"section of the documentation." msgstr "" +"Voir la section :ref:`exécution concurrente et multi-fils d'exécution " +"` de la documentation." -#: ../Doc/library/asyncio-task.rst:438 -msgid "Added support for the :mod:`contextvars` module." +#: ../Doc/library/asyncio-task.rst:607 +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." -#: ../Doc/library/asyncio-task.rst:443 -msgid "Return a set of all tasks for an event loop." -msgstr "Donne l'ensemble des tâches d'une boucle d'évènements." +#: ../Doc/library/asyncio-task.rst:614 +msgid "Introspection" +msgstr "Introspection" -#: ../Doc/library/asyncio-task.rst:445 +#: ../Doc/library/asyncio-task.rst:619 msgid "" -"By default all tasks for the current event loop are returned. If *loop* is " -"``None``, :func:`get_event_loop` function is used to get the current loop." +"Return the currently running :class:`Task` instance, or ``None`` if no task " +"is running." 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:451 -msgid "Return the currently running task in an event loop or ``None``." +#: ../Doc/library/asyncio-task.rst:622 +msgid "" +"If *loop* is ``None`` :func:`get_running_loop` is used to get the current " +"loop." 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:453 -msgid "By default the current task for the current event loop is returned." +#: ../Doc/library/asyncio-task.rst:630 +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:455 -msgid "``None`` is returned when called not in the context of a :class:`Task`." +#: ../Doc/library/asyncio-task.rst:633 +msgid "" +"If *loop* is ``None``, :func:`get_running_loop` is used for getting current " +"loop." 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:459 -msgid "Request that this task cancel itself." -msgstr "Demande à ce qu'une tâche s'annule elle même." +#: ../Doc/library/asyncio-task.rst:640 +msgid "Task Object" +msgstr "Objets *Task*" -#: ../Doc/library/asyncio-task.rst:461 +#: ../Doc/library/asyncio-task.rst:644 msgid "" -"This arranges for a :exc:`~concurrent.futures.CancelledError` to be thrown " -"into the wrapped coroutine on the next cycle through the event loop. The " -"coroutine then has a chance to clean up or even deny the request using try/" -"except/finally." +"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 " +"programmes à fils d'exécution multiples." -#: ../Doc/library/asyncio-task.rst:466 +#: ../Doc/library/asyncio-task.rst:647 msgid "" -"Unlike :meth:`Future.cancel`, this does not guarantee that the task will be " -"cancelled: the exception might be caught and acted upon, delaying " -"cancellation of the task or preventing cancellation completely. The task may " -"also return a value or raise a different exception." +"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 " +"completion of the Future. When the Future is *done*, the execution of the " +"wrapped coroutine resumes." msgstr "" +"Les tâches servent à exécuter des coroutines dans des boucles d'événements. " +"Si une coroutine attend un futur, la tâche interrompt son exécution et " +"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:471 +#: ../Doc/library/asyncio-task.rst:653 msgid "" -"Immediately after this method is called, :meth:`~Future.cancelled` will not " -"return ``True`` (unless the task was already cancelled). A task will be " -"marked as cancelled when the wrapped coroutine terminates with a :exc:" -"`~concurrent.futures.CancelledError` exception (even if :meth:`cancel` was " -"not called)." +"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 " +"runs other Tasks, callbacks, or performs IO operations." msgstr "" +"Les boucles d'événement fonctionnent de manière *coopérative* : une boucle " +"d'événement exécute une tâche à la fois. Quand une tâche attend la fin d'un " +"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:479 -msgid "Return the list of stack frames for this task's coroutine." -msgstr "" - -#: ../Doc/library/asyncio-task.rst:481 +#: ../Doc/library/asyncio-task.rst:658 msgid "" -"If the coroutine is not done, this returns the stack where it is suspended. " -"If the coroutine has completed successfully or was cancelled, this returns " -"an empty list. If the coroutine was terminated by an exception, this " -"returns the list of traceback frames." +"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. " +"Manual instantiation of Tasks is discouraged." msgstr "" +"La fonction de haut niveau :func:`asyncio.create_task` et les fonctions de " +"bas-niveau :meth:`loop.create_task` ou :func:`ensure_future` permettent de " +"créer des tâches. Il est déconseillé d'instancier manuellement des objets " +"*Task*." -#: ../Doc/library/asyncio-task.rst:487 -msgid "The frames are always ordered from oldest to newest." -msgstr "" - -#: ../Doc/library/asyncio-task.rst:489 +#: ../Doc/library/asyncio-task.rst:663 msgid "" -"The optional limit gives the maximum number of frames to return; by default " -"all available frames are returned. Its meaning differs depending on whether " -"a stack or a traceback is returned: the newest frames of a stack are " -"returned, but the oldest frames of a traceback are returned. (This matches " -"the behavior of the traceback module.)" +"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 " +"coroutine. If a coroutine is awaiting on a Future object during " +"cancellation, the Future object will be cancelled." msgstr "" +"La méthode :meth:`cancel` d'une tâche en cours d'exécution permet d'annuler " +"celle-ci. L'appel de cette méthode force la tâche à lever l'exception :exc:" +"`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:495 +#: ../Doc/library/asyncio-task.rst:668 msgid "" -"For reasons beyond our control, only one stack frame is returned for a " -"suspended coroutine." +":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:" +"`CancelledError` exception and was actually cancelled." msgstr "" +"La méthode :meth:`cancelled` permet de vérifier si la tâche a été annulée. " +"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:500 -msgid "Print the stack or traceback for this task's coroutine." +#: ../Doc/library/asyncio-task.rst:673 +msgid "" +":class:`asyncio.Task` inherits from :class:`Future` all of its APIs except :" +"meth:`Future.set_result` and :meth:`Future.set_exception`." 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:502 +#: ../Doc/library/asyncio-task.rst:677 msgid "" -"This produces output similar to that of the traceback module, for the frames " -"retrieved by get_stack(). The limit argument is passed to get_stack(). The " -"file argument is an I/O stream to which the output is written; by default " -"output is written to sys.stderr." +"Tasks support the :mod:`contextvars` module. When a Task is created it " +"copies the current context and later runs its coroutine in the copied " +"context." msgstr "" +"*Task* implémente le module :mod:`contextvars`. Lors de sa création, une " +"tâche effectue une copie du contexte actuel et exécutera ses coroutines dans " +"cette copie." -#: ../Doc/library/asyncio-task.rst:509 -msgid "Example: Parallel execution of tasks" -msgstr "Exemple : Exécution parallèle de tâches" - -#: ../Doc/library/asyncio-task.rst:511 -msgid "Example executing 3 tasks (A, B, C) in parallel::" -msgstr "Exemple d'exécution de trois tâches (A, B, C) en parallèle : ::" +#: ../Doc/library/asyncio-task.rst:681 +msgid "Added support for the :mod:`contextvars` module." +msgstr "Ajout du support du module :mod:`contextvars`." -#: ../Doc/library/asyncio-task.rst:531 -msgid "Output::" -msgstr "Sortie ::" +#: ../Doc/library/asyncio-task.rst:686 +msgid "Request the Task to be cancelled." +msgstr "Demande l'annulation d'une tâche." -#: ../Doc/library/asyncio-task.rst:543 +#: ../Doc/library/asyncio-task.rst:688 msgid "" -"A task is automatically scheduled for execution when it is created. The " -"event loop stops when all tasks are done." +"This arranges for a :exc:`CancelledError` exception to be thrown into the " +"wrapped coroutine on the next cycle of the event loop." msgstr "" +"Provisionne la levée de l'exception :exc:`CancelledError` dans la coroutine " +"encapsulée. L'exception sera levée au prochain cycle de la boucle " +"d'exécution." -#: ../Doc/library/asyncio-task.rst:548 -msgid "Task functions" +#: ../Doc/library/asyncio-task.rst:691 +msgid "" +"The coroutine then has a chance to clean up or even deny the request by " +"suppressing the exception with a :keyword:`try` ... ... ``except " +"CancelledError`` ... :keyword:`finally` block. Therefore, unlike :meth:" +"`Future.cancel`, :meth:`Task.cancel` does not guarantee that the Task will " +"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 " +"annulée, bien qu'ignorer totalement une annulation ne soit ni une pratique " +"courante, ni encouragé." -#: ../Doc/library/asyncio-task.rst:552 +#: ../Doc/library/asyncio-task.rst:701 msgid "" -"In the functions below, the optional *loop* argument allows explicitly " -"setting the event loop object used by the underlying task or coroutine. If " -"it's not provided, the default event loop is used." +"The following example illustrates how coroutines can intercept the " +"cancellation request::" msgstr "" +"L'exemple ci-dessous illustre comment une coroutine peut intercepter une " +"requête d'annulation ::" + +#: ../Doc/library/asyncio-task.rst:740 +msgid "Return ``True`` if the Task is *cancelled*." +msgstr "Renvoie ``True`` si la tâche est *annulée*." -#: ../Doc/library/asyncio-task.rst:559 +#: ../Doc/library/asyncio-task.rst:742 msgid "" -"Return the current running :class:`Task` instance or ``None``, if no task is " -"running." +"The Task is *cancelled* when the cancellation was requested with :meth:" +"`cancel` and the wrapped coroutine propagated the :exc:`CancelledError` " +"exception thrown into it." msgstr "" +"La tâche est *annulée* quand l'annulation a été demandée avec :meth:`cancel` " +"et la coroutine encapsulée a propagé l'exception :exc:`CancelledError` qui a " +"été levée en son sein." -#: ../Doc/library/asyncio-task.rst:562 +#: ../Doc/library/asyncio-task.rst:748 +msgid "Return ``True`` if the Task is *done*." +msgstr "Renvoie ``True`` si la tâche est *achevée*." + +#: ../Doc/library/asyncio-task.rst:750 msgid "" -"If *loop* is ``None`` :func:`get_running_loop` is used to get the current " -"loop." +"A Task is *done* when the wrapped coroutine either returned a value, raised " +"an exception, or the Task was cancelled." 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:570 -msgid "Return a set of :class:`Task` objects created for the loop." -msgstr "Donne un ensemble contenant les :class:`Task` crées pour la boucle." +#: ../Doc/library/asyncio-task.rst:755 +msgid "Return the result of the Task." +msgstr "Renvoie le résultat de la tâche." -#: ../Doc/library/asyncio-task.rst:572 +#: ../Doc/library/asyncio-task.rst:757 msgid "" -"If *loop* is ``None``, :func:`get_running_loop` is used for getting current " -"loop (contrary to the deprecated :meth:`Task.all_tasks` method that uses :" -"func:`get_event_loop`.)" +"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.)" msgstr "" +"Si la tâche est *achevée*, le résultat de la coroutine encapsulée est " +"renvoyé (sinon, dans le cas où la coroutine a levé une exception, cette " +"exception est de nouveau levée)." -#: ../Doc/library/asyncio-task.rst:581 +#: ../Doc/library/asyncio-task.rst:761 ../Doc/library/asyncio-task.rst:775 msgid "" -"Return an iterator whose values, when waited for, are :class:`Future` " -"instances." +"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:" +"`CancelledError`." -#: ../Doc/library/asyncio-task.rst:584 +#: ../Doc/library/asyncio-task.rst:764 msgid "" -"Raises :exc:`asyncio.TimeoutError` if the timeout occurs before all Futures " -"are done." +"If the Task'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-task.rst:587 -msgid "Example::" -msgstr "Exemple ::" +#: ../Doc/library/asyncio-task.rst:769 +msgid "Return the exception of the Task." +msgstr "Renvoie l'exception de la tâche." -#: ../Doc/library/asyncio-task.rst:595 -msgid "The futures ``f`` are not necessarily members of fs." +#: ../Doc/library/asyncio-task.rst:771 +msgid "" +"If the wrapped coroutine raised an exception that exception is returned. If " +"the wrapped coroutine returned normally this method returns ``None``." 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:599 +#: ../Doc/library/asyncio-task.rst:778 msgid "" -"Schedule the execution of a :ref:`coroutine object `: wrap it in " -"a future. Return a :class:`Task` object." +"If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " +"exception." msgstr "" +"Si la tâche n'est pas encore *achevée*, cette méthode lève une exception :" +"exc:`InvalidStateError`." -#: ../Doc/library/asyncio-task.rst:602 -msgid "If the argument is a :class:`Future`, it is returned directly." +#: ../Doc/library/asyncio-task.rst:783 +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:606 -msgid "The function accepts any :term:`awaitable` object." -msgstr "La fonction accepte n'importe quel objet :term:`awaitable`." - -#: ../Doc/library/asyncio-task.rst:611 -msgid "" -":func:`create_task` (added in Python 3.7) is the preferable way for spawning " -"new tasks." +#: ../Doc/library/asyncio-task.rst:785 ../Doc/library/asyncio-task.rst:794 +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:616 +#: ../Doc/library/asyncio-task.rst:787 msgid "" -"The :func:`create_task` function and :meth:`AbstractEventLoop.create_task` " -"method." +"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:621 -msgid "" -"Wrap a :class:`concurrent.futures.Future` object in a :class:`Future` object." -msgstr "" +#: ../Doc/library/asyncio-task.rst:792 +msgid "Remove *callback* from the callbacks list." +msgstr "Retire *callback* de la liste de fonctions de rappel." -#: ../Doc/library/asyncio-task.rst:626 +#: ../Doc/library/asyncio-task.rst:796 msgid "" -"Return a future aggregating results from the given coroutine objects or " -"futures." +"See the documentation of :meth:`Future.remove_done_callback` for more " +"details." msgstr "" +"Se référer à la documentation de :meth:`Future.remove_done_callback` pour " +"plus de détails." -#: ../Doc/library/asyncio-task.rst:629 -msgid "" -"All futures must share the same event loop. If all the tasks are done " -"successfully, the returned future's result is the list of results (in the " -"order of the original sequence, not necessarily the order of results " -"arrival). If *return_exceptions* is true, exceptions in the tasks are " -"treated the same as successful results, and gathered in the result list; " -"otherwise, the first raised exception will be immediately propagated to the " -"returned future." -msgstr "" +#: ../Doc/library/asyncio-task.rst:801 +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:637 +#: ../Doc/library/asyncio-task.rst:803 msgid "" -"Cancellation: if the outer Future is cancelled, all children (that have not " -"completed yet) are also cancelled. If any child is cancelled, this is " -"treated as if it raised :exc:`~concurrent.futures.CancelledError` -- the " -"outer Future is *not* cancelled in this case. (This is to prevent the " -"cancellation of one child to cause other children to be cancelled.)" +"If the wrapped coroutine is not done, this returns the stack where it is " +"suspended. If the coroutine has completed successfully or was cancelled, " +"this returns an empty list. If the coroutine was terminated by an exception, " +"this returns the list of traceback frames." msgstr "" +"Si la coroutine encapsulée n'est pas terminée, cette fonction renvoie la " +"pile d'appels à partir de l'endroit où celle-ci est interrompue. Si la " +"coroutine s'est terminée normalement ou a été annulée, cette fonction " +"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:643 +#: ../Doc/library/asyncio-task.rst:809 +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:811 +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:813 msgid "" -"If the *gather* itself is cancelled, the cancellation is propagated " -"regardless of *return_exceptions*." +"The optional *limit* argument sets the maximum number of frames to return; " +"by default all available frames are returned. The ordering of the returned " +"list differs depending on whether a stack or a traceback is returned: the " +"newest frames of a stack are returned, but the oldest frames of a traceback " +"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 " +"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:822 +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:649 +#: ../Doc/library/asyncio-task.rst:824 msgid "" -"Return ``True`` if *obj* is a :ref:`coroutine object `, which may " -"be based on a generator or an :keyword:`async def` coroutine." +"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*. " + +#: ../Doc/library/asyncio-task.rst:827 +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:654 +#: ../Doc/library/asyncio-task.rst:829 msgid "" -"Return ``True`` if *func* is determined to be a :ref:`coroutine function " -"`, which may be a decorated generator function or an :keyword:" -"`async def` function." +"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`." -#: ../Doc/library/asyncio-task.rst:660 -msgid "Submit a :ref:`coroutine object ` to a given event loop." -msgstr "" +#: ../Doc/library/asyncio-task.rst:834 +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:662 -msgid "Return a :class:`concurrent.futures.Future` to access the result." +#: ../Doc/library/asyncio-task.rst:836 +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 " +"loop." msgstr "" +"Par défaut, toutes les tâches de la boucle d'exécution actuelle sont " +"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:664 +#: ../Doc/library/asyncio-task.rst:840 msgid "" -"This function is meant to be called from a different thread than the one " -"where the event loop is running. Usage::" +"This method is **deprecated** and will be removed in Python 3.9. 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." + +#: ../Doc/library/asyncio-task.rst:845 +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:674 +#: ../Doc/library/asyncio-task.rst:847 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::" +"If *loop* is ``None``, the :func:`get_event_loop` function is used to get " +"the current loop." 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:687 +#: ../Doc/library/asyncio-task.rst:850 msgid "" -"See the :ref:`concurrency and multithreading ` " -"section of the documentation." +"This method is **deprecated** and will be removed in Python 3.9. 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." -#: ../Doc/library/asyncio-task.rst:692 +#: ../Doc/library/asyncio-task.rst:858 +msgid "Generator-based Coroutines" +msgstr "Coroutines basées sur des générateurs" + +#: ../Doc/library/asyncio-task.rst:862 msgid "" -"Unlike other functions from the module, :func:`run_coroutine_threadsafe` " -"requires the *loop* argument to be passed explicitly." +"Support for generator-based coroutines is **deprecated** and is scheduled " +"for removal in Python 3.10." 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:700 +#: ../Doc/library/asyncio-task.rst:865 msgid "" -"Create a :ref:`coroutine ` that completes after a given time (in " -"seconds). If *result* is provided, it is produced to the caller when the " -"coroutine completes." +"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 " +"expressions ``yield from`` pour attendre des *futurs* et autres coroutines." -#: ../Doc/library/asyncio-task.rst:704 +#: ../Doc/library/asyncio-task.rst:869 msgid "" -"The resolution of the sleep depends on the :ref:`granularity of the event " -"loop `." +"Generator-based coroutines should be decorated with :func:`@asyncio." +"coroutine `, although this is not enforced." msgstr "" +"Les coroutines basées sur des générateurs doivent être décorées avec :func:" +"`@asyncio.coroutine `, même si ce n'est pas vérifié par " +"l'interpréteur." -#: ../Doc/library/asyncio-task.rst:707 ../Doc/library/asyncio-task.rst:774 -msgid "This function is a :ref:`coroutine `." -msgstr "Cette fonction est une :ref:`coroutine `." - -#: ../Doc/library/asyncio-task.rst:711 -msgid "Wait for a future, shielding it from cancellation." -msgstr "Attends un future, en le protégeant des annulations." - -#: ../Doc/library/asyncio-task.rst:713 -msgid "The statement::" -msgstr "L'instruction : ::" - -#: ../Doc/library/asyncio-task.rst:717 -msgid "is exactly equivalent to the statement::" -msgstr "est exactement équivalente à l'instruction : ::" +#: ../Doc/library/asyncio-task.rst:876 +msgid "Decorator to mark generator-based coroutines." +msgstr "Décorateur pour coroutines basées sur des générateurs." -#: ../Doc/library/asyncio-task.rst:721 +#: ../Doc/library/asyncio-task.rst:878 msgid "" -"*except* that if the coroutine containing it is cancelled, the task running " -"in ``something()`` is not cancelled. From the point of view of " -"``something()``, the cancellation did not happen. But its caller is still " -"cancelled, so the yield-from expression still raises :exc:`~concurrent." -"futures.CancelledError`. Note: If ``something()`` is cancelled by other " -"means this will still cancel ``shield()``." +"This decorator enables legacy generator-based coroutines to be compatible " +"with async/await code::" 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:728 +#: ../Doc/library/asyncio-task.rst:888 msgid "" -"If you want to completely ignore cancellation (not recommended) you can " -"combine ``shield()`` with a try/except clause, as follows::" +"This decorator is **deprecated** and is scheduled for removal in Python 3.10." msgstr "" +"Ce décorateur est **obsolète** et il est prévu de le supprimer en Python " +"3.10." -#: ../Doc/library/asyncio-task.rst:740 -msgid "" -"Wait for the Futures and coroutine objects given by the sequence *futures* " -"to complete. Coroutines will be wrapped in Tasks. Returns two sets of :" -"class:`Future`: (done, pending)." +#: ../Doc/library/asyncio-task.rst:891 +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:744 -msgid "The sequence *futures* must not be empty." -msgstr "" +#: ../Doc/library/asyncio-task.rst:896 +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:746 +#: ../Doc/library/asyncio-task.rst:898 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." +"This method is different from :func:`inspect.iscoroutine` because it returns " +"``True`` for generator-based coroutines." 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:750 +#: ../Doc/library/asyncio-task.rst:903 +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:906 msgid "" -"*return_when* indicates when this function should return. It must be one of " -"the following constants of the :mod:`concurrent.futures` module:" +"This method is different from :func:`inspect.iscoroutinefunction` because it " +"returns ``True`` for generator-based coroutine functions decorated with :" +"func:`@coroutine `." msgstr "" +"Cette méthode est différente de :func:`inspect.iscoroutinefunction` car elle " +"renvoie ``True`` pour des coroutines basées sur des générateurs, décorées " +"avec :func:`@coroutine `." -#: ../Doc/library/asyncio-task.rst:756 -msgid "Constant" -msgstr "Constante" +#~ msgid "Tasks and coroutines" +#~ msgstr "Tâches et coroutines" -#: ../Doc/library/asyncio-task.rst:756 -msgid "Description" -msgstr "Description" +#~ msgid "Things a coroutine can do:" +#~ msgstr "Les choses que les coroutines peuvent faire :" -#: ../Doc/library/asyncio-task.rst:758 -msgid ":const:`FIRST_COMPLETED`" -msgstr ":const:`FIRST_COMPLETED`" +#~ msgid "Example: Hello World coroutine" +#~ msgstr "Exemple : Coroutine \"Hello World\"" -#: ../Doc/library/asyncio-task.rst:758 -msgid "The function will return when any future finishes or is cancelled." -msgstr "" +#~ msgid "Example: Chain coroutines" +#~ msgstr "Exemple : Chaîner des coroutines" -#: ../Doc/library/asyncio-task.rst:761 -msgid ":const:`FIRST_EXCEPTION`" -msgstr ":const:`FIRST_EXCEPTION`" +#~ msgid "InvalidStateError" +#~ msgstr "InvalidStateError" -#: ../Doc/library/asyncio-task.rst:761 -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:" -"`ALL_COMPLETED`." -msgstr "" +#~ msgid "The operation is not allowed in this state." +#~ msgstr "L'opération n'est pas autorisée dans cet état." -#: ../Doc/library/asyncio-task.rst:767 -msgid ":const:`ALL_COMPLETED`" -msgstr ":const:`ALL_COMPLETED`" +#~ msgid "The operation exceeded the given deadline." +#~ msgstr "L'opération a dépassé le délai donné." -#: ../Doc/library/asyncio-task.rst:767 -msgid "The function will return when all futures finish or are cancelled." -msgstr "" +#~ msgid "Differences:" +#~ msgstr "Différences :" -#: ../Doc/library/asyncio-task.rst:771 -msgid "" -"Unlike :func:`~asyncio.wait_for`, ``wait()`` will not cancel the futures " -"when a timeout occurs." -msgstr "" +#~ msgid "Returns the number of callbacks removed." +#~ msgstr "Donne le nombre de fonctions de rappel supprimées." -#: ../Doc/library/asyncio-task.rst:776 -msgid "Usage::" -msgstr "" +#~ msgid "Mark the future done and set its result." +#~ msgstr "Marque le futur comme terminé et définit son résultat." -#: ../Doc/library/asyncio-task.rst:782 -msgid "" -"This does not raise :exc:`asyncio.TimeoutError`! Futures that aren't done " -"when the timeout occurs are returned in the second set." -msgstr "" +#~ msgid "Mark the future done and set an exception." +#~ msgstr "Marque le futur comme terminé et définit une exception." -#: ../Doc/library/asyncio-task.rst:788 -msgid "" -"Wait for the single :class:`Future` or :ref:`coroutine object ` " -"to complete with timeout. If *timeout* is ``None``, block until the future " -"completes." -msgstr "" +#~ msgid "Example: Future with run_until_complete()" +#~ msgstr "Exemple : Futur avec ``run_until_complete()``" -#: ../Doc/library/asyncio-task.rst:792 -msgid "Coroutine will be wrapped in :class:`Task`." -msgstr "" +#~ msgid "Example: Future with run_forever()" +#~ msgstr "Exemple : Futur avec ``run_forever()``" -#: ../Doc/library/asyncio-task.rst:794 -msgid "" -"Returns result of the Future or coroutine. When a timeout occurs, it " -"cancels the task and raises :exc:`asyncio.TimeoutError`. To avoid the task " -"cancellation, wrap it in :func:`shield`. The function will wait until the " -"future is actually cancelled, so the total wait time may exceed the " -"*timeout*." -msgstr "" +#~ msgid "Example: Parallel execution of tasks" +#~ msgstr "Exemple : Exécution parallèle de tâches" -#: ../Doc/library/asyncio-task.rst:800 -msgid "If the wait is cancelled, the future *fut* is also cancelled." -msgstr "" +#~ msgid "Example executing 3 tasks (A, B, C) in parallel::" +#~ msgstr "Exemple d'exécution de trois tâches (A, B, C) en parallèle ::" -#: ../Doc/library/asyncio-task.rst:802 -msgid "This function is a :ref:`coroutine `, usage::" -msgstr "Cette fonction est une :ref:`coroutine `, utilisation : ::" +#~ msgid "Output::" +#~ msgstr "Sortie ::" -#: ../Doc/library/asyncio-task.rst:806 -msgid "If the wait is cancelled, the future *fut* is now also cancelled." -msgstr "" +#~ msgid "The function accepts any :term:`awaitable` object." +#~ msgstr "La fonction accepte n'importe quel objet :term:`awaitable`." -#: ../Doc/library/asyncio-task.rst:809 -msgid "" -"When *fut* is cancelled due to a timeout, ``wait_for`` now waits for *fut* " -"to be cancelled. Previously, it raised :exc:`~asyncio.TimeoutError` " -"immediately." -msgstr "" +#~ msgid "This function is a :ref:`coroutine `, usage::" +#~ msgstr "Cette fonction est une :ref:`coroutine `, utilisation ::" #~ msgid "A deprecated alias to :func:`ensure_future`." #~ msgstr "Un alias obsolète de :func:`ensure_future`." #~ msgid "The same coroutine implemented using a generator::" -#~ msgstr "La même coroutine implémentée en utilisant un générateur : ::" +#~ msgstr "La même coroutine implémentée en utilisant un générateur ::" diff --git a/library/asyncio.po b/library/asyncio.po index 4cb134fec..aa5c10ad6 100644 --- a/library/asyncio.po +++ b/library/asyncio.po @@ -5,128 +5,233 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-27 23:17+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-04-03 13:15+0200\n" +"PO-Revision-Date: 2018-12-16 16:19+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.9\n" +"X-Generator: Poedit 2.0.6\n" -#: ../Doc/library/asyncio.rst:2 -msgid ":mod:`asyncio` --- Asynchronous I/O, event loop, coroutines and tasks" -msgstr "" -":mod:`asyncio` — Entrées/Sorties asynchrone, boucle d’évènements, coroutines " -"et tâches" +#: ../Doc/library/asyncio.rst:66 +msgid "High-level APIs" +msgstr "Bibliothèques de haut-niveau" -#: ../Doc/library/asyncio.rst:9 -msgid "**Source code:** :source:`Lib/asyncio/`" -msgstr "**Code source :** :source:`Lib/asyncio/`" +#: ../Doc/library/asyncio.rst:77 +msgid "Low-level APIs" +msgstr "Bibliothèques de bas-niveau" -#: ../Doc/library/asyncio.rst:13 -msgid "" -"This module provides infrastructure for writing single-threaded concurrent " -"code using coroutines, multiplexing I/O access over sockets and other " -"resources, running network clients and servers, and other related " -"primitives. Here is a more detailed list of the package contents:" -msgstr "" -"Ce module fournit l’infrastructure pour écrire des programmes à fil " -"d’exécution unique (*single-thread en anglais*) mais permettant l’exécution " -"de code concurrent en utilisant les coroutines, les accès multiplexés aux " -"entrées-sorties par l’intermédiaire de *sockets* ou autres ressources, la " -"gestion de clients et serveurs réseaux et d’autres fonctions primitives " -"associées. Voici une liste plus détaillée du contenu du paquet :" - -#: ../Doc/library/asyncio.rst:18 -msgid "" -"a pluggable :ref:`event loop ` with various system-" -"specific implementations;" -msgstr "" -"une :ref:`boucle d’évènements ` prête à l’emploi dont " -"les implémentations sont spécifiques à leur plateforme ;" +#: ../Doc/library/asyncio.rst:87 +msgid "Guides and Tutorials" +msgstr "Guides et tutoriels" -#: ../Doc/library/asyncio.rst:21 -msgid "" -":ref:`transport ` and :ref:`protocol ` " -"abstractions (similar to those in `Twisted `_);" -msgstr "" -"Des abstractions pour les couches :ref:`transport ` et :" -"ref:`protocole ` (similaire à celles proposées par " -"`Twisted `_) ;" +#: ../Doc/library/asyncio.rst:2 +msgid ":mod:`asyncio` --- Asynchronous I/O" +msgstr ":mod:`asyncio` — Entrées/Sorties asynchrones" -#: ../Doc/library/asyncio.rst:24 +#: ../Doc/library/asyncio.rst:None +msgid "Hello World!" +msgstr "Hello World !" + +#: ../Doc/library/asyncio.rst:23 msgid "" -"concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and " -"others (some may be system-dependent);" +"asyncio is a library to write **concurrent** code using the **async/await** " +"syntax." msgstr "" -"pour la gestion effective de TCP, UDP, SSL, la communication inter-processus " -"par tubes, les appels différés, et autres (certains peuvent être dépendant " -"du système) ;" +"`asyncio` est une bibliothèque permettant de faire de la programmation " +"asynchrone en utilisant la syntaxe *async*/*await*." -#: ../Doc/library/asyncio.rst:27 +#: ../Doc/library/asyncio.rst:26 msgid "" -"a :class:`Future` class that mimics the one in the :mod:`concurrent.futures` " -"module, but adapted for use with the event loop;" +"asyncio is used as a foundation for multiple Python asynchronous frameworks " +"that provide high-performance network and web-servers, database connection " +"libraries, distributed task queues, etc." msgstr "" -"une classe :class:`Future` qui imite celle du :mod:`concurrent.futures` " -"module, mais qui est adaptée pour fonctionner avec la boucle d’évènements ;" +"`asyncio` constitue la base de nombreux cadriciels (*frameworks*) Python " +"asynchrones qui fournissent des utilitaires réseau et des serveurs web " +"performants, des bibliothèques de connexion à des bases de données, des " +"files d'exécution distribuées, etc." #: ../Doc/library/asyncio.rst:30 msgid "" -"coroutines and tasks based on ``yield from`` (:PEP:`380`), to help write " -"concurrent code in a sequential fashion;" +"asyncio is often a perfect fit for IO-bound and high-level **structured** " +"network code." msgstr "" -"des coroutines et tâches qui se basent sur ``yield from`` (:PEP:`380`), pour " -"écrire du code concurrent de manière séquentielle ;" +"`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 -msgid "cancellation support for :class:`Future`\\s and coroutines;" +msgid "asyncio provides a set of **high-level** APIs to:" msgstr "" -"annulation de la gestion de la classe :class:`Future`\\s et coroutines ;" +"`asyncio` fournit des interfaces de programmation **haut-niveau** pour :" #: ../Doc/library/asyncio.rst:35 msgid "" -":ref:`synchronization primitives ` for use between coroutines " -"in a single thread, mimicking those in the :mod:`threading` module;" +":ref:`run Python coroutines ` concurrently and have full control " +"over their execution;" msgstr "" -":ref:`des primitives de synchronisation ` à utiliser entre des " -"coroutines dans un fil d’exécution unique, en imitant celles présentes dans " -"le module :mod:`threading` ;" +":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 -msgid "" -"an interface for passing work off to a threadpool, for times when you " -"absolutely, positively have to use a library that makes blocking I/O calls." +msgid "perform :ref:`network IO and IPC `;" msgstr "" -"une interface pour déléguer des tâches à un groupe de fils d’exécutions, " -"lorsque vous avez absolument besoin d’utiliser une bibliothèque qui effectue " -"des entrées-sorties bloquantes." +"effectuer :ref:`des entrées/sorties réseau et de la communication inter-" +"processus ` ;" + +#: ../Doc/library/asyncio.rst:40 +msgid "control :ref:`subprocesses `;" +msgstr "contrôler des :ref:`sous-processus ` ;" #: ../Doc/library/asyncio.rst:42 +msgid "distribute tasks via :ref:`queues `;" +msgstr "distribuer des tâches avec des :ref:`queues ` ;" + +#: ../Doc/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 +msgid "" +"Additionally, there are **low-level** APIs for *library and framework " +"developers* to:" +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 msgid "" -"Asynchronous programming is more complex than classical \"sequential\" " -"programming: see the :ref:`Develop with asyncio ` page which " -"lists common traps and explains how to avoid them. :ref:`Enable the debug " -"mode ` during development to detect common issues." +"create and manage :ref:`event loops `, which provide " +"asynchronous APIs for :meth:`networking `, running :meth:" +"`subprocesses `, handling :meth:`OS signals `, etc;" msgstr "" -"Programmer de façon asynchrone est plus complexe que programmer d’une façon " -"séquentielle : lisez la page :ref:`Develop with asyncio ` qui " -"liste les pièges fréquents et explique la manière de les éviter. :ref:" -"`Activer le mode de débogage d’asyncio ` pendant le " -"développement afin de détecter les problèmes courants." +"créer et gérer des :ref:`boucles d'événements `, qui " +"fournissent des bibliothèques asynchrones de :meth:`réseau `, d'exécution de :meth:`subprocesses `, " +"de gestion de :meth:`signaux système `, etc ;" -#: ../Doc/library/asyncio.rst:47 -msgid "Table of contents:" -msgstr "Table des matières :" +#: ../Doc/library/asyncio.rst:54 +msgid "" +"implement efficient protocols using :ref:`transports `;" +msgstr "" +"implémenter des protocoles efficaces à l'aide de :ref:`transports ` ;" -#: ../Doc/library/asyncio.rst:64 +#: ../Doc/library/asyncio.rst:57 msgid "" -"The :mod:`asyncio` module was designed in :PEP:`3156`. For a motivational " -"primer on transports and protocols, see :PEP:`3153`." +":ref:`bridge ` callback-based libraries and code with async/" +"await syntax." msgstr "" -"Le module :mod:`asyncio` a été présenté dans la :PEP:`3156`. La :PEP:`3153` " -"décrit les motivations premières concernant les couches transports et " -"protocoles." +":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 +msgid "Reference" +msgstr "Sommaire" + +#~ msgid "**Source code:** :source:`Lib/asyncio/`" +#~ msgstr "**Code source :** :source:`Lib/asyncio/`" + +#~ msgid "" +#~ "This module provides infrastructure for writing single-threaded " +#~ "concurrent code using coroutines, multiplexing I/O access over sockets " +#~ "and other resources, running network clients and servers, and other " +#~ "related primitives. Here is a more detailed list of the package contents:" +#~ msgstr "" +#~ "Ce module fournit l’infrastructure pour écrire des programmes à fil " +#~ "d’exécution unique (*single-thread en anglais*) mais permettant " +#~ "l’exécution de code concurrent en utilisant les coroutines, les accès " +#~ "multiplexés aux entrées-sorties par l’intermédiaire de *sockets* ou " +#~ "autres ressources, la gestion de clients et serveurs réseaux et d’autres " +#~ "fonctions primitives associées. Voici une liste plus détaillée du contenu " +#~ "du paquet :" + +#~ msgid "" +#~ "a pluggable :ref:`event loop ` with various system-" +#~ "specific implementations;" +#~ msgstr "" +#~ "une :ref:`boucle d’évènements ` prête à l’emploi dont " +#~ "les implémentations sont spécifiques à leur plateforme ;" + +#~ msgid "" +#~ ":ref:`transport ` and :ref:`protocol ` abstractions (similar to those in `Twisted `_);" +#~ msgstr "" +#~ "Des abstractions pour les couches :ref:`transport ` " +#~ "et :ref:`protocole ` (similaire à celles proposées par " +#~ "`Twisted `_) ;" + +#~ msgid "" +#~ "concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and " +#~ "others (some may be system-dependent);" +#~ msgstr "" +#~ "pour la gestion effective de TCP, UDP, SSL, la communication inter-" +#~ "processus par tubes, les appels différés, et autres (certains peuvent " +#~ "être dépendant du système) ;" + +#~ msgid "" +#~ "a :class:`Future` class that mimics the one in the :mod:`concurrent." +#~ "futures` module, but adapted for use with the event loop;" +#~ msgstr "" +#~ "une classe :class:`Future` qui imite celle du :mod:`concurrent.futures` " +#~ "module, mais qui est adaptée pour fonctionner avec la boucle " +#~ "d’évènements ;" + +#~ msgid "" +#~ "coroutines and tasks based on ``yield from`` (:PEP:`380`), to help write " +#~ "concurrent code in a sequential fashion;" +#~ msgstr "" +#~ "des coroutines et tâches qui se basent sur ``yield from`` (:PEP:`380`), " +#~ "pour écrire du code concurrent de manière séquentielle ;" + +#~ msgid "cancellation support for :class:`Future`\\s and coroutines;" +#~ msgstr "" +#~ "annulation de la gestion de la classe :class:`Future`\\s et coroutines ;" + +#~ msgid "" +#~ ":ref:`synchronization primitives ` for use between " +#~ "coroutines in a single thread, mimicking those in the :mod:`threading` " +#~ "module;" +#~ msgstr "" +#~ ":ref:`des primitives de synchronisation ` à utiliser entre " +#~ "des coroutines dans un fil d’exécution unique, en imitant celles " +#~ "présentes dans le module :mod:`threading` ;" + +#~ msgid "" +#~ "an interface for passing work off to a threadpool, for times when you " +#~ "absolutely, positively have to use a library that makes blocking I/O " +#~ "calls." +#~ msgstr "" +#~ "une interface pour déléguer des tâches à un groupe de fils d’exécutions, " +#~ "lorsque vous avez absolument besoin d’utiliser une bibliothèque qui " +#~ "effectue des entrées-sorties bloquantes." + +#~ msgid "" +#~ "Asynchronous programming is more complex than classical \"sequential\" " +#~ "programming: see the :ref:`Develop with asyncio ` page which " +#~ "lists common traps and explains how to avoid them. :ref:`Enable the debug " +#~ "mode ` during development to detect common issues." +#~ msgstr "" +#~ "Programmer de façon asynchrone est plus complexe que programmer d’une " +#~ "façon séquentielle : lisez la page :ref:`Develop with asyncio ` qui liste les pièges fréquents et explique la manière de les " +#~ "éviter. :ref:`Activer le mode de débogage d’asyncio ` " +#~ "pendant le développement afin de détecter les problèmes courants." + +#~ msgid "Table of contents:" +#~ msgstr "Table des matières :" + +#~ msgid "" +#~ "The :mod:`asyncio` module was designed in :PEP:`3156`. For a motivational " +#~ "primer on transports and protocols, see :PEP:`3153`." +#~ msgstr "" +#~ "Le module :mod:`asyncio` a été présenté dans la :PEP:`3156`. La :PEP:" +#~ "`3153` décrit les motivations premières concernant les couches transports " +#~ "et protocoles." diff --git a/library/asyncore.po b/library/asyncore.po index 89e4dafb1..f020d046c 100644 --- a/library/asyncore.po +++ b/library/asyncore.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-07-27 23:21+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/asyncore.rst:2 msgid ":mod:`asyncore` --- Asynchronous socket handler" -msgstr ":mod:`asyncore` --- Gestionnaire de socket asynchrone" +msgstr ":mod:`asyncore` — Gestionnaire de socket asynchrone" #: ../Doc/library/asyncore.rst:13 msgid "**Source code:** :source:`Lib/asyncore.py`" @@ -24,13 +24,15 @@ msgstr "**Code source :** :source:`Lib/asyncore.py`" #: ../Doc/library/asyncore.rst:15 msgid "Please use :mod:`asyncio` instead." -msgstr "" +msgstr "Utilisez :mod:`asyncio` à la place." #: ../Doc/library/asyncore.rst:22 msgid "" "This module exists for backwards compatibility only. For new code we " "recommend using :mod:`asyncio`." msgstr "" +"Ce module n'existe que pour des raisons de rétrocompatibilité. Pour du code " +"nouveau, l'utilisation de :mod:`asyncio` est recommandée." #: ../Doc/library/asyncore.rst:25 msgid "" @@ -324,32 +326,36 @@ msgid "" "an optional map argument and wraps it for use with the :c:func:`poll` or :c:" "func:`loop` functions. If provided a file object or anything with a :c:func:" "`fileno` method, that method will be called and passed to the :class:" -"`file_wrapper` constructor. Availability: UNIX." +"`file_wrapper` constructor." msgstr "" -#: ../Doc/library/asyncore.rst:280 +#: ../Doc/library/asyncore.rst:278 ../Doc/library/asyncore.rst:287 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/asyncore.rst:282 msgid "" "A file_wrapper takes an integer file descriptor and calls :func:`os.dup` to " "duplicate the handle so that the original handle may be closed independently " "of the file_wrapper. This class implements sufficient methods to emulate a " -"socket for use by the :class:`file_dispatcher` class. Availability: UNIX." +"socket for use by the :class:`file_dispatcher` class." msgstr "" -#: ../Doc/library/asyncore.rst:289 +#: ../Doc/library/asyncore.rst:293 msgid "asyncore Example basic HTTP client" msgstr "Exemple de client HTTP basique avec :mod:`asyncore`" -#: ../Doc/library/asyncore.rst:291 +#: ../Doc/library/asyncore.rst:295 msgid "" "Here is a very basic HTTP client that uses the :class:`dispatcher` class to " "implement its socket handling::" msgstr "" -#: ../Doc/library/asyncore.rst:328 +#: ../Doc/library/asyncore.rst:332 msgid "asyncore Example basic echo server" msgstr "Serveur *echo* basique avec :mod:`asyncore`" -#: ../Doc/library/asyncore.rst:330 +#: ../Doc/library/asyncore.rst:334 msgid "" "Here is a basic echo server that uses the :class:`dispatcher` class to " "accept connections and dispatches the incoming connections to a handler::" diff --git a/library/atexit.po b/library/atexit.po index 5b253130b..911000b56 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2017-08-10 01:05+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-13 09:30+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.0.6\n" #: ../Doc/library/atexit.rst:2 msgid ":mod:`atexit` --- Exit handlers" -msgstr ":mod:`atexit` --- Gestionnaire de fin de programme" +msgstr ":mod:`atexit` — Gestionnaire de fin de programme" #: ../Doc/library/atexit.rst:12 msgid "" @@ -28,6 +28,13 @@ msgid "" "``B``, and ``C``, at interpreter termination time they will be run in the " "order ``C``, ``B``, ``A``." msgstr "" +"Le module :mod:`atexit` définit des fonctions pour inscrire et désinscrire " +"des fonctions de nettoyage. Les fonctions ainsi inscrites sont " +"automatiquement exécutées au moment de l'arrêt normal de l'interpréteur. :" +"mod:`atexit` exécute ces fonctions dans l'ordre inverse dans lequel elles " +"ont été inscrites ; si vous inscrivez ``A``, ``B``, et ``C``, au moment de " +"l'arrêt de l'interpréteur elles seront exécutées dans l'ordre ``C``, ``B``, " +"``A``." #: ../Doc/library/atexit.rst:19 msgid "" @@ -35,12 +42,18 @@ msgid "" "program is killed by a signal not handled by Python, when a Python fatal " "internal error is detected, or when :func:`os._exit` is called." msgstr "" +"**Note:** Les fonctions inscrites via ce module ne sont pas appelées quand " +"le programme est tué par un signal non géré par Python, quand une erreur " +"fatale interne de Python est détectée, ou quand :func:`os._exit` est appelé." #: ../Doc/library/atexit.rst:23 msgid "" "When used with C-API subinterpreters, registered functions are local to the " "interpreter they were registered in." msgstr "" +"Quand elles sont utilisées avec des sous-interpréteurs de l'API C, les " +"fonctions inscrites sont locales à l'interpréteur dans lequel elles ont été " +"inscrites." #: ../Doc/library/atexit.rst:29 msgid "" @@ -49,6 +62,10 @@ msgid "" "func:`register`. It is possible to register the same function and arguments " "more than once." msgstr "" +"Inscrit *func* comme une fonction à exécuter au moment de l'arrêt de " +"l'interpréteur. Tout argument optionnel qui doit être passé à *func* doit " +"être passé comme argument à :func:`register`. Il est possible d'inscrire les " +"mêmes fonctions et arguments plus d'une fois." #: ../Doc/library/atexit.rst:34 msgid "" @@ -58,6 +75,12 @@ msgid "" "modules will normally be imported before higher level modules and thus must " "be cleaned up later." msgstr "" +"Lors d'un arrêt normal du programme (par exemple, si :func:`sys.exit` est " +"appelée ou l’exécution du module principal se termine), toutes les fonctions " +"inscrites sont appelées, dans l'ordre de la dernière arrivée, première " +"servie. La supposition est que les modules les plus bas niveau vont " +"normalement être importés avant les modules haut niveau et ainsi être " +"nettoyés en dernier." #: ../Doc/library/atexit.rst:40 msgid "" @@ -66,12 +89,19 @@ msgid "" "information is saved. After all exit handlers have had a chance to run the " "last exception to be raised is re-raised." msgstr "" +"Si une exception est levée durant l'exécution du gestionnaire de fin de " +"programme, une trace d'appels est affichée (à moins que :exc:`SystemExit` " +"ait été levée) et les informations de l'exception sont sauvegardées. Une " +"fois que tous les gestionnaires de fin de programme ont eu une chance de " +"s'exécuter, la dernière exception à avoir été levée l'est de nouveau." #: ../Doc/library/atexit.rst:45 msgid "" "This function returns *func*, which makes it possible to use it as a " "decorator." msgstr "" +"Cette fonction renvoie *func*, ce qui rend possible de l'utiliser en tant " +"que décorateur." #: ../Doc/library/atexit.rst:51 msgid "" @@ -80,6 +110,11 @@ msgid "" "the interpreter shuts down, even if it was registered more than once. :func:" "`unregister` silently does nothing if *func* was not previously registered." msgstr "" +"Retire *func* de la liste des fonctions à exécuter à l'arrêt de " +"l’interpréteur. Après avoir appelé :func:`unregister`, *func* est garantie " +"de ne pas être appelée à l'arrêt de l’interpréteur, même si elle a été " +"inscrite plus d'une fois. :func:`unregister` ne fait rien et reste muette " +"dans le cas où *func* n'a pas été inscrite précédemment." #: ../Doc/library/atexit.rst:61 msgid "Module :mod:`readline`" @@ -90,6 +125,8 @@ msgid "" "Useful example of :mod:`atexit` to read and write :mod:`readline` history " "files." msgstr "" +"Un exemple utile de l'usage de :mod:`atexit` pour lire et écrire des " +"fichiers d'historique :mod:`readline`." #: ../Doc/library/atexit.rst:68 msgid ":mod:`atexit` Example" @@ -102,17 +139,26 @@ msgid "" "automatically when the program terminates without relying on the application " "making an explicit call into this module at termination. ::" msgstr "" +"Le simple exemple suivant démontre comment un module peut initialiser un " +"compteur depuis un fichier quand il est importé, et sauver le valeur mise à " +"jour du compteur automatiquement quand le programme se termine, sans avoir " +"besoin que l'application fasse un appel explicite dans ce module au moment " +"de l'arrêt de l'interpréteur. ::" #: ../Doc/library/atexit.rst:92 msgid "" "Positional and keyword arguments may also be passed to :func:`register` to " "be passed along to the registered function when it is called::" msgstr "" +"Les arguments positionnels et par mot-clé peuvent aussi être passés à :func:" +"`register` afin d'être repassés à la fonction inscrite lors de son appel ::" #: ../Doc/library/atexit.rst:104 msgid "Usage as a :term:`decorator`::" -msgstr "Utilisation en temps que :term:`decorator` ::" +msgstr "Utilisation en tant que :term:`décorateur ` ::" #: ../Doc/library/atexit.rst:112 msgid "This only works with functions that can be called without arguments." msgstr "" +"Ceci fonctionne uniquement avec des fonctions qui peuvent être appelées sans " +"argument." diff --git a/library/audioop.po b/library/audioop.po index 569225adb..c3aa58d7d 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/audioop.rst:2 msgid ":mod:`audioop` --- Manipulate raw audio data" -msgstr ":mod:`audioloop` --- Manipulation de données audio brutes" +msgstr ":mod:`audioloop` — Manipulation de données audio brutes" #: ../Doc/library/audioop.rst:9 msgid "" diff --git a/library/base64.po b/library/base64.po index 650ad9570..93ff72b67 100644 --- a/library/base64.po +++ b/library/base64.po @@ -6,22 +6,22 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-07-29 00:47+0200\n" +"PO-Revision-Date: 2019-08-20 15:51+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.0.6\n" #: ../Doc/library/base64.rst:2 msgid ":mod:`base64` --- Base16, Base32, Base64, Base85 Data Encodings" -msgstr "" +msgstr ":mod:`base64` — Encodages base16, base32, base64 et base85" #: ../Doc/library/base64.rst:8 msgid "**Source code:** :source:`Lib/base64.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/base64.py`" #: ../Doc/library/base64.rst:16 msgid "" @@ -31,6 +31,12 @@ msgid "" "which defines the Base16, Base32, and Base64 algorithms, and for the de-" "facto standard Ascii85 and Base85 encodings." msgstr "" +"Ce module fournit des fonctions permettant de coder des données binaires en " +"caractères ASCII affichables ainsi que de décoder ces caractères vers des " +"données binaires en retour. Il fournit des fonctions d'encodage et de " +"décodage pour les codages spécifiés par la :rfc:`3548` qui définit les " +"algorithmes base16, base32 et base64, ainsi que les encodages standards *de " +"facto* Ascii85 et base85." #: ../Doc/library/base64.rst:22 msgid "" @@ -39,6 +45,10 @@ msgid "" "HTTP POST request. The encoding algorithm is not the same as the :program:" "`uuencode` program." msgstr "" +"Les encodages définis par la :rfc:`3548` sont adaptés au codage des données " +"binaires pour leur transfert par courriel, comme éléments d'une URL ou d'une " +"requête HTTP POST. L'algorithme d'encodage ne doit pas être confondu avec le " +"programme :program:`uuencode`." #: ../Doc/library/base64.rst:27 msgid "" @@ -48,6 +58,12 @@ msgid "" "or strings containing ASCII to :class:`bytes`. Both base-64 alphabets " "defined in :rfc:`3548` (normal, and URL- and filesystem-safe) are supported." msgstr "" +"Ce module présente deux interfaces. L'interface moderne gère l'encodage d':" +"term:`objets octet-compatibles ` en :class:`bytes` ASCII " +"ainsi que le décodage d':term:`objets octet-compatibles ` " +"ou de chaînes de caractères contenant de l'ASCII en :class:`bytes`. Les deux " +"alphabets de l'algorithme base64 définis par la :rfc:`3548` (normal et sûr " +"pour les systèmes de fichiers ou URL) sont gérés." #: ../Doc/library/base64.rst:33 msgid "" @@ -58,12 +74,22 @@ msgid "" "looking for :rfc:`2045` support you probably want to be looking at the :mod:" "`email` package instead." msgstr "" +"L'interface historique ne permet pas le décodage des chaînes de caractères " +"mais fournit des fonctions permettant d'encoder et décoder depuis et vers " +"des :term:`objets fichiers `. Elle ne gère que l'alphabet " +"base64 standard et ajoute une nouvelle ligne tous les 76 caractères, comme " +"spécifié par la :rfc:`2045`. Notez que le paquet :mod:`email` est " +"probablement ce que vous cherchez si vous souhaitez une implémentation de " +"la :rfc:`2045`." #: ../Doc/library/base64.rst:41 msgid "" "ASCII-only Unicode strings are now accepted by the decoding functions of the " "modern interface." msgstr "" +"Les chaînes de caractères Unicode contenant uniquement des caractères ASCII " +"sont désormais acceptées par les fonctions de décodage de l'interface " +"moderne." #: ../Doc/library/base64.rst:45 msgid "" @@ -71,6 +97,9 @@ msgid "" "encoding and decoding functions in this module. Ascii85/Base85 support " "added." msgstr "" +"Tous les :term:`objets octet-compatibles ` sont désormais " +"acceptés par l'ensemble des fonctions d'encodage et de décodage de ce " +"module. La gestion de Ascii85/base85 a été ajoutée." #: ../Doc/library/base64.rst:49 msgid "The modern interface provides:" @@ -81,6 +110,8 @@ msgid "" "Encode the :term:`bytes-like object` *s* using Base64 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* en " +"utilisant l'algorithme base64 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:56 msgid "" @@ -90,12 +121,21 @@ msgid "" "generate URL or filesystem safe Base64 strings. The default is ``None``, " "for which the standard Base64 alphabet is used." msgstr "" +"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " +"moins 2 (les caractères additionnels sont ignorés) qui spécifie un alphabet " +"alternatif pour les délimiteurs ``+`` et ``/``. Cela permet de générer des " +"chaînes de caractères base64 pouvant être utilisées pour une URL ou dans un " +"système de fichiers. La valeur par défaut est ``None``, auquel cas " +"l'alphabet standard base64 est utilisé." #: ../Doc/library/base64.rst:65 msgid "" "Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodée en base64 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:68 msgid "" @@ -103,11 +143,16 @@ msgid "" "at least length 2 (additional characters are ignored) which specifies the " "alternative alphabet used instead of the ``+`` and ``/`` characters." msgstr "" +"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " +"moins égale à 2 (les caractères additionnels sont ignorés) qui spécifie un " +"alphabet alternatif pour les délimiteurs ``+`` et ``/``." #: ../Doc/library/base64.rst:72 msgid "" "A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded." msgstr "" +"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " +"longueur attendue." #: ../Doc/library/base64.rst:75 msgid "" @@ -116,18 +161,28 @@ msgid "" "the padding check. If *validate* is ``True``, these non-alphabet characters " "in the input result in a :exc:`binascii.Error`." msgstr "" +"Si *validate* est ``False`` (par défaut), les caractères qui ne sont ni dans " +"l'alphabet base64 normal, ni dans l'alphabet alternatif, sont ignorés avant " +"la vérification de la longueur du remplissage. Si *validate* est ``True``, " +"les caractères hors de l'alphabet de l'entrée produisent une :exc:`binascii." +"Error`." #: ../Doc/library/base64.rst:84 msgid "" "Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and " "return the encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* en " +"utilisant l'alphabet standard base64 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:90 msgid "" "Decode :term:`bytes-like object` or ASCII string *s* using the standard " "Base64 alphabet and return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* utilisant l'alphabet base64 standard et renvoie les :" +"class:`bytes` décodés." #: ../Doc/library/base64.rst:96 msgid "" @@ -136,6 +191,10 @@ msgid "" "`` in the standard Base64 alphabet, and return the encoded :class:`bytes`. " "The result can still contain ``=``." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"un alphabet sûr pour les URL et systèmes de fichiers qui substitue ``-`` et " +"``_`` à ``+`` et ``/`` dans l'alphabet standard base64 et renvoie les :class:" +"`bytes` encodés." #: ../Doc/library/base64.rst:105 msgid "" @@ -144,24 +203,36 @@ msgid "" "instead of ``/`` in the standard Base64 alphabet, and return the decoded :" "class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* utilisant un alphabet sûr pour les URL et systèmes " +"de fichiers qui substitue ``-`` et ``_`` à ``+`` et ``/`` dans l'alphabet " +"standard base64 et renvoie les :class:`bytes` décodés." #: ../Doc/library/base64.rst:114 msgid "" "Encode the :term:`bytes-like object` *s* using Base32 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base32 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:120 msgid "" "Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en base32 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:123 ../Doc/library/base64.rst:150 msgid "" "Optional *casefold* is a flag specifying whether a lowercase alphabet is " "acceptable as input. For security purposes, the default is ``False``." msgstr "" +"L'option *casefold* est un drapeau spécifiant si l'utilisation d'un alphabet " +"en minuscules est acceptable comme entrée. Pour des raisons de sécurité, " +"cette option est à ``False`` par défaut." #: ../Doc/library/base64.rst:127 msgid "" @@ -173,30 +244,46 @@ msgid "" "purposes the default is ``None``, so that 0 and 1 are not allowed in the " "input." msgstr "" +"La :rfc:`3548` autorise une correspondance optionnelle du chiffre 0 (zéro) " +"vers la lettre O (/o/) ainsi que du chiffre 1 (un) vers soit la lettre I (/" +"i/) ou la lettre L (/l/). L'argument optionnel *map01*, lorsqu'il diffère de " +"``None``, spécifie en quelle lettre le chiffre 1 doit être transformé " +"(lorsque *map01* n'est pas ``None``, le chiffre 0 est toujours transformé en " +"la lettre O). Pour des raisons de sécurité, le défaut est ``None``, de telle " +"sorte que 0 et 1 ne sont pas autorisés dans l'entrée." #: ../Doc/library/base64.rst:134 ../Doc/library/base64.rst:154 msgid "" "A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there " "are non-alphabet characters present in the input." msgstr "" +"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " +"longueur attendue ou si elle contient des caractères hors de l'alphabet." #: ../Doc/library/base64.rst:141 msgid "" "Encode the :term:`bytes-like object` *s* using Base16 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base16 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:147 msgid "" "Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en base16 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:161 msgid "" "Encode the :term:`bytes-like object` *b* using Ascii85 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme Ascii85 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:164 msgid "" @@ -204,6 +291,10 @@ msgid "" "instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " "feature is not supported by the \"standard\" Ascii85 encoding." msgstr "" +"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " +"de quatre espaces consécutives (ASCII ``0x20``) comme pris en charge par " +"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " +"Ascii85." #: ../Doc/library/base64.rst:168 msgid "" @@ -211,24 +302,35 @@ msgid "" "characters added to it. If this is non-zero, each output line will be at " "most this many characters long." msgstr "" +"*wrapcol* contrôle l'ajout de caractères de saut de ligne (``b'\\n'``) à la " +"sortie. Chaque ligne de sortie contient au maximum *wrapcol* caractères si " +"cette option diffère de zéro." #: ../Doc/library/base64.rst:172 msgid "" "*pad* controls whether the input is padded to a multiple of 4 before " "encoding. Note that the ``btoa`` implementation always pads." msgstr "" +"*pad* spécifie l'ajout de caractères de remplissage (*padding* en anglais) à " +"l'entrée jusqu'à ce que sa longueur soit un multiple de 4 avant encodage. " +"Notez que l'implémentation ``btoa`` effectue systématiquement ce remplissage." #: ../Doc/library/base64.rst:175 msgid "" "*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " "``~>``, which is used by the Adobe implementation." msgstr "" +"*adobe* contrôle si oui ou non la séquence encodée d'octets est encadrée par " +"``<~`` et ``~>`` comme utilisé dans l'implémentation Adobe." #: ../Doc/library/base64.rst:183 msgid "" "Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en Ascii85 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:186 msgid "" @@ -236,12 +338,18 @@ msgid "" "be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " "is not supported by the \"standard\" Ascii85 encoding." msgstr "" +"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " +"de quatre espaces consécutives (ASCII `0x20`) comme pris en charge par " +"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " +"Ascii85." #: ../Doc/library/base64.rst:190 msgid "" "*adobe* controls whether the input sequence is in Adobe Ascii85 format (i.e. " "is framed with <~ and ~>)." msgstr "" +"*adobe* indique si la séquence d'entrée utilise le format Adobe Ascii85 " +"(c'est-à-dire utilise l'encadrement par ``<~`` et ``~>``)." #: ../Doc/library/base64.rst:193 msgid "" @@ -250,18 +358,28 @@ msgid "" "whitespace characters, and by default contains all whitespace characters in " "ASCII." msgstr "" +"*ignorechars* doit être un :term:`bytes-like object` ou une chaîne ASCII " +"contenant des caractères à ignorer dans l'entrée. Il ne doit contenir que " +"des caractères d'espacement et contient par défaut l'ensemble des caractères " +"d'espacement de l'alphabet ASCII." #: ../Doc/library/base64.rst:203 msgid "" "Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-" "style binary diffs) and return the encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base85 (tel qu'utilisé par exemple par le programme *git-diff* " +"sur des données binaires) et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:206 msgid "" "If *pad* is true, the input is padded with ``b'\\0'`` so its length is a " "multiple of 4 bytes before encoding." msgstr "" +"Si *pad* est vrai, des caractères de remplissage ``b'``0'`` (*padding* en " +"anglais) sont ajoutés à l'entrée jusqu'à ce que sa longueur soit un multiple " +"de 4 octets avant encodage." #: ../Doc/library/base64.rst:214 msgid "" @@ -269,6 +387,10 @@ msgid "" "return the decoded :class:`bytes`. Padding is implicitly removed, if " "necessary." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *b* encodé en base85 et renvoie les :class:`bytes` " +"décodés. Les caractères de remplissage sont implicitement retirés si " +"nécessaire." #: ../Doc/library/base64.rst:221 msgid "The legacy interface:" @@ -281,16 +403,23 @@ msgid "" "objects `. *input* will be read until ``input.readline()`` " "returns an empty bytes object." msgstr "" +"Décode le contenu d'un fichier binaire *input* et écrit les données binaires " +"résultantes dans le fichier *output*. *input* et *output* doivent être des :" +"term:`objets fichiers `. *input* est lu jusqu'à ce que ``input." +"readline()`` renvoie un objet *bytes* vide." #: ../Doc/library/base64.rst:233 msgid "" "Decode the :term:`bytes-like object` *s*, which must contain one or more " "lines of base64 encoded data, and return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` *s* devant " +"contenir une ou plusieurs lignes de données encodées en base64 et renvoie " +"les :class:`bytes` décodés." #: ../Doc/library/base64.rst:240 msgid "Deprecated alias of :func:`decodebytes`." -msgstr "" +msgstr "Alias obsolète de :func:`decodebytes`." #: ../Doc/library/base64.rst:247 msgid "" @@ -301,6 +430,13 @@ msgid "" "(``b'\\n'``) after every 76 bytes of the output, as well as ensuring that " "the output always ends with a newline, as per :rfc:`2045` (MIME)." msgstr "" +"Encode le contenu du fichier binaire *input* et écrit les données encodées " +"en base64 résultantes dans le fichier *output. *input* et *output* doivent " +"être des :term:`objets fichiers `. *input* est lu jusqu'à ce " +"que ``input.readline()`` renvoie un objet *bytes* vide. :func:`encode` " +"insère un caractère de saut de ligne (``b'\\n'``) tous les 76 octets de " +"sortie et assure que celle-ci se termine par une nouvelle ligne, comme " +"spécifié par la :rfc:`2045` (MIME)." #: ../Doc/library/base64.rst:257 msgid "" @@ -309,10 +445,15 @@ msgid "" "newlines (``b'\\n'``) inserted after every 76 bytes of output, and ensuring " "that there is a trailing newline, as per :rfc:`2045` (MIME)." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* pouvant " +"contenir des données binaires arbitraires et renvoie les :class:`bytes` " +"contenant les données encodées en base64. Un caractère de saut de ligne " +"(``b'\\n'``) est inséré tous les 76 octets de sortie et celle-ci se termine " +"par une nouvelle ligne, comme spécifié par la :rfc:`2045` (MIME)." #: ../Doc/library/base64.rst:266 msgid "Deprecated alias of :func:`encodebytes`." -msgstr "" +msgstr "Alias obsolète de :func:`encodebytes`." #: ../Doc/library/base64.rst:271 msgid "An example usage of the module:" @@ -326,8 +467,8 @@ msgstr "Module :mod:`binascii`" msgid "" "Support module containing ASCII-to-binary and binary-to-ASCII conversions." msgstr "" -"Module secondaire contenant les conversions ASCII à binaire et binaire à " -"ASCII." +"Module secondaire contenant les conversions ASCII vers binaire et binaire " +"vers ASCII." #: ../Doc/library/base64.rst:288 msgid "" @@ -335,12 +476,17 @@ msgid "" "Mechanisms for Specifying and Describing the Format of Internet Message " "Bodies" msgstr "" +":rfc:`1521` — MIME (*Multipurpose Internet Mail Extensions*) *Part One: " +"Mechanisms for Specifying and Describing the Format of Internet Message " +"Bodies*" #: ../Doc/library/base64.rst:288 msgid "" "Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition " "of the base64 encoding." msgstr "" +"La Section 5.2, \"*Base64 Content-Transfer-Encoding*\", donne la définition " +"de l'encodage base64." #~ msgid "``encodestring`` is a deprecated alias." #~ msgstr "``encodestring`` est un alias obsolète." diff --git a/library/bdb.po b/library/bdb.po index 4711916eb..ed9a1043e 100644 --- a/library/bdb.po +++ b/library/bdb.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/bdb.rst:2 msgid ":mod:`bdb` --- Debugger framework" -msgstr ":mod:`bdb` --- Framework de débogage" +msgstr ":mod:`bdb` — Framework de débogage" #: ../Doc/library/bdb.rst:7 msgid "**Source code:** :source:`Lib/bdb.py`" diff --git a/library/binascii.po b/library/binascii.po index 36c8a830d..2c0bf0f8b 100644 --- a/library/binascii.po +++ b/library/binascii.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2017-08-10 00:59+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2019-02-25 22:48+0100\n" +"Last-Translator: Florent Bartoli \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/library/binascii.rst:2 msgid ":mod:`binascii` --- Convert between binary and ASCII" -msgstr "" +msgstr ":mod:`binascii` --- Conversion entre binaire et ASCII" #: ../Doc/library/binascii.rst:15 msgid "" @@ -28,6 +28,12 @@ msgid "" "low-level functions written in C for greater speed that are used by the " "higher-level modules." msgstr "" +"Le module :mod:`binascii` contient des méthodes pour convertir entre binaire " +"et diverses représentations binaires encodées en ASCII. Normalement, vous " +"n’allez pas utiliser ces fonctions directement mais vous utiliserez des " +"modules d’encapsulage comme :mod:`uu`, :mod:`base64`, or :mod:`binhex` à la " +"place. Le module :mod:`binascii` contient des fonctions bas-niveau écrites " +"en C plus rapides qui sont utilisées par des modules haut-niveau." #: ../Doc/library/binascii.rst:24 msgid "" @@ -36,14 +42,20 @@ msgid "" "(such as :class:`bytes`, :class:`bytearray` and other objects that support " "the buffer protocol)." msgstr "" +"La fonction ``a2b_*`` accepte des chaînes de caractères contenant seulement " +"des caractères ASCII. D’autres fonctions acceptent seulement des objets :" +"term:`bytes et similaire ` (tel que :class:`bytes`, :" +"class:`bytearray` et autres objets qui supportent le protocole tampon)." #: ../Doc/library/binascii.rst:29 msgid "ASCII-only unicode strings are now accepted by the ``a2b_*`` functions." msgstr "" +"Les chaines de caractères *unicode* seulement composées de caractères ASCII " +"sont désormais acceptées par les fonctions ``a2b_*``." #: ../Doc/library/binascii.rst:33 msgid "The :mod:`binascii` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`binascii` définit les fonctions suivantes :" #: ../Doc/library/binascii.rst:38 msgid "" @@ -51,6 +63,10 @@ msgid "" "data. Lines normally contain 45 (binary) bytes, except for the last line. " "Line data may be followed by whitespace." msgstr "" +"Convertit une seule ligne de donnée *uuencoded* en binaire et renvoie la " +"donnée binaire. Les lignes contiennent normalement 45 octets (binaire), sauf " +"pour la dernière ligne. Il se peut que la ligne de donnée soit suivie d’un " +"espace blanc." #: ../Doc/library/binascii.rst:45 msgid "" @@ -59,16 +75,22 @@ msgid "" "most 45. If *backtick* is true, zeros are represented by ``'`'`` instead of " "spaces." msgstr "" +"Convertit les données binaires en une ligne de caractères ASCII, la valeur " +"renvoyée est la ligne convertie incluant un caractère de nouvelle ligne. La " +"longueur de *data* doit être au maximum de 45. Si *backtick* est vraie, les " +"zéros sont représentés par ``'`'`` plutôt que par des espaces." #: ../Doc/library/binascii.rst:49 msgid "Added the *backtick* parameter." -msgstr "" +msgstr "Ajout du paramètre *backtick*." #: ../Doc/library/binascii.rst:55 msgid "" "Convert a block of base64 data back to binary and return the binary data. " "More than one line may be passed at a time." msgstr "" +"Convertit un bloc de donnée en *base64* en binaire et renvoie la donnée " +"binaire. Plus d’une ligne peut être passé à la fois." #: ../Doc/library/binascii.rst:61 msgid "" @@ -76,10 +98,14 @@ msgid "" "return value is the converted line, including a newline char if *newline* is " "true. The output of this function conforms to :rfc:`3548`." msgstr "" +"Convertit les données binaires en une ligne de caractères ASCII en codage " +"base 64. La valeur de renvoyée et la ligne convertie, incluant un caractère " +"de nouvelle ligne si *newline* est vraie. La sortie de cette fonction se " +"conforme à :rfc:`3548`." #: ../Doc/library/binascii.rst:65 msgid "Added the *newline* parameter." -msgstr "" +msgstr "Ajout du paramètre *newline*." #: ../Doc/library/binascii.rst:71 msgid "" @@ -87,6 +113,10 @@ msgid "" "binary data. More than one line may be passed at a time. If the optional " "argument *header* is present and true, underscores will be decoded as spaces." msgstr "" +"Convertit un bloc de données *quoted-printable* en binaire et renvoie les " +"données binaires. Plus d’une ligne peut être passée à la fois. Si l’argument " +"optionnel *header* est présent et vrai, les traits soulignés seront décodés " +"en espaces." #: ../Doc/library/binascii.rst:78 msgid "" @@ -100,6 +130,16 @@ msgid "" "newline characters will be encoded as well; otherwise linefeed conversion " "might corrupt the binary data stream." msgstr "" +"Convertit les données binaires en ligne(s) de caractères ASCII en codage " +"imprimable entre guillemets. La valeur de retour est la\\les lignes(s) " +"convertie(s). Si l’argument optionnel *quotetabs* est présent et vrai, " +"toutes les tabulations et espaces seront encodés. Si l’argument optionnel " +"*istext* est présent et faux, les nouvelles lignes ne sont pas encodées mais " +"les espaces de fin de ligne le seront. Si l’argument optionnel *header* est " +"présent et vrai, les espaces vont être encodés comme de traits soulignés " +"selon :rfc:`1522`. Si l’argument optionnel *header* est présent et faux, les " +"caractères de nouvelle ligne seront également encodés ; sinon la conversion " +"de saut de ligne pourrait corrompre le flux de données binaire." #: ../Doc/library/binascii.rst:91 msgid "" @@ -108,6 +148,10 @@ msgid "" "or (in case of the last portion of the binhex4 data) have the remaining bits " "zero." msgstr "" +"Convertit un bloc de donnée ASCII au format *binhex4* en binaire, sans faire " +"de décompression RLE. La chaîne de caractères doit contenir un nombre " +"complet d’octet binaires ou (au cas où la dernière portion de donnée est au " +"format *binhex4*) avoir les bits restants à 0." #: ../Doc/library/binascii.rst:98 msgid "" @@ -117,14 +161,22 @@ msgid "" "returns the decompressed data, unless data input data ends in an orphaned " "repeat indicator, in which case the :exc:`Incomplete` exception is raised." msgstr "" +"Réalise une décompression RLE sur la donnée, d’après la norme *binhex4*. " +"L’algorithme utilise ``0x90`` après un octet comme un indicateur de " +"répétition, suivi d’un décompte. Un décompte de ``0`` définit une valeur " +"d’octet de ``0x90``. La routine renvoie la donnée décompressée, sauf si la " +"donnée entrante se finit sur un indicateur de répétition orphelin. Dans ce " +"cas l’exception :exc:`Incomplete` est levée." #: ../Doc/library/binascii.rst:104 msgid "Accept only bytestring or bytearray objects as input." -msgstr "" +msgstr "Accepte seulement des objets *bytestring* ou *bytearray* en entrée." #: ../Doc/library/binascii.rst:110 msgid "Perform binhex4 style RLE-compression on *data* and return the result." msgstr "" +"Réalise une compression RLE de type *binhex4* sur *data* et renvoie le " +"résultat." #: ../Doc/library/binascii.rst:115 msgid "" @@ -132,6 +184,9 @@ msgid "" "The argument should already be RLE-coded, and have a length divisible by 3 " "(except possibly the last fragment)." msgstr "" +"Réalise une traduction *hexbin4* de binaire à ASCII et renvoie la chaîne de " +"caractères résultante. L’argument doit être *RLE-coded*, et avoir une " +"longueur divisible par 3 (sauf, éventuellement, le dernier fragment)." #: ../Doc/library/binascii.rst:122 msgid "" @@ -140,6 +195,10 @@ msgid "" "+ *x*:sup:`12` + *x*:sup:`5` + 1, often represented as 0x1021. This CRC is " "used in the binhex4 format." msgstr "" +"Calcule une valeur en CRC 16-bit de *data*, commençant par *value* comme CRC " +"initial et renvoie le résultat. Ceci utilise le CRC-CCITT polynomial *x*:sup:" +"`16` + *x*:sup:`12` + *x*:sup:`5` + 1, souvent représenté comme *0x1021*. Ce " +"CRC est utilisé dans le format *binhex4*." #: ../Doc/library/binascii.rst:130 msgid "" @@ -149,12 +208,20 @@ msgid "" "checksum algorithm, it is not suitable for use as a general hash algorithm. " "Use as follows::" msgstr "" +"Calcule CRC-32, la somme de contrôle 32-bit de *data*, commençant par un CRC " +"initial de *value*. Le CRC initial par défaut est zéro. L’algorithme est " +"cohérent avec la somme de contrôle du fichier ZIP. Comme l’algorithme est " +"conçu pour être utilisé comme un algorithme de somme de contrôle, il ne " +"convient pas comme algorithme de hachage général. Utiliser comme suit ::" #: ../Doc/library/binascii.rst:142 msgid "" "The result is always unsigned. To generate the same numeric value across all " "Python versions and platforms, use ``crc32(data) & 0xffffffff``." msgstr "" +"Le résultat est toujours non signé. Pour générer la même valeur numérique " +"sur toutes les versions de Python et plateformes, utilisez ``crc32(data) & " +"0xffffffff``." #: ../Doc/library/binascii.rst:151 msgid "" @@ -162,54 +229,87 @@ msgid "" "*data* is converted into the corresponding 2-digit hex representation. The " "returned bytes object is therefore twice as long as the length of *data*." msgstr "" +"Renvoie la représentation hexadécimale du binaire *data*. Chaque octet de " +"*data* est converti en la représentation 2 chiffres correspondante. L’objet " +"octets renvoyé est donc deux fois plus long que la longueur de *data*." -#: ../Doc/library/binascii.rst:159 +#: ../Doc/library/binascii.rst:155 +msgid "" +"Similar functionality (but returning a text string) is also conveniently " +"accessible using the :meth:`bytes.hex` method." +msgstr "" +"Fonctionnalité similaire est également commodément accessible en utilisant " +"la méthode :meth:`bytes.hex`." + +#: ../Doc/library/binascii.rst:161 msgid "" "Return the binary data represented by the hexadecimal string *hexstr*. This " "function is the inverse of :func:`b2a_hex`. *hexstr* must contain an even " "number of hexadecimal digits (which can be upper or lower case), otherwise " "an :exc:`Error` exception is raised." msgstr "" +"Renvoie la donnée binaire représentée par la chaîne de caractères " +"hexadécimale *hexstr*. Cette fonction est l’inverse de :func:`b2a_hex`. " +"*hexstr* doit contenir un nombre pair de chiffres hexadécimaux (qui peuvent " +"être en majuscule ou minuscule), sinon une exception :exc:`Error` est levée." -#: ../Doc/library/binascii.rst:167 -msgid "Exception raised on errors. These are usually programming errors." +#: ../Doc/library/binascii.rst:166 +msgid "" +"Similar functionality (accepting only text string arguments, but more " +"liberal towards whitespace) is also accessible using the :meth:`bytes." +"fromhex` class method." msgstr "" +"Une fonctionnalité similaire (n’acceptant que les arguments de chaîne de " +"texte, mais plus libérale vis-à-vis des espaces blancs) est également " +"accessible en utilisant la méthode de classe :meth:`bytes.fromhex`." #: ../Doc/library/binascii.rst:172 +msgid "Exception raised on errors. These are usually programming errors." +msgstr "" +"Exception levée en cas d'erreurs. Ce sont typiquement des erreurs de " +"programmation." + +#: ../Doc/library/binascii.rst:177 msgid "" "Exception raised on incomplete data. These are usually not programming " "errors, but may be handled by reading a little more data and trying again." msgstr "" +"Exception levée par des données incomplète. Il ne s’agit généralement pas " +"d’erreurs de programmation, mais elles peuvent être traitées en lisant un " +"peu plus de données et en réessayant." -#: ../Doc/library/binascii.rst:180 +#: ../Doc/library/binascii.rst:185 msgid "Module :mod:`base64`" msgstr "Module :mod:`base64`" -#: ../Doc/library/binascii.rst:179 +#: ../Doc/library/binascii.rst:184 msgid "" "Support for RFC compliant base64-style encoding in base 16, 32, 64, and 85." msgstr "" +"Support de l’encodage *base64-style* conforme RFC en base 16, 32, 64 et 85." -#: ../Doc/library/binascii.rst:183 +#: ../Doc/library/binascii.rst:188 msgid "Module :mod:`binhex`" msgstr "Module :mod:`binhex`" -#: ../Doc/library/binascii.rst:183 +#: ../Doc/library/binascii.rst:188 msgid "Support for the binhex format used on the Macintosh." -msgstr "" +msgstr "Support pour le format *binhex* utilisé sur Macintosh." -#: ../Doc/library/binascii.rst:186 +#: ../Doc/library/binascii.rst:191 msgid "Module :mod:`uu`" msgstr "Module :mod:`uu`" -#: ../Doc/library/binascii.rst:186 +#: ../Doc/library/binascii.rst:191 msgid "Support for UU encoding used on Unix." -msgstr "Gestion de l'encodage UU utilisé sur UNIX." +msgstr "Gestion de l'encodage UU utilisé sur Unix." -#: ../Doc/library/binascii.rst:188 +#: ../Doc/library/binascii.rst:193 msgid "Module :mod:`quopri`" msgstr "Module :mod:`quopri`" -#: ../Doc/library/binascii.rst:189 +#: ../Doc/library/binascii.rst:194 msgid "Support for quoted-printable encoding used in MIME email messages." msgstr "" +"Support de l’encodage *quote-printable* utilisé par les messages *email* " +"MIME." diff --git a/library/binhex.po b/library/binhex.po index 4e8ebedb0..c15798401 100644 --- a/library/binhex.po +++ b/library/binhex.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/binhex.rst:2 msgid ":mod:`binhex` --- Encode and decode binhex4 files" -msgstr ":mod:`binhex` --- Encode et décode les fichiers *binhex4*" +msgstr ":mod:`binhex` — Encode et décode les fichiers *binhex4*" #: ../Doc/library/binhex.rst:7 msgid "**Source code:** :source:`Lib/binhex.py`" @@ -83,8 +83,8 @@ msgstr "Module :mod:`binascii`" msgid "" "Support module containing ASCII-to-binary and binary-to-ASCII conversions." msgstr "" -"Module secondaire contenant les conversions ASCII à binaire et binaire à " -"ASCII." +"Module secondaire contenant les conversions ASCII vers binaire et binaire " +"vers ASCII." #: ../Doc/library/binhex.rst:50 msgid "Notes" diff --git a/library/bisect.po b/library/bisect.po index 3592599c1..2e2ee1652 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/bisect.rst:2 msgid ":mod:`bisect` --- Array bisection algorithm" -msgstr ":mod:`bisect` --- Algorithme de bissection de listes" +msgstr ":mod:`bisect` — Algorithme de bissection de listes" #: ../Doc/library/bisect.rst:10 msgid "**Source code:** :source:`Lib/bisect.py`" @@ -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 422fc45fd..5a8579084 100644 --- a/library/builtins.po +++ b/library/builtins.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/builtins.rst:2 msgid ":mod:`builtins` --- Built-in objects" -msgstr ":mod:`builtins` --- Objets natifs" +msgstr ":mod:`builtins` — Objets natifs" #: ../Doc/library/builtins.rst:9 msgid "" @@ -43,7 +43,7 @@ msgstr "" "de même nom qu'une valeur native, mais pour qui le natif de même nom est " "aussi nécessaire. Par exemple, dans un module qui voudrait implémenter une " "fonction :func:`open` autour de la fonction native :func:`open`, ce module " -"peut être utilisé directement : ::" +"peut être utilisé directement ::" #: ../Doc/library/builtins.rst:38 msgid "" diff --git a/library/bz2.po b/library/bz2.po index ca9080c89..d8d83a852 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: 2018-07-29 01:07+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -16,45 +16,55 @@ msgstr "" #: ../Doc/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 msgid "**Source code:** :source:`Lib/bz2.py`" -msgstr "" +msgstr "**Code Source :** :source:`Lib/bz2.py`" #: ../Doc/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 msgid "The :mod:`bz2` module contains:" -msgstr "Le module :mod:`bz2` contiens :" +msgstr "Le module :mod:`bz2` contient :" #: ../Doc/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 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 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 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 msgid "(De)compression of files" @@ -65,6 +75,8 @@ 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 msgid "" @@ -72,6 +84,9 @@ msgid "" "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 msgid "" @@ -79,12 +94,17 @@ msgid "" "``'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 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 msgid "" @@ -93,6 +113,10 @@ msgid "" "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 msgid "" @@ -100,10 +124,13 @@ msgid "" "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:127 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:134 msgid "Accepts a :term:`path-like object`." @@ -119,6 +146,9 @@ msgid "" "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 msgid "" @@ -127,12 +157,18 @@ msgid "" "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 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 msgid "The *buffering* argument is ignored. Its use is deprecated." @@ -140,16 +176,22 @@ msgstr "" #: ../Doc/library/bz2.rst:86 msgid "" -"If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be a number between " +"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 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 msgid "" @@ -157,10 +199,13 @@ msgid "" "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 msgid ":class:`BZ2File` also provides the following method:" -msgstr "" +msgstr ":class:`BZ2File` fournit aussi la méthode suivante :" #: ../Doc/library/bz2.rst:101 msgid "" @@ -168,6 +213,9 @@ msgid "" "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 msgid "" @@ -176,38 +224,50 @@ msgid "" "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:112 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:115 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:119 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:123 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:130 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:139 msgid "Incremental (de)compression" -msgstr "(Dé)compression incrémentale" +msgstr "(Dé)compression incrémentielle" #: ../Doc/library/bz2.rst:143 msgid "" @@ -215,35 +275,48 @@ msgid "" "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:147 ../Doc/library/bz2.rst:235 msgid "" -"*compresslevel*, if given, must be a number between ``1`` and ``9``. The " +"*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:152 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:155 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:161 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:164 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:169 msgid "" @@ -251,6 +324,9 @@ msgid "" "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:174 msgid "" @@ -259,6 +335,11 @@ msgid "" "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:181 msgid "" @@ -267,6 +348,11 @@ msgid "" "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:187 msgid "" @@ -276,6 +362,11 @@ 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:194 msgid "" @@ -283,6 +374,9 @@ msgid "" "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" +"Si toutes les données 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:199 msgid "" @@ -290,6 +384,9 @@ msgid "" "`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:203 msgid "Added the *max_length* parameter." @@ -297,7 +394,7 @@ msgstr "Ajout du paramètre *max_length*." #: ../Doc/library/bz2.rst:208 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:215 msgid "Data found after the end of the compressed stream." @@ -308,39 +405,95 @@ 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:222 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:229 msgid "One-shot (de)compression" msgstr "(Dé)compression en une fois" #: ../Doc/library/bz2.rst:233 -msgid "Compress *data*." -msgstr "Compresse *data*." +msgid "Compress *data*, a :term:`bytes-like object `." +msgstr "Compresse *data*, un :term:`bytes-like object `." #: ../Doc/library/bz2.rst:238 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:243 -msgid "Decompress *data*." -msgstr "Décompresse *data*." +msgid "Decompress *data*, a :term:`bytes-like object `." +msgstr "Décompresse *data*, un :term:`bytes-like object `." #: ../Doc/library/bz2.rst:245 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:248 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:250 msgid "Support for multi-stream inputs was added." +msgstr "Prise en charge des entrées *multiflux*." + +#: ../Doc/library/bz2.rst:256 +msgid "Examples of usage" +msgstr "Exemples d'utilisation" + +#: ../Doc/library/bz2.rst:258 +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:260 +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:281 +msgid "Using :class:`BZ2Compressor` for incremental compression:" +msgstr "" +"Utilise la classe :class:`BZ2Compressor` pour une compression " +"incrémentielle :" + +#: ../Doc/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, " +"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:304 +#, fuzzy +msgid "Writing and reading a bzip2-compressed file in binary mode:" +msgstr "Ouvre un fichier *bzip2* en mode binaire." + +#~ msgid "Compress *data*." +#~ msgstr "Compresse *data*." + +#~ msgid "Decompress *data*." +#~ msgstr "Décompresse *data*." diff --git a/library/calendar.po b/library/calendar.po index cb6bcbcc1..32610fe7f 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2017-08-10 00:59+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2019-03-20 08:32+0100\n" +"Last-Translator: Alicia BERRAHMA \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -17,11 +17,11 @@ msgstr "" #: ../Doc/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 msgid "**Source code:** :source:`Lib/calendar.py`" -msgstr "**Code source :** :source:`Lib/calendar.py`" +msgstr "**Code source :** :source:`Lib/calendar.py`" #: ../Doc/library/calendar.rst:14 msgid "" @@ -33,6 +33,13 @@ msgid "" "Parameters that specify dates are given as integers. For related " "functionality, see also the :mod:`datetime` and :mod:`time` modules." msgstr "" +"Ce module permet d'afficher un calendrier comme le fait le programme Unix :" +"program:`cal`, et il fournit des fonctions utiles relatives au calendrier. " +"Par défaut, ces calendriers ont le lundi comme premier jour de la semaine et " +"le dimanche comme dernier jour. Utilisez :func:`setfirstweekday` pour " +"définir le premier jour de la semaine à dimanche (6) ou à tout autre jour de " +"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 msgid "" @@ -44,12 +51,23 @@ msgid "" "as prescribed by the ISO 8601 standard. Year 0 is 1 BC, year -1 is 2 BC, " "and so on." msgstr "" +"Les fonctions et les classes définies dans ce module utilisent un calendrier " +"idéalisé, le calendrier grégorien actuel s'étendant indéfiniment dans les " +"deux sens. Cela correspond à la définition du calendrier grégorien " +"proleptique dans le livre de Dershowitz et Reingold « *Calendrical " +"Calculations* », œuvre dans lequel il est le calendrier de référence de tous " +"les calculs. Les années zéros et les années négatives sont interprétées " +"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 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." msgstr "" +"Crée un objet :class:`Calendar`. *firstweekday* est un entier spécifiant le " +"premier jour de la semaine, valant par défaut ``0`` (lundi), pouvant aller " +"jusqu'à ``6`` (dimanche)." #: ../Doc/library/calendar.rst:36 msgid "" @@ -57,10 +75,13 @@ msgid "" "preparing the calendar data for formatting. This class doesn't do any " "formatting itself. This is the job of subclasses." msgstr "" +"L'objet :class:`Calendar` fournit plusieurs méthodes pouvant être utilisées " +"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 msgid ":class:`Calendar` instances have the following methods:" -msgstr "" +msgstr "Les instances de :class:`Calendar` ont les méthodes suivantes :" #: ../Doc/library/calendar.rst:45 msgid "" @@ -68,6 +89,8 @@ msgid "" "The first value from the iterator will be the same as the value of the :attr:" "`firstweekday` property." 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 msgid "" @@ -76,6 +99,10 @@ msgid "" "month and all days before the start of the month or after the end of the " "month that are required to get a complete week." msgstr "" +"Renvoie un itérateur sur les jours du mois *month* (1 à 12) de l'année " +"*year*. Cet itérateur renvoie tous les jours du mois (sous forme d'instances " +"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 msgid "" @@ -84,6 +111,10 @@ msgid "" "Days returned will simply be day of the month numbers. For the days outside " "of the specified month, the day number is ``0``." msgstr "" +"Renvoie un itérateur sur les jours du mois *month* de l'année *year*, comme :" +"meth:`itermonthdates`, sans être limité par l'intervalle de :class:`datetime." +"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 msgid "" @@ -92,6 +123,10 @@ msgid "" "Days returned will be tuples consisting of a day of the month number and a " "week day number." msgstr "" +"Renvoie un itérateur sur les jours du mois *month* de l'année *year* comme :" +"meth:`itermonthdates`, sans être limité par la plage :class:`datetime.date`. " +"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 msgid "" @@ -100,6 +135,10 @@ msgid "" "Days returned will be tuples consisting of a year, a month and a day of the " "month numbers." msgstr "" +"Renvoie un itérateur sur les jours du *month* de l'année *year*, comme :meth:" +"`itermonthdates`, sans être limité par l'intervalle de :class:`datetime." +"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 msgid "" @@ -108,24 +147,35 @@ msgid "" "Days returned will be tuples consisting of a year, a month, a day of the " "month, and a day of the week numbers." msgstr "" +"Renvoie un itérateur sur les jours du mois *month* de l'année *year*, comme :" +"meth:`itermonthdates`, sans être limité par l'intervalle de :class:`datetime." +"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 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." 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 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." msgstr "" +"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " +"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 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven day numbers." 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 msgid "" @@ -134,6 +184,11 @@ msgid "" "(defaulting to 3). Each month contains between 4 and 6 weeks and each week " "contains 1--7 days. Days are :class:`datetime.date` objects." msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année. La valeur " +"renvoyée est une liste de lignes de mois. Chaque ligne mensuelle contient " +"jusqu'à *width* mois (avec une valeur par défaut à 3). Chaque mois contient " +"de 4 à 6 semaines et chaque semaine 1 à 7 jours. Les jours sont des objets :" +"class:`datetime.date`." #: ../Doc/library/calendar.rst:123 msgid "" @@ -141,6 +196,10 @@ msgid "" "meth:`yeardatescalendar`). Entries in the week lists are tuples of day " "numbers and weekday numbers. Day numbers outside this month are zero." msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année, (similaire à :" +"meth:`yeardatescalendar`). Les listes des semaines contiennent des paires " +"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 msgid "" @@ -148,14 +207,18 @@ msgid "" "meth:`yeardatescalendar`). Entries in the week lists are day numbers. Day " "numbers outside this month are zero." msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année, (similaire à :" +"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 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 msgid ":class:`TextCalendar` instances have the following methods:" -msgstr "" +msgstr "Les instances :class:`TextCalendar` exposent les méthodes suivantes :" #: ../Doc/library/calendar.rst:143 msgid "" @@ -165,10 +228,16 @@ msgid "" "the first weekday as specified in the constructor or set by the :meth:" "`setfirstweekday` method." msgstr "" +"Donne le calendrier d'un mois dans une chaîne multi-ligne. Si *w* est " +"fourni, il spécifie la largeur des colonnes de date, qui sont centrées. Si " +"*l* est donné, il spécifie le nombre de lignes que chaque semaine utilisera. " +"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 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 msgid "" @@ -179,11 +248,20 @@ msgid "" "`setfirstweekday` method. The earliest year for which a calendar can be " "generated is platform-dependent." msgstr "" +"Renvoie un calendrier de *m* colonnes pour une année entière sous forme de " +"chaîne multi-ligne. Les paramètres facultatifs *w*, *l* et *c* correspondent " +"respectivement à la largeur de la colonne date, les lignes par semaines, le " +"nombre d'espace entre les colonnes de mois. 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`. La première année pour laquelle un " +"calendrier peut être généré, dépend de la plateforme." #: ../Doc/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 msgid "This class can be used to generate HTML calendars." @@ -192,18 +270,24 @@ msgstr "Cette classe peut être utilisée pour générer des calendriers HTML." #: ../Doc/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 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 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 msgid "" @@ -213,59 +297,81 @@ 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 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 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 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 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 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 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 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 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 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 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 msgid "" @@ -273,10 +379,15 @@ msgid "" "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 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 msgid "" @@ -285,6 +396,11 @@ msgid "" "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 msgid "" @@ -293,6 +409,11 @@ msgid "" "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 msgid "" @@ -301,10 +422,16 @@ msgid "" "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 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 msgid "" @@ -313,43 +440,62 @@ msgid "" "`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 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 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 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 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 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 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 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 msgid "" @@ -360,24 +506,31 @@ msgstr "" #: ../Doc/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 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 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 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 msgid "" @@ -387,20 +540,29 @@ 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 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 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 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 msgid "" @@ -408,6 +570,10 @@ msgid "" "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 msgid "" @@ -415,6 +581,10 @@ msgid "" "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 msgid "Module :mod:`datetime`" @@ -425,6 +595,8 @@ 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 msgid "Module :mod:`time`" @@ -432,4 +604,4 @@ msgstr "Module :mod:`time`" #: ../Doc/library/calendar.rst:420 msgid "Low-level time related functions." -msgstr "" +msgstr "Fonctions bas niveau relatives au temps." diff --git a/library/cgitb.po b/library/cgitb.po index 4548a10ef..fef0663b1 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/cgitb.rst:2 msgid ":mod:`cgitb` --- Traceback manager for CGI scripts" -msgstr ":mod:`cgitb` --- Gestionnaire d'exceptions pour les scripts CGI" +msgstr ":mod:`cgitb` — Gestionnaire d'exceptions pour les scripts CGI" #: ../Doc/library/cgitb.rst:10 msgid "**Source code:** :source:`Lib/cgitb.py`" @@ -51,7 +51,7 @@ msgstr "" 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 msgid "" diff --git a/library/cmath.po b/library/cmath.po index 21275821c..0a7d78cdf 100644 --- a/library/cmath.po +++ b/library/cmath.po @@ -5,40 +5,39 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-27 15:22+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-28 20:19+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 1.5.4\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/library/cmath.rst:2 msgid ":mod:`cmath` --- Mathematical functions for complex numbers" -msgstr "Fonctions mathématiques pour nombres complexes --- :mod:`cmath`" +msgstr "Fonctions mathématiques pour nombres complexes — :mod:`cmath`" #: ../Doc/library/cmath.rst:9 msgid "" -"This module is always available. It provides access to mathematical " -"functions for complex numbers. The functions in this module accept " -"integers, floating-point numbers or complex numbers as arguments. They will " -"also accept any Python object that has either a :meth:`__complex__` or a :" -"meth:`__float__` method: these methods are used to convert the object to a " -"complex or floating-point number, respectively, and the function is then " -"applied to the result of the conversion." -msgstr "" -"Ce module est toujours disponible. Il fournit l'accès aux fonctions " -"mathématiques pour les nombres complexes.Les fonctions de ce module " -"acceptent les entiers, les nombres flottants ou les nombres complexes comme " -"arguments. Elles accepteront également tout objet Python ayant une méthode :" -"meth:`__complex__` ou :meth:`__float__` : ces méthodes sont utilisées pour " -"convertir l'objet en un nombre complexe ou respectivement un nombre " -"flottant, et la fonction est ensuite appliquée sur le résultat de la " +"This module provides access to mathematical functions for complex numbers. " +"The functions in this module accept integers, floating-point numbers or " +"complex numbers as arguments. They will also accept any Python object that " +"has either a :meth:`__complex__` or a :meth:`__float__` method: these " +"methods are used to convert the object to a complex or floating-point " +"number, respectively, and the function is then applied to the result of the " "conversion." +msgstr "" +"Ce module fournit l'accès aux fonctions mathématiques pour les nombres " +"complexes. Les fonctions de ce module acceptent les entiers, les nombres " +"flottants ou les nombres complexes comme arguments. Elles acceptent " +"également tout objet Python ayant une méthode :meth:`__complex__` " +"(respectivement :meth:`__float__`) : cette méthode est utilisée pour " +"convertir l’objet en nombre complexe (respectivement un nombre flottant) et " +"la fonction est ensuite appliquée sur le résultat de la conversion." -#: ../Doc/library/cmath.rst:19 +#: ../Doc/library/cmath.rst:18 msgid "" "On platforms with hardware and system-level support for signed zeros, " "functions involving branch cuts are continuous on *both* sides of the branch " @@ -52,11 +51,11 @@ msgstr "" "coupure. Sur les plate-formes ne supportant pas les zéros signés, la " "continuité est spécifiée en-dessous." -#: ../Doc/library/cmath.rst:27 +#: ../Doc/library/cmath.rst:26 msgid "Conversions to and from polar coordinates" msgstr "Conversion vers et à partir de coordonnées polaires" -#: ../Doc/library/cmath.rst:29 +#: ../Doc/library/cmath.rst:28 msgid "" "A Python complex number ``z`` is stored internally using *rectangular* or " "*Cartesian* coordinates. It is completely determined by its *real part* ``z." @@ -64,9 +63,9 @@ msgid "" msgstr "" "Un nombre complexe Python ``z`` est stocké de manière interne en coordonnées " "*cartésiennes*. Il est entièrement défini par sa *partie réelle* ``z.real`` " -"et sa *partie complexe* ``z.imag``. En d'autres termes : ::" +"et sa *partie complexe* ``z.imag``. En d'autres termes ::" -#: ../Doc/library/cmath.rst:36 +#: ../Doc/library/cmath.rst:35 msgid "" "*Polar coordinates* give an alternative way to represent a complex number. " "In polar coordinates, a complex number *z* is defined by the modulus *r* and " @@ -83,7 +82,7 @@ msgstr "" "trigonométrique), mesuré en radians, à partir de l'axe X positif, et vers le " "segment de droite joignant *z* à l'origine." -#: ../Doc/library/cmath.rst:43 +#: ../Doc/library/cmath.rst:42 msgid "" "The following functions can be used to convert from the native rectangular " "coordinates to polar coordinates and back." @@ -92,7 +91,7 @@ msgstr "" "coordonnées rectangulaires natives vers les coordonnées polaires, et vice-" "versa." -#: ../Doc/library/cmath.rst:48 +#: ../Doc/library/cmath.rst:47 msgid "" "Return the phase of *x* (also known as the *argument* of *x*), as a float. " "``phase(x)`` is equivalent to ``math.atan2(x.imag, x.real)``. The result " @@ -108,9 +107,9 @@ msgstr "" "la partie négative de l'axe des réels, continue par au-dessus. Sur les " "systèmes supportant les zéros signés (ce qui inclut la plupart des systèmes " "utilisés actuellement), cela signifie que le signe du résultat est le même " -"que ``x.imag`` même quand ``x.imag`` vaut zéro : ::" +"que ``x.imag`` même quand ``x.imag`` vaut zéro ::" -#: ../Doc/library/cmath.rst:65 +#: ../Doc/library/cmath.rst:64 msgid "" "The modulus (absolute value) of a complex number *x* can be computed using " "the built-in :func:`abs` function. There is no separate :mod:`cmath` module " @@ -120,7 +119,7 @@ msgstr "" "utilisant la primitive :func:`abs`. Il n'y a pas de fonction spéciale du " "module :mod:`cmath` pour cette opération." -#: ../Doc/library/cmath.rst:72 +#: ../Doc/library/cmath.rst:71 msgid "" "Return the representation of *x* in polar coordinates. Returns a pair ``(r, " "phi)`` where *r* is the modulus of *x* and phi is the phase of *x*. " @@ -130,7 +129,7 @@ msgstr "" "``(r, phi)`` où *r* est le module de *x* et phi est l'argument de *x*. " "``polar(x)`` est équivalent à ``(abs(x), phase(x))``." -#: ../Doc/library/cmath.rst:80 +#: ../Doc/library/cmath.rst:79 msgid "" "Return the complex number *x* with polar coordinates *r* and *phi*. " "Equivalent to ``r * (math.cos(phi) + math.sin(phi)*1j)``." @@ -138,11 +137,11 @@ msgstr "" "Renvoie le nombre complexe *x* dont les coordonnées polaires sont *r* et " "*phi*. Équivalent à ``r * (math.cos(phi) + math.sin(phi)*1j)``." -#: ../Doc/library/cmath.rst:85 +#: ../Doc/library/cmath.rst:84 msgid "Power and logarithmic functions" msgstr "Fonctions logarithme et exponentielle" -#: ../Doc/library/cmath.rst:89 +#: ../Doc/library/cmath.rst:88 msgid "" "Return *e* raised to the power *x*, where *e* is the base of natural " "logarithms." @@ -150,7 +149,7 @@ msgstr "" "Renvoie *e* élevé à la puissance *x*, où *e* est la base des logarithmes " "naturels." -#: ../Doc/library/cmath.rst:95 +#: ../Doc/library/cmath.rst:94 msgid "" "Returns the logarithm of *x* to the given *base*. If the *base* is not " "specified, returns the natural logarithm of *x*. There is one branch cut, " @@ -161,7 +160,7 @@ msgstr "" "coupure, partant de 0 sur l'axe réel négatif et vers ``-∞``, continue par au-" "dessus." -#: ../Doc/library/cmath.rst:102 +#: ../Doc/library/cmath.rst:101 msgid "" "Return the base-10 logarithm of *x*. This has the same branch cut as :func:" "`log`." @@ -169,17 +168,17 @@ msgstr "" "Renvoie le logarithme en base 10 de *x*. Elle a la même coupure que :func:" "`log`." -#: ../Doc/library/cmath.rst:108 +#: ../Doc/library/cmath.rst:107 msgid "" "Return the square root of *x*. This has the same branch cut as :func:`log`." msgstr "" "Renvoie la racine carrée de *x*. Elle a la même coupure que :func:`log`." -#: ../Doc/library/cmath.rst:112 +#: ../Doc/library/cmath.rst:111 msgid "Trigonometric functions" msgstr "Fonctions trigonométriques" -#: ../Doc/library/cmath.rst:116 +#: ../Doc/library/cmath.rst:115 msgid "" "Return the arc cosine of *x*. There are two branch cuts: One extends right " "from 1 along the real axis to ∞, continuous from below. The other extends " @@ -189,13 +188,13 @@ msgstr "" "l'axe réel vers ∞, continue par en-dessous ; l'autre allant de ``-1`` sur " "l'axe réel vers ``-∞``, continue par au-dessus." -#: ../Doc/library/cmath.rst:123 +#: ../Doc/library/cmath.rst:122 msgid "" "Return the arc sine of *x*. This has the same branch cuts as :func:`acos`." msgstr "" "Renvoie l'arc sinus de *x*. Elle a les mêmes coupures que :func:`acos`." -#: ../Doc/library/cmath.rst:128 +#: ../Doc/library/cmath.rst:127 msgid "" "Return the arc tangent of *x*. There are two branch cuts: One extends from " "``1j`` along the imaginary axis to ``∞j``, continuous from the right. The " @@ -206,23 +205,23 @@ msgstr "" "l'axe imaginaire vers ``∞j``, continue par la droite ; l'autre allant de " "``-1j`` sur l'axe imaginaire vers ``-∞j``, continue par la gauche." -#: ../Doc/library/cmath.rst:136 +#: ../Doc/library/cmath.rst:135 msgid "Return the cosine of *x*." msgstr "Renvoie le cosinus de *x*." -#: ../Doc/library/cmath.rst:141 +#: ../Doc/library/cmath.rst:140 msgid "Return the sine of *x*." msgstr "Renvoie le sinus de *x*." -#: ../Doc/library/cmath.rst:146 +#: ../Doc/library/cmath.rst:145 msgid "Return the tangent of *x*." msgstr "Renvoie la tangente de *x*." -#: ../Doc/library/cmath.rst:150 +#: ../Doc/library/cmath.rst:149 msgid "Hyperbolic functions" msgstr "Fonctions hyperboliques" -#: ../Doc/library/cmath.rst:154 +#: ../Doc/library/cmath.rst:153 msgid "" "Return the inverse hyperbolic cosine of *x*. There is one branch cut, " "extending left from 1 along the real axis to -∞, continuous from above." @@ -230,7 +229,7 @@ msgstr "" "Renvoie l'arc cosinus hyperbolique de *x*. Il y a une coupure, allant de 1 " "sur l'axe réel vers ``-∞``, continue par au-dessus." -#: ../Doc/library/cmath.rst:160 +#: ../Doc/library/cmath.rst:159 msgid "" "Return the inverse hyperbolic sine of *x*. There are two branch cuts: One " "extends from ``1j`` along the imaginary axis to ``∞j``, continuous from the " @@ -241,7 +240,7 @@ msgstr "" "de ``1j`` sur l'axe imaginaire vers ``∞j``, continue par la droite ; l'autre " "allant de ``-1j`` sur l'axe imaginaire vers ``∞j``, continue par la gauche." -#: ../Doc/library/cmath.rst:168 +#: ../Doc/library/cmath.rst:167 msgid "" "Return the inverse hyperbolic tangent of *x*. There are two branch cuts: One " "extends from ``1`` along the real axis to ``∞``, continuous from below. The " @@ -252,23 +251,23 @@ msgstr "" "allant de ``1`` sur l'axe réel allant vers ``∞``, continue par en-dessous ; " "l'autre allant de ``-1`` sur l'axe réel vers ``-∞``, continue par au-dessus." -#: ../Doc/library/cmath.rst:176 +#: ../Doc/library/cmath.rst:175 msgid "Return the hyperbolic cosine of *x*." msgstr "Renvoie le cosinus hyperbolique de *x*." -#: ../Doc/library/cmath.rst:181 +#: ../Doc/library/cmath.rst:180 msgid "Return the hyperbolic sine of *x*." msgstr "Renvoie le sinus hyperbolique de *x*." -#: ../Doc/library/cmath.rst:186 +#: ../Doc/library/cmath.rst:185 msgid "Return the hyperbolic tangent of *x*." msgstr "Renvoie la tangente hyperbolique de *x*." -#: ../Doc/library/cmath.rst:190 +#: ../Doc/library/cmath.rst:189 msgid "Classification functions" msgstr "Fonctions de classifications" -#: ../Doc/library/cmath.rst:194 +#: ../Doc/library/cmath.rst:193 msgid "" "Return ``True`` if both the real and imaginary parts of *x* are finite, and " "``False`` otherwise." @@ -276,7 +275,7 @@ msgstr "" "Renvoie ``True`` si la partie réelle *et* la partie imaginaire de *x* sont " "finies, et ``False`` sinon." -#: ../Doc/library/cmath.rst:202 +#: ../Doc/library/cmath.rst:201 msgid "" "Return ``True`` if either the real or the imaginary part of *x* is an " "infinity, and ``False`` otherwise." @@ -284,7 +283,7 @@ msgstr "" "Renvoie ``True`` si soit la partie réelle *ou* la partie imaginaire de *x* " "est infinie, et ``False`` sinon." -#: ../Doc/library/cmath.rst:208 +#: ../Doc/library/cmath.rst:207 msgid "" "Return ``True`` if either the real or the imaginary part of *x* is a NaN, " "and ``False`` otherwise." @@ -292,7 +291,7 @@ msgstr "" "Renvoie ``True`` si soit la partie réelle *ou* la partie imaginaire de *x* " "est NaN, et ``False`` sinon." -#: ../Doc/library/cmath.rst:214 +#: ../Doc/library/cmath.rst:213 msgid "" "Return ``True`` if the values *a* and *b* are close to each other and " "``False`` otherwise." @@ -300,7 +299,7 @@ msgstr "" "Renvoie ``True`` si les valeurs *a* et *b* sont proches l'une de l'autre, et " "``False`` sinon." -#: ../Doc/library/cmath.rst:217 +#: ../Doc/library/cmath.rst:216 msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances." @@ -308,7 +307,7 @@ msgstr "" "Déterminer si deux valeurs sont proches se fait à l'aide des tolérances " "absolues et relatives données en paramètres." -#: ../Doc/library/cmath.rst:220 +#: ../Doc/library/cmath.rst:219 msgid "" "*rel_tol* is the relative tolerance -- it is the maximum allowed difference " "between *a* and *b*, relative to the larger absolute value of *a* or *b*. " @@ -323,7 +322,7 @@ msgstr "" "mêmes à partir de la 9\\ :sup:`e` décimale. *rel_tol* doit être supérieur à " "zéro." -#: ../Doc/library/cmath.rst:226 +#: ../Doc/library/cmath.rst:225 msgid "" "*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " "zero. *abs_tol* must be at least zero." @@ -331,7 +330,7 @@ msgstr "" "*abs_tol* est la tolérance absolue minimale -- utile pour les comparaisons " "proches de zéro. *abs_tol* doit valoir au moins zéro." -#: ../Doc/library/cmath.rst:229 +#: ../Doc/library/cmath.rst:228 msgid "" "If no errors occur, the result will be: ``abs(a-b) <= max(rel_tol * " "max(abs(a), abs(b)), abs_tol)``." @@ -339,7 +338,7 @@ msgstr "" "Si aucune erreur n'est rencontrée, le résultat sera : ``abs(a-b) <= " "max(rel_tol * max(abs(a), abs(b)), abs_tol)``." -#: ../Doc/library/cmath.rst:232 +#: ../Doc/library/cmath.rst:231 msgid "" "The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " "handled according to IEEE rules. Specifically, ``NaN`` is not considered " @@ -352,32 +351,32 @@ msgstr "" "``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérés proches que d'eux-" "mêmes." -#: ../Doc/library/cmath.rst:241 +#: ../Doc/library/cmath.rst:240 msgid ":pep:`485` -- A function for testing approximate equality" msgstr ":pep:`485` -- Une fonction pour tester des égalités approximées" -#: ../Doc/library/cmath.rst:245 +#: ../Doc/library/cmath.rst:244 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/cmath.rst:249 +#: ../Doc/library/cmath.rst:248 msgid "The mathematical constant *π*, as a float." msgstr "La constante mathématique *π*, en tant que flottant." -#: ../Doc/library/cmath.rst:254 +#: ../Doc/library/cmath.rst:253 msgid "The mathematical constant *e*, as a float." msgstr "La constante mathématique *e*, en tant que flottant." -#: ../Doc/library/cmath.rst:259 +#: ../Doc/library/cmath.rst:258 msgid "The mathematical constant *τ*, as a float." msgstr "La constante mathématique *τ*, sous forme de flottant." -#: ../Doc/library/cmath.rst:266 +#: ../Doc/library/cmath.rst:265 msgid "Floating-point positive infinity. Equivalent to ``float('inf')``." msgstr "" "Nombre à virgule flottante positif infini. Équivaut à ``float('inf')``." -#: ../Doc/library/cmath.rst:273 +#: ../Doc/library/cmath.rst:272 msgid "" "Complex number with zero real part and positive infinity imaginary part. " "Equivalent to ``complex(0.0, float('inf'))``." @@ -385,7 +384,7 @@ msgstr "" "Nombre complexe dont la partie réelle vaut zéro et la partie imaginaire un " "infini positif. Équivalent à ``complex(0.0, float('inf'))``." -#: ../Doc/library/cmath.rst:281 +#: ../Doc/library/cmath.rst:280 msgid "" "A floating-point \"not a number\" (NaN) value. Equivalent to " "``float('nan')``." @@ -393,7 +392,7 @@ msgstr "" "Un nombre à virgule flottante *NaN* (*Not a number*). Équivalent à " "``float('nan')``." -#: ../Doc/library/cmath.rst:289 +#: ../Doc/library/cmath.rst:288 msgid "" "Complex number with zero real part and NaN imaginary part. Equivalent to " "``complex(0.0, float('nan'))``." @@ -401,7 +400,7 @@ msgstr "" "Nombre complexe dont la partie réelle vaut zéro et la partie imaginaire vaut " "un *NaN*. Équivalent à ``complex(0.0, float('nan'))``." -#: ../Doc/library/cmath.rst:297 +#: ../Doc/library/cmath.rst:296 msgid "" "Note that the selection of functions is similar, but not identical, to that " "in module :mod:`math`. The reason for having two modules is that some users " @@ -421,7 +420,7 @@ msgstr "" "toujours un nombre complexe, même si le résultat peut être exprimé à l'aide " "d'un nombre réel (en quel cas la partie imaginaire du complexe vaut zéro)." -#: ../Doc/library/cmath.rst:305 +#: ../Doc/library/cmath.rst:304 msgid "" "A note on branch cuts: They are curves along which the given function fails " "to be continuous. They are a necessary feature of many complex functions. " @@ -439,7 +438,7 @@ msgstr "" "plus d'informations. Pour des informations sur les choix des coupures à des " "fins numériques, voici une bonne référence :" -#: ../Doc/library/cmath.rst:315 +#: ../Doc/library/cmath.rst:314 msgid "" "Kahan, W: Branch cuts for complex elementary functions; or, Much ado about " "nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the " diff --git a/library/cmd.po b/library/cmd.po index 6fa9d2a38..eda3caa3f 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-21 09:15+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-07-29 23:43+0200\n" "Last-Translator: Luka Peschke \n" "Language-Team: FRENCH \n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/cmd.rst:2 msgid ":mod:`cmd` --- Support for line-oriented command interpreters" -msgstr ":mod:`cmd` --- Interpréteurs en ligne de commande." +msgstr ":mod:`cmd` — Interpréteurs en ligne de commande." #: ../Doc/library/cmd.rst:9 msgid "**Source code:** :source:`Lib/cmd.py`" @@ -90,7 +90,7 @@ msgstr "Objets Cmd" #: ../Doc/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:" +msgstr "Une instance de :class:`Cmd` possède les méthodes suivantes :" #: ../Doc/library/cmd.rst:49 msgid "" @@ -131,7 +131,7 @@ msgstr "" "Une caractère de fin de fichier est transmis via la chaîne de caractères " "``'EOF'``." -#: ../Doc/library/cmd.rst:64 +#: ../Doc/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:70 +#: ../Doc/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:74 +#: ../Doc/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,7 +177,7 @@ msgstr "" "pour fournir différentes complétions en fonction de la position de " "l'argument." -#: ../Doc/library/cmd.rst:82 +#: ../Doc/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 :" @@ -196,7 +196,7 @@ msgstr "" "correspondante ou commande ayant une *docstring*, elle lisera aussi les " "commandes non documentées." -#: ../Doc/library/cmd.rst:93 +#: ../Doc/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:104 +#: ../Doc/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:110 +#: ../Doc/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:116 +#: ../Doc/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:122 +#: ../Doc/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:132 +#: ../Doc/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:143 +#: ../Doc/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:149 +#: ../Doc/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:153 +#: ../Doc/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:157 +#: ../Doc/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:162 +#: ../Doc/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:167 +#: ../Doc/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:172 +#: ../Doc/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:179 +#: ../Doc/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:185 +#: ../Doc/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:190 +#: ../Doc/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,7 +350,7 @@ msgstr "" "sujets (c'est-à-dire qu'il existe des méthodes :meth:`help_\\*` sans " "méthodes :meth:`do_\\*` correspondantes)." -#: ../Doc/library/cmd.rst:197 +#: ../Doc/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 :" @@ -360,7 +360,7 @@ msgstr "" "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:204 +#: ../Doc/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:210 +#: ../Doc/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:220 +#: ../Doc/library/cmd.rst:224 msgid "Cmd Example" msgstr "Exemple" -#: ../Doc/library/cmd.rst:224 +#: ../Doc/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:227 +#: ../Doc/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:230 +#: ../Doc/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:235 +#: ../Doc/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:316 +#: ../Doc/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/codecs.po b/library/codecs.po index 22720c93b..7ae3c2e82 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: 2018-09-27 15:02+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-11-29 21:18+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -16,11 +16,11 @@ msgstr "" #: ../Doc/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 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 msgid "" @@ -33,16 +33,29 @@ 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 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 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 msgid "" @@ -52,10 +65,16 @@ 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 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 msgid "" @@ -65,16 +84,25 @@ 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 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 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 msgid "" @@ -83,16 +111,23 @@ msgid "" "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 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 msgid "The name of the encoding." -msgstr "" +msgstr "Le nom de l'encodeur." #: ../Doc/library/codecs.rst:82 msgid "" @@ -102,6 +137,11 @@ 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 msgid "" @@ -110,6 +150,11 @@ msgid "" "`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 msgid "" @@ -117,69 +162,94 @@ msgid "" "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 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 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 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 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 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 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 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 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 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 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 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 msgid "" @@ -188,12 +258,20 @@ msgid "" "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 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 msgid "" @@ -202,6 +280,11 @@ msgid "" "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 msgid "" @@ -209,6 +292,10 @@ msgid "" "`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 msgid "" @@ -217,6 +304,11 @@ msgid "" "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 msgid "" @@ -224,6 +316,10 @@ msgid "" "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 msgid "" @@ -231,6 +327,9 @@ msgid "" "``'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 msgid "" @@ -244,6 +343,9 @@ msgid "" "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 msgid "" @@ -252,10 +354,17 @@ msgid "" "*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 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 msgid "" @@ -263,6 +372,9 @@ msgid "" "``'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 msgid "" @@ -271,6 +383,10 @@ msgid "" "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 msgid "" @@ -278,6 +394,9 @@ msgid "" "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 msgid "" @@ -286,6 +405,10 @@ msgid "" "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 msgid "" @@ -294,12 +417,18 @@ msgid "" "``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 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 msgid "" @@ -312,10 +441,19 @@ 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 "" +"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." #: ../Doc/library/codecs.rst:274 msgid "Codec Base Classes" -msgstr "" +msgstr "Classes de base de codecs" #: ../Doc/library/codecs.rst:276 msgid "" @@ -323,6 +461,10 @@ msgid "" "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 msgid "" @@ -332,10 +474,16 @@ 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 msgid "Error Handlers" -msgstr "" +msgstr "Gestionnaires d'erreurs" #: ../Doc/library/codecs.rst:293 msgid "" @@ -345,13 +493,13 @@ msgid "" "codecs:" msgstr "" -#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:316 -#: ../Doc/library/codecs.rst:349 +#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:324 +#: ../Doc/library/codecs.rst:357 msgid "Value" msgstr "Valeur" -#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:316 -#: ../Doc/library/codecs.rst:349 +#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:324 +#: ../Doc/library/codecs.rst:357 msgid "Meaning" msgstr "Signification" @@ -380,53 +528,57 @@ 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:318 +#: ../Doc/library/codecs.rst:326 msgid "``'replace'``" msgstr "``'replace'``" -#: ../Doc/library/codecs.rst:318 +#: ../Doc/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`." msgstr "" -#: ../Doc/library/codecs.rst:325 +#: ../Doc/library/codecs.rst:333 msgid "``'xmlcharrefreplace'``" msgstr "``'xmlcharrefreplace'``" -#: ../Doc/library/codecs.rst:325 +#: ../Doc/library/codecs.rst:333 msgid "" "Replace with the appropriate XML character reference (only for encoding). " "Implemented in :func:`xmlcharrefreplace_errors`." msgstr "" -#: ../Doc/library/codecs.rst:329 +#: ../Doc/library/codecs.rst:337 msgid "``'backslashreplace'``" msgstr "``'backslashreplace'``" -#: ../Doc/library/codecs.rst:329 +#: ../Doc/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:333 +#: ../Doc/library/codecs.rst:341 msgid "``'namereplace'``" msgstr "``'namereplace'``" -#: ../Doc/library/codecs.rst:333 +#: ../Doc/library/codecs.rst:341 msgid "" "Replace with ``\\N{...}`` escape sequences (only for encoding). Implemented " "in :func:`namereplace_errors`." msgstr "" -#: ../Doc/library/codecs.rst:337 +#: ../Doc/library/codecs.rst:345 msgid "``'surrogateescape'``" msgstr "``'surrogateescape'``" -#: ../Doc/library/codecs.rst:337 +#: ../Doc/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 " @@ -434,63 +586,72 @@ msgid "" "data. (See :pep:`383` for more.)" msgstr "" -#: ../Doc/library/codecs.rst:346 +#: ../Doc/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:349 +#: ../Doc/library/codecs.rst:357 msgid "Codecs" -msgstr "" +msgstr "Codecs" -#: ../Doc/library/codecs.rst:351 +#: ../Doc/library/codecs.rst:359 msgid "``'surrogatepass'``" msgstr "``'surrogatepass'``" -#: ../Doc/library/codecs.rst:351 +#: ../Doc/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:351 +#: ../Doc/library/codecs.rst:359 msgid "" "Allow encoding and decoding of surrogate codes. These codecs normally treat " "the presence of surrogates as an error." msgstr "" -#: ../Doc/library/codecs.rst:356 +#: ../Doc/library/codecs.rst:364 msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." msgstr "" +"les gestionnaires d'erreurs ``'surrogateescape'`` et ``'surrogatepass'``." -#: ../Doc/library/codecs.rst:359 +#: ../Doc/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:362 +#: ../Doc/library/codecs.rst:370 msgid "The ``'namereplace'`` error handler." -msgstr "" +msgstr "le gestionnaire d'erreurs ``'namereplace'``." -#: ../Doc/library/codecs.rst:365 +#: ../Doc/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:369 +#: ../Doc/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:374 +#: ../Doc/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:378 +#: ../Doc/library/codecs.rst:386 msgid "" "For encoding, *error_handler* will be called with a :exc:" "`UnicodeEncodeError` instance, which contains information about the location " @@ -505,40 +666,40 @@ msgid "" "position is out of bound an :exc:`IndexError` will be raised." msgstr "" -#: ../Doc/library/codecs.rst:390 +#: ../Doc/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:395 +#: ../Doc/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:400 +#: ../Doc/library/codecs.rst:408 msgid "Return the error handler previously registered under the name *name*." msgstr "" -#: ../Doc/library/codecs.rst:402 +#: ../Doc/library/codecs.rst:410 msgid "Raises a :exc:`LookupError` in case the handler cannot be found." msgstr "" -#: ../Doc/library/codecs.rst:404 +#: ../Doc/library/codecs.rst:412 msgid "" "The following standard error handlers are also made available as module " "level functions:" msgstr "" -#: ../Doc/library/codecs.rst:409 +#: ../Doc/library/codecs.rst:417 msgid "" "Implements the ``'strict'`` error handling: each encoding or decoding error " "raises a :exc:`UnicodeError`." msgstr "" -#: ../Doc/library/codecs.rst:415 +#: ../Doc/library/codecs.rst:423 msgid "" "Implements the ``'replace'`` error handling (for :term:`text encodings ` only): substitutes ``'?'`` for encoding errors (to be encoded by " @@ -546,44 +707,44 @@ msgid "" "decoding errors." msgstr "" -#: ../Doc/library/codecs.rst:423 +#: ../Doc/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:429 +#: ../Doc/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:436 +#: ../Doc/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:442 +#: ../Doc/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:452 +#: ../Doc/library/codecs.rst:460 msgid "Stateless Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:454 +#: ../Doc/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:460 +#: ../Doc/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 " @@ -591,26 +752,26 @@ msgid "" "``iso-8859-1``)." msgstr "" -#: ../Doc/library/codecs.rst:465 ../Doc/library/codecs.rst:487 +#: ../Doc/library/codecs.rst:473 ../Doc/library/codecs.rst:495 msgid "" "The *errors* argument defines the error handling to apply. It defaults to " "``'strict'`` handling." msgstr "" -#: ../Doc/library/codecs.rst:468 +#: ../Doc/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:472 +#: ../Doc/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:478 +#: ../Doc/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 " @@ -618,31 +779,31 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:483 +#: ../Doc/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:490 +#: ../Doc/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:494 +#: ../Doc/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:499 +#: ../Doc/library/codecs.rst:507 msgid "Incremental Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:501 +#: ../Doc/library/codecs.rst:509 msgid "" "The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " "provide the basic interface for incremental encoding and decoding. Encoding/" @@ -653,7 +814,7 @@ msgid "" "during method calls." msgstr "" -#: ../Doc/library/codecs.rst:509 +#: ../Doc/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 " @@ -661,36 +822,36 @@ msgid "" "encoder/decoder." msgstr "" -#: ../Doc/library/codecs.rst:518 +#: ../Doc/library/codecs.rst:526 msgid "IncrementalEncoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:520 +#: ../Doc/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:527 +#: ../Doc/library/codecs.rst:535 msgid "Constructor for an :class:`IncrementalEncoder` instance." msgstr "" -#: ../Doc/library/codecs.rst:529 +#: ../Doc/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:533 +#: ../Doc/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:537 +#: ../Doc/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 " @@ -698,21 +859,21 @@ msgid "" "`IncrementalEncoder` object." msgstr "" -#: ../Doc/library/codecs.rst:545 +#: ../Doc/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:552 +#: ../Doc/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:559 +#: ../Doc/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 " @@ -721,42 +882,42 @@ msgid "" "into an integer)." msgstr "" -#: ../Doc/library/codecs.rst:568 +#: ../Doc/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:575 +#: ../Doc/library/codecs.rst:583 msgid "IncrementalDecoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:577 +#: ../Doc/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:584 +#: ../Doc/library/codecs.rst:592 msgid "Constructor for an :class:`IncrementalDecoder` instance." msgstr "" -#: ../Doc/library/codecs.rst:586 +#: ../Doc/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:590 +#: ../Doc/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:594 +#: ../Doc/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 " @@ -764,7 +925,7 @@ msgid "" "`IncrementalDecoder` object." msgstr "" -#: ../Doc/library/codecs.rst:602 +#: ../Doc/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:" @@ -775,11 +936,11 @@ msgid "" "(which might raise an exception)." msgstr "" -#: ../Doc/library/codecs.rst:613 +#: ../Doc/library/codecs.rst:621 msgid "Reset the decoder to the initial state." msgstr "" -#: ../Doc/library/codecs.rst:618 +#: ../Doc/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. " @@ -794,59 +955,59 @@ msgid "" "bytes of the resulting string into an integer.)" msgstr "" -#: ../Doc/library/codecs.rst:633 +#: ../Doc/library/codecs.rst:641 msgid "" -"Set the state of the encoder to *state*. *state* must be a decoder state " +"Set the state of the decoder to *state*. *state* must be a decoder state " "returned by :meth:`getstate`." msgstr "" -#: ../Doc/library/codecs.rst:638 +#: ../Doc/library/codecs.rst:646 msgid "Stream Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:641 +#: ../Doc/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:649 +#: ../Doc/library/codecs.rst:657 msgid "StreamWriter Objects" msgstr "" -#: ../Doc/library/codecs.rst:651 +#: ../Doc/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:658 +#: ../Doc/library/codecs.rst:666 msgid "Constructor for a :class:`StreamWriter` instance." msgstr "" -#: ../Doc/library/codecs.rst:660 +#: ../Doc/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:664 +#: ../Doc/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:667 +#: ../Doc/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:671 +#: ../Doc/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 " @@ -854,70 +1015,70 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:677 +#: ../Doc/library/codecs.rst:685 msgid "Writes the object's contents encoded to the stream." msgstr "" -#: ../Doc/library/codecs.rst:682 +#: ../Doc/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:689 +#: ../Doc/library/codecs.rst:697 msgid "Flushes and resets the codec buffers used for keeping state." msgstr "" -#: ../Doc/library/codecs.rst:691 +#: ../Doc/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:696 +#: ../Doc/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:703 +#: ../Doc/library/codecs.rst:711 msgid "StreamReader Objects" msgstr "" -#: ../Doc/library/codecs.rst:705 +#: ../Doc/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:712 +#: ../Doc/library/codecs.rst:720 msgid "Constructor for a :class:`StreamReader` instance." msgstr "" -#: ../Doc/library/codecs.rst:714 +#: ../Doc/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:718 +#: ../Doc/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:721 +#: ../Doc/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:725 +#: ../Doc/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 " @@ -925,24 +1086,24 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:729 +#: ../Doc/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:735 +#: ../Doc/library/codecs.rst:743 msgid "Decodes data from the stream and returns the resulting object." msgstr "" -#: ../Doc/library/codecs.rst:737 +#: ../Doc/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:742 +#: ../Doc/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 " @@ -951,13 +1112,13 @@ msgid "" "huge files in one step." msgstr "" -#: ../Doc/library/codecs.rst:749 +#: ../Doc/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:753 +#: ../Doc/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 " @@ -965,72 +1126,72 @@ msgid "" "the stream, these should be read too." msgstr "" -#: ../Doc/library/codecs.rst:761 +#: ../Doc/library/codecs.rst:769 msgid "Read one line from the input stream and return the decoded data." msgstr "" -#: ../Doc/library/codecs.rst:763 +#: ../Doc/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:766 +#: ../Doc/library/codecs.rst:774 msgid "" "If *keepends* is false line-endings will be stripped from the lines returned." msgstr "" -#: ../Doc/library/codecs.rst:772 +#: ../Doc/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:775 +#: ../Doc/library/codecs.rst:783 msgid "" "Line-endings are implemented using the codec's decoder method and are " "included in the list entries if *keepends* is true." msgstr "" -#: ../Doc/library/codecs.rst:778 +#: ../Doc/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:784 +#: ../Doc/library/codecs.rst:792 msgid "Resets the codec buffers used for keeping state." msgstr "" -#: ../Doc/library/codecs.rst:786 +#: ../Doc/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:790 +#: ../Doc/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:796 +#: ../Doc/library/codecs.rst:804 msgid "StreamReaderWriter Objects" msgstr "" -#: ../Doc/library/codecs.rst:798 +#: ../Doc/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:801 ../Doc/library/codecs.rst:825 +#: ../Doc/library/codecs.rst:809 ../Doc/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:807 +#: ../Doc/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 " @@ -1039,24 +1200,24 @@ msgid "" "writers." msgstr "" -#: ../Doc/library/codecs.rst:812 +#: ../Doc/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:820 +#: ../Doc/library/codecs.rst:828 msgid "StreamRecoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:822 +#: ../Doc/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:831 +#: ../Doc/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 " @@ -1064,17 +1225,17 @@ msgid "" "work on the backend — the data in *stream*." msgstr "" -#: ../Doc/library/codecs.rst:836 +#: ../Doc/library/codecs.rst:844 msgid "" "You can use these objects to do transparent transcodings from e.g. Latin-1 " "to UTF-8 and back." msgstr "" -#: ../Doc/library/codecs.rst:839 +#: ../Doc/library/codecs.rst:847 msgid "The *stream* argument must be a file-like object." msgstr "" -#: ../Doc/library/codecs.rst:841 +#: ../Doc/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 " @@ -1082,24 +1243,24 @@ msgid "" "interface respectively." msgstr "" -#: ../Doc/library/codecs.rst:846 +#: ../Doc/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:850 +#: ../Doc/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:858 +#: ../Doc/library/codecs.rst:866 msgid "Encodings and Unicode" msgstr "" -#: ../Doc/library/codecs.rst:860 +#: ../Doc/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.) " @@ -1111,7 +1272,7 @@ msgid "" "collectivity referred to as :term:`text encodings `." msgstr "" -#: ../Doc/library/codecs.rst:870 +#: ../Doc/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 " @@ -1122,7 +1283,7 @@ msgid "" "position 3: ordinal not in range(256)``." msgstr "" -#: ../Doc/library/codecs.rst:878 +#: ../Doc/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 " @@ -1132,7 +1293,7 @@ msgid "" "that shows you which character is mapped to which byte value." msgstr "" -#: ../Doc/library/codecs.rst:885 +#: ../Doc/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 " @@ -1162,7 +1323,7 @@ msgid "" "normal character that will be decoded like any other." msgstr "" -#: ../Doc/library/codecs.rst:911 +#: ../Doc/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 " @@ -1173,59 +1334,59 @@ msgid "" "which when concatenated give the Unicode character):" msgstr "" -#: ../Doc/library/codecs.rst:920 +#: ../Doc/library/codecs.rst:928 msgid "Range" msgstr "*Range*" -#: ../Doc/library/codecs.rst:920 +#: ../Doc/library/codecs.rst:928 msgid "Encoding" msgstr "" -#: ../Doc/library/codecs.rst:922 +#: ../Doc/library/codecs.rst:930 msgid "``U-00000000`` ... ``U-0000007F``" msgstr "``U-00000000`` ... ``U-0000007F``" -#: ../Doc/library/codecs.rst:922 +#: ../Doc/library/codecs.rst:930 msgid "0xxxxxxx" msgstr "0xxxxxxx" -#: ../Doc/library/codecs.rst:924 +#: ../Doc/library/codecs.rst:932 msgid "``U-00000080`` ... ``U-000007FF``" msgstr "``U-00000080`` ... ``U-000007FF``" -#: ../Doc/library/codecs.rst:924 +#: ../Doc/library/codecs.rst:932 msgid "110xxxxx 10xxxxxx" msgstr "110xxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:926 +#: ../Doc/library/codecs.rst:934 msgid "``U-00000800`` ... ``U-0000FFFF``" msgstr "``U-00000800`` ... ``U-0000FFFF``" -#: ../Doc/library/codecs.rst:926 +#: ../Doc/library/codecs.rst:934 msgid "1110xxxx 10xxxxxx 10xxxxxx" msgstr "1110xxxx 10xxxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:928 +#: ../Doc/library/codecs.rst:936 msgid "``U-00010000`` ... ``U-0010FFFF``" msgstr "``U-00010000`` ... ``U-0010FFFF``" -#: ../Doc/library/codecs.rst:928 +#: ../Doc/library/codecs.rst:936 msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" msgstr "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:931 +#: ../Doc/library/codecs.rst:939 msgid "" "The least significant bit of the Unicode character is the rightmost x bit." msgstr "" -#: ../Doc/library/codecs.rst:933 +#: ../Doc/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:937 +#: ../Doc/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 " @@ -1252,7 +1413,7 @@ msgstr "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" msgid "INVERTED QUESTION MARK" msgstr "INVERTED QUESTION MARK" -#: ../Doc/library/codecs.rst:953 +#: ../Doc/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 " @@ -1264,11 +1425,11 @@ msgid "" "the use of the BOM is discouraged and should generally be avoided." msgstr "" -#: ../Doc/library/codecs.rst:966 +#: ../Doc/library/codecs.rst:974 msgid "Standard Encodings" msgstr "" -#: ../Doc/library/codecs.rst:968 +#: ../Doc/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 " @@ -1280,7 +1441,7 @@ msgid "" "alias for the ``'utf_8'`` codec." msgstr "" -#: ../Doc/library/codecs.rst:978 +#: ../Doc/library/codecs.rst:986 msgid "" "Some common encodings can bypass the codecs lookup machinery to improve " "performance. These optimization opportunities are only recognized by " @@ -1291,11 +1452,11 @@ msgid "" "slower execution." msgstr "" -#: ../Doc/library/codecs.rst:986 +#: ../Doc/library/codecs.rst:994 msgid "Optimization opportunity recognized for us-ascii." msgstr "" -#: ../Doc/library/codecs.rst:989 +#: ../Doc/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,959 +1464,961 @@ msgid "" "languages in particular, the following variants typically exist:" msgstr "" -#: ../Doc/library/codecs.rst:994 +#: ../Doc/library/codecs.rst:1002 msgid "an ISO 8859 codeset" msgstr "" -#: ../Doc/library/codecs.rst:996 +#: ../Doc/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:999 +#: ../Doc/library/codecs.rst:1007 msgid "an IBM EBCDIC code page" msgstr "" -#: ../Doc/library/codecs.rst:1001 +#: ../Doc/library/codecs.rst:1009 msgid "an IBM PC code page, which is ASCII compatible" msgstr "" -#: ../Doc/library/codecs.rst:1006 ../Doc/library/codecs.rst:1262 -#: ../Doc/library/codecs.rst:1335 ../Doc/library/codecs.rst:1390 +#: ../Doc/library/codecs.rst:1014 ../Doc/library/codecs.rst:1270 +#: ../Doc/library/codecs.rst:1343 ../Doc/library/codecs.rst:1398 msgid "Codec" msgstr "" -#: ../Doc/library/codecs.rst:1006 ../Doc/library/codecs.rst:1262 -#: ../Doc/library/codecs.rst:1335 ../Doc/library/codecs.rst:1390 +#: ../Doc/library/codecs.rst:1014 ../Doc/library/codecs.rst:1270 +#: ../Doc/library/codecs.rst:1343 ../Doc/library/codecs.rst:1398 msgid "Aliases" msgstr "" -#: ../Doc/library/codecs.rst:1006 +#: ../Doc/library/codecs.rst:1014 msgid "Languages" msgstr "" -#: ../Doc/library/codecs.rst:1008 +#: ../Doc/library/codecs.rst:1016 msgid "ascii" -msgstr "ascii" +msgstr "*ascii*" -#: ../Doc/library/codecs.rst:1008 +#: ../Doc/library/codecs.rst:1016 msgid "646, us-ascii" -msgstr "646, us-ascii" +msgstr "*646*, *us-ascii*" -#: ../Doc/library/codecs.rst:1008 ../Doc/library/codecs.rst:1014 -#: ../Doc/library/codecs.rst:1022 +#: ../Doc/library/codecs.rst:1016 ../Doc/library/codecs.rst:1022 +#: ../Doc/library/codecs.rst:1030 msgid "English" msgstr "Anglais" -#: ../Doc/library/codecs.rst:1010 +#: ../Doc/library/codecs.rst:1018 msgid "big5" -msgstr "big5" +msgstr "*big5*" -#: ../Doc/library/codecs.rst:1010 +#: ../Doc/library/codecs.rst:1018 msgid "big5-tw, csbig5" -msgstr "big5-tw, csbig5" +msgstr "*big5-tw*, *csbig5*" -#: ../Doc/library/codecs.rst:1010 ../Doc/library/codecs.rst:1012 -#: ../Doc/library/codecs.rst:1070 +#: ../Doc/library/codecs.rst:1018 ../Doc/library/codecs.rst:1020 +#: ../Doc/library/codecs.rst:1078 msgid "Traditional Chinese" msgstr "Chinois Traditionnel" -#: ../Doc/library/codecs.rst:1012 +#: ../Doc/library/codecs.rst:1020 msgid "big5hkscs" -msgstr "big5hkscs" +msgstr "*big5hkscs*" -#: ../Doc/library/codecs.rst:1012 +#: ../Doc/library/codecs.rst:1020 msgid "big5-hkscs, hkscs" -msgstr "big5-hkscs, hkscs" +msgstr "*big5-hkscs*, *hkscs*" -#: ../Doc/library/codecs.rst:1014 +#: ../Doc/library/codecs.rst:1022 msgid "cp037" -msgstr "cp037" +msgstr "*cp037*" -#: ../Doc/library/codecs.rst:1014 +#: ../Doc/library/codecs.rst:1022 msgid "IBM037, IBM039" -msgstr "IBM037, IBM039" +msgstr "*IBM037*, *IBM039*" -#: ../Doc/library/codecs.rst:1016 +#: ../Doc/library/codecs.rst:1024 msgid "cp273" -msgstr "cp273" +msgstr "*cp273*" -#: ../Doc/library/codecs.rst:1016 +#: ../Doc/library/codecs.rst:1024 msgid "273, IBM273, csIBM273" -msgstr "273, IBM273, csIBM273" +msgstr "*273*, *IBM273*, *csIBM273*" -#: ../Doc/library/codecs.rst:1016 +#: ../Doc/library/codecs.rst:1024 msgid "German" msgstr "Allemand" -#: ../Doc/library/codecs.rst:1020 +#: ../Doc/library/codecs.rst:1028 msgid "cp424" -msgstr "cp424" +msgstr "*cp424*" -#: ../Doc/library/codecs.rst:1020 +#: ../Doc/library/codecs.rst:1028 msgid "EBCDIC-CP-HE, IBM424" -msgstr "EBCDIC-CP-HE, IBM424" +msgstr "*EBCDIC-CP-HE*, *IBM424*" -#: ../Doc/library/codecs.rst:1020 ../Doc/library/codecs.rst:1040 -#: ../Doc/library/codecs.rst:1050 ../Doc/library/codecs.rst:1093 -#: ../Doc/library/codecs.rst:1161 +#: ../Doc/library/codecs.rst:1028 ../Doc/library/codecs.rst:1048 +#: ../Doc/library/codecs.rst:1058 ../Doc/library/codecs.rst:1101 +#: ../Doc/library/codecs.rst:1169 msgid "Hebrew" msgstr "Hébreux" -#: ../Doc/library/codecs.rst:1022 +#: ../Doc/library/codecs.rst:1030 msgid "cp437" -msgstr "cp437" +msgstr "*cp437*" -#: ../Doc/library/codecs.rst:1022 +#: ../Doc/library/codecs.rst:1030 msgid "437, IBM437" -msgstr "437, IBM437" +msgstr "*437*, *IBM437*" -#: ../Doc/library/codecs.rst:1024 +#: ../Doc/library/codecs.rst:1032 msgid "cp500" -msgstr "cp500" +msgstr "*cp500*" -#: ../Doc/library/codecs.rst:1024 +#: ../Doc/library/codecs.rst:1032 msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" -msgstr "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" +msgstr "*EBCDIC-CP-BE*, *EBCDIC-CP-CH*, *IBM500*" -#: ../Doc/library/codecs.rst:1024 ../Doc/library/codecs.rst:1033 -#: ../Doc/library/codecs.rst:1044 ../Doc/library/codecs.rst:1080 -#: ../Doc/library/codecs.rst:1087 ../Doc/library/codecs.rst:1173 -#: ../Doc/library/codecs.rst:1200 +#: ../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:1181 +#: ../Doc/library/codecs.rst:1208 msgid "Western Europe" msgstr "Europe de l'ouest" -#: ../Doc/library/codecs.rst:1027 +#: ../Doc/library/codecs.rst:1035 msgid "cp720" -msgstr "cp720" +msgstr "*cp720*" -#: ../Doc/library/codecs.rst:1027 ../Doc/library/codecs.rst:1054 -#: ../Doc/library/codecs.rst:1095 ../Doc/library/codecs.rst:1157 +#: ../Doc/library/codecs.rst:1035 ../Doc/library/codecs.rst:1062 +#: ../Doc/library/codecs.rst:1103 ../Doc/library/codecs.rst:1165 msgid "Arabic" msgstr "Arabe" -#: ../Doc/library/codecs.rst:1029 +#: ../Doc/library/codecs.rst:1037 msgid "cp737" -msgstr "cp737" +msgstr "*cp737*" -#: ../Doc/library/codecs.rst:1029 ../Doc/library/codecs.rst:1060 -#: ../Doc/library/codecs.rst:1064 ../Doc/library/codecs.rst:1089 -#: ../Doc/library/codecs.rst:1159 ../Doc/library/codecs.rst:1194 +#: ../Doc/library/codecs.rst:1037 ../Doc/library/codecs.rst:1068 +#: ../Doc/library/codecs.rst:1072 ../Doc/library/codecs.rst:1097 +#: ../Doc/library/codecs.rst:1167 ../Doc/library/codecs.rst:1202 msgid "Greek" msgstr "Grec" -#: ../Doc/library/codecs.rst:1031 +#: ../Doc/library/codecs.rst:1039 msgid "cp775" -msgstr "cp775" +msgstr "*cp775*" -#: ../Doc/library/codecs.rst:1031 +#: ../Doc/library/codecs.rst:1039 msgid "IBM775" -msgstr "IBM775" +msgstr "*IBM775*" -#: ../Doc/library/codecs.rst:1031 ../Doc/library/codecs.rst:1097 -#: ../Doc/library/codecs.rst:1152 ../Doc/library/codecs.rst:1169 +#: ../Doc/library/codecs.rst:1039 ../Doc/library/codecs.rst:1105 +#: ../Doc/library/codecs.rst:1160 ../Doc/library/codecs.rst:1177 msgid "Baltic languages" msgstr "Langues Baltiques" -#: ../Doc/library/codecs.rst:1033 +#: ../Doc/library/codecs.rst:1041 msgid "cp850" -msgstr "cp850" +msgstr "*cp850*" -#: ../Doc/library/codecs.rst:1033 +#: ../Doc/library/codecs.rst:1041 msgid "850, IBM850" -msgstr "850, IBM850" +msgstr "*850*, *IBM850*" -#: ../Doc/library/codecs.rst:1035 +#: ../Doc/library/codecs.rst:1043 msgid "cp852" -msgstr "cp852" +msgstr "*cp852*" -#: ../Doc/library/codecs.rst:1035 +#: ../Doc/library/codecs.rst:1043 msgid "852, IBM852" -msgstr "852, IBM852" +msgstr "*852*, *IBM852*" -#: ../Doc/library/codecs.rst:1035 ../Doc/library/codecs.rst:1082 -#: ../Doc/library/codecs.rst:1148 ../Doc/library/codecs.rst:1198 +#: ../Doc/library/codecs.rst:1043 ../Doc/library/codecs.rst:1090 +#: ../Doc/library/codecs.rst:1156 ../Doc/library/codecs.rst:1206 msgid "Central and Eastern Europe" msgstr "Europe centrale et Europe de l'Est" -#: ../Doc/library/codecs.rst:1037 +#: ../Doc/library/codecs.rst:1045 msgid "cp855" -msgstr "cp855" +msgstr "*cp855*" -#: ../Doc/library/codecs.rst:1037 +#: ../Doc/library/codecs.rst:1045 msgid "855, IBM855" -msgstr "855, IBM855" +msgstr "*855*, *IBM855*" -#: ../Doc/library/codecs.rst:1037 ../Doc/library/codecs.rst:1084 -#: ../Doc/library/codecs.rst:1154 ../Doc/library/codecs.rst:1191 +#: ../Doc/library/codecs.rst:1045 ../Doc/library/codecs.rst:1092 +#: ../Doc/library/codecs.rst:1162 ../Doc/library/codecs.rst:1199 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian" msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe" -#: ../Doc/library/codecs.rst:1040 +#: ../Doc/library/codecs.rst:1048 msgid "cp856" -msgstr "cp856" +msgstr "*cp856*" -#: ../Doc/library/codecs.rst:1042 +#: ../Doc/library/codecs.rst:1050 msgid "cp857" -msgstr "cp857" +msgstr "*cp857*" -#: ../Doc/library/codecs.rst:1042 +#: ../Doc/library/codecs.rst:1050 msgid "857, IBM857" -msgstr "857, IBM857" +msgstr "*857*, *IBM857*" -#: ../Doc/library/codecs.rst:1042 ../Doc/library/codecs.rst:1074 -#: ../Doc/library/codecs.rst:1091 ../Doc/library/codecs.rst:1163 -#: ../Doc/library/codecs.rst:1202 +#: ../Doc/library/codecs.rst:1050 ../Doc/library/codecs.rst:1082 +#: ../Doc/library/codecs.rst:1099 ../Doc/library/codecs.rst:1171 +#: ../Doc/library/codecs.rst:1210 msgid "Turkish" msgstr "Turc" -#: ../Doc/library/codecs.rst:1044 +#: ../Doc/library/codecs.rst:1052 msgid "cp858" -msgstr "cp858" +msgstr "*cp858*" -#: ../Doc/library/codecs.rst:1044 +#: ../Doc/library/codecs.rst:1052 msgid "858, IBM858" -msgstr "858, IBM858" +msgstr "*858*, *IBM858*" -#: ../Doc/library/codecs.rst:1046 +#: ../Doc/library/codecs.rst:1054 msgid "cp860" -msgstr "cp860" +msgstr "*cp860*" -#: ../Doc/library/codecs.rst:1046 +#: ../Doc/library/codecs.rst:1054 msgid "860, IBM860" -msgstr "860, IBM860" +msgstr "*860*, *IBM860*" -#: ../Doc/library/codecs.rst:1046 +#: ../Doc/library/codecs.rst:1054 msgid "Portuguese" msgstr "Portugais" -#: ../Doc/library/codecs.rst:1048 +#: ../Doc/library/codecs.rst:1056 msgid "cp861" -msgstr "cp861" +msgstr "*cp861*" -#: ../Doc/library/codecs.rst:1048 +#: ../Doc/library/codecs.rst:1056 msgid "861, CP-IS, IBM861" -msgstr "861, CP-IS, IBM861" +msgstr "*861*, *CP-IS*, *IBM861*" -#: ../Doc/library/codecs.rst:1048 ../Doc/library/codecs.rst:1196 +#: ../Doc/library/codecs.rst:1056 ../Doc/library/codecs.rst:1204 msgid "Icelandic" msgstr "Islandais" -#: ../Doc/library/codecs.rst:1050 +#: ../Doc/library/codecs.rst:1058 msgid "cp862" -msgstr "cp862" +msgstr "*cp862*" -#: ../Doc/library/codecs.rst:1050 +#: ../Doc/library/codecs.rst:1058 msgid "862, IBM862" -msgstr "862, IBM862" +msgstr "*862*, *IBM862*" -#: ../Doc/library/codecs.rst:1052 +#: ../Doc/library/codecs.rst:1060 msgid "cp863" -msgstr "cp863" +msgstr "*cp863*" -#: ../Doc/library/codecs.rst:1052 +#: ../Doc/library/codecs.rst:1060 msgid "863, IBM863" -msgstr "863, IBM863" +msgstr "*863*, *IBM863*" -#: ../Doc/library/codecs.rst:1052 +#: ../Doc/library/codecs.rst:1060 msgid "Canadian" msgstr "Canadien" -#: ../Doc/library/codecs.rst:1054 +#: ../Doc/library/codecs.rst:1062 msgid "cp864" -msgstr "cp864" +msgstr "*cp864*" -#: ../Doc/library/codecs.rst:1054 +#: ../Doc/library/codecs.rst:1062 msgid "IBM864" -msgstr "IBM864" +msgstr "*IBM864*" -#: ../Doc/library/codecs.rst:1056 +#: ../Doc/library/codecs.rst:1064 msgid "cp865" -msgstr "cp865" +msgstr "*cp865*" -#: ../Doc/library/codecs.rst:1056 +#: ../Doc/library/codecs.rst:1064 msgid "865, IBM865" -msgstr "865, IBM865" +msgstr "*865*, *IBM865*" -#: ../Doc/library/codecs.rst:1056 +#: ../Doc/library/codecs.rst:1064 msgid "Danish, Norwegian" msgstr "" -#: ../Doc/library/codecs.rst:1058 +#: ../Doc/library/codecs.rst:1066 msgid "cp866" -msgstr "cp866" +msgstr "*cp866*" -#: ../Doc/library/codecs.rst:1058 +#: ../Doc/library/codecs.rst:1066 msgid "866, IBM866" -msgstr "866, IBM866" +msgstr "*866*, *IBM866*" -#: ../Doc/library/codecs.rst:1058 ../Doc/library/codecs.rst:1179 +#: ../Doc/library/codecs.rst:1066 ../Doc/library/codecs.rst:1187 msgid "Russian" msgstr "Russe" -#: ../Doc/library/codecs.rst:1060 +#: ../Doc/library/codecs.rst:1068 msgid "cp869" -msgstr "cp869" +msgstr "*cp869*" -#: ../Doc/library/codecs.rst:1060 +#: ../Doc/library/codecs.rst:1068 msgid "869, CP-GR, IBM869" -msgstr "869, CP-GR, IBM869" +msgstr "*869*, *CP-GR*, *IBM869*" -#: ../Doc/library/codecs.rst:1062 +#: ../Doc/library/codecs.rst:1070 msgid "cp874" -msgstr "cp874" +msgstr "*cp874*" -#: ../Doc/library/codecs.rst:1062 +#: ../Doc/library/codecs.rst:1070 msgid "Thai" msgstr "" -#: ../Doc/library/codecs.rst:1064 +#: ../Doc/library/codecs.rst:1072 msgid "cp875" -msgstr "cp875" +msgstr "*cp875*" -#: ../Doc/library/codecs.rst:1066 +#: ../Doc/library/codecs.rst:1074 msgid "cp932" -msgstr "cp932" +msgstr "*cp932*" -#: ../Doc/library/codecs.rst:1066 +#: ../Doc/library/codecs.rst:1074 msgid "932, ms932, mskanji, ms-kanji" -msgstr "932, ms932, mskanji, ms-kanji" +msgstr "*932*, *ms932*, *mskanji*, *ms-kanji*" -#: ../Doc/library/codecs.rst:1066 ../Doc/library/codecs.rst:1106 -#: ../Doc/library/codecs.rst:1108 ../Doc/library/codecs.rst:1110 -#: ../Doc/library/codecs.rst:1127 ../Doc/library/codecs.rst:1130 +#: ../Doc/library/codecs.rst:1074 ../Doc/library/codecs.rst:1114 +#: ../Doc/library/codecs.rst:1116 ../Doc/library/codecs.rst:1118 #: ../Doc/library/codecs.rst:1135 ../Doc/library/codecs.rst:1138 -#: ../Doc/library/codecs.rst:1140 ../Doc/library/codecs.rst:1207 -#: ../Doc/library/codecs.rst:1210 ../Doc/library/codecs.rst:1213 +#: ../Doc/library/codecs.rst:1143 ../Doc/library/codecs.rst:1146 +#: ../Doc/library/codecs.rst:1148 ../Doc/library/codecs.rst:1215 +#: ../Doc/library/codecs.rst:1218 ../Doc/library/codecs.rst:1221 msgid "Japanese" msgstr "" -#: ../Doc/library/codecs.rst:1068 +#: ../Doc/library/codecs.rst:1076 msgid "cp949" -msgstr "cp949" +msgstr "*cp949*" -#: ../Doc/library/codecs.rst:1068 +#: ../Doc/library/codecs.rst:1076 msgid "949, ms949, uhc" -msgstr "949, ms949, uhc" +msgstr "*949*, *ms949*, *uhc*" -#: ../Doc/library/codecs.rst:1068 ../Doc/library/codecs.rst:1112 -#: ../Doc/library/codecs.rst:1142 ../Doc/library/codecs.rst:1177 +#: ../Doc/library/codecs.rst:1076 ../Doc/library/codecs.rst:1120 +#: ../Doc/library/codecs.rst:1150 ../Doc/library/codecs.rst:1185 msgid "Korean" msgstr "" -#: ../Doc/library/codecs.rst:1070 +#: ../Doc/library/codecs.rst:1078 msgid "cp950" -msgstr "cp950" +msgstr "*cp950*" -#: ../Doc/library/codecs.rst:1070 +#: ../Doc/library/codecs.rst:1078 msgid "950, ms950" -msgstr "950, ms950" +msgstr "*950*, *ms950*" -#: ../Doc/library/codecs.rst:1072 +#: ../Doc/library/codecs.rst:1080 msgid "cp1006" -msgstr "cp1006" +msgstr "*cp1006*" -#: ../Doc/library/codecs.rst:1072 +#: ../Doc/library/codecs.rst:1080 msgid "Urdu" msgstr "" -#: ../Doc/library/codecs.rst:1074 +#: ../Doc/library/codecs.rst:1082 msgid "cp1026" -msgstr "cp1026" +msgstr "*cp1026*" -#: ../Doc/library/codecs.rst:1074 +#: ../Doc/library/codecs.rst:1082 msgid "ibm1026" -msgstr "ibm1026" +msgstr "*ibm1026*" -#: ../Doc/library/codecs.rst:1076 +#: ../Doc/library/codecs.rst:1084 msgid "cp1125" -msgstr "cp1125" +msgstr "*cp1125*" -#: ../Doc/library/codecs.rst:1076 +#: ../Doc/library/codecs.rst:1084 msgid "1125, ibm1125, cp866u, ruscii" -msgstr "1125, ibm1125, cp866u, ruscii" +msgstr "*1125*, *ibm1125*, *cp866u*, *ruscii*" -#: ../Doc/library/codecs.rst:1076 ../Doc/library/codecs.rst:1185 +#: ../Doc/library/codecs.rst:1084 ../Doc/library/codecs.rst:1193 msgid "Ukrainian" msgstr "" -#: ../Doc/library/codecs.rst:1080 +#: ../Doc/library/codecs.rst:1088 msgid "cp1140" -msgstr "cp1140" +msgstr "*cp1140*" -#: ../Doc/library/codecs.rst:1080 +#: ../Doc/library/codecs.rst:1088 msgid "ibm1140" -msgstr "ibm1140" +msgstr "*ibm1140*" -#: ../Doc/library/codecs.rst:1082 +#: ../Doc/library/codecs.rst:1090 msgid "cp1250" -msgstr "cp1250" +msgstr "*cp1250*" -#: ../Doc/library/codecs.rst:1082 +#: ../Doc/library/codecs.rst:1090 msgid "windows-1250" -msgstr "windows-1250" +msgstr "*windows-1250*" -#: ../Doc/library/codecs.rst:1084 +#: ../Doc/library/codecs.rst:1092 msgid "cp1251" -msgstr "cp1251" +msgstr "*cp1251*" -#: ../Doc/library/codecs.rst:1084 +#: ../Doc/library/codecs.rst:1092 msgid "windows-1251" -msgstr "windows-1251" +msgstr "*windows-1251*" -#: ../Doc/library/codecs.rst:1087 +#: ../Doc/library/codecs.rst:1095 msgid "cp1252" -msgstr "cp1252" +msgstr "*cp1252*" -#: ../Doc/library/codecs.rst:1087 +#: ../Doc/library/codecs.rst:1095 msgid "windows-1252" -msgstr "windows-1252" +msgstr "*windows-1252*" -#: ../Doc/library/codecs.rst:1089 +#: ../Doc/library/codecs.rst:1097 msgid "cp1253" -msgstr "cp1253" +msgstr "*cp1253*" -#: ../Doc/library/codecs.rst:1089 +#: ../Doc/library/codecs.rst:1097 msgid "windows-1253" -msgstr "windows-1253" +msgstr "*windows-1253*" -#: ../Doc/library/codecs.rst:1091 +#: ../Doc/library/codecs.rst:1099 msgid "cp1254" -msgstr "cp1254" +msgstr "*cp1254*" -#: ../Doc/library/codecs.rst:1091 +#: ../Doc/library/codecs.rst:1099 msgid "windows-1254" -msgstr "windows-1254" +msgstr "*windows-1254*" -#: ../Doc/library/codecs.rst:1093 +#: ../Doc/library/codecs.rst:1101 msgid "cp1255" -msgstr "cp1255" +msgstr "*cp1255*" -#: ../Doc/library/codecs.rst:1093 +#: ../Doc/library/codecs.rst:1101 msgid "windows-1255" -msgstr "windows-1255" +msgstr "*windows-1255*" -#: ../Doc/library/codecs.rst:1095 +#: ../Doc/library/codecs.rst:1103 msgid "cp1256" -msgstr "cp1256" +msgstr "*cp1256*" -#: ../Doc/library/codecs.rst:1095 +#: ../Doc/library/codecs.rst:1103 msgid "windows-1256" -msgstr "windows-1256" +msgstr "*windows-1256*" -#: ../Doc/library/codecs.rst:1097 +#: ../Doc/library/codecs.rst:1105 msgid "cp1257" -msgstr "cp1257" +msgstr "*cp1257*" -#: ../Doc/library/codecs.rst:1097 +#: ../Doc/library/codecs.rst:1105 msgid "windows-1257" -msgstr "windows-1257" +msgstr "*windows-1257*" -#: ../Doc/library/codecs.rst:1099 +#: ../Doc/library/codecs.rst:1107 msgid "cp1258" -msgstr "cp1258" +msgstr "*cp1258*" -#: ../Doc/library/codecs.rst:1099 +#: ../Doc/library/codecs.rst:1107 msgid "windows-1258" -msgstr "windows-1258" +msgstr "*windows-1258*" -#: ../Doc/library/codecs.rst:1099 +#: ../Doc/library/codecs.rst:1107 msgid "Vietnamese" msgstr "" -#: ../Doc/library/codecs.rst:1101 +#: ../Doc/library/codecs.rst:1109 msgid "cp65001" -msgstr "cp65001" +msgstr "*cp65001*" -#: ../Doc/library/codecs.rst:1101 +#: ../Doc/library/codecs.rst:1109 msgid "Windows only: Windows UTF-8 (``CP_UTF8``)" -msgstr "Windows only: Windows UTF-8 (``CP_UTF8``)" +msgstr "Windows uniquement : Windows UTF-8 (``CP_UTF8``)" -#: ../Doc/library/codecs.rst:1106 +#: ../Doc/library/codecs.rst:1114 msgid "euc_jp" -msgstr "euc_jp" +msgstr "*euc_jp*" -#: ../Doc/library/codecs.rst:1106 +#: ../Doc/library/codecs.rst:1114 msgid "eucjp, ujis, u-jis" -msgstr "eucjp, ujis, u-jis" +msgstr "*eucjp*, *ujis*, *u-jis*" -#: ../Doc/library/codecs.rst:1108 +#: ../Doc/library/codecs.rst:1116 msgid "euc_jis_2004" -msgstr "euc_jis_2004" +msgstr "*euc_jis_2004*" -#: ../Doc/library/codecs.rst:1108 +#: ../Doc/library/codecs.rst:1116 msgid "jisx0213, eucjis2004" -msgstr "jisx0213, eucjis2004" +msgstr "*jisx0213*, *eucjis2004*" -#: ../Doc/library/codecs.rst:1110 +#: ../Doc/library/codecs.rst:1118 msgid "euc_jisx0213" -msgstr "euc_jisx0213" +msgstr "*euc_jisx0213*" -#: ../Doc/library/codecs.rst:1110 +#: ../Doc/library/codecs.rst:1118 msgid "eucjisx0213" -msgstr "eucjisx0213" +msgstr "*eucjisx0213*" -#: ../Doc/library/codecs.rst:1112 +#: ../Doc/library/codecs.rst:1120 msgid "euc_kr" -msgstr "euc_kr" +msgstr "*euc_kr*" -#: ../Doc/library/codecs.rst:1112 +#: ../Doc/library/codecs.rst:1120 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" +msgstr "" +"*euckr*, *korean*, *ksc5601*, *ks_c-5601*, *ks_c-5601-1987*, *ksx1001*, " +"*ks_x-1001*" -#: ../Doc/library/codecs.rst:1116 +#: ../Doc/library/codecs.rst:1124 msgid "gb2312" -msgstr "gb2312" +msgstr "*gb2312*" -#: ../Doc/library/codecs.rst:1116 +#: ../Doc/library/codecs.rst:1124 msgid "" -"chinese, csiso58gb231280, euc- cn, euccn, eucgb2312-cn, gb2312-1980, " -"gb2312-80, iso- ir-58" +"chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " +"gb2312-80, iso-ir-58" msgstr "" -"chinese, csiso58gb231280, euc- cn, euccn, eucgb2312-cn, gb2312-1980, " -"gb2312-80, iso- ir-58" +"*chinese*, *csiso58gb231280*, *euc-cn*, *euccn*, *eucgb2312-cn*, " +"*gb2312-1980*, *gb2312-80*, *iso-ir-58*" -#: ../Doc/library/codecs.rst:1116 ../Doc/library/codecs.rst:1125 +#: ../Doc/library/codecs.rst:1124 ../Doc/library/codecs.rst:1133 msgid "Simplified Chinese" msgstr "" -#: ../Doc/library/codecs.rst:1121 +#: ../Doc/library/codecs.rst:1129 msgid "gbk" -msgstr "gbk" +msgstr "*gbk*" -#: ../Doc/library/codecs.rst:1121 +#: ../Doc/library/codecs.rst:1129 msgid "936, cp936, ms936" -msgstr "936, cp936, ms936" +msgstr "*936*, *cp936*, *ms936*" -#: ../Doc/library/codecs.rst:1121 ../Doc/library/codecs.rst:1123 +#: ../Doc/library/codecs.rst:1129 ../Doc/library/codecs.rst:1131 msgid "Unified Chinese" msgstr "" -#: ../Doc/library/codecs.rst:1123 +#: ../Doc/library/codecs.rst:1131 msgid "gb18030" -msgstr "gb18030" +msgstr "*gb18030*" -#: ../Doc/library/codecs.rst:1123 +#: ../Doc/library/codecs.rst:1131 msgid "gb18030-2000" -msgstr "gb18030-2000" +msgstr "*gb18030-2000*" -#: ../Doc/library/codecs.rst:1125 +#: ../Doc/library/codecs.rst:1133 msgid "hz" -msgstr "hz" +msgstr "*hz*" -#: ../Doc/library/codecs.rst:1125 +#: ../Doc/library/codecs.rst:1133 msgid "hzgb, hz-gb, hz-gb-2312" -msgstr "hzgb, hz-gb, hz-gb-2312" +msgstr "*hzgb*, *hz-gb*, *hz-gb-2312*" -#: ../Doc/library/codecs.rst:1127 +#: ../Doc/library/codecs.rst:1135 msgid "iso2022_jp" -msgstr "iso2022_jp" +msgstr "*iso2022_jp*" -#: ../Doc/library/codecs.rst:1127 +#: ../Doc/library/codecs.rst:1135 msgid "csiso2022jp, iso2022jp, iso-2022-jp" -msgstr "csiso2022jp, iso2022jp, iso-2022-jp" +msgstr "*csiso2022jp*, *iso2022jp*, *iso-2022-jp*" -#: ../Doc/library/codecs.rst:1130 +#: ../Doc/library/codecs.rst:1138 msgid "iso2022_jp_1" -msgstr "iso2022_jp_1" +msgstr "*iso2022_jp_1*" -#: ../Doc/library/codecs.rst:1130 +#: ../Doc/library/codecs.rst:1138 msgid "iso2022jp-1, iso-2022-jp-1" -msgstr "iso2022jp-1, iso-2022-jp-1" +msgstr "*iso2022jp-1*, *iso-2022-jp-1*" -#: ../Doc/library/codecs.rst:1132 +#: ../Doc/library/codecs.rst:1140 msgid "iso2022_jp_2" -msgstr "iso2022_jp_2" +msgstr "*iso2022_jp_2*" -#: ../Doc/library/codecs.rst:1132 +#: ../Doc/library/codecs.rst:1140 msgid "iso2022jp-2, iso-2022-jp-2" -msgstr "iso2022jp-2, iso-2022-jp-2" +msgstr "*iso2022jp-2*, *iso-2022-jp-2*" -#: ../Doc/library/codecs.rst:1132 +#: ../Doc/library/codecs.rst:1140 msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" msgstr "" -#: ../Doc/library/codecs.rst:1135 +#: ../Doc/library/codecs.rst:1143 msgid "iso2022_jp_2004" -msgstr "iso2022_jp_2004" +msgstr "*iso2022_jp_2004*" -#: ../Doc/library/codecs.rst:1135 +#: ../Doc/library/codecs.rst:1143 msgid "iso2022jp-2004, iso-2022-jp-2004" -msgstr "iso2022jp-2004, iso-2022-jp-2004" +msgstr "*iso2022jp-2004*, *iso-2022-jp-2004*" -#: ../Doc/library/codecs.rst:1138 +#: ../Doc/library/codecs.rst:1146 msgid "iso2022_jp_3" -msgstr "iso2022_jp_3" +msgstr "*iso2022_jp_3*" -#: ../Doc/library/codecs.rst:1138 +#: ../Doc/library/codecs.rst:1146 msgid "iso2022jp-3, iso-2022-jp-3" -msgstr "iso2022jp-3, iso-2022-jp-3" +msgstr "*iso2022jp-3*, *iso-2022-jp-3*" -#: ../Doc/library/codecs.rst:1140 +#: ../Doc/library/codecs.rst:1148 msgid "iso2022_jp_ext" -msgstr "iso2022_jp_ext" +msgstr "*iso2022_jp_ext*" -#: ../Doc/library/codecs.rst:1140 +#: ../Doc/library/codecs.rst:1148 msgid "iso2022jp-ext, iso-2022-jp-ext" -msgstr "iso2022jp-ext, iso-2022-jp-ext" +msgstr "*iso2022jp-ext*, *iso-2022-jp-ext*" -#: ../Doc/library/codecs.rst:1142 +#: ../Doc/library/codecs.rst:1150 msgid "iso2022_kr" -msgstr "iso2022_kr" +msgstr "*iso2022_kr*" -#: ../Doc/library/codecs.rst:1142 +#: ../Doc/library/codecs.rst:1150 msgid "csiso2022kr, iso2022kr, iso-2022-kr" -msgstr "csiso2022kr, iso2022kr, iso-2022-kr" +msgstr "*csiso2022kr*, *iso2022kr*, *iso-2022-kr*" -#: ../Doc/library/codecs.rst:1145 +#: ../Doc/library/codecs.rst:1153 msgid "latin_1" -msgstr "latin_1" +msgstr "*latin_1*" -#: ../Doc/library/codecs.rst:1145 +#: ../Doc/library/codecs.rst:1153 msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" -msgstr "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:1145 +#: ../Doc/library/codecs.rst:1153 msgid "West Europe" msgstr "Europe de l'Ouest" -#: ../Doc/library/codecs.rst:1148 +#: ../Doc/library/codecs.rst:1156 msgid "iso8859_2" -msgstr "iso8859_2" +msgstr "*iso8859_2*" -#: ../Doc/library/codecs.rst:1148 +#: ../Doc/library/codecs.rst:1156 msgid "iso-8859-2, latin2, L2" -msgstr "iso-8859-2, latin2, L2" +msgstr "*iso-8859-2*, *latin2*, *L2*" -#: ../Doc/library/codecs.rst:1150 +#: ../Doc/library/codecs.rst:1158 msgid "iso8859_3" -msgstr "iso8859_3" +msgstr "*iso8859_3*" -#: ../Doc/library/codecs.rst:1150 +#: ../Doc/library/codecs.rst:1158 msgid "iso-8859-3, latin3, L3" -msgstr "iso-8859-3, latin3, L3" +msgstr "*iso-8859-3*, *latin3*, *L3*" -#: ../Doc/library/codecs.rst:1150 +#: ../Doc/library/codecs.rst:1158 msgid "Esperanto, Maltese" msgstr "" -#: ../Doc/library/codecs.rst:1152 +#: ../Doc/library/codecs.rst:1160 msgid "iso8859_4" -msgstr "iso8859_4" +msgstr "*iso8859_4*" -#: ../Doc/library/codecs.rst:1152 +#: ../Doc/library/codecs.rst:1160 msgid "iso-8859-4, latin4, L4" -msgstr "iso-8859-4, latin4, L4" +msgstr "*iso-8859-4*, *latin4*, *L4*" -#: ../Doc/library/codecs.rst:1154 +#: ../Doc/library/codecs.rst:1162 msgid "iso8859_5" -msgstr "iso8859_5" +msgstr "*iso8859_5*" -#: ../Doc/library/codecs.rst:1154 +#: ../Doc/library/codecs.rst:1162 msgid "iso-8859-5, cyrillic" -msgstr "iso-8859-5, cyrillic" +msgstr "*iso-8859-5*, *cyrillic*" -#: ../Doc/library/codecs.rst:1157 +#: ../Doc/library/codecs.rst:1165 msgid "iso8859_6" -msgstr "iso8859_6" +msgstr "*iso8859_6*" -#: ../Doc/library/codecs.rst:1157 +#: ../Doc/library/codecs.rst:1165 msgid "iso-8859-6, arabic" -msgstr "iso-8859-6, arabic" +msgstr "*iso-8859-6*, *arabic*" -#: ../Doc/library/codecs.rst:1159 +#: ../Doc/library/codecs.rst:1167 msgid "iso8859_7" -msgstr "iso8859_7" +msgstr "*iso8859_7*" -#: ../Doc/library/codecs.rst:1159 +#: ../Doc/library/codecs.rst:1167 msgid "iso-8859-7, greek, greek8" -msgstr "iso-8859-7, greek, greek8" +msgstr "*iso-8859-7*, *greek*, *greek8*" -#: ../Doc/library/codecs.rst:1161 +#: ../Doc/library/codecs.rst:1169 msgid "iso8859_8" -msgstr "iso8859_8" +msgstr "*iso8859_8*" -#: ../Doc/library/codecs.rst:1161 +#: ../Doc/library/codecs.rst:1169 msgid "iso-8859-8, hebrew" -msgstr "iso-8859-8, hebrew" +msgstr "*iso-8859-8*, *hebrew*" -#: ../Doc/library/codecs.rst:1163 +#: ../Doc/library/codecs.rst:1171 msgid "iso8859_9" -msgstr "iso8859_9" +msgstr "*iso8859_9*" -#: ../Doc/library/codecs.rst:1163 +#: ../Doc/library/codecs.rst:1171 msgid "iso-8859-9, latin5, L5" -msgstr "iso-8859-9, latin5, L5" +msgstr "*iso-8859-9*, *latin5*, *L5*" -#: ../Doc/library/codecs.rst:1165 +#: ../Doc/library/codecs.rst:1173 msgid "iso8859_10" -msgstr "iso8859_10" +msgstr "*iso8859_10*" -#: ../Doc/library/codecs.rst:1165 +#: ../Doc/library/codecs.rst:1173 msgid "iso-8859-10, latin6, L6" -msgstr "iso-8859-10, latin6, L6" +msgstr "*iso-8859-10*, *latin6*, *L6*" -#: ../Doc/library/codecs.rst:1165 +#: ../Doc/library/codecs.rst:1173 msgid "Nordic languages" msgstr "" -#: ../Doc/library/codecs.rst:1167 +#: ../Doc/library/codecs.rst:1175 msgid "iso8859_11" -msgstr "iso8859_11" +msgstr "*iso8859_11*" -#: ../Doc/library/codecs.rst:1167 +#: ../Doc/library/codecs.rst:1175 msgid "iso-8859-11, thai" -msgstr "iso-8859-11, thai" +msgstr "*iso-8859-11*, *thai*" -#: ../Doc/library/codecs.rst:1167 +#: ../Doc/library/codecs.rst:1175 msgid "Thai languages" msgstr "" -#: ../Doc/library/codecs.rst:1169 +#: ../Doc/library/codecs.rst:1177 msgid "iso8859_13" -msgstr "iso8859_13" +msgstr "*iso8859_13*" -#: ../Doc/library/codecs.rst:1169 +#: ../Doc/library/codecs.rst:1177 msgid "iso-8859-13, latin7, L7" -msgstr "iso-8859-13, latin7, L7" +msgstr "*iso-8859-13*, *latin7*, *L7*" -#: ../Doc/library/codecs.rst:1171 +#: ../Doc/library/codecs.rst:1179 msgid "iso8859_14" -msgstr "iso8859_14" +msgstr "*iso8859_14*" -#: ../Doc/library/codecs.rst:1171 +#: ../Doc/library/codecs.rst:1179 msgid "iso-8859-14, latin8, L8" -msgstr "iso-8859-14, latin8, L8" +msgstr "*iso-8859-14*, *latin8*, *L8*" -#: ../Doc/library/codecs.rst:1171 +#: ../Doc/library/codecs.rst:1179 msgid "Celtic languages" msgstr "" -#: ../Doc/library/codecs.rst:1173 +#: ../Doc/library/codecs.rst:1181 msgid "iso8859_15" -msgstr "iso8859_15" +msgstr "*iso8859_15*" -#: ../Doc/library/codecs.rst:1173 +#: ../Doc/library/codecs.rst:1181 msgid "iso-8859-15, latin9, L9" -msgstr "iso-8859-15, latin9, L9" +msgstr "*iso-8859-15*, *latin9*, *L9*" -#: ../Doc/library/codecs.rst:1175 +#: ../Doc/library/codecs.rst:1183 msgid "iso8859_16" -msgstr "iso8859_16" +msgstr "*iso8859_16*" -#: ../Doc/library/codecs.rst:1175 +#: ../Doc/library/codecs.rst:1183 msgid "iso-8859-16, latin10, L10" -msgstr "iso-8859-16, latin10, L10" +msgstr "*iso-8859-16*, *latin10*, *L10*" -#: ../Doc/library/codecs.rst:1175 +#: ../Doc/library/codecs.rst:1183 msgid "South-Eastern Europe" msgstr "" -#: ../Doc/library/codecs.rst:1177 +#: ../Doc/library/codecs.rst:1185 msgid "johab" -msgstr "johab" +msgstr "*johab*" -#: ../Doc/library/codecs.rst:1177 +#: ../Doc/library/codecs.rst:1185 msgid "cp1361, ms1361" -msgstr "cp1361, ms1361" +msgstr "*cp1361*, *ms1361*" -#: ../Doc/library/codecs.rst:1179 +#: ../Doc/library/codecs.rst:1187 msgid "koi8_r" -msgstr "koi8_r" +msgstr "*koi8_r*" -#: ../Doc/library/codecs.rst:1181 +#: ../Doc/library/codecs.rst:1189 msgid "koi8_t" -msgstr "koi8_t" +msgstr "*koi8_t*" -#: ../Doc/library/codecs.rst:1181 +#: ../Doc/library/codecs.rst:1189 msgid "Tajik" -msgstr "" +msgstr "*Tajik*" -#: ../Doc/library/codecs.rst:1185 +#: ../Doc/library/codecs.rst:1193 msgid "koi8_u" -msgstr "koi8_u" +msgstr "*koi8_u*" -#: ../Doc/library/codecs.rst:1187 +#: ../Doc/library/codecs.rst:1195 msgid "kz1048" -msgstr "kz1048" +msgstr "*kz1048*" -#: ../Doc/library/codecs.rst:1187 +#: ../Doc/library/codecs.rst:1195 msgid "kz_1048, strk1048_2002, rk1048" -msgstr "kz_1048, strk1048_2002, rk1048" +msgstr "*kz_1048*, *strk1048_2002*, *rk1048*" -#: ../Doc/library/codecs.rst:1187 ../Doc/library/codecs.rst:1204 +#: ../Doc/library/codecs.rst:1195 ../Doc/library/codecs.rst:1212 msgid "Kazakh" msgstr "" -#: ../Doc/library/codecs.rst:1191 +#: ../Doc/library/codecs.rst:1199 msgid "mac_cyrillic" -msgstr "mac_cyrillic" +msgstr "*mac_cyrillic*" -#: ../Doc/library/codecs.rst:1191 +#: ../Doc/library/codecs.rst:1199 msgid "maccyrillic" -msgstr "maccyrillic" +msgstr "*maccyrillic*" -#: ../Doc/library/codecs.rst:1194 +#: ../Doc/library/codecs.rst:1202 msgid "mac_greek" -msgstr "mac_greek" +msgstr "*mac_greek*" -#: ../Doc/library/codecs.rst:1194 +#: ../Doc/library/codecs.rst:1202 msgid "macgreek" -msgstr "macgreek" +msgstr "*macgreek*" -#: ../Doc/library/codecs.rst:1196 +#: ../Doc/library/codecs.rst:1204 msgid "mac_iceland" -msgstr "mac_iceland" +msgstr "*mac_iceland*" -#: ../Doc/library/codecs.rst:1196 +#: ../Doc/library/codecs.rst:1204 msgid "maciceland" -msgstr "maciceland" +msgstr "*maciceland*" -#: ../Doc/library/codecs.rst:1198 +#: ../Doc/library/codecs.rst:1206 msgid "mac_latin2" -msgstr "mac_latin2" +msgstr "*mac_latin2*" -#: ../Doc/library/codecs.rst:1198 +#: ../Doc/library/codecs.rst:1206 msgid "maclatin2, maccentraleurope" -msgstr "maclatin2, maccentraleurope" +msgstr "*maclatin2*, *maccentraleurope*" -#: ../Doc/library/codecs.rst:1200 +#: ../Doc/library/codecs.rst:1208 msgid "mac_roman" -msgstr "mac_roman" +msgstr "*mac_roman*" -#: ../Doc/library/codecs.rst:1200 +#: ../Doc/library/codecs.rst:1208 msgid "macroman, macintosh" -msgstr "macroman, macintosh" +msgstr "*macroman*, *macintosh*" -#: ../Doc/library/codecs.rst:1202 +#: ../Doc/library/codecs.rst:1210 msgid "mac_turkish" -msgstr "mac_turkish" +msgstr "*mac_turkish*" -#: ../Doc/library/codecs.rst:1202 +#: ../Doc/library/codecs.rst:1210 msgid "macturkish" -msgstr "macturkish" +msgstr "*macturkish*" -#: ../Doc/library/codecs.rst:1204 +#: ../Doc/library/codecs.rst:1212 msgid "ptcp154" -msgstr "ptcp154" +msgstr "*ptcp154*" -#: ../Doc/library/codecs.rst:1204 +#: ../Doc/library/codecs.rst:1212 msgid "csptcp154, pt154, cp154, cyrillic-asian" -msgstr "csptcp154, pt154, cp154, cyrillic-asian" +msgstr "*csptcp154*, *pt154*, *cp154*, *cyrillic-asian*" -#: ../Doc/library/codecs.rst:1207 +#: ../Doc/library/codecs.rst:1215 msgid "shift_jis" -msgstr "shift_jis" +msgstr "*shift_jis*" -#: ../Doc/library/codecs.rst:1207 +#: ../Doc/library/codecs.rst:1215 msgid "csshiftjis, shiftjis, sjis, s_jis" -msgstr "csshiftjis, shiftjis, sjis, s_jis" +msgstr "*csshiftjis*, *shiftjis*, *sjis*, *s_jis*" -#: ../Doc/library/codecs.rst:1210 +#: ../Doc/library/codecs.rst:1218 msgid "shift_jis_2004" -msgstr "shift_jis_2004" +msgstr "*shift_jis_2004*" -#: ../Doc/library/codecs.rst:1210 +#: ../Doc/library/codecs.rst:1218 msgid "shiftjis2004, sjis_2004, sjis2004" -msgstr "shiftjis2004, sjis_2004, sjis2004" +msgstr "*shiftjis2004*, *sjis_2004*, *sjis2004*" -#: ../Doc/library/codecs.rst:1213 +#: ../Doc/library/codecs.rst:1221 msgid "shift_jisx0213" -msgstr "shift_jisx0213" +msgstr "*shift_jisx0213*" -#: ../Doc/library/codecs.rst:1213 +#: ../Doc/library/codecs.rst:1221 msgid "shiftjisx0213, sjisx0213, s_jisx0213" -msgstr "shiftjisx0213, sjisx0213, s_jisx0213" +msgstr "*shiftjisx0213*, *sjisx0213*, *s_jisx0213*" -#: ../Doc/library/codecs.rst:1216 +#: ../Doc/library/codecs.rst:1224 msgid "utf_32" -msgstr "utf_32" +msgstr "*utf_32*" -#: ../Doc/library/codecs.rst:1216 +#: ../Doc/library/codecs.rst:1224 msgid "U32, utf32" -msgstr "U32, utf32" +msgstr "*U32*, *utf32*" -#: ../Doc/library/codecs.rst:1216 ../Doc/library/codecs.rst:1218 -#: ../Doc/library/codecs.rst:1220 ../Doc/library/codecs.rst:1222 #: ../Doc/library/codecs.rst:1224 ../Doc/library/codecs.rst:1226 #: ../Doc/library/codecs.rst:1228 ../Doc/library/codecs.rst:1230 -#: ../Doc/library/codecs.rst:1232 +#: ../Doc/library/codecs.rst:1232 ../Doc/library/codecs.rst:1234 +#: ../Doc/library/codecs.rst:1236 ../Doc/library/codecs.rst:1238 +#: ../Doc/library/codecs.rst:1240 msgid "all languages" msgstr "" -#: ../Doc/library/codecs.rst:1218 +#: ../Doc/library/codecs.rst:1226 msgid "utf_32_be" -msgstr "utf_32_be" +msgstr "*utf_32_be*" -#: ../Doc/library/codecs.rst:1218 +#: ../Doc/library/codecs.rst:1226 msgid "UTF-32BE" -msgstr "UTF-32BE" +msgstr "*UTF-32BE*" -#: ../Doc/library/codecs.rst:1220 +#: ../Doc/library/codecs.rst:1228 msgid "utf_32_le" -msgstr "utf_32_le" +msgstr "*utf_32_le*" -#: ../Doc/library/codecs.rst:1220 +#: ../Doc/library/codecs.rst:1228 msgid "UTF-32LE" -msgstr "UTF-32LE" +msgstr "*UTF-32LE*" -#: ../Doc/library/codecs.rst:1222 +#: ../Doc/library/codecs.rst:1230 msgid "utf_16" -msgstr "utf_16" +msgstr "*utf_16*" -#: ../Doc/library/codecs.rst:1222 +#: ../Doc/library/codecs.rst:1230 msgid "U16, utf16" -msgstr "U16, utf16" +msgstr "*U16*, *utf16*" -#: ../Doc/library/codecs.rst:1224 +#: ../Doc/library/codecs.rst:1232 msgid "utf_16_be" -msgstr "utf_16_be" +msgstr "*utf_16_be*" -#: ../Doc/library/codecs.rst:1224 +#: ../Doc/library/codecs.rst:1232 msgid "UTF-16BE" -msgstr "UTF-16BE" +msgstr "*UTF-16BE*" -#: ../Doc/library/codecs.rst:1226 +#: ../Doc/library/codecs.rst:1234 msgid "utf_16_le" -msgstr "utf_16_le" +msgstr "*utf_16_le*" -#: ../Doc/library/codecs.rst:1226 +#: ../Doc/library/codecs.rst:1234 msgid "UTF-16LE" -msgstr "UTF-16LE" +msgstr "*UTF-16LE*" -#: ../Doc/library/codecs.rst:1228 +#: ../Doc/library/codecs.rst:1236 msgid "utf_7" -msgstr "utf_7" +msgstr "*utf_7*" -#: ../Doc/library/codecs.rst:1228 +#: ../Doc/library/codecs.rst:1236 msgid "U7, unicode-1-1-utf-7" -msgstr "U7, unicode-1-1-utf-7" +msgstr "*U7*, *unicode-1-1-utf-7*" -#: ../Doc/library/codecs.rst:1230 +#: ../Doc/library/codecs.rst:1238 msgid "utf_8" -msgstr "utf_8" +msgstr "*utf_8*" -#: ../Doc/library/codecs.rst:1230 +#: ../Doc/library/codecs.rst:1238 msgid "U8, UTF, utf8" -msgstr "U8, UTF, utf8" +msgstr "*U8*, *UTF*, *utf8*" -#: ../Doc/library/codecs.rst:1232 +#: ../Doc/library/codecs.rst:1240 msgid "utf_8_sig" -msgstr "utf_8_sig" +msgstr "*utf_8_sig*" -#: ../Doc/library/codecs.rst:1235 +#: ../Doc/library/codecs.rst:1243 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:1243 +#: ../Doc/library/codecs.rst:1251 msgid "Python Specific Encodings" msgstr "" -#: ../Doc/library/codecs.rst:1245 +#: ../Doc/library/codecs.rst:1253 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 " @@ -2265,284 +2428,284 @@ msgid "" "asymmetric codecs, the stated purpose describes the encoding direction." msgstr "" -#: ../Doc/library/codecs.rst:1253 +#: ../Doc/library/codecs.rst:1261 msgid "Text Encodings" msgstr "" -#: ../Doc/library/codecs.rst:1255 +#: ../Doc/library/codecs.rst:1263 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:1262 ../Doc/library/codecs.rst:1335 -#: ../Doc/library/codecs.rst:1390 +#: ../Doc/library/codecs.rst:1270 ../Doc/library/codecs.rst:1343 +#: ../Doc/library/codecs.rst:1398 msgid "Purpose" msgstr "Objectif" -#: ../Doc/library/codecs.rst:1264 +#: ../Doc/library/codecs.rst:1272 msgid "idna" msgstr "idna" -#: ../Doc/library/codecs.rst:1264 +#: ../Doc/library/codecs.rst:1272 msgid "" "Implements :rfc:`3490`, see also :mod:`encodings.idna`. Only " "``errors='strict'`` is supported." msgstr "" -#: ../Doc/library/codecs.rst:1270 +#: ../Doc/library/codecs.rst:1278 msgid "mbcs" msgstr "mbcs" -#: ../Doc/library/codecs.rst:1270 +#: ../Doc/library/codecs.rst:1278 msgid "ansi, dbcs" msgstr "" -#: ../Doc/library/codecs.rst:1270 +#: ../Doc/library/codecs.rst:1278 msgid "Windows only: Encode operand according to the ANSI codepage (CP_ACP)" msgstr "" -#: ../Doc/library/codecs.rst:1274 +#: ../Doc/library/codecs.rst:1282 msgid "oem" msgstr "" -#: ../Doc/library/codecs.rst:1274 +#: ../Doc/library/codecs.rst:1282 msgid "Windows only: Encode operand according to the OEM codepage (CP_OEMCP)" msgstr "" -#: ../Doc/library/codecs.rst:1280 +#: ../Doc/library/codecs.rst:1288 msgid "palmos" msgstr "palmos" -#: ../Doc/library/codecs.rst:1280 +#: ../Doc/library/codecs.rst:1288 msgid "Encoding of PalmOS 3.5" msgstr "" -#: ../Doc/library/codecs.rst:1282 +#: ../Doc/library/codecs.rst:1290 msgid "punycode" msgstr "punycode" -#: ../Doc/library/codecs.rst:1282 +#: ../Doc/library/codecs.rst:1290 msgid "Implements :rfc:`3492`. Stateful codecs are not supported." msgstr "" -#: ../Doc/library/codecs.rst:1286 +#: ../Doc/library/codecs.rst:1294 msgid "raw_unicode_escape" msgstr "raw_unicode_escape" -#: ../Doc/library/codecs.rst:1286 +#: ../Doc/library/codecs.rst:1294 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:1295 +#: ../Doc/library/codecs.rst:1303 msgid "undefined" msgstr "undefined" -#: ../Doc/library/codecs.rst:1295 +#: ../Doc/library/codecs.rst:1303 msgid "" "Raise an exception for all conversions, even empty strings. The error " "handler is ignored." msgstr "" -#: ../Doc/library/codecs.rst:1300 +#: ../Doc/library/codecs.rst:1308 msgid "unicode_escape" msgstr "unicode_escape" -#: ../Doc/library/codecs.rst:1300 +#: ../Doc/library/codecs.rst:1308 msgid "" "Encoding suitable as the contents of a Unicode literal in ASCII-encoded " "Python source code, except that quotes are not escaped. Decodes from Latin-1 " "source code. Beware that Python source code actually uses UTF-8 by default." msgstr "" -#: ../Doc/library/codecs.rst:1311 +#: ../Doc/library/codecs.rst:1319 msgid "unicode_internal" msgstr "unicode_internal" -#: ../Doc/library/codecs.rst:1311 +#: ../Doc/library/codecs.rst:1319 msgid "" "Return the internal representation of the operand. Stateful codecs are not " "supported." msgstr "" -#: ../Doc/library/codecs.rst:1316 +#: ../Doc/library/codecs.rst:1324 msgid "This representation is obsoleted by :pep:`393`." msgstr "" -#: ../Doc/library/codecs.rst:1325 +#: ../Doc/library/codecs.rst:1333 msgid "Binary Transforms" msgstr "" -#: ../Doc/library/codecs.rst:1327 +#: ../Doc/library/codecs.rst:1335 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 +#: ../Doc/library/codecs.rst:1343 msgid "Encoder / decoder" msgstr "" -#: ../Doc/library/codecs.rst:1337 +#: ../Doc/library/codecs.rst:1345 msgid "base64_codec [#b64]_" msgstr "base64_codec [#b64]_" -#: ../Doc/library/codecs.rst:1337 +#: ../Doc/library/codecs.rst:1345 msgid "base64, base_64" msgstr "base64, base_64" -#: ../Doc/library/codecs.rst:1337 +#: ../Doc/library/codecs.rst:1345 msgid "" "Convert operand to multiline MIME base64 (the result always includes a " "trailing ``'\\n'``)" msgstr "" -#: ../Doc/library/codecs.rst:1342 +#: ../Doc/library/codecs.rst:1350 msgid "" "accepts any :term:`bytes-like object` as input for encoding and decoding" msgstr "" -#: ../Doc/library/codecs.rst:1337 +#: ../Doc/library/codecs.rst:1345 msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" msgstr "" -#: ../Doc/library/codecs.rst:1348 +#: ../Doc/library/codecs.rst:1356 msgid "bz2_codec" msgstr "bz2_codec" -#: ../Doc/library/codecs.rst:1348 +#: ../Doc/library/codecs.rst:1356 msgid "bz2" msgstr "bz2" -#: ../Doc/library/codecs.rst:1348 +#: ../Doc/library/codecs.rst:1356 msgid "Compress the operand using bz2" msgstr "" -#: ../Doc/library/codecs.rst:1348 +#: ../Doc/library/codecs.rst:1356 msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" msgstr "" -#: ../Doc/library/codecs.rst:1351 +#: ../Doc/library/codecs.rst:1359 msgid "hex_codec" msgstr "hex_codec" -#: ../Doc/library/codecs.rst:1351 +#: ../Doc/library/codecs.rst:1359 msgid "hex" msgstr "hex" -#: ../Doc/library/codecs.rst:1351 +#: ../Doc/library/codecs.rst:1359 msgid "Convert operand to hexadecimal representation, with two digits per byte" msgstr "" -#: ../Doc/library/codecs.rst:1351 +#: ../Doc/library/codecs.rst:1359 msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: ../Doc/library/codecs.rst:1364 msgid "quopri_codec" msgstr "quopri_codec" -#: ../Doc/library/codecs.rst:1356 +#: ../Doc/library/codecs.rst:1364 msgid "quopri, quotedprintable, quoted_printable" msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: ../Doc/library/codecs.rst:1364 msgid "Convert operand to MIME quoted printable" msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: ../Doc/library/codecs.rst:1364 msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" msgstr "" -#: ../Doc/library/codecs.rst:1360 +#: ../Doc/library/codecs.rst:1368 msgid "uu_codec" msgstr "uu_codec" -#: ../Doc/library/codecs.rst:1360 +#: ../Doc/library/codecs.rst:1368 msgid "uu" msgstr "uu" -#: ../Doc/library/codecs.rst:1360 +#: ../Doc/library/codecs.rst:1368 msgid "Convert the operand using uuencode" msgstr "" -#: ../Doc/library/codecs.rst:1360 +#: ../Doc/library/codecs.rst:1368 msgid ":meth:`uu.encode` / :meth:`uu.decode`" msgstr "" -#: ../Doc/library/codecs.rst:1363 +#: ../Doc/library/codecs.rst:1371 msgid "zlib_codec" msgstr "zlib_codec" -#: ../Doc/library/codecs.rst:1363 +#: ../Doc/library/codecs.rst:1371 msgid "zip, zlib" msgstr "zip, zlib" -#: ../Doc/library/codecs.rst:1363 +#: ../Doc/library/codecs.rst:1371 msgid "Compress the operand using gzip" msgstr "" -#: ../Doc/library/codecs.rst:1363 +#: ../Doc/library/codecs.rst:1371 msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" msgstr ":meth:`zlib.compress` / :meth:`zlib.decompress`" -#: ../Doc/library/codecs.rst:1367 +#: ../Doc/library/codecs.rst:1375 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 +#: ../Doc/library/codecs.rst:1379 msgid "Restoration of the binary transforms." msgstr "" -#: ../Doc/library/codecs.rst:1374 +#: ../Doc/library/codecs.rst:1382 msgid "Restoration of the aliases for the binary transforms." msgstr "" -#: ../Doc/library/codecs.rst:1381 +#: ../Doc/library/codecs.rst:1389 msgid "Text Transforms" msgstr "" -#: ../Doc/library/codecs.rst:1383 +#: ../Doc/library/codecs.rst:1391 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 +#: ../Doc/library/codecs.rst:1400 msgid "rot_13" msgstr "rot_13" -#: ../Doc/library/codecs.rst:1392 +#: ../Doc/library/codecs.rst:1400 msgid "rot13" msgstr "rot13" -#: ../Doc/library/codecs.rst:1392 +#: ../Doc/library/codecs.rst:1400 msgid "Returns the Caesar-cypher encryption of the operand" msgstr "" -#: ../Doc/library/codecs.rst:1396 +#: ../Doc/library/codecs.rst:1404 msgid "Restoration of the ``rot_13`` text transform." msgstr "" -#: ../Doc/library/codecs.rst:1399 +#: ../Doc/library/codecs.rst:1407 msgid "Restoration of the ``rot13`` alias." msgstr "" -#: ../Doc/library/codecs.rst:1404 +#: ../Doc/library/codecs.rst:1412 msgid "" ":mod:`encodings.idna` --- Internationalized Domain Names in Applications" msgstr "" -#: ../Doc/library/codecs.rst:1410 +#: ../Doc/library/codecs.rst:1418 msgid "" "This module implements :rfc:`3490` (Internationalized Domain Names in " "Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " @@ -2550,7 +2713,7 @@ msgid "" "encoding and :mod:`stringprep`." msgstr "" -#: ../Doc/library/codecs.rst:1415 +#: ../Doc/library/codecs.rst:1423 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." @@ -2564,7 +2727,7 @@ msgid "" "presenting them to the user." msgstr "" -#: ../Doc/library/codecs.rst:1426 +#: ../Doc/library/codecs.rst:1434 msgid "" "Python supports this conversion in several ways: the ``idna`` codec " "performs conversion between Unicode and ACE, separating an input string into " @@ -2581,14 +2744,14 @@ msgid "" "sends that field at all)." msgstr "" -#: ../Doc/library/codecs.rst:1439 +#: ../Doc/library/codecs.rst:1447 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:1443 +#: ../Doc/library/codecs.rst:1451 msgid "" "The module :mod:`encodings.idna` also implements the nameprep procedure, " "which performs certain normalizations on host names, to achieve case-" @@ -2596,49 +2759,49 @@ msgid "" "characters. The nameprep functions can be used directly if desired." msgstr "" -#: ../Doc/library/codecs.rst:1451 +#: ../Doc/library/codecs.rst:1459 msgid "" "Return the nameprepped version of *label*. The implementation currently " "assumes query strings, so ``AllowUnassigned`` is true." msgstr "" -#: ../Doc/library/codecs.rst:1457 +#: ../Doc/library/codecs.rst:1465 msgid "" "Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " "is assumed to be false." msgstr "" -#: ../Doc/library/codecs.rst:1463 +#: ../Doc/library/codecs.rst:1471 msgid "Convert a label to Unicode, as specified in :rfc:`3490`." msgstr "" -#: ../Doc/library/codecs.rst:1467 +#: ../Doc/library/codecs.rst:1475 msgid ":mod:`encodings.mbcs` --- Windows ANSI codepage" msgstr "" -#: ../Doc/library/codecs.rst:1472 +#: ../Doc/library/codecs.rst:1480 msgid "Encode operand according to the ANSI codepage (CP_ACP)." msgstr "" -#: ../Doc/library/codecs.rst:1474 -msgid "Availability: Windows only." -msgstr "" +#: ../Doc/library/codecs.rst:1483 +msgid ":ref:`Availability `: Windows only." +msgstr ":ref:`Disponibilité ` : Windows uniquement." -#: ../Doc/library/codecs.rst:1476 +#: ../Doc/library/codecs.rst:1484 msgid "Support any error handler." msgstr "" -#: ../Doc/library/codecs.rst:1479 +#: ../Doc/library/codecs.rst:1487 msgid "" "Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " "to encode, and ``'ignore'`` to decode." msgstr "" -#: ../Doc/library/codecs.rst:1485 +#: ../Doc/library/codecs.rst:1493 msgid ":mod:`encodings.utf_8_sig` --- UTF-8 codec with BOM signature" msgstr "" -#: ../Doc/library/codecs.rst:1491 +#: ../Doc/library/codecs.rst:1499 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 3724cbfff..d2f4cca13 100644 --- a/library/codeop.po +++ b/library/codeop.po @@ -16,11 +16,11 @@ msgstr "" #: ../Doc/library/codeop.rst:2 msgid ":mod:`codeop` --- Compile Python code" -msgstr "" +msgstr ":mod:`codeop` — Compilation de code Python" #: ../Doc/library/codeop.rst:10 msgid "**Source code:** :source:`Lib/codeop.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/codeop.py`" #: ../Doc/library/codeop.rst:14 msgid "" @@ -30,32 +30,44 @@ msgid "" "include such a loop in your program you probably want to use the :mod:`code` " "module instead." msgstr "" +"Le module :mod:`codeop` fournit des outils permettant d'émuler une boucle de " +"lecture-évaluation-affichage (en anglais *read-eval-print-loop* ou REPL), " +"comme dans le module :mod:`code`. Par conséquent, ce module n'est pas " +"destiné à être utilisé directement ; pour inclure un REPL dans un programme, " +"il est préférable d'utiliser le module :mod:`code`." #: ../Doc/library/codeop.rst:20 msgid "There are two parts to this job:" -msgstr "" +msgstr "Cette tâche se divise en deux parties :" #: ../Doc/library/codeop.rst:22 msgid "" "Being able to tell if a line of input completes a Python statement: in " "short, telling whether to print '``>>>``' or '``...``' next." msgstr "" +"Pouvoir affirmer qu'une ligne d'entrée est une instruction complète, ou " +"achève une instruction : en bref, savoir s'il faut afficher « ``>>>`` » ou " +"« ``...`` » à sa suite." #: ../Doc/library/codeop.rst:25 msgid "" "Remembering which future statements the user has entered, so subsequent " "input can be compiled with these in effect." msgstr "" +"Conserver les instructions déjà entrées par l'utilisateur, afin que les " +"entrées suivantes puissent êtres compilées avec elles." #: ../Doc/library/codeop.rst:28 msgid "" "The :mod:`codeop` module provides a way of doing each of these things, and a " "way of doing them both." msgstr "" +"Le module :mod:`codeop` fournit un moyen d'effectuer ces deux parties, " +"individuellement ou simultanément." #: ../Doc/library/codeop.rst:31 msgid "To do just the former:" -msgstr "" +msgstr "Pour ne faire que la première partie :" #: ../Doc/library/codeop.rst:35 msgid "" @@ -65,6 +77,11 @@ msgid "" "``''``. Returns ``None`` if *source* is *not* valid Python code, but " "is a prefix of valid Python code." msgstr "" +"Essaye de compiler *source*, qui doit être une chaîne de caractères " +"représentant du code Python valide et renvoie un objet code le cas échéant. " +"Dans ce cas, l'attribut de nom de fichier de l'objet code renvoyé sera " +"*filename* (``''`` par défaut). Renvoie ``None`` si *source* n'est " +"*pas* du code Python valide, mais un *début* de code Python valide." #: ../Doc/library/codeop.rst:41 msgid "" @@ -72,6 +89,9 @@ msgid "" "`SyntaxError` is raised if there is invalid Python syntax, and :exc:" "`OverflowError` or :exc:`ValueError` if there is an invalid literal." msgstr "" +"En cas de problème avec *source*, une exception est levée ; :exc:" +"`SyntaxError` si la syntaxe Python est incorrecte, et :exc:`OverflowError` " +"ou :exc:`ValueError` si un littéral invalide est rencontré." #: ../Doc/library/codeop.rst:45 msgid "" @@ -79,6 +99,9 @@ msgid "" "(``'single'``, the default) 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`." #: ../Doc/library/codeop.rst:51 msgid "" @@ -88,6 +111,12 @@ msgid "" "backslash followed by two newlines may be followed by arbitrary garbage. " "This will be fixed once the API for the parser is better." msgstr "" +"Il est possible (quoique improbable) que l'analyseur s'arrête avant " +"d'atteindre la fin du code source ; dans ce cas, les symboles venant après " +"peuvent être ignorés au lieu de provoquer une erreur. Par exemple, une barre " +"oblique inverse suivie de deux retours à la ligne peut être suivie par de la " +"mémoire non-initialisée. Ceci sera corrigé quand l'interface de l'analyseur " +"aura été améliorée." #: ../Doc/library/codeop.rst:60 msgid "" @@ -97,6 +126,11 @@ msgid "" "the instance 'remembers' and compiles all subsequent program texts with the " "statement in force." msgstr "" +"Les instances de cette classe ont des méthodes :meth:`__call__` de signature " +"identique à la fonction native :func:`compile`, à la différence près que si " +"l'instance compile du code source contenant une instruction :mod:" +"`__future__`, l'instance s'en « souviendra » et compilera tous les codes " +"sources suivants avec cette instruction activée." #: ../Doc/library/codeop.rst:69 msgid "" @@ -105,3 +139,8 @@ msgid "" "program text containing a ``__future__`` statement, the instance 'remembers' " "and compiles all subsequent program texts with the statement in force." msgstr "" +"Les instances de cette classe ont des méthodes :meth:`__call__` de signature " +"identique à la fonction :func:`compile_command`, à la différence près que si " +"l'instance compile du code source contenant une instruction ``__future__``, " +"l'instance s'en « souviendra » et compilera tous les codes sources suivants " +"avec cette instruction activée." diff --git a/library/collections.abc.po b/library/collections.abc.po index af995c284..3ce72723f 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -526,7 +526,7 @@ msgid "" "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 msgid "" @@ -543,7 +543,7 @@ 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 msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" diff --git a/library/collections.po b/library/collections.po index 0557ba213..7008e910b 100644 --- a/library/collections.po +++ b/library/collections.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-04-11 19:52+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" #: ../Doc/library/collections.rst:2 msgid ":mod:`collections` --- Container datatypes" -msgstr "" +msgstr ":mod:`collections` — Types de données de conteneurs" #: ../Doc/library/collections.rst:10 msgid "**Source code:** :source:`Lib/collections/__init__.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/collections/__init__.py`" #: ../Doc/library/collections.rst:20 msgid "" @@ -28,6 +29,9 @@ msgid "" "alternatives to Python's general purpose built-in containers, :class:" "`dict`, :class:`list`, :class:`set`, and :class:`tuple`." msgstr "" +"Ce module implémente des types de données de conteneurs spécialisés qui " +"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 msgid ":func:`namedtuple`" @@ -36,6 +40,8 @@ msgstr ":func:`namedtuple`" #: ../Doc/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 msgid ":class:`deque`" @@ -44,6 +50,8 @@ msgstr ":class:`deque`" #: ../Doc/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 msgid ":class:`ChainMap`" @@ -52,6 +60,8 @@ msgstr ":class:`ChainMap`" #: ../Doc/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 msgid ":class:`Counter`" @@ -59,7 +69,7 @@ msgstr ":class:`Counter`" #: ../Doc/library/collections.rst:28 msgid "dict subclass for counting hashable objects" -msgstr "" +msgstr "sous-classe de ``dict`` pour compter des objets hachables" #: ../Doc/library/collections.rst:29 msgid ":class:`OrderedDict`" @@ -68,6 +78,8 @@ msgstr ":class:`OrderedDict`" #: ../Doc/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 msgid ":class:`defaultdict`" @@ -76,6 +88,8 @@ msgstr ":class:`defaultdict`" #: ../Doc/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 msgid ":class:`UserDict`" @@ -84,6 +98,8 @@ msgstr ":class:`UserDict`" #: ../Doc/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 msgid ":class:`UserList`" @@ -92,6 +108,7 @@ msgstr ":class:`UserList`" #: ../Doc/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 msgid ":class:`UserString`" @@ -100,6 +117,8 @@ msgstr ":class:`UserString`" #: ../Doc/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:36 msgid "" @@ -107,10 +126,14 @@ msgid "" "module. For backwards compatibility, they continue to be visible in this " "module through Python 3.7. Subsequently, they will be removed entirely." 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." #: ../Doc/library/collections.rst:43 msgid ":class:`ChainMap` objects" -msgstr ":class:`ChainMap` objects" +msgstr "Objets :class:`ChainMap`" #: ../Doc/library/collections.rst:47 msgid "" @@ -119,11 +142,17 @@ msgid "" "than creating a new dictionary and running multiple :meth:`~dict.update` " "calls." msgstr "" +"Le module fournit une classe :class:`ChainMap` afin de réunir rapidement " +"plusieurs dictionnaires en une unique entité. Cela est souvent plus rapide " +"que de créer un nouveau dictionnaire et d'effectuer plusieurs appels de :" +"meth:`~dict.update`." #: ../Doc/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 msgid "" @@ -132,12 +161,19 @@ msgid "" "empty dictionary is provided so that a new chain always has at least one " "mapping." msgstr "" +"Un objet :class:`ChainMap` regroupe plusieurs dictionnaires (ou autres " +"tableaux de correspondance) en une vue que l'on peut mettre à jour. Si le " +"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 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." msgstr "" +"Les dictionnaires sous-jacents sont stockés dans une liste. Celle-ci est " +"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 msgid "" @@ -145,6 +181,9 @@ msgid "" "In contrast, writes, updates, and deletions only operate on the first " "mapping." msgstr "" +"Les recherches s'effectuent successivement dans chaque dictionnaire jusqu'à " +"la première clé correspondante. En revanche, les écritures, mises à jour et " +"suppressions n'affectent que le premier dictionnaire." #: ../Doc/library/collections.rst:65 msgid "" @@ -152,6 +191,9 @@ msgid "" "if one of the underlying mappings gets updated, those changes will be " "reflected in :class:`ChainMap`." msgstr "" +"Un objet :class:`ChainMap` incorpore les dictionnaires sous-jacents par leur " +"référence. Ainsi, si l'un d'eux est modifié, les changements affectent " +"également la :class:`ChainMap`." #: ../Doc/library/collections.rst:69 msgid "" @@ -159,6 +201,10 @@ msgid "" "*maps* attribute, a method for creating new subcontexts, and a property for " "accessing all but the first mapping:" msgstr "" +"Toutes les méthodes usuelles des dictionnaires sont gérées. De plus, cette " +"classe fournit un attribut *maps*, une méthode pour créer de nouveaux sous-" +"contextes et une propriété pour accéder à tous les dictionnaires sous-" +"jacents excepté le premier :" #: ../Doc/library/collections.rst:75 msgid "" @@ -167,6 +213,10 @@ msgid "" "which mappings are searched. The list should always contain at least one " "mapping." msgstr "" +"Liste de dictionnaires éditable par l'utilisateur et classée selon l'ordre " +"de recherche. Il s'agit de l'unique état stocké et elle peut être modifiée " +"pour changer l'ordre de recherche. La liste doit toujours contenir au moins " +"un dictionnaire." #: ../Doc/library/collections.rst:82 msgid "" @@ -177,10 +227,17 @@ msgid "" "*d.maps)``. This method is used for creating subcontexts that can be " "updated without altering values in any of the parent mappings." msgstr "" +"Renvoie un nouvel objet :class:`ChainMap` contenant un nouveau dictionnaire " +"suivi par tous les autres de l'instance actuelle. Si ``m`` est spécifié, il " +"devient le nouveau dictionnaire au début de la liste ; sinon, un " +"dictionnaire vide est utilisé, de telle manière qu'appeler ``d.new_child()`` " +"équivaut à appeler ``ChainMap({}, *d.maps)``. Cette méthode est utile pour " +"créer des sous-contextes qui peuvent être mis à jour sans altérer les " +"valeurs dans les dictionnaires parents." #: ../Doc/library/collections.rst:90 msgid "The optional ``m`` parameter was added." -msgstr "" +msgstr "Ajout du paramètre optionnel ``m``." #: ../Doc/library/collections.rst:95 msgid "" @@ -191,16 +248,43 @@ msgid "" "cases also parallel those for the built-in :func:`super` function. A " "reference to ``d.parents`` is equivalent to: ``ChainMap(*d.maps[1:])``." msgstr "" +"Propriété qui renvoie un nouvel objet :class:`ChainMap` contenant tous les " +"dictionnaires de l'instance actuelle hormis le premier. Cette propriété est " +"utile pour ignorer le premier dictionnaire dans les recherches ; son " +"utilisation rappelle le mot-clé :keyword:`nonlocal` (utilisé pour les :term:" +"`portées imbriquées `), ou bien la fonction native :func:" +"`super`. Une référence à ``d.parents`` est équivalente à : ``ChainMap(*d." +"maps[1:])``." + +#: ../Doc/library/collections.rst:103 +msgid "" +"Note, the iteration order of a :class:`ChainMap()` is determined by scanning " +"the mappings last to first::" +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:106 +#: ../Doc/library/collections.rst:111 +msgid "" +"This gives the same ordering as a series of :meth:`dict.update` calls " +"starting with the last mapping::" +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 msgid "" "The `MultiContext class `_ in the Enthought `CodeTools package " "`_ has options to support writing to " "any mapping in the chain." msgstr "" +"La `classe MultiContext `_ dans le `package 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:112 +#: ../Doc/library/collections.rst:127 msgid "" "Django's `Context class `_ for templating is a read-only chain of mappings. It " @@ -208,141 +292,204 @@ msgid "" "`~collections.ChainMap.new_child` method and the :attr:`~collections." "ChainMap.parents` property." msgstr "" +"La `classe de contexte de Django `_ pour la création de modèles est une " +"chaîne de dictionnaires en lecture seule. Elle comporte également des " +"fonctionnalités d'ajouts et de retraits de contextes similaires à la " +"méthode :meth:`~collections.ChainMap.new_child` et à la propriété :attr:" +"`~collections.ChainMap.parents`." -#: ../Doc/library/collections.rst:119 +#: ../Doc/library/collections.rst:134 msgid "" "The `Nested Contexts recipe `_ " "has options to control whether writes and other mutations apply only to the " "first mapping or to any mapping in the chain." msgstr "" +"`Le Cas pratique des contextes imbriqués `_ a des options pour contrôler si les écritures et autres " +"mutations ne s'appliquent qu'au premier ou à un autre dictionnaire de la " +"chaîne." -#: ../Doc/library/collections.rst:124 +#: ../Doc/library/collections.rst:139 msgid "" "A `greatly simplified read-only version of Chainmap `_." msgstr "" +"Une `version grandement simplifiée de Chainmap en lecture seule `_." -#: ../Doc/library/collections.rst:129 +#: ../Doc/library/collections.rst:144 msgid ":class:`ChainMap` Examples and Recipes" -msgstr "" +msgstr "Exemples et cas pratiques utilisant :class:`ChainMap`" -#: ../Doc/library/collections.rst:131 +#: ../Doc/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:134 +#: ../Doc/library/collections.rst:149 msgid "Example of simulating Python's internal lookup chain::" -msgstr "" +msgstr "Exemple 1 : simulation de la chaîne de recherche interne de Python ::" -#: ../Doc/library/collections.rst:139 +#: ../Doc/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 " "values::" 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:156 +#: ../Doc/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` ::" -#: ../Doc/library/collections.rst:175 +#: ../Doc/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. " "However, if deep writes and deletions are desired, it is easy to make a " "subclass that updates keys found deeper in the chain::" msgstr "" +"La classe :class:`ChainMap` ne met à jour (écriture et suppression) que le " +"premier dictionnaire de la chaîne, alors qu'une recherche inspecte toute la " +"chaîne. Cependant, si l'on veut effectuer des écritures ou suppressions en " +"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:206 +#: ../Doc/library/collections.rst:221 msgid ":class:`Counter` objects" -msgstr "" +msgstr "Objets :class:`Counter`" -#: ../Doc/library/collections.rst:208 +#: ../Doc/library/collections.rst:223 msgid "" "A counter tool is provided to support convenient and rapid tallies. For " "example::" msgstr "" +"Ce module fournit un outil pour effectuer rapidement et facilement des " +"dénombrements. Par exemple ::" -#: ../Doc/library/collections.rst:227 +#: ../Doc/library/collections.rst:242 msgid "" "A :class:`Counter` is a :class:`dict` subclass for counting hashable " -"objects. It is an unordered collection where elements are stored as " -"dictionary keys and their counts are stored as dictionary values. Counts " -"are allowed to be any integer value including zero or negative counts. The :" -"class:`Counter` class is similar to bags or multisets in other languages." -msgstr "" +"objects. It is a collection where elements are stored as dictionary keys and " +"their counts are stored as dictionary values. Counts are allowed to be any " +"integer value including zero or negative counts. The :class:`Counter` class " +"is similar to bags or multisets in other languages." +msgstr "" +"La classe :class:`Counter` est une sous-classe de :class:`dict` qui permet " +"le dénombrement d'objets hachables. Il s'agit d'une collection dans laquelle " +"les éléments sont stockés comme des clés de dictionnaire et leurs nombres " +"d’occurrences respectifs comme leurs valeurs. Ceux-ci peuvent être des " +"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:233 +#: ../Doc/library/collections.rst:248 msgid "" "Elements are counted from an *iterable* or initialized from another " "*mapping* (or counter):" 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:241 +#: ../Doc/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`:" msgstr "" +"Les objets Counter ont une interface de dictionnaire, à l'exception près " +"qu'ils renvoient zéro au lieu de lever une exception :exc:`KeyError` pour " +"des éléments manquants :" -#: ../Doc/library/collections.rst:248 +#: ../Doc/library/collections.rst:263 msgid "" "Setting a count to zero does not remove an element from a counter. Use " "``del`` to remove it entirely:" 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:257 +#: ../Doc/library/collections.rst:272 msgid "" "Counter objects support three methods beyond those available for all " "dictionaries:" 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:262 +#: ../Doc/library/collections.rst:277 msgid "" "Return an iterator over elements repeating each as many times as its count. " "Elements are returned in arbitrary order. 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." -#: ../Doc/library/collections.rst:272 +#: ../Doc/library/collections.rst:287 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` " "returns *all* elements in the counter. Elements with equal counts are " "ordered arbitrarily:" 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 :" -#: ../Doc/library/collections.rst:282 +#: ../Doc/library/collections.rst:297 msgid "" "Elements are subtracted from an *iterable* or from another *mapping* (or " "counter). Like :meth:`dict.update` but subtracts counts instead of " "replacing them. Both inputs and outputs may be zero or negative." msgstr "" +"Les éléments sont soustraits à partir d'un itérable ou d'un autre " +"dictionnaire (ou compteur). Cette méthode se comporte comme :meth:`dict." +"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:294 +#: ../Doc/library/collections.rst:309 msgid "" "The usual dictionary methods are available for :class:`Counter` objects " "except for two which work differently for counters." msgstr "" +"Les méthodes usuelles des dictionnaires sont disponibles pour les objets :" +"class:`Counter` à l'exception de deux méthodes qui fonctionnent différemment " +"pour les compteurs." -#: ../Doc/library/collections.rst:299 +#: ../Doc/library/collections.rst:314 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:303 +#: ../Doc/library/collections.rst:318 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 " "them. Also, the *iterable* is expected to be a sequence of elements, not a " "sequence of ``(key, value)`` pairs." msgstr "" +"Les éléments sont comptés à partir d'un itérable ou ajoutés d'un autre " +"dictionnaire (ou compteur). Cette méthode se comporte comme :meth:`dict." +"update` mais additionne les nombres d'occurrences au lieu de les remplacer. " +"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:308 +#: ../Doc/library/collections.rst:323 msgid "Common patterns for working with :class:`Counter` objects::" -msgstr "" +msgstr "Opérations usuelles sur les objets :class:`Counter` ::" -#: ../Doc/library/collections.rst:320 +#: ../Doc/library/collections.rst:335 msgid "" "Several mathematical operations are provided for combining :class:`Counter` " "objects to produce multisets (counters that have counts greater than zero). " @@ -352,40 +499,65 @@ msgid "" "signed counts, but the output will exclude results with counts of zero or " "less." msgstr "" +"Quelques opérations mathématiques sont fournies pour combiner des objets :" +"class:`Counter` afin de créer des multiensembles (des compteurs dont les " +"dénombrements des éléments sont strictement supérieurs à zéro). Les " +"additions et soustractions combinent les compteurs en ajoutant ou " +"retranchant les nombres d'occurrences des éléments correspondants. Les " +"intersections et unions renvoient les minimums et maximums des comptages " +"correspondants. Chaque opération peut accepter des entrées avec des " +"comptages relatifs, mais la sortie exclut les résultats avec des comptages " +"négatifs ou nuls." -#: ../Doc/library/collections.rst:338 +#: ../Doc/library/collections.rst:353 msgid "" "Unary addition and subtraction are shortcuts for adding an empty counter or " "subtracting from an empty counter." msgstr "" +"L'addition et la soustraction unaires (avec un seul terme) sont des " +"raccourcis pour respectivement additionner un compteur avec un compteur vide " +"ou et pour retrancher un compteur d'un compteur vide." -#: ../Doc/library/collections.rst:347 +#: ../Doc/library/collections.rst:362 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:352 +#: ../Doc/library/collections.rst:367 msgid "" "Counters were primarily designed to work with positive integers to represent " "running counts; however, care was taken to not unnecessarily preclude use " "cases needing other types or negative values. To help with those use cases, " "this section documents the minimum range and type restrictions." msgstr "" +"Les compteurs ont été conçus essentiellement pour fonctionner avec des " +"entiers naturels pour représenter les dénombrements en cours ; cependant, " +"les cas d'utilisation nécessitant d'autres types ou des valeurs négatives " +"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:357 +#: ../Doc/library/collections.rst:372 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 " "representing counts, but you *could* store anything in the value field." msgstr "" +"La classe :class:`Counter` est elle-même une sous-classe de dictionnaire " +"sans restriction particulière sur ces clés ou valeurs. Les valeurs ont " +"vocation à être des nombres représentants des comptages, mais il est " +"*possible* de stocker n'importe quel type de valeur." -#: ../Doc/library/collections.rst:361 +#: ../Doc/library/collections.rst:376 msgid "" "The :meth:`~Counter.most_common` method requires only that the values be " "orderable." msgstr "" +"La méthode :meth:`~Counter.most_common` exige uniquement que les valeurs " +"soient ordonnables." -#: ../Doc/library/collections.rst:363 +#: ../Doc/library/collections.rst:378 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 " @@ -393,79 +565,119 @@ msgid "" "`~Counter.update` and :meth:`~Counter.subtract` which allow negative and " "zero values for both inputs and outputs." msgstr "" +"Les opérations de remplacement telles que ``c[key] += 1`` exigent une valeur " +"dont le type gère l'addition et la soustraction. Cela inclut donc les " +"fractions, les flottants et les décimaux, y compris négatifs. Il en va de " +"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:369 +#: ../Doc/library/collections.rst:384 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 " "are created. There are no type restrictions, but the value type needs to " "support addition, subtraction, and comparison." msgstr "" +"Les méthodes de multiensembles sont uniquement conçues pour les cas " +"d'utilisation avec des valeurs positives. Les entrées peuvent contenir des " +"valeurs négatives ou nulles, mais seules les sorties avec des valeurs " +"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:374 +#: ../Doc/library/collections.rst:389 msgid "" "The :meth:`~Counter.elements` method requires integer counts. It ignores " "zero and negative counts." msgstr "" +"La méthode :meth:`~Counter.elements` exige des valeurs entières et ignore " +"les valeurs négatives ou nulles." -#: ../Doc/library/collections.rst:379 +#: ../Doc/library/collections.rst:394 msgid "" "`Bag class `_ in Smalltalk." msgstr "" +"`Bag class `_ dans Smalltalk." -#: ../Doc/library/collections.rst:382 +#: ../Doc/library/collections.rst:397 msgid "" "Wikipedia entry for `Multisets `_." msgstr "" +"L'article Wikipédia sur les `multiensembles `_ sur Wikipédia (ou `l'article en anglais `_)." -#: ../Doc/library/collections.rst:384 +#: ../Doc/library/collections.rst:399 msgid "" "`C++ multisets `_ tutorial with examples." msgstr "" +"Des guides et exemples à propos des `multiensembles en C++ `_." -#: ../Doc/library/collections.rst:387 +#: ../Doc/library/collections.rst:402 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 " "19*." msgstr "" +"Pour les opérations mathématiques sur les multiensembles et leurs " +"applications, voir *Knuth, Donald. The Art of Computer Programming Volume " +"II, Section 4.6.3, Exercise 19*." -#: ../Doc/library/collections.rst:391 +#: ../Doc/library/collections.rst:406 msgid "" "To enumerate all distinct multisets of a given size over a given set of " "elements, see :func:`itertools.combinations_with_replacement`::" msgstr "" +"Pour lister tous les multiensembles distincts de même taille parmi un " +"ensemble donné d'éléments, voir :func:`itertools." +"combinations_with_replacement` ::" -#: ../Doc/library/collections.rst:398 +#: ../Doc/library/collections.rst:413 msgid ":class:`deque` objects" -msgstr "" +msgstr "Objets :class:`deque`" -#: ../Doc/library/collections.rst:402 +#: ../Doc/library/collections.rst:417 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 " "empty." msgstr "" +"Renvoie un nouvel objet *deque* initialisé de gauche à droite (en utilisant :" +"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:405 +#: ../Doc/library/collections.rst:420 msgid "" "Deques are a generalization of stacks and queues (the name is pronounced " "\"deck\" and is short for \"double-ended queue\"). Deques support thread-" "safe, memory efficient appends and pops from either side of the deque with " "approximately the same O(1) performance in either direction." msgstr "" +"Les *deques* sont une généralisation des piles et des files (*deque* se " +"prononce \"*dèque*\" et est l'abréviation de l'anglais *double-ended " +"queue*) : il est possible d'ajouter et retirer des éléments par les deux " +"bouts des *deques*. Celles-ci gèrent des ajouts et des retraits utilisables " +"par de multiples fils d'exécution (*thread-safe*) et efficients du point de " +"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:410 +#: ../Doc/library/collections.rst:425 msgid "" "Though :class:`list` objects support similar operations, they are optimized " "for fast fixed-length operations and incur O(n) memory movement costs for " "``pop(0)`` and ``insert(0, v)`` operations which change both the size and " "position of the underlying data representation." msgstr "" +"Bien que les les objets :class:`list` gèrent des opérations similaires, ils " +"sont optimisés pour des opérations qui ne changent pas la taille de la " +"liste. Les opérations ``pop(0)`` et ``insert(0, v)`` qui changent la taille " +"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:416 +#: ../Doc/library/collections.rst:431 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. " @@ -475,105 +687,138 @@ msgid "" "They are also useful for tracking transactions and other pools of data where " "only the most recent activity is of interest." msgstr "" +"Si *maxlen* n'est pas spécifié ou vaut *None*, les *deques* peuvent " +"atteindre une taille arbitraire. Sinon, la *deque* est limitée par cette " +"taille maximale. Une fois que celle-ci est atteinte, un ajout d'un ou " +"plusieurs éléments engendre la suppression du nombre correspondant " +"d'éléments à l'autre extrémité de la *deque*. Les *deques* à longueur " +"limitée apportent des fonctionnalités similaire au filtre ``tail`` d'Unix. " +"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:425 +#: ../Doc/library/collections.rst:440 msgid "Deque objects support the following methods:" -msgstr "" +msgstr "Les objets *deques* gèrent les méthodes suivantes :" -#: ../Doc/library/collections.rst:429 +#: ../Doc/library/collections.rst:444 msgid "Add *x* to the right side of the deque." -msgstr "" +msgstr "Ajoute *x* à l'extrémité droite de la *deque*." -#: ../Doc/library/collections.rst:434 +#: ../Doc/library/collections.rst:449 msgid "Add *x* to the left side of the deque." -msgstr "" +msgstr "Ajoute *x* à l'extrémité gauche de la *deque*." -#: ../Doc/library/collections.rst:439 +#: ../Doc/library/collections.rst:454 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:444 +#: ../Doc/library/collections.rst:459 msgid "Create a shallow copy of the deque." -msgstr "" +msgstr "Crée une copie superficielle de la *deque*." -#: ../Doc/library/collections.rst:451 +#: ../Doc/library/collections.rst:466 msgid "Count the number of deque elements equal to *x*." -msgstr "" +msgstr "Compte le nombre d'éléments de la *deque* égaux à *x*." -#: ../Doc/library/collections.rst:458 +#: ../Doc/library/collections.rst:473 msgid "" "Extend the right side of the deque by appending elements from the iterable " "argument." msgstr "" +"Étend la *deque* en ajoutant les éléments de l'itérable en argument à son " +"extrémité droite." -#: ../Doc/library/collections.rst:464 +#: ../Doc/library/collections.rst:479 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 " "in the iterable argument." msgstr "" +"Étend la *deque* en ajoutant les éléments d'*iterable* à son extrémité " +"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:471 +#: ../Doc/library/collections.rst:486 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` " "if not found." msgstr "" +"Renvoie la position de *x* dans la *deque* (à partir de *start* inclus et " +"jusqu'à *stop* exclus). Renvoie la première correspondance ou lève :exc:" +"`ValueError` si aucune n'est trouvée." -#: ../Doc/library/collections.rst:480 +#: ../Doc/library/collections.rst:495 msgid "Insert *x* into the deque at position *i*." -msgstr "" +msgstr "Insère *x* dans la *deque* à la position *i*." -#: ../Doc/library/collections.rst:482 +#: ../Doc/library/collections.rst:497 msgid "" "If the insertion would cause a bounded deque to grow beyond *maxlen*, an :" "exc:`IndexError` is raised." 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:490 +#: ../Doc/library/collections.rst:505 msgid "" "Remove and return an element from the right side of the deque. If no " "elements are present, raises an :exc:`IndexError`." 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:496 +#: ../Doc/library/collections.rst:511 msgid "" "Remove and return an element from the left side of the deque. If no elements " "are present, raises an :exc:`IndexError`." 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:502 +#: ../Doc/library/collections.rst:517 msgid "" "Remove the first occurrence of *value*. If not found, raises a :exc:" "`ValueError`." 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:508 +#: ../Doc/library/collections.rst:523 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:515 +#: ../Doc/library/collections.rst:530 msgid "" "Rotate the deque *n* steps to the right. If *n* is negative, rotate to the " "left." 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:518 +#: ../Doc/library/collections.rst:533 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 " "to ``d.append(d.popleft())``." msgstr "" +"Quand la *deque* n'est pas vide, un décalage d'une place vers la droite " +"é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:523 +#: ../Doc/library/collections.rst:538 msgid "Deque objects also provide one read-only attribute:" msgstr "" +"Les objets *deques* fournissent également un attribut en lecture seule :" -#: ../Doc/library/collections.rst:527 +#: ../Doc/library/collections.rst:542 msgid "Maximum size of a deque or ``None`` if unbounded." -msgstr "" +msgstr "La taille maximale d'une *deque*, ou ``None`` si illimitée." -#: ../Doc/library/collections.rst:532 +#: ../Doc/library/collections.rst:547 msgid "" "In addition to the above, deques support iteration, pickling, ``len(d)``, " "``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing " @@ -581,38 +826,52 @@ msgid "" "``d[-1]``. Indexed access is O(1) at both ends but slows to O(n) in the " "middle. For fast random access, use lists instead." 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." -#: ../Doc/library/collections.rst:538 +#: ../Doc/library/collections.rst:553 msgid "" "Starting in version 3.5, deques support ``__add__()``, ``__mul__()``, and " "``__imul__()``." msgstr "" +"Depuis la version 3.5, les *deques* gèrent ``__add__()``, ``__mul__()`` et " +"``__imul__()``." -#: ../Doc/library/collections.rst:541 +#: ../Doc/library/collections.rst:556 msgid "Example:" msgstr "Exemple :" -#: ../Doc/library/collections.rst:598 +#: ../Doc/library/collections.rst:613 msgid ":class:`deque` Recipes" -msgstr "" +msgstr "Cas pratiques utilisant :class:`deque`" -#: ../Doc/library/collections.rst:600 +#: ../Doc/library/collections.rst:615 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:602 +#: ../Doc/library/collections.rst:617 msgid "" "Bounded length deques provide functionality similar to the ``tail`` filter " "in Unix::" msgstr "" +"Les *deques* à taille limitée apportent une fonctionnalité similaire au " +"filtre ``tail`` d'Unix ::" -#: ../Doc/library/collections.rst:610 +#: ../Doc/library/collections.rst:625 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::" msgstr "" +"Une autre approche d'utilisation des *deques* est de maintenir une séquence " +"d'éléments récemment ajoutés en les ajoutant à droite et en retirant les " +"anciens par la gauche ::" -#: ../Doc/library/collections.rst:625 +#: ../Doc/library/collections.rst:640 msgid "" "A `round-robin scheduler `_ can be implemented with input iterators stored in a :" @@ -621,15 +880,26 @@ msgid "" "popleft`; otherwise, it can be cycled back to the end with the :meth:`~deque." "rotate` method::" msgstr "" +"Un `ordonnancement en round-robin `_ peut être implémenté avec des entrées itérateurs " +"stockées dans une :class:`deque`. Les valeurs sont produites par l'itérateur " +"actif en position zéro. Si cet itérateur est épuisé, il peut être retiré " +"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:644 +#: ../Doc/library/collections.rst:659 msgid "" "The :meth:`~deque.rotate` method provides a way to implement :class:`deque` " "slicing and deletion. For example, a pure Python implementation of ``del " "d[n]`` relies on the ``rotate()`` method to position elements to be popped::" msgstr "" +"La méthode :meth:`~deque.rotate` apporte une façon d'implémenter la " +"sélection d'intervalle (*slicing*) et les suppressions pour les :class:" +"`deques`. Par exemple, une implémentation de ``del d[n]`` en Python pur " +"utilise la méthode ``rotate()`` pour mettre en position les éléments à " +"éjecter ::" -#: ../Doc/library/collections.rst:653 +#: ../Doc/library/collections.rst:668 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. " @@ -638,89 +908,129 @@ msgid "" "that approach, it is easy to implement Forth style stack manipulations such " "as ``dup``, ``drop``, ``swap``, ``over``, ``pick``, ``rot``, and ``roll``." msgstr "" +"Pour implémenter le *slicing* pour les :class:`deques `, il est " +"possible d'utiliser une approche similaire en appliquant :meth:`~deque." +"rotate` afin d'apporter un élément cible à l'extrémité gauche de la *deque*. " +"On éjecte les anciennes entrées avec :meth:`~deque.popleft` et on ajoute les " +"nouvelles avec :meth:`~deque.extend`, puis on inverse la rotation. Il est " +"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:663 +#: ../Doc/library/collections.rst:678 msgid ":class:`defaultdict` objects" -msgstr "" +msgstr "Objets :class:`defaultdict`" -#: ../Doc/library/collections.rst:667 +#: ../Doc/library/collections.rst:682 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 " "writable instance variable. The remaining functionality is the same as for " "the :class:`dict` class and is not documented here." msgstr "" +"Renvoie un nouvel objet qui se comporte comme un dictionnaire. :class:" +"`defaultdict` est une sous-classe de la la classe native :class:`dict`. Elle " +"surcharge une méthode et ajoute une variable d'instance modifiable. Les " +"autres fonctionnalités sont les mêmes que celles des objets :class:`dict` et " +"ne sont pas documentées ici." -#: ../Doc/library/collections.rst:672 +#: ../Doc/library/collections.rst:687 msgid "" "The first argument provides the initial value for the :attr:" "`default_factory` attribute; it defaults to ``None``. All remaining " "arguments are treated the same as if they were passed to the :class:`dict` " "constructor, including keyword arguments." msgstr "" +"Le premier argument fournit la valeur initiale de l'attribut :attr:" +"`default_factory` qui doit être un objet appelable sans paramètre ou " +"``None``, sa valeur par défaut. Tous les autres arguments sont traités comme " +"si on les passait au constructeur de :class:`dict`, y compris les arguments " +"nommés." -#: ../Doc/library/collections.rst:678 +#: ../Doc/library/collections.rst:693 msgid "" ":class:`defaultdict` objects support the following method in addition to the " "standard :class:`dict` operations:" 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:683 +#: ../Doc/library/collections.rst:698 msgid "" "If the :attr:`default_factory` attribute is ``None``, this raises a :exc:" "`KeyError` exception with the *key* as argument." msgstr "" +"Si l'attribut :attr:`default_factory` est ``None``, lève une exception :exc:" +"`KeyError` avec *key* comme argument." -#: ../Doc/library/collections.rst:686 +#: ../Doc/library/collections.rst:701 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 " "the dictionary for the *key*, and returned." msgstr "" +"Si :attr:`default_fatory`` ne vaut pas ``None``, cet attribut est appelé " +"sans argument pour fournir une valeur par défaut pour la *key* demandée. " +"Cette valeur est insérée dans le dictionnaire avec pour clé *key* et est " +"renvoyée." -#: ../Doc/library/collections.rst:690 +#: ../Doc/library/collections.rst:705 msgid "" "If calling :attr:`default_factory` raises an exception this exception is " "propagated unchanged." msgstr "" +"Si appeler :attr:`default_factory` lève une exception, celle-ci est " +"transmise inchangée." -#: ../Doc/library/collections.rst:693 +#: ../Doc/library/collections.rst:708 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 " "then returned or raised by :meth:`__getitem__`." msgstr "" +"Cette méthode est appelée par la méthode :meth:`__getitem__` de la classe :" +"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:697 +#: ../Doc/library/collections.rst:712 msgid "" "Note that :meth:`__missing__` is *not* called for any operations besides :" "meth:`__getitem__`. This means that :meth:`get` will, like normal " "dictionaries, return ``None`` as a default rather than using :attr:" "`default_factory`." msgstr "" +"Remarquez que :meth:`__missing__` n'est *pas* appelée pour les opérations " +"autres que :meth:`__getitem__`. Cela signifie que :meth:`get` renvoie " +"``None`` comme les dictionnaires natifs dans les cas triviaux et n'utilise " +"pas :attr:`default_factory`." -#: ../Doc/library/collections.rst:703 +#: ../Doc/library/collections.rst:718 msgid ":class:`defaultdict` objects support the following instance variable:" -msgstr "" +msgstr "Les objets :class:`defaultdict` gèrent la variable d'instance :" -#: ../Doc/library/collections.rst:708 +#: ../Doc/library/collections.rst:723 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 " "absent." msgstr "" +"Cet attribut est utilisé par la méthode :meth:`__missing__` ; il est " +"initialisé par le premier argument passé au constructeur, s'il est spécifié, " +"sinon par ``None``." -#: ../Doc/library/collections.rst:714 +#: ../Doc/library/collections.rst:729 msgid ":class:`defaultdict` Examples" -msgstr "" +msgstr "Exemples utilisant :class:`defaultdict`" -#: ../Doc/library/collections.rst:716 +#: ../Doc/library/collections.rst:731 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:" msgstr "" +"Utiliser :class:`list` comme :attr:`~defaultdict.default_factory` facilite " +"le regroupement d'une séquence de paires clé-valeur en un dictionnaire de " +"listes :" -#: ../Doc/library/collections.rst:727 +#: ../Doc/library/collections.rst:742 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." @@ -731,49 +1041,77 @@ msgid "" "list. This technique is simpler and faster than an equivalent technique " "using :meth:`dict.setdefault`:" msgstr "" +"Lorsque chaque clé est rencontrée pour la première fois, elle n'est pas " +"encore présente dans le dictionnaire, donc une entrée est automatiquement " +"créée grâce à la fonction :attr:`~defaultdict.default_factory` qui renvoie " +"un objet :class:`list` vide. L'opération :meth:`list.append` ajoute la " +"valeur à la nouvelle liste. Quand les clés sont à nouveau rencontrées, la " +"recherche se déroule correctement (elle renvoie la liste de cette clé) et " +"l'opération :meth:`list.append` ajoute une autre valeur à la liste. Cette " +"technique est plus simple et plus rapide qu'une technique équivalente " +"utilisant :meth:`dict.setdefault` :" -#: ../Doc/library/collections.rst:742 +#: ../Doc/library/collections.rst:757 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`int` makes the :" "class:`defaultdict` useful for counting (like a bag or multiset in other " "languages):" msgstr "" +"Utiliser :class:`int` comme :attr:`~defaultdict.default_factory` rend la " +"classe :class:`defaultdict` pratique pour le comptage (comme un sac ou multi-" +"ensemble dans d'autres langages) :" -#: ../Doc/library/collections.rst:754 +#: ../Doc/library/collections.rst:769 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 " "default count of zero. The increment operation then builds up the count for " "each letter." msgstr "" +"Quand une lettre est rencontrée pour la première fois, elle n'est pas dans " +"le dictionnaire, donc la fonction :attr:`~defaultdict.default_factory` " +"appelle :func:`int` pour mettre un nouveau compteur à zéro. L'incrémentation " +"augmente ensuite le comptage pour chaque lettre." -#: ../Doc/library/collections.rst:758 +#: ../Doc/library/collections.rst:773 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 " "functions is to use a lambda function which can supply any constant value " "(not just zero):" msgstr "" +"La fonction :func:`int` qui retourne toujours zéro est simplement une " +"fonction constante particulière. Un moyen plus flexible et rapide de créer " +"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:770 +#: ../Doc/library/collections.rst:785 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`set` makes the :" "class:`defaultdict` useful for building a dictionary of sets:" 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:783 +#: ../Doc/library/collections.rst:798 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:785 +#: ../Doc/library/collections.rst:800 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 " "are used, and they add the ability to access fields by name instead of " "position index." msgstr "" +"Les tuples nommés assignent une signification à chacun de leur élément, ce " +"qui rend le code plus lisible et explicite. Ils peuvent être utilisés " +"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:791 +#: ../Doc/library/collections.rst:806 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 " @@ -781,31 +1119,52 @@ msgid "" "helpful docstring (with typename and field_names) and a helpful :meth:" "`__repr__` method which lists the tuple contents in a ``name=value`` format." msgstr "" +"Renvoie une nouvelle sous-classe de ``tuple`` appelée *typename*. Elle est " +"utilisée pour créer des objets se comportant comme les *tuples* qui ont des " +"champs accessibles par recherche d'attribut en plus d'être indexables et " +"itérables. Les instances de cette sous-classe possèdent aussi une " +"*docstring* explicite (avec *type_name* et les *field_names*) et une " +"méthode :meth:`__repr__` pratique qui liste le contenu du tuple au format " +"``nom=valeur``." -#: ../Doc/library/collections.rst:797 +#: ../Doc/library/collections.rst:812 msgid "" "The *field_names* are a sequence of strings such as ``['x', 'y']``. " "Alternatively, *field_names* can be a single string with each fieldname " "separated by whitespace and/or commas, for example ``'x y'`` or ``'x, y'``." msgstr "" +"*field_names* peut être une séquence de chaînes de caractères telle que " +"``['x', 'y']`` ou bien une unique chaîne de caractères où les noms de champs " +"sont séparés par un espace et/ou une virgule, par exemple ``'x y'`` ou ``'x, " +"y'``." -#: ../Doc/library/collections.rst:801 +#: ../Doc/library/collections.rst:816 msgid "" "Any valid Python identifier may be used for a fieldname except for names " "starting with an underscore. Valid identifiers consist of letters, digits, " "and underscores but do not start with a digit or underscore and cannot be a :" "mod:`keyword` such as *class*, *for*, *return*, *global*, *pass*, or *raise*." msgstr "" +"N'importe quel identifiant Python peut être utilisé pour un nom de champ " +"hormis ceux commençant par un tiret bas. Les identifiants valides peuvent " +"contenir des lettres, des chiffres (sauf en première position) et des tirets " +"bas (sauf en première position). Un identifiant ne peut pas être un :mod:" +"`keyword` tel que ``class``, ``for``, ``return``, ``global``, ``pass`` ou " +"``raise``." -#: ../Doc/library/collections.rst:807 +#: ../Doc/library/collections.rst:822 msgid "" "If *rename* is true, invalid fieldnames are automatically replaced with " "positional names. For example, ``['abc', 'def', 'ghi', 'abc']`` is " "converted to ``['abc', '_1', 'ghi', '_3']``, eliminating the keyword ``def`` " "and the duplicate fieldname ``abc``." msgstr "" +"Si *rename* vaut ``True``, alors les noms de champs invalides sont " +"automatiquement renommés en noms positionnels. Par exemple, ``['abc', 'def', " +"'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:812 +#: ../Doc/library/collections.rst:827 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, " @@ -814,198 +1173,328 @@ msgid "" "``x`` will be a required argument, ``y`` will default to ``1``, and ``z`` " "will default to ``2``." msgstr "" +"*defaults* peut être ``None`` ou un :term:`iterable` de valeurs par défaut. " +"Comme les champs avec une valeur par défaut doivent être définis après les " +"champs sans valeur par défaut, les *defaults* sont appliqués aux paramètres " +"les plus à droite. Par exemple, si les noms des champs sont ``['x', 'y', " +"'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:819 +#: ../Doc/library/collections.rst:834 msgid "" "If *module* is defined, the ``__module__`` attribute of the named tuple is " "set to that value." msgstr "" +"Si *module* est spécifié, alors il est assigné à l'attribut ``__module__`` " +"du tuple nommé." -#: ../Doc/library/collections.rst:822 +#: ../Doc/library/collections.rst:837 msgid "" "Named tuple instances do not have per-instance dictionaries, so they are " "lightweight and require no more memory than regular tuples." 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:825 +#: ../Doc/library/collections.rst:840 msgid "Added support for *rename*." -msgstr "" +msgstr "Gestion de *rename*." -#: ../Doc/library/collections.rst:828 +#: ../Doc/library/collections.rst:843 msgid "" "The *verbose* and *rename* parameters became :ref:`keyword-only arguments " "`." msgstr "" +"Les paramètres *verbose* et *rename* deviennent des :ref:`arguments " +"obligatoirement nommés `." -#: ../Doc/library/collections.rst:832 +#: ../Doc/library/collections.rst:847 msgid "Added the *module* parameter." -msgstr "" +msgstr "Ajout du paramètre *module*." -#: ../Doc/library/collections.rst:835 +#: ../Doc/library/collections.rst:850 msgid "Remove the *verbose* parameter and the :attr:`_source` attribute." -msgstr "" +msgstr "Suppression du paramètre *verbose* et de l'attribut :attr:`_source`." -#: ../Doc/library/collections.rst:838 +#: ../Doc/library/collections.rst:853 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:858 +#: ../Doc/library/collections.rst:873 msgid "" "Named tuples are especially useful for assigning field names to result " "tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" 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:874 +#: ../Doc/library/collections.rst:889 msgid "" "In addition to the methods inherited from tuples, named tuples support three " "additional methods and two attributes. To prevent conflicts with field " "names, the method and attribute names start with an underscore." msgstr "" +"En plus des méthodes héritées de ``tuple``, les tuples nommés implémentent " +"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:880 +#: ../Doc/library/collections.rst:895 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:890 +#: ../Doc/library/collections.rst:905 msgid "" -"Return a new :class:`OrderedDict` which maps field names to their " -"corresponding values:" +"Return a new :class:`dict` which maps field names to their corresponding " +"values:" msgstr "" +"Renvoie un nouveau :class:`dict` qui associe chaque nom de champ à sa valeur " +"correspondante :" -#: ../Doc/library/collections.rst:899 +#: ../Doc/library/collections.rst:914 msgid "Returns an :class:`OrderedDict` instead of a regular :class:`dict`." -msgstr "" +msgstr "Renvoie un :class:`OrderedDict` au lieu d'un :class:`dict` natif." -#: ../Doc/library/collections.rst:904 +#: ../Doc/library/collections.rst:919 msgid "" "Return a new instance of the named tuple replacing specified fields with new " "values::" msgstr "" +"Renvoie une nouvelle instance du tuple nommé en remplaçant les champs " +"spécifiés par leurs nouvelles valeurs ::" -#: ../Doc/library/collections.rst:916 +#: ../Doc/library/collections.rst:931 msgid "" "Tuple of strings listing the field names. Useful for introspection and for " "creating new named tuple types from existing named tuples." msgstr "" +"Tuple de chaînes de caractères listant les noms de champs. Pratique pour " +"l'introspection et pour créer de nouveaux types de tuples nommés à partir " +"d'existants." -#: ../Doc/library/collections.rst:931 +#: ../Doc/library/collections.rst:946 msgid "Dictionary mapping field names to default values." -msgstr "" +msgstr "Dictionnaire qui assigne les valeurs par défaut aux noms des champs." -#: ../Doc/library/collections.rst:941 +#: ../Doc/library/collections.rst:956 msgid "" "To retrieve a field whose name is stored in a string, use the :func:" "`getattr` function:" 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:947 +#: ../Doc/library/collections.rst:962 msgid "" -"To convert a dictionary to a named tuple, use the double-star-operator (as " +"To convert a dictionary to a named tuple, use the ``**`` 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`) :" -#: ../Doc/library/collections.rst:954 +#: ../Doc/library/collections.rst:969 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 " "fixed-width print format:" msgstr "" +"Il est aisé d'ajouter ou de modifier les fonctionnalités des tuples nommés " +"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:973 +#: ../Doc/library/collections.rst:988 msgid "" "The subclass shown above sets ``__slots__`` to an empty tuple. This helps " "keep memory requirements low by preventing the creation of instance " "dictionaries." msgstr "" +"La sous-classe ci-dessus définit ``__slots__`` comme un tuple vide. Cela " +"permet de garder une emprunte mémoire faible en empêchant la création de " +"dictionnaire d'instance." -#: ../Doc/library/collections.rst:976 +#: ../Doc/library/collections.rst:991 msgid "" "Subclassing is not useful for adding new, stored fields. Instead, simply " "create a new named tuple type from the :attr:`~somenamedtuple._fields` " "attribute:" msgstr "" +"L'héritage n'est pas pertinent pour ajouter de nouveaux champs. Il est " +"préférable de simplement créer un nouveau type de tuple nommé avec " +"l'attribut :attr:`~somenamedtuple._fields` :" -#: ../Doc/library/collections.rst:981 +#: ../Doc/library/collections.rst:996 msgid "" "Docstrings can be customized by making direct assignments to the ``__doc__`` " "fields:" msgstr "" +"Les *docstrings* peuvent être personnalisées en modifiant directement " +"l'attribut ``__doc__`` :" -#: ../Doc/library/collections.rst:990 +#: ../Doc/library/collections.rst:1005 msgid "Property docstrings became writeable." -msgstr "" +msgstr "La propriété devient éditable." -#: ../Doc/library/collections.rst:993 +#: ../Doc/library/collections.rst:1008 msgid "" "Default values can be implemented by using :meth:`~somenamedtuple._replace` " "to customize a prototype instance:" msgstr "" +"Les valeurs par défaut peuvent être implémentées en utilisant :meth:" +"`~somenamedtuple._replace` pour personnaliser une instance prototype :" -#: ../Doc/library/collections.rst:1004 +#: ../Doc/library/collections.rst:1019 msgid "" -"`Recipe for named tuple abstract base class with a metaclass mix-in `_ by Jan Kaliszewski. Besides providing an :term:`abstract base " -"class` for named tuples, it also supports an alternate :term:`metaclass`-" -"based constructor that is convenient for use cases where named tuples are " -"being subclassed." +"See :class:`typing.NamedTuple` for a way to add type hints for named " +"tuples. It also provides an elegant notation using the :keyword:`class` " +"keyword::" 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` ::" -#: ../Doc/library/collections.rst:1011 +#: ../Doc/library/collections.rst:1028 msgid "" "See :meth:`types.SimpleNamespace` for a mutable namespace based on an " "underlying dictionary instead of a tuple." 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:1014 +#: ../Doc/library/collections.rst:1031 msgid "" -"See :meth:`typing.NamedTuple` for a way to add type hints for named tuples." +"The :mod:`dataclasses` module provides a decorator and functions for " +"automatically adding generated special methods to user-defined classes." msgstr "" +"Le module :mod:`dataclasses` fournit un décorateur et des fonctions pour " +"ajouter automatiquement des méthodes spéciales générées aux classes définies " +"par l’utilisateur." -#: ../Doc/library/collections.rst:1018 +#: ../Doc/library/collections.rst:1036 msgid ":class:`OrderedDict` objects" +msgstr "Objets :class:`OrderedDict`" + +#: ../Doc/library/collections.rst:1038 +msgid "" +"Ordered dictionaries are just like regular dictionaries but have some extra " +"capabilities relating to ordering operations. They have become less " +"important now that the built-in :class:`dict` class gained the ability to " +"remember insertion order (this new behavior became guaranteed in Python 3.7)." +msgstr "" +"Les dictionnaires ordonnés sont des dictionnaires comme les autres mais " +"possèdent des capacités supplémentaires pour s'ordonner. Ils sont maintenant " +"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:1044 +msgid "Some differences from :class:`dict` still remain:" +msgstr "Quelques différences persistent vis-à-vis de :class:`dict` :" + +#: ../Doc/library/collections.rst:1046 +msgid "" +"The regular :class:`dict` was designed to be very good at mapping " +"operations. Tracking insertion order was secondary." msgstr "" +"Les :class:`dict` classiques ont été conçus pour être performants dans les " +"opérations de correspondance. Garder une trace de l'ordre d'insertion était " +"secondaire." -#: ../Doc/library/collections.rst:1020 +#: ../Doc/library/collections.rst:1049 msgid "" -"Ordered dictionaries are just like regular dictionaries but they remember " -"the order that items were inserted. When iterating over an ordered " -"dictionary, the items are returned in the order their keys were first added." +"The :class:`OrderedDict` was designed to be good at reordering operations. " +"Space efficiency, iteration speed, and the performance of update operations " +"were secondary." msgstr "" +"Les :class:`OrderedDict` ont été conçus pour être performants dans les " +"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:1026 +#: ../Doc/library/collections.rst:1053 msgid "" -"Return an instance of a dict subclass, supporting the usual :class:`dict` " -"methods. An *OrderedDict* is a dict that remembers the order that keys were " -"first inserted. If a new entry overwrites an existing entry, the original " -"insertion position is left unchanged. Deleting an entry and reinserting it " -"will move it to the end." +"Algorithmically, :class:`OrderedDict` can handle frequent reordering " +"operations better than :class:`dict`. This makes it suitable for tracking " +"recent accesses (for example in an `LRU cache `_)." msgstr "" +"Algorithmiquement, :class:`OrderedDict` gère mieux les ré-arrangements " +"fréquents que :class:`dict`. Ceci la rend adaptée pour suivre les accès les " +"plus récents (par exemple pour implémenter un `cache LRU `_ pour *Least " +"Recently Used* en anglais)." -#: ../Doc/library/collections.rst:1036 +#: ../Doc/library/collections.rst:1058 +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:1060 +msgid "" +"The :meth:`popitem` method of :class:`OrderedDict` has a different " +"signature. It accepts an optional argument to specify which item is popped." +msgstr "" +"La méthode :meth:`popitem` de :class:`OrderedDict` possède une signature " +"différente. Elle accepte un argument optionnel pour spécifier quel élément " +"doit être enlevé." + +#: ../Doc/library/collections.rst:1063 +msgid "" +":class:`OrderedDict` has a :meth:`move_to_end` method to efficiently " +"reposition an element to an endpoint." +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:1066 +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:1071 +msgid "" +"Return an instance of a :class:`dict` subclass that has methods specialized " +"for rearranging dictionary order." +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:1078 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-" "out)` order if *last* is true or :abbr:`FIFO (first-in, first-out)` order if " "false." msgstr "" +"La méthode :meth:`popitem` pour les dictionnaires ordonnés retire et renvoie " +"une paire ``(clé, valeur)``. Les paires sont renvoyées comme pour une pile, " +"c'est-à-dire dernier entré, premier sorti (en anglais :abbr:`LIFO (last-in, " +"first-out)`) si *last* vaut ``True``. Si *last* vaut ``False``, alors les " +"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:1043 +#: ../Doc/library/collections.rst:1085 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 " "if *last* is false. Raises :exc:`KeyError` if the *key* does not exist::" msgstr "" +"Déplace une clé *key* existante à l'une des deux extrémités du " +"dictionnaire : à droite si *last* vaut ``True`` (comportement par défaut) ou " +"à gauche sinon. Lève une exception :exc:`KeyError` si la clé *key* n'est pas " +"trouvée ::" -#: ../Doc/library/collections.rst:1058 +#: ../Doc/library/collections.rst:1100 msgid "" "In addition to the usual mapping methods, ordered dictionaries also support " "reverse iteration using :func:`reversed`." 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:1061 +#: ../Doc/library/collections.rst:1103 msgid "" "Equality tests between :class:`OrderedDict` objects are order-sensitive and " "are implemented as ``list(od1.items())==list(od2.items())``. Equality tests " @@ -1014,63 +1503,73 @@ msgid "" "allows :class:`OrderedDict` objects to be substituted anywhere a regular " "dictionary is used." msgstr "" +"Les tests d'égalité entre deux objets :class:`OrderedDict` sont sensibles à " +"l'ordre et sont implémentés comme ceci : ``list(od1.items() == list(od2." +"items())``. Les tests d'égalité entre un objet :class:`OrderedDict` et un " +"objet :class:`~collections.abc.Mapping` ne sont pas sensibles à l'ordre " +"(comme les dictionnaires natifs). Cela permet substituer des objets :class:" +"`OrderedDict` partout où les dictionnaires natifs sont utilisés." -#: ../Doc/library/collections.rst:1068 +#: ../Doc/library/collections.rst:1110 msgid "" "The items, keys, and values :term:`views ` of :class:" "`OrderedDict` now support reverse iteration using :func:`reversed`." msgstr "" +"Les :term:`vues ` d'éléments, de clés et de valeurs de :" +"class:`OrderedDict` gèrent maintenant l'itération en sens inverse en " +"utilisant :func:`reversed`." -#: ../Doc/library/collections.rst:1072 +#: ../Doc/library/collections.rst:1114 msgid "" "With the acceptance of :pep:`468`, order is retained for keyword arguments " "passed to the :class:`OrderedDict` constructor and its :meth:`update` method." msgstr "" +"Suite à l'acceptation de la :pep:`468`, l'ordre des arguments nommés passés " +"au constructeur et à la méthode :meth:`update` de :class:`OrderedDict` est " +"conservé." -#: ../Doc/library/collections.rst:1078 +#: ../Doc/library/collections.rst:1120 msgid ":class:`OrderedDict` Examples and Recipes" -msgstr "" +msgstr "Exemples et cas pratiques utilisant :class:`OrderDict`" -#: ../Doc/library/collections.rst:1080 +#: ../Doc/library/collections.rst:1122 msgid "" -"Since an ordered dictionary remembers its insertion order, it can be used in " -"conjunction with sorting to make a sorted dictionary::" +"It is straightforward to create an ordered dictionary variant that remembers " +"the order the keys were *last* inserted. If a new entry overwrites an " +"existing entry, the original insertion position is changed and moved to the " +"end::" msgstr "" +"Il est facile de créer une variante de dictionnaire ordonné qui retient " +"l'ordre dans lequel les clés ont été insérées *en dernier*. Si une nouvelle " +"entrée écrase une existante, la position d'insertion d'origine est modifiée " +"et déplacée à la fin ::" -#: ../Doc/library/collections.rst:1098 +#: ../Doc/library/collections.rst:1134 msgid "" -"The new sorted dictionaries maintain their sort order when entries are " -"deleted. But when new keys are added, the keys are appended to the end and " -"the sort is not maintained." +"An :class:`OrderedDict` would also be useful for implementing variants of :" +"func:`functools.lru_cache`::" msgstr "" +"Un :class:`OrderedDict` peut aussi être utile pour implémenter des variantes " +"de :func:`functools.lru_cache` ::" -#: ../Doc/library/collections.rst:1102 -msgid "" -"It is also straight-forward to create an ordered dictionary variant that " -"remembers the order the keys were *last* inserted. If a new entry overwrites " -"an existing entry, the original insertion position is changed and moved to " -"the end::" -msgstr "" - -#: ../Doc/library/collections.rst:1115 -msgid "" -"An ordered dictionary can be combined with the :class:`Counter` class so " -"that the counter remembers the order elements are first encountered::" -msgstr "" - -#: ../Doc/library/collections.rst:1129 +#: ../Doc/library/collections.rst:1157 msgid ":class:`UserDict` objects" -msgstr "" +msgstr "Objets :class:`UserDict`" -#: ../Doc/library/collections.rst:1131 +#: ../Doc/library/collections.rst:1159 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 " "subclass directly from :class:`dict`; however, this class can be easier to " "work with because the underlying dictionary is accessible as an attribute." msgstr "" +"La classe :class:`UserDict` se comporte comme une surcouche autour des " +"dictionnaires. L'utilité de cette classe est réduite car on peut maintenant " +"hériter directement de :class:`dict`. Cependant, il peut être plus facile de " +"travailler avec celle-ci car le dictionnaire sous-jacent est accessible " +"comme attribut." -#: ../Doc/library/collections.rst:1139 +#: ../Doc/library/collections.rst:1167 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 :" @@ -1078,38 +1577,55 @@ msgid "" "initialized with its contents; note that a reference to *initialdata* will " "not be kept, allowing it be used for other purposes." msgstr "" +"Classe simulant un dictionnaire. Les instances de :class:`UserDict` " +"possèdent un attribut :attr:`data` où est stocké leur contenu sous forme de " +"dictionnaire natif. Si *initialdata* est spécifié, alors :attr:`data` est " +"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:1145 +#: ../Doc/library/collections.rst:1173 msgid "" "In addition to supporting the methods and operations of mappings, :class:" "`UserDict` instances provide the following attribute:" 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:1150 +#: ../Doc/library/collections.rst:1178 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:1156 +#: ../Doc/library/collections.rst:1184 msgid ":class:`UserList` objects" -msgstr "" +msgstr "Objets :class:`UserList`" -#: ../Doc/library/collections.rst:1158 +#: ../Doc/library/collections.rst:1186 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 " "existing methods or add new ones. In this way, one can add new behaviors to " "lists." msgstr "" +"Cette classe agit comme une surcouche autour des objets ``list``. C'est une " +"classe mère utile pour vos classes listes-compatibles qui peuvent en hériter " +"et surcharger les méthodes existantes ou en ajouter de nouvelles. Ainsi, on " +"peut ajouter de nouveaux comportements aux listes." -#: ../Doc/library/collections.rst:1163 +#: ../Doc/library/collections.rst:1191 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 " "work with because the underlying list is accessible as an attribute." msgstr "" +"L'utilité de cette classe a été partiellement réduite par la possibilité " +"d'hériter directement de :class:`list`. Cependant, il peut être plus facile " +"de travailler avec cette classe car la liste sous-jacente est accessible via " +"un attribut." -#: ../Doc/library/collections.rst:1169 +#: ../Doc/library/collections.rst:1197 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:" @@ -1117,20 +1633,29 @@ msgid "" "of *list*, defaulting to the empty list ``[]``. *list* can be any iterable, " "for example a real Python list or a :class:`UserList` object." msgstr "" +"Classe simulant une liste. Les instances de :class:`UserList` possèdent un " +"attribut :attr:`UserList` où est stocké leur contenu sous forme de liste " +"native. Il est initialement une copie de *list*, ou ``[]`` par défaut. " +"*list* peut être un itérable, par exemple une liste native ou un objet :" +"class:`UserList`." -#: ../Doc/library/collections.rst:1175 +#: ../Doc/library/collections.rst:1203 msgid "" "In addition to supporting the methods and operations of mutable sequences, :" "class:`UserList` instances provide the following attribute:" 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:1180 +#: ../Doc/library/collections.rst:1208 msgid "" "A real :class:`list` object used to store the contents of the :class:" "`UserList` class." msgstr "" +"Un objet :class:`list` natif utilisé pour stocker le contenu de la classe :" +"class:`UserList`." -#: ../Doc/library/collections.rst:1183 +#: ../Doc/library/collections.rst:1211 msgid "" "**Subclassing requirements:** Subclasses of :class:`UserList` are expected " "to offer a constructor which can be called with either no arguments or one " @@ -1139,28 +1664,43 @@ msgid "" "constructor can be called with a single parameter, which is a sequence " "object used as a data source." msgstr "" +"**Prérequis pour l'héritage :** Les sous-classe de :class:`UserList` doivent " +"implémenter un constructeur qui peut être appelé avec zéro ou un argument. " +"Les opérations sur les listes qui renvoient une nouvelle séquence essayent " +"de créer une instance de la classe courante. C'est pour cela que le " +"constructeur doit pouvoir être appelé avec un unique paramètre, un objet " +"séquence utilisé comme source de données." -#: ../Doc/library/collections.rst:1190 +#: ../Doc/library/collections.rst:1218 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 " "consult the sources for information about the methods which need to be " "provided in that case." msgstr "" +"Si une classe fille ne remplit pas cette condition, toutes les méthodes " +"spéciales gérées par cette classe devront être implémentées à nouveau. Merci " +"de consulter les sources pour obtenir des informations sur les méthodes qui " +"doivent être fournies dans ce cas." -#: ../Doc/library/collections.rst:1196 +#: ../Doc/library/collections.rst:1224 msgid ":class:`UserString` objects" -msgstr "" +msgstr "Objets :class:`UserString`" -#: ../Doc/library/collections.rst:1198 +#: ../Doc/library/collections.rst:1226 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 " "directly from :class:`str`; however, this class can be easier to work with " "because the underlying string is accessible as an attribute." msgstr "" +"La classe :class:`UserString` agit comme une surcouche autour des objets " +"``str``. L'utilité de cette classe a été partiellement réduite par la " +"possibilité d'hériter directement de :class:`str`. Cependant, il peut être " +"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:1206 +#: ../Doc/library/collections.rst:1234 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 " @@ -1168,21 +1708,96 @@ msgid "" "to a copy of *seq*. The *seq* argument can be any object which can be " "converted into a string using the built-in :func:`str` function." msgstr "" +"Classe simulant une chaîne de caractères. Les instances de :class:" +"`UserString` possèdent un attribut :attr:`data` où est stocké leur contenu " +"sous forme de chaîne de caractères native. Le contenu de l'instance est " +"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:1213 +#: ../Doc/library/collections.rst:1241 msgid "" "In addition to supporting the methods and operations of strings, :class:" "`UserString` instances provide the following attribute:" 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:1218 +#: ../Doc/library/collections.rst:1246 msgid "" "A real :class:`str` object used to store the contents of the :class:" "`UserString` class." msgstr "" +"Un objet :class:`str` natif utilisé pour stocker le contenu de la classe :" +"class:`UserString`." -#: ../Doc/library/collections.rst:1221 +#: ../Doc/library/collections.rst:1249 msgid "" "New methods ``__getnewargs__``, ``__rmod__``, ``casefold``, ``format_map``, " "``isprintable``, and ``maketrans``." msgstr "" +"Nouvelles méthodes ``__getnewargs__``, ``__rmod__``, ``casefold``, " +"``format_map``, ``isprintable`` et ``maketrans``." + +#~ msgid "" +#~ "`Recipe for named tuple abstract base class with a metaclass mix-in " +#~ "`_ by Jan Kaliszewski. Besides providing an :" +#~ "term:`abstract base class` for named tuples, it also supports an " +#~ "alternate :term:`metaclass`-based constructor that is convenient for use " +#~ "cases where named tuples are being subclassed." +#~ msgstr "" +#~ "`Cas pratique : classe de base abstraite de tuple nommé grâce à une " +#~ "métaclasse mixin `_ par Jan " +#~ "Kaliszewski. En plus de fournir une :term:`abstract base class` pour les " +#~ "tuples nommés, elle gère un constructeur de :term:`metaclass` pratique " +#~ "dans les cas où l'on hérite de tuples nommés." + +#~ msgid "" +#~ "Ordered dictionaries are just like regular dictionaries but they remember " +#~ "the order that items were inserted. When iterating over an ordered " +#~ "dictionary, the items are returned in the order their keys were first " +#~ "added." +#~ msgstr "" +#~ "En plus de se comporter comme des dictionnaires natifs, les dictionnaires " +#~ "ordonnés mémorisent l'ordre dans lequel les éléments ont été insérés. " +#~ "Quand on itère sur un dictionnaire ordonné, les éléments sont renvoyés " +#~ "dans l'ordre d'insertion des clés." + +#~ msgid "" +#~ "Return an instance of a dict subclass, supporting the usual :class:`dict` " +#~ "methods. An *OrderedDict* is a dict that remembers the order that keys " +#~ "were first inserted. If a new entry overwrites an existing entry, the " +#~ "original insertion position is left unchanged. Deleting an entry and " +#~ "reinserting it will move it to the end." +#~ msgstr "" +#~ "Renvoie une instance d'une sous-classe de ``dict`` qui gère les méthodes " +#~ "usuelles de :class:`dict`. Un objet *OrderedDict* est un dictionnaire qui " +#~ "mémorise l'ordre d'insertion des clés. Si une nouvelle entrée en écrase " +#~ "une autre, sa position reste inchangé. Si une entrée est supprimée puis " +#~ "réinsérée, elle est placée en dernière position." + +#~ msgid "" +#~ "Since an ordered dictionary remembers its insertion order, it can be used " +#~ "in conjunction with sorting to make a sorted dictionary::" +#~ msgstr "" +#~ "Puisqu'un dictionnaire ordonné mémorise l'ordre d'insertion de ses " +#~ "éléments, il peut être utilisé conjointement avec un classement pour " +#~ "créer un dictionnaire trié ::" + +#~ msgid "" +#~ "The new sorted dictionaries maintain their sort order when entries are " +#~ "deleted. But when new keys are added, the keys are appended to the end " +#~ "and the sort is not maintained." +#~ msgstr "" +#~ "Les nouveaux dictionnaires triés gardent leur classement quand des " +#~ "entrées sont supprimées, mais si de nouvelles clés sont ajoutées, celles-" +#~ "ci sont ajoutée à la fin et le classement est perdu." + +#~ msgid "" +#~ "An ordered dictionary can be combined with the :class:`Counter` class so " +#~ "that the counter remembers the order elements are first encountered::" +#~ msgstr "" +#~ "Un dictionnaire ordonné peut être combiné avec la classe :class:`Counter` " +#~ "afin de mémoriser l'ordre dans lequel les éléments ont été ajoutés pour " +#~ "la première fois ::" diff --git a/library/colorsys.po b/library/colorsys.po index 4f39014ac..21bd2a53c 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/colorsys.rst:2 msgid ":mod:`colorsys` --- Conversions between color systems" -msgstr ":mod:`colorsys` --- Conversions entre les systèmes de couleurs" +msgstr ":mod:`colorsys` — Conversions entre les systèmes de couleurs" #: ../Doc/library/colorsys.rst:9 msgid "**Source code:** :source:`Lib/colorsys.py`" diff --git a/library/compileall.po b/library/compileall.po index 4ab68697c..e4b841d36 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \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,64 +136,93 @@ 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 "" -"Control how the generated pycs will be invalidated at runtime. The default " -"setting, ``timestamp``, means that ``.pyc`` files with the source timestamp " -"and size embedded will be generated. The ``checked-hash`` and ``unchecked-" -"hash`` values cause hash-based pycs to be generated. Hash-based pycs embed a " -"hash of the source file contents rather than a timestamp. See :ref:`pyc-" +"Control how the generated byte-code files are invalidated at runtime. The " +"``timestamp`` value, means that ``.pyc`` files with the source timestamp and " +"size embedded will be generated. The ``checked-hash`` and ``unchecked-hash`` " +"values cause hash-based pycs to be generated. Hash-based pycs embed a hash " +"of the source file contents rather than a timestamp. See :ref:`pyc-" "invalidation` for more information on how Python validates bytecode cache " -"files at runtime." -msgstr "" +"files at runtime. The default is ``timestamp`` if the :envvar:" +"`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:96 +#: ../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:99 +#: ../Doc/library/compileall.rst:102 msgid "" "Added the ``-j``, ``-r``, and ``-qq`` options. ``-q`` option was changed " "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:104 -msgid "Added the ``--invalidation-mode`` parameter." -msgstr "" +#: ../Doc/library/compileall.rst:107 +msgid "Added the ``--invalidation-mode`` option." +msgstr "ajout de l'option ``--invalidation-mode``." -#: ../Doc/library/compileall.rst:108 +#: ../Doc/library/compileall.rst:111 msgid "" "There is no command-line option to control the optimization level used by " "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:113 +#: ../Doc/library/compileall.rst:116 msgid "Public functions" -msgstr "" +msgstr "Fonctions publiques" -#: ../Doc/library/compileall.rst:117 +#: ../Doc/library/compileall.rst:120 msgid "" "Recursively descend the directory tree named by *dir*, compiling all :file:`." "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:121 +#: ../Doc/library/compileall.rst:124 msgid "" "The *maxlevels* parameter is used to limit the depth of the recursion; it " "defaults to ``10``." msgstr "" -#: ../Doc/library/compileall.rst:124 +#: ../Doc/library/compileall.rst:127 msgid "" "If *ddir* is given, it is prepended to the path to each file being compiled " "for use in compilation time tracebacks, and is also compiled in to the byte-" @@ -166,28 +230,39 @@ 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:130 +#: ../Doc/library/compileall.rst:133 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:133 +#: ../Doc/library/compileall.rst:136 msgid "" "If *rx* is given, its search method is called on the complete path to each " "file considered for compilation, and if it returns a true value, the file is " "skipped." msgstr "" -#: ../Doc/library/compileall.rst:137 ../Doc/library/compileall.rst:194 +#: ../Doc/library/compileall.rst:140 ../Doc/library/compileall.rst:197 msgid "" "If *quiet* is ``False`` or ``0`` (the default), the filenames and other " "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:141 ../Doc/library/compileall.rst:198 +#: ../Doc/library/compileall.rst:144 ../Doc/library/compileall.rst:201 msgid "" "If *legacy* is true, byte-code files are written to their legacy locations " "and names, which may overwrite byte-code files created by another version of " @@ -195,14 +270,20 @@ 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:147 ../Doc/library/compileall.rst:204 +#: ../Doc/library/compileall.rst:150 ../Doc/library/compileall.rst:207 msgid "" "*optimize* specifies the optimization level for the compiler. It is passed " "to the built-in :func:`compile` function." msgstr "" -#: ../Doc/library/compileall.rst:150 +#: ../Doc/library/compileall.rst:153 msgid "" "The argument *workers* specifies how many workers are used to compile files " "in parallel. The default is to not use multiple workers. If the platform " @@ -211,49 +292,56 @@ msgid "" "a :exc:`ValueError` will be raised." msgstr "" -#: ../Doc/library/compileall.rst:156 ../Doc/library/compileall.rst:207 +#: ../Doc/library/compileall.rst:159 ../Doc/library/compileall.rst:210 msgid "" "*invalidation_mode* should be a member of the :class:`py_compile." "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:160 ../Doc/library/compileall.rst:233 +#: ../Doc/library/compileall.rst:163 ../Doc/library/compileall.rst:236 msgid "Added the *legacy* and *optimize* parameter." -msgstr "" +msgstr "ajout des paramètres *legacy* et *optimize*." -#: ../Doc/library/compileall.rst:163 +#: ../Doc/library/compileall.rst:166 msgid "Added the *workers* parameter." -msgstr "" - -#: ../Doc/library/compileall.rst:166 ../Doc/library/compileall.rst:213 -#: ../Doc/library/compileall.rst:236 -msgid "*quiet* parameter was changed to a multilevel value." -msgstr "" +msgstr "ajout du paramètre *workers*." #: ../Doc/library/compileall.rst:169 ../Doc/library/compileall.rst:216 #: ../Doc/library/compileall.rst:239 +msgid "*quiet* parameter was changed to a multilevel value." +msgstr "le paramètre *quiet* peut prendre plusieurs niveaux." + +#: ../Doc/library/compileall.rst:172 ../Doc/library/compileall.rst:219 +#: ../Doc/library/compileall.rst:242 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:173 +#: ../Doc/library/compileall.rst:176 msgid "Accepts a :term:`path-like object`." msgstr "Accepte un :term:`path-like object`." -#: ../Doc/library/compileall.rst:176 ../Doc/library/compileall.rst:220 -#: ../Doc/library/compileall.rst:243 +#: ../Doc/library/compileall.rst:179 ../Doc/library/compileall.rst:223 +#: ../Doc/library/compileall.rst:246 msgid "The *invalidation_mode* parameter was added." -msgstr "" +msgstr "ajout du paramètre *invalidation_mode*." -#: ../Doc/library/compileall.rst:181 +#: ../Doc/library/compileall.rst:184 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:184 +#: ../Doc/library/compileall.rst:187 msgid "" "If *ddir* is given, it is prepended to the path to the file being compiled " "for use in compilation time tracebacks, and is also compiled in to the byte-" @@ -261,39 +349,53 @@ 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:190 +#: ../Doc/library/compileall.rst:193 msgid "" "If *rx* is given, its search method is passed the full path name to the file " "being compiled, and if it returns a true value, the file is not compiled and " "``True`` is returned." msgstr "" -#: ../Doc/library/compileall.rst:225 +#: ../Doc/library/compileall.rst:228 msgid "" "Byte-compile all the :file:`.py` files found along ``sys.path``. Return a " "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:228 +#: ../Doc/library/compileall.rst:231 msgid "" "If *skip_curdir* is true (the default), the current directory is not " "included in the search. All other parameters are passed to the :func:" "`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:246 +#: ../Doc/library/compileall.rst:249 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:263 +#: ../Doc/library/compileall.rst:266 msgid "Module :mod:`py_compile`" -msgstr "" +msgstr "Module :mod:`py_compile`" -#: ../Doc/library/compileall.rst:264 +#: ../Doc/library/compileall.rst:267 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 6224bbfd2..59e1e2e93 100644 --- a/library/concurrency.po +++ b/library/concurrency.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-07-29 18:58+0200\n" +"PO-Revision-Date: 2019-03-11 14:38+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -28,9 +28,10 @@ msgid "" msgstr "" "Les modules documentés dans ce chapitre fournissent des outils d'exécution " "concourante de code. Le choix de l'outil approprié dépend de la tâche à " -"exécuter (limitée par le CPU, ou limitée par la mémoire) et du style de " -"développement désiré (coopération gérée par des évènements ou multitâche " -"préemptif). En voici un survol :" +"exécuter (limitée par le CPU (*CPU bound*), ou limitée la vitesse des " +"entrées-sorties (*IO bound*)) et du style de développement désiré " +"(coopération gérée par des évènements ou multitâche préemptif). En voici un " +"survol :" #: ../Doc/library/concurrency.rst:25 msgid "The following are support modules for some of the above services:" diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index 39d04ca6d..df8fcbb70 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -142,7 +142,7 @@ msgstr "" #: ../Doc/library/concurrent.futures.rst:123 msgid "And::" -msgstr "Et : ::" +msgstr "Et ::" #: ../Doc/library/concurrent.futures.rst:137 msgid "" @@ -156,7 +156,7 @@ msgid "" "worker thread; *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.thread.BrokenThreadPool`, 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:146 @@ -170,13 +170,13 @@ msgstr "" #: ../Doc/library/concurrent.futures.rst:154 msgid "" -"The *thread_name_prefix* argument was added to allow users to control the " -"threading.Thread names for worker threads created by the pool for easier " -"debugging." +"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:239 +#: ../Doc/library/concurrent.futures.rst:243 msgid "Added the *initializer* and *initargs* arguments." msgstr "" @@ -216,21 +216,24 @@ msgid "" "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. *mp_context* can be a multiprocessing context or None. It 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." msgstr "" -#: ../Doc/library/concurrent.futures.rst:223 +#: ../Doc/library/concurrent.futures.rst:227 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.thread.BrokenThreadPool`, as " +"jobs will raise a :exc:`~concurrent.futures.process.BrokenProcessPool`, as " "well any attempt to submit more jobs to the pool." msgstr "" -#: ../Doc/library/concurrent.futures.rst:229 +#: ../Doc/library/concurrent.futures.rst:233 msgid "" "When one of the worker processes terminates abruptly, a :exc:" "`BrokenProcessPool` error is now raised. Previously, behaviour was " @@ -238,56 +241,57 @@ msgid "" "or deadlock." msgstr "" -#: ../Doc/library/concurrent.futures.rst:235 +#: ../Doc/library/concurrent.futures.rst:239 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:245 +#: ../Doc/library/concurrent.futures.rst:249 msgid "ProcessPoolExecutor Example" msgstr "" -#: ../Doc/library/concurrent.futures.rst:279 +#: ../Doc/library/concurrent.futures.rst:283 msgid "Future Objects" msgstr "" -#: ../Doc/library/concurrent.futures.rst:281 +#: ../Doc/library/concurrent.futures.rst:285 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:286 +#: ../Doc/library/concurrent.futures.rst:290 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:292 +#: ../Doc/library/concurrent.futures.rst:296 msgid "" -"Attempt to cancel the call. If the call is currently being executed and " -"cannot be cancelled then the method will return ``False``, otherwise the " -"call will be cancelled and the method will return ``True``." +"Attempt to cancel the call. If the call is currently being executed or " +"finished running and cannot be cancelled then the method will return " +"``False``, otherwise the call will be cancelled and the method will return " +"``True``." msgstr "" -#: ../Doc/library/concurrent.futures.rst:298 +#: ../Doc/library/concurrent.futures.rst:303 msgid "Return ``True`` if the call was successfully cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:302 +#: ../Doc/library/concurrent.futures.rst:307 msgid "" "Return ``True`` if the call is currently being executed and cannot be " "cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:307 +#: ../Doc/library/concurrent.futures.rst:312 msgid "" "Return ``True`` if the call was successfully cancelled or finished running." msgstr "" -#: ../Doc/library/concurrent.futures.rst:312 +#: ../Doc/library/concurrent.futures.rst:317 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 " @@ -296,18 +300,18 @@ msgid "" "``None``, there is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:319 -#: ../Doc/library/concurrent.futures.rst:333 +#: ../Doc/library/concurrent.futures.rst:324 +#: ../Doc/library/concurrent.futures.rst:338 msgid "" "If the future is cancelled before completing then :exc:`.CancelledError` " "will be raised." msgstr "" -#: ../Doc/library/concurrent.futures.rst:322 +#: ../Doc/library/concurrent.futures.rst:327 msgid "If the call raised, this method will raise the same exception." msgstr "" -#: ../Doc/library/concurrent.futures.rst:326 +#: ../Doc/library/concurrent.futures.rst:331 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 " @@ -316,18 +320,18 @@ msgid "" "*timeout* is not specified or ``None``, there is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:336 +#: ../Doc/library/concurrent.futures.rst:341 msgid "If the call completed without raising, ``None`` is returned." msgstr "" -#: ../Doc/library/concurrent.futures.rst:340 +#: ../Doc/library/concurrent.futures.rst:345 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:344 +#: ../Doc/library/concurrent.futures.rst:349 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 " @@ -336,26 +340,26 @@ msgid "" "behavior is undefined." msgstr "" -#: ../Doc/library/concurrent.futures.rst:350 +#: ../Doc/library/concurrent.futures.rst:355 msgid "" "If the future has already completed or been cancelled, *fn* will be called " "immediately." msgstr "" -#: ../Doc/library/concurrent.futures.rst:353 +#: ../Doc/library/concurrent.futures.rst:358 msgid "" "The following :class:`Future` methods are meant for use in unit tests and :" "class:`Executor` implementations." msgstr "" -#: ../Doc/library/concurrent.futures.rst:358 +#: ../Doc/library/concurrent.futures.rst:363 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:362 +#: ../Doc/library/concurrent.futures.rst:367 msgid "" "If the method returns ``False`` then the :class:`Future` was cancelled, i." "e. :meth:`Future.cancel` was called and returned `True`. Any threads " @@ -363,149 +367,157 @@ msgid "" "or :func:`wait`) will be woken up." msgstr "" -#: ../Doc/library/concurrent.futures.rst:367 +#: ../Doc/library/concurrent.futures.rst:372 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:371 +#: ../Doc/library/concurrent.futures.rst:376 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:377 +#: ../Doc/library/concurrent.futures.rst:382 msgid "" "Sets the result of the work associated with the :class:`Future` to *result*." msgstr "" -#: ../Doc/library/concurrent.futures.rst:380 -#: ../Doc/library/concurrent.futures.rst:388 +#: ../Doc/library/concurrent.futures.rst:385 +#: ../Doc/library/concurrent.futures.rst:393 msgid "" "This method should only be used by :class:`Executor` implementations and " "unit tests." msgstr "" -#: ../Doc/library/concurrent.futures.rst:385 +#: ../Doc/library/concurrent.futures.rst:390 msgid "" "Sets the result of the work associated with the :class:`Future` to the :" "class:`Exception` *exception*." msgstr "" -#: ../Doc/library/concurrent.futures.rst:393 +#: ../Doc/library/concurrent.futures.rst:398 msgid "Module Functions" msgstr "" -#: ../Doc/library/concurrent.futures.rst:397 +#: ../Doc/library/concurrent.futures.rst:402 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 " "sets. The first set, named ``done``, contains the futures that completed " -"(finished or were cancelled) before the wait completed. The second set, " -"named ``not_done``, contains uncompleted futures." +"(finished or cancelled futures) before the wait completed. The second set, " +"named ``not_done``, contains the futures that did not complete (pending or " +"running futures)." msgstr "" -#: ../Doc/library/concurrent.futures.rst:403 +#: ../Doc/library/concurrent.futures.rst:409 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:407 +#: ../Doc/library/concurrent.futures.rst:413 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 :" -#: ../Doc/library/concurrent.futures.rst:413 +#: ../Doc/library/concurrent.futures.rst:419 msgid "Constant" msgstr "Constante" -#: ../Doc/library/concurrent.futures.rst:413 +#: ../Doc/library/concurrent.futures.rst:419 msgid "Description" msgstr "Description" -#: ../Doc/library/concurrent.futures.rst:415 +#: ../Doc/library/concurrent.futures.rst:421 msgid ":const:`FIRST_COMPLETED`" msgstr ":const:`FIRST_COMPLETED`" -#: ../Doc/library/concurrent.futures.rst:415 +#: ../Doc/library/concurrent.futures.rst:421 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:418 +#: ../Doc/library/concurrent.futures.rst:424 msgid ":const:`FIRST_EXCEPTION`" msgstr ":const:`FIRST_EXCEPTION`" -#: ../Doc/library/concurrent.futures.rst:418 +#: ../Doc/library/concurrent.futures.rst:424 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:" "`ALL_COMPLETED`." msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine en levant une " +"exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" +"`ALL_COMPLETED`." -#: ../Doc/library/concurrent.futures.rst:424 +#: ../Doc/library/concurrent.futures.rst:430 msgid ":const:`ALL_COMPLETED`" msgstr ":const:`ALL_COMPLETED`" -#: ../Doc/library/concurrent.futures.rst:424 +#: ../Doc/library/concurrent.futures.rst:430 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:430 +#: ../Doc/library/concurrent.futures.rst:436 msgid "" "Returns an iterator over the :class:`Future` instances (possibly created by " "different :class:`Executor` instances) given by *fs* that yields futures as " -"they complete (finished or were cancelled). Any futures given by *fs* that " -"are duplicated will be returned once. Any futures that completed before :" -"func:`as_completed` is called will be yielded first. The returned iterator " -"raises a :exc:`concurrent.futures.TimeoutError` if :meth:`~iterator." +"they complete (finished or cancelled futures). Any futures given by *fs* " +"that are duplicated will be returned once. Any futures that completed " +"before :func:`as_completed` is called will be yielded first. The returned " +"iterator raises a :exc:`concurrent.futures.TimeoutError` if :meth:`~iterator." "__next__` is called and the result isn't available after *timeout* seconds " "from the original call to :func:`as_completed`. *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:444 +#: ../Doc/library/concurrent.futures.rst:450 msgid ":pep:`3148` -- futures - execute computations asynchronously" msgstr "" -#: ../Doc/library/concurrent.futures.rst:444 +#: ../Doc/library/concurrent.futures.rst:450 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." msgstr "" -#: ../Doc/library/concurrent.futures.rst:449 +#: ../Doc/library/concurrent.futures.rst:455 msgid "Exception classes" msgstr "" -#: ../Doc/library/concurrent.futures.rst:455 +#: ../Doc/library/concurrent.futures.rst:461 msgid "Raised when a future is cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:459 +#: ../Doc/library/concurrent.futures.rst:465 msgid "Raised when a future operation exceeds the given timeout." msgstr "" -#: ../Doc/library/concurrent.futures.rst:463 +#: ../Doc/library/concurrent.futures.rst:469 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:473 +#: ../Doc/library/concurrent.futures.rst:479 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:483 +#: ../Doc/library/concurrent.futures.rst:489 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/configparser.po b/library/configparser.po index 37f07558e..950f8a656 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-04-10 09:35+0200\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/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 msgid "**Source code:** :source:`Lib/configparser.py`" @@ -29,40 +29,55 @@ msgid "" "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 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 msgid "Module :mod:`shlex`" -msgstr "" +msgstr "Module :mod:`shlex`" #: ../Doc/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 msgid "Module :mod:`json`" -msgstr "" +msgstr "Module :mod:`json`" #: ../Doc/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 msgid "Quick Start" -msgstr "" +msgstr "Premiers pas" #: ../Doc/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 msgid "" @@ -72,6 +87,11 @@ 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 msgid "" @@ -79,12 +99,20 @@ msgid "" "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 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 msgid "" @@ -93,10 +121,15 @@ msgid "" "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 msgid "Supported Datatypes" -msgstr "" +msgstr "Types de données prises en charge" #: ../Doc/library/configparser.rst:142 msgid "" @@ -104,6 +137,10 @@ msgid "" "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 msgid "" @@ -115,6 +152,16 @@ 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 msgid "" @@ -123,16 +170,22 @@ msgid "" "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 msgid "Fallback Values" -msgstr "" +msgstr "Valeurs de substitution" #: ../Doc/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 msgid "" @@ -142,6 +195,11 @@ 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 msgid "" @@ -150,6 +208,10 @@ msgid "" "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 msgid "" @@ -157,10 +219,13 @@ msgid "" "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 msgid "Supported INI File Structure" -msgstr "" +msgstr "Structure des fichiers *INI* prise en change" #: ../Doc/library/configparser.rst:231 msgid "" @@ -173,6 +238,17 @@ 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 msgid "" @@ -180,14 +256,18 @@ msgid "" "(``#`` 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:305 +#: ../Doc/library/configparser.rst:244 ../Doc/library/configparser.rst:307 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/configparser.rst:292 msgid "Interpolation of values" -msgstr "" +msgstr "Interpolation des valeurs" #: ../Doc/library/configparser.rst:294 msgid "" @@ -195,16 +275,24 @@ msgid "" "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:300 +#: ../Doc/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:315 +#: ../Doc/library/configparser.rst:317 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:322 +#: ../Doc/library/configparser.rst:324 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/" "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:328 +#: ../Doc/library/configparser.rst:332 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:335 +#: ../Doc/library/configparser.rst:339 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:345 +#: ../Doc/library/configparser.rst:349 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:367 +#: ../Doc/library/configparser.rst:371 msgid "Mapping Protocol Access" -msgstr "" +msgstr "Protocole d'accès associatif" -#: ../Doc/library/configparser.rst:371 +#: ../Doc/library/configparser.rst:375 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:376 +#: ../Doc/library/configparser.rst:380 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:382 +#: ../Doc/library/configparser.rst:386 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:387 +#: ../Doc/library/configparser.rst:391 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,41 +402,58 @@ 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:395 +#: ../Doc/library/configparser.rst:399 msgid "" "All sections include ``DEFAULTSECT`` values as well which means that ``." "clear()`` on a section may not leave the section visibly empty. This is " "because default values cannot be deleted from the section (because " "technically they are not there). If they are overridden in the section, " "deleting causes the default value to be visible again. Trying to delete a " -"default value causes a ``KeyError``." +"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:402 +#: ../Doc/library/configparser.rst:406 msgid "``DEFAULTSECT`` cannot be removed from the parser:" -msgstr "" +msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée ::" -#: ../Doc/library/configparser.rst:404 -msgid "trying to delete it raises ``ValueError``," -msgstr "" +#: ../Doc/library/configparser.rst:408 +msgid "trying to delete it raises :exc:`ValueError`," +msgstr "l'exception :exc:`ValueError` est levée si on essaye de la supprimer ;" -#: ../Doc/library/configparser.rst:406 +#: ../Doc/library/configparser.rst:410 msgid "``parser.clear()`` leaves it intact," -msgstr "" +msgstr "appeler ``parser.clear()`` la laisse intacte ;" -#: ../Doc/library/configparser.rst:408 +#: ../Doc/library/configparser.rst:412 msgid "``parser.popitem()`` never returns it." -msgstr "" +msgstr "appeler ```parser.popitem()`` ne la renvoie jamais." -#: ../Doc/library/configparser.rst:410 +#: ../Doc/library/configparser.rst:414 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:414 +#: ../Doc/library/configparser.rst:418 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:421 +#: ../Doc/library/configparser.rst:425 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:427 +#: ../Doc/library/configparser.rst:431 msgid "Customizing Parser Behaviour" -msgstr "" +msgstr "Personnalisation du comportement de l'analyseur" -#: ../Doc/library/configparser.rst:429 +#: ../Doc/library/configparser.rst:433 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,36 +492,53 @@ 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:435 +#: ../Doc/library/configparser.rst:439 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:438 +#: ../Doc/library/configparser.rst:442 msgid "*defaults*, default value: ``None``" -msgstr "" +msgstr "*defaults*, valeur par défaut : ``None``" -#: ../Doc/library/configparser.rst:440 +#: ../Doc/library/configparser.rst:444 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:445 +#: ../Doc/library/configparser.rst:449 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:448 +#: ../Doc/library/configparser.rst:452 msgid "*dict_type*, default value: :class:`collections.OrderedDict`" msgstr "" -#: ../Doc/library/configparser.rst:450 +#: ../Doc/library/configparser.rst:454 msgid "" "This option has a major impact on how the mapping protocol will behave and " "how the written configuration files look. With the default ordered " @@ -378,62 +546,74 @@ msgid "" "parser. Same goes for options within sections." msgstr "" -#: ../Doc/library/configparser.rst:455 +#: ../Doc/library/configparser.rst:459 msgid "" "An alternative dictionary type can be used for example to sort sections and " "options on write-back. You can also use a regular dictionary for " "performance reasons." msgstr "" -#: ../Doc/library/configparser.rst:459 +#: ../Doc/library/configparser.rst:463 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 may be random. For example:" +"of the keys will be ordered because dict preserves order from Python 3.7. " +"For example:" msgstr "" -#: ../Doc/library/configparser.rst:481 -msgid "In these operations you need to use an ordered dictionary as well:" -msgstr "" - -#: ../Doc/library/configparser.rst:512 +#: ../Doc/library/configparser.rst:486 msgid "*allow_no_value*, default value: ``False``" -msgstr "" +msgstr "*allow_no_value*, valeur par défaut : ``False``" -#: ../Doc/library/configparser.rst:514 +#: ../Doc/library/configparser.rst:488 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:549 +#: ../Doc/library/configparser.rst:523 msgid "*delimiters*, default value: ``('=', ':')``" -msgstr "" +msgstr "*delimiters*, valeur par défaut : ``('=', ':')``" -#: ../Doc/library/configparser.rst:551 +#: ../Doc/library/configparser.rst:525 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:555 +#: ../Doc/library/configparser.rst:529 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:558 +#: ../Doc/library/configparser.rst:532 msgid "*comment_prefixes*, default value: ``('#', ';')``" msgstr "" +"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', " +"';')``" -#: ../Doc/library/configparser.rst:560 +#: ../Doc/library/configparser.rst:534 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:562 +#: ../Doc/library/configparser.rst:536 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 " @@ -442,14 +622,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:569 +#: ../Doc/library/configparser.rst:543 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:573 +#: ../Doc/library/configparser.rst:547 msgid "" "Please note that config parsers don't support escaping of comment prefixes " "so using *inline_comment_prefixes* may prevent users from specifying option " @@ -458,30 +649,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:619 +#: ../Doc/library/configparser.rst:593 msgid "*strict*, default value: ``True``" -msgstr "" +msgstr "*scrict*, valeur par défaut : ``True``" -#: ../Doc/library/configparser.rst:621 +#: ../Doc/library/configparser.rst:595 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:626 +#: ../Doc/library/configparser.rst:600 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:630 +#: ../Doc/library/configparser.rst:604 msgid "*empty_lines_in_values*, default value: ``True``" -msgstr "" +msgstr "*empty_lines_in_values*, valeur par défaut : ``True``" -#: ../Doc/library/configparser.rst:632 +#: ../Doc/library/configparser.rst:606 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 " @@ -490,8 +695,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:647 +#: ../Doc/library/configparser.rst:621 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 " @@ -499,14 +711,22 @@ 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:653 +#: ../Doc/library/configparser.rst:627 msgid "" "*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:656 +#: ../Doc/library/configparser.rst:630 msgid "" "The convention of allowing a special section of default values for other " "sections or interpolation purposes is a powerful concept of this library, " @@ -520,11 +740,11 @@ msgid "" "files from one format to another)." msgstr "" -#: ../Doc/library/configparser.rst:667 +#: ../Doc/library/configparser.rst:641 msgid "*interpolation*, default value: ``configparser.BasicInterpolation``" msgstr "" -#: ../Doc/library/configparser.rst:669 +#: ../Doc/library/configparser.rst:643 msgid "" "Interpolation behaviour may be customized by providing a custom handler " "through the *interpolation* argument. ``None`` can be used to turn off " @@ -534,11 +754,11 @@ msgid "" "`RawConfigParser` has a default value of ``None``." msgstr "" -#: ../Doc/library/configparser.rst:676 +#: ../Doc/library/configparser.rst:650 msgid "*converters*, default value: not set" msgstr "" -#: ../Doc/library/configparser.rst:678 +#: ../Doc/library/configparser.rst:652 msgid "" "Config parsers provide option value getters that perform type conversion. " "By default :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat`, " @@ -552,7 +772,7 @@ msgid "" "``parser_instance['section'].getdecimal('key', 0)``." msgstr "" -#: ../Doc/library/configparser.rst:689 +#: ../Doc/library/configparser.rst:663 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 " @@ -560,14 +780,14 @@ msgid "" "the dict-compatible form (see the ``getdecimal()`` example above)." msgstr "" -#: ../Doc/library/configparser.rst:694 +#: ../Doc/library/configparser.rst:668 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:700 +#: ../Doc/library/configparser.rst:674 msgid "" "By default when using :meth:`~ConfigParser.getboolean`, config parsers " "consider the following values ``True``: ``'1'``, ``'yes'``, ``'true'``, " @@ -575,14 +795,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:718 +#: ../Doc/library/configparser.rst:692 msgid "" "Other typical Boolean pairs include ``accept``/``reject`` or ``enabled``/" "``disabled``." msgstr "" -#: ../Doc/library/configparser.rst:723 +#: ../Doc/library/configparser.rst:697 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 " @@ -590,7 +816,14 @@ msgid "" "method if that's unsuitable. For example:" msgstr "" -#: ../Doc/library/configparser.rst:754 +#: ../Doc/library/configparser.rst:727 +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:734 msgid "" "A compiled regular expression used to parse section headers. The default " "matches ``[section]`` to the name ``\"section\"``. Whitespace is considered " @@ -599,18 +832,18 @@ msgid "" "example:" msgstr "" -#: ../Doc/library/configparser.rst:782 +#: ../Doc/library/configparser.rst:762 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:788 +#: ../Doc/library/configparser.rst:768 msgid "Legacy API Examples" msgstr "" -#: ../Doc/library/configparser.rst:790 +#: ../Doc/library/configparser.rst:770 msgid "" "Mainly because of backwards compatibility concerns, :mod:`configparser` " "provides also a legacy API with explicit ``get``/``set`` methods. While " @@ -619,29 +852,29 @@ msgid "" "advanced, low-level and downright counterintuitive." msgstr "" -#: ../Doc/library/configparser.rst:796 +#: ../Doc/library/configparser.rst:776 msgid "An example of writing to a configuration file::" msgstr "" -#: ../Doc/library/configparser.rst:819 +#: ../Doc/library/configparser.rst:799 msgid "An example of reading the configuration file again::" msgstr "" -#: ../Doc/library/configparser.rst:837 +#: ../Doc/library/configparser.rst:817 msgid "To get interpolation, use :class:`ConfigParser`::" msgstr "" -#: ../Doc/library/configparser.rst:870 +#: ../Doc/library/configparser.rst:850 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:888 +#: ../Doc/library/configparser.rst:868 msgid "ConfigParser Objects" msgstr "" -#: ../Doc/library/configparser.rst:892 +#: ../Doc/library/configparser.rst:872 msgid "" "The main configuration parser. When *defaults* is given, it is initialized " "into the dictionary of intrinsic defaults. When *dict_type* is given, it " @@ -649,7 +882,7 @@ msgid "" "the options within a section, and for the default values." msgstr "" -#: ../Doc/library/configparser.rst:897 +#: ../Doc/library/configparser.rst:877 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 " @@ -658,7 +891,7 @@ msgid "" "as the set of substrings that prefix comments in non-empty lines." msgstr "" -#: ../Doc/library/configparser.rst:903 +#: ../Doc/library/configparser.rst:883 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, " @@ -671,7 +904,7 @@ msgid "" "without the trailing delimiter." msgstr "" -#: ../Doc/library/configparser.rst:913 +#: ../Doc/library/configparser.rst:893 msgid "" "When *default_section* is given, it specifies the name for the special " "section holding default values for other sections and interpolation purposes " @@ -679,7 +912,7 @@ msgid "" "on runtime using the ``default_section`` instance attribute." msgstr "" -#: ../Doc/library/configparser.rst:918 +#: ../Doc/library/configparser.rst:898 msgid "" "Interpolation behaviour may be customized by providing a custom handler " "through the *interpolation* argument. ``None`` can be used to turn off " @@ -688,7 +921,7 @@ msgid "" "`dedicated documentation section <#interpolation-of-values>`_." msgstr "" -#: ../Doc/library/configparser.rst:924 +#: ../Doc/library/configparser.rst:904 msgid "" "All option names used in interpolation will be passed through the :meth:" "`optionxform` method just like any other option name reference. For " @@ -697,7 +930,7 @@ msgid "" "%(BAR)s`` are equivalent." msgstr "" -#: ../Doc/library/configparser.rst:930 +#: ../Doc/library/configparser.rst:910 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 " @@ -706,44 +939,38 @@ msgid "" "object and section proxies." msgstr "" -#: ../Doc/library/configparser.rst:936 +#: ../Doc/library/configparser.rst:916 msgid "The default *dict_type* is :class:`collections.OrderedDict`." msgstr "" -#: ../Doc/library/configparser.rst:939 +#: ../Doc/library/configparser.rst:919 msgid "" "*allow_no_value*, *delimiters*, *comment_prefixes*, *strict*, " "*empty_lines_in_values*, *default_section* and *interpolation* were added." msgstr "" -#: ../Doc/library/configparser.rst:944 +#: ../Doc/library/configparser.rst:924 msgid "The *converters* argument was added." msgstr "" -#: ../Doc/library/configparser.rst:947 +#: ../Doc/library/configparser.rst:927 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:952 ../Doc/library/configparser.rst:1224 -msgid "" -"The default *dict_type* is :class:`dict`, since it now preserves insertion " -"order." -msgstr "" - -#: ../Doc/library/configparser.rst:958 +#: ../Doc/library/configparser.rst:934 msgid "Return a dictionary containing the instance-wide defaults." msgstr "" -#: ../Doc/library/configparser.rst:963 +#: ../Doc/library/configparser.rst:939 msgid "" "Return a list of the sections available; the *default section* is not " "included in the list." msgstr "" -#: ../Doc/library/configparser.rst:969 +#: ../Doc/library/configparser.rst:945 msgid "" "Add a section named *section* to the instance. If a section by the given " "name already exists, :exc:`DuplicateSectionError` is raised. If the " @@ -751,44 +978,45 @@ msgid "" "the section must be a string; if not, :exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/configparser.rst:974 +#: ../Doc/library/configparser.rst:950 msgid "Non-string section names raise :exc:`TypeError`." msgstr "" -#: ../Doc/library/configparser.rst:980 +#: ../Doc/library/configparser.rst:956 msgid "" "Indicates whether the named *section* is present in the configuration. The " "*default section* is not acknowledged." msgstr "" -#: ../Doc/library/configparser.rst:986 +#: ../Doc/library/configparser.rst:962 msgid "Return a list of options available in the specified *section*." msgstr "" -#: ../Doc/library/configparser.rst:991 +#: ../Doc/library/configparser.rst:967 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:998 +#: ../Doc/library/configparser.rst:974 msgid "" -"Attempt to read and parse a list of filenames, returning a list of filenames " -"which were successfully parsed." +"Attempt to read and parse an iterable of filenames, returning a list of " +"filenames which were successfully parsed." msgstr "" -#: ../Doc/library/configparser.rst:1001 +#: ../Doc/library/configparser.rst:977 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* " "cannot be opened, that file will be ignored. This is designed so that you " -"can specify a list of potential configuration file locations (for example, " -"the current directory, the user's home directory, and some system-wide " -"directory), and all existing configuration files in the list will be read." +"can specify an iterable of potential configuration file locations (for " +"example, the current directory, the user's home directory, and some system-" +"wide directory), and all existing configuration files in the iterable will " +"be read." msgstr "" -#: ../Doc/library/configparser.rst:1009 +#: ../Doc/library/configparser.rst:986 msgid "" "If none of the named files exist, the :class:`ConfigParser` instance will " "contain an empty dataset. An application which requires initial values to " @@ -796,49 +1024,49 @@ msgid "" "`read_file` before calling :meth:`read` for any optional files::" msgstr "" -#: ../Doc/library/configparser.rst:1022 +#: ../Doc/library/configparser.rst:999 msgid "" "The *encoding* parameter. Previously, all files were read using the default " "encoding for :func:`open`." msgstr "" -#: ../Doc/library/configparser.rst:1026 +#: ../Doc/library/configparser.rst:1003 msgid "The *filenames* parameter accepts a :term:`path-like object`." msgstr "" -#: ../Doc/library/configparser.rst:1029 +#: ../Doc/library/configparser.rst:1006 msgid "The *filenames* parameter accepts a :class:`bytes` object." msgstr "" -#: ../Doc/library/configparser.rst:1035 +#: ../Doc/library/configparser.rst:1012 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:1038 +#: ../Doc/library/configparser.rst:1015 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:1042 +#: ../Doc/library/configparser.rst:1019 msgid "Replaces :meth:`readfp`." msgstr "" -#: ../Doc/library/configparser.rst:1047 +#: ../Doc/library/configparser.rst:1024 msgid "Parse configuration data from a string." msgstr "" -#: ../Doc/library/configparser.rst:1049 +#: ../Doc/library/configparser.rst:1026 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:1058 +#: ../Doc/library/configparser.rst:1035 msgid "" "Load configuration from any object that provides a dict-like ``items()`` " "method. Keys are section names, values are dictionaries with keys and " @@ -847,17 +1075,17 @@ msgid "" "automatically converted to strings." msgstr "" -#: ../Doc/library/configparser.rst:1064 +#: ../Doc/library/configparser.rst:1041 msgid "" "Optional argument *source* specifies a context-specific name of the " "dictionary passed. If not given, ```` is used." msgstr "" -#: ../Doc/library/configparser.rst:1067 +#: ../Doc/library/configparser.rst:1044 msgid "This method can be used to copy state between parsers." msgstr "" -#: ../Doc/library/configparser.rst:1074 +#: ../Doc/library/configparser.rst:1051 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), " @@ -866,35 +1094,35 @@ msgid "" "provided as a *fallback* value." msgstr "" -#: ../Doc/library/configparser.rst:1080 +#: ../Doc/library/configparser.rst:1057 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:1084 +#: ../Doc/library/configparser.rst:1061 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:1092 +#: ../Doc/library/configparser.rst:1069 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:1099 +#: ../Doc/library/configparser.rst:1076 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:1106 +#: ../Doc/library/configparser.rst:1083 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 " @@ -906,27 +1134,27 @@ msgid "" "*fallback*." msgstr "" -#: ../Doc/library/configparser.rst:1119 +#: ../Doc/library/configparser.rst:1096 msgid "" "When *section* is not given, return a list of *section_name*, " "*section_proxy* pairs, including DEFAULTSECT." msgstr "" -#: ../Doc/library/configparser.rst:1122 +#: ../Doc/library/configparser.rst:1099 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:1129 +#: ../Doc/library/configparser.rst:1106 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:1136 +#: ../Doc/library/configparser.rst:1113 msgid "" "Write a representation of the configuration to the specified :term:`file " "object`, which must be opened in text mode (accepting strings). This " @@ -935,20 +1163,20 @@ msgid "" "surrounded by spaces." msgstr "" -#: ../Doc/library/configparser.rst:1145 +#: ../Doc/library/configparser.rst:1122 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:1153 +#: ../Doc/library/configparser.rst:1130 msgid "" "Remove the specified *section* from the configuration. If the section in " "fact existed, return ``True``. Otherwise return ``False``." msgstr "" -#: ../Doc/library/configparser.rst:1159 +#: ../Doc/library/configparser.rst:1136 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 " @@ -957,7 +1185,7 @@ msgid "" "of this name on instances to affect this behavior." msgstr "" -#: ../Doc/library/configparser.rst:1165 +#: ../Doc/library/configparser.rst:1142 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 " @@ -965,46 +1193,46 @@ msgid "" "sensitive::" msgstr "" -#: ../Doc/library/configparser.rst:1173 +#: ../Doc/library/configparser.rst:1150 msgid "" "Note that when reading configuration files, whitespace around the option " "names is stripped before :meth:`optionxform` is called." msgstr "" -#: ../Doc/library/configparser.rst:1179 +#: ../Doc/library/configparser.rst:1156 msgid "Use :meth:`read_file` instead." msgstr "" -#: ../Doc/library/configparser.rst:1182 +#: ../Doc/library/configparser.rst:1159 msgid "" ":meth:`readfp` now iterates on *fp* instead of calling ``fp.readline()``." msgstr "" -#: ../Doc/library/configparser.rst:1185 +#: ../Doc/library/configparser.rst:1162 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:1195 +#: ../Doc/library/configparser.rst:1172 msgid "" "Instead of ``parser.readfp(fp)`` use ``parser." "read_file(readline_generator(fp))``." msgstr "" -#: ../Doc/library/configparser.rst:1201 +#: ../Doc/library/configparser.rst:1178 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:1209 +#: ../Doc/library/configparser.rst:1186 msgid "RawConfigParser Objects" msgstr "" -#: ../Doc/library/configparser.rst:1219 +#: ../Doc/library/configparser.rst:1196 msgid "" "Legacy variant of the :class:`ConfigParser`. It has interpolation disabled " "by default and allows for non-string section names, option names, and values " @@ -1012,27 +1240,27 @@ msgid "" "``defaults=`` keyword argument handling." msgstr "" -#: ../Doc/library/configparser.rst:1229 +#: ../Doc/library/configparser.rst:1202 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:1236 +#: ../Doc/library/configparser.rst:1209 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:1240 +#: ../Doc/library/configparser.rst:1213 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:1246 +#: ../Doc/library/configparser.rst:1219 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:" @@ -1042,7 +1270,7 @@ msgid "" "string values." msgstr "" -#: ../Doc/library/configparser.rst:1253 +#: ../Doc/library/configparser.rst:1226 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 " @@ -1050,32 +1278,32 @@ msgid "" "not allow such assignments to take place." msgstr "" -#: ../Doc/library/configparser.rst:1260 +#: ../Doc/library/configparser.rst:1233 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/configparser.rst:1264 +#: ../Doc/library/configparser.rst:1237 msgid "Base class for all other :mod:`configparser` exceptions." msgstr "" -#: ../Doc/library/configparser.rst:1269 +#: ../Doc/library/configparser.rst:1242 msgid "Exception raised when a specified section is not found." msgstr "" -#: ../Doc/library/configparser.rst:1274 +#: ../Doc/library/configparser.rst:1247 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:1278 +#: ../Doc/library/configparser.rst:1251 msgid "" "Optional ``source`` and ``lineno`` attributes and arguments to :meth:" "`__init__` were added." msgstr "" -#: ../Doc/library/configparser.rst:1285 +#: ../Doc/library/configparser.rst:1258 msgid "" "Exception raised by strict parsers if a single option appears twice during " "reading from a single file, string or dictionary. This catches misspellings " @@ -1083,58 +1311,58 @@ msgid "" "representing the same case-insensitive configuration key." msgstr "" -#: ../Doc/library/configparser.rst:1293 +#: ../Doc/library/configparser.rst:1266 msgid "" "Exception raised when a specified option is not found in the specified " "section." msgstr "" -#: ../Doc/library/configparser.rst:1299 +#: ../Doc/library/configparser.rst:1272 msgid "" "Base class for exceptions raised when problems occur performing string " "interpolation." msgstr "" -#: ../Doc/library/configparser.rst:1305 +#: ../Doc/library/configparser.rst:1278 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:1312 +#: ../Doc/library/configparser.rst:1285 msgid "" "Exception raised when an option referenced from a value does not exist. " "Subclass of :exc:`InterpolationError`." msgstr "" -#: ../Doc/library/configparser.rst:1318 +#: ../Doc/library/configparser.rst:1291 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:1324 +#: ../Doc/library/configparser.rst:1297 msgid "" "Exception raised when attempting to parse a file which has no section " "headers." msgstr "" -#: ../Doc/library/configparser.rst:1330 +#: ../Doc/library/configparser.rst:1303 msgid "Exception raised when errors occur attempting to parse a file." msgstr "" -#: ../Doc/library/configparser.rst:1332 +#: ../Doc/library/configparser.rst:1305 msgid "" "The ``filename`` attribute and :meth:`__init__` argument were renamed to " "``source`` for consistency." msgstr "" -#: ../Doc/library/configparser.rst:1338 +#: ../Doc/library/configparser.rst:1311 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/configparser.rst:1339 +#: ../Doc/library/configparser.rst:1312 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 19039fc38..70de9f0ff 100644 --- a/library/constants.po +++ b/library/constants.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-07-29 18:54+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-21 17:13+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.7.1\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/library/constants.rst:4 msgid "Built-in Constants" @@ -100,16 +100,17 @@ msgstr "" "même s'ils ont un nom et un objectif similaire. Voir :exc:" "`NotImplementedError` pour savoir quand l'utiliser." -#: ../Doc/library/constants.rst:56 +#: ../Doc/library/constants.rst:57 msgid "" -"The same as ``...``. Special value used mostly in conjunction with extended " -"slicing syntax for user-defined container data types." +"The same as the ellipsis literal \"``...``\". Special value used mostly in " +"conjunction with extended slicing syntax for user-defined container data " +"types." msgstr "" -"Identique à ``...``. Valeur spéciale utilisée principalement de manière " -"conjointe avec la syntaxe de *slicing* étendu pour les conteneurs " -"personnalisés." +"Identique au littéral *points de suspension* (\"``...``\"). Valeur spéciale " +"utilisée principalement de manière conjointe avec la syntaxe de découpage " +"(*slicing*) étendu pour les conteneurs personnalisés." -#: ../Doc/library/constants.rst:62 +#: ../Doc/library/constants.rst:63 msgid "" "This constant is true if Python was not started with an :option:`-O` option. " "See also the :keyword:`assert` statement." @@ -117,7 +118,7 @@ msgstr "" "Cette constante est vraie si Python n'a pas été démarré avec une option :" "option:`-O`. Voir aussi l'expression :keyword:`assert`." -#: ../Doc/library/constants.rst:68 +#: ../Doc/library/constants.rst:69 msgid "" "The names :data:`None`, :data:`False`, :data:`True` and :data:`__debug__` " "cannot be reassigned (assignments to them, even as an attribute name, raise :" @@ -128,11 +129,11 @@ msgstr "" "leurs attributs, lèvent une :exc:`SyntaxError`), donc ils peuvent être " "considérés comme des \"vraies\" constantes." -#: ../Doc/library/constants.rst:74 +#: ../Doc/library/constants.rst:75 msgid "Constants added by the :mod:`site` module" msgstr "Constantes ajoutées par le module :mod:`site`" -#: ../Doc/library/constants.rst:76 +#: ../Doc/library/constants.rst:77 msgid "" "The :mod:`site` module (which is imported automatically during startup, " "except if the :option:`-S` command-line option is given) adds several " @@ -145,7 +146,7 @@ msgstr "" "l'interpréteur interactif et ne devraient pas être utilisées par des " "programmes." -#: ../Doc/library/constants.rst:84 +#: ../Doc/library/constants.rst:85 msgid "" "Objects that when printed, print a message like \"Use quit() or Ctrl-D (i.e. " "EOF) to exit\", and when called, raise :exc:`SystemExit` with the specified " @@ -155,7 +156,7 @@ msgstr "" "quit() or Ctrl-D (i.e. EOF) to exit\"*, et lorsqu'ils sont appelés, lèvent " "un :exc:`SystemExit` avec le code de retour spécifié." -#: ../Doc/library/constants.rst:91 +#: ../Doc/library/constants.rst:92 msgid "" "Objects that when printed or called, print the text of copyright or credits, " "respectively." @@ -163,7 +164,7 @@ msgstr "" "Objets qui, lorsqu'ils sont affichés ou appelés, affichent le copyright ou " "les crédits, respectivement." -#: ../Doc/library/constants.rst:96 +#: ../Doc/library/constants.rst:97 msgid "" "Object that when printed, prints the message \"Type license() to see the " "full license text\", and when called, displays the full license text in a " diff --git a/library/contextlib.po b/library/contextlib.po index 702611a83..cbc808c42 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\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" "Language-Team: FRENCH \n" @@ -16,8 +16,10 @@ msgstr "" #: ../Doc/library/contextlib.rst:2 msgid "" -":mod:`contextlib` --- Utilities for :keyword:`with`\\ -statement contexts" +":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 msgid "**Source code:** :source:`Lib/contextlib.py`" @@ -29,6 +31,9 @@ msgid "" "`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 msgid "Utilities" @@ -36,7 +41,7 @@ msgstr "Utilitaires" #: ../Doc/library/contextlib.rst:19 msgid "Functions and classes provided:" -msgstr "" +msgstr "Fonctions et classes fournies :" #: ../Doc/library/contextlib.rst:23 msgid "" @@ -46,6 +51,12 @@ 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 msgid "" @@ -55,6 +66,12 @@ 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 msgid "" @@ -62,6 +79,10 @@ msgid "" "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 msgid "" @@ -70,19 +91,29 @@ msgid "" "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 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 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." +"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 msgid "" @@ -95,10 +126,22 @@ msgid "" "place. If an exception is trapped merely in order to log it or to perform " "some action (rather than to suppress it entirely), the generator must " "reraise that exception. Otherwise the generator context manager will " -"indicate to the :keyword:`with` statement that the exception has been " +"indicate to the :keyword:`!with` statement that the exception has been " "handled, and execution will resume with the statement immediately following " -"the :keyword:`with` statement." -msgstr "" +"the :keyword:`!with` statement." +msgstr "" +"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`." #: ../Doc/library/contextlib.rst:89 msgid "" @@ -110,16 +153,26 @@ 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 msgid "Use of :class:`ContextDecorator`." -msgstr "" +msgstr "Utilisation de la classe :class:`ContextDecorator`." #: ../Doc/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 msgid "" @@ -129,6 +182,12 @@ 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 msgid "A simple example::" @@ -139,16 +198,20 @@ 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 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 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 msgid "" @@ -156,10 +219,13 @@ msgid "" "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 msgid "An example using *enter_result*::" -msgstr "" +msgstr "Un exemple utilisant *enter_result* ::" #: ../Doc/library/contextlib.rst:193 msgid "" @@ -167,6 +233,9 @@ msgid "" "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 msgid "" @@ -175,6 +244,10 @@ msgid "" "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 msgid "For example::" @@ -187,19 +260,23 @@ msgstr "Ce code est équivalent à ::" #: ../Doc/library/contextlib.rst:224 ../Doc/library/contextlib.rst:263 #: ../Doc/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 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 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 msgid "" @@ -207,16 +284,21 @@ msgid "" "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 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 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 msgid "" @@ -225,17 +307,27 @@ msgid "" "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 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 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 msgid "" @@ -243,45 +335,63 @@ msgid "" "``__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 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 msgid "Example of ``ContextDecorator``::" -msgstr "" +msgstr "Exemple de ``ContextDecorator`` ::" #: ../Doc/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 msgid "``ContextDecorator`` lets you instead write::" -msgstr "" +msgstr "``ContextDecorator`` vous permet d'écrire à la place ::" #: ../Doc/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 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 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." +"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 msgid "" @@ -289,12 +399,18 @@ msgid "" "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 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 msgid "" @@ -303,6 +419,11 @@ msgid "" "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 msgid "" @@ -310,6 +431,9 @@ msgid "" "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 msgid "" @@ -320,6 +444,12 @@ 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 msgid "" @@ -328,6 +458,10 @@ msgid "" "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 msgid "" @@ -335,16 +469,24 @@ msgid "" "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 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 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 msgid "" @@ -352,6 +494,9 @@ msgid "" "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 msgid "" @@ -359,36 +504,52 @@ msgid "" "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 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 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 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 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 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 msgid "" @@ -397,12 +558,18 @@ msgid "" "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 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 msgid "" @@ -410,6 +577,10 @@ msgid "" "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 msgid "" @@ -417,49 +588,62 @@ msgid "" "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 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 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 msgid "" "Similar to :meth:`push` but expects either an asynchronous context manager " -"or a coroutine." +"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 -msgid "Similar to :meth:`callback` but expects a coroutine." -msgstr "" +msgid "Similar to :meth:`callback` but expects a coroutine function." +msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine." #: ../Doc/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 msgid "Continuing the example for :func:`asynccontextmanager`::" -msgstr "" +msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::" #: ../Doc/library/contextlib.rst:496 msgid "Examples and Recipes" -msgstr "" +msgstr "Exemples et Recettes" #: ../Doc/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 msgid "Supporting a variable number of context managers" -msgstr "" +msgstr "Gérer un nombre variable de gestionnaires de contexte" #: ../Doc/library/contextlib.rst:505 msgid "" @@ -470,6 +654,13 @@ 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 msgid "" @@ -477,10 +668,13 @@ msgid "" "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 msgid "Catching exceptions from ``__enter__`` methods" -msgstr "" +msgstr "Attraper des exceptions depuis les méthodes ``__enter__``" #: ../Doc/library/contextlib.rst:528 msgid "" @@ -490,6 +684,12 @@ 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 msgid "" @@ -501,10 +701,18 @@ 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 msgid "Cleaning up in an ``__enter__`` implementation" -msgstr "" +msgstr "Nettoyer dans une méthode ``__enter__``" #: ../Doc/library/contextlib.rst:555 msgid "" @@ -512,6 +720,9 @@ msgid "" "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 msgid "" @@ -519,10 +730,13 @@ msgid "" "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 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 msgid "" @@ -531,6 +745,10 @@ msgid "" "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 msgid "" @@ -538,6 +756,10 @@ msgid "" "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 msgid "" @@ -545,18 +767,25 @@ msgid "" "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 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 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 msgid "" @@ -564,6 +793,10 @@ msgid "" "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 msgid "" @@ -571,16 +804,24 @@ msgid "" "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 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 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 msgid "" @@ -590,14 +831,22 @@ 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 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 msgid "And also as a function decorator::" -msgstr "" +msgstr "Et comme décorateurs de fonctions ::" #: ../Doc/library/contextlib.rst:712 msgid "" @@ -606,6 +855,10 @@ msgid "" "`__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 msgid ":pep:`343` - The \"with\" statement" @@ -621,7 +874,7 @@ msgstr "" #: ../Doc/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 msgid "" @@ -630,6 +883,11 @@ msgid "" "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 msgid "" @@ -637,6 +895,10 @@ msgid "" "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 msgid "" @@ -644,6 +906,10 @@ msgid "" "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 msgid "" @@ -651,18 +917,26 @@ msgid "" "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 msgid "Reentrant context managers" -msgstr "" +msgstr "Gestionnaires de contexte réentrants" #: ../Doc/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 " +"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 msgid "" @@ -670,6 +944,9 @@ msgid "" "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 msgid "" @@ -677,6 +954,9 @@ msgid "" "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 msgid "" @@ -685,10 +965,14 @@ msgid "" "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 msgid "Reusable context managers" -msgstr "" +msgstr "Gestionnaires de contexte réutilisables" #: ../Doc/library/contextlib.rst:811 msgid "" @@ -699,6 +983,14 @@ msgid "" "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 msgid "" @@ -706,6 +998,9 @@ msgid "" "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 msgid "" @@ -713,6 +1008,10 @@ msgid "" "`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 msgid "" @@ -721,9 +1020,15 @@ msgid "" "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 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 af286c73b..cd9b2f541 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -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 be90feb79..2510a0954 100644 --- a/library/copy.po +++ b/library/copy.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-09-27 15:04+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-21 17:18+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" -"Last-Translator: \n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/library/copy.rst:2 msgid ":mod:`copy` --- Shallow and deep copy operations" -msgstr ":mod:`copy` --- Opérations de copie superficielle et récursive" +msgstr ":mod:`copy` — Opérations de copie superficielle et récursive" #: ../Doc/library/copy.rst:7 msgid "**Source code:** :source:`Lib/copy.py`" @@ -112,11 +112,11 @@ msgstr "La fonction :func:`deepcopy` évite ces problèmes en :" #: ../Doc/library/copy.rst:55 msgid "" -"keeping a \"memo\" dictionary of objects already copied during the current " +"keeping a ``memo`` dictionary of objects already copied during the current " "copying pass; and" msgstr "" -"gardant en mémoire dans un dictionnaire les objets déjà copiés durant la " -"phase de copie actuelle ; et" +"gardant en mémoire dans un dictionnaire ``memo`` les objets déjà copiés " +"durant la phase de copie actuelle ; et" #: ../Doc/library/copy.rst:58 msgid "" @@ -169,7 +169,7 @@ msgid "" "special methods :meth:`__copy__` and :meth:`__deepcopy__`. The former is " "called to implement the shallow copy operation; no additional arguments are " "passed. The latter is called to implement the deep copy operation; it is " -"passed one argument, the memo dictionary. If the :meth:`__deepcopy__` " +"passed one argument, the ``memo`` dictionary. If the :meth:`__deepcopy__` " "implementation needs to make a deep copy of a component, it should call the :" "func:`deepcopy` function with the component as first argument and the memo " "dictionary as second argument." @@ -179,13 +179,12 @@ msgstr "" "première est appelée pour implémenter l'opération de copie superficielle ; " "aucun argument supplémentaire n'est passé. La seconde est appelée pour " "implémenter l'opération de copie récursive ; elle reçoit un argument, le " -"dictionnaire `memo`. Si l'implémentation de :meth:`__deepcopy__` a besoin de " -"faire une copie récursive d'un composant, elle devrait appeler la fonction :" +"dictionnaire ``memo``. Si l'implémentation de :meth:`__deepcopy__` a besoin " +"de faire une copie récursive d'un composant, elle doit appeler la fonction :" "func:`deepcopy` avec le composant comme premier argument et le dictionnaire " -"`memo` comme second argument." +"*memo* comme second argument." #: ../Doc/library/copy.rst:93 -#, fuzzy msgid "Module :mod:`pickle`" msgstr "Module :mod:`pickle`" diff --git a/library/copyreg.po b/library/copyreg.po index 094fa6718..74644fd67 100644 --- a/library/copyreg.po +++ b/library/copyreg.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-23 15:14+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" #: ../Doc/library/copyreg.rst:2 msgid ":mod:`copyreg` --- Register :mod:`pickle` support functions" -msgstr "" +msgstr ":mod:`copyreg` — Enregistre les fonctions support de :mod:`pickle`" #: ../Doc/library/copyreg.rst:7 msgid "**Source code:** :source:`Lib/copyreg.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/copyreg.py`" #: ../Doc/library/copyreg.rst:15 msgid "" @@ -30,12 +31,22 @@ msgid "" "configuration information about object constructors which are not classes. " "Such constructors may be factory functions or class instances." msgstr "" +"Le module :mod:`copyreg` permet de définir des fonctions utilisées durant la " +"sérialisation avec *pickle* de certains objets. Les modules :mod:`pickle` " +"et :mod:`copy` utilisent ces fonctions lors d'une sérialisation ou d'une " +"copie de ces objets. Le module propose alors des informations de " +"configuration à propos de constructeurs d'objets qui ne sont pas des " +"classes. De tels constructeurs peuvent être des instances de classes ou des " +"fonctions." #: ../Doc/library/copyreg.rst:24 msgid "" "Declares *object* to be a valid constructor. If *object* is not callable " "(and hence not valid as a constructor), raises :exc:`TypeError`." msgstr "" +"Déclare *object* comme étant un constructeur valide. Si *object* n'est pas " +"appelable (et n'est donc pas un constructeur valide), l'erreur :exc:" +"`TypeError` est levée." #: ../Doc/library/copyreg.rst:30 msgid "" @@ -43,6 +54,9 @@ msgid "" "objects of type *type*. *function* should return either a string or a tuple " "containing two or three elements." msgstr "" +"Déclare que *function* devrait être utilisée en tant que fonction de " +"*réduction* pour des objets de type *type*. *function* doit soit retourner " +"une chaîne de caractères soit un tuple qui contiens deux ou trois éléments." #: ../Doc/library/copyreg.rst:34 msgid "" @@ -51,6 +65,11 @@ msgid "" "arguments returned by *function* at pickling time. :exc:`TypeError` will be " "raised if *object* is a class or *constructor* is not callable." msgstr "" +"Le paramètre optionnel *contructor*, s'il est donné, est un objet appelable " +"qui peux être utilisé pour reconstruire l’objet lorsqu'il est appelé avec un " +"tuple d'arguments retournés par *function* durant la sérialisation avec " +"*pickle*. Une exception :exc:`TypeError` sera levée si *object* est une " +"classe ou si *constructor* n'est pas appelable." #: ../Doc/library/copyreg.rst:39 msgid "" @@ -59,6 +78,11 @@ msgid "" "dispatch_table` attribute of a pickler object or subclass of :class:`pickle." "Pickler` can also be used for declaring reduction functions." msgstr "" +"Voir le module :mod:`pickle` pour plus de détails sur l'interface attendue " +"de *function* et *constructor*. Notez que l’attribut :attr:`~pickle.Pickler." +"dispatch_table` d'un objet ``pickler`` ou d'une sous-classe de :class:" +"`pickle.Pickler` peut aussi être utilisée pour déclarer des fonctions " +"réductrices." #: ../Doc/library/copyreg.rst:46 msgid "Example" @@ -69,3 +93,5 @@ msgid "" "The example below would like to show how to register a pickle function and " "how it will be used:" msgstr "" +"L'exemple si-dessous essaye de démontrer comment enregistrer une fonction " +"*pickle* et comment elle sera utilisée :" diff --git a/library/crypt.po b/library/crypt.po index 5d0f9034c..c1270294c 100644 --- a/library/crypt.po +++ b/library/crypt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -104,7 +104,7 @@ msgid "" "from :func:`mksalt`, one of the ``crypt.METHOD_*`` values (though not all " "may be available on all platforms), or a full encrypted password including " "salt, as returned by this function. If *salt* is not provided, the " -"strongest method will be used (as returned by :func:`methods`." +"strongest method will be used (as returned by :func:`methods`)." msgstr "" #: ../Doc/library/crypt.rst:96 diff --git a/library/csv.po b/library/csv.po index 46fe8bf2a..aa672b40d 100644 --- a/library/csv.po +++ b/library/csv.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-29 19:07+0200\n" +"PO-Revision-Date: 2019-06-01 23:54+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/csv.rst:2 msgid ":mod:`csv` --- CSV File Reading and Writing" -msgstr ":mod:`csv` --- Lecture et écriture de fichiers CSV" +msgstr ":mod:`csv` — Lecture et écriture de fichiers CSV" #: ../Doc/library/csv.rst:9 msgid "**Source code:** :source:`Lib/csv.py`" @@ -37,8 +37,8 @@ msgid "" "of reading and writing the data from the programmer." msgstr "" "Le format CSV (*Comma Separated Values*, valeurs séparées par des virgules) " -"est le format le plus commun dans l'import et l'export de feuilles de " -"calculs et de bases de données. Le format fut utilisé pendant des années " +"est le format le plus commun dans l'importation et l'exportation de feuilles " +"de calculs et de bases de données. Le format fut utilisé pendant des années " "avant qu'aient lieu des tentatives de standardisation avec la :rfc:`4180`. " "L'absence de format bien défini signifie que des différences subtiles " "existent dans la production et la consommation de données par différentes " @@ -77,7 +77,7 @@ msgstr "" #: ../Doc/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 msgid "The Python Enhancement Proposal which proposed this addition to Python." @@ -110,10 +110,10 @@ msgid "" msgstr "" "Renvoie un objet lecteur, qui itérera sur les lignes de l'objet *csvfile* " "donné. *csvfile* peut être n'importe quel objet supportant le protocole :" -"term:`iterator` et renvoyant une chaîne de caractères chaque fois que sa " -"méthode :meth:`!__next__` est appelée --- les :term:`fichiers objets ` et les listes sont tous deux valables. Si *csvfile* est un " -"fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre " +"term:`itérateur ` et renvoyant une chaîne de caractères chaque " +"fois que sa méthode :meth:`!__next__` est appelée — les :term:`fichiers " +"objets ` et les listes sont tous deux valables. Si *csvfile* " +"est un fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre " "*dialect* optionnel peut être fourni pour définir un ensemble de paramètres " "spécifiques à un dialecte CSV particulier. Il peut s'agir d'une instance de " "sous-classe de :class:`Dialect` ou de l'une des chaînes renvoyées par la " @@ -139,7 +139,7 @@ msgstr "" #: ../Doc/library/csv.rst:75 ../Doc/library/csv.rst:105 #: ../Doc/library/csv.rst:172 ../Doc/library/csv.rst:208 msgid "A short usage example::" -msgstr "Un court exemple d'utilisation : ::" +msgstr "Un court exemple d'utilisation ::" #: ../Doc/library/csv.rst:88 msgid "" @@ -174,10 +174,11 @@ msgstr "" "section :ref:`csv-fmt-params`. Pour faciliter au mieux l'interfaçage avec " "d'autres modules implémentant l'interface *DB*, la valeur :const:`None` est " "écrite comme une chaîne vide. Bien que ce ne soit pas une transformation " -"réversible, cela simplifie l'export de données SQL *NULL* vers des fichiers " -"CSV sans pré-traiter les données renvoyées par un appel à ``cursor.fetch*``. " -"Toutes les autres données qui ne sont pas des chaînes de caractères sont " -"transformées en chaînes par un appel à :func:`str` avant d'être écrites." +"réversible, cela simplifie l'exportation de données SQL *NULL* vers des " +"fichiers CSV sans pré-traiter les données renvoyées par un appel à ``cursor." +"fetch*``. Toutes les autres données qui ne sont pas des chaînes de " +"caractères sont transformées en chaînes par un appel à :func:`str` avant " +"d'être écrites." #: ../Doc/library/csv.rst:117 msgid "" @@ -292,7 +293,7 @@ msgid "" msgstr "" "Crée un objet qui opère comme un transcripteur ordinaire mais qui produit " "les lignes de sortie depuis des dictionnaires. Le paramètre *fieldnames* " -"est une :mod:`sequence ` de clés qui indique l'ordre dans " +"est une :mod:`séquence ` de clés qui indique l'ordre dans " "lequel les valeurs du dictionnaire passé à la méthode :meth:`writerow` " "doivent être écrites vers le fichier *f*. Le paramètre optionnel *restval* " "spécifie la valeur à écrire si une clé de *fieldnames* manque dans le " @@ -381,7 +382,7 @@ msgstr "" #: ../Doc/library/csv.rst:269 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 msgid "The :mod:`csv` module defines the following constants:" @@ -697,15 +698,15 @@ msgstr "Exemples" #: ../Doc/library/csv.rst:480 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:488 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:496 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:503 msgid "" @@ -718,7 +719,7 @@ 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:514 msgid "" @@ -731,7 +732,7 @@ msgstr "" #: ../Doc/library/csv.rst:517 msgid "Registering a new dialect::" -msgstr "Enregistrer un nouveau dialecte : ::" +msgstr "Enregistrer un nouveau dialecte ::" #: ../Doc/library/csv.rst:524 msgid "" @@ -739,7 +740,7 @@ msgid "" "errors::" msgstr "" "Un exemple d'utilisation un peu plus avancé du lecteur --- attrapant et " -"notifiant les erreurs : ::" +"notifiant les erreurs ::" #: ../Doc/library/csv.rst:536 msgid "" @@ -747,7 +748,7 @@ msgid "" "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:545 msgid "Footnotes" diff --git a/library/ctypes.po b/library/ctypes.po index 80a7c01ad..9d03b9fb7 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: 2018-07-29 19:07+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/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 msgid "" @@ -24,10 +24,15 @@ msgid "" "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 msgid "ctypes tutorial" -msgstr "" +msgstr "Didacticiel de *ctypes*" #: ../Doc/library/ctypes.rst:21 msgid "" @@ -35,6 +40,10 @@ msgid "" "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 msgid "" @@ -43,16 +52,23 @@ msgid "" "`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 msgid "Loading dynamic link libraries" -msgstr "" +msgstr "Chargement des DLL" #: ../Doc/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 msgid "" @@ -64,12 +80,22 @@ 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 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 msgid "" @@ -77,10 +103,13 @@ msgid "" "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 msgid "Windows appends the usual ``.dll`` file suffix automatically." -msgstr "" +msgstr "Windows ajoute le suffixe habituel ``.dll`` automatiquement." #: ../Doc/library/ctypes.rst:66 msgid "" @@ -89,6 +118,11 @@ msgid "" "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 msgid "" @@ -98,14 +132,19 @@ 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 msgid "Accessing functions from loaded dlls" -msgstr "" +msgstr "Accès aux fonctions des DLL chargées" #: ../Doc/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 msgid "" @@ -117,6 +156,13 @@ 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 msgid "" @@ -124,6 +170,10 @@ msgid "" "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 msgid "" @@ -131,6 +181,9 @@ msgid "" "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 msgid "" @@ -138,10 +191,13 @@ msgid "" "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 msgid "Calling functions" -msgstr "" +msgstr "Appel de fonctions" #: ../Doc/library/ctypes.rst:150 msgid "" @@ -150,6 +206,10 @@ msgid "" "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 msgid "" @@ -170,12 +230,16 @@ 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 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 msgid "" @@ -183,6 +247,11 @@ msgid "" "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 msgid "" @@ -191,6 +260,11 @@ msgid "" "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 msgid "" @@ -202,24 +276,37 @@ 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 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:2066 msgid "Fundamental data types" -msgstr "" +msgstr "Types de données fondamentaux" #: ../Doc/library/ctypes.rst:220 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 msgid "ctypes type" -msgstr "Type *ctype*" +msgstr "Types de *ctypes*" #: ../Doc/library/ctypes.rst:223 msgid "C type" @@ -239,7 +326,7 @@ msgstr ":c:type:`_Bool`" #: ../Doc/library/ctypes.rst:225 msgid "bool (1)" -msgstr "bool (1)" +msgstr "*bool* (1)" #: ../Doc/library/ctypes.rst:227 msgid ":class:`c_char`" @@ -251,7 +338,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/ctypes.rst:227 msgid "1-character bytes object" -msgstr "" +msgstr "objet octet (*bytes*) de 1 caractère" #: ../Doc/library/ctypes.rst:229 msgid ":class:`c_wchar`" @@ -263,7 +350,7 @@ msgstr ":c:type:`wchar_t`" #: ../Doc/library/ctypes.rst:229 msgid "1-character string" -msgstr "" +msgstr "chaîne de caractères (*string*) de longueur 1" #: ../Doc/library/ctypes.rst:231 msgid ":class:`c_byte`" @@ -348,7 +435,7 @@ msgstr ":class:`c_ulonglong`" #: ../Doc/library/ctypes.rst:249 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 msgid ":class:`c_size_t`" @@ -401,11 +488,11 @@ msgstr ":class:`c_char_p`" #: ../Doc/library/ctypes.rst:263 msgid ":c:type:`char *` (NUL terminated)" -msgstr ":c:type:`char *` (NUL terminated)" +msgstr ":c:type:`char *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:263 msgid "bytes object or ``None``" -msgstr "objet *bytes* ou ``None``" +msgstr "objet octet (*bytes*) ou ``None``" #: ../Doc/library/ctypes.rst:265 msgid ":class:`c_wchar_p`" @@ -413,11 +500,11 @@ msgstr ":class:`c_wchar_p`" #: ../Doc/library/ctypes.rst:265 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 msgid "string or ``None``" -msgstr "string ou ``None``" +msgstr "chaîne de caractères (*string*) ou ``None``" #: ../Doc/library/ctypes.rst:267 msgid ":class:`c_void_p`" @@ -429,22 +516,26 @@ msgstr ":c:type:`void *`" #: ../Doc/library/ctypes.rst:267 msgid "int or ``None``" -msgstr "``int`` ou ``None``" +msgstr "*int* ou ``None``" #: ../Doc/library/ctypes.rst:271 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 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 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 msgid "" @@ -453,6 +544,10 @@ msgid "" "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 msgid "" @@ -463,6 +558,12 @@ 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 msgid "" @@ -472,10 +573,15 @@ 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 msgid "Calling functions, continued" -msgstr "" +msgstr "Appel de fonctions, suite" #: ../Doc/library/ctypes.rst:352 msgid "" @@ -483,6 +589,9 @@ msgid "" "`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 msgid "" @@ -490,10 +599,14 @@ msgid "" "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 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 msgid "" @@ -502,6 +615,11 @@ msgid "" "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 msgid "" @@ -509,16 +627,21 @@ msgid "" "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 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 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 msgid "" @@ -527,6 +650,11 @@ msgid "" "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 msgid "" @@ -534,6 +662,9 @@ msgid "" "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 msgid "" @@ -547,10 +678,19 @@ msgid "" "the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " "an object with an :attr:`_as_parameter_` attribute." msgstr "" +"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_`." #: ../Doc/library/ctypes.rst:452 msgid "Return types" -msgstr "" +msgstr "Types de sortie" #: ../Doc/library/ctypes.rst:454 msgid "" @@ -558,12 +698,18 @@ msgid "" "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 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 msgid "" @@ -571,6 +717,9 @@ msgid "" "`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 msgid "" @@ -581,6 +730,12 @@ 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 msgid "" @@ -589,16 +744,24 @@ msgid "" "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 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 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 msgid "" @@ -607,6 +770,10 @@ msgid "" "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 msgid "" @@ -616,10 +783,15 @@ 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 msgid "Structures and unions" -msgstr "" +msgstr "Structures et unions" #: ../Doc/library/ctypes.rst:554 msgid "" @@ -628,12 +800,19 @@ msgid "" "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 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 msgid "" @@ -641,30 +820,43 @@ msgid "" "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 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 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 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 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 msgid "" @@ -673,10 +865,15 @@ msgid "" "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 msgid "Structure/union alignment and byte order" -msgstr "" +msgstr "Alignement et boutisme des structures et des unions" #: ../Doc/library/ctypes.rst:626 msgid "" @@ -695,10 +892,15 @@ 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 msgid "Bit fields in structures and unions" -msgstr "" +msgstr "Champs de bits dans les structures et les unions" #: ../Doc/library/ctypes.rst:644 msgid "" @@ -706,64 +908,81 @@ msgid "" "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 msgid "Arrays" -msgstr "" +msgstr "Tableaux" #: ../Doc/library/ctypes.rst:664 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 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 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 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 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 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 msgid "Pointers" -msgstr "" +msgstr "Pointeurs" #: ../Doc/library/ctypes.rst:714 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 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 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 msgid "" @@ -771,14 +990,17 @@ msgid "" "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 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 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 msgid "" @@ -788,6 +1010,11 @@ 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 msgid "" @@ -796,22 +1023,31 @@ msgid "" "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 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 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 msgid "Type conversions" -msgstr "" +msgstr "Conversions de type" #: ../Doc/library/ctypes.rst:816 msgid "" @@ -823,6 +1059,14 @@ 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 msgid "" @@ -831,10 +1075,17 @@ msgid "" "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 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 msgid "" @@ -844,10 +1095,16 @@ 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 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 msgid "" @@ -857,16 +1114,24 @@ 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 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 msgid "Incomplete Types" -msgstr "" +msgstr "Types incomplets" #: ../Doc/library/ctypes.rst:889 msgid "" @@ -874,12 +1139,16 @@ msgid "" "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 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 msgid "" @@ -887,6 +1156,10 @@ msgid "" "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 msgid "" @@ -896,13 +1169,15 @@ msgstr "" #: ../Doc/library/ctypes.rst:946 msgid "Callback functions" -msgstr "" +msgstr "Fonctions de rappel" #: ../Doc/library/ctypes.rst:948 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 msgid "" @@ -910,6 +1185,9 @@ msgid "" "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 msgid "" @@ -918,6 +1196,10 @@ msgid "" "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 msgid "" @@ -925,6 +1207,8 @@ msgid "" "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 msgid "" @@ -932,6 +1216,10 @@ msgid "" "`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 msgid "" @@ -942,36 +1230,51 @@ 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 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 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 msgid "The result::" -msgstr "" +msgstr "Résultat ::" #: ../Doc/library/ctypes.rst:1006 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 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 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 msgid "" @@ -979,6 +1282,10 @@ msgid "" "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 msgid "" @@ -989,10 +1296,17 @@ 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 msgid "Accessing values exported from dlls" -msgstr "" +msgstr "Accès aux variables exportées depuis une DLL" #: ../Doc/library/ctypes.rst:1062 msgid "" @@ -1001,6 +1315,10 @@ msgid "" "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 msgid "" @@ -1008,6 +1326,9 @@ msgid "" "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 msgid "" @@ -1015,16 +1336,20 @@ msgid "" "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 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 msgid "Quoting the docs for that value:" -msgstr "" +msgstr "Citons la documentation :" #: ../Doc/library/ctypes.rst:1085 msgid "" @@ -1040,12 +1365,17 @@ 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 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 msgid "" @@ -1065,23 +1395,28 @@ msgstr "" #: ../Doc/library/ctypes.rst:1135 msgid "Surprises" -msgstr "Surprises" +msgstr "Pièges" #: ../Doc/library/ctypes.rst:1137 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 msgid "Consider the following example::" -msgstr "" +msgstr "Examinons l'exemple suivant ::" #: ../Doc/library/ctypes.rst:1160 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 msgid "" @@ -1091,6 +1426,11 @@ 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 msgid "" @@ -1098,6 +1438,9 @@ msgid "" "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 msgid "" @@ -1113,15 +1456,22 @@ 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:1198 msgid "Variable-sized data types" -msgstr "" +msgstr "Types de données à taille flottante" #: ../Doc/library/ctypes.rst:1200 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:1202 msgid "" @@ -1131,6 +1481,12 @@ 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:1222 msgid "" @@ -1138,6 +1494,9 @@ msgid "" "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:1234 msgid "" @@ -1145,20 +1504,27 @@ msgid "" "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:1242 msgid "ctypes reference" -msgstr "" +msgstr "Référence du module" #: ../Doc/library/ctypes.rst:1248 msgid "Finding shared libraries" -msgstr "" +msgstr "Recherche de bibliothèques partagées" #: ../Doc/library/ctypes.rst:1250 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:1253 msgid "" @@ -1168,12 +1534,20 @@ 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:1259 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:1267 msgid "" @@ -1182,10 +1556,15 @@ msgid "" "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:1272 ../Doc/library/ctypes.rst:1860 msgid "The exact functionality is system dependent." -msgstr "" +msgstr "Le mode opératoire exact dépend du système." #: ../Doc/library/ctypes.rst:1274 msgid "" @@ -1193,6 +1572,9 @@ msgid "" "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:1278 msgid "" @@ -1200,16 +1582,21 @@ msgid "" "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:1282 msgid "Here are some examples::" -msgstr "" +msgstr "Voici quelques exemples :" #: ../Doc/library/ctypes.rst:1293 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:1307 msgid "" @@ -1217,6 +1604,10 @@ msgid "" "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:1311 msgid "" @@ -1225,16 +1616,24 @@ msgid "" "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:1319 msgid "Loading shared libraries" -msgstr "" +msgstr "Chargement des bibliothèques partagées" #: ../Doc/library/ctypes.rst:1321 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:1327 msgid "" @@ -1242,6 +1641,9 @@ msgid "" "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`." #: ../Doc/library/ctypes.rst:1334 msgid "" @@ -1252,10 +1654,17 @@ 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:1341 msgid ":exc:`WindowsError` used to be raised." -msgstr "" +msgstr ":exc:`WindowsError` était levée auparavant." #: ../Doc/library/ctypes.rst:1347 msgid "" @@ -1263,6 +1672,10 @@ msgid "" "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:1351 msgid "" @@ -1270,12 +1683,18 @@ msgid "" "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:1355 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:1361 msgid "" @@ -1284,10 +1703,15 @@ msgid "" "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:1366 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:1368 msgid "" @@ -1298,6 +1722,12 @@ 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:1375 msgid "" @@ -1306,6 +1736,10 @@ msgid "" "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:1380 msgid "" @@ -1316,6 +1750,13 @@ 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:1387 msgid "" @@ -1323,6 +1764,9 @@ msgid "" "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:1391 msgid "" @@ -1332,24 +1776,36 @@ 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:1400 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:1407 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:1414 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:1417 msgid "" @@ -1359,12 +1815,19 @@ 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:1430 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:1436 msgid "The system handle used to access the library." @@ -1372,7 +1835,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1441 msgid "The name of the library passed in the constructor." -msgstr "" +msgstr "Nom de la bibliothèque donné au constructeur." #: ../Doc/library/ctypes.rst:1443 msgid "" @@ -1381,12 +1844,18 @@ msgid "" "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:1451 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:1454 msgid "" @@ -1394,38 +1863,44 @@ msgid "" "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:1460 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:1464 msgid "These prefabricated library loaders are available:" -msgstr "" +msgstr "Plusieurs chargeurs sont fournis :" #: ../Doc/library/ctypes.rst:1469 msgid "Creates :class:`CDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`CDLL`." #: ../Doc/library/ctypes.rst:1475 msgid "Windows only: Creates :class:`WinDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`WinDLL` (uniquement en Windows)." #: ../Doc/library/ctypes.rst:1481 msgid "Windows only: Creates :class:`OleDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`OleDLL` (uniquement en Windows)." #: ../Doc/library/ctypes.rst:1487 msgid "Creates :class:`PyDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`PyDLL`." #: ../Doc/library/ctypes.rst:1490 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:1496 msgid "" @@ -1434,10 +1909,15 @@ msgid "" "`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:1505 msgid "Foreign functions" -msgstr "" +msgstr "Fonctions externes" #: ../Doc/library/ctypes.rst:1507 msgid "" @@ -1447,28 +1927,41 @@ 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:1516 msgid "Base class for C callable foreign functions." -msgstr "" +msgstr "Classe de base pour les fonctions externes C." #: ../Doc/library/ctypes.rst:1518 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:1521 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:1526 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:1529 msgid "" @@ -1479,6 +1972,14 @@ 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:1538 msgid "" @@ -1488,6 +1989,11 @@ 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:1544 msgid "" @@ -1498,6 +2004,13 @@ 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:1551 msgid "" @@ -1506,30 +2019,47 @@ msgid "" "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:1558 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:1565 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:1568 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:1572 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:1576 msgid "" @@ -1537,16 +2067,21 @@ msgid "" "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:1583 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:1590 msgid "Function prototypes" -msgstr "" +msgstr "Prototypes de fonction" #: ../Doc/library/ctypes.rst:1592 msgid "" @@ -1730,7 +2265,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1771 msgid "Utility functions" -msgstr "" +msgstr "Fonctions utilitaires" #: ../Doc/library/ctypes.rst:1775 msgid "" @@ -2305,7 +2840,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2309 msgid "Structured data types" -msgstr "" +msgstr "Types de donnée dérivés de Structure" #: ../Doc/library/ctypes.rst:2314 msgid "Abstract base class for unions in native byte order." @@ -2374,8 +2909,8 @@ msgstr "" #: ../Doc/library/ctypes.rst:2368 msgid "" -"It is possible to defined sub-subclasses of structure types, they inherit " -"the fields of the base class plus the :attr:`_fields_` defined in the sub-" +"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 "" @@ -2417,7 +2952,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2416 msgid "" -"It is possible to defined sub-subclasses of structures, they inherit the " +"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:" "`_fields_` variable, the fields specified in this are appended to the fields " "of the base class." @@ -2435,7 +2970,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2432 msgid "Arrays and pointers" -msgstr "" +msgstr "Tableaux et pointeurs" #: ../Doc/library/ctypes.rst:2436 msgid "Abstract base class for arrays." diff --git a/library/curses.ascii.po b/library/curses.ascii.po index 20e3bd802..dfd62134d 100644 --- a/library/curses.ascii.po +++ b/library/curses.ascii.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -445,7 +445,7 @@ msgid "" "value; it returns a string." msgstr "" -#: ../Doc/library/curses.ascii.rst:212 +#: ../Doc/library/curses.ascii.rst:216 msgid "" "Return a string representation of the ASCII character *c*. If *c* is " "printable, this string is the character itself. If the character is a " @@ -456,7 +456,7 @@ msgid "" "``'!'`` prepended to the result." msgstr "" -#: ../Doc/library/curses.ascii.rst:222 +#: ../Doc/library/curses.ascii.rst:226 msgid "" "A 33-element string array that contains the ASCII mnemonics for the thirty-" "two ASCII control characters from 0 (NUL) to 0x1f (US), in order, plus the " diff --git a/library/curses.po b/library/curses.po index 093dce215..70732c855 100644 --- a/library/curses.po +++ b/library/curses.po @@ -1636,7 +1636,7 @@ msgstr "" #: ../Doc/library/curses.rst:1364 msgid "Key" -msgstr "" +msgstr "Clé" #: ../Doc/library/curses.rst:1366 msgid "``KEY_MIN``" @@ -1948,7 +1948,7 @@ msgstr "``KEY_CLOSE``" #: ../Doc/library/curses.rst:1443 msgid "Close" -msgstr "" +msgstr "*Close*" #: ../Doc/library/curses.rst:1445 msgid "``KEY_COMMAND``" @@ -1964,7 +1964,7 @@ msgstr "``KEY_COPY``" #: ../Doc/library/curses.rst:1447 msgid "Copy" -msgstr "" +msgstr "*Copy*" #: ../Doc/library/curses.rst:1449 msgid "``KEY_CREATE``" @@ -1988,7 +1988,7 @@ msgstr "``KEY_EXIT``" #: ../Doc/library/curses.rst:1453 msgid "Exit" -msgstr "" +msgstr "*Exit*" #: ../Doc/library/curses.rst:1455 msgid "``KEY_FIND``" @@ -2068,7 +2068,7 @@ msgstr "``KEY_REDO``" #: ../Doc/library/curses.rst:1473 msgid "Redo" -msgstr "" +msgstr "*Redo*" #: ../Doc/library/curses.rst:1475 msgid "``KEY_REFERENCE``" @@ -2116,7 +2116,7 @@ msgstr "``KEY_SAVE``" #: ../Doc/library/curses.rst:1485 msgid "Save" -msgstr "" +msgstr "*Save*" #: ../Doc/library/curses.rst:1487 msgid "``KEY_SBEG``" @@ -2364,7 +2364,7 @@ msgstr "``KEY_UNDO``" #: ../Doc/library/curses.rst:1547 msgid "Undo" -msgstr "" +msgstr "*Undo*" #: ../Doc/library/curses.rst:1549 msgid "``KEY_MOUSE``" @@ -2964,7 +2964,7 @@ msgstr "" #: ../Doc/library/curses.rst:1768 msgid "Action" -msgstr "" +msgstr "Action" #: ../Doc/library/curses.rst:1770 msgid ":kbd:`Control-A`" diff --git a/library/dataclasses.po b/library/dataclasses.po index 8cdf04b6b..2394e2f3b 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-08-03 23:47+0200\n" +"POT-Creation-Date: 2018-12-24 14:22+0100\n" +"PO-Revision-Date: 2018-12-24 14:53+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.1.1\n" #: ../Doc/library/dataclasses.rst:2 msgid ":mod:`dataclasses` --- Data Classes" -msgstr "" +msgstr ":mod:`dataclasses` — Classes de Données" #: ../Doc/library/dataclasses.rst:10 msgid "**Source code:** :source:`Lib/dataclasses.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/dataclasses.py`" #: ../Doc/library/dataclasses.rst:14 msgid "" @@ -29,46 +30,66 @@ msgid "" "`__repr__` to user-defined classes. It was originally described in :pep:" "`557`." msgstr "" +"Ce module fournit un décorateur et des fonctions pour générer " +"automatiquement les :term:`méthodes spéciales ` comme :meth:" +"`__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 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 ::" #: ../Doc/library/dataclasses.rst:32 msgid "Will add, among other things, a :meth:`__init__` that looks like::" msgstr "" +"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::" #: ../Doc/library/dataclasses.rst:39 msgid "" "Note that this method is automatically added to the class: it is not " "directly specified in the ``InventoryItem`` definition shown above." msgstr "" +"Il est important de noter que cette méthode est ajoutée automatiquement dans " +"la classe : elle n’est pas à écrire dans la définition de ``InventoryItem`` " +"ci-dessus." #: ../Doc/library/dataclasses.rst:45 msgid "Module-level decorators, classes, and functions" -msgstr "" +msgstr "Décorateurs, classes et fonctions au niveau du module" #: ../Doc/library/dataclasses.rst:49 msgid "" "This function is a :term:`decorator` that is used to add generated :term:" "`special method`\\s to classes, as described below." msgstr "" +"Cette fonction est un :term:`décorateur` qui est utilisé pour ajouter les :" +"term:`méthodes spéciales ` générées aux classes, comme " +"décrit ci-dessous." #: ../Doc/library/dataclasses.rst:52 msgid "" "The :func:`dataclass` decorator examines the class to find ``field``\\s. A " -"``field`` is defined as class variable that has a type annotation. With two " -"exceptions described below, nothing in :func:`dataclass` examines the type " -"specified in the variable annotation." +"``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." #: ../Doc/library/dataclasses.rst:58 msgid "" "The order of the fields in all of the generated methods is the order in " "which they appear in the class definition." 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 msgid "" @@ -77,6 +98,11 @@ msgid "" "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 " +"la classe, le comportement dépend des paramètres, comme documenté ci-" +"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:67 msgid "" @@ -84,20 +110,27 @@ msgid "" "it acts as if it has the default values documented in this signature. That " "is, these three uses of :func:`dataclass` are equivalent::" 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 ::" #: ../Doc/library/dataclasses.rst:84 msgid "The parameters to :func:`dataclass` are:" -msgstr "" +msgstr "Les paramètres de :func:`dataclass` sont :" #: ../Doc/library/dataclasses.rst:86 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:89 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:92 msgid "" @@ -108,11 +141,19 @@ msgid "" "example: ``InventoryItem(name='widget', unit_price=3.0, " "quantity_on_hand=10)``." msgstr "" +"``repr``: Si vrai (par défaut), une méthode :meth:`__repr__` sera générée. " +"La chaîne de représentation comportera le nom de la classe et le nom ainsi " +"que la représentation de chaque champ, suivant leur ordre de définition. " +"Les champs marqués comme exclus (voir ``Field`` ci-dessous) de la " +"représentation ne sont pas inclus. Par exemple : " +"``InventoryItem(name='widget', unit_price=3.0, quantity_on_hand=10)``." #: ../Doc/library/dataclasses.rst:99 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:102 msgid "" @@ -120,10 +161,16 @@ msgid "" "This method compares the class as if it were a tuple of its fields, in " "order. Both instances in the comparison must be of the identical type." msgstr "" +"``eq``: Si vrai (par défaut), une méthode :meth:`__eq__` est générée. Cette " +"méthode permet de comparer les instances de la classe comme s’il s’agissait " +"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:107 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:110 msgid "" @@ -133,18 +180,29 @@ msgid "" "instances in the comparison must be of the identical type. If ``order`` is " "true and ``eq`` is false, a :exc:`ValueError` is raised." msgstr "" +"``order``: Si vrai (``False`` par défaut), les méthodes :meth:`__lt__`, :" +"meth:`__le__`, :meth:`__gt__`, et :meth:`__ge__` sont générées. Elles " +"permettent de comparer les instances de la classe en les considérant comme " +"des tuples, dans l’ordre de définition des champs. Chaque instance dans la " +"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:117 msgid "" "If the class already defines any of :meth:`__lt__`, :meth:`__le__`, :meth:" "`__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:121 msgid "" "``unsafe_hash``: If ``False`` (the default), a :meth:`__hash__` method is " "generated according to how ``eq`` and ``frozen`` are set." 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:124 msgid "" @@ -155,6 +213,13 @@ msgid "" "existence and behavior of :meth:`__eq__`, and the values of the ``eq`` and " "``frozen`` flags in the :func:`dataclass` decorator." msgstr "" +":meth:`__hash__` est utilisée par la fonction native :meth:`hash()`, ainsi " +"que lorsqu’un objet est inséré dans une collection utilisant du hachage, tel " +"qu’un dictionnaire ou un ensemble. Avoir une méthode :meth:`__hash__` " +"implique que les instances de la classe sont immuables. La muabilité est une " +"propriété complexe qui dépends des intentions du programmeur, de l’existence " +"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:131 msgid "" @@ -164,6 +229,12 @@ msgid "" "attribute ``__hash__ = None`` has a specific meaning to Python, as described " "in the :meth:`__hash__` documentation." msgstr "" +"Par défaut, :func:`dataclass` n’ajoute pas de méthode implicite :meth:" +"`__hash__`, sauf s’il n’existe aucun risque sous-jacent. Il n’ajoute ou ne " +"modifie pas non plus la méthode :meth:`__hash__` si elle a est définie " +"explicitement. Définir l’attribut de classe ``__hash__ = None`` a une " +"signification particulière en Python, comme précisé dans la documentation " +"de :meth:`__hash__`." #: ../Doc/library/dataclasses.rst:137 msgid "" @@ -174,6 +245,13 @@ msgid "" "class is logically immutable but can nonetheless be mutated. This is a " "specialized use case and should be considered carefully." 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 " +"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." #: ../Doc/library/dataclasses.rst:144 msgid "" @@ -182,6 +260,10 @@ msgid "" "in your dataclass and set ``unsafe_hash=True``; this will result in a :exc:" "`TypeError`." msgstr "" +"Ce sont les règles autour de la création implicite de la méthode :meth:" +"`__hash__`. Il faut noter que vous ne pouvez pas avoir à la fois une " +"méthode :meth:`__hash__` explicite dans votre *dataclass* et définir " +"``unsafe_hash=True``; cela lèvera une :exc:`TypeError`." #: ../Doc/library/dataclasses.rst:149 msgid "" @@ -193,6 +275,14 @@ msgid "" "superclass will be used (if the superclass is :class:`object`, this means it " "will fall back to id-based hashing)." 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)." #: ../Doc/library/dataclasses.rst:157 msgid "" @@ -201,18 +291,27 @@ msgid "" "`__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 " +"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:162 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 ::" #: ../Doc/library/dataclasses.rst:170 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 ::" #: ../Doc/library/dataclasses.rst:175 msgid "" @@ -220,6 +319,10 @@ msgid "" "field with a default value. This is true either when this occurs in a " "single class, or as a result of class inheritance." msgstr "" +"Une :exc:`TypeError` est levée si un champ sans valeur par défaut est défini " +"après un champ avec une valeur par défaut. C’est le cas que ce soit dans " +"une seule classe, mais également si c’est le résultat d’un héritage de " +"classes." #: ../Doc/library/dataclasses.rst:181 msgid "" diff --git a/library/datetime.po b/library/datetime.po index 9c0cf6735..8a40b2139 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-09-29 17:59+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2019-08-21 00:28+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/datetime.rst:2 msgid ":mod:`datetime` --- Basic date and time types" -msgstr ":mod:`datetime` --- Types de base pour la date et l'heure" +msgstr ":mod:`datetime` — Types de base pour la date et l'heure" #: ../Doc/library/datetime.rst:11 msgid "**Source code:** :source:`Lib/datetime.py`" @@ -33,7 +33,7 @@ msgid "" 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 supportés, l'implémentation est essentiellement tournée vers " +"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`." @@ -101,11 +101,11 @@ msgstr "" "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. " -"Supporter 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." +"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:51 msgid "The :mod:`datetime` module exports the following constants:" @@ -375,8 +375,8 @@ msgstr "" "timedelta.min``. ``-timedelta.max`` n'est pas représentable sous la forme " "d'un objet :class:`timedelta`." -#: ../Doc/library/datetime.rst:220 ../Doc/library/datetime.rst:477 -#: ../Doc/library/datetime.rst:885 ../Doc/library/datetime.rst:1446 +#: ../Doc/library/datetime.rst:220 ../Doc/library/datetime.rst:480 +#: ../Doc/library/datetime.rst:888 ../Doc/library/datetime.rst:1457 msgid "Instance attributes (read-only):" msgstr "Attributs de l'instance (en lecture seule) :" @@ -412,18 +412,18 @@ msgstr "``microseconds``" msgid "Between 0 and 999999 inclusive" msgstr "Entre 0 et 999999 inclus" -#: ../Doc/library/datetime.rst:232 ../Doc/library/datetime.rst:494 -#: ../Doc/library/datetime.rst:938 ../Doc/library/datetime.rst:1485 +#: ../Doc/library/datetime.rst:232 ../Doc/library/datetime.rst:497 +#: ../Doc/library/datetime.rst:941 ../Doc/library/datetime.rst:1496 msgid "Supported operations:" -msgstr "Opérations supportées :" +msgstr "Opérations gérées :" -#: ../Doc/library/datetime.rst:237 ../Doc/library/datetime.rst:497 -#: ../Doc/library/datetime.rst:941 +#: ../Doc/library/datetime.rst:237 ../Doc/library/datetime.rst:500 +#: ../Doc/library/datetime.rst:944 msgid "Operation" msgstr "Opération" -#: ../Doc/library/datetime.rst:237 ../Doc/library/datetime.rst:497 -#: ../Doc/library/datetime.rst:941 +#: ../Doc/library/datetime.rst:237 ../Doc/library/datetime.rst:500 +#: ../Doc/library/datetime.rst:944 msgid "Result" msgstr "Résultat" @@ -485,14 +485,18 @@ msgid "``f = t2 / t3``" msgstr "``f = t2 / t3``" #: ../Doc/library/datetime.rst:257 -msgid "Division (3) of *t2* by *t3*. Returns a :class:`float` object." -msgstr "Division (3) de *t2* par *t3*. Renvoie un objet :class:`float`." +msgid "" +"Division (3) of overall duration *t2* by interval unit *t3*. Returns a :" +"class:`float` object." +msgstr "" +"Division (3) de la durée totale *t2* par l'unité d'intervalle *t3*. Renvoie " +"un objet :class:`float`." -#: ../Doc/library/datetime.rst:260 +#: ../Doc/library/datetime.rst:261 msgid "``t1 = t2 / f or t1 = t2 / i``" msgstr "``t1 = t2 / f or t1 = t2 / i``" -#: ../Doc/library/datetime.rst:260 +#: ../Doc/library/datetime.rst:261 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." @@ -501,31 +505,31 @@ 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:264 +#: ../Doc/library/datetime.rst:265 msgid "``t1 = t2 // i`` or ``t1 = t2 // t3``" msgstr "``t1 = t2 // i`` or ``t1 = t2 // t3``" -#: ../Doc/library/datetime.rst:264 +#: ../Doc/library/datetime.rst:265 msgid "" "The floor is computed and the remainder (if any) is thrown away. In the " "second case, an integer is returned. (3)" msgstr "" "Le quotient est calculé et le reste (s'il y en a un) est ignoré. Dans le " -"second cas, un enter est renvoyé. (3)" +"second cas, un entier est renvoyé. (3)" -#: ../Doc/library/datetime.rst:268 +#: ../Doc/library/datetime.rst:269 msgid "``t1 = t2 % t3``" msgstr "``t1 = t2 % t3``" -#: ../Doc/library/datetime.rst:268 +#: ../Doc/library/datetime.rst:269 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:271 +#: ../Doc/library/datetime.rst:272 msgid "``q, r = divmod(t1, t2)``" msgstr "``q, r = divmod(t1, t2)``" -#: ../Doc/library/datetime.rst:271 +#: ../Doc/library/datetime.rst:272 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." @@ -533,19 +537,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:276 +#: ../Doc/library/datetime.rst:277 msgid "``+t1``" msgstr "``+t1``" -#: ../Doc/library/datetime.rst:276 +#: ../Doc/library/datetime.rst:277 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:279 +#: ../Doc/library/datetime.rst:280 msgid "``-t1``" msgstr "``-t1``" -#: ../Doc/library/datetime.rst:279 +#: ../Doc/library/datetime.rst:280 msgid "" "equivalent to :class:`timedelta`\\ (-*t1.days*, -*t1.seconds*, -*t1." "microseconds*), and to *t1*\\* -1. (1)(4)" @@ -553,11 +557,11 @@ msgstr "" "équivalent à :class:`timedelta`\\ (*-t1.days*, *-t1.seconds*, *-t1." "microseconds*), et à ``t1 * -1``. (1)(4)" -#: ../Doc/library/datetime.rst:283 +#: ../Doc/library/datetime.rst:285 msgid "``abs(t)``" msgstr "``abs(t)``" -#: ../Doc/library/datetime.rst:283 +#: ../Doc/library/datetime.rst:285 msgid "" "equivalent to +\\ *t* when ``t.days >= 0``, and to -*t* when ``t.days < 0``. " "(2)" @@ -565,11 +569,11 @@ msgstr "" "équivalent à ``+t`` quand ``t.days >= 0``, et à ``-t`` quand ``t.days < 0``. " "(2)" -#: ../Doc/library/datetime.rst:286 +#: ../Doc/library/datetime.rst:288 msgid "``str(t)``" msgstr "``str(t)``" -#: ../Doc/library/datetime.rst:286 +#: ../Doc/library/datetime.rst:288 msgid "" "Returns a string in the form ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, where D is " "negative for negative ``t``. (5)" @@ -577,11 +581,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:290 +#: ../Doc/library/datetime.rst:292 msgid "``repr(t)``" msgstr "``repr(t)``" -#: ../Doc/library/datetime.rst:290 +#: ../Doc/library/datetime.rst:292 msgid "" "Returns a string representation of the :class:`timedelta` object as a " "constructor call with canonical attribute values." @@ -589,29 +593,29 @@ 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:296 ../Doc/library/datetime.rst:511 -#: ../Doc/library/datetime.rst:2163 +#: ../Doc/library/datetime.rst:298 ../Doc/library/datetime.rst:514 +#: ../Doc/library/datetime.rst:2190 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/datetime.rst:299 +#: ../Doc/library/datetime.rst:301 msgid "This is exact, but may overflow." msgstr "Ceci est exact, mais peut provoquer un débordement." -#: ../Doc/library/datetime.rst:302 +#: ../Doc/library/datetime.rst:304 msgid "This is exact, and cannot overflow." msgstr "Ceci est exact, et ne peut pas provoquer un débordement." -#: ../Doc/library/datetime.rst:305 +#: ../Doc/library/datetime.rst:307 msgid "Division by 0 raises :exc:`ZeroDivisionError`." msgstr "Une division par 0 provoque :exc:`ZeroDivisionError`." -#: ../Doc/library/datetime.rst:308 +#: ../Doc/library/datetime.rst:310 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:311 +#: ../Doc/library/datetime.rst:313 msgid "" "String representations of :class:`timedelta` objects are normalized " "similarly to their internal representation. This leads to somewhat unusual " @@ -621,7 +625,7 @@ msgstr "" "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:321 +#: ../Doc/library/datetime.rst:323 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 " @@ -631,17 +635,17 @@ 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:325 +#: ../Doc/library/datetime.rst:327 msgid "" "In addition to the operations listed above :class:`timedelta` objects " "support certain additions and subtractions with :class:`date` and :class:`." "datetime` objects (see below)." msgstr "" "En plus des opérations listées ci-dessus, les objets :class:`timedelta` " -"supportent certaines additions et soustractions avec des objets :class:" +"implémentent certaines additions et soustractions avec des objets :class:" "`date` et :class:`datetime` (voir ci-dessous)." -#: ../Doc/library/datetime.rst:329 +#: ../Doc/library/datetime.rst:331 msgid "" "Floor division and true division of a :class:`timedelta` object by another :" "class:`timedelta` object are now supported, as are remainder operations and " @@ -649,12 +653,12 @@ msgid "" "`timedelta` object by a :class:`float` object are now supported." msgstr "" "La division entière et la vraie division d'un objet :class:`timedelta` par " -"un autre :class:`timedelta` sont maintenant supportées, comme le sont les " +"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 " "division et la multiplication d'un objet :class:`timedelta` par un :class:" -"`float` sont maintenant supportées." +"`float` sont maintenant implémentées." -#: ../Doc/library/datetime.rst:336 +#: ../Doc/library/datetime.rst:338 msgid "" "Comparisons of :class:`timedelta` objects are supported with the :class:" "`timedelta` object representing the smaller duration considered to be the " @@ -664,15 +668,15 @@ msgid "" "raised unless the comparison is ``==`` or ``!=``. The latter cases return :" "const:`False` or :const:`True`, respectively." msgstr "" -"Les comparaisons entre objets :class:`timedelta` sont maintenant supportées " -"avec le :class:`timedelta` représentant la plus courte durée considéré comme " -"le plus petit. Afin d'empêcher les comparaisons de types mixtes de retomber " -"sur la comparaison par défaut par l'adresse de l'objet, quand un objet :" -"class:`timedelta` est comparé à un objet de type différent, une :exc:" -"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " -"derniers cas renvoient respectivement :const:`False` et :const:`True`." +"Les comparaisons entre objets :class:`timedelta` sont maintenant gérées avec " +"le :class:`timedelta` représentant la plus courte durée considéré comme le " +"plus petit. Afin d'empêcher les comparaisons de types mixtes de retomber sur " +"la comparaison par défaut par l'adresse de l'objet, quand un objet :class:" +"`timedelta` est comparé à un objet de type différent, une :exc:`TypeError` " +"est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces derniers " +"cas renvoient respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:344 +#: ../Doc/library/datetime.rst:346 msgid "" ":class:`timedelta` objects are :term:`hashable` (usable as dictionary keys), " "support efficient pickling, and in Boolean contexts, a :class:`timedelta` " @@ -680,24 +684,27 @@ msgid "" "``timedelta(0)``." msgstr "" "Les objets :class:`timedelta` sont :term:`hashable` (utilisables comme clés " -"de dictionnaires), supportent le protocole *pickle*, et dans un contexte " +"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)``." -#: ../Doc/library/datetime.rst:348 ../Doc/library/datetime.rst:541 -#: ../Doc/library/datetime.rst:1015 ../Doc/library/datetime.rst:1535 +#: ../Doc/library/datetime.rst:350 ../Doc/library/datetime.rst:544 +#: ../Doc/library/datetime.rst:1018 ../Doc/library/datetime.rst:1546 msgid "Instance methods:" msgstr "Méthodes de l'instance :" -#: ../Doc/library/datetime.rst:352 +#: ../Doc/library/datetime.rst:354 msgid "" "Return the total number of seconds contained in the duration. Equivalent to " -"``td / timedelta(seconds=1)``." +"``td / timedelta(seconds=1)``. For interval units other than seconds, use " +"the division form directly (e.g. ``td / timedelta(microseconds=1)``)." msgstr "" "Renvoie le nombre total de secondes contenues dans la durée. Équivalent à " -"``td / timedelta(seconds=1)``." +"``td / timedelta(seconds=1)``. Pour un intervalle dont l'unité n'est pas la " +"seconde, utilisez directement la division (par exemple, ``td / " +"timedelta(microseconds=1)``)." -#: ../Doc/library/datetime.rst:355 +#: ../Doc/library/datetime.rst:358 msgid "" "Note that for very large time intervals (greater than 270 years on most " "platforms) this method will lose microsecond accuracy." @@ -706,15 +713,15 @@ msgstr "" "sur la plupart des plateformes), cette méthode perdra la précision des " "microsecondes." -#: ../Doc/library/datetime.rst:361 +#: ../Doc/library/datetime.rst:364 msgid "Example usage:" msgstr "Exemple d'utilisation :" -#: ../Doc/library/datetime.rst:387 +#: ../Doc/library/datetime.rst:390 msgid ":class:`date` Objects" msgstr "Objets :class:`date`" -#: ../Doc/library/datetime.rst:389 +#: ../Doc/library/datetime.rst:392 msgid "" "A :class:`date` object represents a date (year, month and day) in an " "idealized calendar, the current Gregorian calendar indefinitely extended in " @@ -734,7 +741,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:401 +#: ../Doc/library/datetime.rst:404 msgid "" "All arguments are required. Arguments may be integers, in the following " "ranges:" @@ -742,30 +749,30 @@ msgstr "" "Tous les arguments sont requis. Les arguments peuvent être des entiers, " "dans les intervalles suivant :" -#: ../Doc/library/datetime.rst:404 +#: ../Doc/library/datetime.rst:407 msgid "``MINYEAR <= year <= MAXYEAR``" msgstr "``MINYEAR <= year <= MAXYEAR``" -#: ../Doc/library/datetime.rst:405 +#: ../Doc/library/datetime.rst:408 msgid "``1 <= month <= 12``" msgstr "``1 <= month <= 12``" -#: ../Doc/library/datetime.rst:406 +#: ../Doc/library/datetime.rst:409 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:408 ../Doc/library/datetime.rst:719 +#: ../Doc/library/datetime.rst:411 ../Doc/library/datetime.rst:722 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:411 ../Doc/library/datetime.rst:724 +#: ../Doc/library/datetime.rst:414 ../Doc/library/datetime.rst:727 msgid "Other constructors, all class methods:" msgstr "Autres constructeurs, méthodes de classe :" -#: ../Doc/library/datetime.rst:415 +#: ../Doc/library/datetime.rst:418 msgid "" "Return the current local date. This is equivalent to ``date." "fromtimestamp(time.time())``." @@ -773,7 +780,7 @@ msgstr "" "Renvoie la date locale courante. Cela est équivalent à ``date." "fromtimestamp(time.time())``." -#: ../Doc/library/datetime.rst:421 +#: ../Doc/library/datetime.rst:424 msgid "" "Return the local date corresponding to the POSIX timestamp, such as is " "returned by :func:`time.time`. This may raise :exc:`OverflowError`, if the " @@ -783,28 +790,28 @@ msgid "" "that on non-POSIX systems that include leap seconds in their notion of a " "timestamp, leap seconds are ignored by :meth:`fromtimestamp`." msgstr "" -"Renvoie la date locale correspondant au *timestamp* *POSIX*, tel que renvoyé " -"par :func:`time.time`. Elle peut lever une :exc:`OverflowError`, si le " -"*timestamp* 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 de *timestamp*, ces secondes sont ignorées par :" -"meth:`fromtimestamp`." +"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`." -#: ../Doc/library/datetime.rst:429 +#: ../Doc/library/datetime.rst:432 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` " "function. Raise :exc:`OSError` instead of :exc:`ValueError` on :c:func:" "`localtime` failure." msgstr "" -"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si le " -"*timestamp* est en dehors des bornes gérées par la 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`." +"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " +"l'horodatage (*timestamp* en anglais) est en dehors des bornes gérées par la " +"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:438 +#: ../Doc/library/datetime.rst:441 msgid "" "Return the date corresponding to the proleptic Gregorian ordinal, where " "January 1 of year 1 has ordinal 1. :exc:`ValueError` is raised unless ``1 " @@ -816,7 +823,7 @@ msgstr "" "``1 <= ordinal <= date.max.toordinal()``. Pour toute date *d*, ``date." "fromordinal(d.toordinal()) == d``." -#: ../Doc/library/datetime.rst:446 +#: ../Doc/library/datetime.rst:449 msgid "" "Return a :class:`date` corresponding to a *date_string* in the format " "emitted by :meth:`date.isoformat`. Specifically, this function supports " @@ -826,28 +833,28 @@ 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:452 +#: ../Doc/library/datetime.rst:455 msgid "" "This does not support parsing arbitrary ISO 8601 strings - it is only " "intended as the inverse operation of :meth:`date.isoformat`." msgstr "" -"Ceci ne supporte pas l'analyse de chaînes ISO 8601 arbitraires, ceci est " +"Ceci n'implémente pas l'analyse de chaînes ISO 8601 arbitraires, ceci est " "seulement destiné à réaliser l'opération inverse de :meth:`date.isoformat`." -#: ../Doc/library/datetime.rst:459 ../Doc/library/datetime.rst:865 -#: ../Doc/library/datetime.rst:1426 ../Doc/library/datetime.rst:1995 +#: ../Doc/library/datetime.rst:462 ../Doc/library/datetime.rst:868 +#: ../Doc/library/datetime.rst:1437 ../Doc/library/datetime.rst:2007 msgid "Class attributes:" msgstr "Attributs de la classe :" -#: ../Doc/library/datetime.rst:463 +#: ../Doc/library/datetime.rst:466 msgid "The earliest representable date, ``date(MINYEAR, 1, 1)``." msgstr "La plus vieille date représentable, ``date(MINYEAR, 1, 1)``." -#: ../Doc/library/datetime.rst:468 +#: ../Doc/library/datetime.rst:471 msgid "The latest representable date, ``date(MAXYEAR, 12, 31)``." msgstr "La dernière date représentable, ``date(MAXYEAR, 12, 31)``." -#: ../Doc/library/datetime.rst:473 +#: ../Doc/library/datetime.rst:476 msgid "" "The smallest possible difference between non-equal date objects, " "``timedelta(days=1)``." @@ -855,48 +862,48 @@ msgstr "" "La plus petite différence possible entre deux objets dates non-égaux, " "``timedelta(days=1)``." -#: ../Doc/library/datetime.rst:481 ../Doc/library/datetime.rst:889 +#: ../Doc/library/datetime.rst:484 ../Doc/library/datetime.rst:892 msgid "Between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." msgstr "Entre :const:`MINYEAR` et :const:`MAXYEAR` inclus." -#: ../Doc/library/datetime.rst:486 ../Doc/library/datetime.rst:894 +#: ../Doc/library/datetime.rst:489 ../Doc/library/datetime.rst:897 msgid "Between 1 and 12 inclusive." msgstr "Entre 1 et 12 inclus." -#: ../Doc/library/datetime.rst:491 ../Doc/library/datetime.rst:899 +#: ../Doc/library/datetime.rst:494 ../Doc/library/datetime.rst:902 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:499 +#: ../Doc/library/datetime.rst:502 msgid "``date2 = date1 + timedelta``" msgstr "``date2 = date1 + timedelta``" -#: ../Doc/library/datetime.rst:499 +#: ../Doc/library/datetime.rst:502 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:502 +#: ../Doc/library/datetime.rst:505 msgid "``date2 = date1 - timedelta``" msgstr "``date2 = date1 - timedelta``" -#: ../Doc/library/datetime.rst:502 +#: ../Doc/library/datetime.rst:505 msgid "Computes *date2* such that ``date2 + timedelta == date1``. (2)" msgstr "Calcule *date2* de façon à avoir ``date2 + timedelta == date1``. (2)" -#: ../Doc/library/datetime.rst:505 +#: ../Doc/library/datetime.rst:508 msgid "``timedelta = date1 - date2``" msgstr "``timedelta = date1 - date2``" -#: ../Doc/library/datetime.rst:505 ../Doc/library/datetime.rst:947 +#: ../Doc/library/datetime.rst:508 ../Doc/library/datetime.rst:950 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/datetime.rst:507 +#: ../Doc/library/datetime.rst:510 msgid "``date1 < date2``" msgstr "``date1 < date2``" -#: ../Doc/library/datetime.rst:507 +#: ../Doc/library/datetime.rst:510 msgid "" "*date1* is considered less than *date2* when *date1* precedes *date2* in " "time. (4)" @@ -904,7 +911,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:514 +#: ../Doc/library/datetime.rst:517 msgid "" "*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " "``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " @@ -918,11 +925,11 @@ msgstr "" "Une :exc:`OverflowError` est levée si ``date2.year`` devait être inférieure " "à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`." -#: ../Doc/library/datetime.rst:521 +#: ../Doc/library/datetime.rst:524 msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." msgstr "``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés." -#: ../Doc/library/datetime.rst:524 +#: ../Doc/library/datetime.rst:527 msgid "" "This is exact, and cannot overflow. timedelta.seconds and timedelta." "microseconds are 0, and date2 + timedelta == date1 after." @@ -931,7 +938,7 @@ msgstr "" "et ``timedelta.microseconds`` valent ``0``, et ``date2 + timedelta == " "date1`` après cela." -#: ../Doc/library/datetime.rst:528 +#: ../Doc/library/datetime.rst:531 msgid "" "In other words, ``date1 < date2`` if and only if ``date1.toordinal() < date2." "toordinal()``. Date comparison raises :exc:`TypeError` if the other " @@ -953,7 +960,7 @@ msgstr "" "`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " "derniers cas renvoient respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:538 +#: ../Doc/library/datetime.rst:541 msgid "" "Dates can be used as dictionary keys. In Boolean contexts, all :class:`date` " "objects are considered to be true." @@ -961,7 +968,7 @@ msgstr "" "Les dates peuvent être utilisées en tant que clés de dictionnaires. Dans un " "contexte booléen, tous les objets :class:`date` sont considérés comme vrais." -#: ../Doc/library/datetime.rst:545 +#: ../Doc/library/datetime.rst:548 msgid "" "Return a date with the same value, except for those parameters given new " "values by whichever keyword arguments are specified. For example, if ``d == " @@ -971,7 +978,7 @@ msgstr "" "par arguments nommés. Par exemple, si ``d == date(2002, 12, 31)``, alors " "``d.replace(day=26) == date(2002, 12, 26)``." -#: ../Doc/library/datetime.rst:552 +#: ../Doc/library/datetime.rst:555 msgid "" "Return a :class:`time.struct_time` such as returned by :func:`time." "localtime`. The hours, minutes and seconds are 0, and the DST flag is -1. " @@ -987,7 +994,7 @@ msgstr "" "``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` est le numéro " "du jour dans l'année courante, commençant avec ``1`` pour le 1er janvier." -#: ../Doc/library/datetime.rst:562 +#: ../Doc/library/datetime.rst:565 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." @@ -997,7 +1004,7 @@ msgstr "" "l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, ``date." "fromordinal(d.toordinal()) == d``." -#: ../Doc/library/datetime.rst:569 +#: ../Doc/library/datetime.rst:572 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 :" @@ -1007,7 +1014,7 @@ msgstr "" "dimanche vaut 6. Par exemple, ``date(2002, 12, 4).weekday() == 2``, un " "mercredi. Voir aussi :meth:`isoweekday`." -#: ../Doc/library/datetime.rst:576 +#: ../Doc/library/datetime.rst:579 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 :" @@ -1017,13 +1024,13 @@ msgstr "" "dimanche vaut 7. Par exemple, ``date(2002, 12, 4).isoweekday() == 3``, un " "mercredi. Voir aussi :meth:`weekday`, :meth:`isocalendar`." -#: ../Doc/library/datetime.rst:583 +#: ../Doc/library/datetime.rst:586 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:585 +#: ../Doc/library/datetime.rst:588 msgid "" "The ISO calendar is a widely used variant of the Gregorian calendar. See " "https://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm for a " @@ -1033,7 +1040,7 @@ msgstr "" "grégorien. Voir https://www.staff.science.uu.nl/~gent0113/calendar/" "isocalendar.htm pour une bonne explication." -#: ../Doc/library/datetime.rst:589 +#: ../Doc/library/datetime.rst:592 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 " @@ -1047,7 +1054,7 @@ msgstr "" "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." -#: ../Doc/library/datetime.rst:594 +#: ../Doc/library/datetime.rst:597 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, so that " @@ -1059,7 +1066,7 @@ msgstr "" "4 janvier 2004, ainsi ``date(2003, 12, 29).isocalendar() == (2004, 1, 1)`` " "et ``date(2004, 1, 4).isocalendar() == (2004, 1, 7)``." -#: ../Doc/library/datetime.rst:602 +#: ../Doc/library/datetime.rst:605 msgid "" "Return a string representing the date in ISO 8601 format, 'YYYY-MM-DD'. For " "example, ``date(2002, 12, 4).isoformat() == '2002-12-04'``." @@ -1068,11 +1075,11 @@ msgstr "" "\"YYYY-MM-DD\". Par exemple, ``date(2002, 12, 4).isoformat() == " "'2002-12-04'``." -#: ../Doc/library/datetime.rst:608 +#: ../Doc/library/datetime.rst:611 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:613 +#: ../Doc/library/datetime.rst:616 msgid "" "Return a string representing the date, for example ``date(2002, 12, 4)." "ctime() == 'Wed Dec 4 00:00:00 2002'``. ``d.ctime()`` is equivalent to " @@ -1086,7 +1093,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:622 +#: ../Doc/library/datetime.rst:625 msgid "" "Return a string representing the date, controlled by an explicit format " "string. Format codes referring to hours, minutes or seconds will see 0 " @@ -1098,7 +1105,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:630 +#: ../Doc/library/datetime.rst:633 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 0, or backward if ``timedelta.days`` < 0. " @@ -1546,7 +1553,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:963 +#: ../Doc/library/datetime.rst:966 msgid "" "Computes the datetime2 such that datetime2 + timedelta == datetime1. As for " "addition, the result has the same :attr:`~.datetime.tzinfo` attribute as the " @@ -1558,7 +1565,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:968 +#: ../Doc/library/datetime.rst:971 msgid "" "Subtraction of a :class:`.datetime` from a :class:`.datetime` is defined " "only if both operands are naive, or if both are aware. If one is aware and " @@ -1569,7 +1576,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:972 +#: ../Doc/library/datetime.rst:975 msgid "" "If both are naive, or both are aware and have the same :attr:`~.datetime." "tzinfo` attribute, the :attr:`~.datetime.tzinfo` attributes are ignored, and " @@ -1582,7 +1589,7 @@ msgstr "" "``datetime2 + t == datetime1``. Aucun ajustement de fuseau horaire n'a lieu " "dans ce cas." -#: ../Doc/library/datetime.rst:977 +#: ../Doc/library/datetime.rst:980 msgid "" "If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " "``a-b`` acts as if *a* and *b* were first converted to naive UTC datetimes " @@ -1596,7 +1603,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:983 +#: ../Doc/library/datetime.rst:986 msgid "" "*datetime1* is considered less than *datetime2* when *datetime1* precedes " "*datetime2* in time." @@ -1604,7 +1611,7 @@ msgstr "" "*datetime1* est considéré inférieur à *datetime2* quand il le précède dans " "le temps." -#: ../Doc/library/datetime.rst:986 +#: ../Doc/library/datetime.rst:989 msgid "" "If one comparand is naive and the other is aware, :exc:`TypeError` is raised " "if an order comparison is attempted. For equality comparisons, naive " @@ -1614,7 +1621,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:990 +#: ../Doc/library/datetime.rst:993 msgid "" "If both comparands are aware, and have the same :attr:`~.datetime.tzinfo` " "attribute, the common :attr:`~.datetime.tzinfo` attribute is ignored and the " @@ -1630,7 +1637,7 @@ msgstr "" "premièrement ajustés en soustrayant leurs décalages UTC (obtenus depuis " "``self.utcoffset()``)." -#: ../Doc/library/datetime.rst:996 +#: ../Doc/library/datetime.rst:999 msgid "" "Equality comparisons between naive and aware :class:`.datetime` instances " "don't raise :exc:`TypeError`." @@ -1638,7 +1645,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:1002 +#: ../Doc/library/datetime.rst:1005 msgid "" "In order to stop comparison from falling back to the default scheme of " "comparing object addresses, datetime comparison normally raises :exc:" @@ -1661,7 +1668,7 @@ msgstr "" "comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " "respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:1012 +#: ../Doc/library/datetime.rst:1015 msgid "" ":class:`.datetime` objects can be used as dictionary keys. In Boolean " "contexts, all :class:`.datetime` objects are considered to be true." @@ -1670,11 +1677,11 @@ msgstr "" "dictionnaires. Dans les contextes booléens, tous les objets :class:`." "datetime` sont considérés vrais." -#: ../Doc/library/datetime.rst:1019 +#: ../Doc/library/datetime.rst:1022 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:1024 +#: ../Doc/library/datetime.rst:1027 msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond and " "fold. :attr:`.tzinfo` is ``None``. See also method :meth:`timetz`." @@ -1683,11 +1690,11 @@ msgstr "" "microseconde et *fold*. :attr:`.tzinfo` est ``None``. Voir aussi la " "méthode :meth:`timetz`." -#: ../Doc/library/datetime.rst:1027 ../Doc/library/datetime.rst:1036 +#: ../Doc/library/datetime.rst:1030 ../Doc/library/datetime.rst:1039 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:1033 +#: ../Doc/library/datetime.rst:1036 msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond, " "fold, and tzinfo attributes. See also method :meth:`time`." @@ -1696,7 +1703,7 @@ msgstr "" "seconde, microseconde, *fold* et *tzinfo*. Voir aussi la méthode :meth:" "`time`." -#: ../Doc/library/datetime.rst:1044 +#: ../Doc/library/datetime.rst:1047 msgid "" "Return a datetime with the same attributes, except for those attributes " "given new values by whichever keyword arguments are specified. Note that " @@ -1708,7 +1715,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:1055 +#: ../Doc/library/datetime.rst:1058 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 " @@ -1718,7 +1725,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:1059 +#: ../Doc/library/datetime.rst:1062 msgid "" "If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " "its :meth:`utcoffset` and :meth:`dst` methods must not return ``None``. If " @@ -1729,7 +1736,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:1063 +#: ../Doc/library/datetime.rst:1066 msgid "" "If called without arguments (or with ``tz=None``) the system local timezone " "is assumed for the target timezone. The ``.tzinfo`` attribute of the " @@ -1741,7 +1748,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:1068 +#: ../Doc/library/datetime.rst:1071 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 " @@ -1755,7 +1762,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:1074 +#: ../Doc/library/datetime.rst:1077 msgid "" "If you merely want to attach a time zone object *tz* to a datetime *dt* " "without adjustment of date and time data, use ``dt.replace(tzinfo=tz)``. If " @@ -1768,7 +1775,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:1079 +#: ../Doc/library/datetime.rst:1082 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`. " @@ -1777,13 +1784,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:1091 +#: ../Doc/library/datetime.rst:1094 msgid "*tz* now can be omitted." msgstr "*tz* peut maintenant être omis." -#: ../Doc/library/datetime.rst:1094 +#: ../Doc/library/datetime.rst:1097 msgid "" "The :meth:`astimezone` method can now be called on naive instances that are " "presumed to represent system local time." @@ -1791,7 +1798,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:1101 +#: ../Doc/library/datetime.rst:1104 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "utcoffset(self)``, and raises an exception if the latter doesn't return " @@ -1802,13 +1809,13 @@ msgstr "" "ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1105 ../Doc/library/datetime.rst:1617 -#: ../Doc/library/datetime.rst:1716 ../Doc/library/datetime.rst:1957 -#: ../Doc/library/datetime.rst:1968 ../Doc/library/datetime.rst:2219 +#: ../Doc/library/datetime.rst:1108 ../Doc/library/datetime.rst:1628 +#: ../Doc/library/datetime.rst:1728 ../Doc/library/datetime.rst:1969 +#: ../Doc/library/datetime.rst:1980 ../Doc/library/datetime.rst:2246 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:1111 +#: ../Doc/library/datetime.rst:1114 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`` " @@ -1819,12 +1826,12 @@ msgstr "" "renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1115 ../Doc/library/datetime.rst:1627 -#: ../Doc/library/datetime.rst:1768 +#: ../Doc/library/datetime.rst:1118 ../Doc/library/datetime.rst:1638 +#: ../Doc/library/datetime.rst:1780 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:1121 +#: ../Doc/library/datetime.rst:1124 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 " @@ -1832,9 +1839,9 @@ msgid "" msgstr "" "Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." "tzinfo.tzname(self)``, lève une exception si l'expression précédente ne " -"renvoie pas ``None`` ou une chaîne de caractères." +"renvoie pas ``None`` ou une chaîne de caractères," -#: ../Doc/library/datetime.rst:1128 +#: ../Doc/library/datetime.rst:1131 msgid "" "Return a :class:`time.struct_time` such as returned by :func:`time." "localtime`. ``d.timetuple()`` is equivalent to ``time.struct_time((d.year, d." @@ -1857,7 +1864,7 @@ msgstr "" "une valeur non-nulle, :attr:`tm_isdst` est mise à ``1`` ; sinon :attr:" "`tm_isdst` est mise à ``0``." -#: ../Doc/library/datetime.rst:1141 +#: ../Doc/library/datetime.rst:1144 msgid "" "If :class:`.datetime` instance *d* is naive, this is the same as ``d." "timetuple()`` except that :attr:`tm_isdst` is forced to 0 regardless of what " @@ -1868,7 +1875,7 @@ msgstr "" "de ce que renvoie ``d.dst()``. L'heure d'été n'est jamais effective pour un " "temps UTC." -#: ../Doc/library/datetime.rst:1145 +#: ../Doc/library/datetime.rst:1148 msgid "" "If *d* is aware, *d* is normalized to UTC time, by subtracting ``d." "utcoffset()``, and a :class:`time.struct_time` for the normalized time is " @@ -1882,7 +1889,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:1155 +#: ../Doc/library/datetime.rst:1158 msgid "" "Return the proleptic Gregorian ordinal of the date. The same as ``self." "date().toordinal()``." @@ -1890,17 +1897,17 @@ msgstr "" "Renvoie l'ordinal du calendrier géorgien proleptique de cette date. " "Identique à ``self.date().toordinal()``." -#: ../Doc/library/datetime.rst:1160 +#: ../Doc/library/datetime.rst:1163 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 le *timestamp* *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 (*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`." -#: ../Doc/library/datetime.rst:1164 +#: ../Doc/library/datetime.rst:1167 msgid "" "Naive :class:`.datetime` instances are assumed to represent local time and " "this method relies on the platform C :c:func:`mktime` function to perform " @@ -1910,19 +1917,19 @@ msgid "" msgstr "" "Les instances naïves de :class:`.datetime` sont supposées représenter un " "temps local et cette méthode se base sur la fonction C :c:func:`mktime` de " -"la plateforme pour opérer la conversion. Comme :class:`.datetime` supporte " -"un intervalle de valeurs plus large que :c:func:`mktime` sur beaucoup de " +"la plateforme pour opérer la conversion. Comme :class:`.datetime` gère un " +"intervalle de valeurs plus large que :c:func:`mktime` sur beaucoup de " "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:1171 +#: ../Doc/library/datetime.rst:1174 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:1178 +#: ../Doc/library/datetime.rst:1181 msgid "" "The :meth:`timestamp` method uses the :attr:`.fold` attribute to " "disambiguate the times during a repeated interval." @@ -1930,24 +1937,24 @@ 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:1184 +#: ../Doc/library/datetime.rst:1187 msgid "" "There is no method to obtain the POSIX timestamp directly from a naive :" "class:`.datetime` instance representing UTC time. If your application uses " "this convention and your system timezone is not set to UTC, you can obtain " "the POSIX timestamp by supplying ``tzinfo=timezone.utc``::" msgstr "" -"Il n'y a pas de méthode pour obtenir le *timestamp* *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 le *timestamp* *POSIX* en fournissant " -"``tzinfo=timezone.utc`` : ::" +"Il n'y a pas de méthode pour obtenir l'horodatage (*timestamp* en anglais) " +"*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`` : ::" -#: ../Doc/library/datetime.rst:1192 +#: ../Doc/library/datetime.rst:1195 msgid "or by calculating the timestamp directly::" -msgstr "ou en calculant le *timestamp* directement : ::" +msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement ::" -#: ../Doc/library/datetime.rst:1198 +#: ../Doc/library/datetime.rst:1201 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`." @@ -1956,7 +1963,7 @@ msgstr "" "dimanche vaut 6. Identique à ``self.date().weekday()``. Voir aussi :meth:" "`isoweekday`." -#: ../Doc/library/datetime.rst:1204 +#: ../Doc/library/datetime.rst:1207 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:" @@ -1966,7 +1973,7 @@ msgstr "" "dimanche vaut 7. Identique à ``self.date().isoweekday()``. Voir aussi :meth:" "`weekday`, :meth:`isocalendar`." -#: ../Doc/library/datetime.rst:1211 +#: ../Doc/library/datetime.rst:1214 msgid "" "Return a 3-tuple, (ISO year, ISO week number, ISO weekday). The same as " "``self.date().isocalendar()``." @@ -1974,26 +1981,26 @@ 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:1217 +#: ../Doc/library/datetime.rst:1220 msgid "" "Return a string representing the date and time in ISO 8601 format, YYYY-MM-" -"DDTHH:MM:SS.mmmmmm or, if :attr:`microsecond` is 0, YYYY-MM-DDTHH:MM:SS" +"DDTHH:MM:SS.ffffff or, if :attr:`microsecond` is 0, YYYY-MM-DDTHH:MM:SS" msgstr "" -"Renvoie une chaîne représentant la date et l'heure au format ISO 8601, YYYY-" -"MM-DDTHH:MM:SS.mmmmmm 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, *YYYY-" +"MM-DDTHH:MM:SS.ffffff* ou, si :attr:`microsecond` vaut 0, *YYYY-MM-DDTHH:MM:" +"SS*" -#: ../Doc/library/datetime.rst:1221 +#: ../Doc/library/datetime.rst:1224 msgid "" -"If :meth:`utcoffset` does not return ``None``, a 6-character string is " -"appended, giving the UTC offset in (signed) hours and minutes: YYYY-MM-DDTHH:" -"MM:SS.mmmmmm+HH:MM or, if :attr:`microsecond` is 0 YYYY-MM-DDTHH:MM:SS+HH:MM" +"If :meth:`utcoffset` does not return ``None``, a string is appended, giving " +"the UTC offset: YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]] or, if :attr:" +"`microsecond` is 0 YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]." msgstr "" -"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne de 6 caractères est " -"ajoutée, donnant le décalage UTC en heures et minutes (relatives) : YYYY-MM-" -"DDTHH:MM:SS.mmmmmm+HH:MM ou, si :attr:`microsecond` vaut 0, YYYY-MM-DDTHH:MM:" -"SS+HH:MM" +"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, " +"donnant le décalage UTC : *YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]* " +"ou, si :attr:`microsecond` vaut 0, *YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]*." -#: ../Doc/library/datetime.rst:1226 +#: ../Doc/library/datetime.rst:1229 msgid "" "The optional argument *sep* (default ``'T'``) is a one-character separator, " "placed between the date and time portions of the result. For example," @@ -2002,7 +2009,7 @@ msgstr "" "d'un caractère, placé entre les portions du résultat correspondant à la date " "et à l'heure. Par exemple," -#: ../Doc/library/datetime.rst:1236 ../Doc/library/datetime.rst:1556 +#: ../Doc/library/datetime.rst:1239 ../Doc/library/datetime.rst:1567 msgid "" "The optional argument *timespec* specifies the number of additional " "components of the time to include (the default is ``'auto'``). It can be one " @@ -2012,7 +2019,7 @@ msgstr "" "additionnels de temps à inclure (par défaut ``'auto'``). Il peut valoir " "l'une des valeurs suivantes :" -#: ../Doc/library/datetime.rst:1240 ../Doc/library/datetime.rst:1560 +#: ../Doc/library/datetime.rst:1243 ../Doc/library/datetime.rst:1571 msgid "" "``'auto'``: Same as ``'seconds'`` if :attr:`microsecond` is 0, same as " "``'microseconds'`` otherwise." @@ -2020,49 +2027,49 @@ msgstr "" "``'auto'`` : Identique à ``'seconds'`` si :attr:`microsecond` vaut 0, à " "``'microseconds'`` sinon." -#: ../Doc/library/datetime.rst:1242 ../Doc/library/datetime.rst:1562 +#: ../Doc/library/datetime.rst:1245 ../Doc/library/datetime.rst:1573 msgid "``'hours'``: Include the :attr:`hour` in the two-digit HH format." msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres HH." -#: ../Doc/library/datetime.rst:1243 ../Doc/library/datetime.rst:1563 +#: ../Doc/library/datetime.rst:1246 ../Doc/library/datetime.rst:1574 msgid "``'minutes'``: Include :attr:`hour` and :attr:`minute` in HH:MM format." msgstr "``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format HH:MM." -#: ../Doc/library/datetime.rst:1244 ../Doc/library/datetime.rst:1564 +#: ../Doc/library/datetime.rst:1247 ../Doc/library/datetime.rst:1575 msgid "" "``'seconds'``: Include :attr:`hour`, :attr:`minute`, and :attr:`second` in " "HH:MM:SS format." msgstr "" "``'seconds'`` : Inclut :attr:`hour`, :attr:`minute` et :attr:`second` au " -"format HH:MM:SS." +"format ``HH:MM:SS``." -#: ../Doc/library/datetime.rst:1246 ../Doc/library/datetime.rst:1566 +#: ../Doc/library/datetime.rst:1249 ../Doc/library/datetime.rst:1577 msgid "" "``'milliseconds'``: Include full time, but truncate fractional second part " "to milliseconds. HH:MM:SS.sss format." msgstr "" "``'milliseconds'`` : Inclut le temps complet, mais tronque la partie " -"fractionnaire des millisecondes, au format HH:MM:SS.sss." +"fractionnaire des millisecondes, au format ``HH:MM:SS.sss``." -#: ../Doc/library/datetime.rst:1248 ../Doc/library/datetime.rst:1568 -msgid "``'microseconds'``: Include full time in HH:MM:SS.mmmmmm format." +#: ../Doc/library/datetime.rst:1251 ../Doc/library/datetime.rst:1579 +msgid "``'microseconds'``: Include full time in HH:MM:SS.ffffff format." msgstr "" -"``'microseconds'`` : Inclut le temps complet, au format HH:MM:SS.mmmmmm." +"``'microseconds'`` : Inclut le temps complet, au format ``HH:MM:SS.ffffff``." -#: ../Doc/library/datetime.rst:1252 ../Doc/library/datetime.rst:1572 +#: ../Doc/library/datetime.rst:1255 ../Doc/library/datetime.rst:1583 msgid "Excluded time components are truncated, not rounded." msgstr "Les composants de temps exclus sont tronqués et non arrondis." -#: ../Doc/library/datetime.rst:1254 ../Doc/library/datetime.rst:1574 +#: ../Doc/library/datetime.rst:1257 ../Doc/library/datetime.rst:1585 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:1264 ../Doc/library/datetime.rst:1586 +#: ../Doc/library/datetime.rst:1267 ../Doc/library/datetime.rst:1597 msgid "Added the *timespec* argument." msgstr "Ajout de l'argument *timespec*." -#: ../Doc/library/datetime.rst:1270 +#: ../Doc/library/datetime.rst:1273 msgid "" "For a :class:`.datetime` instance *d*, ``str(d)`` is equivalent to ``d." "isoformat(' ')``." @@ -2070,7 +2077,7 @@ msgstr "" "Pour une instance *d* de :class:`.datetime`, ``str(d)`` est équivalent à ``d." "isoformat(' ')``." -#: ../Doc/library/datetime.rst:1276 +#: ../Doc/library/datetime.rst:1279 msgid "" "Return a string representing the date and time, for example ``datetime(2002, " "12, 4, 20, 30, 40).ctime() == 'Wed Dec 4 20:30:40 2002'``. ``d.ctime()`` is " @@ -2085,7 +2092,7 @@ msgstr "" "func:`time.ctime` mais pas par :meth:`datetime.ctime`) est conforme au " "standard C." -#: ../Doc/library/datetime.rst:1285 +#: ../Doc/library/datetime.rst:1288 msgid "" "Return a string representing the date and time, controlled by an explicit " "format string. For a complete list of formatting directives, see :ref:" @@ -2095,7 +2102,7 @@ msgstr "" "de format explicite. Pour une liste complète des directives de formatage, " "voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1292 +#: ../Doc/library/datetime.rst:1295 msgid "" "Same as :meth:`.datetime.strftime`. This makes it possible to specify a " "format string for a :class:`.datetime` object in :ref:`formatted string " @@ -2108,19 +2115,19 @@ msgstr "" "une liste complète des directives de formatage, voir :ref:`strftime-strptime-" "behavior`." -#: ../Doc/library/datetime.rst:1299 +#: ../Doc/library/datetime.rst:1302 msgid "Examples of working with datetime objects:" msgstr "Exemples d'utilisation des objets *datetime* :" -#: ../Doc/library/datetime.rst:1346 +#: ../Doc/library/datetime.rst:1349 msgid "Using datetime with tzinfo:" msgstr "Utilisation de *datetime* avec *tzinfo* :" -#: ../Doc/library/datetime.rst:1406 +#: ../Doc/library/datetime.rst:1417 msgid ":class:`.time` Objects" msgstr "Objets :class:`.time`" -#: ../Doc/library/datetime.rst:1408 +#: ../Doc/library/datetime.rst:1419 msgid "" "A time object represents a (local) time of day, independent of any " "particular day, and subject to adjustment via a :class:`tzinfo` object." @@ -2128,7 +2135,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:1413 +#: ../Doc/library/datetime.rst:1424 msgid "" "All arguments are optional. *tzinfo* may be ``None``, or an instance of a :" "class:`tzinfo` subclass. The remaining arguments may be integers, in the " @@ -2138,7 +2145,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:1423 +#: ../Doc/library/datetime.rst:1434 msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised. " "All default to ``0`` except *tzinfo*, which defaults to :const:`None`." @@ -2147,18 +2154,18 @@ msgstr "" "levée. Ils valent tous ``0`` par défaut, à l'exception de *tzinfo* qui " "vaut :const:`None`." -#: ../Doc/library/datetime.rst:1431 +#: ../Doc/library/datetime.rst:1442 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:1436 +#: ../Doc/library/datetime.rst:1447 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:1441 +#: ../Doc/library/datetime.rst:1452 msgid "" "The smallest possible difference between non-equal :class:`.time` objects, " "``timedelta(microseconds=1)``, although note that arithmetic on :class:`." @@ -2166,9 +2173,9 @@ msgid "" msgstr "" "La plus petite différence possible entre deux objets :class:`.time` non-" "égaux, ``timedelta(microseconds=1)``, notez cependant que les objets :class:" -"`.time` ne supportent pas d'opérations arithmétiques." +"`.time` n'implémentent pas d'opérations arithmétiques." -#: ../Doc/library/datetime.rst:1470 +#: ../Doc/library/datetime.rst:1481 msgid "" "The object passed as the tzinfo argument to the :class:`.time` constructor, " "or ``None`` if none was passed." @@ -2176,7 +2183,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:1487 +#: ../Doc/library/datetime.rst:1498 msgid "" "comparison of :class:`.time` to :class:`.time`, where *a* is considered less " "than *b* when *a* precedes *b* in time. If one comparand is naive and the " @@ -2190,7 +2197,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:1492 +#: ../Doc/library/datetime.rst:1503 msgid "" "If both comparands are aware, and have the same :attr:`~time.tzinfo` " "attribute, the common :attr:`~time.tzinfo` attribute is ignored and the base " @@ -2214,7 +2221,7 @@ msgstr "" "que la comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " "respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:1502 +#: ../Doc/library/datetime.rst:1513 msgid "" "Equality comparisons between naive and aware :class:`~datetime.time` " "instances don't raise :exc:`TypeError`." @@ -2222,22 +2229,22 @@ 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:1506 +#: ../Doc/library/datetime.rst:1517 msgid "hash, use as dict key" msgstr "hachage, utilisation comme clef de dictionnaire" -#: ../Doc/library/datetime.rst:1508 +#: ../Doc/library/datetime.rst:1519 msgid "efficient pickling" msgstr "sérialisation (*pickling*) efficace" -#: ../Doc/library/datetime.rst:1510 +#: ../Doc/library/datetime.rst:1521 msgid "" "In boolean contexts, a :class:`.time` object is always considered to be true." msgstr "" "Dans un contexte booléen, un objet :class:`.time` est toujours considéré " "comme vrai." -#: ../Doc/library/datetime.rst:1512 +#: ../Doc/library/datetime.rst:1523 msgid "" "Before Python 3.5, a :class:`.time` object was considered to be false if it " "represented midnight in UTC. This behavior was considered obscure and error-" @@ -2249,31 +2256,31 @@ msgstr "" "propice aux erreurs, il a été supprimé en Python 3.5. Voir :issue:`13936` " "pour les détails complets." -#: ../Doc/library/datetime.rst:1519 +#: ../Doc/library/datetime.rst:1530 msgid "Other constructor:" msgstr "Autre constructeur :" -#: ../Doc/library/datetime.rst:1523 +#: ../Doc/library/datetime.rst:1534 msgid "" "Return a :class:`time` corresponding to a *time_string* in one of the " "formats emitted by :meth:`time.isoformat`. Specifically, this function " -"supports strings in the format(s) ``HH[:MM[:SS[.mmm[mmm]]]][+HH:MM[:SS[." +"supports strings in the format(s) ``HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[." "ffffff]]]``." msgstr "" "Renvoie une :class:`time` correspondant à *time_string* dans l'un des " "formats émis par :meth:`time.isoformat`. Plus spécifiquement, cette fonction " "est compatible avec des chaînes dans le(s) format(s) ``HH[:MM[:SS[." -"mmm[mmm]]]][+HH:MM[:SS[.ffffff]]]``." +"fff[fff]]]][+HH:MM[:SS[.ffffff]]]``." -#: ../Doc/library/datetime.rst:1529 +#: ../Doc/library/datetime.rst:1540 msgid "" "This does not support parsing arbitrary ISO 8601 strings - it is only " "intended as the inverse operation of :meth:`time.isoformat`." msgstr "" -"Ceci ne supporte pas l'analyse arbitraire de chaînes ISO 8601, ceci est " +"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:1540 +#: ../Doc/library/datetime.rst:1551 msgid "" "Return a :class:`.time` with the same value, except for those attributes " "given new values by whichever keyword arguments are specified. Note that " @@ -2286,25 +2293,25 @@ msgstr "" "`.time` naïve à partir d'une instance :class:`.time` avisée, sans conversion " "des données de temps." -#: ../Doc/library/datetime.rst:1551 +#: ../Doc/library/datetime.rst:1562 msgid "" -"Return a string representing the time in ISO 8601 format, HH:MM:SS.mmmmmm " +"Return a string representing the time in ISO 8601 format, HH:MM:SS.ffffff " "or, if :attr:`microsecond` is 0, HH:MM:SS If :meth:`utcoffset` does not " -"return ``None``, a 6-character string is appended, giving the UTC offset in " -"(signed) hours and minutes: HH:MM:SS.mmmmmm+HH:MM or, if self.microsecond is " -"0, HH:MM:SS+HH:MM" +"return ``None``, a string is appended, giving the UTC offset: HH:MM:SS.ffffff" +"+HH:MM[:SS[.ffffff]] or, if self.microsecond is 0, HH:MM:SS+HH:MM[:SS[." +"ffffff]]." msgstr "" -"Renvoie une chaîne représentant l'heure au format ISO 8601, HH:MM:SS.mmmmmm " -"ou, si :attr:`microsecond` vaut 0, HH:MM:SS Si :meth:`utcoffset` ne renvoie " -"pas ``None``, une chaîne de 6 caractères est ajoutée, donnant le décalage " -"UTC en heures et minutes (relatives) : HH:MM:SS.mmmmmm+HH:MM ou, si ``self." -"microsecond`` vaut 0, HH:MM:SS+HH:MM" +"Renvoie une chaîne représentant l'heure au format ISO 8601, ``HH:MM:SS." +"ffffff`` ou, si :attr:`microsecond` vaut 0, ``HH:MM:SS`` Si :meth:" +"`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, donnant le " +"décalage UTC : ``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]`` ou, si ``self." +"microsecond`` vaut 0, ``HH:MM:SS+HH:MM[:SS[.ffffff]]``." -#: ../Doc/library/datetime.rst:1592 +#: ../Doc/library/datetime.rst:1603 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:1597 +#: ../Doc/library/datetime.rst:1608 msgid "" "Return a string representing the time, controlled by an explicit format " "string. For a complete list of formatting directives, see :ref:`strftime-" @@ -2314,7 +2321,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:1604 +#: ../Doc/library/datetime.rst:1615 msgid "" "Same as :meth:`.time.strftime`. This makes it possible to specify a format " "string for a :class:`.time` object in :ref:`formatted string literals ` file there are some examples of :class:`tzinfo` classes:" @@ -2693,7 +2700,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:1851 +#: ../Doc/library/datetime.rst:1863 msgid "" "Note that there are unavoidable subtleties twice per year in a :class:" "`tzinfo` subclass accounting for both standard and daylight time, at the DST " @@ -2708,7 +2715,7 @@ msgstr "" "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 : ::" -#: ../Doc/library/datetime.rst:1865 +#: ../Doc/library/datetime.rst:1877 msgid "" "When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " "to 3:00. A wall time of the form 2:MM doesn't really make sense on that " @@ -2722,7 +2729,7 @@ msgstr "" "== 2`` pour le jour où débute l'heure d'été. Par exemple, lors de la " "transition du printemps 2016, nous obtenons" -#: ../Doc/library/datetime.rst:1884 +#: ../Doc/library/datetime.rst:1896 msgid "" "When DST ends (the \"end\" line), there's a potentially worse problem: " "there's an hour that can't be spelled unambiguously in local wall time: the " @@ -2749,7 +2756,7 @@ msgstr "" "attr:`~datetime.fold` à 0 et les plus récentes l'ont à 1. Par exemple, lors " "de la transition de l'automne 2016, nous obtenons" -#: ../Doc/library/datetime.rst:1906 +#: ../Doc/library/datetime.rst:1918 msgid "" "Note that the :class:`datetime` instances that differ only by the value of " "the :attr:`~datetime.fold` attribute are considered equal in comparisons." @@ -2758,7 +2765,7 @@ msgstr "" "valeur de leur attribut :attr:`~datetime.fold` sont considérées égales dans " "les comparaisons." -#: ../Doc/library/datetime.rst:1909 +#: ../Doc/library/datetime.rst:1921 msgid "" "Applications that can't bear wall-time ambiguities should explicitly check " "the value of the :attr:`~datetime.fold` attribute or avoid using hybrid :" @@ -2767,19 +2774,19 @@ msgid "" "class representing only EST (fixed offset -5 hours), or only EDT (fixed " "offset -4 hours))." msgstr "" -"Les applications qui ne peuvent pas supporter ces ambiguïtés doivent " -"vérifier explicitement la valeur de l'attribut :attr:`~datetime.fold` ou " -"éviter d'utiliser des sous-classes :class:`tzinfo` hybrides ; il n'y a " -"aucune ambiguïté lors de l'utilisation de la classe :class:`timezone`, ou " -"toute autre sous-classe de :class:`tzinfo` à décalage fixe (comme une classe " +"Les applications qui ne peuvent pas gérer ces ambiguïtés doivent vérifier " +"explicitement la valeur de l'attribut :attr:`~datetime.fold` ou éviter " +"d'utiliser des sous-classes :class:`tzinfo` hybrides ; il n'y a aucune " +"ambiguïté lors de l'utilisation de la classe :class:`timezone`, ou toute " +"autre sous-classe de :class:`tzinfo` à décalage fixe (comme une classe " "représentant uniquement le fuseau EST (de décalage fixe *-5h*) ou uniquement " "EDT (*-4h*))." -#: ../Doc/library/datetime.rst:1922 +#: ../Doc/library/datetime.rst:1934 msgid "`dateutil.tz `_" msgstr "`dateutil.tz `_" -#: ../Doc/library/datetime.rst:1918 +#: ../Doc/library/datetime.rst:1930 msgid "" "The standard library has :class:`timezone` class for handling arbitrary " "fixed offsets from UTC and :attr:`timezone.utc` as UTC timezone instance." @@ -2788,7 +2795,7 @@ msgstr "" "décalages fixes par rapport à UTC et :attr:`timezone.utc` comme instance du " "fuseau horaire UTC." -#: ../Doc/library/datetime.rst:1921 +#: ../Doc/library/datetime.rst:1933 msgid "" "*dateutil.tz* library brings the *IANA timezone database* (also known as the " "Olson database) to Python and its usage is recommended." @@ -2797,13 +2804,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:1928 +#: ../Doc/library/datetime.rst:1940 msgid "`IANA timezone database `_" msgstr "" "`Base de données des fuseaux horaires de l'IANA `_" -#: ../Doc/library/datetime.rst:1925 +#: ../Doc/library/datetime.rst:1937 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 " @@ -2818,11 +2825,11 @@ 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:1935 +#: ../Doc/library/datetime.rst:1947 msgid ":class:`timezone` Objects" msgstr "Objets :class:`timezone`" -#: ../Doc/library/datetime.rst:1937 +#: ../Doc/library/datetime.rst:1949 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. Note " @@ -2837,7 +2844,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:1947 +#: ../Doc/library/datetime.rst:1959 msgid "" "The *offset* argument must be specified as a :class:`timedelta` object " "representing the difference between the local time and UTC. It must be " @@ -2849,7 +2856,7 @@ msgstr "" "strictement compris entre ``-timedelta(hours=24)`` et " "``timedelta(hours=24)``, autrement une :exc:`ValueError` est levée." -#: ../Doc/library/datetime.rst:1952 +#: ../Doc/library/datetime.rst:1964 msgid "" "The *name* argument is optional. If specified it must be a string that will " "be used as the value returned by the :meth:`datetime.tzname` method." @@ -2858,7 +2865,7 @@ msgstr "" "caractères qui sera utilisée comme valeur de retour de la méthode :meth:" "`datetime.tzname`." -#: ../Doc/library/datetime.rst:1963 +#: ../Doc/library/datetime.rst:1975 msgid "" "Return the fixed value specified when the :class:`timezone` instance is " "constructed. The *dt* argument is ignored. The return value is a :class:" @@ -2869,7 +2876,7 @@ msgstr "" "instance :class:`timedelta` égale à la différence entre le temps local et " "UTC." -#: ../Doc/library/datetime.rst:1973 +#: ../Doc/library/datetime.rst:1985 msgid "" "Return the fixed value specified when the :class:`timezone` instance is " "constructed. If *name* is not provided in the constructor, the name " @@ -2886,7 +2893,7 @@ msgstr "" "et HH et MM sont respectivement les représentations à deux chiffres de " "``offset.hours`` et ``offset.minutes``." -#: ../Doc/library/datetime.rst:1981 +#: ../Doc/library/datetime.rst:1993 msgid "" "Name generated from ``offset=timedelta(0)`` is now plain 'UTC', not 'UTC" "+00:00'." @@ -2894,11 +2901,11 @@ msgstr "" "Le nom généré à partir de ``offset=timedelta(0)`` est maintenant \"UTC\" " "plutôt que \"UTC+00:00\"." -#: ../Doc/library/datetime.rst:1988 +#: ../Doc/library/datetime.rst:2000 msgid "Always returns ``None``." msgstr "Renvoie toujours ``None``." -#: ../Doc/library/datetime.rst:1992 +#: ../Doc/library/datetime.rst:2004 msgid "" "Return ``dt + offset``. The *dt* argument must be an aware :class:`." "datetime` instance, with ``tzinfo`` set to ``self``." @@ -2906,15 +2913,15 @@ msgstr "" "Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée de :" "class:`datetime`, avec ``tzinfo`` valant ``self``." -#: ../Doc/library/datetime.rst:1999 +#: ../Doc/library/datetime.rst:2011 msgid "The UTC timezone, ``timezone(timedelta(0))``." msgstr "Le fuseau horaire UTC, ``timezone(timedelta(0))``." -#: ../Doc/library/datetime.rst:2005 +#: ../Doc/library/datetime.rst:2020 msgid ":meth:`strftime` and :meth:`strptime` Behavior" msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" -#: ../Doc/library/datetime.rst:2007 +#: ../Doc/library/datetime.rst:2022 msgid "" ":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " "``strftime(format)`` method, to create a string representing the time under " @@ -2929,20 +2936,25 @@ 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:2013 +#: ../Doc/library/datetime.rst:2028 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. ``datetime.strptime(date_string, format)`` is " -"equivalent to ``datetime(*(time.strptime(date_string, format)[0:6]))``." +"equivalent to ``datetime(*(time.strptime(date_string, format)[0:6]))``, " +"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 "" "Inversement, la méthode de classe :meth:`datetime.strptime` crée un objet :" "class:`.datetime` à partir d'une représentation de date et heure et d'une " "chaîne de formatage correspondante. ``datetime.strptime(date_string, " "format)`` est équivalent à ``datetime(*(time.strptime(date_string, format)" -"[0:6]))``." +"[0:6]))``, sauf quand le format inclut une composante en-dessous de la " +"seconde ou une information de fuseau horaire ; ces composantes sont gérées " +"par ``datetime.strptime`` mais sont ignorées par ``time.strptime``." -#: ../Doc/library/datetime.rst:2018 +#: ../Doc/library/datetime.rst:2035 msgid "" "For :class:`.time` objects, the format codes for year, month, and day should " "not be used, as time objects have no such values. If they're used anyway, " @@ -2953,7 +2965,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:2022 +#: ../Doc/library/datetime.rst:2039 msgid "" "For :class:`date` objects, the format codes for hours, minutes, seconds, and " "microseconds should not be used, as :class:`date` objects have no such " @@ -2964,20 +2976,45 @@ 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:2026 +#: ../Doc/library/datetime.rst:2043 +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 " +"string will be pulled from the default value. [#]_" +msgstr "" +"Pour la méthode :meth:`datetime.strptime`, la valeur par défaut est " +"``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:2046 msgid "" "The full set of format codes supported varies across platforms, because " "Python calls the platform C library's :func:`strftime` function, and " "platform variations are common. To see the full set of format codes " "supported on your platform, consult the :manpage:`strftime(3)` documentation." msgstr "" -"L'ensemble complet des codes de formatage supportés varie selon les " +"L'ensemble complet des codes de formatage implémentés varie selon les " "plateformes, parce que Python appelle la fonction :func:`strftime` de la " "bibliothèque C de la plateforme, et les variations sont courantes. Pour " -"voir un ensemble complet des codes de formatage supportés par votre " +"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:2031 +#: ../Doc/library/datetime.rst:2051 +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 " +"also platform-dependent. On some platforms such code points are preserved " +"intact in the output, while on others ``strftime`` may raise :exc:" +"`UnicodeError` or return an empty string instead." +msgstr "" +"Pour la même raison, la gestion des chaînes contenant des caractères (ou " +"points) Unicode qui ne peuvent pas être représentés dans la *locale* " +"actuelle dépend aussi de la plateforme. Sur certaines plateformes, ces " +"caractères sont conservés tels quels dans la sortie, alors que sur d'autres " +"plateformes ``strftime`` lève une :exc:`UnicodeError` ou renvoie une chaîne " +"vide." + +#: ../Doc/library/datetime.rst:2057 msgid "" "The following is a list of all the format codes that the C standard (1989 " "version) requires, and these work on all platforms with a standard C " @@ -2989,27 +3026,27 @@ msgstr "" "possédant une implémentation de C standard. Notez que la version 1999 du " "standard C a ajouté des codes de formatage additionnels." -#: ../Doc/library/datetime.rst:2037 ../Doc/library/datetime.rst:2143 +#: ../Doc/library/datetime.rst:2063 ../Doc/library/datetime.rst:2170 msgid "Directive" msgstr "Directive" -#: ../Doc/library/datetime.rst:2037 ../Doc/library/datetime.rst:2143 +#: ../Doc/library/datetime.rst:2063 ../Doc/library/datetime.rst:2170 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/datetime.rst:2037 ../Doc/library/datetime.rst:2143 +#: ../Doc/library/datetime.rst:2063 ../Doc/library/datetime.rst:2170 msgid "Example" msgstr "Exemple" -#: ../Doc/library/datetime.rst:2037 ../Doc/library/datetime.rst:2143 +#: ../Doc/library/datetime.rst:2063 ../Doc/library/datetime.rst:2170 msgid "Notes" msgstr "Notes" -#: ../Doc/library/datetime.rst:2039 +#: ../Doc/library/datetime.rst:2065 msgid "``%a``" msgstr "``%a``" -#: ../Doc/library/datetime.rst:2039 +#: ../Doc/library/datetime.rst:2065 msgid "Weekday as locale's abbreviated name." msgstr "Jour de la semaine abrégé dans la langue locale." @@ -3021,11 +3058,11 @@ msgstr "Sun, Mon, ..., Sat (en_US);" msgid "So, Mo, ..., Sa (de_DE)" msgstr "Lu, Ma, ..., Di (*fr_FR*)" -#: ../Doc/library/datetime.rst:2044 +#: ../Doc/library/datetime.rst:2070 msgid "``%A``" msgstr "``%A``" -#: ../Doc/library/datetime.rst:2044 +#: ../Doc/library/datetime.rst:2070 msgid "Weekday as locale's full name." msgstr "Jour de la semaine complet dans la langue locale." @@ -3037,36 +3074,43 @@ msgstr "*Sunday*, *Monday*, ..., *Saturday* (*en_US*);" msgid "Sonntag, Montag, ..., Samstag (de_DE)" msgstr "Lundi, Mardi, ..., Dimanche (*fr_FR*)" -#: ../Doc/library/datetime.rst:2049 +#: ../Doc/library/datetime.rst:2075 msgid "``%w``" msgstr "``%w``" -#: ../Doc/library/datetime.rst:2049 +#: ../Doc/library/datetime.rst:2075 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:2049 +#: ../Doc/library/datetime.rst:2075 msgid "0, 1, ..., 6" msgstr "0, 1, ..., 6" -#: ../Doc/library/datetime.rst:2053 +#: ../Doc/library/datetime.rst:2079 msgid "``%d``" msgstr "``%d``" -#: ../Doc/library/datetime.rst:2053 +#: ../Doc/library/datetime.rst:2079 msgid "Day of the month as a zero-padded decimal number." msgstr "Jour du mois sur deux chiffres." -#: ../Doc/library/datetime.rst:2053 +#: ../Doc/library/datetime.rst:2079 msgid "01, 02, ..., 31" msgstr "01, 02, ..., 31" -#: ../Doc/library/datetime.rst:2056 +#: ../Doc/library/datetime.rst:2079 ../Doc/library/datetime.rst:2092 +#: ../Doc/library/datetime.rst:2095 ../Doc/library/datetime.rst:2101 +#: ../Doc/library/datetime.rst:2104 ../Doc/library/datetime.rst:2110 +#: ../Doc/library/datetime.rst:2128 +msgid "\\(9)" +msgstr "\\(9)" + +#: ../Doc/library/datetime.rst:2082 msgid "``%b``" msgstr "``%b``" -#: ../Doc/library/datetime.rst:2056 +#: ../Doc/library/datetime.rst:2082 msgid "Month as locale's abbreviated name." msgstr "Nom du mois abrégé dans la langue locale." @@ -3078,11 +3122,11 @@ msgstr "Jan, Feb, ..., Dec (*en_US*);" msgid "Jan, Feb, ..., Dez (de_DE)" msgstr "janv., févr., ..., déc. (*fr_FR*)" -#: ../Doc/library/datetime.rst:2061 +#: ../Doc/library/datetime.rst:2087 msgid "``%B``" msgstr "``%B``" -#: ../Doc/library/datetime.rst:2061 +#: ../Doc/library/datetime.rst:2087 msgid "Month as locale's full name." msgstr "Nom complet du mois dans la langue locale." @@ -3094,67 +3138,67 @@ msgstr "*January*, *February*, ..., *December* (*en_US*);" msgid "Januar, Februar, ..., Dezember (de_DE)" msgstr "janvier, février, ..., décembre (*fr_FR*)" -#: ../Doc/library/datetime.rst:2066 +#: ../Doc/library/datetime.rst:2092 msgid "``%m``" msgstr "``%m``" -#: ../Doc/library/datetime.rst:2066 +#: ../Doc/library/datetime.rst:2092 msgid "Month as a zero-padded decimal number." msgstr "Numéro du mois sur deux chiffres." -#: ../Doc/library/datetime.rst:2066 ../Doc/library/datetime.rst:2078 +#: ../Doc/library/datetime.rst:2092 ../Doc/library/datetime.rst:2104 msgid "01, 02, ..., 12" msgstr "01, 02, ..., 12" -#: ../Doc/library/datetime.rst:2069 +#: ../Doc/library/datetime.rst:2095 msgid "``%y``" msgstr "``%y``" -#: ../Doc/library/datetime.rst:2069 +#: ../Doc/library/datetime.rst:2095 msgid "Year without century as a zero-padded decimal number." msgstr "Année sur deux chiffres (sans le siècle)." -#: ../Doc/library/datetime.rst:2069 +#: ../Doc/library/datetime.rst:2095 msgid "00, 01, ..., 99" msgstr "00, 01, ..., 99" -#: ../Doc/library/datetime.rst:2072 +#: ../Doc/library/datetime.rst:2098 msgid "``%Y``" msgstr "``%Y``" -#: ../Doc/library/datetime.rst:2072 +#: ../Doc/library/datetime.rst:2098 msgid "Year with century as a decimal number." msgstr "Année complète sur quatre chiffres." -#: ../Doc/library/datetime.rst:2072 ../Doc/library/datetime.rst:2145 +#: ../Doc/library/datetime.rst:2098 ../Doc/library/datetime.rst:2172 msgid "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" msgstr "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" -#: ../Doc/library/datetime.rst:2075 +#: ../Doc/library/datetime.rst:2101 msgid "``%H``" msgstr "``%H``" -#: ../Doc/library/datetime.rst:2075 +#: ../Doc/library/datetime.rst:2101 msgid "Hour (24-hour clock) as a zero-padded decimal number." msgstr "Heure à deux chiffres de 00 à 23." -#: ../Doc/library/datetime.rst:2075 +#: ../Doc/library/datetime.rst:2101 msgid "00, 01, ..., 23" msgstr "00, 01, ..., 23" -#: ../Doc/library/datetime.rst:2078 +#: ../Doc/library/datetime.rst:2104 msgid "``%I``" msgstr "``%I``" -#: ../Doc/library/datetime.rst:2078 +#: ../Doc/library/datetime.rst:2104 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:2081 +#: ../Doc/library/datetime.rst:2107 msgid "``%p``" msgstr "``%p``" -#: ../Doc/library/datetime.rst:2081 +#: ../Doc/library/datetime.rst:2107 msgid "Locale's equivalent of either AM or PM." msgstr "Équivalent local à AM/PM." @@ -3166,96 +3210,99 @@ msgstr "AM, PM (en_US);" msgid "am, pm (de_DE)" msgstr "am, pm (de_DE)" -#: ../Doc/library/datetime.rst:2081 +#: ../Doc/library/datetime.rst:2107 msgid "\\(1), \\(3)" msgstr "\\(1), \\(3)" -#: ../Doc/library/datetime.rst:2084 +#: ../Doc/library/datetime.rst:2110 msgid "``%M``" msgstr "``%M``" -#: ../Doc/library/datetime.rst:2084 +#: ../Doc/library/datetime.rst:2110 msgid "Minute as a zero-padded decimal number." msgstr "Minutes sur deux chiffres." -#: ../Doc/library/datetime.rst:2084 ../Doc/library/datetime.rst:2087 +#: ../Doc/library/datetime.rst:2110 ../Doc/library/datetime.rst:2113 msgid "00, 01, ..., 59" msgstr "00, 01, ..., 59" -#: ../Doc/library/datetime.rst:2087 +#: ../Doc/library/datetime.rst:2113 msgid "``%S``" msgstr "``%S``" -#: ../Doc/library/datetime.rst:2087 +#: ../Doc/library/datetime.rst:2113 msgid "Second as a zero-padded decimal number." msgstr "Secondes sur deux chiffres." -#: ../Doc/library/datetime.rst:2087 -msgid "\\(4)" -msgstr "\\(4)" +#: ../Doc/library/datetime.rst:2113 +msgid "\\(4), \\(9)" +msgstr "\\(4), \\(9)" -#: ../Doc/library/datetime.rst:2090 +#: ../Doc/library/datetime.rst:2116 msgid "``%f``" msgstr "``%f``" -#: ../Doc/library/datetime.rst:2090 +#: ../Doc/library/datetime.rst:2116 msgid "Microsecond as a decimal number, zero-padded on the left." msgstr "Microsecondes sur 6 chiffres." -#: ../Doc/library/datetime.rst:2090 +#: ../Doc/library/datetime.rst:2116 msgid "000000, 000001, ..., 999999" msgstr "000000, 000001, ..., 999999" -#: ../Doc/library/datetime.rst:2090 +#: ../Doc/library/datetime.rst:2116 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/library/datetime.rst:2094 ../Doc/library/datetime.rst:2217 +#: ../Doc/library/datetime.rst:2120 ../Doc/library/datetime.rst:2244 msgid "``%z``" msgstr "``%z``" -#: ../Doc/library/datetime.rst:2094 -msgid "UTC offset in the form ±HHMM[SS] (empty string if the object is naive)." +#: ../Doc/library/datetime.rst:2120 +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] (chaîne vide si l'instance est naïve)." +"Décalage UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si l'instance " +"est naïve)." -#: ../Doc/library/datetime.rst:2094 -msgid "(empty), +0000, -0400, +1030" -msgstr "(vide), +0000, -0400, +1030" +#: ../Doc/library/datetime.rst:2120 +msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" +msgstr "(vide), +0000, -0400, +1030, +063415, -030712.345216" -#: ../Doc/library/datetime.rst:2094 +#: ../Doc/library/datetime.rst:2120 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/library/datetime.rst:2098 ../Doc/library/datetime.rst:2232 +#: ../Doc/library/datetime.rst:2125 ../Doc/library/datetime.rst:2259 msgid "``%Z``" msgstr "``%Z``" -#: ../Doc/library/datetime.rst:2098 +#: ../Doc/library/datetime.rst:2125 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:2098 +#: ../Doc/library/datetime.rst:2125 msgid "(empty), UTC, EST, CST" msgstr "(vide), UTC, EST, CST" -#: ../Doc/library/datetime.rst:2101 +#: ../Doc/library/datetime.rst:2128 msgid "``%j``" msgstr "``%j``" -#: ../Doc/library/datetime.rst:2101 +#: ../Doc/library/datetime.rst:2128 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:2101 +#: ../Doc/library/datetime.rst:2128 msgid "001, 002, ..., 366" msgstr "001, 002, ..., 366" -#: ../Doc/library/datetime.rst:2104 +#: ../Doc/library/datetime.rst:2131 msgid "``%U``" msgstr "``%U``" -#: ../Doc/library/datetime.rst:2104 +#: ../Doc/library/datetime.rst:2131 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 " @@ -3265,19 +3312,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:2104 ../Doc/library/datetime.rst:2112 +#: ../Doc/library/datetime.rst:2131 ../Doc/library/datetime.rst:2139 msgid "00, 01, ..., 53" msgstr "00, 01, ..., 53" -#: ../Doc/library/datetime.rst:2104 ../Doc/library/datetime.rst:2112 -msgid "\\(7)" -msgstr "\\(7)" +#: ../Doc/library/datetime.rst:2131 ../Doc/library/datetime.rst:2139 +msgid "\\(7), \\(9)" +msgstr "\\(7), \\(9)" -#: ../Doc/library/datetime.rst:2112 +#: ../Doc/library/datetime.rst:2139 msgid "``%W``" msgstr "``%W``" -#: ../Doc/library/datetime.rst:2112 +#: ../Doc/library/datetime.rst:2139 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 " @@ -3287,11 +3334,11 @@ 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:2120 +#: ../Doc/library/datetime.rst:2147 msgid "``%c``" msgstr "``%c``" -#: ../Doc/library/datetime.rst:2120 +#: ../Doc/library/datetime.rst:2147 msgid "Locale's appropriate date and time representation." msgstr "Représentation locale de la date et de l'heure." @@ -3303,11 +3350,11 @@ msgstr "Tue Aug 16 21:30:00 1988 (*en_US*);" 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:2125 +#: ../Doc/library/datetime.rst:2152 msgid "``%x``" msgstr "``%x``" -#: ../Doc/library/datetime.rst:2125 +#: ../Doc/library/datetime.rst:2152 msgid "Locale's appropriate date representation." msgstr "Représentation locale de la date." @@ -3323,11 +3370,11 @@ msgstr "08/16/1988 (*en_US*);" msgid "16.08.1988 (de_DE)" msgstr "16/08/1988 (*fr_FR*)" -#: ../Doc/library/datetime.rst:2129 +#: ../Doc/library/datetime.rst:2156 msgid "``%X``" msgstr "``%X``" -#: ../Doc/library/datetime.rst:2129 +#: ../Doc/library/datetime.rst:2156 msgid "Locale's appropriate time representation." msgstr "Représentation locale de l'heure." @@ -3339,19 +3386,19 @@ msgstr "21:30:00 (*en_US*) ;" msgid "21:30:00 (de_DE)" msgstr "21:30:00 (*fr_FR*)" -#: ../Doc/library/datetime.rst:2132 +#: ../Doc/library/datetime.rst:2159 msgid "``%%``" msgstr "``%%``" -#: ../Doc/library/datetime.rst:2132 +#: ../Doc/library/datetime.rst:2159 msgid "A literal ``'%'`` character." msgstr "Un caractère ``'%'`` littéral." -#: ../Doc/library/datetime.rst:2132 +#: ../Doc/library/datetime.rst:2159 msgid "%" msgstr "%" -#: ../Doc/library/datetime.rst:2135 +#: ../Doc/library/datetime.rst:2162 msgid "" "Several additional directives not required by the C89 standard are included " "for convenience. These parameters all correspond to ISO 8601 date values. " @@ -3369,11 +3416,11 @@ 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:2145 +#: ../Doc/library/datetime.rst:2172 msgid "``%G``" msgstr "``%G``" -#: ../Doc/library/datetime.rst:2145 +#: ../Doc/library/datetime.rst:2172 msgid "" "ISO 8601 year with century representing the year that contains the greater " "part of the ISO week (``%V``)." @@ -3381,27 +3428,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:2145 ../Doc/library/datetime.rst:2153 +#: ../Doc/library/datetime.rst:2172 msgid "\\(8)" msgstr "\\(8)" -#: ../Doc/library/datetime.rst:2150 +#: ../Doc/library/datetime.rst:2177 msgid "``%u``" msgstr "``%u``" -#: ../Doc/library/datetime.rst:2150 +#: ../Doc/library/datetime.rst:2177 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:2150 +#: ../Doc/library/datetime.rst:2177 msgid "1, 2, ..., 7" msgstr "1, 2, ..., 7" -#: ../Doc/library/datetime.rst:2153 +#: ../Doc/library/datetime.rst:2180 msgid "``%V``" msgstr "``%V``" -#: ../Doc/library/datetime.rst:2153 +#: ../Doc/library/datetime.rst:2180 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." @@ -3409,15 +3456,19 @@ 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:2153 +#: ../Doc/library/datetime.rst:2180 msgid "01, 02, ..., 53" msgstr "01, 02, ..., 53" -#: ../Doc/library/datetime.rst:2160 +#: ../Doc/library/datetime.rst:2180 +msgid "\\(8), \\(9)" +msgstr "\\(8), \\(9)" + +#: ../Doc/library/datetime.rst:2187 msgid "``%G``, ``%u`` and ``%V`` were added." msgstr "``%G``, ``%u`` et ``%V`` ont été ajoutés." -#: ../Doc/library/datetime.rst:2166 +#: ../Doc/library/datetime.rst:2193 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 " @@ -3436,7 +3487,7 @@ msgstr "" "utilisez :meth:`locale.getlocale` pour déterminer l'encodage de la locale " "courante)." -#: ../Doc/library/datetime.rst:2175 +#: ../Doc/library/datetime.rst:2202 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." @@ -3445,7 +3496,7 @@ msgstr "" "[1, 9999], mais toutes les années < 1000 doivent être représentées sur " "quatre chiffres." -#: ../Doc/library/datetime.rst:2178 +#: ../Doc/library/datetime.rst:2205 msgid "" "In previous versions, :meth:`strftime` method was restricted to years >= " "1900." @@ -3453,13 +3504,13 @@ msgstr "" "Dans les versions précédentes, la méthode :meth:`strftime` était limitée aux " "années >= 1900." -#: ../Doc/library/datetime.rst:2182 +#: ../Doc/library/datetime.rst:2209 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:2187 +#: ../Doc/library/datetime.rst:2214 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 " @@ -3469,15 +3520,15 @@ msgstr "" "n'affecte l'heure extraite que si la directive ``%I`` est utilisée pour " "analyser l'heure." -#: ../Doc/library/datetime.rst:2191 +#: ../Doc/library/datetime.rst:2218 msgid "" "Unlike the :mod:`time` module, the :mod:`datetime` module does not support " "leap seconds." msgstr "" -"À l'inverse du module :mod:`time`, le module :mod:`datetime` ne supporte pas " -"les secondes intercalaires." +"À l'inverse du module :mod:`time`, le module :mod:`datetime` ne gère pas les " +"secondes intercalaires." -#: ../Doc/library/datetime.rst:2195 +#: ../Doc/library/datetime.rst:2222 msgid "" "When used with the :meth:`strptime` method, the ``%f`` directive accepts " "from one to six digits and zero pads on the right. ``%f`` is an extension " @@ -3490,7 +3541,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:2202 +#: ../Doc/library/datetime.rst:2229 msgid "" "For a naive object, the ``%z`` and ``%Z`` format codes are replaced by empty " "strings." @@ -3498,32 +3549,33 @@ 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:2205 +#: ../Doc/library/datetime.rst:2232 msgid "For an aware object:" msgstr "Pour un objet avisé :" -#: ../Doc/library/datetime.rst:2208 +#: ../Doc/library/datetime.rst:2235 msgid "" ":meth:`utcoffset` is transformed into a string of the form ±HHMM[SS[." -"uuuuuu]], where HH is a 2-digit string giving the number of UTC offset " -"hours, and 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 uuuuuu is " -"a 2-digit string giving the number of UTC offset microseconds. The uuuuuu " -"part is omitted when the offset is a whole number of minutes and both the " -"uuuuuu and the SS parts are omitted when the offset is a whole number of " -"minutes. For example, if :meth:`utcoffset` returns ``timedelta(hours=-3, " +"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 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 whole number of minutes. " +"For example, if :meth:`utcoffset` returns ``timedelta(hours=-3, " "minutes=-30)``, ``%z`` is replaced with the string ``'-0330'``." msgstr "" -"Le résultat de :meth:`utcoffset` est transformé en une chaîne sous la forme *" -"±HHMM[SS[.uuuuuu]]*, où HH est une chaîne de deux chiffres donnant le nombre " -"d'heures du décalage UTC, où MM est une chaîne de deux chiffres donnant le " -"nombre de minutes du décalage UTC, où SS est une chaîne de deux chiffres " -"donnant le chiffre en secondes du décalage UTC et où *uuuuuu* est une chaîne " -"de deux chiffres donnant le nombre en micro-secondes du décalage UTC. Par " -"exemple, si :meth:`utcoffset` renvoie ``timedelta(hours=-3, minutes=-30)``, " -"``%z`` est remplacé par la chaîne `'-0330'``." +"Le résultat de :meth:`utcoffset` est transformé en une chaîne sous la forme " +"``±HHMM[SS[.uuuuuu]]``, où ``HH`` est une chaîne de deux chiffres donnant le " +"nombre d'heures du décalage UTC, où ``MM`` est une chaîne de deux chiffres " +"donnant le nombre de minutes du décalage UTC, où ``SS`` est une chaîne de " +"deux chiffres donnant le nombre de secondes du décalage UTC et où ``ffffff`` " +"est une chaîne de six chiffres donnant le nombre en micro-secondes du " +"décalage UTC. Par exemple, si :meth:`utcoffset` renvoie " +"``timedelta(hours=-3, minutes=-30)``, ``%z`` est remplacé par la chaîne " +"`'-0330'``." -#: ../Doc/library/datetime.rst:2222 +#: ../Doc/library/datetime.rst:2249 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 " @@ -3535,7 +3587,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:2230 +#: ../Doc/library/datetime.rst:2257 msgid "" "If :meth:`tzname` returns ``None``, ``%Z`` is replaced by an empty string. " "Otherwise ``%Z`` is replaced by the returned value, which must be a string." @@ -3544,7 +3596,7 @@ msgstr "" "vide. Autrement ``%Z`` est remplacé par la valeur renvoyée, qui doit être " "une chaîne." -#: ../Doc/library/datetime.rst:2234 +#: ../Doc/library/datetime.rst:2261 msgid "" "When the ``%z`` directive is provided to the :meth:`strptime` method, an " "aware :class:`.datetime` object will be produced. The ``tzinfo`` of the " @@ -3554,17 +3606,17 @@ 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:2240 +#: ../Doc/library/datetime.rst:2267 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 " "specified." msgstr "" -"Quand utilisés avec la méthode :meth:`strptime`, ``%U`` et ``%W`` ne sont " -"utilisés dans les calculs que si le jour de la semaine et l'année calendaire " -"(``%Y``) sont spécifiés." +"Quand ces directives sont utilisées avec la méthode :meth:`strptime`, ``%U`` " +"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:2245 +#: ../Doc/library/datetime.rst:2272 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:" @@ -3576,10 +3628,35 @@ msgstr "" "dans la chaîne de formatage :meth:`strptime`. Notez aussi que ``%G`` et ``" "%Y`` ne sont pas interchangeables." -#: ../Doc/library/datetime.rst:2251 +#: ../Doc/library/datetime.rst:2278 +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." + +#: ../Doc/library/datetime.rst:2283 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/datetime.rst:2252 +#: ../Doc/library/datetime.rst:2284 msgid "If, that is, we ignore the effects of Relativity" msgstr "Si on ignore les effets de la Relativité" + +#: ../Doc/library/datetime.rst:2285 +msgid "" +"Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is " +"not a leap year." +msgstr "" +"Passer ``datetime.strptime(‘Feb 29’, ‘%b %d’)`` ne marchera pas car ``1900`` " +"n’est pas une année bissextile." + +#~ msgid "\\(4)" +#~ msgstr "\\(4)" + +#~ msgid "\\(7)" +#~ msgstr "\\(7)" diff --git a/library/decimal.po b/library/decimal.po index 988272dda..090d5b1cc 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-10-07 18:55+0200\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 1.8.11\n" #: ../Doc/library/decimal.rst:2 msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic" -msgstr "" +msgstr ":mod:`decimal` — Arithmétique décimale en virgule fixe et flottante" #: ../Doc/library/decimal.rst:15 msgid "**Source code:** :source:`Lib/decimal.py`" -msgstr "**Code source :** :source:`Lib/decimal.py`" +msgstr "**Code source :** :source:`Lib/decimal.py`" #: ../Doc/library/decimal.rst:33 msgid "" @@ -28,6 +29,9 @@ msgid "" "decimal floating point arithmetic. It offers several advantages over the :" "class:`float` datatype:" msgstr "" +"Le module :mod:`decimal` fournit une arithmétique en virgule flottante " +"rapide et produisant des arrondis mathématiquement corrects. Il possède " +"plusieurs avantages en comparaison au type :class:`float` :" #: ../Doc/library/decimal.rst:37 msgid "" @@ -37,6 +41,11 @@ msgid "" "people learn at school.\" -- excerpt from the decimal arithmetic " "specification." msgstr "" +"Le module ``decimal`` « est basé sur un modèle en virgule flottante conçu " +"pour les humains, qui suit ce principe directeur : l'ordinateur doit fournir " +"un modèle de calcul qui fonctionne de la même manière que le calcul qu'on " +"apprend à l'école » -- extrait (traduit) de la spécification de " +"l'arithmétique décimale." #: ../Doc/library/decimal.rst:42 msgid "" @@ -45,6 +54,12 @@ msgid "" "floating point. End users typically would not expect ``1.1 + 2.2`` to " "display as :const:`3.3000000000000003` as it does with binary floating point." msgstr "" +"Les nombres décimaux peuvent être représentés exactement en base décimale " +"flottante. En revanche, des nombres tels que :const:`1.1` ou :const:`1.2` " +"n'ont pas de représentation exacte en base binaire flottante. L'utilisateur " +"final ne s'attend typiquement pas à obtenir :const:`3.3000000000000003` " +"lorsqu'il saisit ``1.1 + 2.2``, ce qui se passe en arithmétique binaire à " +"virgule flottante." #: ../Doc/library/decimal.rst:47 msgid "" @@ -55,6 +70,13 @@ msgid "" "accumulate. For this reason, decimal is preferred in accounting applications " "which have strict equality invariants." msgstr "" +"Ces inexactitudes ont des conséquences en arithmétique. En base décimale à " +"virgule flottante, ``0.1 + 0.1 + 0.1 - 0.3`` est exactement égal à zéro. En " +"virgule flottante binaire, l'ordinateur l'évalue à :const:" +"`5.5511151231257827e-017`. Bien que très proche de zéro, cette différence " +"induit des erreurs lors des tests d'égalité, erreurs qui peuvent " +"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 msgid "" @@ -65,6 +87,13 @@ msgid "" "multiplicands. For instance, ``1.3 * 1.2`` gives :const:`1.56` while ``1.30 " "* 1.20`` gives :const:`1.5600`." msgstr "" +"Le module ``decimal`` incorpore la notion de chiffres significatifs, tels " +"que ``1.30 + 1.20`` est égal à :const:`2.50`. Le dernier zéro n'est conservé " +"que pour respecter le nombre de chiffres significatifs. C'est également " +"l'affichage préféré pour représenter des sommes d'argent. Pour la " +"multiplication, l'approche « scolaire » utilise tout les chiffres présents " +"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 msgid "" @@ -72,6 +101,10 @@ msgid "" "alterable precision (defaulting to 28 places) which can be as large as " "needed for a given problem:" msgstr "" +"Contrairement à l'arithmétique en virgule flottante binaire, le module " +"``decimal`` possède un paramètre de précision ajustable (par défaut à 28 " +"chiffres significatifs) qui peut être aussi élevée que nécessaire pour un " +"problème donné :" #: ../Doc/library/decimal.rst:73 msgid "" @@ -82,6 +115,13 @@ msgid "" "signal handling. This includes an option to enforce exact arithmetic by " "using exceptions to block any inexact operations." msgstr "" +"L'arithmétique binaire et décimale en virgule flottante sont implémentées " +"selon des standards publiés. Alors que le type ``float`` n'expose qu'une " +"faible portion de ses capacités, le module ``decimal`` expose tous les " +"composants nécessaires du standard. Lorsque nécessaire, le développeur a un " +"contrôle total de la gestion de signal et de l'arrondi. Cela inclut la " +"possibilité de forcer une arithmétique exacte en utilisant des exceptions " +"pour bloquer toute opération inexacte." #: ../Doc/library/decimal.rst:80 msgid "" @@ -90,12 +130,18 @@ msgid "" "rounded floating-point arithmetic.\" -- excerpt from the decimal arithmetic " "specification." msgstr "" +"Le module ``decimal`` a été conçu pour gérer « sans préjugé, à la fois une " +"arithmétique décimale non-arrondie (aussi appelée arithmétique en virgule " +"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 msgid "" "The module design is centered around three concepts: the decimal number, " "the context for arithmetic, and signals." 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 msgid "" @@ -105,6 +151,11 @@ msgid "" "`Infinity`, :const:`-Infinity`, and :const:`NaN`. The standard also " "differentiates :const:`-0` from :const:`+0`." msgstr "" +"Un ``Decimal`` est immuable. Il a un signe, un coefficient, et un exposant. " +"Pour préserver le nombre de chiffres significatifs, les zéros en fin de " +"chaîne ne sont pas tronqués. Les décimaux incluent aussi des valeurs " +"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 msgid "" @@ -115,6 +166,13 @@ msgid "" "`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :const:" "`ROUND_HALF_UP`, :const:`ROUND_UP`, and :const:`ROUND_05UP`." msgstr "" +"Le contexte de l'arithmétique est un environnement qui permet de configurer " +"une précision, une règle pour l'arrondi, des limites sur l'exposant, des " +"options indiquant le résultat des opérations et si les signaux (remontés " +"lors d'opérations illégales) sont traités comme des exceptions Python. Les " +"options d'arrondi incluent :const:`ROUND_CEILING`, :const:`ROUND_DOWN`, :" +"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 msgid "" @@ -126,6 +184,13 @@ msgid "" "`Subnormal`, :const:`Overflow`, :const:`Underflow` and :const:" "`FloatOperation`." msgstr "" +"Les signaux sont des groupes de conditions exceptionnelles qui surviennent " +"durant le calcul. Selon les besoins de l'application, les signaux peuvent " +"être ignorés, considérés comme de l'information, ou bien traités comme des " +"exceptions. Les signaux dans le module ``decimal`` sont : :const:`Clamped`, :" +"const:`InvalidOperation`, :const:`DivisionByZero`, :const:`Inexact`, :const:" +"`Rounded`, :const:`Subnormal`, :const:`Overflow`, :const:`Underflow` et :" +"const:`FloatOperation`." #: ../Doc/library/decimal.rst:108 msgid "" @@ -134,16 +199,23 @@ msgid "" "one, an exception is raised. Flags are sticky, so the user needs to reset " "them before monitoring a calculation." msgstr "" +"Chaque signal est configurable indépendamment. Quand une opération illégale " +"survient, le signal est mis à ``1``, puis s'il est configuré pour, une " +"exception est levée. La mise à ``1`` est persistante, l'utilisateur doit " +"donc les remettre à zéro avant de commencer un calcul qu'il souhaite " +"surveiller." #: ../Doc/library/decimal.rst:116 msgid "" "IBM's General Decimal Arithmetic Specification, `The General Decimal " "Arithmetic Specification `_." msgstr "" +"La spécification d'IBM sur l'arithmétique décimale : `The General Decimal " +"Arithmetic Specification `_." #: ../Doc/library/decimal.rst:125 msgid "Quick-start Tutorial" -msgstr "" +msgstr "Introduction pratique" #: ../Doc/library/decimal.rst:127 msgid "" @@ -151,6 +223,9 @@ msgid "" "current context with :func:`getcontext` and, if necessary, setting new " "values for precision, rounding, or enabled traps::" msgstr "" +"Commençons par importer le module, regarder le contexte actuel avec :func:" +"`getcontext`, et si nécessaire configurer la précision, l'arrondi, et la " +"gestion des signaux ::" #: ../Doc/library/decimal.rst:139 msgid "" @@ -160,6 +235,12 @@ msgid "" "values such as :const:`NaN` which stands for \"Not a number\", positive and " "negative :const:`Infinity`, and :const:`-0`::" msgstr "" +"Les instances de ``Decimal`` peuvent être construites avec des ``int``, des " +"``str``, des ``floats`` ou des ``tuples``. La construction depuis un entier " +"ou un ``float`` effectue la conversion exacte de cet entier ou de ce " +"``float``. Les nombres décimaux incluent des valeurs spéciales telles que :" +"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 msgid "" @@ -167,6 +248,9 @@ msgid "" "decimals and floats in constructors or ordering comparisons raises an " "exception::" msgstr "" +"Si un signal :exc:`FloatOperation` est détecté, un mélange accidentel " +"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 msgid "" @@ -174,22 +258,31 @@ msgid "" "digits input. Context precision and rounding only come into play during " "arithmetic operations." msgstr "" +"Le nombre de chiffres significatifs d'un nouvel objet ``Decimal`` est " +"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 msgid "" "If the internal limits of the C version are exceeded, constructing a decimal " "raises :class:`InvalidOperation`::" 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 msgid "" "Decimals interact well with much of the rest of Python. Here is a small " "decimal floating point flying circus:" 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 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 msgid "" @@ -197,6 +290,9 @@ msgid "" "method is useful for monetary applications that often round results to a " "fixed number of places:" msgstr "" +"La méthode :meth:`quantize` arrondit un nombre à un exposant fixe. Cette " +"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 msgid "" @@ -204,6 +300,9 @@ msgid "" "and allows the settings to be changed. This approach meets the needs of " "most applications." msgstr "" +"Comme montré plus haut, la fonction :func:`getcontext` accède au contexte " +"actuel et permet de modifier les paramètres. Cette approche répond aux " +"besoins de la plupart des applications." #: ../Doc/library/decimal.rst:266 msgid "" @@ -211,6 +310,9 @@ msgid "" "the Context() constructor. To make an alternate active, use the :func:" "`setcontext` function." msgstr "" +"Pour un travail plus avancé, il peut être utile de créer des contextes " +"alternatifs en utilisant le constructeur de ``Context``. Pour activer cet " +"objet ``Context``, utilisez la fonction :func:`setcontext`." #: ../Doc/library/decimal.rst:270 msgid "" @@ -219,6 +321,10 @@ msgid "" "`ExtendedContext`. The former is especially useful for debugging because " "many of the traps are enabled:" msgstr "" +"En accord avec le standard, le module :mod:`decimal` fournit des objets " +"Context standards, :const:`BasicContext` et :const:`ExtendedContext`. Le " +"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 msgid "" @@ -227,6 +333,11 @@ msgid "" "cleared, so it is best to clear the flags before each set of monitored " "computations by using the :meth:`clear_flags` method. ::" msgstr "" +"Les objets ``Context`` ont aussi des options pour détecter des opérations " +"illégales lors des calculs. Ces options restent activées jusqu'à ce qu'elles " +"soit remises à zéro de manière explicite. Il convient donc de remettre à " +"zéro ces options avant chaque inspection de chaque calcul, avec la méthode :" +"meth:`clear_flags`. ::" #: ../Doc/library/decimal.rst:312 msgid "" @@ -234,12 +345,18 @@ msgid "" "rounded (digits beyond the context precision were thrown away) and that the " "result is inexact (some of the discarded digits were non-zero)." msgstr "" +"Les options montrent que l'approximation de :const:`Pi` par une fraction a " +"été arrondie (les chiffres au delà de la précision spécifiée par l'objet " +"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 msgid "" "Individual traps are set using the dictionary in the :attr:`traps` field of " "a context:" 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 msgid "" @@ -249,14 +366,20 @@ msgid "" "the bulk of the program manipulates the data no differently than with other " "Python numeric types." msgstr "" +"La plupart des applications n'ajustent l'objet ``Context`` qu'une seule " +"fois, au démarrage. Et, dans beaucoup d'applications, les données sont " +"convertie une fois pour toutes en :class:`Decimal`. Une fois le ``Context`` " +"initialisé, et les objets ``Decimal`` créés, l'essentiel du programme " +"manipule la donnée de la même manière qu'avec les autres types numériques " +"Python." #: ../Doc/library/decimal.rst:343 msgid "Decimal objects" -msgstr "" +msgstr "Les objets Decimal" #: ../Doc/library/decimal.rst:348 msgid "Construct a new :class:`Decimal` object based from *value*." -msgstr "" +msgstr "Construire un nouvel objet :class:`Decimal` à partir de *value*." #: ../Doc/library/decimal.rst:350 msgid "" @@ -266,6 +389,11 @@ msgid "" "after leading and trailing whitespace characters, as well as underscores " "throughout, are removed::" msgstr "" +"*value* peut être un entier, une chaîne de caractères, un tuple, :class:" +"`float`, ou une autre instance de :class:`Decimal`. Si *value* n'est pas " +"fourni, le constructeur renvoie ``Decimal('0')``. Si *value* est une chaîne " +"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 msgid "" @@ -274,6 +402,10 @@ msgid "" "example, Arabic-Indic and Devanāgarī digits) along with the fullwidth digits " "``'\\uff10'`` through ``'\\uff19'``." msgstr "" +"Les chiffres codés en Unicode sont aussi autorisés, là ou ``digit`` " +"apparaît. Cela inclut des chiffres décimaux venant d'autres alphabets (par " +"exemple les chiffres indo-arabes ou Devanagari) ainsi que les chiffres de " +"pleine largeur ``'\\uff10'`` jusqu'à ``'\\uff19'``." #: ../Doc/library/decimal.rst:371 msgid "" @@ -282,6 +414,10 @@ msgid "" "digits, and an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), " "-3))`` returns ``Decimal('1.414')``." msgstr "" +"Si *value* est un :class:`tuple`, il doit avoir 3 éléments, le signe (:const:" +"`0` pour positif ou :const:`1` pour négatif), un :class:`tuple` de chiffres, " +"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 msgid "" @@ -291,6 +427,11 @@ msgid "" "``Decimal(float('1.1'))`` converts to " "``Decimal('1.100000000000000088817841970012523233890533447265625')``." msgstr "" +"Si *value* est un :class:`float`, la valeur en binaire flottant est " +"convertie exactement à son équivalent décimal. Cette conversion peut parfois " +"nécessiter 53 chiffres significatifs ou plus. Par exemple, " +"``Decimal(float('1.1'))`` devient " +"``Decimal('1.100000000000000088817841970012523233890533447265625')``." #: ../Doc/library/decimal.rst:382 msgid "" @@ -299,6 +440,10 @@ msgid "" "``Decimal('3.00000')`` records all five zeros even if the context precision " "is only three." msgstr "" +"La précision spécifiée dans Context n'affecte pas le nombre de chiffres " +"stockés. Cette valeur est déterminée exclusivement par le nombre de chiffres " +"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 msgid "" @@ -307,28 +452,37 @@ msgid "" "exception is raised; otherwise, the constructor returns a new Decimal with " "the value of :const:`NaN`." msgstr "" +"L'objectif de l'argument *context* est de déterminer ce que Python doit " +"faire si *value* est une chaîne avec un mauvais format. Si l'option :const:" +"`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 msgid "Once constructed, :class:`Decimal` objects are immutable." -msgstr "" +msgstr "Une fois construit, les objets :class:`Decimal` sont immuables." #: ../Doc/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 msgid "" ":class:`float` arguments raise an exception if the :exc:`FloatOperation` " "trap is set. By default the trap is off." 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 msgid "" "Underscores are allowed for grouping, as with integral and floating-point " "literals in code." 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 msgid "" @@ -339,6 +493,13 @@ msgid "" "compared, sorted, and coerced to another type (such as :class:`float` or :" "class:`int`)." msgstr "" +"Les objets ``Decimal`` partagent beaucoup de propriétés avec les autres " +"types numériques natifs tels que :class:`float` et :class:`int`. Toutes les " +"opérations mathématiques et méthodes sont conservées. De même les objets " +"``Decimal`` peuvent être copiés, sérialisés via le module ``pickle``, " +"affichés, utilisés comme clé de dictionnaire, éléments d'ensembles, " +"comparés, classés, et convertis vers un autre type (tel que :class:`float` " +"ou :class:`int`)." #: ../Doc/library/decimal.rst:413 msgid "" @@ -347,6 +508,10 @@ msgid "" "applied to Decimal objects, the sign of the result is the sign of the " "*dividend* rather than the sign of the divisor::" 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 ::" #: ../Doc/library/decimal.rst:423 msgid "" @@ -354,12 +519,17 @@ msgid "" "integer part of the true quotient (truncating towards zero) rather than its " "floor, so as to preserve the usual identity ``x == (x // y) * y + x % y``::" 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`` ::" #: ../Doc/library/decimal.rst:432 msgid "" "The ``%`` and ``//`` operators implement the ``remainder`` and ``divide-" "integer`` operations (respectively) as described in the specification." 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 msgid "" @@ -371,12 +541,21 @@ msgid "" "This avoids confusing results when doing equality comparisons between " "numbers of different types." msgstr "" +"Les objets ``Decimal`` ne peuvent généralement pas être combinés avec des " +"``float`` ou des objets :class:`fractions.Fraction` lors d'opérations " +"arithmétiques : tout addition entre un :class:`Decimal` avec un :class:" +"`float`, par exemple, lève une exception :exc:`TypeError`. Cependant, il est " +"possible d'utiliser les opérateurs de comparaison entre instances de :class:" +"`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 msgid "" "Mixed-type comparisons between :class:`Decimal` instances and other numeric " "types are now fully supported." 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 msgid "" @@ -404,6 +583,8 @@ msgid "" "The conversion is exact. Raise OverflowError on infinities and ValueError " "on NaNs." msgstr "" +"La conversion est exacte. Lève une ``OverflowError`` sur l'infini et " +"``ValueError`` sur les ``Nan``'s." #: ../Doc/library/decimal.rst:475 msgid "" @@ -1802,7 +1983,7 @@ msgstr "" #: ../Doc/library/decimal.rst:1814 msgid "Recipes" -msgstr "" +msgstr "Cas pratiques" #: ../Doc/library/decimal.rst:1816 msgid "" @@ -1812,17 +1993,20 @@ msgstr "" #: ../Doc/library/decimal.rst:1971 msgid "Decimal FAQ" -msgstr "" +msgstr "FAQ *decimal*" #: ../Doc/library/decimal.rst:1973 msgid "" "Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way " "to minimize typing when using the interactive interpreter?" 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 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 msgid "" @@ -1944,3 +2128,21 @@ msgid "" "Alternatively, inputs can be rounded upon creation using the :meth:`Context." "create_decimal` method:" msgstr "" + +#: ../Doc/library/decimal.rst:2119 +msgid "Q. Is the CPython implementation fast for large numbers?" +msgstr "" + +#: ../Doc/library/decimal.rst:2121 +msgid "" +"A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " +"the decimal module integrate the high speed `libmpdec `_ library for arbitrary precision " +"correctly-rounded decimal floating point arithmetic. ``libmpdec`` uses " +"`Karatsuba multiplication `_ for medium-sized numbers and the `Number Theoretic " +"Transform `_ for very " +"large numbers. However, to realize this performance gain, the context needs " +"to be set for unrounded calculations." +msgstr "" diff --git a/library/development.po b/library/development.po index 0ab1ee3b3..04f593dc6 100644 --- a/library/development.po +++ b/library/development.po @@ -5,14 +5,14 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2018-09-29 15:32+0200\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" -"Last-Translator: \n" "X-Generator: Poedit 2.0.2\n" #: ../Doc/library/development.rst:5 diff --git a/library/difflib.po b/library/difflib.po index e3ffa5a7b..777976d55 100644 --- a/library/difflib.po +++ b/library/difflib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+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/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 msgid "**Source code:** :source:`Lib/difflib.py`" @@ -46,6 +46,20 @@ msgid "" "minimal edit sequences, but does tend to yield matches that \"look right\" " "to people." msgstr "" +"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." #: ../Doc/library/difflib.rst:40 msgid "" @@ -55,6 +69,12 @@ 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 msgid "" @@ -67,10 +87,20 @@ msgid "" "This heuristic can be turned off by setting the ``autojunk`` argument to " "``False`` when creating the :class:`SequenceMatcher`." msgstr "" +"**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`." #: ../Doc/library/difflib.rst:54 ../Doc/library/difflib.rst:383 msgid "The *autojunk* parameter." -msgstr "" +msgstr "Le paramètre *autojunk*." #: ../Doc/library/difflib.rst:60 msgid "" @@ -79,16 +109,23 @@ msgid "" "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 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 msgid "Code" -msgstr "" +msgstr "Code" -#: ../Doc/library/difflib.rst:68 ../Doc/library/difflib.rst:489 +#: ../Doc/library/difflib.rst:68 ../Doc/library/difflib.rst:490 msgid "Meaning" msgstr "Signification" @@ -98,7 +135,7 @@ msgstr "``'- '``" #: ../Doc/library/difflib.rst:70 msgid "line unique to sequence 1" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 1" #: ../Doc/library/difflib.rst:72 msgid "``'+ '``" @@ -106,7 +143,7 @@ msgstr "``'+ '``" #: ../Doc/library/difflib.rst:72 msgid "line unique to sequence 2" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 2" #: ../Doc/library/difflib.rst:74 msgid "``' '``" @@ -114,7 +151,7 @@ msgstr "``' '``" #: ../Doc/library/difflib.rst:74 msgid "line common to both sequences" -msgstr "" +msgstr "ligne commune aux deux séquences" #: ../Doc/library/difflib.rst:76 msgid "``'? '``" @@ -122,7 +159,7 @@ msgstr "``'? '``" #: ../Doc/library/difflib.rst:76 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 msgid "" @@ -130,6 +167,10 @@ msgid "" "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 msgid "" @@ -138,26 +179,35 @@ msgid "" "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 msgid "The constructor for this class is:" -msgstr "" +msgstr "Le constructeur pour cette classe est :" #: ../Doc/library/difflib.rst:96 msgid "Initializes instance of :class:`HtmlDiff`." -msgstr "" +msgstr "Initialise l'instance de :class:`HtmlDiff`." #: ../Doc/library/difflib.rst:98 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 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 msgid "" @@ -166,10 +216,14 @@ msgid "" "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 msgid "The following methods are public:" -msgstr "" +msgstr "Les méthodes suivantes sont publiques :" #: ../Doc/library/difflib.rst:113 msgid "" @@ -177,12 +231,19 @@ msgid "" "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 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 msgid "" @@ -196,12 +257,25 @@ 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:130 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:136 msgid "" @@ -209,24 +283,34 @@ msgid "" "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:140 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:143 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:149 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:152 msgid "" @@ -243,12 +327,20 @@ 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:162 ../Doc/library/difflib.rst:293 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:165 ../Doc/library/difflib.rst:296 msgid "" @@ -258,10 +350,18 @@ 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:188 ../Doc/library/difflib.rst:317 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:193 msgid "" @@ -528,21 +628,21 @@ msgstr "" #: ../Doc/library/difflib.rst:460 msgid "" -"Return list of triples describing 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*." +"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*." msgstr "" -#: ../Doc/library/difflib.rst:464 +#: ../Doc/library/difflib.rst:465 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')`` " "are adjacent triples in the list, and the second is not the last triple in " -"the list, then ``i+n != i'`` or ``j+n != j'``; in other words, adjacent " +"the list, then ``i+n < i'`` or ``j+n < j'``; in other words, adjacent " "triples always describe non-adjacent equal blocks." msgstr "" -#: ../Doc/library/difflib.rst:481 +#: ../Doc/library/difflib.rst:482 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 == " @@ -550,95 +650,95 @@ msgid "" "tuple, and, likewise, *j1* equal to the previous *j2*." msgstr "" -#: ../Doc/library/difflib.rst:486 +#: ../Doc/library/difflib.rst:487 msgid "The *tag* values are strings, with these meanings:" msgstr "" -#: ../Doc/library/difflib.rst:489 +#: ../Doc/library/difflib.rst:490 msgid "Value" msgstr "Valeur" -#: ../Doc/library/difflib.rst:491 +#: ../Doc/library/difflib.rst:492 msgid "``'replace'``" msgstr "``'replace'``" -#: ../Doc/library/difflib.rst:491 +#: ../Doc/library/difflib.rst:492 msgid "``a[i1:i2]`` should be replaced by ``b[j1:j2]``." msgstr "" -#: ../Doc/library/difflib.rst:494 +#: ../Doc/library/difflib.rst:495 msgid "``'delete'``" msgstr "``'delete'``" -#: ../Doc/library/difflib.rst:494 +#: ../Doc/library/difflib.rst:495 msgid "``a[i1:i2]`` should be deleted. Note that ``j1 == j2`` in this case." msgstr "" -#: ../Doc/library/difflib.rst:497 +#: ../Doc/library/difflib.rst:498 msgid "``'insert'``" msgstr "``'insert'``" -#: ../Doc/library/difflib.rst:497 +#: ../Doc/library/difflib.rst:498 msgid "" "``b[j1:j2]`` should be inserted at ``a[i1:i1]``. Note that ``i1 == i2`` in " "this case." msgstr "" -#: ../Doc/library/difflib.rst:501 +#: ../Doc/library/difflib.rst:502 msgid "``'equal'``" msgstr "``'equal'``" -#: ../Doc/library/difflib.rst:501 +#: ../Doc/library/difflib.rst:502 msgid "``a[i1:i2] == b[j1:j2]`` (the sub-sequences are equal)." msgstr "" -#: ../Doc/library/difflib.rst:505 +#: ../Doc/library/difflib.rst:506 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/difflib.rst:522 +#: ../Doc/library/difflib.rst:523 msgid "Return a :term:`generator` of groups with up to *n* lines of context." msgstr "" -#: ../Doc/library/difflib.rst:524 +#: ../Doc/library/difflib.rst:525 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:528 +#: ../Doc/library/difflib.rst:529 msgid "The groups are returned in the same format as :meth:`get_opcodes`." msgstr "" -#: ../Doc/library/difflib.rst:533 +#: ../Doc/library/difflib.rst:534 msgid "" "Return a measure of the sequences' similarity as a float in the range [0, 1]." msgstr "" -#: ../Doc/library/difflib.rst:536 +#: ../Doc/library/difflib.rst:537 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:540 +#: ../Doc/library/difflib.rst:541 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:548 +#: ../Doc/library/difflib.rst:549 msgid "Return an upper bound on :meth:`ratio` relatively quickly." msgstr "" -#: ../Doc/library/difflib.rst:553 +#: ../Doc/library/difflib.rst:554 msgid "Return an upper bound on :meth:`ratio` very quickly." msgstr "" -#: ../Doc/library/difflib.rst:556 +#: ../Doc/library/difflib.rst:557 msgid "" "The three methods that return the ratio of matching to total characters can " "give different results due to differing levels of approximation, although :" @@ -646,57 +746,57 @@ msgid "" "as :meth:`ratio`:" msgstr "" -#: ../Doc/library/difflib.rst:573 +#: ../Doc/library/difflib.rst:574 msgid "SequenceMatcher Examples" msgstr "" -#: ../Doc/library/difflib.rst:575 +#: ../Doc/library/difflib.rst:576 msgid "This example compares two strings, considering blanks to be \"junk\":" msgstr "" -#: ../Doc/library/difflib.rst:581 +#: ../Doc/library/difflib.rst:582 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:588 +#: ../Doc/library/difflib.rst:589 msgid "" "If you're only interested in where the sequences match, :meth:" "`get_matching_blocks` is handy:" msgstr "" -#: ../Doc/library/difflib.rst:597 +#: ../Doc/library/difflib.rst:598 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:601 +#: ../Doc/library/difflib.rst:602 msgid "" "If you want to know how to change the first sequence into the second, use :" "meth:`get_opcodes`:" msgstr "" -#: ../Doc/library/difflib.rst:612 +#: ../Doc/library/difflib.rst:613 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:616 +#: ../Doc/library/difflib.rst:617 msgid "" "`Simple version control recipe `_ for a small application built with :class:`SequenceMatcher`." msgstr "" -#: ../Doc/library/difflib.rst:624 +#: ../Doc/library/difflib.rst:625 msgid "Differ Objects" msgstr "" -#: ../Doc/library/difflib.rst:626 +#: ../Doc/library/difflib.rst:627 msgid "" "Note that :class:`Differ`\\ -generated deltas make no claim to be " "**minimal** diffs. To the contrary, minimal diffs are often counter-" @@ -706,31 +806,31 @@ msgid "" "longer diff." msgstr "" -#: ../Doc/library/difflib.rst:632 +#: ../Doc/library/difflib.rst:633 msgid "The :class:`Differ` class has this constructor:" msgstr "" -#: ../Doc/library/difflib.rst:637 +#: ../Doc/library/difflib.rst:638 msgid "" "Optional keyword parameters *linejunk* and *charjunk* are for filter " "functions (or ``None``):" msgstr "" -#: ../Doc/library/difflib.rst:640 +#: ../Doc/library/difflib.rst:641 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:644 +#: ../Doc/library/difflib.rst:645 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:648 +#: ../Doc/library/difflib.rst:649 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 " @@ -738,17 +838,17 @@ msgid "" "*isjunk* parameter for an explanation." msgstr "" -#: ../Doc/library/difflib.rst:654 +#: ../Doc/library/difflib.rst:655 msgid "" ":class:`Differ` objects are used (deltas generated) via a single method:" msgstr "" -#: ../Doc/library/difflib.rst:659 +#: ../Doc/library/difflib.rst:660 msgid "" "Compare two sequences of lines, and generate the delta (a sequence of lines)." msgstr "" -#: ../Doc/library/difflib.rst:661 +#: ../Doc/library/difflib.rst:662 msgid "" "Each sequence must contain individual single-line strings ending with " "newlines. Such sequences can be obtained from the :meth:`~io.IOBase." @@ -757,11 +857,11 @@ msgid "" "IOBase.writelines` method of a file-like object." msgstr "" -#: ../Doc/library/difflib.rst:672 +#: ../Doc/library/difflib.rst:673 msgid "Differ Example" msgstr "" -#: ../Doc/library/difflib.rst:674 +#: ../Doc/library/difflib.rst:675 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 " @@ -769,34 +869,34 @@ msgid "" "objects):" msgstr "" -#: ../Doc/library/difflib.rst:693 +#: ../Doc/library/difflib.rst:694 msgid "Next we instantiate a Differ object:" msgstr "" -#: ../Doc/library/difflib.rst:697 +#: ../Doc/library/difflib.rst:698 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:701 +#: ../Doc/library/difflib.rst:702 msgid "Finally, we compare the two:" msgstr "" -#: ../Doc/library/difflib.rst:705 +#: ../Doc/library/difflib.rst:706 msgid "``result`` is a list of strings, so let's pretty-print it:" msgstr "" -#: ../Doc/library/difflib.rst:720 +#: ../Doc/library/difflib.rst:721 msgid "As a single multi-line string it looks like this:" msgstr "" -#: ../Doc/library/difflib.rst:739 +#: ../Doc/library/difflib.rst:740 msgid "A command-line interface to difflib" msgstr "" -#: ../Doc/library/difflib.rst:741 +#: ../Doc/library/difflib.rst:742 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 adee22ed3..1141b4328 100644 --- a/library/dis.po +++ b/library/dis.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-07-18 21:03+0200\n" +"Last-Translator: Aya Keddam \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/dis.rst:2 msgid ":mod:`dis` --- Disassembler for Python bytecode" -msgstr "" +msgstr ":mod:`dis` – Désassembleur pour le code intermédiaire de Python" #: ../Doc/library/dis.rst:7 msgid "**Source code:** :source:`Lib/dis.py`" @@ -29,6 +30,10 @@ msgid "" "is defined in the file :file:`Include/opcode.h` and used by the compiler and " "the interpreter." msgstr "" +"La bibliothèque :mod:`dis` supporte l'analyse du :term:`bytecode` CPython " +"en le désassemblant. Le code intermédiaire CPython, que cette bibliothèque " +"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 msgid "" @@ -37,30 +42,39 @@ msgid "" "between versions of Python. Use of this module should not be considered to " "work across Python VMs or Python releases." msgstr "" +"Le code intermédiaire est un détail d'implémentation de l'interpréteur " +"CPython. Il n'y a pas de garantie que le code intermédiaire sera ajouté, " +"retiré, ou modifié dans les différentes versions de Python. L'utilisation de " +"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 msgid "" "Use 2 bytes for each instruction. Previously the number of bytes varied by " "instruction." msgstr "" +"Utilisez 2 bits pour chaque instruction. Avant, le nombre de bits variait " +"par instruction." #: ../Doc/library/dis.rst:28 msgid "Example: Given the function :func:`myfunc`::" -msgstr "" +msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::" #: ../Doc/library/dis.rst:33 msgid "" "the following command can be used to display the disassembly of :func:" "`myfunc`::" msgstr "" +"la commande suivante peut-être utilisé pour afficher le désassemblage de :" +"func:`myfunc` ::" #: ../Doc/library/dis.rst:42 msgid "(The \"2\" is a line number)." -msgstr "" +msgstr "(Le \"2\" est un numéro de ligne)." #: ../Doc/library/dis.rst:45 msgid "Bytecode analysis" -msgstr "" +msgstr "Analyse du code intermédiaire" #: ../Doc/library/dis.rst:49 msgid "" @@ -68,6 +82,9 @@ msgid "" "class:`Bytecode` object that provides easy access to details of the compiled " "code." msgstr "" +"L'analyse de l'*API* code intermédiaire permet de rassembler des blocs de " +"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 msgid "" @@ -75,6 +92,10 @@ msgid "" "generator, coroutine, method, string of source code, or a code object (as " "returned by :func:`compile`)." msgstr "" +"Analyse le code intermédiaire correspondant à une fonction, un générateur, " +"un générateur asynchrone, une coroutine, une méthode, une chaîne de " +"caractères du code source, ou bien une classe (comme retourne la fonction :" +"func:`compile`)." #: ../Doc/library/dis.rst:60 msgid "" @@ -82,6 +103,10 @@ msgid "" "most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " "instance yields the bytecode operations as :class:`Instruction` instances." msgstr "" +"Ceci est *wrapper* sur plusieurs fonctions de la liste ci-dessous, " +"notamment :func:`get_instructions`, étant donné qu'une itération sur une " +"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 msgid "" @@ -90,6 +115,10 @@ msgid "" "source line information (if any) is taken directly from the disassembled " "code object." msgstr "" +"Si *first_line* ne vaut pas ``None``, elle indique le nombre de la ligne qui " +"doit être considérée comme première ligne source dans le code désassemblé. " +"Autrement, les informations sur la ligne source sont prises directement à " +"partir de la classe du code désassemblé." #: ../Doc/library/dis.rst:69 msgid "" @@ -97,37 +126,49 @@ msgid "" "the disassembled code. Setting this means :meth:`.dis` will display a " "\"current instruction\" marker against the specified opcode." msgstr "" +"Si la valeur de *current_offset* est différente de ``None``, c'est une " +"référence à un offset d'une instruction dans le code désassemblé. Cela veut " +"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 msgid "" "Construct a :class:`Bytecode` instance from the given traceback, setting " "*current_offset* to the instruction responsible for the exception." 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 msgid "The compiled code object." -msgstr "" +msgstr "Le code compilé objet." #: ../Doc/library/dis.rst:84 msgid "The first source line of the code object (if available)" -msgstr "" +msgstr "La première ligne source du code objet (si disponible)" #: ../Doc/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)." msgstr "" +"Retourne une vue formatée des opérations du code intermédiaire (la même que " +"celle envoyée par :func:`dis.dis`, mais comme une chaîne de caractères de " +"plusieurs lignes )." #: ../Doc/library/dis.rst:93 msgid "" "Return a formatted multi-line string with detailed information about the " "code object, like :func:`code_info`." 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 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 msgid "Example::" @@ -135,7 +176,7 @@ msgstr "Exemple ::" #: ../Doc/library/dis.rst:112 msgid "Analysis functions" -msgstr "" +msgstr "Analyse de fonctions" #: ../Doc/library/dis.rst:114 msgid "" @@ -144,6 +185,10 @@ msgid "" "a single operation is being performed, so the intermediate analysis object " "isn't useful:" msgstr "" +"La bibliothèque :mod:`dis` comprend également l'analyse des fonctions " +"suivantes, qui envoient l'entrée directement à la sortie souhaitée. Elles " +"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 msgid "" @@ -151,6 +196,10 @@ msgid "" "for the supplied function, generator, asynchronous generator, coroutine, " "method, source code string or code object." msgstr "" +"Retourne une chaîne de caractères de plusieurs lignes formatée avec des " +"informations détaillées sur l'objet code pour les fonctions données, les " +"générateurs asynchrone, coroutine, la méthode, la chaine de caractères du " +"code source ou objet." #: ../Doc/library/dis.rst:124 msgid "" @@ -158,6 +207,10 @@ msgid "" "dependent and they may change arbitrarily across Python VMs or Python " "releases." msgstr "" +"Il est à noter que le contenu exact des chaînes de caractères figurant dans " +"les informations du code dépendent fortement sur l'implémentation, et " +"peuvent changer arbitrairement sous machines virtuelles Python ou les " +"versions de Python." #: ../Doc/library/dis.rst:136 msgid "" @@ -165,22 +218,28 @@ msgid "" "source code string or code object to *file* (or ``sys.stdout`` if *file* is " "not specified)." msgstr "" +"Affiche des informations détaillées sur le code de la fonction fournie, la " +"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 msgid "" "This is a convenient shorthand for ``print(code_info(x), file=file)``, " "intended for interactive exploration at the interpreter prompt." msgstr "" +"Ceci est un raccourci convenable de ``print(code_info(x), file=file)``, " +"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 msgid "Added *file* parameter." -msgstr "" +msgstr "Ajout du paramètre *file*." #: ../Doc/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 couroutine, a " +"method, a function, a generator, an asynchronous generator, a coroutine, a " "code object, a string of source code or a byte sequence of raw bytecode. For " "a module, it disassembles all functions. For a class, it disassembles all " "methods (including class and static methods). For a code object or sequence " @@ -191,6 +250,20 @@ msgid "" "`compile` built-in function before being disassembled. If no object is " "provided, this function disassembles the last traceback." msgstr "" +"Désassemble l'objet *x*. *x* peut être une bibliothèque , une classe, une " +"méthode, une fonction, un générateur, un générateur asynchrone, une " +"coroutine, un code objet, une chaine de caractères du coude source ou une " +"séquence de bits du code intermédiaire brut. Pour une bibliothèque , elle " +"désassemble toutes les fonctions. Pour une classe, elle désassemble toutes " +"les méthodes (y compris les classes et méthodes statiques). Pour un code " +"objet ou une séquence de code intermédiaire brut, elle affiche une ligne par " +"instruction code intermédiaire. Aussi, elle désassemble les codes objets " +"internes récursivement (le code en compréhension, les expressions des " +"générateurs et les fonctions imbriquées, et le code utilisé pour la " +"construction des classes internes). Les chaînes de caractères sont d'abord " +"compilées pour coder des objets avec les fonctions intégrées de :func:" +"`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 @@ -198,16 +271,22 @@ msgid "" "The disassembly is written as text to the supplied *file* argument if " "provided and to ``sys.stdout`` otherwise." 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 msgid "" "The maximal depth of recursion is limited by *depth* unless it is ``None``. " "``depth=0`` means no recursion." 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 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 msgid "" @@ -215,58 +294,70 @@ msgid "" "traceback if none was passed. The instruction causing the exception is " "indicated." msgstr "" +"Désassemble la fonction du haut de la pile des traces d'appels, en utilisant " +"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 msgid "" "Disassemble a code object, indicating the last instruction if *lasti* was " "provided. The output is divided in the following columns:" 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 msgid "the line number, for the first instruction of each line" -msgstr "" +msgstr "le numéro de ligne, pour la première instruction de chaque ligne" #: ../Doc/library/dis.rst:200 msgid "the current instruction, indicated as ``-->``," -msgstr "" +msgstr "l'instruction en cours, indiquée par ``-->``," #: ../Doc/library/dis.rst:201 msgid "a labelled instruction, indicated with ``>>``," -msgstr "" +msgstr "une instruction libellée, indiquée par ``> >``," #: ../Doc/library/dis.rst:202 msgid "the address of the instruction," -msgstr "" +msgstr "l'adresse de l'instruction," #: ../Doc/library/dis.rst:203 msgid "the operation code name," -msgstr "" +msgstr "le nom de le code d'opération," #: ../Doc/library/dis.rst:204 msgid "operation parameters, and" -msgstr "" +msgstr "paramètres de l'opération, et" #: ../Doc/library/dis.rst:205 msgid "interpretation of the parameters in parentheses." -msgstr "" +msgstr "interprétation des paramètres entre parenthèses." #: ../Doc/library/dis.rst:207 msgid "" "The parameter interpretation recognizes local and global variable names, " "constant values, branch targets, and compare operators." msgstr "" +"L'interprétation du paramètre reconnaît les noms des variables locales et " +"globales, des valeurs constantes, des branchements cibles, et des opérateurs " +"de comparaison." #: ../Doc/library/dis.rst:219 msgid "" "Return an iterator over the instructions in the supplied function, method, " "source code string or code object." 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 msgid "" "The iterator generates a series of :class:`Instruction` named tuples giving " "the details of each operation in the supplied code." 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 msgid "" @@ -280,6 +371,8 @@ msgstr "" #: ../Doc/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 msgid "" @@ -293,31 +386,37 @@ msgstr "" #: ../Doc/library/dis.rst:260 msgid "Python Bytecode Instructions" -msgstr "" +msgstr "Les instructions du code intermédiaire en Python" #: ../Doc/library/dis.rst:262 msgid "" "The :func:`get_instructions` function and :class:`Bytecode` class provide " "details of bytecode instructions as :class:`Instruction` instances:" msgstr "" +"La fonction :func:`get_instructions` et la méthode :class:`Bytecode` fournit " +"des détails sur le code intermédiaire des instructions comme :class:" +"`Instruction` instances:" #: ../Doc/library/dis.rst:267 msgid "Details for a bytecode operation" -msgstr "" +msgstr "Détails sur le code intermédiaire de l'opération" #: ../Doc/library/dis.rst:271 msgid "" "numeric code for operation, corresponding to the opcode values listed below " "and the bytecode values in the :ref:`opcode_collections`." msgstr "" +"code numérique pour l'opération, correspondant aux valeurs de l'*opcode* ci-" +"dessous et les valeurs du code intermédiaire dans la :ref:" +"`opcode_collections`." #: ../Doc/library/dis.rst:277 msgid "human readable name for operation" -msgstr "" +msgstr "nom lisible/compréhensible de l'opération" #: ../Doc/library/dis.rst:282 msgid "numeric argument to operation (if any), otherwise ``None``" -msgstr "" +msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" #: ../Doc/library/dis.rst:287 msgid "resolved arg value (if known), otherwise same as arg" @@ -1021,55 +1120,61 @@ msgstr "" #: ../Doc/library/dis.rst:1062 msgid "" -"Raises an exception. *argc* indicates the number of parameters to the raise " +"Raises an exception. *argc* indicates the number of arguments to the raise " "statement, ranging from 0 to 3. The handler will find the traceback as " "TOS2, the parameter as TOS1, and the exception as TOS." msgstr "" #: ../Doc/library/dis.rst:1069 msgid "" -"Calls a function. *argc* indicates the number of positional arguments. The " -"positional arguments are on the stack, with the right-most argument on top. " -"Below the arguments, the function object to call is on the stack. Pops all " -"function arguments, and the function itself off the stack, and pushes the " -"return value." +"Calls a callable object with positional arguments. *argc* indicates the " +"number of positional arguments. The top of the stack contains positional " +"arguments, with the right-most argument on top. Below the arguments is a " +"callable object to call. ``CALL_FUNCTION`` pops all arguments and the " +"callable object off the stack, calls the callable object with those " +"arguments, and pushes the return value returned by the callable object." msgstr "" -#: ../Doc/library/dis.rst:1075 +#: ../Doc/library/dis.rst:1077 msgid "This opcode is used only for calls with positional arguments." msgstr "" -#: ../Doc/library/dis.rst:1081 +#: ../Doc/library/dis.rst:1083 msgid "" -"Calls a function. *argc* indicates the number of arguments (positional and " -"keyword). The top element on the stack contains a tuple of keyword argument " -"names. Below the tuple, keyword arguments are on the stack, in the order " -"corresponding to the tuple. Below the keyword arguments, the positional " -"arguments are on the stack, with the right-most parameter on top. Below the " -"arguments, the function object to call is on the stack. Pops all function " -"arguments, and the function itself off the stack, and pushes the return " -"value." +"Calls a callable object with positional (if any) and keyword arguments. " +"*argc* indicates the total number of positional and keyword arguments. The " +"top element on the stack contains a tuple of keyword argument names. Below " +"that are keyword arguments in the order corresponding to the tuple. Below " +"that are positional arguments, with the right-most parameter on top. Below " +"the arguments is a callable object to call. ``CALL_FUNCTION_KW`` pops all " +"arguments and the callable object off the stack, calls the callable object " +"with those arguments, and pushes the return value returned by the callable " +"object." msgstr "" -#: ../Doc/library/dis.rst:1090 +#: ../Doc/library/dis.rst:1093 msgid "" "Keyword arguments are packed in a tuple instead of a dictionary, *argc* " -"indicates the total number of arguments" +"indicates the total number of arguments." msgstr "" -#: ../Doc/library/dis.rst:1097 +#: ../Doc/library/dis.rst:1100 msgid "" -"Calls a function. The lowest bit of *flags* indicates whether the var-" -"keyword argument is placed at the top of the stack. Below the var-keyword " -"argument, the var-positional argument is on the stack. Below the arguments, " -"the function object to call is placed. Pops all function arguments, and the " -"function itself off the stack, and pushes the return value. Note that this " -"opcode pops at most three items from the stack. Var-positional and var-" -"keyword arguments are packed by :opcode:`BUILD_TUPLE_UNPACK_WITH_CALL` and :" -"opcode:`BUILD_MAP_UNPACK_WITH_CALL`." +"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 " +"contains a mapping object containing additional keyword arguments. Below " +"that is an iterable object containing positional arguments and a callable " +"object to call. :opcode:`BUILD_MAP_UNPACK_WITH_CALL` and :opcode:" +"`BUILD_TUPLE_UNPACK_WITH_CALL` can be used for merging multiple mapping " +"objects and iterables containing arguments. Before the callable is called, " +"the mapping object and iterable object are each \"unpacked\" and their " +"contents passed in as keyword and positional arguments respectively. " +"``CALL_FUNCTION_EX`` pops all arguments and the callable object off the " +"stack, calls the callable object with those arguments, and pushes the return " +"value returned by the callable object." msgstr "" -#: ../Doc/library/dis.rst:1112 +#: ../Doc/library/dis.rst:1119 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. " @@ -1078,7 +1183,7 @@ msgid "" "something else)." msgstr "" -#: ../Doc/library/dis.rst:1123 +#: ../Doc/library/dis.rst:1130 msgid "" "Calls a method. *argc* is number of positional arguments. Keyword arguments " "are not supported. This opcode is designed to be used with :opcode:" @@ -1087,44 +1192,46 @@ msgid "" "popped and return value is pushed." msgstr "" -#: ../Doc/library/dis.rst:1134 +#: ../Doc/library/dis.rst:1141 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:1137 -msgid "``0x01`` a tuple of default argument objects in positional order" +#: ../Doc/library/dis.rst:1144 +msgid "" +"``0x01`` a tuple of default values for positional-only and positional-or-" +"keyword parameters in positional order" msgstr "" -#: ../Doc/library/dis.rst:1138 +#: ../Doc/library/dis.rst:1146 msgid "``0x02`` a dictionary of keyword-only parameters' default values" msgstr "" -#: ../Doc/library/dis.rst:1139 +#: ../Doc/library/dis.rst:1147 msgid "``0x04`` an annotation dictionary" msgstr "" -#: ../Doc/library/dis.rst:1140 +#: ../Doc/library/dis.rst:1148 msgid "``0x08`` a tuple containing cells for free variables, making a closure" msgstr "" -#: ../Doc/library/dis.rst:1141 +#: ../Doc/library/dis.rst:1149 msgid "the code associated with the function (at TOS1)" msgstr "" -#: ../Doc/library/dis.rst:1142 +#: ../Doc/library/dis.rst:1150 msgid "the :term:`qualified name` of the function (at TOS)" msgstr "" -#: ../Doc/library/dis.rst:1149 +#: ../Doc/library/dis.rst:1157 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:1156 +#: ../Doc/library/dis.rst:1164 msgid "" "Prefixes any opcode which has an argument too big to fit into the default " "two bytes. *ext* holds two additional bytes which, taken together with the " @@ -1132,86 +1239,86 @@ msgid "" "two most-significant bytes." msgstr "" -#: ../Doc/library/dis.rst:1164 +#: ../Doc/library/dis.rst:1172 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:1168 +#: ../Doc/library/dis.rst:1176 msgid "``(flags & 0x03) == 0x00``: *value* is formatted as-is." msgstr "" -#: ../Doc/library/dis.rst:1169 +#: ../Doc/library/dis.rst:1177 msgid "" "``(flags & 0x03) == 0x01``: call :func:`str` on *value* before formatting it." msgstr "" -#: ../Doc/library/dis.rst:1171 +#: ../Doc/library/dis.rst:1179 msgid "" "``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before formatting " "it." msgstr "" -#: ../Doc/library/dis.rst:1173 +#: ../Doc/library/dis.rst:1181 msgid "" "``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before formatting " "it." msgstr "" -#: ../Doc/library/dis.rst:1175 +#: ../Doc/library/dis.rst:1183 msgid "" "``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use it, else " "use an empty *fmt_spec*." msgstr "" -#: ../Doc/library/dis.rst:1178 +#: ../Doc/library/dis.rst:1186 msgid "" "Formatting is performed using :c:func:`PyObject_Format`. The result is " "pushed on the stack." msgstr "" -#: ../Doc/library/dis.rst:1186 +#: ../Doc/library/dis.rst:1194 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:1190 +#: ../Doc/library/dis.rst:1198 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:1198 +#: ../Doc/library/dis.rst:1206 msgid "Opcode collections" msgstr "" -#: ../Doc/library/dis.rst:1200 +#: ../Doc/library/dis.rst:1208 msgid "" "These collections are provided for automatic introspection of bytecode " "instructions:" msgstr "" -#: ../Doc/library/dis.rst:1205 +#: ../Doc/library/dis.rst:1213 msgid "Sequence of operation names, indexable using the bytecode." msgstr "" -#: ../Doc/library/dis.rst:1210 +#: ../Doc/library/dis.rst:1218 msgid "Dictionary mapping operation names to bytecodes." msgstr "" -#: ../Doc/library/dis.rst:1215 +#: ../Doc/library/dis.rst:1223 msgid "Sequence of all compare operation names." msgstr "" -#: ../Doc/library/dis.rst:1220 -msgid "Sequence of bytecodes that have a constant parameter." +#: ../Doc/library/dis.rst:1228 +msgid "Sequence of bytecodes that access a constant." msgstr "" -#: ../Doc/library/dis.rst:1225 +#: ../Doc/library/dis.rst:1233 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 " @@ -1219,22 +1326,22 @@ msgid "" "does *not* include references to global or builtin scopes)." msgstr "" -#: ../Doc/library/dis.rst:1233 +#: ../Doc/library/dis.rst:1241 msgid "Sequence of bytecodes that access an attribute by name." msgstr "" -#: ../Doc/library/dis.rst:1238 +#: ../Doc/library/dis.rst:1246 msgid "Sequence of bytecodes that have a relative jump target." msgstr "" -#: ../Doc/library/dis.rst:1243 +#: ../Doc/library/dis.rst:1251 msgid "Sequence of bytecodes that have an absolute jump target." msgstr "" -#: ../Doc/library/dis.rst:1248 +#: ../Doc/library/dis.rst:1256 msgid "Sequence of bytecodes that access a local variable." msgstr "" -#: ../Doc/library/dis.rst:1253 +#: ../Doc/library/dis.rst:1261 msgid "Sequence of bytecodes of Boolean operations." msgstr "" diff --git a/library/distutils.po b/library/distutils.po index 513c6e364..e1ca8f516 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/distutils.rst:2 msgid ":mod:`distutils` --- Building and installing Python modules" -msgstr ":mod:`distutils` --- Création et installation des modules Python" +msgstr ":mod:`distutils` — Création et installation des modules Python" #: ../Doc/library/distutils.rst:12 msgid "" diff --git a/library/doctest.po b/library/doctest.po index 0c365c5a6..28769bdf2 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -260,18 +260,18 @@ msgid "" "shell." msgstr "" -#: ../Doc/library/doctest.rst:324 +#: ../Doc/library/doctest.rst:328 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 "" -#: ../Doc/library/doctest.rst:328 +#: ../Doc/library/doctest.rst:332 msgid "The fine print:" msgstr "" -#: ../Doc/library/doctest.rst:330 +#: ../Doc/library/doctest.rst:334 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 " @@ -279,7 +279,7 @@ msgid "" "line is expected." msgstr "" -#: ../Doc/library/doctest.rst:335 +#: ../Doc/library/doctest.rst:339 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 " @@ -294,20 +294,20 @@ msgid "" "`DocTestParser` class." msgstr "" -#: ../Doc/library/doctest.rst:347 +#: ../Doc/library/doctest.rst:351 msgid "" "Output to stdout is captured, but not output to stderr (exception tracebacks " "are captured via a different means)." msgstr "" -#: ../Doc/library/doctest.rst:350 +#: ../Doc/library/doctest.rst:354 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 "" -#: ../Doc/library/doctest.rst:359 +#: ../Doc/library/doctest.rst:363 msgid "" "Otherwise, the backslash will be interpreted as part of the string. For " "example, the ``\\n`` above would be interpreted as a newline character. " @@ -315,21 +315,21 @@ msgid "" "use a raw string)::" msgstr "" -#: ../Doc/library/doctest.rst:368 +#: ../Doc/library/doctest.rst:372 msgid "The starting column doesn't matter::" msgstr "" -#: ../Doc/library/doctest.rst:375 +#: ../Doc/library/doctest.rst:379 msgid "" "and as many leading whitespace characters are stripped from the expected " "output as appeared in the initial ``'>>> '`` line that started the example." msgstr "" -#: ../Doc/library/doctest.rst:382 +#: ../Doc/library/doctest.rst:386 msgid "What's the Execution Context?" msgstr "" -#: ../Doc/library/doctest.rst:384 +#: ../Doc/library/doctest.rst:388 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 " @@ -340,17 +340,17 @@ msgid "" "defined in other docstrings." msgstr "" -#: ../Doc/library/doctest.rst:392 +#: ../Doc/library/doctest.rst:396 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 "" -#: ../Doc/library/doctest.rst:399 +#: ../Doc/library/doctest.rst:403 msgid "What About Exceptions?" msgstr "" -#: ../Doc/library/doctest.rst:401 +#: ../Doc/library/doctest.rst:405 msgid "" "No problem, provided that the traceback is the only output produced by the " "example: just paste in the traceback. [#]_ Since tracebacks contain details " @@ -359,31 +359,31 @@ msgid "" "it accepts." msgstr "" -#: ../Doc/library/doctest.rst:407 +#: ../Doc/library/doctest.rst:411 msgid "Simple example::" msgstr "" -#: ../Doc/library/doctest.rst:414 +#: ../Doc/library/doctest.rst:418 msgid "" "That doctest succeeds if :exc:`ValueError` is raised, with the ``list." "remove(x): x not in list`` detail as shown." msgstr "" -#: ../Doc/library/doctest.rst:417 +#: ../Doc/library/doctest.rst:421 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 "" -#: ../Doc/library/doctest.rst:424 +#: ../Doc/library/doctest.rst:428 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 "" -#: ../Doc/library/doctest.rst:428 +#: ../Doc/library/doctest.rst:432 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 " @@ -391,20 +391,20 @@ msgid "" "multi-line detail::" msgstr "" -#: ../Doc/library/doctest.rst:440 +#: ../Doc/library/doctest.rst:444 msgid "" "The last three lines (starting with :exc:`ValueError`) are compared against " "the exception's type and detail, and the rest are ignored." msgstr "" -#: ../Doc/library/doctest.rst:443 +#: ../Doc/library/doctest.rst:447 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 "" -#: ../Doc/library/doctest.rst:453 +#: ../Doc/library/doctest.rst:457 msgid "" "Note that tracebacks are treated very specially. In particular, in the " "rewritten example, the use of ``...`` is independent of doctest's :const:" @@ -413,11 +413,11 @@ msgid "" "transcript of a Monty Python skit." msgstr "" -#: ../Doc/library/doctest.rst:459 +#: ../Doc/library/doctest.rst:463 msgid "Some details you should read once, but won't need to remember:" msgstr "" -#: ../Doc/library/doctest.rst:461 +#: ../Doc/library/doctest.rst:465 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 " @@ -427,7 +427,7 @@ msgid "" "create real problems." msgstr "" -#: ../Doc/library/doctest.rst:468 +#: ../Doc/library/doctest.rst:472 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. " @@ -436,14 +436,14 @@ msgid "" "course this does the right thing for genuine tracebacks." msgstr "" -#: ../Doc/library/doctest.rst:474 +#: ../Doc/library/doctest.rst:478 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 "" -#: ../Doc/library/doctest.rst:478 +#: ../Doc/library/doctest.rst:482 msgid "" "The interactive shell omits the traceback header line for some :exc:" "`SyntaxError`\\ s. But doctest uses the traceback header line to " @@ -452,13 +452,13 @@ msgid "" "need to manually add the traceback header line to your test example." msgstr "" -#: ../Doc/library/doctest.rst:484 +#: ../Doc/library/doctest.rst:490 msgid "" "For some :exc:`SyntaxError`\\ s, Python displays the character position of " "the syntax error, using a ``^`` marker::" msgstr "" -#: ../Doc/library/doctest.rst:493 +#: ../Doc/library/doctest.rst:499 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 " @@ -466,11 +466,11 @@ msgid "" "location::" msgstr "" -#: ../Doc/library/doctest.rst:509 +#: ../Doc/library/doctest.rst:515 msgid "Option Flags" msgstr "" -#: ../Doc/library/doctest.rst:511 +#: ../Doc/library/doctest.rst:517 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 :" @@ -480,17 +480,17 @@ msgid "" "option." msgstr "" -#: ../Doc/library/doctest.rst:517 +#: ../Doc/library/doctest.rst:523 msgid "The ``-o`` command line option." msgstr "" -#: ../Doc/library/doctest.rst:520 +#: ../Doc/library/doctest.rst:526 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 "" -#: ../Doc/library/doctest.rst:526 +#: ../Doc/library/doctest.rst:532 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 " @@ -502,7 +502,7 @@ msgid "" "not for several years." msgstr "" -#: ../Doc/library/doctest.rst:537 +#: ../Doc/library/doctest.rst:544 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 " @@ -511,7 +511,7 @@ msgid "" "`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not allowed." msgstr "" -#: ../Doc/library/doctest.rst:546 +#: ../Doc/library/doctest.rst:553 msgid "" "When specified, all sequences of whitespace (blanks and newlines) are " "treated as equal. Any sequence of whitespace within the expected output " @@ -521,7 +521,7 @@ msgid "" "across multiple lines in your source." msgstr "" -#: ../Doc/library/doctest.rst:556 +#: ../Doc/library/doctest.rst:564 msgid "" "When specified, an ellipsis marker (``...``) in the expected output can " "match any substring in the actual output. This includes substrings that " @@ -530,7 +530,7 @@ msgid "" "matched too much!\" surprises that ``.*`` is prone to in regular expressions." msgstr "" -#: ../Doc/library/doctest.rst:565 +#: ../Doc/library/doctest.rst:573 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 " @@ -539,14 +539,14 @@ msgid "" "if :exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/doctest.rst:571 +#: ../Doc/library/doctest.rst:579 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 "" -#: ../Doc/library/doctest.rst:583 +#: ../Doc/library/doctest.rst:591 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 " @@ -558,20 +558,20 @@ msgid "" "irrelevant comments). For example::" msgstr "" -#: ../Doc/library/doctest.rst:597 +#: ../Doc/library/doctest.rst:605 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 "" -#: ../Doc/library/doctest.rst:601 +#: ../Doc/library/doctest.rst:609 msgid "" ":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " "to the module containing the exception under test." msgstr "" -#: ../Doc/library/doctest.rst:608 +#: ../Doc/library/doctest.rst:616 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, " @@ -580,32 +580,32 @@ msgid "" "might depend on resources which would be unavailable to the test driver." msgstr "" -#: ../Doc/library/doctest.rst:614 +#: ../Doc/library/doctest.rst:622 msgid "" "The SKIP flag can also be used for temporarily \"commenting out\" examples." msgstr "" -#: ../Doc/library/doctest.rst:619 +#: ../Doc/library/doctest.rst:627 msgid "A bitmask or'ing together all the comparison flags above." msgstr "" -#: ../Doc/library/doctest.rst:621 +#: ../Doc/library/doctest.rst:629 msgid "The second group of options controls how test failures are reported:" msgstr "" -#: ../Doc/library/doctest.rst:626 +#: ../Doc/library/doctest.rst:634 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "are displayed using a unified diff." msgstr "" -#: ../Doc/library/doctest.rst:632 +#: ../Doc/library/doctest.rst:640 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "will be displayed using a context diff." msgstr "" -#: ../Doc/library/doctest.rst:638 +#: ../Doc/library/doctest.rst:646 msgid "" "When specified, differences are computed by ``difflib.Differ``, using the " "same algorithm as the popular :file:`ndiff.py` utility. This is the only " @@ -615,7 +615,7 @@ msgid "" "mismatching column positions." msgstr "" -#: ../Doc/library/doctest.rst:647 +#: ../Doc/library/doctest.rst:655 msgid "" "When specified, display the first failing example in each doctest, but " "suppress output for all remaining examples. This will prevent doctest from " @@ -626,7 +626,7 @@ msgid "" "of failures reported; only the output is suppressed." msgstr "" -#: ../Doc/library/doctest.rst:658 +#: ../Doc/library/doctest.rst:666 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 " @@ -634,23 +634,23 @@ msgid "" "first failure won't even produce debugging output." msgstr "" -#: ../Doc/library/doctest.rst:663 +#: ../Doc/library/doctest.rst:671 msgid "" "The doctest command line accepts the option ``-f`` as a shorthand for ``-o " "FAIL_FAST``." msgstr "" -#: ../Doc/library/doctest.rst:671 +#: ../Doc/library/doctest.rst:679 msgid "A bitmask or'ing together all the reporting flags above." msgstr "" -#: ../Doc/library/doctest.rst:674 +#: ../Doc/library/doctest.rst:682 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 "" -#: ../Doc/library/doctest.rst:680 +#: ../Doc/library/doctest.rst:688 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 :" @@ -659,35 +659,35 @@ msgid "" "be called using the following idiom::" msgstr "" -#: ../Doc/library/doctest.rst:692 +#: ../Doc/library/doctest.rst:704 msgid "Directives" msgstr "" -#: ../Doc/library/doctest.rst:694 +#: ../Doc/library/doctest.rst:706 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 "" -#: ../Doc/library/doctest.rst:705 +#: ../Doc/library/doctest.rst:717 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:709 +#: ../Doc/library/doctest.rst:721 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 "" -#: ../Doc/library/doctest.rst:712 +#: ../Doc/library/doctest.rst:724 msgid "For example, this test passes::" msgstr "" -#: ../Doc/library/doctest.rst:718 +#: ../Doc/library/doctest.rst:730 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 +695,26 @@ msgid "" "a directive to do so::" msgstr "" -#: ../Doc/library/doctest.rst:726 +#: ../Doc/library/doctest.rst:738 msgid "" "Multiple directives can be used on a single physical line, separated by " "commas::" msgstr "" -#: ../Doc/library/doctest.rst:732 +#: ../Doc/library/doctest.rst:744 msgid "" "If multiple directive comments are used for a single example, then they are " "combined::" msgstr "" -#: ../Doc/library/doctest.rst:739 +#: ../Doc/library/doctest.rst:751 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:747 +#: ../Doc/library/doctest.rst:759 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 " @@ -724,66 +724,72 @@ msgid "" "be useful." msgstr "" -#: ../Doc/library/doctest.rst:757 +#: ../Doc/library/doctest.rst:769 msgid "Warnings" msgstr "Avertissements" -#: ../Doc/library/doctest.rst:759 +#: ../Doc/library/doctest.rst:771 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 " "probably surprise you a few times, as you learn exactly what Python does and " -"doesn't guarantee about output. For example, when printing a dict, Python " -"doesn't guarantee that the key-value pairs will be printed in any particular " -"order, so a test like ::" +"doesn't guarantee about output. For example, when printing a set, Python " +"doesn't guarantee that the element is printed in any particular order, so a " +"test like ::" msgstr "" -#: ../Doc/library/doctest.rst:769 +#: ../Doc/library/doctest.rst:780 msgid "is vulnerable! One workaround is to do ::" msgstr "" -#: ../Doc/library/doctest.rst:774 +#: ../Doc/library/doctest.rst:785 msgid "instead. Another is to do ::" msgstr "" -#: ../Doc/library/doctest.rst:780 +#: ../Doc/library/doctest.rst:793 +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 "" + +#: ../Doc/library/doctest.rst:796 msgid "There are others, but you get the idea." msgstr "" -#: ../Doc/library/doctest.rst:782 +#: ../Doc/library/doctest.rst:798 msgid "" "Another bad idea is to print things that embed an object address, like ::" msgstr "" -#: ../Doc/library/doctest.rst:790 +#: ../Doc/library/doctest.rst:806 msgid "" "The :const:`ELLIPSIS` directive gives a nice approach for the last example::" msgstr "" -#: ../Doc/library/doctest.rst:795 +#: ../Doc/library/doctest.rst:811 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 "" -#: ../Doc/library/doctest.rst:806 +#: ../Doc/library/doctest.rst:822 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:812 +#: ../Doc/library/doctest.rst:828 msgid "" "Simple fractions are also easier for people to understand, and that makes " "for better documentation." msgstr "" -#: ../Doc/library/doctest.rst:819 +#: ../Doc/library/doctest.rst:835 msgid "Basic API" msgstr "" -#: ../Doc/library/doctest.rst:821 +#: ../Doc/library/doctest.rst:837 msgid "" "The functions :func:`testmod` and :func:`testfile` provide a simple " "interface to doctest that should be sufficient for most basic uses. For a " @@ -791,25 +797,25 @@ msgid "" "simple-testmod` and :ref:`doctest-simple-testfile`." msgstr "" -#: ../Doc/library/doctest.rst:829 +#: ../Doc/library/doctest.rst:845 msgid "" "All arguments except *filename* are optional, and should be specified in " "keyword form." msgstr "" -#: ../Doc/library/doctest.rst:832 +#: ../Doc/library/doctest.rst:848 msgid "" "Test examples in the file named *filename*. Return ``(failure_count, " "test_count)``." msgstr "" -#: ../Doc/library/doctest.rst:835 +#: ../Doc/library/doctest.rst:851 msgid "" "Optional argument *module_relative* specifies how the filename should be " "interpreted:" msgstr "" -#: ../Doc/library/doctest.rst:838 +#: ../Doc/library/doctest.rst:854 msgid "" "If *module_relative* is ``True`` (the default), then *filename* specifies an " "OS-independent module-relative path. By default, this path is relative to " @@ -819,20 +825,20 @@ msgid "" "absolute path (i.e., it may not begin with ``/``)." msgstr "" -#: ../Doc/library/doctest.rst:845 +#: ../Doc/library/doctest.rst:861 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 "" -#: ../Doc/library/doctest.rst:849 +#: ../Doc/library/doctest.rst:865 msgid "" "Optional argument *name* gives the name of the test; by default, or if " "``None``, ``os.path.basename(filename)`` is used." msgstr "" -#: ../Doc/library/doctest.rst:852 +#: ../Doc/library/doctest.rst:868 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-" @@ -841,7 +847,7 @@ msgid "" "is an error to specify *package* if *module_relative* is ``False``." msgstr "" -#: ../Doc/library/doctest.rst:858 +#: ../Doc/library/doctest.rst:874 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 " @@ -849,7 +855,7 @@ msgid "" "``None``, a new empty dict is used." msgstr "" -#: ../Doc/library/doctest.rst:863 +#: ../Doc/library/doctest.rst:879 msgid "" "Optional argument *extraglobs* gives a dict merged into the globals used to " "execute examples. This works like :meth:`dict.update`: if *globs* and " @@ -862,27 +868,27 @@ msgid "" "tested." msgstr "" -#: ../Doc/library/doctest.rst:872 +#: ../Doc/library/doctest.rst:888 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 "" -#: ../Doc/library/doctest.rst:876 +#: ../Doc/library/doctest.rst:892 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 "" -#: ../Doc/library/doctest.rst:880 +#: ../Doc/library/doctest.rst:896 msgid "" "Optional argument *optionflags* (default value 0) takes the :ref:`bitwise OR " "` of option flags. See section :ref:`doctest-options`." msgstr "" -#: ../Doc/library/doctest.rst:884 +#: ../Doc/library/doctest.rst:900 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. " @@ -890,33 +896,33 @@ msgid "" "continue running examples." msgstr "" -#: ../Doc/library/doctest.rst:889 ../Doc/library/doctest.rst:1029 +#: ../Doc/library/doctest.rst:905 ../Doc/library/doctest.rst:1045 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 "" -#: ../Doc/library/doctest.rst:893 ../Doc/library/doctest.rst:1033 +#: ../Doc/library/doctest.rst:909 ../Doc/library/doctest.rst:1049 msgid "" "Optional argument *encoding* specifies an encoding that should be used to " "convert the file to unicode." msgstr "" -#: ../Doc/library/doctest.rst:899 +#: ../Doc/library/doctest.rst:915 msgid "" "All arguments are optional, and all except for *m* should be specified in " "keyword form." msgstr "" -#: ../Doc/library/doctest.rst:902 +#: ../Doc/library/doctest.rst:918 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 "" -#: ../Doc/library/doctest.rst:906 +#: ../Doc/library/doctest.rst:922 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 " @@ -924,22 +930,22 @@ msgid "" "are searched directly, as if they were docstrings." msgstr "" -#: ../Doc/library/doctest.rst:911 +#: ../Doc/library/doctest.rst:927 msgid "" "Only docstrings attached to objects belonging to module *m* are searched." msgstr "" -#: ../Doc/library/doctest.rst:913 +#: ../Doc/library/doctest.rst:929 msgid "Return ``(failure_count, test_count)``." msgstr "" -#: ../Doc/library/doctest.rst:915 +#: ../Doc/library/doctest.rst:931 msgid "" "Optional argument *name* gives the name of the module; by default, or if " "``None``, ``m.__name__`` is used." msgstr "" -#: ../Doc/library/doctest.rst:918 +#: ../Doc/library/doctest.rst:934 msgid "" "Optional argument *exclude_empty* defaults to false. If true, objects for " "which no doctests are found are excluded from consideration. The default is " @@ -949,39 +955,39 @@ msgid "" "class:`DocTestFinder` constructor defaults to true." msgstr "" -#: ../Doc/library/doctest.rst:925 +#: ../Doc/library/doctest.rst:941 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 "" -#: ../Doc/library/doctest.rst:932 +#: ../Doc/library/doctest.rst:948 msgid "" "Test examples associated with object *f*; for example, *f* may be a string, " "a module, a function, or a class object." msgstr "" -#: ../Doc/library/doctest.rst:935 +#: ../Doc/library/doctest.rst:951 msgid "" "A shallow copy of dictionary argument *globs* is used for the execution " "context." msgstr "" -#: ../Doc/library/doctest.rst:937 +#: ../Doc/library/doctest.rst:953 msgid "" "Optional argument *name* is used in failure messages, and defaults to ``" "\"NoName\"``." msgstr "" -#: ../Doc/library/doctest.rst:940 +#: ../Doc/library/doctest.rst:956 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 "" -#: ../Doc/library/doctest.rst:943 +#: ../Doc/library/doctest.rst:959 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 " @@ -989,16 +995,16 @@ msgid "" "found in *globs*." msgstr "" -#: ../Doc/library/doctest.rst:947 +#: ../Doc/library/doctest.rst:963 msgid "" "Optional argument *optionflags* works as for function :func:`testfile` above." msgstr "" -#: ../Doc/library/doctest.rst:953 +#: ../Doc/library/doctest.rst:969 msgid "Unittest API" msgstr "" -#: ../Doc/library/doctest.rst:955 +#: ../Doc/library/doctest.rst:971 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 " @@ -1007,19 +1013,19 @@ msgid "" "discovery, include a :func:`load_tests` function in your test module::" msgstr "" -#: ../Doc/library/doctest.rst:969 +#: ../Doc/library/doctest.rst:985 msgid "" "There are two main functions for creating :class:`unittest.TestSuite` " "instances from text files and modules with doctests:" msgstr "" -#: ../Doc/library/doctest.rst:975 +#: ../Doc/library/doctest.rst:991 msgid "" "Convert doctest tests from one or more text files to a :class:`unittest." "TestSuite`." msgstr "" -#: ../Doc/library/doctest.rst:978 +#: ../Doc/library/doctest.rst:994 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 " @@ -1028,21 +1034,21 @@ msgid "" "containing the test and a (sometimes approximate) line number." msgstr "" -#: ../Doc/library/doctest.rst:984 +#: ../Doc/library/doctest.rst:1000 msgid "Pass one or more paths (as strings) to text files to be examined." msgstr "" -#: ../Doc/library/doctest.rst:986 +#: ../Doc/library/doctest.rst:1002 msgid "Options may be provided as keyword arguments:" msgstr "" -#: ../Doc/library/doctest.rst:988 +#: ../Doc/library/doctest.rst:1004 msgid "" "Optional argument *module_relative* specifies how the filenames in *paths* " "should be interpreted:" msgstr "" -#: ../Doc/library/doctest.rst:991 +#: ../Doc/library/doctest.rst:1007 msgid "" "If *module_relative* is ``True`` (the default), then each filename in " "*paths* specifies an OS-independent module-relative path. By default, this " @@ -1053,14 +1059,14 @@ msgid "" "``)." msgstr "" -#: ../Doc/library/doctest.rst:999 +#: ../Doc/library/doctest.rst:1015 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 "" -#: ../Doc/library/doctest.rst:1003 +#: ../Doc/library/doctest.rst:1019 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-" @@ -1070,7 +1076,7 @@ msgid "" "``False``." msgstr "" -#: ../Doc/library/doctest.rst:1010 +#: ../Doc/library/doctest.rst:1026 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 " @@ -1078,7 +1084,7 @@ msgid "" "test globals as the *globs* attribute of the test passed." msgstr "" -#: ../Doc/library/doctest.rst:1015 +#: ../Doc/library/doctest.rst:1031 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* " @@ -1086,14 +1092,14 @@ msgid "" "access the test globals as the *globs* attribute of the test passed." msgstr "" -#: ../Doc/library/doctest.rst:1020 ../Doc/library/doctest.rst:1054 +#: ../Doc/library/doctest.rst:1036 ../Doc/library/doctest.rst:1070 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 "" -#: ../Doc/library/doctest.rst:1024 +#: ../Doc/library/doctest.rst:1040 msgid "" "Optional argument *optionflags* specifies the default doctest options for " "the tests, created by or-ing together individual option flags. See section :" @@ -1101,17 +1107,17 @@ msgid "" "for a better way to set reporting options." msgstr "" -#: ../Doc/library/doctest.rst:1036 +#: ../Doc/library/doctest.rst:1052 msgid "" "The global ``__file__`` is added to the globals provided to doctests loaded " "from a text file using :func:`DocFileSuite`." msgstr "" -#: ../Doc/library/doctest.rst:1042 +#: ../Doc/library/doctest.rst:1058 msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." msgstr "" -#: ../Doc/library/doctest.rst:1044 +#: ../Doc/library/doctest.rst:1060 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, " @@ -1120,42 +1126,42 @@ msgid "" "(sometimes approximate) line number." msgstr "" -#: ../Doc/library/doctest.rst:1050 +#: ../Doc/library/doctest.rst:1066 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 "" -#: ../Doc/library/doctest.rst:1058 +#: ../Doc/library/doctest.rst:1074 msgid "" "Optional argument *extraglobs* specifies an extra set of global variables, " "which is merged into *globs*. By default, no extra globals are used." msgstr "" -#: ../Doc/library/doctest.rst:1061 +#: ../Doc/library/doctest.rst:1077 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 "" -#: ../Doc/library/doctest.rst:1064 +#: ../Doc/library/doctest.rst:1080 msgid "" "Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " "for function :func:`DocFileSuite` above." msgstr "" -#: ../Doc/library/doctest.rst:1067 +#: ../Doc/library/doctest.rst:1083 msgid "This function uses the same search technique as :func:`testmod`." msgstr "" -#: ../Doc/library/doctest.rst:1069 +#: ../Doc/library/doctest.rst:1085 msgid "" ":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " "*module* contains no docstrings instead of raising :exc:`ValueError`." msgstr "" -#: ../Doc/library/doctest.rst:1074 +#: ../Doc/library/doctest.rst:1090 msgid "" "Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " "out of :class:`doctest.DocTestCase` instances, and :class:`DocTestCase` is a " @@ -1164,14 +1170,14 @@ msgid "" "questions about the exact details of :mod:`unittest` integration." msgstr "" -#: ../Doc/library/doctest.rst:1080 +#: ../Doc/library/doctest.rst:1096 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 "" -#: ../Doc/library/doctest.rst:1084 +#: ../Doc/library/doctest.rst:1100 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 :" @@ -1184,23 +1190,23 @@ msgid "" "through :mod:`unittest` to :mod:`doctest` test runners." msgstr "" -#: ../Doc/library/doctest.rst:1094 +#: ../Doc/library/doctest.rst:1110 msgid "" "For this reason, :mod:`doctest` also supports a notion of :mod:`doctest` " "reporting flags specific to :mod:`unittest` support, via this function:" msgstr "" -#: ../Doc/library/doctest.rst:1100 +#: ../Doc/library/doctest.rst:1116 msgid "Set the :mod:`doctest` reporting flags to use." msgstr "" -#: ../Doc/library/doctest.rst:1102 +#: ../Doc/library/doctest.rst:1118 msgid "" "Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " "section :ref:`doctest-options`. Only \"reporting flags\" can be used." msgstr "" -#: ../Doc/library/doctest.rst:1105 +#: ../Doc/library/doctest.rst:1121 msgid "" "This is a module-global setting, and affects all future doctests run by " "module :mod:`unittest`: the :meth:`runTest` method of :class:`DocTestCase` " @@ -1214,17 +1220,17 @@ msgid "" "`doctest`'s :mod:`unittest` reporting flags are ignored." msgstr "" -#: ../Doc/library/doctest.rst:1116 +#: ../Doc/library/doctest.rst:1132 msgid "" "The value of the :mod:`unittest` reporting flags in effect before the " "function was called is returned by the function." msgstr "" -#: ../Doc/library/doctest.rst:1123 +#: ../Doc/library/doctest.rst:1139 msgid "Advanced API" msgstr "" -#: ../Doc/library/doctest.rst:1125 +#: ../Doc/library/doctest.rst:1141 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 " @@ -1232,85 +1238,85 @@ msgid "" "doctest's capabilities, then you should use the advanced API." msgstr "" -#: ../Doc/library/doctest.rst:1130 +#: ../Doc/library/doctest.rst:1146 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:1133 +#: ../Doc/library/doctest.rst:1149 msgid "" ":class:`Example`: A single Python :term:`statement`, paired with its " "expected output." msgstr "" -#: ../Doc/library/doctest.rst:1136 +#: ../Doc/library/doctest.rst:1152 msgid "" ":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " "from a single docstring or text file." msgstr "" -#: ../Doc/library/doctest.rst:1139 +#: ../Doc/library/doctest.rst:1155 msgid "" "Additional processing classes are defined to find, parse, and run, and check " "doctest examples:" msgstr "" -#: ../Doc/library/doctest.rst:1142 +#: ../Doc/library/doctest.rst:1158 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:1146 +#: ../Doc/library/doctest.rst:1162 msgid "" ":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " "(such as an object's docstring)." msgstr "" -#: ../Doc/library/doctest.rst:1149 +#: ../Doc/library/doctest.rst:1165 msgid "" ":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " "uses an :class:`OutputChecker` to verify their output." msgstr "" -#: ../Doc/library/doctest.rst:1152 +#: ../Doc/library/doctest.rst:1168 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:1155 +#: ../Doc/library/doctest.rst:1171 msgid "" "The relationships among these processing classes are summarized in the " "following diagram::" msgstr "" -#: ../Doc/library/doctest.rst:1171 +#: ../Doc/library/doctest.rst:1187 msgid "DocTest Objects" msgstr "" -#: ../Doc/library/doctest.rst:1176 +#: ../Doc/library/doctest.rst:1192 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:1180 +#: ../Doc/library/doctest.rst:1196 msgid "" ":class:`DocTest` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" -#: ../Doc/library/doctest.rst:1186 +#: ../Doc/library/doctest.rst:1202 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:1192 +#: ../Doc/library/doctest.rst:1208 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 " @@ -1318,57 +1324,57 @@ msgid "" "`globs` after the test is run." msgstr "" -#: ../Doc/library/doctest.rst:1200 +#: ../Doc/library/doctest.rst:1216 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:1206 +#: ../Doc/library/doctest.rst:1222 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:1213 +#: ../Doc/library/doctest.rst:1229 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:1220 +#: ../Doc/library/doctest.rst:1236 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:1227 +#: ../Doc/library/doctest.rst:1243 msgid "Example Objects" msgstr "" -#: ../Doc/library/doctest.rst:1232 +#: ../Doc/library/doctest.rst:1248 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:1237 +#: ../Doc/library/doctest.rst:1253 msgid "" ":class:`Example` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" -#: ../Doc/library/doctest.rst:1243 +#: ../Doc/library/doctest.rst:1259 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:1250 +#: ../Doc/library/doctest.rst:1266 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 " @@ -1376,7 +1382,7 @@ msgid "" "The constructor adds a newline when necessary." msgstr "" -#: ../Doc/library/doctest.rst:1258 +#: ../Doc/library/doctest.rst:1274 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 " @@ -1385,20 +1391,20 @@ msgid "" "unless it's ``None``. The constructor adds a newline if needed." msgstr "" -#: ../Doc/library/doctest.rst:1267 +#: ../Doc/library/doctest.rst:1283 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:1274 +#: ../Doc/library/doctest.rst:1290 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:1280 +#: ../Doc/library/doctest.rst:1296 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 " @@ -1407,11 +1413,11 @@ msgid "" "are set." msgstr "" -#: ../Doc/library/doctest.rst:1289 +#: ../Doc/library/doctest.rst:1305 msgid "DocTestFinder objects" msgstr "" -#: ../Doc/library/doctest.rst:1294 +#: ../Doc/library/doctest.rst:1310 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 " @@ -1419,48 +1425,48 @@ msgid "" "classes, functions, methods, staticmethods, classmethods, and properties." msgstr "" -#: ../Doc/library/doctest.rst:1299 +#: ../Doc/library/doctest.rst:1315 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:1302 +#: ../Doc/library/doctest.rst:1318 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:1305 +#: ../Doc/library/doctest.rst:1321 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:1308 +#: ../Doc/library/doctest.rst:1324 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:1312 +#: ../Doc/library/doctest.rst:1328 msgid ":class:`DocTestFinder` defines the following method:" msgstr "" -#: ../Doc/library/doctest.rst:1317 +#: ../Doc/library/doctest.rst:1333 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:1320 +#: ../Doc/library/doctest.rst:1336 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:1324 +#: ../Doc/library/doctest.rst:1340 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 " @@ -1468,26 +1474,26 @@ msgid "" "module is used:" msgstr "" -#: ../Doc/library/doctest.rst:1328 +#: ../Doc/library/doctest.rst:1344 msgid "As a default namespace, if *globs* is not specified." msgstr "" -#: ../Doc/library/doctest.rst:1330 +#: ../Doc/library/doctest.rst:1346 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:1334 +#: ../Doc/library/doctest.rst:1350 msgid "To find the name of the file containing the object." msgstr "" -#: ../Doc/library/doctest.rst:1336 +#: ../Doc/library/doctest.rst:1352 msgid "To help find the line number of the object within its file." msgstr "" -#: ../Doc/library/doctest.rst:1338 +#: ../Doc/library/doctest.rst:1354 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 " @@ -1496,7 +1502,7 @@ msgid "" "contained objects will (recursively) be searched for doctests." msgstr "" -#: ../Doc/library/doctest.rst:1344 +#: ../Doc/library/doctest.rst:1360 msgid "" "The globals for each :class:`DocTest` is formed by combining *globs* and " "*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " @@ -1506,34 +1512,34 @@ msgid "" "defaults to ``{}``." msgstr "" -#: ../Doc/library/doctest.rst:1355 +#: ../Doc/library/doctest.rst:1371 msgid "DocTestParser objects" msgstr "" -#: ../Doc/library/doctest.rst:1360 +#: ../Doc/library/doctest.rst:1376 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:1364 ../Doc/library/doctest.rst:1432 +#: ../Doc/library/doctest.rst:1380 ../Doc/library/doctest.rst:1448 msgid ":class:`DocTestParser` defines the following methods:" msgstr "" -#: ../Doc/library/doctest.rst:1369 +#: ../Doc/library/doctest.rst:1385 msgid "" "Extract all doctest examples from the given string, and collect them into a :" "class:`DocTest` object." msgstr "" -#: ../Doc/library/doctest.rst:1372 +#: ../Doc/library/doctest.rst:1388 msgid "" "*globs*, *name*, *filename*, and *lineno* are attributes for the new :class:" "`DocTest` object. See the documentation for :class:`DocTest` for more " "information." msgstr "" -#: ../Doc/library/doctest.rst:1379 +#: ../Doc/library/doctest.rst:1395 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 " @@ -1541,7 +1547,7 @@ msgid "" "error messages." msgstr "" -#: ../Doc/library/doctest.rst:1386 +#: ../Doc/library/doctest.rst:1402 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 " @@ -1549,17 +1555,17 @@ msgid "" "name identifying this string, and is only used for error messages." msgstr "" -#: ../Doc/library/doctest.rst:1395 +#: ../Doc/library/doctest.rst:1411 msgid "DocTestRunner objects" msgstr "" -#: ../Doc/library/doctest.rst:1400 +#: ../Doc/library/doctest.rst:1416 msgid "" "A processing class used to execute and verify the interactive examples in a :" "class:`DocTest`." msgstr "" -#: ../Doc/library/doctest.rst:1403 +#: ../Doc/library/doctest.rst:1419 msgid "" "The comparison between expected outputs and actual outputs is done by an :" "class:`OutputChecker`. This comparison may be customized with a number of " @@ -1569,7 +1575,7 @@ msgid "" "constructor." msgstr "" -#: ../Doc/library/doctest.rst:1409 +#: ../Doc/library/doctest.rst:1425 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 " @@ -1580,14 +1586,14 @@ msgid "" "`report_unexpected_exception`, and :meth:`report_failure`." msgstr "" -#: ../Doc/library/doctest.rst:1417 +#: ../Doc/library/doctest.rst:1433 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:1421 +#: ../Doc/library/doctest.rst:1437 msgid "" "The optional keyword argument *verbose* controls the :class:" "`DocTestRunner`'s verbosity. If *verbose* is ``True``, then information is " @@ -1596,56 +1602,56 @@ msgid "" "verbose output is used iff the command-line switch ``-v`` is used." msgstr "" -#: ../Doc/library/doctest.rst:1427 +#: ../Doc/library/doctest.rst:1443 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:1437 +#: ../Doc/library/doctest.rst:1453 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:1441 +#: ../Doc/library/doctest.rst:1457 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:1448 +#: ../Doc/library/doctest.rst:1464 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:1452 ../Doc/library/doctest.rst:1463 +#: ../Doc/library/doctest.rst:1468 ../Doc/library/doctest.rst:1479 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:1459 +#: ../Doc/library/doctest.rst:1475 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:1470 +#: ../Doc/library/doctest.rst:1486 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:1474 +#: ../Doc/library/doctest.rst:1490 msgid "" "*example* is the example about to be processed. *exc_info* is a tuple " "containing information about the unexpected exception (as returned by :func:" @@ -1653,13 +1659,13 @@ msgid "" "output function that was passed to :meth:`DocTestRunner.run`." msgstr "" -#: ../Doc/library/doctest.rst:1482 +#: ../Doc/library/doctest.rst:1498 msgid "" "Run the examples in *test* (a :class:`DocTest` object), and display the " "results using the writer function *out*." msgstr "" -#: ../Doc/library/doctest.rst:1485 +#: ../Doc/library/doctest.rst:1501 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, " @@ -1667,39 +1673,39 @@ msgid "" "after the test completes, then use *clear_globs=False*." msgstr "" -#: ../Doc/library/doctest.rst:1490 +#: ../Doc/library/doctest.rst:1506 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:1494 +#: ../Doc/library/doctest.rst:1510 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:1501 +#: ../Doc/library/doctest.rst:1517 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:1504 +#: ../Doc/library/doctest.rst:1520 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:1511 +#: ../Doc/library/doctest.rst:1527 msgid "OutputChecker objects" msgstr "" -#: ../Doc/library/doctest.rst:1516 +#: ../Doc/library/doctest.rst:1532 msgid "" "A class used to check the whether the actual output from a doctest example " "matches the expected output. :class:`OutputChecker` defines two methods: :" @@ -1708,11 +1714,11 @@ msgid "" "describing the differences between two outputs." msgstr "" -#: ../Doc/library/doctest.rst:1523 +#: ../Doc/library/doctest.rst:1539 msgid ":class:`OutputChecker` defines the following methods:" msgstr "" -#: ../Doc/library/doctest.rst:1527 +#: ../Doc/library/doctest.rst:1543 msgid "" "Return ``True`` iff the actual output from an example (*got*) matches the " "expected output (*want*). These strings are always considered to match if " @@ -1721,28 +1727,28 @@ msgid "" "`doctest-options` for more information about option flags." msgstr "" -#: ../Doc/library/doctest.rst:1536 +#: ../Doc/library/doctest.rst:1552 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:1544 +#: ../Doc/library/doctest.rst:1560 msgid "Debugging" msgstr "" -#: ../Doc/library/doctest.rst:1546 +#: ../Doc/library/doctest.rst:1562 msgid "Doctest provides several mechanisms for debugging doctest examples:" msgstr "" -#: ../Doc/library/doctest.rst:1548 +#: ../Doc/library/doctest.rst:1564 msgid "" "Several functions convert doctests to executable Python programs, which can " "be run under the Python debugger, :mod:`pdb`." msgstr "" -#: ../Doc/library/doctest.rst:1551 +#: ../Doc/library/doctest.rst:1567 msgid "" "The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " "raises an exception for the first failing example, containing information " @@ -1750,13 +1756,13 @@ msgid "" "debugging on the example." msgstr "" -#: ../Doc/library/doctest.rst:1556 +#: ../Doc/library/doctest.rst:1572 msgid "" "The :mod:`unittest` cases generated by :func:`DocTestSuite` support the :" "meth:`debug` method defined by :class:`unittest.TestCase`." msgstr "" -#: ../Doc/library/doctest.rst:1559 +#: ../Doc/library/doctest.rst:1575 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 " @@ -1764,21 +1770,21 @@ msgid "" "`a.py` contains just this module docstring::" msgstr "" -#: ../Doc/library/doctest.rst:1574 +#: ../Doc/library/doctest.rst:1590 msgid "Then an interactive Python session may look like this::" msgstr "" -#: ../Doc/library/doctest.rst:1607 +#: ../Doc/library/doctest.rst:1623 msgid "" "Functions that convert doctests to Python code, and possibly run the " "synthesized code under the debugger:" msgstr "" -#: ../Doc/library/doctest.rst:1613 +#: ../Doc/library/doctest.rst:1629 msgid "Convert text with examples to a script." msgstr "" -#: ../Doc/library/doctest.rst:1615 +#: ../Doc/library/doctest.rst:1631 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 " @@ -1786,22 +1792,22 @@ msgid "" "generated script is returned as a string. For example, ::" msgstr "" -#: ../Doc/library/doctest.rst:1630 +#: ../Doc/library/doctest.rst:1646 msgid "displays::" msgstr "" -#: ../Doc/library/doctest.rst:1640 +#: ../Doc/library/doctest.rst:1656 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 "" -#: ../Doc/library/doctest.rst:1647 +#: ../Doc/library/doctest.rst:1663 msgid "Convert the doctest for an object to a script." msgstr "" -#: ../Doc/library/doctest.rst:1649 +#: ../Doc/library/doctest.rst:1665 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 " @@ -1811,17 +1817,17 @@ msgid "" "module :file:`a.py` contains a top-level function :func:`f`, then ::" msgstr "" -#: ../Doc/library/doctest.rst:1659 +#: ../Doc/library/doctest.rst:1675 msgid "" "prints a script version of function :func:`f`'s docstring, with doctests " "converted to code, and the rest placed in comments." msgstr "" -#: ../Doc/library/doctest.rst:1665 +#: ../Doc/library/doctest.rst:1681 msgid "Debug the doctests for an object." msgstr "" -#: ../Doc/library/doctest.rst:1667 +#: ../Doc/library/doctest.rst:1683 msgid "" "The *module* and *name* arguments are the same as for function :func:" "`testsource` above. The synthesized Python script for the named object's " @@ -1829,13 +1835,13 @@ msgid "" "the control of the Python debugger, :mod:`pdb`." msgstr "" -#: ../Doc/library/doctest.rst:1672 +#: ../Doc/library/doctest.rst:1688 msgid "" "A shallow copy of ``module.__dict__`` is used for both local and global " "execution context." msgstr "" -#: ../Doc/library/doctest.rst:1675 +#: ../Doc/library/doctest.rst:1691 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 " @@ -1847,30 +1853,30 @@ msgid "" "to :func:`pdb.run`." msgstr "" -#: ../Doc/library/doctest.rst:1686 +#: ../Doc/library/doctest.rst:1702 msgid "Debug the doctests in a string." msgstr "" -#: ../Doc/library/doctest.rst:1688 +#: ../Doc/library/doctest.rst:1704 msgid "" "This is like function :func:`debug` above, except that a string containing " "doctest examples is specified directly, via the *src* argument." msgstr "" -#: ../Doc/library/doctest.rst:1691 +#: ../Doc/library/doctest.rst:1707 msgid "" "Optional argument *pm* has the same meaning as in function :func:`debug` " "above." msgstr "" -#: ../Doc/library/doctest.rst:1693 +#: ../Doc/library/doctest.rst:1709 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 "" -#: ../Doc/library/doctest.rst:1698 +#: ../Doc/library/doctest.rst:1714 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 " @@ -1878,7 +1884,7 @@ msgid "" "(which is a doctest!) for more details:" msgstr "" -#: ../Doc/library/doctest.rst:1706 +#: ../Doc/library/doctest.rst:1722 msgid "" "A subclass of :class:`DocTestRunner` that raises an exception as soon as a " "failure is encountered. If an unexpected exception occurs, an :exc:" @@ -1888,89 +1894,89 @@ msgid "" "the actual output." msgstr "" -#: ../Doc/library/doctest.rst:1713 +#: ../Doc/library/doctest.rst:1729 msgid "" "For information about the constructor parameters and methods, see the " "documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" "api`." msgstr "" -#: ../Doc/library/doctest.rst:1716 +#: ../Doc/library/doctest.rst:1732 msgid "" "There are two exceptions that may be raised by :class:`DebugRunner` " "instances:" msgstr "" -#: ../Doc/library/doctest.rst:1721 +#: ../Doc/library/doctest.rst:1737 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 "" -#: ../Doc/library/doctest.rst:1725 +#: ../Doc/library/doctest.rst:1741 msgid ":exc:`DocTestFailure` defines the following attributes:" msgstr "" -#: ../Doc/library/doctest.rst:1730 ../Doc/library/doctest.rst:1754 +#: ../Doc/library/doctest.rst:1746 ../Doc/library/doctest.rst:1770 msgid "The :class:`DocTest` object that was being run when the example failed." msgstr "" -#: ../Doc/library/doctest.rst:1735 ../Doc/library/doctest.rst:1759 +#: ../Doc/library/doctest.rst:1751 ../Doc/library/doctest.rst:1775 msgid "The :class:`Example` that failed." msgstr "" -#: ../Doc/library/doctest.rst:1740 +#: ../Doc/library/doctest.rst:1756 msgid "The example's actual output." msgstr "" -#: ../Doc/library/doctest.rst:1745 +#: ../Doc/library/doctest.rst:1761 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 "" -#: ../Doc/library/doctest.rst:1749 +#: ../Doc/library/doctest.rst:1765 msgid ":exc:`UnexpectedException` defines the following attributes:" msgstr "" -#: ../Doc/library/doctest.rst:1764 +#: ../Doc/library/doctest.rst:1780 msgid "" "A tuple containing information about the unexpected exception, as returned " "by :func:`sys.exc_info`." msgstr "" -#: ../Doc/library/doctest.rst:1771 +#: ../Doc/library/doctest.rst:1787 msgid "Soapbox" msgstr "" -#: ../Doc/library/doctest.rst:1773 +#: ../Doc/library/doctest.rst:1789 msgid "" "As mentioned in the introduction, :mod:`doctest` has grown to have three " "primary uses:" msgstr "" -#: ../Doc/library/doctest.rst:1776 +#: ../Doc/library/doctest.rst:1792 msgid "Checking examples in docstrings." msgstr "" -#: ../Doc/library/doctest.rst:1778 +#: ../Doc/library/doctest.rst:1794 msgid "Regression testing." msgstr "" -#: ../Doc/library/doctest.rst:1780 +#: ../Doc/library/doctest.rst:1796 msgid "Executable documentation / literate testing." msgstr "" -#: ../Doc/library/doctest.rst:1782 +#: ../Doc/library/doctest.rst:1798 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:1786 +#: ../Doc/library/doctest.rst:1802 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. " @@ -1982,7 +1988,7 @@ msgid "" "\"harmless\" change." msgstr "" -#: ../Doc/library/doctest.rst:1794 +#: ../Doc/library/doctest.rst:1810 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 " @@ -2003,13 +2009,13 @@ msgid "" "different results, blurring the distinction between testing and explaining." msgstr "" -#: ../Doc/library/doctest.rst:1812 +#: ../Doc/library/doctest.rst:1828 msgid "" "Regression testing is best confined to dedicated objects or files. There " "are several options for organizing tests:" msgstr "" -#: ../Doc/library/doctest.rst:1815 +#: ../Doc/library/doctest.rst:1831 msgid "" "Write text files containing test cases as interactive examples, and test the " "files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " @@ -2017,7 +2023,7 @@ msgid "" "doctest." msgstr "" -#: ../Doc/library/doctest.rst:1820 +#: ../Doc/library/doctest.rst:1836 msgid "" "Define functions named ``_regrtest_topic`` that consist of single " "docstrings, containing test cases for the named topics. These functions can " @@ -2025,13 +2031,13 @@ msgid "" "test file." msgstr "" -#: ../Doc/library/doctest.rst:1824 +#: ../Doc/library/doctest.rst:1840 msgid "" "Define a ``__test__`` dictionary mapping from regression test topics to " "docstrings containing test cases." msgstr "" -#: ../Doc/library/doctest.rst:1827 +#: ../Doc/library/doctest.rst:1843 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-" @@ -2039,11 +2045,11 @@ msgid "" "example of such a test runner::" msgstr "" -#: ../Doc/library/doctest.rst:1849 +#: ../Doc/library/doctest.rst:1865 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/doctest.rst:1850 +#: ../Doc/library/doctest.rst:1866 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 " diff --git a/library/dummy_threading.po b/library/dummy_threading.po index 3894d324d..a4e2593b2 100644 --- a/library/dummy_threading.po +++ b/library/dummy_threading.po @@ -50,10 +50,10 @@ msgid "" "being created that blocks waiting for another thread to be created. This " "often occurs with blocking I/O." msgstr "" -"Soyez prudent de ne pas utiliser ce module lorsqu'un *deadlock* peut se " -"produire à partir d'un fil d'exécution en cours de création qui bloque en " -"attentant qu'un autre fil d'exécution soit créé. Cela se produit souvent " -"avec des I/O bloquants." +"Soyez prudent de ne pas utiliser ce module lorsqu'un interblocage " +"(*deadlock* en anglais) peut se produire à partir d'un fil d'exécution en " +"cours de création qui bloque en attentant qu'un autre fil d'exécution soit " +"créé. Cela se produit souvent avec des I/O bloquants." #~ msgid "Suggested usage is::" #~ msgstr "Utilisation suggérée ::" diff --git a/library/email.charset.po b/library/email.charset.po index e3f74a164..327fa5794 100644 --- a/library/email.charset.po +++ b/library/email.charset.po @@ -33,6 +33,8 @@ msgid "" "The remaining text in this section is the original documentation of the " "module." msgstr "" +"Le texte restant de cette section est la documentation originale de ce " +"module." #: ../Doc/library/email.charset.rst:16 msgid "" diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po index 9ee1e3828..26d5420a7 100644 --- a/library/email.compat32-message.po +++ b/library/email.compat32-message.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -20,7 +20,7 @@ msgid "" "`~email.policy.compat32` API" msgstr "" -#: ../Doc/library/email.compat32-message.rst:11 +#: ../Doc/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:18 +#: ../Doc/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:20 +#: ../Doc/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,7 +42,7 @@ msgid "" "class instead." msgstr "" -#: ../Doc/library/email.compat32-message.rst:24 +#: ../Doc/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 " @@ -54,7 +54,7 @@ msgid "" "`message/rfc822`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:33 +#: ../Doc/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:40 +#: ../Doc/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:51 +#: ../Doc/library/email.compat32-message.rst:52 msgid "Here are the methods of the :class:`Message` class:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:56 +#: ../Doc/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:63 +#: ../Doc/library/email.compat32-message.rst:64 msgid "The *policy* keyword argument was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:68 +#: ../Doc/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,15 @@ msgid "" "*policy* will be passed to the ``Generator``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:78 -#: ../Doc/library/email.compat32-message.rst:120 +#: ../Doc/library/email.compat32-message.rst:79 +#: ../Doc/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:82 +#: ../Doc/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 +127,7 @@ msgid "" "method directly. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:96 +#: ../Doc/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 +135,17 @@ msgid "" "generator.BytesGenerator`.)" msgstr "" -#: ../Doc/library/email.compat32-message.rst:101 +#: ../Doc/library/email.compat32-message.rst:102 msgid "the *policy* keyword argument was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:106 +#: ../Doc/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:112 +#: ../Doc/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 +155,7 @@ msgid "" "specified *policy* will be passed to the ``BytesGenerator``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:124 +#: ../Doc/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,35 +165,35 @@ msgid "" "flatten` method directly. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:144 +#: ../Doc/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:152 +#: ../Doc/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` " "returns ``False``, the payload should be a string object (which might be a " -"CTE encoded binary payload. (Note that :meth:`is_multipart` returning " +"CTE encoded binary payload). (Note that :meth:`is_multipart` returning " "``True`` does not necessarily mean that \"msg.get_content_maintype() == " "'multipart'\" will return the ``True``. For example, ``is_multipart`` will " "return ``True`` when the :class:`Message` is of type ``message/rfc822``.)" msgstr "" -#: ../Doc/library/email.compat32-message.rst:164 +#: ../Doc/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:169 +#: ../Doc/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:175 +#: ../Doc/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 +202,14 @@ msgid "" "instead." msgstr "" -#: ../Doc/library/email.compat32-message.rst:181 +#: ../Doc/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:189 +#: ../Doc/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 +217,7 @@ msgid "" "modify the message's payload in place." msgstr "" -#: ../Doc/library/email.compat32-message.rst:194 +#: ../Doc/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 +227,7 @@ msgid "" "exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:201 +#: ../Doc/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 +243,7 @@ msgid "" "or :class:`~email.errors.InvalidBase64CharactersDefect`, respectively)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:215 +#: ../Doc/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 +254,28 @@ msgid "" "the email package, the body is decoded using the default ASCII charset." msgstr "" -#: ../Doc/library/email.compat32-message.rst:224 +#: ../Doc/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:232 +#: ../Doc/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:236 +#: ../Doc/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:243 +#: ../Doc/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 +286,7 @@ msgid "" "Anything else will generate a :exc:`TypeError`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:251 +#: ../Doc/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 +303,26 @@ msgid "" "not modified." msgstr "" -#: ../Doc/library/email.compat32-message.rst:265 +#: ../Doc/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:273 +#: ../Doc/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:276 +#: ../Doc/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:281 +#: ../Doc/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 +335,19 @@ msgid "" "deleted and then re-added are always appended to the end of the header list." msgstr "" -#: ../Doc/library/email.compat32-message.rst:291 +#: ../Doc/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:294 +#: ../Doc/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:297 +#: ../Doc/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 +355,25 @@ msgid "" "charset of `unknown-8bit`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:305 +#: ../Doc/library/email.compat32-message.rst:306 msgid "Return the total number of headers, including duplicates." msgstr "" -#: ../Doc/library/email.compat32-message.rst:310 +#: ../Doc/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.::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:320 +#: ../Doc/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:324 +#: ../Doc/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 +381,59 @@ msgid "" "headers." msgstr "" -#: ../Doc/library/email.compat32-message.rst:332 +#: ../Doc/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:335 +#: ../Doc/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:345 +#: ../Doc/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:352 +#: ../Doc/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:357 +#: ../Doc/library/email.compat32-message.rst:358 msgid "Return a list of all the message's field values." msgstr "" -#: ../Doc/library/email.compat32-message.rst:362 +#: ../Doc/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:368 +#: ../Doc/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:372 +#: ../Doc/library/email.compat32-message.rst:373 msgid "Here are some additional useful methods:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:377 +#: ../Doc/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:384 +#: ../Doc/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 +441,7 @@ msgid "" "value for the header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:389 +#: ../Doc/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 +458,30 @@ msgid "" "``None``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:403 +#: ../Doc/library/email.compat32-message.rst:404 msgid "Here's an example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:407 +#: ../Doc/library/email.compat32-message.rst:408 msgid "This will add a header that looks like ::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:411 +#: ../Doc/library/email.compat32-message.rst:412 msgid "An example with non-ASCII characters::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:416 +#: ../Doc/library/email.compat32-message.rst:417 msgid "Which produces ::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:423 +#: ../Doc/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:430 +#: ../Doc/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 +491,7 @@ msgid "" "return a value." msgstr "" -#: ../Doc/library/email.compat32-message.rst:437 +#: ../Doc/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 +500,19 @@ msgid "" "the default type be :mimetype:`text/plain`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:446 +#: ../Doc/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:452 +#: ../Doc/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:458 +#: ../Doc/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 +520,14 @@ msgid "" "content type of :mimetype:`message/rfc822`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:466 +#: ../Doc/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:474 +#: ../Doc/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 +537,22 @@ msgid "" "`get_param` and is unquoted if optional *unquote* is ``True`` (the default)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:482 +#: ../Doc/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:486 -#: ../Doc/library/email.compat32-message.rst:524 +#: ../Doc/library/email.compat32-message.rst:487 +#: ../Doc/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:494 +#: ../Doc/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 +560,13 @@ msgid "" "(defaults to ``None``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:499 +#: ../Doc/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:502 +#: ../Doc/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 +576,7 @@ msgid "" "``us-ascii`` charset. You can usually ignore ``LANGUAGE``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:510 +#: ../Doc/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 +585,14 @@ msgid "" "value is a tuple, or the original string unquoted if it isn't. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:520 +#: ../Doc/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:533 +#: ../Doc/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 +601,14 @@ msgid "" "value will be appended as per :rfc:`2045`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:539 +#: ../Doc/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:543 +#: ../Doc/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 +616,18 @@ msgid "" "strings." msgstr "" -#: ../Doc/library/email.compat32-message.rst:548 +#: ../Doc/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:552 +#: ../Doc/library/email.compat32-message.rst:553 msgid "``replace`` keyword was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:557 +#: ../Doc/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 +636,14 @@ msgid "" "mailheader:`Content-Type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:566 +#: ../Doc/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:570 +#: ../Doc/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 +651,20 @@ msgid "" "default)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:575 +#: ../Doc/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:579 +#: ../Doc/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:586 +#: ../Doc/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 +674,7 @@ msgid "" "always be unquoted as per :func:`email.utils.unquote`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:597 +#: ../Doc/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 +682,7 @@ msgid "" "unquoted as per :func:`email.utils.unquote`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:605 +#: ../Doc/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 +690,7 @@ msgid "" "object has no :mailheader:`Content-Type` header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:610 +#: ../Doc/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 +700,28 @@ msgid "" "the original :mailheader:`Content-Type` header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:620 +#: ../Doc/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:624 +#: ../Doc/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:630 +#: ../Doc/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:634 +#: ../Doc/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 +730,7 @@ msgid "" "then that item in the returned list will be *failobj*." msgstr "" -#: ../Doc/library/email.compat32-message.rst:644 +#: ../Doc/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 +738,7 @@ msgid "" "the message follows :rfc:`2183`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:653 +#: ../Doc/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 +746,13 @@ msgid "" "in a ``for`` loop; each iteration returns the next subpart." msgstr "" -#: ../Doc/library/email.compat32-message.rst:658 +#: ../Doc/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:684 +#: ../Doc/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 +760,21 @@ msgid "" "``_structure`` debug helper function:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:711 +#: ../Doc/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:716 +#: ../Doc/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:722 +#: ../Doc/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 +784,7 @@ msgid "" "can become visible." msgstr "" -#: ../Doc/library/email.compat32-message.rst:729 +#: ../Doc/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 +796,26 @@ msgid "" "parser` and :mod:`email.generator` for details." msgstr "" -#: ../Doc/library/email.compat32-message.rst:739 +#: ../Doc/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:745 +#: ../Doc/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:749 +#: ../Doc/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:756 +#: ../Doc/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.encoders.po b/library/email.encoders.po index d83a09538..bb891f321 100644 --- a/library/email.encoders.po +++ b/library/email.encoders.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-10-05 09:50+0200\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.0.6\n" #: ../Doc/library/email.encoders.rst:2 msgid ":mod:`email.encoders`: Encoders" -msgstr "" +msgstr ":mod:`email.encoders` : Encodeurs" #: ../Doc/library/email.encoders.rst:7 msgid "**Source code:** :source:`Lib/email/encoders.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/encoders.py`" #: ../Doc/library/email.encoders.rst:11 msgid "" @@ -28,22 +29,40 @@ msgid "" "the functionality is provided by the *cte* parameter of the :meth:`~email." "message.EmailMessage.set_content` method." msgstr "" +"Ce module fait partie du code patrimonial (``Compat32``) de l'API mail. Dans " +"la nouvelle API la fonctionnalité est fournie par le paramètre *cte* de la " +"méthode :meth:`~email.message.EmailMessage.set_content`." #: ../Doc/library/email.encoders.rst:15 msgid "" +"This module is deprecated in Python 3. The functions provided here should " +"not be called explicitly since the :class:`~email.mime.text.MIMEText` class " +"sets the content type and CTE header using the *_subtype* and *_charset* " +"values passed during the instaniation of that class." +msgstr "" + +#: ../Doc/library/email.encoders.rst:20 +msgid "" "The remaining text in this section is the original documentation of the " "module." msgstr "" +"Le texte restant de cette section est la documentation originale de ce " +"module." -#: ../Doc/library/email.encoders.rst:17 +#: ../Doc/library/email.encoders.rst:22 msgid "" "When creating :class:`~email.message.Message` objects from scratch, you " "often need to encode the payloads for transport through compliant mail " "servers. This is especially true for :mimetype:`image/\\*` and :mimetype:" "`text/\\*` type messages containing binary data." msgstr "" +"Au moment de la création d'objets :class:`~email.message.Message` à la main, " +"il est souvent nécessaire d'encoder les charges utiles pour le transport à " +"travers des serveurs mail conformes. C'est particulièrement vrai pour les " +"messages de type :mimetype:`image/\\*` et :mimetype:`text/\\*` contenant des " +"données binaires." -#: ../Doc/library/email.encoders.rst:22 +#: ../Doc/library/email.encoders.rst:27 msgid "" "The :mod:`email` package provides some convenient encodings in its :mod:" "`encoders` module. These encoders are actually used by the :class:`~email." @@ -54,27 +73,45 @@ msgid "" "They should also set the :mailheader:`Content-Transfer-Encoding` header as " "appropriate." msgstr "" +"Le paquet :mod:`email` fournit quelques encodeurs pratiques dans son " +"module :mod:`encoders`. Ces encodeurs sont d'ailleurs utilisés par les " +"constructeurs des classes :class:`~email.mime.audio.MIMEAudio` et :class:" +"`~email.mime.image.MIMEImage` afin de fournir des encodages par défaut. " +"Toutes les fonctions d'encodage prennent exactement un argument, l'objet " +"message à encoder. Généralement, elles extraient la charge utile, l'encode, " +"puis change la charge utile pour la nouvelle valeur encodée. Elles devraient " +"également assigner l'en-tête :mailheader:`Content-Transfer-Encoding` si " +"besoin." -#: ../Doc/library/email.encoders.rst:30 +#: ../Doc/library/email.encoders.rst:35 msgid "" "Note that these functions are not meaningful for a multipart message. They " "must be applied to individual subparts instead, and will raise a :exc:" "`TypeError` if passed a message whose type is multipart." msgstr "" +"À noter que ces fonctions n'ont pas de sens dans le cadre d'un message en " +"plusieurs parties. Elles doivent à la place être appliquées aux sous-parties " +"individuelles, et lèvent :exc:`TypeError` si on leur passe un message en " +"plusieurs parties." -#: ../Doc/library/email.encoders.rst:34 +#: ../Doc/library/email.encoders.rst:39 msgid "Here are the encoding functions provided:" -msgstr "" +msgstr "Voici les fonctions d'encodages fournies :" -#: ../Doc/library/email.encoders.rst:39 +#: ../Doc/library/email.encoders.rst:44 msgid "" "Encodes the payload into quoted-printable form and sets the :mailheader:" "`Content-Transfer-Encoding` header to ``quoted-printable`` [#]_. This is a " "good encoding to use when most of your payload is normal printable data, but " "contains a few unprintable characters." msgstr "" +"Encode la charge utile au format Quoted-Printable, et assigne ``quoted-" +"printable`` [#]_ à l'en-tête :mailheader:`Content-Transfer-Encoding`. C'est " +"un bon encodage à utiliser quand la majorité de la charge utile contient " +"essentiellement des données imprimables, à l'exceptions de quelques " +"caractères. " -#: ../Doc/library/email.encoders.rst:47 +#: ../Doc/library/email.encoders.rst:52 msgid "" "Encodes the payload into base64 form and sets the :mailheader:`Content-" "Transfer-Encoding` header to ``base64``. This is a good encoding to use " @@ -82,26 +119,37 @@ msgid "" "form than quoted-printable. The drawback of base64 encoding is that it " "renders the text non-human readable." msgstr "" +"Encode la charge utile au format *base64*, et assigne ``base64`` à l'en-" +"tête :mailheader:`Content-Transfer-Encoding`. C'est un bon encodage à " +"utiliser quand la majorité de la charge utile est non imprimable puisque " +"c'est une forme plus compacte que *quoted-printable*." -#: ../Doc/library/email.encoders.rst:56 +#: ../Doc/library/email.encoders.rst:61 msgid "" "This doesn't actually modify the message's payload, but it does set the :" "mailheader:`Content-Transfer-Encoding` header to either ``7bit`` or ``8bit`` " "as appropriate, based on the payload data." msgstr "" +"Ceci ne modifie pas effectivement la charge utile du message, mais va bien " +"en revanche assigner la valeur ``7bit`` ou ``8bit`` à l'en-tête :mailheader:" +"`Content-Transfer-Encoding` selon la nature de la charge utile." -#: ../Doc/library/email.encoders.rst:63 +#: ../Doc/library/email.encoders.rst:68 msgid "" "This does nothing; it doesn't even set the :mailheader:`Content-Transfer-" "Encoding` header." msgstr "" +"Ceci ne fait rien; et ne va même pas changer la valeur de l'en-tête :" +"mailheader:`Content-Transfer-Encoding`." -#: ../Doc/library/email.encoders.rst:67 +#: ../Doc/library/email.encoders.rst:72 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/email.encoders.rst:68 +#: ../Doc/library/email.encoders.rst:73 msgid "" "Note that encoding with :meth:`encode_quopri` also encodes all tabs and " "space characters in the data." msgstr "" +"À noter que l'encodage avec :meth:`encode_quopri` encode également tous les " +"caractères tabulation et espace." diff --git a/library/email.errors.po b/library/email.errors.po index 536743673..10e707678 100644 --- a/library/email.errors.po +++ b/library/email.errors.po @@ -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,16 +174,21 @@ 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 "" @@ -152,6 +204,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 +214,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 +225,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.generator.po b/library/email.generator.po index c07300156..f406f37ea 100644 --- a/library/email.generator.po +++ b/library/email.generator.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -203,7 +203,7 @@ msgid "" "is required because strings cannot represent non-ASCII bytes.) Convert any " "bytes with the high bit set as needed using an ASCII-compatible :mailheader:" "`Content-Transfer-Encoding`. That is, transform parts with non-ASCII :" -"mailheader:`Cotnent-Transfer-Encoding` (:mailheader:`Content-Transfer-" +"mailheader:`Content-Transfer-Encoding` (:mailheader:`Content-Transfer-" "Encoding: 8bit`) to an ASCII compatible :mailheader:`Content-Transfer-" "Encoding`, and encode RFC-invalid non-ASCII bytes in headers using the MIME " "``unknown-8bit`` character set, thus rendering them RFC-compliant." diff --git a/library/email.header.po b/library/email.header.po index a5081d701..3b78d4670 100644 --- a/library/email.header.po +++ b/library/email.header.po @@ -37,6 +37,8 @@ msgid "" "The remaining text in this section is the original documentation of the " "module." msgstr "" +"Le texte restant de cette section est la documentation originale de ce " +"module." #: ../Doc/library/email.header.rst:19 msgid "" diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po index 94ba014c0..67f10cd14 100644 --- a/library/email.headerregistry.po +++ b/library/email.headerregistry.po @@ -492,7 +492,7 @@ msgstr "" #: ../Doc/library/email.headerregistry.rst:375 msgid "or::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/library/email.headerregistry.rst:379 msgid "" diff --git a/library/email.iterators.po b/library/email.iterators.po index 21b32a03d..2eb4578f9 100644 --- a/library/email.iterators.po +++ b/library/email.iterators.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-08 09:58+0100\n" -"PO-Revision-Date: 2018-01-09 22:09+0100\n" +"PO-Revision-Date: 2019-06-20 19:13+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -112,6 +112,6 @@ msgid "" "*include_default*, if true, prints the default type as well." msgstr "" "Le paramètre optionnel *fp* est un objet fichier-compatible dans lequel on " -"peut imprimer le flux de sortie. Il doit être approprié pour la fonction de " +"peut écrire le flux de sortie. Il doit être approprié pour la fonction de " "Python :func:`print`. *level* est utilisé en interne. *include_default*, si " "vrai, affiche aussi le type par défaut." diff --git a/library/email.message.po b/library/email.message.po index df15f81bf..9947bcaca 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -129,7 +129,7 @@ msgstr "" #: ../Doc/library/email.message.rst:95 msgid "" -"Equivalent to `as_string(policy=self.policy.clone(utf8=True)`. Allows " +"Equivalent to ``as_string(policy=self.policy.clone(utf8=True))``. Allows " "``str(msg)`` to produce a string containing the serialized message in a " "readable format." msgstr "" @@ -342,7 +342,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 ::" @@ -445,7 +445,7 @@ msgstr "" msgid "" "Note that existing parameter values of headers may be accessed through the :" "attr:`~email.headerregistry.BaseHeader.params` attribute of the header value " -"(for example, ``msg['Content-Type'].params['charset']``." +"(for example, ``msg['Content-Type'].params['charset']``)." msgstr "" #: ../Doc/library/email.message.rst:384 @@ -735,7 +735,7 @@ msgid "" "specified, use the ``content_manager`` specified by the current :mod:`~email." "policy`. If the added part has no :mailheader:`Content-Disposition` header, " "add one with the value ``attachment``. This method can be used both for " -"explicit attachments (:mailheader:`Content-Disposition: attachment` and " +"explicit attachments (:mailheader:`Content-Disposition: attachment`) and " "``inline`` attachments (:mailheader:`Content-Disposition: inline`), by " "passing appropriate options to the ``content_manager``." msgstr "" diff --git a/library/email.parser.po b/library/email.parser.po index ef63a863e..cf9c49181 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-08 16:44+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.1\n" #: ../Doc/library/email.parser.rst:2 msgid ":mod:`email.parser`: Parsing email messages" -msgstr "" +msgstr ":mod:`email.parser` : Analyser des e-mails" #: ../Doc/library/email.parser.rst:7 msgid "**Source code:** :source:`Lib/email/parser.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/parser.py`" #: ../Doc/library/email.parser.rst:11 msgid "" @@ -31,6 +32,13 @@ msgid "" "or they can be created by parsing a serialized representation of the email " "message." msgstr "" +"Les instances de messages peuvent être créées de deux façons : elles peuvent " +"être créées de toutes pièces en créant un objet :class:`~email.message." +"message.EmailMessage`, en ajoutant des en-têtes en utilisant l'interface de " +"dictionnaire, et en ajoutant un ou plusieurs corps de message en utilisant :" +"meth:`~email.message.message.EmailMessage.set_content` et les méthodes " +"associées, ou ils peuvent être créées en analysant une représentation " +"sérialisée de l'e-mail." #: ../Doc/library/email.parser.rst:18 msgid "" @@ -72,7 +80,7 @@ msgstr "" #: ../Doc/library/email.parser.rst:49 msgid "FeedParser API" -msgstr "" +msgstr "API *FeedParser*" #: ../Doc/library/email.parser.rst:51 msgid "" @@ -101,7 +109,7 @@ msgstr "" #: ../Doc/library/email.parser.rst:70 msgid "Here is the API for the :class:`BytesFeedParser`:" -msgstr "" +msgstr "Voici l’API pour :class:`BytesFeedParser` ::" #: ../Doc/library/email.parser.rst:75 msgid "" @@ -164,7 +172,7 @@ msgstr "" #: ../Doc/library/email.parser.rst:126 msgid "Parser API" -msgstr "" +msgstr "API de *Parser*" #: ../Doc/library/email.parser.rst:128 msgid "" @@ -213,7 +221,7 @@ msgid "" "The header block is terminated either by the end of the data or by a blank " "line. Following the header block is the body of the message (which may " "contain MIME-encoded subparts, including subparts with a :mailheader:" -"`Content-Transfer-Encoding` of ``8bit``." +"`Content-Transfer-Encoding` of ``8bit``)." msgstr "" #: ../Doc/library/email.parser.rst:169 @@ -290,7 +298,7 @@ msgstr "" msgid "" "Return a message object structure from a :term:`bytes-like object`. This is " "equivalent to ``BytesParser().parsebytes(s)``. Optional *_class* and " -"*strict* are interpreted as with the :class:`~email.parser.BytesParser` " +"*policy* are interpreted as with the :class:`~email.parser.BytesParser` " "class constructor." msgstr "" @@ -324,11 +332,11 @@ msgstr "" #: ../Doc/library/email.parser.rst:291 msgid "Additional notes" -msgstr "" +msgstr "Notes complémentaires" #: ../Doc/library/email.parser.rst:293 msgid "Here are some notes on the parsing semantics:" -msgstr "" +msgstr "Voici des remarques sur la sémantique d'analyse ::" #: ../Doc/library/email.parser.rst:295 msgid "" diff --git a/library/email.po b/library/email.po index d654e15de..7f3f3eca9 100644 --- a/library/email.po +++ b/library/email.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-17 10:39+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,11 +16,11 @@ msgstr "" #: ../Doc/library/email.rst:2 msgid ":mod:`email` --- An email and MIME handling package" -msgstr "" +msgstr ":mod:`email` — Un paquet de gestion des e-mails et MIME" #: ../Doc/library/email.rst:11 msgid "**Source code:** :source:`Lib/email/__init__.py`" -msgstr "" +msgstr "**Code source:** :source:`Lib/email/__init__.py`" #: ../Doc/library/email.rst:15 msgid "" @@ -32,6 +32,13 @@ msgid "" "well as such MIME-related RFCs as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :" "rfc:`2183`, and :rfc:`2231`." msgstr "" +"Le paquet :mod:`email` est une bibliothèque pour gérer les e-mails. Il est " +"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:" +"`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 msgid "" @@ -39,6 +46,8 @@ msgid "" "components, plus a fourth component that controls the behavior of the other " "components." 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 msgid "" @@ -52,6 +61,15 @@ msgid "" "model is a tree structure of objects that all provide the :class:`~email." "message.EmailMessage` API." msgstr "" +"Le composant central du paquet est un \"modèle d'objet\" qui représente les " +"messages. Une application interagit avec le paquet, dans un premier temps, à " +"travers l'interface de modèle d'objet définie dans le sous-module :mod:" +"`~email.message`. L'application peut utiliser cette API pour poser des " +"questions à propos d'un mail existant, pour créer un nouvel e-mail, ou " +"ajouter ou retirer des sous-composants d'e-mail qui utilisent la même " +"interface de modèle d'objet. Suivant la nature des messages et leurs sous-" +"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 msgid "" @@ -64,6 +82,15 @@ msgid "" "but this usage is discouraged as it is too easy to end up with messages that " "are not valid in one way or another.)" msgstr "" +"Les deux autres composants majeurs de ce paquet sont l'analyseur (:mod:" +"`~email.parser`) et le générateur (:mod:`~email.generator`). L'analyseur " +"prend la version sérialisée d'un e-mail (un flux d'octets) et le convertit " +"en une arborescence d'objets :class:`~email.message.EmailMessage`. Le " +"générateur prend un objet :class:`~email.message.EmailMessage` et le " +"retransforme en un flux d'octets sérialisé (l'analyseur et le générateur " +"gèrent aussi des suites de caractères textuels, mais cette utilisation est " +"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 msgid "" @@ -79,6 +106,18 @@ msgid "" "from disk, but to serialize it using standard SMTP settings when sending it " "to an email server." msgstr "" +"Le composant de contrôle est le module :mod:`~email.policy`. Chaque :class:" +"`~email.message.EmailMessage`, chaque :mod:`~email.generator` et chaque :mod:" +"`~email.parser` possède un objet associé :mod:`~email.policy` qui contrôle " +"son comportement. Habituellement une application n'a besoin de spécifier la " +"politique que quand un :class:`~email.message.EmailMessage` est créé, soit " +"en instanciant directement un :class:`~email.message.EmailMessage` pour " +"créer un nouvel e-mail, soit lors de l'analyse d'un flux entrant en " +"utilisant un :mod:`~email.parser`. Mais la politique peut être changée quand " +"le message est sérialisé en utilisant un :mod:`~email.generator`. Cela " +"permet, par exemple, d'analyser un message e-mail générique du disque, puis " +"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 msgid "" @@ -96,6 +135,20 @@ msgid "" "modern internet software (not just email), this will be a familiar concept " "to many programmers." msgstr "" +"Le paquet *email* fait son maximum pour cacher les détails des différentes " +"RFCs de référence à l'application. Conceptuellement, l'application doit être " +"capable de traiter l'e-mail comme une arborescence structurée de texte " +"Unicode et de pièces jointes binaires, sans avoir à se préoccuper de leur " +"représentation sérialisée. Dans la pratique, cependant, il est souvent " +"nécessaire d'être conscient d'au moins quelques règles relatives aux " +"messages MIME et à leur structure, en particulier les noms et natures des " +"\"types de contenus\" et comment ils identifient les documents à plusieurs " +"parties. Pour la plupart, cette connaissance devrait seulement être " +"nécessaire pour des applications plus complexes, et même là, il devrait être " +"question des structures de haut niveau et non des détails sur la manière " +"dont elles sont représentées. Comme les types de contenus MIME sont " +"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 msgid "" @@ -106,6 +159,12 @@ msgid "" "mod:`~email.policy` controls, which completes the treatment of the main " "components of the library." msgstr "" +"La section suivante décrit les fonctionnalités du paquet :mod:`email`. Nous " +"commençons avec le modèle d'objet :mod:`~email.message`, qui est la " +"principale interface qu'une application utilise, et continuons avec les " +"composants :mod:`~email.parser` et :mod:`~email.generator`. Ensuite, nous " +"couvrons les contrôles :mod:`~email.policy`, qui complètent le traitement " +"des principaux composants de la bibliothèque." #: ../Doc/library/email.rst:78 msgid "" @@ -118,16 +177,27 @@ msgid "" "messages, but also document their extensibility APIs, which will be of " "interest to advanced applications." msgstr "" +"Les trois prochaines sections couvrent les exceptions que le paquet peut " +"rencontrer et les imperfections (non-respect des RFCs) que le module :mod:" +"`~email.parser` peut détecter. Ensuite nous couvrons les sous-composants :" +"mod:`~email.headerregistry` et :mod:`~email.contentmanager`, qui fournissent " +"des outils pour faire des manipulations plus détaillées des en-têtes et du " +"contenu, respectivement. Les deux composants contiennent des fonctionnalités " +"adaptées pour traiter et produire des messages qui sortent de l'ordinaire, " +"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 msgid "" "Following those is a set of examples of using the fundamental parts of the " "APIs covered in the preceding sections." 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 msgid "" -"The forgoing represent the modern (unicode friendly) API of the email " +"The foregoing represent the modern (unicode friendly) API of the email " "package. The remaining sections, starting with the :class:`~email.message." "Message` class, cover the legacy :data:`~email.policy.compat32` API that " "deals much more directly with the details of how email messages are " @@ -137,67 +207,81 @@ msgid "" "relevant for applications that are still using the :mod:`~email.policy." "compat32` API for backward compatibility reasons." msgstr "" +"Ce que nous venons d'aborder constitue l'API moderne (compatible Unicode) du " +"paquet *email*. Les sections restantes, commençant par la classe :class:" +"`~email.message.Message`, couvrent l'API héritée :data:`~email.policy." +"compat32` qui traite beaucoup plus directement des détails sur la manière " +"dont les e-mails sont représentés. L'API :data:`~email.policy.compat32` ne " +"cache *pas* les détails des RFCs à l'application, mais pour les applications " +"qui requièrent d'opérer à ce niveau, elle peut être un outil pratique. Cette " +"documentation est aussi pertinente pour les applications qui utilisent " +"toujours l'API :mod:`~email.policy.compat32` pour des raisons de " +"rétrocompatibilité." #: ../Doc/library/email.rst:100 msgid "" "Docs reorganized and rewritten to promote the new :class:`~email.message." "EmailMessage`/:class:`~email.policy.EmailPolicy` API." 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 msgid "Contents of the :mod:`email` package documentation:" -msgstr "" +msgstr "Contenus de la documentation du paquet :mod:`email` :" #: ../Doc/library/email.rst:120 msgid "Legacy API:" -msgstr "" +msgstr "API héritée :" #: ../Doc/library/email.rst:136 msgid "Module :mod:`smtplib`" -msgstr "" +msgstr "Module :mod:`smtplib`" #: ../Doc/library/email.rst:136 msgid "SMTP (Simple Mail Transport Protocol) client" -msgstr "" +msgstr "Client SMTP (*Simple Mail Transport Protocol*)" #: ../Doc/library/email.rst:139 msgid "Module :mod:`poplib`" -msgstr "" +msgstr "Module :mod:`poplib`" #: ../Doc/library/email.rst:139 msgid "POP (Post Office Protocol) client" -msgstr "" +msgstr "Client POP (*Post Office Protocol*)" #: ../Doc/library/email.rst:142 msgid "Module :mod:`imaplib`" -msgstr "" +msgstr "Module :mod:`imaplib`" #: ../Doc/library/email.rst:142 msgid "IMAP (Internet Message Access Protocol) client" -msgstr "" +msgstr "Client IMAP (*Internet Message Access Protocol*)" #: ../Doc/library/email.rst:145 msgid "Module :mod:`nntplib`" -msgstr "" +msgstr "Module :mod:`nntplib`" #: ../Doc/library/email.rst:145 msgid "NNTP (Net News Transport Protocol) client" -msgstr "" +msgstr "Client NNTP (*Net News Transport Protocol*)" #: ../Doc/library/email.rst:149 msgid "Module :mod:`mailbox`" -msgstr "" +msgstr "Module :mod:`mailbox`" #: ../Doc/library/email.rst:148 msgid "" "Tools for creating, reading, and managing collections of messages on disk " "using a variety standard formats." 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 msgid "Module :mod:`smtpd`" -msgstr "" +msgstr "Module :mod:`smtpd`" #: ../Doc/library/email.rst:152 msgid "SMTP server framework (primarily useful for testing)" -msgstr "" +msgstr "Cadriciel pour serveur SMTP (principalement utile pour tester)" diff --git a/library/email.util.po b/library/email.utils.po similarity index 87% rename from library/email.util.po rename to library/email.utils.po index d6bcb1e9f..a133c9940 100644 --- a/library/email.util.po +++ b/library/email.utils.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+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.util.rst:2 +#: ../Doc/library/email.utils.rst:2 msgid ":mod:`email.utils`: Miscellaneous utilities" msgstr "" -#: ../Doc/library/email.util.rst:7 +#: ../Doc/library/email.utils.rst:7 msgid "**Source code:** :source:`Lib/email/utils.py`" msgstr "" -#: ../Doc/library/email.util.rst:11 +#: ../Doc/library/email.utils.rst:11 msgid "" "There are a couple of useful utilities provided in the :mod:`email.utils` " "module:" msgstr "" -#: ../Doc/library/email.util.rst:16 +#: ../Doc/library/email.utils.rst:16 msgid "" "Return local time as an aware datetime object. If called without arguments, " "return current time. Otherwise *dt* argument should be a :class:`~datetime." @@ -42,7 +42,7 @@ msgid "" "specified time." msgstr "" -#: ../Doc/library/email.util.rst:32 +#: ../Doc/library/email.utils.rst:32 msgid "" "Returns a string suitable for an :rfc:`2822`\\ -compliant :mailheader:" "`Message-ID` header. Optional *idstring* if given, is a string used to " @@ -53,11 +53,11 @@ msgid "" "consistent domain name across multiple hosts." msgstr "" -#: ../Doc/library/email.util.rst:40 +#: ../Doc/library/email.utils.rst:40 msgid "Added the *domain* keyword." msgstr "" -#: ../Doc/library/email.util.rst:44 +#: ../Doc/library/email.utils.rst:44 msgid "" "The remaining functions are part of the legacy (``Compat32``) email API. " "There is no need to directly use these with the new API, since the parsing " @@ -65,20 +65,20 @@ msgid "" "machinery of the new API." msgstr "" -#: ../Doc/library/email.util.rst:52 +#: ../Doc/library/email.utils.rst:52 msgid "" "Return a new string with backslashes in *str* replaced by two backslashes, " "and double quotes replaced by backslash-double quote." msgstr "" -#: ../Doc/library/email.util.rst:58 +#: ../Doc/library/email.utils.rst:58 msgid "" "Return a new string which is an *unquoted* version of *str*. If *str* ends " "and begins with double quotes, they are stripped off. Likewise if *str* " "ends and begins with angle brackets, they are stripped off." msgstr "" -#: ../Doc/library/email.util.rst:65 +#: ../Doc/library/email.utils.rst:65 msgid "" "Parse address -- which should be the value of some address-containing field " "such as :mailheader:`To` or :mailheader:`Cc` -- into its constituent " @@ -86,7 +86,7 @@ msgid "" "unless the parse fails, in which case a 2-tuple of ``('', '')`` is returned." msgstr "" -#: ../Doc/library/email.util.rst:73 +#: ../Doc/library/email.utils.rst:73 msgid "" "The inverse of :meth:`parseaddr`, this takes a 2-tuple of the form " "``(realname, email_address)`` and returns the string value suitable for a :" @@ -94,7 +94,7 @@ msgid "" "is false, then the second element is returned unmodified." msgstr "" -#: ../Doc/library/email.util.rst:78 +#: ../Doc/library/email.utils.rst:78 msgid "" "Optional *charset* is the character set that will be used in the :rfc:`2047` " "encoding of the ``realname`` if the ``realname`` contains non-ASCII " @@ -102,11 +102,11 @@ msgid "" "Charset`. Defaults to ``utf-8``." msgstr "" -#: ../Doc/library/email.util.rst:83 +#: ../Doc/library/email.utils.rst:83 msgid "Added the *charset* option." msgstr "" -#: ../Doc/library/email.util.rst:89 +#: ../Doc/library/email.utils.rst:89 msgid "" "This method returns a list of 2-tuples of the form returned by " "``parseaddr()``. *fieldvalues* is a sequence of header field values as might " @@ -114,7 +114,7 @@ msgid "" "Here's a simple example that gets all the recipients of a message::" msgstr "" -#: ../Doc/library/email.util.rst:105 +#: ../Doc/library/email.utils.rst:105 msgid "" "Attempts to parse a date according to the rules in :rfc:`2822`. however, " "some mailers don't follow that format as specified, so :func:`parsedate` " @@ -125,7 +125,7 @@ msgid "" "returned. Note that indexes 6, 7, and 8 of the result tuple are not usable." msgstr "" -#: ../Doc/library/email.util.rst:116 +#: ../Doc/library/email.utils.rst:116 msgid "" "Performs the same function as :func:`parsedate`, but returns either ``None`` " "or a 10-tuple; the first 9 elements make up a tuple that can be passed " @@ -136,7 +136,7 @@ msgid "" "not usable." msgstr "" -#: ../Doc/library/email.util.rst:126 +#: ../Doc/library/email.utils.rst:126 msgid "" "The inverse of :func:`format_datetime`. Performs the same function as :func:" "`parsedate`, but on success returns a :mod:`~datetime.datetime`. If the " @@ -148,25 +148,25 @@ msgid "" "corresponding a :class:`~datetime.timezone` :class:`~datetime.tzinfo`." msgstr "" -#: ../Doc/library/email.util.rst:140 +#: ../Doc/library/email.utils.rst:140 msgid "" "Turn a 10-tuple as returned by :func:`parsedate_tz` into a UTC timestamp " "(seconds since the Epoch). If the timezone item in the tuple is ``None``, " "assume local time." msgstr "" -#: ../Doc/library/email.util.rst:147 +#: ../Doc/library/email.utils.rst:147 msgid "Returns a date string as per :rfc:`2822`, e.g.::" msgstr "" -#: ../Doc/library/email.util.rst:151 +#: ../Doc/library/email.utils.rst:151 msgid "" "Optional *timeval* if given is a floating point time value as accepted by :" "func:`time.gmtime` and :func:`time.localtime`, otherwise the current time is " "used." msgstr "" -#: ../Doc/library/email.util.rst:155 +#: ../Doc/library/email.utils.rst:155 msgid "" "Optional *localtime* is a flag that when ``True``, interprets *timeval*, and " "returns a date relative to the local timezone instead of UTC, properly " @@ -174,7 +174,7 @@ msgid "" "UTC is used." msgstr "" -#: ../Doc/library/email.util.rst:160 +#: ../Doc/library/email.utils.rst:160 msgid "" "Optional *usegmt* is a flag that when ``True``, outputs a date string with " "the timezone as an ascii string ``GMT``, rather than a numeric ``-0000``. " @@ -182,7 +182,7 @@ msgid "" "*localtime* is ``False``. The default is ``False``." msgstr "" -#: ../Doc/library/email.util.rst:168 +#: ../Doc/library/email.utils.rst:168 msgid "" "Like ``formatdate``, but the input is a :mod:`datetime` instance. If it is " "a naive datetime, it is assumed to be \"UTC with no information about the " @@ -194,11 +194,11 @@ msgid "" "date headers." msgstr "" -#: ../Doc/library/email.util.rst:182 +#: ../Doc/library/email.utils.rst:182 msgid "Decode the string *s* according to :rfc:`2231`." msgstr "" -#: ../Doc/library/email.util.rst:187 +#: ../Doc/library/email.utils.rst:187 msgid "" "Encode the string *s* according to :rfc:`2231`. Optional *charset* and " "*language*, if given is the character set name and language name to use. If " @@ -207,7 +207,7 @@ msgid "" "*language*." msgstr "" -#: ../Doc/library/email.util.rst:195 +#: ../Doc/library/email.utils.rst:195 msgid "" "When a header parameter is encoded in :rfc:`2231` format, :meth:`Message." "get_param ` may return a 3-tuple containing " @@ -219,23 +219,23 @@ msgid "" "defaults to ``'us-ascii'``." msgstr "" -#: ../Doc/library/email.util.rst:204 +#: ../Doc/library/email.utils.rst:204 msgid "" "For convenience, if the *value* passed to :func:`collapse_rfc2231_value` is " "not a tuple, it should be a string and it is returned unquoted." msgstr "" -#: ../Doc/library/email.util.rst:210 +#: ../Doc/library/email.utils.rst:210 msgid "" "Decode parameters list according to :rfc:`2231`. *params* is a sequence of " "2-tuples containing elements of the form ``(content-type, string-value)``." msgstr "" -#: ../Doc/library/email.util.rst:215 +#: ../Doc/library/email.utils.rst:215 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/email.util.rst:216 +#: ../Doc/library/email.utils.rst:216 msgid "" "Note that the sign of the timezone offset is the opposite of the sign of the " "``time.timezone`` variable for the same timezone; the latter variable " diff --git a/library/enum.po b/library/enum.po index a95ee1df4..7131f5378 100644 --- a/library/enum.po +++ b/library/enum.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-07-26 19:08+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.0.6\n" #: ../Doc/library/enum.rst:2 msgid ":mod:`enum` --- Support for enumerations" -msgstr "" +msgstr ":mod:`enum` — Énumerations" #: ../Doc/library/enum.rst:14 msgid "**Source code:** :source:`Lib/enum.py`" -msgstr "**Code source :** :source:`Lib/enum.py`" +msgstr "**Code source :** :source:`Lib/enum.py`" #: ../Doc/library/enum.rst:18 msgid "" @@ -28,6 +29,10 @@ msgid "" "constant values. Within an enumeration, the members can be compared by " "identity, and the enumeration itself can be iterated over." msgstr "" +"Une énumération est un ensemble de noms symboliques, appelés *membres*, liés " +"à des valeurs constantes et uniques. Au sein d'une énumération, les membres " +"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 msgid "Module Contents" @@ -40,18 +45,26 @@ msgid "" "`Flag`, and :class:`IntFlag`. It also defines one decorator, :func:" "`unique`, and one helper, :class:`auto`." msgstr "" +"Ce module définit quatre classes d'énumération qui permettent de définir des " +"ensembles uniques de noms et de valeurs : :class:`Enum`, :class:`IntEnum`, :" +"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 msgid "" "Base class for creating enumerated constants. See section `Functional API`_ " "for an alternate construction syntax." 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 msgid "" "Base class for creating enumerated constants that are also subclasses of :" "class:`int`." 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 msgid "" @@ -59,29 +72,40 @@ msgid "" "bitwise operators without losing their :class:`IntFlag` membership. :class:" "`IntFlag` members are also subclasses of :class:`int`." msgstr "" +"Classe de base pour créer une énumération de constantes pouvant être " +"combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " +"qualité de :class:`IntFlag`. Les membres de :class:`IntFlag` sont aussi des " +"sous-classes de :class:`int`." #: ../Doc/library/enum.rst:49 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operations without losing their :class:`Flag` membership." msgstr "" +"Classe de base pour créer une énumération de constantes pouvant être " +"combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " +"qualité de :class:`Flag`." #: ../Doc/library/enum.rst:54 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." msgstr "" +"Les instances de cette classe remplacent les membres d'une *Enum* par une " +"valeur appropriée." #: ../Doc/library/enum.rst:60 msgid "``Flag``, ``IntFlag``, ``auto``" -msgstr "" +msgstr "``Flag``, ``IntFlag``, ``auto``" #: ../Doc/library/enum.rst:64 msgid "Creating an Enum" -msgstr "" +msgstr "Création d'une *Enum*" #: ../Doc/library/enum.rst:66 msgid "" @@ -90,10 +114,14 @@ msgid "" "`Functional API`_. To define an enumeration, subclass :class:`Enum` as " "follows::" 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 ::" #: ../Doc/library/enum.rst:78 msgid "Enum member values" -msgstr "" +msgstr "Valeurs des membres d'une *Enum*" #: ../Doc/library/enum.rst:80 msgid "" @@ -102,62 +130,80 @@ msgid "" "appropriate value will be chosen for you. Care must be taken if you mix :" "class:`auto` with other values." msgstr "" +"La valeur d'un membre peut être de n'importe quel type : :class:`int`, :" +"class:`str`, etc. Si la valeur exacte n'a pas d'importance, utilisez des " +"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 msgid "Nomenclature" -msgstr "" +msgstr "Nomenclature" #: ../Doc/library/enum.rst:87 msgid "The class :class:`Color` is an *enumeration* (or *enum*)" -msgstr "" +msgstr "La classe :class:`Color` est une *énumération* (ou un *enum*)." #: ../Doc/library/enum.rst:88 msgid "" "The attributes :attr:`Color.RED`, :attr:`Color.GREEN`, etc., are " "*enumeration members* (or *enum members*) and are functionally constants." msgstr "" +"Les attributs :attr:`Color.RED`, :attr:`Color.GREEN`, etc., sont les " +"*membres de l'énumération* (ou les *membres de l'enum*) et sont " +"fonctionnellement des constantes." #: ../Doc/library/enum.rst:90 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.)" 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 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." msgstr "" +"Même si on utilise la syntaxe en :keyword:`class` pour créer des " +"é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 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 ::" #: ../Doc/library/enum.rst:105 msgid "...while their ``repr`` has more information::" -msgstr "" +msgstr "… tandis que leur ``repr`` contient plus d'informations ::" #: ../Doc/library/enum.rst:110 msgid "The *type* of an enumeration member is the enumeration it belongs to::" -msgstr "" +msgstr "Le *type* d'un membre est l'énumération auquel ce membre appartient ::" #: ../Doc/library/enum.rst:118 msgid "Enum members also have a property that contains just their item name::" -msgstr "" +msgstr "Les membres ont également un attribut qui contient leur nom ::" #: ../Doc/library/enum.rst:123 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 ::" #: ../Doc/library/enum.rst:139 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 ::" #: ../Doc/library/enum.rst:149 msgid "Programmatic access to enumeration members and their attributes" -msgstr "" +msgstr "Accès dynamique aux membres et à leurs attributs" #: ../Doc/library/enum.rst:151 msgid "" @@ -165,22 +211,28 @@ msgid "" "e. situations where ``Color.RED`` won't do because the exact color is not " "known at program-writing time). ``Enum`` allows such access::" 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 ::" #: ../Doc/library/enum.rst:160 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 ::" #: ../Doc/library/enum.rst:167 msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::" -msgstr "" +msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre ::" #: ../Doc/library/enum.rst:177 msgid "Duplicating enum members and values" -msgstr "" +msgstr "Duplication de membres et de valeurs" #: ../Doc/library/enum.rst:179 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* ::" #: ../Doc/library/enum.rst:189 msgid "" @@ -189,6 +241,10 @@ msgid "" "A. By-value lookup of the value of A and B will return A. By-name lookup " "of B will also return A::" 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 ::" #: ../Doc/library/enum.rst:209 msgid "" @@ -196,10 +252,13 @@ msgid "" "attribute (another member, a method, etc.) or attempting to create an " "attribute with the same name as a member is not allowed." msgstr "" +"Il est interdit de créer un membre avec le même nom qu'un attribut déjà " +"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 msgid "Ensuring unique enumeration values" -msgstr "" +msgstr "Coercition d'unicité des valeurs d'une énumération" #: ../Doc/library/enum.rst:217 msgid "" @@ -207,6 +266,10 @@ msgid "" "When this behavior isn't desired, the following decorator can be used to " "ensure each value is used only once in the enumeration:" msgstr "" +"Par défaut, les énumérations autorisent les alias de nom pour une même " +"valeur. Quand ce comportement n'est pas désiré, il faut utiliser le " +"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 msgid "" @@ -214,20 +277,27 @@ msgid "" "enumeration's :attr:`__members__` gathering any aliases it finds; if any are " "found :exc:`ValueError` is raised with the details::" 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 ::" #: ../Doc/library/enum.rst:241 msgid "Using automatic values" -msgstr "" +msgstr "Valeurs automatiques" #: ../Doc/library/enum.rst:243 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` ::" #: ../Doc/library/enum.rst:254 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 ::" #: ../Doc/library/enum.rst:272 msgid "" @@ -235,14 +305,17 @@ msgid "" "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." #: ../Doc/library/enum.rst:277 msgid "Iteration" -msgstr "" +msgstr "Itération" #: ../Doc/library/enum.rst:279 msgid "Iterating over the members of an enum does not provide the aliases::" -msgstr "" +msgstr "Itérer sur les membres d'une énumération ne parcourt pas les alias ::" #: ../Doc/library/enum.rst:284 msgid "" @@ -250,12 +323,17 @@ msgid "" "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 : ::" #: ../Doc/library/enum.rst:296 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 ::" #: ../Doc/library/enum.rst:304 msgid "Comparisons" @@ -263,17 +341,20 @@ msgstr "Comparaisons" #: ../Doc/library/enum.rst:306 msgid "Enumeration members are compared by identity::" -msgstr "" +msgstr "Les membres d'une énumération sont comparés par identité ::" #: ../Doc/library/enum.rst:315 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) ::" #: ../Doc/library/enum.rst:323 msgid "Equality comparisons are defined though::" -msgstr "" +msgstr "A contrario, les comparaisons d'égalité existent ::" #: ../Doc/library/enum.rst:332 msgid "" @@ -281,10 +362,13 @@ msgid "" "(again, :class:`IntEnum` was explicitly designed to behave differently, see " "below)::" 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) ::" #: ../Doc/library/enum.rst:341 msgid "Allowed members and attributes of enumerations" -msgstr "" +msgstr "Membres et attributs autorisés dans une énumération" #: ../Doc/library/enum.rst:343 msgid "" @@ -294,16 +378,24 @@ msgid "" "the actual value of an enumeration is. But if the value *is* important, " "enumerations can have arbitrary values." msgstr "" +"Les exemples précédents utilisent des entiers pour énumérer les valeurs. " +"C'est un choix concis et pratique (et implémenté par défaut dans l'`API par " +"fonction`_), mais ce n'est pas une obligation. Dans la majorité des cas, il " +"importe peu de connaître la valeur réelle d'une énumération. Il est " +"toutefois possible de donner une valeur arbitraire aux énumérations, si " +"cette valeur est *vraiment* significative." #: ../Doc/library/enum.rst:349 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 ::" #: ../Doc/library/enum.rst:369 msgid "Then::" -msgstr "" +msgstr "amène ::" #: ../Doc/library/enum.rst:378 msgid "" @@ -314,6 +406,13 @@ msgid "" "`__add__`, etc.), descriptors (methods are also descriptors), and variable " "names listed in :attr:`_ignore_`." msgstr "" +"Les règles pour ce qui est autorisé sont les suivantes : les noms qui " +"commencent et finissent avec un seul tiret bas sont réservés par *enum* et " +"ne peuvent pas être utilisés ; tous les autres attributs définis dans " +"l'énumération en deviendront des membres, à l'exception des méthodes " +"spéciales (:meth:`__str__`, :meth:`__add__`, etc.), des descripteurs (les " +"méthodes sont aussi des descripteurs) et des noms de variable listés dans :" +"attr:`_ignore_`." #: ../Doc/library/enum.rst:385 msgid "" @@ -321,72 +420,103 @@ msgid "" "then whatever value(s) were given to the enum member will be passed into " "those methods. See `Planet`_ for an example." msgstr "" +"Remarque : si l'énumération définit :meth:`__new__` ou :meth:`__init__`, " +"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 -msgid "Restricted subclassing of enumerations" -msgstr "" +msgid "Restricted Enum subclassing" +msgstr "Restrictions sur l'héritage" #: ../Doc/library/enum.rst:393 msgid "" -"Subclassing an enumeration is allowed only if the enumeration does not " +"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 " +"order of these base classes is::" +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 ::" + +#: ../Doc/library/enum.rst:400 +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é ::" -#: ../Doc/library/enum.rst:403 +#: ../Doc/library/enum.rst:410 msgid "But this is allowed::" -msgstr "" +msgstr "Mais celui-ci est correct ::" -#: ../Doc/library/enum.rst:414 +#: ../Doc/library/enum.rst:421 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 " "makes sense to allow sharing some common behavior between a group of " "enumerations. (See `OrderedEnum`_ for an example.)" msgstr "" +"Autoriser l'héritage d'*enums* définissant des membres violerait des " +"invariants sur les types et les instances. D'un autre côté, il est logique " +"d'autoriser un groupe d'énumérations à partager un comportement commun (voir " +"par exemple `OrderedEnum`_)." -#: ../Doc/library/enum.rst:421 +#: ../Doc/library/enum.rst:428 msgid "Pickling" -msgstr "" +msgstr "Sérialisation" -#: ../Doc/library/enum.rst:423 +#: ../Doc/library/enum.rst:430 msgid "Enumerations can be pickled and unpickled::" -msgstr "" +msgstr "Les énumérations peuvent être sérialisées et déserialisées ::" -#: ../Doc/library/enum.rst:430 +#: ../Doc/library/enum.rst:437 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 " "importable from that module." 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éserialisation nécessite que ces *enums* puissent être " +"importés depuis ce module." -#: ../Doc/library/enum.rst:436 +#: ../Doc/library/enum.rst:443 msgid "" "With pickle protocol version 4 it is possible to easily pickle enums nested " "in other classes." 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:439 +#: ../Doc/library/enum.rst:446 msgid "" "It is possible to modify how Enum members are pickled/unpickled by defining :" "meth:`__reduce_ex__` in the enumeration class." 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:444 +#: ../Doc/library/enum.rst:451 msgid "Functional API" -msgstr "" +msgstr "API par fonction" -#: ../Doc/library/enum.rst:446 +#: ../Doc/library/enum.rst:453 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 ::" -#: ../Doc/library/enum.rst:458 +#: ../Doc/library/enum.rst:465 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." 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:461 +#: ../Doc/library/enum.rst:468 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-" @@ -397,15 +527,27 @@ msgid "" "class derived from :class:`Enum` is returned. In other words, the above " "assignment to :class:`Animal` is equivalent to::" msgstr "" +"Le second argument est la *source* des noms des membres de l'énumération. Il " +"peut être une chaîne de caractères contenant les noms séparés par des " +"espaces, une séquence de noms, une séquence de couples clé / valeur ou un " +"dictionnaire (p. ex. un *dict*) de valeurs indexées par des noms. Les deux " +"dernières options permettent d'affecter des valeurs arbitraires aux " +"é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 à ::" -#: ../Doc/library/enum.rst:477 +#: ../Doc/library/enum.rst:484 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 " "``True``." msgstr "" +"La valeur de départ par défaut est ``1`` et non ``0`` car ``0`` au sens " +"booléen vaut ``False`` alors que tous les membres d'une *enum* valent " +"``True``." -#: ../Doc/library/enum.rst:481 +#: ../Doc/library/enum.rst:488 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 " @@ -413,124 +555,150 @@ msgid "" "function in separate module, and also may not work on IronPython or Jython). " "The solution is to specify the module name explicitly as follows::" msgstr "" +"La sérialisation d'énumérations créées avec l'API en fonction peut être " +"source de problèmes, car celle-ci repose sur des détails d'implémentation de " +"l'affichage de la pile d'appel pour tenter de déterminer dans quel module " +"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 ::" -#: ../Doc/library/enum.rst:491 +#: ../Doc/library/enum.rst:498 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éserialisables ; pour garder les " +"erreurs au plus près de leur origine, la sérialisation sera désactivée." -#: ../Doc/library/enum.rst:495 +#: ../Doc/library/enum.rst:502 msgid "" "The new pickle protocol 4 also, in some circumstances, relies on :attr:" "`~definition.__qualname__` being set to the location where pickle will be " "able to find the class. For example, if the class was made available in " "class SomeData in the global scope::" msgstr "" +"Le nouveau protocole version 4 de *pickle* se base lui aussi, dans certains " +"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 ::" -#: ../Doc/library/enum.rst:502 +#: ../Doc/library/enum.rst:509 msgid "The complete signature is::" -msgstr "" +msgstr "La signature complète est la suivante ::" #: ../Doc/library/enum.rst:0 msgid "value" -msgstr "valeur" +msgstr "value" -#: ../Doc/library/enum.rst:506 +#: ../Doc/library/enum.rst:513 msgid "What the new Enum class will record as its name." -msgstr "" +msgstr "Le nom de la la nouvelle classe *Enum*." #: ../Doc/library/enum.rst:0 msgid "names" -msgstr "" +msgstr "names" -#: ../Doc/library/enum.rst:508 +#: ../Doc/library/enum.rst:515 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) ::" -#: ../Doc/library/enum.rst:513 +#: ../Doc/library/enum.rst:520 msgid "or an iterator of names::" -msgstr "" +msgstr "ou un itérateur sur les noms ::" -#: ../Doc/library/enum.rst:517 +#: ../Doc/library/enum.rst:524 msgid "or an iterator of (name, value) pairs::" -msgstr "" +msgstr "ou un itérateur sur les tuples (nom, valeur) ::" -#: ../Doc/library/enum.rst:521 +#: ../Doc/library/enum.rst:528 msgid "or a mapping::" -msgstr "" +msgstr "ou une correspondance ::" #: ../Doc/library/enum.rst:0 msgid "module" msgstr "module" -#: ../Doc/library/enum.rst:525 +#: ../Doc/library/enum.rst:532 msgid "name of module where new Enum class can be found." -msgstr "" +msgstr "nom du module dans lequel la classe *Enum* se trouve." #: ../Doc/library/enum.rst:0 msgid "qualname" -msgstr "" +msgstr "qualname" -#: ../Doc/library/enum.rst:527 +#: ../Doc/library/enum.rst:534 msgid "where in module new Enum class can be found." -msgstr "" +msgstr "localisation de la nouvelle classe *Enum* dans le module." #: ../Doc/library/enum.rst:0 msgid "type" msgstr "type" -#: ../Doc/library/enum.rst:529 +#: ../Doc/library/enum.rst:536 msgid "type to mix in to new Enum class." -msgstr "" +msgstr "le type à mélanger dans la nouvelle classe *Enum*." #: ../Doc/library/enum.rst:0 msgid "start" -msgstr "" +msgstr "start" -#: ../Doc/library/enum.rst:531 +#: ../Doc/library/enum.rst:538 msgid "number to start counting at if only names are passed in." -msgstr "" +msgstr "index de départ si uniquement des noms sont passés." -#: ../Doc/library/enum.rst:533 +#: ../Doc/library/enum.rst:540 msgid "The *start* parameter was added." -msgstr "" +msgstr "Ajout du paramètre *start*." -#: ../Doc/library/enum.rst:538 +#: ../Doc/library/enum.rst:545 msgid "Derived Enumerations" -msgstr "" +msgstr "Énumérations dérivées" -#: ../Doc/library/enum.rst:541 +#: ../Doc/library/enum.rst:548 msgid "IntEnum" msgstr "IntEnum" -#: ../Doc/library/enum.rst:543 +#: ../Doc/library/enum.rst:550 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 " "extension, integer enumerations of different types can also be compared to " "each other::" 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 ::" -#: ../Doc/library/enum.rst:564 +#: ../Doc/library/enum.rst:571 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` ::" -#: ../Doc/library/enum.rst:577 +#: ../Doc/library/enum.rst:584 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 ::" -#: ../Doc/library/enum.rst:588 +#: ../Doc/library/enum.rst:595 msgid "IntFlag" -msgstr "" +msgstr "IntFlag" -#: ../Doc/library/enum.rst:590 +#: ../Doc/library/enum.rst:597 msgid "" "The next variation of :class:`Enum` provided, :class:`IntFlag`, is also " "based on :class:`int`. The difference being :class:`IntFlag` members can be " @@ -540,33 +708,47 @@ msgid "" "is used. Any operation on an :class:`IntFlag` member besides the bit-wise " "operations will lose the :class:`IntFlag` membership." msgstr "" - -#: ../Doc/library/enum.rst:600 +"La version dérivée suivante de :class:`Enum` est :class:`IntFlag`. Elle est " +"aussi basée sur :class:`int`, à la différence près que les membres de :class:" +"`IntFlag` peuvent être combinés en utilisant les opérateurs bit-à-bit (&, " +"\\|, ^, ~) et que le résultat reste un membre de :class:`IntFlag`. " +"Cependant, comme le nom l'indique, les membres d'une classe :class:`IntFlag` " +"héritent aussi de :class:`int` et peuvent être utilisés là où un :class:" +"`int` est utilisé. Toute opération sur un membre d'une classe :class:" +"`IntFlag`, autre qu'un opérateur bit-à-bit lui fait perdre sa qualité de :" +"class:`IntFlag`." + +#: ../Doc/library/enum.rst:607 msgid "Sample :class:`IntFlag` class::" -msgstr "" +msgstr "Exemple d'une classe :class:`IntFlag` ::" -#: ../Doc/library/enum.rst:616 +#: ../Doc/library/enum.rst:623 msgid "It is also possible to name the combinations::" -msgstr "" +msgstr "Il est aussi possible de nommer les combinaisons ::" -#: ../Doc/library/enum.rst:628 +#: ../Doc/library/enum.rst:635 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:" "`False`::" 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` ::" -#: ../Doc/library/enum.rst:636 +#: ../Doc/library/enum.rst:643 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 ::" -#: ../Doc/library/enum.rst:644 +#: ../Doc/library/enum.rst:651 msgid "Flag" msgstr "Option" -#: ../Doc/library/enum.rst:646 +#: ../Doc/library/enum.rst:653 msgid "" "The last variation is :class:`Flag`. Like :class:`IntFlag`, :class:`Flag` " "members can be combined using the bitwise operators (&, \\|, ^, ~). Unlike :" @@ -575,26 +757,41 @@ msgid "" "specify the values directly it is recommended to use :class:`auto` as the " "value and let :class:`Flag` select an appropriate value." msgstr "" +"La dernière version dérivée est la classe :class:`Flag`. Comme :class:" +"`IntFlag`, les membres d'une classe :class:`Flag` peuvent être combinés en " +"utilisant les opérateurs de comparaison bit-à-bit. Cependant, à la " +"différence de :class:`IntFlag`, ils ne peuvent ni être combinés, ni être " +"comparés avec une autre énumération :class:`Flag`, ni avec :class:`int`. " +"Bien qu'il soit possible de définir directement les valeurs, il est " +"recommandé d'utiliser :class:`auto` comme valeur et de laisser :class:`Flag` " +"choisir une valeur appropriée." -#: ../Doc/library/enum.rst:655 +#: ../Doc/library/enum.rst:662 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` ::" -#: ../Doc/library/enum.rst:669 +#: ../Doc/library/enum.rst:676 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 ::" -#: ../Doc/library/enum.rst:681 +#: ../Doc/library/enum.rst:688 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 ::" -#: ../Doc/library/enum.rst:697 +#: ../Doc/library/enum.rst:704 msgid "" "For the majority of new code, :class:`Enum` and :class:`Flag` are strongly " "recommended, since :class:`IntEnum` and :class:`IntFlag` break some semantic " @@ -604,36 +801,52 @@ msgid "" "will not do; for example, when integer constants are replaced with " "enumerations, or for interoperability with other systems." msgstr "" +"Dans la plupart des cas, il est fortement recommandé d'utiliser :class:" +"`Enum` et :class:`Flag` pour écrire du code nouveau, car :class:`IntEnum` " +"et :class:`IntFlag` violent certains principes sémantiques d'une énumération " +"(en pouvant être comparées à des entiers et donc, par transitivité, à " +"d'autres énumérations). :class:`IntEnum` et :class:`IntFlag` ne doivent être " +"utilisées que dans les cas où :class:`Enum` et :class:`Flag` ne suffisent " +"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:707 +#: ../Doc/library/enum.rst:714 msgid "Others" msgstr "Autres" -#: ../Doc/library/enum.rst:709 +#: ../Doc/library/enum.rst:716 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 ::" -#: ../Doc/library/enum.rst:715 +#: ../Doc/library/enum.rst:722 msgid "" "This demonstrates how similar derived enumerations can be defined; for " "example a :class:`StrEnum` that mixes in :class:`str` instead of :class:" "`int`." msgstr "" +"Ceci montre comment définir des énumérations dérivées similaires ; par " +"exemple une classe :class:`StrEnum` qui dériverait de :class:`str` au lieu " +"de :class:`int`." -#: ../Doc/library/enum.rst:718 +#: ../Doc/library/enum.rst:725 msgid "Some rules:" -msgstr "" +msgstr "Quelques règles :" -#: ../Doc/library/enum.rst:720 +#: ../Doc/library/enum.rst:727 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 " "above." msgstr "" +"Pour hériter de :class:`Enum`, les types de mélange doivent être placés " +"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:723 +#: ../Doc/library/enum.rst:730 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:" @@ -641,182 +854,231 @@ msgid "" "methods and don't specify another data type such as :class:`int` or :class:" "`str`." msgstr "" +"Même si une classe :class:`Enum` peut avoir des membres de n'importe quel " +"type, dès lors qu'un type de mélange est ajouté, tous les membres doivent " +"être de ce type, p. ex. :class:`int` ci-dessus. Cette restriction ne " +"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:728 +#: ../Doc/library/enum.rst:735 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 " "equal." msgstr "" +"Quand un autre type de données est mélangé, l'attribut :attr:`value` n'est " +"*pas* identique au membre de l'énumération lui-même, bien qu'ils soient " +"équivalents et égaux en comparaison." -#: ../Doc/library/enum.rst:731 +#: ../Doc/library/enum.rst:738 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." 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:734 +#: ../Doc/library/enum.rst:741 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:741 +#: ../Doc/library/enum.rst:748 msgid "Interesting examples" -msgstr "" +msgstr "Exemples intéressants" -#: ../Doc/library/enum.rst:743 +#: ../Doc/library/enum.rst:750 msgid "" "While :class:`Enum`, :class:`IntEnum`, :class:`IntFlag`, and :class:`Flag` " "are expected to cover the majority of use-cases, they cannot cover them " "all. Here are recipes for some different types of enumerations that can be " "used directly, or as examples for creating one's own." msgstr "" +"Bien que :class:`Enum`, :class:`IntEnum`, :class:`IntFlag` et :class:`Flag` " +"soient conçues pour répondre à la majorité des besoins, elles ne peuvent " +"répondre à tous. Voici quelques recettes d'énumération qui peuvent être " +"réutilisées telles quelles, ou peuvent servir d'exemple pour développer vos " +"propres énumérations." -#: ../Doc/library/enum.rst:750 +#: ../Doc/library/enum.rst:757 msgid "Omitting values" -msgstr "" +msgstr "Omettre les valeurs" -#: ../Doc/library/enum.rst:752 +#: ../Doc/library/enum.rst:759 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:" msgstr "" +"Dans de nombreux cas, la valeur réelle de l'énumération n'a pas " +"d'importance. Il y a plusieurs façons de définir ce type d'énumération " +"simple :" -#: ../Doc/library/enum.rst:755 +#: ../Doc/library/enum.rst:762 msgid "use instances of :class:`auto` for the value" -msgstr "" +msgstr "affecter des instances de :class:`auto` aux valeurs" -#: ../Doc/library/enum.rst:756 +#: ../Doc/library/enum.rst:763 msgid "use instances of :class:`object` as the value" -msgstr "" +msgstr "affecter des instances de :class:`object` aux valeurs" -#: ../Doc/library/enum.rst:757 +#: ../Doc/library/enum.rst:764 msgid "use a descriptive string as the value" -msgstr "" +msgstr "affecter des chaînes de caractères aux valeurs pour les décrire" -#: ../Doc/library/enum.rst:758 +#: ../Doc/library/enum.rst:765 msgid "" "use a tuple as the value and a custom :meth:`__new__` to replace the tuple " "with an :class:`int` value" 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:761 +#: ../Doc/library/enum.rst:768 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 " "having to renumber the remaining members." msgstr "" +"Utiliser une de ces méthodes indique à l'utilisateur que les valeurs n'ont " +"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:765 +#: ../Doc/library/enum.rst:772 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) ::" -#: ../Doc/library/enum.rst:775 +#: ../Doc/library/enum.rst:782 msgid "Using :class:`auto`" -msgstr "" +msgstr "Avec :class:`auto`" -#: ../Doc/library/enum.rst:777 +#: ../Doc/library/enum.rst:784 msgid "Using :class:`auto` would look like::" -msgstr "" +msgstr "On utilise :class:`auto` de la manière suivante ::" -#: ../Doc/library/enum.rst:789 +#: ../Doc/library/enum.rst:796 msgid "Using :class:`object`" -msgstr "" +msgstr "Avec :class:`object`" -#: ../Doc/library/enum.rst:791 +#: ../Doc/library/enum.rst:798 msgid "Using :class:`object` would look like::" -msgstr "" +msgstr "On utilise :class:`object` de la manière suivante ::" -#: ../Doc/library/enum.rst:803 +#: ../Doc/library/enum.rst:810 msgid "Using a descriptive string" -msgstr "" +msgstr "Avec une chaîne de caractères de description" -#: ../Doc/library/enum.rst:805 +#: ../Doc/library/enum.rst:812 msgid "Using a string as the value would look like::" -msgstr "" +msgstr "On utilise une chaîne de caractères de la manière suivante ::" -#: ../Doc/library/enum.rst:819 +#: ../Doc/library/enum.rst:826 msgid "Using a custom :meth:`__new__`" -msgstr "" +msgstr "Avec une méthode ad-hoc :meth:`__new__`" -#: ../Doc/library/enum.rst:821 +#: ../Doc/library/enum.rst:828 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 ::" -#: ../Doc/library/enum.rst:843 +#: ../Doc/library/enum.rst:850 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 " "class creation for lookup of existing members." msgstr "" +"La méthode :meth:`__new__`, si définie, est appelée à la création des " +"membres de l'énumération ; elle est ensuite remplacée par la méthode :meth:" +"`__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:849 +#: ../Doc/library/enum.rst:856 msgid "OrderedEnum" msgstr "OrderedEnum" -#: ../Doc/library/enum.rst:851 +#: ../Doc/library/enum.rst:858 msgid "" "An ordered enumeration that is not based on :class:`IntEnum` and so " "maintains the normal :class:`Enum` invariants (such as not being comparable " "to other enumerations)::" 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) ::" -#: ../Doc/library/enum.rst:885 +#: ../Doc/library/enum.rst:892 msgid "DuplicateFreeEnum" msgstr "DuplicateFreeEnum" -#: ../Doc/library/enum.rst:887 +#: ../Doc/library/enum.rst:894 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 ::" -#: ../Doc/library/enum.rst:912 +#: ../Doc/library/enum.rst:919 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 " "disallowing aliases, the :func:`unique` decorator can be used instead." msgstr "" +"Cet exemple d'héritage de *Enum* est intéressant pour ajouter ou modifier " +"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:918 +#: ../Doc/library/enum.rst:925 msgid "Planet" -msgstr "" +msgstr "Planet" -#: ../Doc/library/enum.rst:920 +#: ../Doc/library/enum.rst:927 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 ::" -#: ../Doc/library/enum.rst:948 +#: ../Doc/library/enum.rst:955 msgid "TimePeriod" -msgstr "" +msgstr "TimePeriod" -#: ../Doc/library/enum.rst:950 +#: ../Doc/library/enum.rst:957 msgid "An example to show the :attr:`_ignore_` attribute in use::" -msgstr "" +msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` ::" -#: ../Doc/library/enum.rst:967 +#: ../Doc/library/enum.rst:974 msgid "How are Enums different?" -msgstr "" +msgstr "En quoi les *Enums* sont différentes ?" -#: ../Doc/library/enum.rst:969 +#: ../Doc/library/enum.rst:976 msgid "" "Enums have a custom metaclass that affects many aspects of both derived Enum " "classes and their instances (members)." 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:974 +#: ../Doc/library/enum.rst:981 msgid "Enum Classes" -msgstr "" +msgstr "Classes *Enum*" -#: ../Doc/library/enum.rst:976 +#: ../Doc/library/enum.rst:983 msgid "" "The :class:`EnumMeta` metaclass is responsible for providing the :meth:" "`__contains__`, :meth:`__dir__`, :meth:`__iter__` and other methods that " @@ -826,12 +1088,19 @@ msgid "" "`Enum` class are correct (such as :meth:`__new__`, :meth:`__getnewargs__`, :" "meth:`__str__` and :meth:`__repr__`)." msgstr "" +"La métaclasse :class:`EnumMeta` se charge de fournir les méthodes :meth:" +"`__contains__`, :meth:`__dir__`, :meth:`__iter__` etc. qui permettent de " +"faire des opérations sur une classe :class:`Enum` qui ne fonctionneraient " +"pas sur une classe standard, comme `list(Color)` ou `some_enum_var in " +"Color`. :class:`EnumMeta` garantit que les autres méthodes de la classe " +"finale :class:`Enum` sont correctes (comme :meth:`__new__`, :meth:" +"`__getnewargs__`, :meth:`__str__` et :meth:`__repr__`)." -#: ../Doc/library/enum.rst:986 +#: ../Doc/library/enum.rst:993 msgid "Enum Members (aka instances)" -msgstr "" +msgstr "Membres d'Enum (c.-à-d. instances)" -#: ../Doc/library/enum.rst:988 +#: ../Doc/library/enum.rst:995 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` " @@ -839,92 +1108,122 @@ msgid "" "no new ones are ever instantiated by returning only the existing member " "instances." msgstr "" +"Il est intéressant de souligner que les membres d'une *Enum* sont des " +"singletons. La classe :class:`EnumMeta` les crée tous au moment de la " +"création de la classe :class:`Enum` elle-même et implémente une méthode :" +"meth:`__new__` spécifique. Cette méthode renvoie toujours les instances de " +"membres déjà existantes pour être sûr de ne jamais en instancier de " +"nouvelles." -#: ../Doc/library/enum.rst:996 +#: ../Doc/library/enum.rst:1003 msgid "Finer Points" -msgstr "" +msgstr "Aspects approfondis" -#: ../Doc/library/enum.rst:999 +#: ../Doc/library/enum.rst:1006 msgid "Supported ``__dunder__`` names" -msgstr "" +msgstr "Noms de la forme ``__dunder__`` disponibles" -#: ../Doc/library/enum.rst:1001 +#: ../Doc/library/enum.rst:1008 msgid "" ":attr:`__members__` is an :class:`OrderedDict` 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." -#: ../Doc/library/enum.rst:1004 +#: ../Doc/library/enum.rst:1011 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. " "Once all the members are created it is no longer used." msgstr "" +"La méthode :meth:`__new__`, si elle est définie, doit créer et renvoyer les " +"membres de l'énumération ; affecter correctement l'attribut :attr:`_value_` " +"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:1010 +#: ../Doc/library/enum.rst:1017 msgid "Supported ``_sunder_`` names" -msgstr "" +msgstr "Noms de la forme ``_sunder_`` disponibles" -#: ../Doc/library/enum.rst:1012 +#: ../Doc/library/enum.rst:1019 msgid "``_name_`` -- name of the member" -msgstr "" +msgstr "``_name_`` -- nom du membre" -#: ../Doc/library/enum.rst:1013 +#: ../Doc/library/enum.rst:1020 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:1015 +#: ../Doc/library/enum.rst:1022 msgid "" "``_missing_`` -- a lookup function used when a value is not found; may be " "overridden" 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:1017 +#: ../Doc/library/enum.rst:1024 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 " "final class" msgstr "" +"``_ignore_`` -- une liste de noms, sous la forme de :func:`list` ou de :func:" +"`str`, qui ne seront pas transformés en membres, et seront supprimés de la " +"classe résultante" -#: ../Doc/library/enum.rst:1020 +#: ../Doc/library/enum.rst:1027 msgid "" "``_order_`` -- used in Python 2/3 code to ensure member order is consistent " "(class attribute, removed during class creation)" msgstr "" +"``_order_`` -- utilisé en Python 2 ou 3 pour s'assurer que l'ordre des " +"membres est cohérent (attribut de classe, supprimé durant la création de la " +"classe)" -#: ../Doc/library/enum.rst:1022 +#: ../Doc/library/enum.rst:1029 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" msgstr "" +"``_generate_next_value_`` -- utilisée par l' `API par fonction`_ et par :" +"class:`auto` pour obtenir une valeur appropriée à affecter à un membre de " +"*l'enum* ; elle peut être redéfinie" -#: ../Doc/library/enum.rst:1026 +#: ../Doc/library/enum.rst:1033 msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" -msgstr "" +msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" -#: ../Doc/library/enum.rst:1027 +#: ../Doc/library/enum.rst:1034 msgid "``_ignore_``" -msgstr "" +msgstr "``_ignore_``" -#: ../Doc/library/enum.rst:1029 +#: ../Doc/library/enum.rst:1036 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 " "enumeration and raise an error if the two do not match::" 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 ::" -#: ../Doc/library/enum.rst:1045 +#: ../Doc/library/enum.rst:1052 msgid "" "In Python 2 code the :attr:`_order_` attribute is necessary as definition " "order is lost before it can be recorded." 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:1049 +#: ../Doc/library/enum.rst:1056 msgid "``Enum`` member type" -msgstr "" +msgstr "Type des membres de ``Enum``" -#: ../Doc/library/enum.rst:1051 +#: ../Doc/library/enum.rst:1058 msgid "" ":class:`Enum` members are instances of their :class:`Enum` class, and are " "normally accessed as ``EnumClass.member``. Under certain circumstances they " @@ -933,12 +1232,19 @@ msgid "" "`Enum` member you are looking for (this is another good reason to use all-" "uppercase names for members)::" msgstr "" +"Les membres de :class:`Enum` sont des instances de leur classe :class:" +"`Enum`. On y accède normalement par ``ClasseEnum.membre``. Dans certains " +"cas, on peut également y accéder par ``ClasseEnum.membre.membre``, mais ceci " +"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) ::" -#: ../Doc/library/enum.rst:1072 +#: ../Doc/library/enum.rst:1079 msgid "Boolean value of ``Enum`` classes and members" -msgstr "" +msgstr "Valeur booléenne des classes ``Enum`` et de leurs membres" -#: ../Doc/library/enum.rst:1074 +#: ../Doc/library/enum.rst:1081 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 " @@ -946,28 +1252,39 @@ msgid "" "own Enum's boolean evaluation depend on the member's value add the following " "to your class::" msgstr "" +"Les membres d'une classe :class:`Enum` mélangée avec un type non dérivé de :" +"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 ::" -#: ../Doc/library/enum.rst:1083 +#: ../Doc/library/enum.rst:1090 msgid ":class:`Enum` classes always evaluate as :data:`True`." -msgstr "" +msgstr "Les classes :class:`Enum` valent toujours :data:`True`." -#: ../Doc/library/enum.rst:1087 +#: ../Doc/library/enum.rst:1094 msgid "``Enum`` classes with methods" -msgstr "" +msgstr "Classes ``Enum`` avec des méthodes" -#: ../Doc/library/enum.rst:1089 +#: ../Doc/library/enum.rst:1096 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 " "not of the class::" 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 ::" -#: ../Doc/library/enum.rst:1100 +#: ../Doc/library/enum.rst:1107 msgid "Combining members of ``Flag``" -msgstr "" +msgstr "Combinaison de membres de ``Flag``" -#: ../Doc/library/enum.rst:1102 +#: ../Doc/library/enum.rst:1109 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 ::" diff --git a/library/errno.po b/library/errno.po index 1a909a3df..279c258f6 100644 --- a/library/errno.po +++ b/library/errno.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-06-10 15:48+0200\n" +"Last-Translator: Dylan Gouin \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" #: ../Doc/library/errno.rst:2 msgid ":mod:`errno` --- Standard errno system symbols" -msgstr "" +msgstr ":mod:`errno` — Symboles du système *errno* standard" #: ../Doc/library/errno.rst:9 msgid "" @@ -25,6 +26,10 @@ msgid "" "are borrowed from :file:`linux/include/errno.h`, which should be pretty all-" "inclusive." msgstr "" +"Ce module met à disposition des symboles du système standard ``errno``. La " +"valeur de chaque symbole est la valeur entière correspondante. Les noms et " +"les descriptions sont empruntés à :file:`linux/include/errno.h`, qui devrait " +"être assez exhaustif." #: ../Doc/library/errno.rst:17 msgid "" @@ -32,12 +37,17 @@ msgid "" "the underlying system. For instance, ``errno.errorcode[errno.EPERM]`` maps " "to ``'EPERM'``." msgstr "" +"Dictionnaire associant la valeur *errno* au nom de chaîne dans le système " +"sous-jacent. Par exemple, ``errno.errorcode[errno.EPERM]`` correspond à " +"``'EPERM'``." #: ../Doc/library/errno.rst:21 msgid "" "To translate a numeric error code to an error message, use :func:`os." "strerror`." msgstr "" +"Pour traduire un code d'erreur en message d'erreur, utilisez :func:`os." +"strerror`." #: ../Doc/library/errno.rst:23 msgid "" @@ -45,94 +55,98 @@ msgid "" "not defined by the module. The specific list of defined symbols is " "available as ``errno.errorcode.keys()``. Symbols available can include:" msgstr "" +"De la liste suivante, les symboles qui ne sont pas utilisés dans la " +"plateforme actuelle ne sont pas définis par le module. La liste spécifique " +"des symboles définis est disponible comme ``errno.errorcode.keys()``. Les " +"symboles disponibles font partie de cette liste :" #: ../Doc/library/errno.rst:30 msgid "Operation not permitted" -msgstr "" +msgstr "Opération interdite" #: ../Doc/library/errno.rst:35 msgid "No such file or directory" -msgstr "" +msgstr "Fichier ou répertoire inexistant" #: ../Doc/library/errno.rst:40 msgid "No such process" -msgstr "" +msgstr "Processus inexistant" #: ../Doc/library/errno.rst:45 msgid "Interrupted system call." -msgstr "" +msgstr "Appel système interrompu" #: ../Doc/library/errno.rst:48 msgid "This error is mapped to the exception :exc:`InterruptedError`." -msgstr "" +msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." #: ../Doc/library/errno.rst:53 msgid "I/O error" -msgstr "" +msgstr "Erreur d'entrée-sortie" #: ../Doc/library/errno.rst:58 msgid "No such device or address" -msgstr "" +msgstr "Dispositif ou adresse inexistant" #: ../Doc/library/errno.rst:63 msgid "Arg list too long" -msgstr "" +msgstr "Liste d'arguments trop longue" #: ../Doc/library/errno.rst:68 msgid "Exec format error" -msgstr "" +msgstr "Erreur de format d'exécution" #: ../Doc/library/errno.rst:73 msgid "Bad file number" -msgstr "" +msgstr "Mauvais descripteur de fichier" #: ../Doc/library/errno.rst:78 msgid "No child processes" -msgstr "" +msgstr "Pas de processus fils" #: ../Doc/library/errno.rst:83 msgid "Try again" -msgstr "" +msgstr "Ressource temporairement indisponible (réessayez)" #: ../Doc/library/errno.rst:88 msgid "Out of memory" -msgstr "" +msgstr "Mémoire insuffisante" #: ../Doc/library/errno.rst:93 msgid "Permission denied" -msgstr "" +msgstr "Autorisation refusée" #: ../Doc/library/errno.rst:98 msgid "Bad address" -msgstr "" +msgstr "Mauvaise adresse" #: ../Doc/library/errno.rst:103 msgid "Block device required" -msgstr "" +msgstr "Dispositif de bloc requis" #: ../Doc/library/errno.rst:108 msgid "Device or resource busy" -msgstr "" +msgstr "Dispositif ou ressource occupé" #: ../Doc/library/errno.rst:113 msgid "File exists" -msgstr "" +msgstr "Fichier déjà existant" #: ../Doc/library/errno.rst:118 msgid "Cross-device link" -msgstr "" +msgstr "Lien inapproprié" #: ../Doc/library/errno.rst:123 msgid "No such device" -msgstr "" +msgstr "Dispositif inexistant" #: ../Doc/library/errno.rst:128 msgid "Not a directory" -msgstr "" +msgstr "Pas un répertoire" #: ../Doc/library/errno.rst:133 msgid "Is a directory" -msgstr "" +msgstr "Est un répertoire" #: ../Doc/library/errno.rst:138 msgid "Invalid argument" @@ -140,400 +154,402 @@ msgstr "Argument invalide" #: ../Doc/library/errno.rst:143 msgid "File table overflow" -msgstr "" +msgstr "Plus de descripteur de fichier disponible" #: ../Doc/library/errno.rst:148 msgid "Too many open files" -msgstr "" +msgstr "Trop de fichiers ouverts" #: ../Doc/library/errno.rst:153 msgid "Not a typewriter" -msgstr "" +msgstr "Opération de contrôle d'entrée-sortie invalide" #: ../Doc/library/errno.rst:158 msgid "Text file busy" -msgstr "" +msgstr "Fichier texte occupé" #: ../Doc/library/errno.rst:163 msgid "File too large" -msgstr "" +msgstr "Fichier trop grand" #: ../Doc/library/errno.rst:168 msgid "No space left on device" -msgstr "" +msgstr "Plus de place sur le dispositif" #: ../Doc/library/errno.rst:173 msgid "Illegal seek" -msgstr "" +msgstr "Recherche invalide" #: ../Doc/library/errno.rst:178 msgid "Read-only file system" -msgstr "" +msgstr "Système de fichiers en lecture seule" #: ../Doc/library/errno.rst:183 msgid "Too many links" -msgstr "" +msgstr "Trop de liens symboliques" #: ../Doc/library/errno.rst:188 msgid "Broken pipe" -msgstr "" +msgstr "Tube brisé" #: ../Doc/library/errno.rst:193 msgid "Math argument out of domain of func" -msgstr "" +msgstr "Argument mathématique hors du domaine de définition de la fonction" #: ../Doc/library/errno.rst:198 msgid "Math result not representable" -msgstr "" +msgstr "Résultat mathématique non représentable" #: ../Doc/library/errno.rst:203 msgid "Resource deadlock would occur" -msgstr "" +msgstr "Un interblocage se produirait sur cette ressource" #: ../Doc/library/errno.rst:208 msgid "File name too long" -msgstr "" +msgstr "Nom de fichier trop long" #: ../Doc/library/errno.rst:213 msgid "No record locks available" -msgstr "" +msgstr "Plus de verrou de fichier disponible" #: ../Doc/library/errno.rst:218 msgid "Function not implemented" -msgstr "" +msgstr "Fonction non implémentée" #: ../Doc/library/errno.rst:223 msgid "Directory not empty" -msgstr "" +msgstr "Dossier non vide" #: ../Doc/library/errno.rst:228 msgid "Too many symbolic links encountered" -msgstr "" +msgstr "Trop de liens symboliques trouvés" #: ../Doc/library/errno.rst:233 msgid "Operation would block" -msgstr "" +msgstr "L'opération bloquerait" #: ../Doc/library/errno.rst:238 msgid "No message of desired type" -msgstr "" +msgstr "Pas de message du type voulu" #: ../Doc/library/errno.rst:243 msgid "Identifier removed" -msgstr "" +msgstr "Identifiant supprimé" #: ../Doc/library/errno.rst:248 msgid "Channel number out of range" -msgstr "" +msgstr "Le numéro de canal est hors des limites" #: ../Doc/library/errno.rst:253 msgid "Level 2 not synchronized" -msgstr "" +msgstr "Le niveau 2 n'est pas synchronisé" #: ../Doc/library/errno.rst:258 msgid "Level 3 halted" -msgstr "" +msgstr "Niveau 3 stoppé" #: ../Doc/library/errno.rst:263 msgid "Level 3 reset" -msgstr "" +msgstr "Niveau 3 réinitialisé" #: ../Doc/library/errno.rst:268 msgid "Link number out of range" -msgstr "" +msgstr "Le numéro du lien est hors des limites" #: ../Doc/library/errno.rst:273 msgid "Protocol driver not attached" -msgstr "" +msgstr "Le pilote de protocole n'est pas attaché" #: ../Doc/library/errno.rst:278 msgid "No CSI structure available" -msgstr "" +msgstr "Pas de structure *CSI* disponible" #: ../Doc/library/errno.rst:283 msgid "Level 2 halted" -msgstr "" +msgstr "Niveau 2 stoppé" #: ../Doc/library/errno.rst:288 msgid "Invalid exchange" -msgstr "" +msgstr "Échange invalide" #: ../Doc/library/errno.rst:293 msgid "Invalid request descriptor" -msgstr "" +msgstr "Descripteur de requête invalide" #: ../Doc/library/errno.rst:298 msgid "Exchange full" -msgstr "" +msgstr "Échange complet" #: ../Doc/library/errno.rst:303 msgid "No anode" -msgstr "" +msgstr "Pas de *anode*" #: ../Doc/library/errno.rst:308 msgid "Invalid request code" -msgstr "" +msgstr "Code de requête invalide" #: ../Doc/library/errno.rst:313 msgid "Invalid slot" -msgstr "" +msgstr "*Slot* invalide" #: ../Doc/library/errno.rst:318 msgid "File locking deadlock error" -msgstr "" +msgstr "Interblocage lors du verrouillage de fichier" #: ../Doc/library/errno.rst:323 msgid "Bad font file format" -msgstr "" +msgstr "Mauvais format de fichier de police" #: ../Doc/library/errno.rst:328 msgid "Device not a stream" -msgstr "" +msgstr "Le périphérique n'est pas un flux" #: ../Doc/library/errno.rst:333 msgid "No data available" -msgstr "" +msgstr "Pas de donnée disponible" #: ../Doc/library/errno.rst:338 msgid "Timer expired" -msgstr "" +msgstr "Délai maximal atteint" #: ../Doc/library/errno.rst:343 msgid "Out of streams resources" -msgstr "" +msgstr "Pas assez de ressources de type flux" #: ../Doc/library/errno.rst:348 msgid "Machine is not on the network" -msgstr "" +msgstr "Machine hors réseau" #: ../Doc/library/errno.rst:353 msgid "Package not installed" -msgstr "" +msgstr "Paquet non installé" #: ../Doc/library/errno.rst:358 msgid "Object is remote" -msgstr "" +msgstr "L'objet est distant" #: ../Doc/library/errno.rst:363 msgid "Link has been severed" -msgstr "" +msgstr "Lien coupé" #: ../Doc/library/errno.rst:368 msgid "Advertise error" -msgstr "" +msgstr "Erreur d'annonce" #: ../Doc/library/errno.rst:373 msgid "Srmount error" -msgstr "" +msgstr "Erreur *Srmount*" #: ../Doc/library/errno.rst:378 msgid "Communication error on send" -msgstr "" +msgstr "Erreur de communication lors de l'envoi" #: ../Doc/library/errno.rst:383 msgid "Protocol error" -msgstr "" +msgstr "Erreur de protocole" #: ../Doc/library/errno.rst:388 msgid "Multihop attempted" -msgstr "" +msgstr "Transfert à sauts multiples essayé" #: ../Doc/library/errno.rst:393 msgid "RFS specific error" -msgstr "" +msgstr "erreur spécifique *RFS*" #: ../Doc/library/errno.rst:398 msgid "Not a data message" -msgstr "" +msgstr "Pas un message de données" #: ../Doc/library/errno.rst:403 msgid "Value too large for defined data type" -msgstr "" +msgstr "Valeur trop grande pour être stockée dans ce type de donnée" #: ../Doc/library/errno.rst:408 msgid "Name not unique on network" -msgstr "" +msgstr "Nom non-unique dans le réseau" #: ../Doc/library/errno.rst:413 msgid "File descriptor in bad state" -msgstr "" +msgstr "Descripteur de fichier en mauvais état" #: ../Doc/library/errno.rst:418 msgid "Remote address changed" -msgstr "" +msgstr "Adresse distante changée" #: ../Doc/library/errno.rst:423 msgid "Can not access a needed shared library" -msgstr "" +msgstr "Accès impossible à une bibliothèque partagée nécessaire" #: ../Doc/library/errno.rst:428 msgid "Accessing a corrupted shared library" -msgstr "" +msgstr "Accès à une bibliothèque partagée corrompue" #: ../Doc/library/errno.rst:433 msgid ".lib section in a.out corrupted" -msgstr "" +msgstr "Section *.lib* de *a.out* corrompue" #: ../Doc/library/errno.rst:438 msgid "Attempting to link in too many shared libraries" -msgstr "" +msgstr "Tentative de liaison entre trop de bibliothèques partagées" #: ../Doc/library/errno.rst:443 msgid "Cannot exec a shared library directly" -msgstr "" +msgstr "Impossible d'exécuter directement une bibliothèque partagée" #: ../Doc/library/errno.rst:448 msgid "Illegal byte sequence" -msgstr "" +msgstr "Séquence de *bytes* illégale" #: ../Doc/library/errno.rst:453 msgid "Interrupted system call should be restarted" -msgstr "" +msgstr "Appel système interrompu qui devrait être relancé" #: ../Doc/library/errno.rst:458 msgid "Streams pipe error" -msgstr "" +msgstr "Erreur d’enchaînement de flux" #: ../Doc/library/errno.rst:463 msgid "Too many users" -msgstr "" +msgstr "Trop d'utilisateurs" #: ../Doc/library/errno.rst:468 msgid "Socket operation on non-socket" msgstr "" +"Opération d'interface de connexion alors que ce n'est pas une interface de " +"connexion" #: ../Doc/library/errno.rst:473 msgid "Destination address required" -msgstr "" +msgstr "Adresse de destination obligatoire" #: ../Doc/library/errno.rst:478 msgid "Message too long" -msgstr "" +msgstr "Message trop long" #: ../Doc/library/errno.rst:483 msgid "Protocol wrong type for socket" -msgstr "" +msgstr "Mauvais type de protocole pour ce connecteur" #: ../Doc/library/errno.rst:488 msgid "Protocol not available" -msgstr "" +msgstr "Protocole pas disponible" #: ../Doc/library/errno.rst:493 msgid "Protocol not supported" -msgstr "" +msgstr "Protocole non géré" #: ../Doc/library/errno.rst:498 msgid "Socket type not supported" -msgstr "" +msgstr "Type de connecteur non géré" #: ../Doc/library/errno.rst:503 msgid "Operation not supported on transport endpoint" -msgstr "" +msgstr "Opération non gérée par cette fin de lien" #: ../Doc/library/errno.rst:508 msgid "Protocol family not supported" -msgstr "" +msgstr "Famille de protocole non gérée" #: ../Doc/library/errno.rst:513 msgid "Address family not supported by protocol" -msgstr "" +msgstr "Famille d'adresses non gérée par ce protocole" #: ../Doc/library/errno.rst:518 msgid "Address already in use" -msgstr "" +msgstr "Adresse déjà utilisée" #: ../Doc/library/errno.rst:523 msgid "Cannot assign requested address" -msgstr "" +msgstr "Impossible d'assigner l'adresse demandée" #: ../Doc/library/errno.rst:528 msgid "Network is down" -msgstr "" +msgstr "Le réseau est désactivé" #: ../Doc/library/errno.rst:533 msgid "Network is unreachable" -msgstr "" +msgstr "Réseau inaccessible" #: ../Doc/library/errno.rst:538 msgid "Network dropped connection because of reset" -msgstr "" +msgstr "Connexion annulée par le réseau" #: ../Doc/library/errno.rst:543 msgid "Software caused connection abort" -msgstr "" +msgstr "Connexion abandonnée" #: ../Doc/library/errno.rst:548 msgid "Connection reset by peer" -msgstr "" +msgstr "Connexion réinitialisée" #: ../Doc/library/errno.rst:553 msgid "No buffer space available" -msgstr "" +msgstr "Plus d'espace tampon disponible" #: ../Doc/library/errno.rst:558 msgid "Transport endpoint is already connected" -msgstr "" +msgstr "L'interface de connexion est déjà connectée" #: ../Doc/library/errno.rst:563 msgid "Transport endpoint is not connected" -msgstr "" +msgstr "L'interface de connexion n'est pas connectée" #: ../Doc/library/errno.rst:568 msgid "Cannot send after transport endpoint shutdown" -msgstr "" +msgstr "Impossible d'envoyer après l'arrêt du point final du transport" #: ../Doc/library/errno.rst:573 msgid "Too many references: cannot splice" -msgstr "" +msgstr "Trop de descripteurs : impossible d'effectuer la liaison" #: ../Doc/library/errno.rst:578 msgid "Connection timed out" -msgstr "" +msgstr "Délai maximal de connexion écoulé" #: ../Doc/library/errno.rst:583 msgid "Connection refused" -msgstr "" +msgstr "Connexion refusée" #: ../Doc/library/errno.rst:588 msgid "Host is down" -msgstr "" +msgstr "Hôte éteint" #: ../Doc/library/errno.rst:593 msgid "No route to host" -msgstr "" +msgstr "Pas de route vers l'hôte" #: ../Doc/library/errno.rst:598 msgid "Operation already in progress" -msgstr "" +msgstr "Connexion déjà en cours" #: ../Doc/library/errno.rst:603 msgid "Operation now in progress" -msgstr "" +msgstr "Opération en cours" #: ../Doc/library/errno.rst:608 msgid "Stale NFS file handle" -msgstr "" +msgstr "Descripteur de fichier NFS corrompu" #: ../Doc/library/errno.rst:613 msgid "Structure needs cleaning" -msgstr "" +msgstr "La structure a besoin d'être nettoyée" #: ../Doc/library/errno.rst:618 msgid "Not a XENIX named type file" -msgstr "" +msgstr "N'est pas un fichier nommé du type *XENIX*" #: ../Doc/library/errno.rst:623 msgid "No XENIX semaphores available" -msgstr "" +msgstr "Pas de sémaphore *XENIX* disponible" #: ../Doc/library/errno.rst:628 msgid "Is a named type file" -msgstr "" +msgstr "Est un fichier nommé" #: ../Doc/library/errno.rst:633 msgid "Remote I/O error" -msgstr "" +msgstr "Erreur d'entrées-sorties distante" #: ../Doc/library/errno.rst:638 msgid "Quota exceeded" -msgstr "" +msgstr "Quota dépassé" diff --git a/library/exceptions.po b/library/exceptions.po index e8af60bc8..ba20b9683 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-09-28 13:07+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-10 15:49+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.0.2\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/library/exceptions.rst:4 msgid "Built-in Exceptions" @@ -104,7 +104,7 @@ 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`: ::" +"utilisant :keyword:`from` avec :keyword:`raise` ::" #: ../Doc/library/exceptions.rst:50 msgid "" @@ -113,7 +113,7 @@ msgid "" "`__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 " +"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``. " @@ -122,7 +122,7 @@ msgstr "" "`__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:" -"`AttributeError`, tout en laissant l'ancienne exception disponible dans :" +"`AttributeError`), tout en laissant l'ancienne exception disponible dans :" "attr:`__context__` pour introspection lors du débogage." #: ../Doc/library/exceptions.rst:59 @@ -187,7 +187,7 @@ msgstr "" "exceptions natives (comme :exc:`OSError`) attendent un certain nombre " "d'arguments et attribuent une signification spéciale aux éléments de ce " "*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. " +"chaîne de caractères rendant un message d'erreur." #: ../Doc/library/exceptions.rst:92 msgid "" @@ -196,7 +196,7 @@ msgid "" 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 msgid "" @@ -515,7 +515,7 @@ msgid "" msgstr "" ":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket." "error`, :exc:`select.error` et :exc:`mmap.error` ont fusionnées en :exc:" -"`OSError`, et le constructeur peut retourner une sous-classe." +"`OSError`, et le constructeur peut renvoyer une sous-classe." #: ../Doc/library/exceptions.rst:313 msgid "" @@ -927,9 +927,9 @@ msgid "" "blocking operation. Corresponds to :c:data:`errno` ``EAGAIN``, ``EALREADY``, " "``EWOULDBLOCK`` and ``EINPROGRESS``." msgstr "" -"Levée lorsqu'une opération bloque sur un objet (e.g. socket) configuré pour " -"une opération non-bloquante. Correspond à :c:data:`errno` ``EAGAIN``, " -"``EALREADY``, ``EWOULDBLOCK`` et ``EINPROGRESS``." +"Levée lorsqu'une opération bloque sur un objet (par exemple un connecteur) " +"configuré pour une opération non-bloquante. Correspond à :c:data:`errno` " +"``EAGAIN``, ``EALREADY``, ``EWOULDBLOCK`` et ``EINPROGRESS``." #: ../Doc/library/exceptions.rst:565 msgid "" @@ -979,8 +979,8 @@ msgid "" msgstr "" "Une sous-classe de :exc:`ConnectionError`, levé en essayant d'écrire sur un " "*pipe* alors que l'autre extrémité a été fermée, ou en essayant d'écrire sur " -"un *socket* qui a été fermé pour l'écriture. Correspond à :c:data:`errno` " -"``EPIPE`` et ``ESHUTDOWN``." +"un connecteur (*socket* en anglais) qui a été fermé pour l'écriture. " +"Correspond à :c:data:`errno` ``EPIPE`` et ``ESHUTDOWN``." #: ../Doc/library/exceptions.rst:595 msgid "" @@ -1092,7 +1092,7 @@ msgstr "Toutes les sous-classes d':exc:`OSError` ci-dessus ont été ajoutées." #: ../Doc/library/exceptions.rst:665 msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" -msgstr ":pep:`3151` --- Refonte de la hiérarchie des exceptions système et IO" +msgstr ":pep:`3151` -- Refonte de la hiérarchie des exceptions système et IO" #: ../Doc/library/exceptions.rst:671 msgid "Warnings" @@ -1125,23 +1125,34 @@ msgstr "" #: ../Doc/library/exceptions.rst:694 msgid "" -"Base class for warnings about features which will be deprecated in the " -"future." +"Base class for warnings about features which are obsolete and expected to be " +"deprecated in the future, but are not deprecated at the moment." msgstr "" -"Classe de base pour les avertissements sur les fonctionnalités qui seront " -"obsolètes dans le futur." +"Classe de base pour les avertissements d'obsolescence programmée. Ils " +"indiquent que la fonctionnalité peut encore être utilisée actuellement, mais " +"qu'elle sera supprimée dans le futur." -#: ../Doc/library/exceptions.rst:700 +#: ../Doc/library/exceptions.rst:698 +msgid "" +"This class is rarely used as emitting a warning about a possible upcoming " +"deprecation is unusual, and :exc:`DeprecationWarning` is preferred for " +"already active deprecations." +msgstr "" +"Cette classe est rarement utilisée car émettre un avertissement à propos " +"d’une obsolescence à venir est inhabituel, et :exc:`DeprecationWarning` est " +"préféré pour les obsolescences actuelles." + +#: ../Doc/library/exceptions.rst:705 msgid "Base class for warnings about dubious syntax." msgstr "Classe de base pour les avertissements sur de la syntaxe douteuse." -#: ../Doc/library/exceptions.rst:705 +#: ../Doc/library/exceptions.rst:710 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:710 +#: ../Doc/library/exceptions.rst:715 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for end users of applications that are written in Python." @@ -1150,24 +1161,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:716 +#: ../Doc/library/exceptions.rst:721 msgid "Base class for warnings about probable mistakes in module imports." msgstr "" "Classe de base pour les avertissements sur des erreurs probables dans les " -"imports de modules." +"importations de modules." -#: ../Doc/library/exceptions.rst:721 +#: ../Doc/library/exceptions.rst:726 msgid "Base class for warnings related to Unicode." msgstr "Classe de base pour les avertissements liés à l'Unicode." -#: ../Doc/library/exceptions.rst:726 +#: ../Doc/library/exceptions.rst:731 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:731 +#: ../Doc/library/exceptions.rst:736 msgid "" "Base class for warnings related to resource usage. Ignored by the default " "warning filters." @@ -1175,14 +1186,28 @@ 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:739 +#: ../Doc/library/exceptions.rst:744 msgid "Exception hierarchy" msgstr "Hiérarchie des exceptions" -#: ../Doc/library/exceptions.rst:741 +#: ../Doc/library/exceptions.rst:746 msgid "The class hierarchy for built-in exceptions is:" msgstr "La hiérarchie de classes pour les exceptions natives est la suivante :" +#~ msgid "" +#~ "PendingDeprecationWarning was introduced as an \"ignored by default\" " +#~ "version of DeprecationWarning. But :exc:`DeprecationWarning` is also " +#~ "ignored by default since Python 2.7 and 3.2. There is not much difference " +#~ "between PendingDeprecationWarning and DeprecationWarning nowadays. " +#~ "DeprecationWarning is recommended in general." +#~ msgstr "" +#~ "*PendingDeprecationWarning* a été introduit en tant qu’une version de " +#~ "*DeprecationWarning* ignorée par défaut. Mais :exc:`DeprecationWarning` " +#~ "est aussi ignorée par défaut depuis Python 2.7 et 3.2. Il n’y a pas " +#~ "beaucoup de différence entre *PendingDeprecationWarning* et " +#~ "*DeprecationWarning* de nos jours. *DeprecationWarning* est recommandé en " +#~ "général." + #~ msgid "" #~ "Raised when a floating point operation fails. This exception is always " #~ "defined, but can only be raised when Python is configured with the ``--" diff --git a/library/fcntl.po b/library/fcntl.po index f96c00e1d..8c18b4018 100644 --- a/library/fcntl.po +++ b/library/fcntl.po @@ -44,7 +44,7 @@ msgstr "" #: ../Doc/library/fcntl.rst:32 msgid "The module defines the following functions:" -msgstr "" +msgstr "Le module définit les fonctions suivantes :" #: ../Doc/library/fcntl.rst:37 msgid "" @@ -127,7 +127,7 @@ msgstr "" #: ../Doc/library/fcntl.rst:92 msgid "An example::" -msgstr "Un exemple : ::" +msgstr "Un exemple ::" #: ../Doc/library/fcntl.rst:108 msgid "" diff --git a/library/filecmp.po b/library/filecmp.po index 248ee48de..07eaad4f7 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-04-07 11:17+0200\n" +"PO-Revision-Date: 2019-05-23 20:39+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" #: ../Doc/library/filecmp.rst:2 msgid ":mod:`filecmp` --- File and Directory Comparisons" -msgstr "" +msgstr ":mod:`filecmp` – Comparaisons de fichiers et de répertoires" #: ../Doc/library/filecmp.rst:9 msgid "**Source code:** :source:`Lib/filecmp.py`" @@ -28,28 +29,38 @@ msgid "" "directories, with various optional time/correctness trade-offs. For " "comparing files, see also the :mod:`difflib` module." msgstr "" +"Le module :mod:`filecmp` définit les fonctions permettant de comparer les " +"fichiers et les répertoires, avec différents compromis optionnels durée / " +"exactitude. Pour comparer des fichiers, voir aussi le module :mod:`difflib`." #: ../Doc/library/filecmp.rst:17 msgid "The :mod:`filecmp` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`filecmp` définit les fonctions suivantes :" #: ../Doc/library/filecmp.rst:22 msgid "" "Compare the files named *f1* and *f2*, returning ``True`` if they seem " "equal, ``False`` otherwise." msgstr "" +"Compare les fichiers nommés *f1* et *f2* , renvoie ``True`` s’ils semblent " +"égaux, ``False`` sinon." #: ../Doc/library/filecmp.rst:25 msgid "" "If *shallow* is true, files with identical :func:`os.stat` signatures are " "taken to be equal. Otherwise, the contents of the files are compared." msgstr "" +"Si *shallow* est vrai, les fichiers avec des signatures :func:`os.stat()` " +"identiques sont considérés comme égaux. Sinon, le contenu des fichiers est " +"comparé." #: ../Doc/library/filecmp.rst:28 msgid "" "Note that no external programs are called from this function, giving it " "portability and efficiency." msgstr "" +"Notez qu'aucun programme externe n'est appelé à partir de cette fonction, ce " +"qui lui confère des qualités de portabilité et d'efficacité." #: ../Doc/library/filecmp.rst:31 msgid "" @@ -57,12 +68,18 @@ msgid "" "entries invalidated if the :func:`os.stat` information for the file " "changes. The entire cache may be cleared using :func:`clear_cache`." msgstr "" +"Cette fonction utilise un cache pour les comparaisons antérieures et les " +"résultats, les entrées du cache étant invalidées si les informations :func:" +"`os.stat()` du fichier sont modifiées. La totalité du cache peut être " +"effacée avec :func:`clear_cache()`." #: ../Doc/library/filecmp.rst:38 msgid "" "Compare the files in the two directories *dir1* and *dir2* whose names are " "given by *common*." msgstr "" +"Compare les fichiers des deux répertoires *dir1* et *dir2* dont les noms " +"sont donnés par *common*." #: ../Doc/library/filecmp.rst:41 msgid "" @@ -73,12 +90,21 @@ msgid "" "directories, the user lacks permission to read them or if the comparison " "could not be done for some other reason." msgstr "" +"Renvoie trois listes de noms de fichiers : *match* , *mismatch*, *errors*. " +"*match* contient la liste des fichiers qui correspondent, *mismatch* " +"contient les noms de ceux qui ne correspondent pas et *errors* répertorie " +"les noms des fichiers qui n'ont pas pu être comparés. Les fichiers sont " +"répertoriés dans *errors* s'ils n'existent pas dans l'un des répertoires, si " +"l'utilisateur ne dispose pas de l'autorisation nécessaire pour les lire ou " +"si la comparaison n'a pas pu être effectuée pour une autre raison." #: ../Doc/library/filecmp.rst:48 msgid "" "The *shallow* parameter has the same meaning and default value as for :func:" "`filecmp.cmp`." msgstr "" +"Le paramètre *shallow* a la même signification et la même valeur par défaut " +"que pour :func:`filecmp.cmp`." #: ../Doc/library/filecmp.rst:51 msgid "" @@ -86,6 +112,9 @@ msgid "" "``b/c`` and ``a/d/e`` with ``b/d/e``. ``'c'`` and ``'d/e'`` will each be in " "one of the three returned lists." msgstr "" +"Par exemple, ``cmpfiles('a', 'b', ['c', 'd/e'])`` compare ``a/c`` et ``b/" +"c`` et ``a/d/e`` avec ``b/d/e``. ``'c'`` et ``'d/e'`` seront chacun dans " +"l'une des trois listes renvoyées." #: ../Doc/library/filecmp.rst:58 msgid "" @@ -93,10 +122,13 @@ msgid "" "after it is modified that it is within the mtime resolution of the " "underlying filesystem." msgstr "" +"Efface le cache *filecmp*. Cela peut être utile si un fichier est comparé " +"juste après avoir été modifié (dans un délai inférieur à la résolution " +"*mtime* du système de fichiers sous-jacent)." #: ../Doc/library/filecmp.rst:68 msgid "The :class:`dircmp` class" -msgstr "" +msgstr "La classe :class:`dircmp`" #: ../Doc/library/filecmp.rst:72 msgid "" @@ -105,31 +137,41 @@ msgid "" "`filecmp.DEFAULT_IGNORES`. *hide* is a list of names to hide, and defaults " "to ``[os.curdir, os.pardir]``." msgstr "" +"Construit un nouvel objet de comparaison de répertoires, pour comparer les " +"répertoires *a* et *b*. *ignore* est une liste de noms à ignorer, par défaut " +"à :attr:`filecmp.DEFAULT_IGNORES`. *hide* est une liste de noms à cacher, " +"par défaut à ``[os.curdir, os.pardir]``." #: ../Doc/library/filecmp.rst:77 msgid "" "The :class:`dircmp` class compares files by doing *shallow* comparisons as " "described for :func:`filecmp.cmp`." msgstr "" +"La classe :class:`dircmp` compare les fichiers en faisant des comparaisons " +"*superficielles* comme décrit pour :func:`filecmp.cmp`." #: ../Doc/library/filecmp.rst:80 msgid "The :class:`dircmp` class provides the following methods:" -msgstr "" +msgstr "La classe :class:`dircmp` fournit les méthodes suivantes :" #: ../Doc/library/filecmp.rst:84 msgid "Print (to :data:`sys.stdout`) a comparison between *a* and *b*." -msgstr "" +msgstr "Affiche (sur :data:`sys.stdout`) une comparaison entre *a* et *b*." #: ../Doc/library/filecmp.rst:88 msgid "" "Print a comparison between *a* and *b* and common immediate subdirectories." msgstr "" +"Affiche une comparaison entre *a* et *b* et les sous-répertoires immédiats " +"communs." #: ../Doc/library/filecmp.rst:93 msgid "" "Print a comparison between *a* and *b* and common subdirectories " "(recursively)." msgstr "" +"Affiche une comparaison entre a et b et les sous-répertoires communs " +"(récursivement)." #: ../Doc/library/filecmp.rst:96 msgid "" @@ -137,6 +179,9 @@ msgid "" "be used to get various bits of information about the directory trees being " "compared." msgstr "" +"La classe :class:`dircmp` offre un certain nombre d'attributs intéressants " +"qui peuvent être utilisés pour obtenir diverses informations sur les " +"arborescences de répertoires comparées." #: ../Doc/library/filecmp.rst:100 msgid "" @@ -144,76 +189,93 @@ msgid "" "so there is no speed penalty if only those attributes which are lightweight " "to compute are used." msgstr "" +"Notez que, via les points d'ancrage :meth:`__getattr__`, tous les attributs " +"sont calculés de manière paresseuse. Il n'y a donc pas de pénalité en " +"vitesse si seuls les attributs rapides à calculer sont utilisés." #: ../Doc/library/filecmp.rst:107 msgid "The directory *a*." -msgstr "" +msgstr "Le répertoire *a*." #: ../Doc/library/filecmp.rst:112 msgid "The directory *b*." -msgstr "" +msgstr "Le répertoire *b*." #: ../Doc/library/filecmp.rst:117 msgid "Files and subdirectories in *a*, filtered by *hide* and *ignore*." msgstr "" +"Fichiers et sous-répertoires dans *a* , filtrés par *hide* et *ignore*." #: ../Doc/library/filecmp.rst:122 msgid "Files and subdirectories in *b*, filtered by *hide* and *ignore*." msgstr "" +"Fichiers et sous-répertoires dans *b* , filtrés par *hide* et *ignore*." #: ../Doc/library/filecmp.rst:127 msgid "Files and subdirectories in both *a* and *b*." -msgstr "" +msgstr "Fichiers et sous-répertoires à la fois dans *a* et *b*." #: ../Doc/library/filecmp.rst:132 msgid "Files and subdirectories only in *a*." -msgstr "" +msgstr "Fichiers et sous-répertoires uniquement dans *a*." #: ../Doc/library/filecmp.rst:137 msgid "Files and subdirectories only in *b*." -msgstr "" +msgstr "Fichiers et sous-répertoires uniquement dans *b*." #: ../Doc/library/filecmp.rst:142 msgid "Subdirectories in both *a* and *b*." -msgstr "" +msgstr "Sous-répertoires à la fois dans *a* et *b*." #: ../Doc/library/filecmp.rst:147 msgid "Files in both *a* and *b*." -msgstr "" +msgstr "Fichiers à la fois dans *a* et *b*." #: ../Doc/library/filecmp.rst:152 msgid "" "Names in both *a* and *b*, such that the type differs between the " "directories, or names for which :func:`os.stat` reports an error." msgstr "" +"Noms dans *a* et *b* , tels que le type diffère entre les répertoires, ou " +"noms pour lesquels :func:`os.stat` signale une erreur." #: ../Doc/library/filecmp.rst:158 msgid "" "Files which are identical in both *a* and *b*, using the class's file " "comparison operator." msgstr "" +"Fichiers identiques dans *a* et *b*, en utilisant l'opérateur de comparaison " +"de fichiers de la classe." #: ../Doc/library/filecmp.rst:164 msgid "" "Files which are in both *a* and *b*, whose contents differ according to the " "class's file comparison operator." msgstr "" +"Fichiers figurant à la fois dans *a* et dans *b* , dont le contenu diffère " +"en fonction de l'opérateur de comparaison de fichiers de la classe." #: ../Doc/library/filecmp.rst:170 msgid "Files which are in both *a* and *b*, but could not be compared." msgstr "" +"Fichiers à la fois dans *a* et dans *b* , mais ne pouvant pas être comparés." #: ../Doc/library/filecmp.rst:175 msgid "" "A dictionary mapping names in :attr:`common_dirs` to :class:`dircmp` objects." msgstr "" +"Un dictionnaire faisant correspondre les noms dans :attr:`common_dirs` vers " +"des objets :class:`dircmp`." #: ../Doc/library/filecmp.rst:182 msgid "List of directories ignored by :class:`dircmp` by default." -msgstr "" +msgstr "Liste des répertoires ignorés par défaut par :class:`dircmp`." #: ../Doc/library/filecmp.rst:185 msgid "" "Here is a simplified example of using the ``subdirs`` attribute to search " "recursively through two directories to show common different files::" 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 ::" diff --git a/library/fileinput.po b/library/fileinput.po index 220c4b81e..b01370953 100644 --- a/library/fileinput.po +++ b/library/fileinput.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-23 09:03+0100\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -37,12 +37,13 @@ msgstr "" msgid "" "This iterates over the lines of all files listed in ``sys.argv[1:]``, " "defaulting to ``sys.stdin`` if the list is empty. If a filename is ``'-'``, " -"it is also replaced by ``sys.stdin``. To specify an alternative list of " -"filenames, pass it as the first argument to :func:`.input`. A single file " -"name is also allowed." +"it is also replaced by ``sys.stdin`` and the optional arguments *mode* and " +"*openhook* are ignored. To specify an alternative list of filenames, pass " +"it as the first argument to :func:`.input`. A single file name is also " +"allowed." msgstr "" -#: ../Doc/library/fileinput.rst:29 +#: ../Doc/library/fileinput.rst:30 msgid "" "All files are opened in text mode by default, but you can override this by " "specifying the *mode* parameter in the call to :func:`.input` or :class:" @@ -50,31 +51,31 @@ msgid "" "`OSError` is raised." msgstr "" -#: ../Doc/library/fileinput.rst:34 +#: ../Doc/library/fileinput.rst:35 msgid ":exc:`IOError` used to be raised; it is now an alias of :exc:`OSError`." msgstr "" -#: ../Doc/library/fileinput.rst:37 +#: ../Doc/library/fileinput.rst:38 msgid "" "If ``sys.stdin`` is used more than once, the second and further use will " "return no lines, except perhaps for interactive use, or if it has been " "explicitly reset (e.g. using ``sys.stdin.seek(0)``)." msgstr "" -#: ../Doc/library/fileinput.rst:41 +#: ../Doc/library/fileinput.rst:42 msgid "" "Empty files are opened and immediately closed; the only time their presence " "in the list of filenames is noticeable at all is when the last file opened " "is empty." msgstr "" -#: ../Doc/library/fileinput.rst:45 +#: ../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 "" -#: ../Doc/library/fileinput.rst:48 +#: ../Doc/library/fileinput.rst:49 msgid "" "You can control how files are opened by providing an opening hook via the " "*openhook* parameter to :func:`fileinput.input` or :class:`FileInput()`. The " @@ -83,11 +84,11 @@ msgid "" "provided by this module." msgstr "" -#: ../Doc/library/fileinput.rst:54 +#: ../Doc/library/fileinput.rst:55 msgid "The following function is the primary interface of this module:" msgstr "" -#: ../Doc/library/fileinput.rst:59 +#: ../Doc/library/fileinput.rst:60 msgid "" "Create an instance of the :class:`FileInput` class. The instance will be " "used as global state for the functions of this module, and is also returned " @@ -95,66 +96,66 @@ msgid "" "along to the constructor of the :class:`FileInput` class." msgstr "" -#: ../Doc/library/fileinput.rst:64 +#: ../Doc/library/fileinput.rst:65 msgid "" "The :class:`FileInput` instance can be used as a context manager in the :" "keyword:`with` statement. In this example, *input* is closed after the :" -"keyword:`with` statement is exited, even if an exception occurs::" +"keyword:`!with` statement is exited, even if an exception occurs::" msgstr "" -#: ../Doc/library/fileinput.rst:72 ../Doc/library/fileinput.rst:163 +#: ../Doc/library/fileinput.rst:73 ../Doc/library/fileinput.rst:164 msgid "Can be used as a context manager." msgstr "" -#: ../Doc/library/fileinput.rst:76 ../Doc/library/fileinput.rst:170 +#: ../Doc/library/fileinput.rst:77 ../Doc/library/fileinput.rst:171 msgid "The *bufsize* parameter." msgstr "" -#: ../Doc/library/fileinput.rst:78 +#: ../Doc/library/fileinput.rst:79 msgid "" "The following functions use the global state created by :func:`fileinput." "input`; if there is no active state, :exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/fileinput.rst:84 +#: ../Doc/library/fileinput.rst:85 msgid "" "Return the name of the file currently being read. Before the first line has " "been read, returns ``None``." msgstr "" -#: ../Doc/library/fileinput.rst:90 +#: ../Doc/library/fileinput.rst:91 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 "" -#: ../Doc/library/fileinput.rst:96 +#: ../Doc/library/fileinput.rst:97 msgid "" "Return the cumulative line number of the line that has just been read. " "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 "" -#: ../Doc/library/fileinput.rst:103 +#: ../Doc/library/fileinput.rst:104 msgid "" "Return the line number in the current file. 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 within the file." msgstr "" -#: ../Doc/library/fileinput.rst:110 +#: ../Doc/library/fileinput.rst:111 msgid "" "Returns true if the line just read is the first line of its file, otherwise " "returns false." msgstr "" -#: ../Doc/library/fileinput.rst:116 +#: ../Doc/library/fileinput.rst:117 msgid "" "Returns true if the last line was read from ``sys.stdin``, otherwise returns " "false." msgstr "" -#: ../Doc/library/fileinput.rst:122 +#: ../Doc/library/fileinput.rst:123 msgid "" "Close the current file so that the next iteration will read the first line " "from the next file (if any); lines not read from the file will not count " @@ -165,17 +166,17 @@ msgid "" "no effect." msgstr "" -#: ../Doc/library/fileinput.rst:132 +#: ../Doc/library/fileinput.rst:133 msgid "Close the sequence." msgstr "" -#: ../Doc/library/fileinput.rst:134 +#: ../Doc/library/fileinput.rst:135 msgid "" "The class which implements the sequence behavior provided by the module is " "available for subclassing as well:" msgstr "" -#: ../Doc/library/fileinput.rst:140 +#: ../Doc/library/fileinput.rst:141 msgid "" "Class :class:`FileInput` is the implementation; its methods :meth:" "`filename`, :meth:`fileno`, :meth:`lineno`, :meth:`filelineno`, :meth:" @@ -187,31 +188,31 @@ msgid "" "access and :meth:`~io.TextIOBase.readline` cannot be mixed." msgstr "" -#: ../Doc/library/fileinput.rst:149 +#: ../Doc/library/fileinput.rst:150 msgid "" "With *mode* you can specify which file mode will be passed to :func:`open`. " "It must be one of ``'r'``, ``'rU'``, ``'U'`` and ``'rb'``." msgstr "" -#: ../Doc/library/fileinput.rst:152 +#: ../Doc/library/fileinput.rst:153 msgid "" "The *openhook*, when given, must be a function that takes two arguments, " "*filename* and *mode*, and returns an accordingly opened file-like object. " "You cannot use *inplace* and *openhook* together." msgstr "" -#: ../Doc/library/fileinput.rst:156 +#: ../Doc/library/fileinput.rst:157 msgid "" "A :class:`FileInput` instance can be used as a context manager in the :" "keyword:`with` statement. In this example, *input* is closed after the :" -"keyword:`with` statement is exited, even if an exception occurs::" +"keyword:`!with` statement is exited, even if an exception occurs::" msgstr "" -#: ../Doc/library/fileinput.rst:166 +#: ../Doc/library/fileinput.rst:167 msgid "The ``'rU'`` and ``'U'`` modes." msgstr "" -#: ../Doc/library/fileinput.rst:173 +#: ../Doc/library/fileinput.rst:174 msgid "" "**Optional in-place filtering:** if the keyword argument ``inplace=True`` is " "passed to :func:`fileinput.input` or to the :class:`FileInput` constructor, " @@ -225,11 +226,11 @@ msgid "" "In-place filtering is disabled when standard input is read." msgstr "" -#: ../Doc/library/fileinput.rst:185 +#: ../Doc/library/fileinput.rst:186 msgid "The two following opening hooks are provided by this module:" msgstr "" -#: ../Doc/library/fileinput.rst:189 +#: ../Doc/library/fileinput.rst:190 msgid "" "Transparently opens files compressed with gzip and bzip2 (recognized by the " "extensions ``'.gz'`` and ``'.bz2'``) using the :mod:`gzip` and :mod:`bz2` " @@ -237,24 +238,24 @@ msgid "" "is opened normally (ie, using :func:`open` without any decompression)." msgstr "" -#: ../Doc/library/fileinput.rst:194 +#: ../Doc/library/fileinput.rst:195 msgid "" "Usage example: ``fi = fileinput.FileInput(openhook=fileinput." "hook_compressed)``" msgstr "" -#: ../Doc/library/fileinput.rst:199 +#: ../Doc/library/fileinput.rst:200 msgid "" "Returns a hook which opens each file with :func:`open`, using the given " "*encoding* and *errors* to read the file." msgstr "" -#: ../Doc/library/fileinput.rst:202 +#: ../Doc/library/fileinput.rst:203 msgid "" "Usage example: ``fi = fileinput.FileInput(openhook=fileinput." "hook_encoded(\"utf-8\", \"surrogateescape\"))``" msgstr "" -#: ../Doc/library/fileinput.rst:206 +#: ../Doc/library/fileinput.rst:207 msgid "Added the optional *errors* parameter." msgstr "" diff --git a/library/fnmatch.po b/library/fnmatch.po index eeb530359..6ae9a020f 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-16 23:53+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-21 17:34+0100\n" "Last-Translator: Julien VITARD \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.2\n" #: ../Doc/library/fnmatch.rst:2 msgid ":mod:`fnmatch` --- Unix filename pattern matching" -msgstr ":mod:`fnmatch` --- Filtrage par motif des noms de fichiers Unix" +msgstr ":mod:`fnmatch` — Filtrage par motif des noms de fichiers Unix" #: ../Doc/library/fnmatch.rst:7 msgid "**Source code:** :source:`Lib/fnmatch.py`" @@ -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:20 +#: ../Doc/library/fnmatch.rst:27 msgid "Pattern" msgstr "Motif" -#: ../Doc/library/fnmatch.rst:20 +#: ../Doc/library/fnmatch.rst:27 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/fnmatch.rst:22 +#: ../Doc/library/fnmatch.rst:29 msgid "``*``" msgstr "``*``" -#: ../Doc/library/fnmatch.rst:22 +#: ../Doc/library/fnmatch.rst:29 msgid "matches everything" msgstr "reconnaît n'importe quoi" -#: ../Doc/library/fnmatch.rst:24 +#: ../Doc/library/fnmatch.rst:31 msgid "``?``" msgstr "``?``" -#: ../Doc/library/fnmatch.rst:24 +#: ../Doc/library/fnmatch.rst:31 msgid "matches any single character" msgstr "reconnaît n'importe quel caractère unique" -#: ../Doc/library/fnmatch.rst:26 +#: ../Doc/library/fnmatch.rst:33 msgid "``[seq]``" msgstr "``[seq]``" -#: ../Doc/library/fnmatch.rst:26 +#: ../Doc/library/fnmatch.rst:33 msgid "matches any character in *seq*" msgstr "reconnaît n'importe quel caractère dans *seq*" -#: ../Doc/library/fnmatch.rst:28 +#: ../Doc/library/fnmatch.rst:35 msgid "``[!seq]``" msgstr "``[!seq]``" -#: ../Doc/library/fnmatch.rst:28 +#: ../Doc/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:31 +#: ../Doc/library/fnmatch.rst:38 msgid "" "For a literal match, wrap the meta-characters in brackets. For example, " "``'[?]'`` matches the character ``'?'``." @@ -82,22 +82,22 @@ 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:36 +#: ../Doc/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 :" -"func:`fnmatch` to match pathname segments). Similarly, filenames starting " +"func:`.filter` to match pathname segments). Similarly, filenames starting " "with a period are not special for this module, and are matched by the ``*`` " "and ``?`` patterns." msgstr "" "Notons que le séparateur de nom de fichiers (``'/'`` sous Unix) n'est *pas* " "traité de manière spéciale par ce module. Voir le module :mod:`glob` pour la " -"recherche de chemins (:mod:`glob` utilise :func:`fnmatch` pour reconnaître " +"recherche de chemins (:mod:`glob` utilise :func:`.filter` pour reconnaître " "les composants d'un chemin). De la même manière, les noms de fichiers " -"commençant par une virgule ne sont pas traités de manière spéciale par ce " +"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:45 +#: ../Doc/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,15 +111,15 @@ 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:51 +#: ../Doc/library/fnmatch.rst:58 msgid "" "This example will print all file names in the current directory with the " "extension ``.txt``::" msgstr "" "Cet exemple affiche tous les noms de fichiers du répertoire courant ayant " -"pour extension ``.txt`` : ::" +"pour extension ``.txt`` ::" -#: ../Doc/library/fnmatch.rst:64 +#: ../Doc/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,7 +129,7 @@ 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:71 +#: ../Doc/library/fnmatch.rst:78 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 " @@ -139,7 +139,7 @@ msgstr "" "*pattern*. Similaire à ``[n for n in names if fnmatch(n, pattern)]``, mais " "implémenté plus efficacement." -#: ../Doc/library/fnmatch.rst:77 +#: ../Doc/library/fnmatch.rst:84 msgid "" "Return the shell-style *pattern* converted to a regular expression for using " "with :func:`re.match`." @@ -147,14 +147,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:80 +#: ../Doc/library/fnmatch.rst:87 msgid "Example:" msgstr "Exemple :" -#: ../Doc/library/fnmatch.rst:94 +#: ../Doc/library/fnmatch.rst:101 msgid "Module :mod:`glob`" msgstr "Module :mod:`glob`" -#: ../Doc/library/fnmatch.rst:95 +#: ../Doc/library/fnmatch.rst:102 msgid "Unix shell-style path expansion." msgstr "Recherche de chemins de style shell Unix" diff --git a/library/fpectl.po b/library/fpectl.po deleted file mode 100644 index b917cb407..000000000 --- a/library/fpectl.po +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3.6\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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/fpectl.rst:2 -msgid ":mod:`fpectl` --- Floating point exception control" -msgstr "" - -#: ../Doc/library/fpectl.rst:13 -msgid "" -"The :mod:`fpectl` module is not built by default, and its usage is " -"discouraged and may be dangerous except in the hands of experts. See also " -"the section :ref:`fpectl-limitations` on limitations for more details." -msgstr "" - -#: ../Doc/library/fpectl.rst:21 -msgid "" -"Most computers carry out floating point operations in conformance with the " -"so-called IEEE-754 standard. On any real computer, some floating point " -"operations produce results that cannot be expressed as a normal floating " -"point value. For example, try ::" -msgstr "" - -#: ../Doc/library/fpectl.rst:32 -msgid "" -"(The example above will work on many platforms. DEC Alpha may be one " -"exception.) \"Inf\" is a special, non-numeric value in IEEE-754 that stands " -"for \"infinity\", and \"nan\" means \"not a number.\" Note that, other than " -"the non-numeric results, nothing special happened when you asked Python to " -"carry out those calculations. That is in fact the default behaviour " -"prescribed in the IEEE-754 standard, and if it works for you, stop reading " -"now." -msgstr "" - -#: ../Doc/library/fpectl.rst:39 -msgid "" -"In some circumstances, it would be better to raise an exception and stop " -"processing at the point where the faulty operation was attempted. The :mod:" -"`fpectl` module is for use in that situation. It provides control over " -"floating point units from several hardware manufacturers, allowing the user " -"to turn on the generation of :const:`SIGFPE` whenever any of the IEEE-754 " -"exceptions Division by Zero, Overflow, or Invalid Operation occurs. In " -"tandem with a pair of wrapper macros that are inserted into the C code " -"comprising your python system, :const:`SIGFPE` is trapped and converted into " -"the Python :exc:`FloatingPointError` exception." -msgstr "" - -#: ../Doc/library/fpectl.rst:49 -msgid "" -"The :mod:`fpectl` module defines the following functions and may raise the " -"given exception:" -msgstr "" - -#: ../Doc/library/fpectl.rst:55 -msgid "" -"Turn on the generation of :const:`SIGFPE`, and set up an appropriate signal " -"handler." -msgstr "" - -#: ../Doc/library/fpectl.rst:61 -msgid "Reset default handling of floating point exceptions." -msgstr "" - -#: ../Doc/library/fpectl.rst:66 -msgid "" -"After :func:`turnon_sigfpe` has been executed, a floating point operation " -"that raises one of the IEEE-754 exceptions Division by Zero, Overflow, or " -"Invalid operation will in turn raise this standard Python exception." -msgstr "" - -#: ../Doc/library/fpectl.rst:74 -msgid "Example" -msgstr "Exemple" - -#: ../Doc/library/fpectl.rst:76 -msgid "" -"The following example demonstrates how to start up and test operation of " -"the :mod:`fpectl` module. ::" -msgstr "" - -#: ../Doc/library/fpectl.rst:99 -msgid "Limitations and other considerations" -msgstr "" - -#: ../Doc/library/fpectl.rst:101 -msgid "" -"Setting up a given processor to trap IEEE-754 floating point errors " -"currently requires custom code on a per-architecture basis. You may have to " -"modify :mod:`fpectl` to control your particular hardware." -msgstr "" - -#: ../Doc/library/fpectl.rst:105 -msgid "" -"Conversion of an IEEE-754 exception to a Python exception requires that the " -"wrapper macros ``PyFPE_START_PROTECT`` and ``PyFPE_END_PROTECT`` be inserted " -"into your code in an appropriate fashion. Python itself has been modified " -"to support the :mod:`fpectl` module, but many other codes of interest to " -"numerical analysts have not." -msgstr "" - -#: ../Doc/library/fpectl.rst:111 -msgid "The :mod:`fpectl` module is not thread-safe." -msgstr "" - -#: ../Doc/library/fpectl.rst:116 -msgid "" -"Some files in the source distribution may be interesting in learning more " -"about how this module operates. The include file :file:`Include/pyfpe.h` " -"discusses the implementation of this module at some length. :file:`Modules/" -"fpetestmodule.c` gives several examples of use. Many additional examples can " -"be found in :file:`Objects/floatobject.c`." -msgstr "" diff --git a/library/fractions.po b/library/fractions.po index ccaa4c049..40e4f2e23 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/fractions.rst:2 msgid ":mod:`fractions` --- Rational numbers" -msgstr ":mod:`fractions` --- Nombres rationnels" +msgstr ":mod:`fractions` — Nombres rationnels" #: ../Doc/library/fractions.rst:10 msgid "**Source code:** :source:`Lib/fractions.py`" diff --git a/library/ftplib.po b/library/ftplib.po index cfef746c8..eef2d4fcf 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -58,7 +58,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:68 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:71 ../Doc/library/ftplib.rst:92 #: ../Doc/library/ftplib.rst:193 diff --git a/library/functions.po b/library/functions.po index 53aa9f815..01b537ca8 100644 --- a/library/functions.po +++ b/library/functions.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-09-15 23:04+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-06-01 23:07+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.0.4\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/functions.rst:5 ../Doc/library/functions.rst:11 msgid "Built-in Functions" @@ -320,7 +320,7 @@ msgid "" "iterable is empty). Equivalent to::" msgstr "" "Donne ``True`` si tous les éléments de *iterable* sont vrais (ou s'il est " -"vide), équivaut à : ::" +"vide), équivaut à ::" #: ../Doc/library/functions.rst:64 msgid "" @@ -328,7 +328,7 @@ msgid "" "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 à : ::" +"donné dans le cas où *iterable* est vide, équivaut à ::" #: ../Doc/library/functions.rst:76 msgid "" @@ -362,8 +362,8 @@ msgstr "" "Que le préfixe ``0b`` soit souhaité ou non, vous pouvez utiliser les moyens " "suivants." -#: ../Doc/library/functions.rst:101 ../Doc/library/functions.rst:699 -#: ../Doc/library/functions.rst:957 +#: ../Doc/library/functions.rst:101 ../Doc/library/functions.rst:703 +#: ../Doc/library/functions.rst:963 msgid "See also :func:`format` for more information." msgstr "Voir aussi :func:`format` pour plus d'information." @@ -384,10 +384,10 @@ msgstr "" "seules instances sont ``False`` et ``True`` (voir :ref:`bltin-boolean-" "values`)." -#: ../Doc/library/functions.rst:115 ../Doc/library/functions.rst:582 -#: ../Doc/library/functions.rst:770 +#: ../Doc/library/functions.rst:115 ../Doc/library/functions.rst:581 +#: ../Doc/library/functions.rst:774 msgid "*x* is now a positional-only parameter." -msgstr "" +msgstr "*x* est désormais un argument exclusivement optionnel." #: ../Doc/library/functions.rst:120 msgid "" @@ -400,6 +400,15 @@ msgid "" "other function and :func:`breakpoint` will automatically call that, allowing " "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 " +"explicitement :mod:`pdb` ou à taper plus de code pour entrer dans le " +"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:136 msgid "" @@ -548,25 +557,24 @@ msgid "" "instance method receives the instance. To declare a class method, use this " "idiom::" msgstr "" -"Une méthode de classe reçoit implicitement la classe en premier augment, " +"Une méthode de classe reçoit implicitement la classe en premier argument, " "tout comme une méthode d'instance reçoit l'instance. Voici comment déclarer " -"une méthode de classe : ::" +"une méthode de classe ::" #: ../Doc/library/functions.rst:213 msgid "" -"The ``@classmethod`` form is a function :term:`decorator` -- see the " -"description of function definitions in :ref:`function` for details." +"The ``@classmethod`` form is a function :term:`decorator` -- see :ref:" +"`function` for details." msgstr "" -"La forme ``@classmethod`` est un :term:`decorator` -- consultez la " -"documentation sur la définition de fonctions dans :ref:`function` pour plus " -"de détails." +"La forme ``@classmethod`` est un :term:`decorator` de fonction — consultez :" +"ref:`function` pour plus de détails." #: ../Doc/library/functions.rst:216 msgid "" -"It can be called either on the class (such as ``C.f()``) or on an instance " -"(such as ``C().f()``). The instance is ignored except for its class. If a " -"class method is called for a derived class, the derived class object is " -"passed as the implied first argument." +"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 " +"class. If a class method is called for a derived class, the derived class " +"object is passed as the implied first argument." msgstr "" "Elle peut être appelée soit sur la classe (comme ``C.f()``) ou sur une " "instance (comme ``C().f()``). L'instance est ignorée, sauf pour déterminer " @@ -576,21 +584,18 @@ msgstr "" #: ../Doc/library/functions.rst:221 msgid "" "Class methods are different than C++ or Java static methods. If you want " -"those, see :func:`staticmethod` in this section." +"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:" "`staticmethod`." #: ../Doc/library/functions.rst:224 -msgid "" -"For more information on class methods, consult the documentation on the " -"standard type hierarchy in :ref:`types`." +msgid "For more information on class methods, see :ref:`types`." msgstr "" -"Pour plus d'informations sur les méthodes de classe, consultez la " -"documentation sur la hiérarchie des types standards dans :ref:`types`." +"Pour plus d'informations sur les méthodes de classe, consultez :ref:`types`." -#: ../Doc/library/functions.rst:230 +#: ../Doc/library/functions.rst:229 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 " @@ -602,7 +607,7 @@ 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:235 +#: ../Doc/library/functions.rst:234 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 (``''`` " @@ -612,7 +617,7 @@ msgstr "" "quelque chose de reconnaissable lorsqu'il n'a pas été lu depuis un fichier " "(typiquement ``\"\"``)." -#: ../Doc/library/functions.rst:239 +#: ../Doc/library/functions.rst:238 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 " @@ -626,7 +631,7 @@ msgstr "" "(dans ce dernier cas, les résultats d'expressions donnant autre chose que " "``None`` seront affichés)." -#: ../Doc/library/functions.rst:245 +#: ../Doc/library/functions.rst:244 msgid "" "The optional arguments *flags* and *dont_inherit* control which :ref:`future " "statements ` affect the compilation of *source*. If neither is " @@ -648,7 +653,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:255 +#: ../Doc/library/functions.rst:254 msgid "" "Future statements are specified by bits which can be bitwise ORed together " "to specify multiple statements. The bitfield required to specify a given " @@ -662,7 +667,7 @@ msgstr "" "l'attribut :attr:`~__future__._Feature.compiler_flag` de la classe :class:" "`~__future__.Feature` du module :mod:`__future__`." -#: ../Doc/library/functions.rst:260 +#: ../Doc/library/functions.rst:259 msgid "" "The argument *optimize* specifies the optimization level of the compiler; " "the default value of ``-1`` selects the optimization level of the " @@ -677,7 +682,7 @@ msgstr "" "``assert`` sont supprimés, ``__debug__`` est ``False``) ou ``2`` (les " "*docstrings* sont également supprimés)." -#: ../Doc/library/functions.rst:266 +#: ../Doc/library/functions.rst:265 msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." @@ -685,7 +690,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:269 +#: ../Doc/library/functions.rst:268 msgid "" "If you want to parse Python code into its AST representation, see :func:`ast." "parse`." @@ -693,7 +698,7 @@ msgstr "" "Si vous voulez transformer du code Python en sa représentation AST, voyez :" "func:`ast.parse`." -#: ../Doc/library/functions.rst:274 +#: ../Doc/library/functions.rst:273 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 " @@ -705,7 +710,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:281 +#: ../Doc/library/functions.rst:280 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 " @@ -715,7 +720,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:285 +#: ../Doc/library/functions.rst:284 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." @@ -724,7 +729,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:289 +#: ../Doc/library/functions.rst:288 msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." @@ -732,7 +737,7 @@ msgstr "" "Précédemment, l'exception :exc:`TypeError` était levée quand un caractère " "nul était rencontré dans *source*." -#: ../Doc/library/functions.rst:296 +#: ../Doc/library/functions.rst:295 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, " @@ -752,7 +757,7 @@ msgstr "" "constructeur effectue alors une simple conversion numérique comme le font :" "class:`int` ou :class:`float`. Si aucun argument n'est fourni, donne ``0j``." -#: ../Doc/library/functions.rst:307 +#: ../Doc/library/functions.rst:306 msgid "" "When converting from a string, the string must not contain whitespace around " "the central ``+`` or ``-`` operator. For example, ``complex('1+2j')`` is " @@ -763,18 +768,18 @@ msgstr "" "``complex('1+2j')`` est bon, mais ``complex('1 + 2j')`` lève une :exc:" "`ValueError`." -#: ../Doc/library/functions.rst:312 +#: ../Doc/library/functions.rst:311 msgid "The complex type is described in :ref:`typesnumeric`." msgstr "Le type complexe est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:314 ../Doc/library/functions.rst:579 -#: ../Doc/library/functions.rst:767 +#: ../Doc/library/functions.rst:313 ../Doc/library/functions.rst:578 +#: ../Doc/library/functions.rst:771 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:320 +#: ../Doc/library/functions.rst:319 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 " @@ -786,7 +791,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:332 +#: ../Doc/library/functions.rst:331 msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this class." @@ -795,7 +800,7 @@ msgstr "" "dictionnaire. Voir :class:`dict` et :ref:`typesmapping` pour vous documenter " "sur cette classe." -#: ../Doc/library/functions.rst:335 +#: ../Doc/library/functions.rst:334 msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and :" "class:`tuple` classes, as well as the :mod:`collections` module." @@ -803,17 +808,17 @@ 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:341 +#: ../Doc/library/functions.rst:340 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 " "object." msgstr "" -"Sans arguments, elle donne la liste des noms dans l'espace de noms local. " +"Sans arguments, elle donne la liste des noms dans l'espace de nommage local. " "Avec un argument, elle essaye de donner une liste d'attributs valides pour " "cet objet." -#: ../Doc/library/functions.rst:344 +#: ../Doc/library/functions.rst:343 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 " @@ -825,7 +830,7 @@ msgstr "" "`__getattr__` ou :func:`__getattribute__` de personnaliser ce que donnera :" "func:`dir`." -#: ../Doc/library/functions.rst:349 +#: ../Doc/library/functions.rst:348 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, " @@ -839,7 +844,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:354 +#: ../Doc/library/functions.rst:353 msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " @@ -849,7 +854,7 @@ msgstr "" "différents types d'objets, car elle préfère donner une information " "pertinente plutôt qu'exhaustive :" -#: ../Doc/library/functions.rst:358 +#: ../Doc/library/functions.rst:357 msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." @@ -857,7 +862,7 @@ msgstr "" "Si l'objet est un module, la liste contiendra les noms des attributs du " "module." -#: ../Doc/library/functions.rst:361 +#: ../Doc/library/functions.rst:360 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." @@ -865,7 +870,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:364 +#: ../Doc/library/functions.rst:363 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 " @@ -875,11 +880,11 @@ msgstr "" "attributs de la classe, et récursivement des attributs des parents de la " "classe." -#: ../Doc/library/functions.rst:368 +#: ../Doc/library/functions.rst:367 msgid "The resulting list is sorted alphabetically. For example:" msgstr "La liste donnée est triée par ordre alphabétique, par exemple :" -#: ../Doc/library/functions.rst:387 +#: ../Doc/library/functions.rst:386 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 " @@ -893,7 +898,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:397 +#: ../Doc/library/functions.rst:396 msgid "" "Take two (non complex) numbers as arguments and return a pair of numbers " "consisting of their quotient and remainder when using integer division. " @@ -913,7 +918,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:409 +#: ../Doc/library/functions.rst:408 msgid "" "Return an enumerate object. *iterable* must be a sequence, an :term:" "`iterator`, or some other object which supports iteration. The :meth:" @@ -927,11 +932,11 @@ msgstr "" "tuple contenant un compte (démarrant à *start*, 0 par défaut) et les valeurs " "obtenues de l'itération sur *iterable*." -#: ../Doc/library/functions.rst:421 +#: ../Doc/library/functions.rst:420 msgid "Equivalent to::" -msgstr "Équivalent à : ::" +msgstr "Équivalent à ::" -#: ../Doc/library/functions.rst:432 +#: ../Doc/library/functions.rst:431 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 " @@ -941,7 +946,7 @@ msgstr "" "globales. S'il est fourni, *globals* doit être un dictionnaire. S'il est " "fourni, *locals* peut être n'importe quel objet *mapping*." -#: ../Doc/library/functions.rst:436 +#: ../Doc/library/functions.rst:435 msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -958,7 +963,7 @@ msgid "" 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 noms globaux et locaux. Si le " +"*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:" "`builtins` y est inséré avant qu'*expression* ne soit évalué. Cela signifie " @@ -970,7 +975,7 @@ msgstr "" "est le résultat de l'expression évaluée. Les erreurs de syntaxe sont " "rapportées via des exceptions. Exemple :" -#: ../Doc/library/functions.rst:453 +#: ../Doc/library/functions.rst:452 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 " @@ -982,7 +987,7 @@ msgstr "" "code plutôt qu'une chaîne. Si l'objet code à été compilé avec ``'exec'`` en " "argument pour *mode*, :func:`eval` donnera ``None``." -#: ../Doc/library/functions.rst:458 +#: ../Doc/library/functions.rst:457 msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions returns the " @@ -994,7 +999,7 @@ msgstr "" "respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " "lors de l'usage de :func:`eval` et :func:`exec`." -#: ../Doc/library/functions.rst:463 +#: ../Doc/library/functions.rst:462 msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings " "with expressions containing only literals." @@ -1003,7 +1008,7 @@ msgstr "" "peut évaluer en toute sécurité des chaînes avec des expressions ne contenant " "que des valeurs littérales." -#: ../Doc/library/functions.rst:470 +#: ../Doc/library/functions.rst:469 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 " @@ -1025,7 +1030,7 @@ msgstr "" "`return` et :keyword:`yield` ne peuvent pas être utilisés en dehors d'une " "fonction, même dans du code passé à :func:`exec`. La fonction donne ``None``." -#: ../Doc/library/functions.rst:480 +#: ../Doc/library/functions.rst:479 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, " @@ -1046,7 +1051,7 @@ msgstr "" "*globals* et *locals*, le code sera exécuté comme s'il était inclus dans une " "définition de classe." -#: ../Doc/library/functions.rst:489 +#: ../Doc/library/functions.rst:488 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:" @@ -1060,7 +1065,7 @@ msgstr "" "exposées au code exécuté en insérant votre propre dictionnaire " "``__builtins__`` dans *globals* avant de le donner à :func:`exec`." -#: ../Doc/library/functions.rst:497 +#: ../Doc/library/functions.rst:496 msgid "" "The built-in functions :func:`globals` and :func:`locals` return the current " "global and local dictionary, respectively, which may be useful to pass " @@ -1070,7 +1075,7 @@ msgstr "" "respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " "en deuxième et troisième argument de :func:`exec`." -#: ../Doc/library/functions.rst:503 +#: ../Doc/library/functions.rst:502 msgid "" "The default *locals* act as described for function :func:`locals` below: " "modifications to the default *locals* dictionary should not be attempted. " @@ -1083,7 +1088,7 @@ msgstr "" "observer l'effet du code sur les variables locales, après que :func:`exec` " "soit terminée." -#: ../Doc/library/functions.rst:511 +#: ../Doc/library/functions.rst:510 msgid "" "Construct an iterator from those elements of *iterable* for which *function* " "returns true. *iterable* may be either a sequence, a container which " @@ -1097,7 +1102,7 @@ msgstr "" "``None``, la fonction identité est prise, c'est à dire que tous les éléments " "faux d'*iterable* sont supprimés." -#: ../Doc/library/functions.rst:517 +#: ../Doc/library/functions.rst:516 msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " @@ -1109,7 +1114,7 @@ msgstr "" "``None`` et de ``(item for item in iterable if item)`` si *function* est " "``None``." -#: ../Doc/library/functions.rst:522 +#: ../Doc/library/functions.rst:521 msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* returns false." @@ -1117,12 +1122,12 @@ msgstr "" "Voir :func:`itertools.filterfalse` pour la fonction complémentaire qui donne " "les éléments d'*iterable* pour lesquels *fonction* donne ``False``." -#: ../Doc/library/functions.rst:532 +#: ../Doc/library/functions.rst:531 msgid "Return a floating point number constructed from a number or string *x*." msgstr "" "Donne un nombre a virgule flottante depuis un nombre ou une chaîne *x*." -#: ../Doc/library/functions.rst:534 +#: ../Doc/library/functions.rst:533 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 " @@ -1140,7 +1145,7 @@ msgstr "" "Plus précisément, l'argument doit se conformer à la grammaire suivante, " "après que les espaces en début et fin de chaîne aient été retirés :" -#: ../Doc/library/functions.rst:549 +#: ../Doc/library/functions.rst:548 msgid "" "Here ``floatnumber`` is the form of a Python floating-point literal, " "described in :ref:`floating`. Case is not significant, so, for example, " @@ -1152,7 +1157,7 @@ msgstr "" "exemple, ``\"inf\"``, ``\" Inf\"``, ``\"INFINITY\"``, et ``\" iNfiNity\"`` " "sont tous des orthographes valides pour un infini positif." -#: ../Doc/library/functions.rst:554 +#: ../Doc/library/functions.rst:553 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 " @@ -1165,26 +1170,26 @@ msgstr "" "dehors de l'intervalle d'un nombre a virgule flottante pour Python, :exc:" "`OverflowError` est levée." -#: ../Doc/library/functions.rst:559 +#: ../Doc/library/functions.rst:558 msgid "" "For a general Python object ``x``, ``float(x)`` delegates to ``x." "__float__()``." msgstr "" "Pour un objet Python ``x``, ``float(x)`` est délégué à ``x.__float__()``." -#: ../Doc/library/functions.rst:562 +#: ../Doc/library/functions.rst:561 msgid "If no argument is given, ``0.0`` is returned." msgstr "Dans argument, ``0.0`` est donné." -#: ../Doc/library/functions.rst:564 +#: ../Doc/library/functions.rst:563 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" -#: ../Doc/library/functions.rst:577 +#: ../Doc/library/functions.rst:576 msgid "The float type is described in :ref:`typesnumeric`." msgstr "Le type *float* est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:592 +#: ../Doc/library/functions.rst:591 msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " @@ -1196,7 +1201,7 @@ msgstr "" "valeur, cependant il existe une syntaxe standard utilisée par la plupart des " "types natifs : :ref:`formatspec`." -#: ../Doc/library/functions.rst:597 +#: ../Doc/library/functions.rst:596 msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." @@ -1204,7 +1209,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:600 +#: ../Doc/library/functions.rst:599 msgid "" "A call to ``format(value, format_spec)`` is translated to ``type(value)." "__format__(value, format_spec)`` which bypasses the instance dictionary when " @@ -1220,7 +1225,7 @@ msgstr "" "mod:`object` et que *format_spec* n'est pas vide, ou si soit *format_spec* " "soit la le résultat ne sont pas des chaînes." -#: ../Doc/library/functions.rst:607 +#: ../Doc/library/functions.rst:606 msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." @@ -1228,7 +1233,7 @@ msgstr "" "``object().__format__(format_spec)`` lève :exc:`TypeError` si *format_spec* " "n'est pas une chaîne vide." -#: ../Doc/library/functions.rst:616 +#: ../Doc/library/functions.rst:615 msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" @@ -1238,7 +1243,7 @@ msgstr "" "tirés d'*iterable*. ``frozenset`` est une classe native. Voir :class:" "`frozenset` et :ref:`types-set` pour leurs documentation." -#: ../Doc/library/functions.rst:620 +#: ../Doc/library/functions.rst:619 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." @@ -1247,7 +1252,7 @@ msgstr "" "`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" "`collections`." -#: ../Doc/library/functions.rst:627 +#: ../Doc/library/functions.rst:626 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 " @@ -1263,7 +1268,7 @@ msgstr "" "que *default* est fourni, il est renvoyé, sinon l'exception :exc:" "`AttributeError` est levée." -#: ../Doc/library/functions.rst:636 +#: ../Doc/library/functions.rst:635 msgid "" "Return a dictionary representing the current global symbol table. This is " "always the dictionary of the current module (inside a function or method, " @@ -1275,7 +1280,7 @@ msgstr "" "fonction ou méthode, c'est le module où elle est définie, et non le module " "d'où elle est appelée)." -#: ../Doc/library/functions.rst:643 +#: ../Doc/library/functions.rst:642 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. " @@ -1287,7 +1292,7 @@ msgstr "" "(L'implémentation appelle ``getattr(object, name)`` et regarde si une " "exception :exc:`AttributeError` à été levée.)" -#: ../Doc/library/functions.rst:651 +#: ../Doc/library/functions.rst:650 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 " @@ -1300,7 +1305,7 @@ msgstr "" "même *hash* (même si leurs types sont différents, comme pour ``1`` et " "``1.0``)." -#: ../Doc/library/functions.rst:658 +#: ../Doc/library/functions.rst:657 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 :" @@ -1310,7 +1315,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:664 +#: ../Doc/library/functions.rst:663 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 " @@ -1326,14 +1331,27 @@ msgstr "" "ce nom est recherché, et une page d'aide est affichée sur la console. Si " "l'argument est d'un autre type, une page d'aide sur cet objet est générée." -#: ../Doc/library/functions.rst:671 +#: ../Doc/library/functions.rst:670 +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 " +"positional-only. For more info, see :ref:`the FAQ entry on positional-only " +"parameters `." +msgstr "" +"Notez que si une barre oblique (/) apparaît dans la liste des paramètres " +"d'une fonction, lorsque vous appelez :func:`help`, cela signifie que les " +"paramètres placés avant la barre oblique sont uniquement positionnels. Pour " +"plus d'informations, voir :ref:`La FAQ sur les arguments positionels `." + +#: ../Doc/library/functions.rst:675 msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" -"Cette fonction est ajoutée à l'espace de noms natif par le module :mod:" +"Cette fonction est ajoutée à l'espace de nommage natif par le module :mod:" "`site`." -#: ../Doc/library/functions.rst:673 +#: ../Doc/library/functions.rst:677 msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " "for callables are now more comprehensive and consistent." @@ -1341,7 +1359,7 @@ msgstr "" "Les changements aux modules :mod:`pydoc` et :mod:`inspect` rendent les " "signatures des appelables plus compréhensible et cohérente." -#: ../Doc/library/functions.rst:680 +#: ../Doc/library/functions.rst:684 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 :" @@ -1351,7 +1369,7 @@ msgstr "" "pas un :class:`int`, il doit définir une méthode :meth:`__index__` qui " "renvoie un entier. Quelques exemples :" -#: ../Doc/library/functions.rst:689 +#: ../Doc/library/functions.rst:693 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 " @@ -1360,7 +1378,7 @@ msgstr "" "Si vous voulez convertir un nombre entier en chaîne hexadécimale, en " "majuscule ou non, préfixée ou non, vous pouvez utiliser les moyens suivants :" -#: ../Doc/library/functions.rst:701 +#: ../Doc/library/functions.rst:705 msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using " "a base of 16." @@ -1368,7 +1386,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:706 +#: ../Doc/library/functions.rst:710 msgid "" "To obtain a hexadecimal string representation for a float, use the :meth:" "`float.hex` method." @@ -1376,7 +1394,7 @@ msgstr "" "Pour obtenir une représentation hexadécimale sous forme de chaîne d'un " "nombre à virgule flottante, utilisez la méthode :meth:`float.hex`." -#: ../Doc/library/functions.rst:712 +#: ../Doc/library/functions.rst:716 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. " @@ -1387,7 +1405,7 @@ msgstr "" "constant pour cet objet durant sa durée de vie. Deux objets sont les durées " "de vie ne se chevauchent pas peuvent partager le même :func:`id`." -#: ../Doc/library/functions.rst:722 +#: ../Doc/library/functions.rst:726 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, " @@ -1397,9 +1415,9 @@ 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 " "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 donne. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple ::" -#: ../Doc/library/functions.rst:732 +#: ../Doc/library/functions.rst:736 msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." @@ -1407,7 +1425,7 @@ 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:739 +#: ../Doc/library/functions.rst:743 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)`` " @@ -1420,7 +1438,7 @@ msgstr "" "``int(x)`` renvoie ``x.__trunc__()``. Les nombres à virgule flottante sont " "tronqués vers zéro." -#: ../Doc/library/functions.rst:745 +#: ../Doc/library/functions.rst:749 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 " @@ -1449,11 +1467,11 @@ msgstr "" "0)`` n'est pas légal, alors que ``int('010')`` l'est tout comme ``int('010', " "8)``." -#: ../Doc/library/functions.rst:758 +#: ../Doc/library/functions.rst:762 msgid "The integer type is described in :ref:`typesnumeric`." msgstr "Le type des entiers est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:760 +#: ../Doc/library/functions.rst:764 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 " @@ -1466,7 +1484,7 @@ msgstr "" "meth:`base.__int__ ` au lieu de :meth:`base.__index__ " "`." -#: ../Doc/library/functions.rst:776 +#: ../Doc/library/functions.rst:780 msgid "" "Return true if the *object* argument is an instance of the *classinfo* " "argument, or of a (direct, indirect or :term:`virtual `) of *classinfo*. A class is considered a subclass of " @@ -1499,7 +1517,7 @@ msgstr "" "cas la vérification sera faite pour chaque classe de *classinfo*. Dans tous " "les autres cas, :exc:`TypeError` est levée." -#: ../Doc/library/functions.rst:797 +#: ../Doc/library/functions.rst:801 msgid "" "Return an :term:`iterator` object. The first argument is interpreted very " "differently depending on the presence of the second argument. Without a " @@ -1525,23 +1543,21 @@ msgstr "" "est égale à *sentinel* :exc:`StopIteration` est levée, autrement la valeur " "est donnée." -#: ../Doc/library/functions.rst:810 +#: ../Doc/library/functions.rst:814 msgid "See also :ref:`typeiter`." msgstr "Voir aussi :ref:`typeiter`." -#: ../Doc/library/functions.rst:812 +#: ../Doc/library/functions.rst:816 msgid "" -"One useful application of the second form of :func:`iter` is to read lines " -"of a file until a certain line is reached. The following example reads a " -"file until the :meth:`~io.TextIOBase.readline` method returns an empty " -"string::" +"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 " +"file until the end of file is reached::" msgstr "" -"Une autre application utile de la deuxième forme de :func:`iter` est de lire " -"les lignes d'un fichier jusqu'à ce qu'un certaine ligne soit atteinte. " -"L'exemple suivant lis un fichier jusqu'à ce que :meth:`~io.TextIOBase." -"readline` donne une ligne vide : ::" +"Une autre application utile de la deuxième forme de :func:`iter` est de " +"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:823 +#: ../Doc/library/functions.rst:828 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 " @@ -1551,7 +1567,7 @@ msgstr "" "séquence (tel qu'une chaîne, un objet ``bytes``, ``tuple``, ``list`` ou " "``range``) ou une collection (tel qu'un ``dict``, ``set`` ou ``frozenset``)." -#: ../Doc/library/functions.rst:832 +#: ../Doc/library/functions.rst:837 msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." @@ -1559,17 +1575,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:838 +#: ../Doc/library/functions.rst:843 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." +"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." +"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." -#: ../Doc/library/functions.rst:843 +#: ../Doc/library/functions.rst:849 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." @@ -1578,7 +1597,7 @@ msgstr "" "peuvent ne pas affecter les valeurs des variables locales ou libres " "utilisées par l'interpréteur." -#: ../Doc/library/functions.rst:848 +#: ../Doc/library/functions.rst:854 msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterable* arguments are passed, " @@ -1595,7 +1614,7 @@ msgstr "" "où les arguments seraient déjà rangés sous forme de tuples, voir :func:" "`itertools.starmap`." -#: ../Doc/library/functions.rst:859 +#: ../Doc/library/functions.rst:865 msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." @@ -1603,7 +1622,7 @@ msgstr "" "Donne 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:862 +#: ../Doc/library/functions.rst:868 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 " @@ -1613,7 +1632,7 @@ msgstr "" "Le plus grand élément de l'itérable est donné. Si au moins deux arguments " "positionnels sont fournis, l'argument le plus grand sera donné." -#: ../Doc/library/functions.rst:867 ../Doc/library/functions.rst:901 +#: ../Doc/library/functions.rst:873 ../Doc/library/functions.rst:907 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 " @@ -1627,7 +1646,7 @@ msgstr "" "l'itérable fourni est vide. Si l'itérable est vide et que *default* n'est " "pas fourni, :exc:`ValueError` est levée." -#: ../Doc/library/functions.rst:873 +#: ../Doc/library/functions.rst:879 msgid "" "If multiple items are maximal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -1639,11 +1658,11 @@ msgstr "" "stabilité lors du tri, tel que ``sorted(iterable, key=keyfunc, reverse=True)" "[0]`` et ``heapq.nlargest(1, iterable, key=keyfunc)``." -#: ../Doc/library/functions.rst:878 ../Doc/library/functions.rst:912 +#: ../Doc/library/functions.rst:884 ../Doc/library/functions.rst:918 msgid "The *default* keyword-only argument." msgstr "L'argument exclusivement par mot clef *default*." -#: ../Doc/library/functions.rst:886 +#: ../Doc/library/functions.rst:892 msgid "" "Return a \"memory view\" object created from the given argument. See :ref:" "`typememoryview` for more information." @@ -1651,7 +1670,7 @@ msgstr "" "Donne une \"vue mémoire\" (*memory view*) créée depuis l'argument. Voir :ref:" "`typememoryview` pour plus d'informations." -#: ../Doc/library/functions.rst:893 +#: ../Doc/library/functions.rst:899 msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." @@ -1659,7 +1678,7 @@ msgstr "" "Donne le plus petit élément d'un itérable ou le plus petit d'au moins deux " "arguments." -#: ../Doc/library/functions.rst:896 +#: ../Doc/library/functions.rst:902 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 " @@ -1669,7 +1688,7 @@ msgstr "" "élément de l'itérable est donné. Si au moins deux arguments positionnels " "sont fournis le plus petit argument positionnel est donné." -#: ../Doc/library/functions.rst:907 +#: ../Doc/library/functions.rst:913 msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -1681,17 +1700,17 @@ msgstr "" "``sorted(iterable, key=keyfunc)[0]`` et ``heapq.nsmallest(1, iterable, " "key=keyfunc)``." -#: ../Doc/library/functions.rst:918 +#: ../Doc/library/functions.rst:924 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é, " +"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épuisé, " "sinon :exc:`StopIteration` est levée." -#: ../Doc/library/functions.rst:925 +#: ../Doc/library/functions.rst:931 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 " @@ -1701,7 +1720,7 @@ msgstr "" "classes. C'est elle qui porte les méthodes communes à toutes les instances " "de classes en Python. Cette fonction n'accepte aucun argument." -#: ../Doc/library/functions.rst:931 +#: ../Doc/library/functions.rst:937 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." @@ -1710,7 +1729,7 @@ msgstr "" "pouvez donc pas assigner d'attributs arbitraire à une instance d':class:" "`object`." -#: ../Doc/library/functions.rst:937 +#: ../Doc/library/functions.rst:943 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` " @@ -1722,7 +1741,7 @@ msgstr "" "objet :class:`int`, il doit définir une méthode :meth:`__index__` qui donne " "un entier, par exemple :" -#: ../Doc/library/functions.rst:947 +#: ../Doc/library/functions.rst:953 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." @@ -1730,7 +1749,7 @@ msgstr "" "Si vous voulez convertir un nombre entier en chaîne octale, avec ou sans le " "préfixe ``0o``, vous pouvez utiliser les moyens suivants." -#: ../Doc/library/functions.rst:964 +#: ../Doc/library/functions.rst:970 msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " "cannot be opened, an :exc:`OSError` is raised." @@ -1738,7 +1757,7 @@ msgstr "" "Ouvre *file* et donne un :term:`file object` correspondant. Si le fichier ne " "peut pas être ouvert, une :exc:`OSError` est levée." -#: ../Doc/library/functions.rst:967 +#: ../Doc/library/functions.rst:973 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 " @@ -1752,7 +1771,7 @@ msgstr "" "donné, il sera fermé en même temps que l'objet *I/O* renvoyé, sauf si " "*closefd* est mis à ``False``.)" -#: ../Doc/library/functions.rst:973 +#: ../Doc/library/functions.rst:979 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. " @@ -1778,79 +1797,71 @@ msgstr "" "utilisez le mode binaire en laissant *encoding* non spécifié.) Les modes " "disponibles sont :" -#: ../Doc/library/functions.rst:990 +#: ../Doc/library/functions.rst:996 msgid "Character" msgstr "Caractère" -#: ../Doc/library/functions.rst:990 +#: ../Doc/library/functions.rst:996 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/functions.rst:992 +#: ../Doc/library/functions.rst:998 msgid "``'r'``" msgstr "``'r'``" -#: ../Doc/library/functions.rst:992 +#: ../Doc/library/functions.rst:998 msgid "open for reading (default)" msgstr "ouvre en lecture (par défaut)" -#: ../Doc/library/functions.rst:993 +#: ../Doc/library/functions.rst:999 msgid "``'w'``" msgstr "``'w'``" -#: ../Doc/library/functions.rst:993 +#: ../Doc/library/functions.rst:999 msgid "open for writing, truncating the file first" msgstr "ouvre en écriture, tronquant le fichier" -#: ../Doc/library/functions.rst:994 +#: ../Doc/library/functions.rst:1000 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/functions.rst:994 +#: ../Doc/library/functions.rst:1000 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:995 +#: ../Doc/library/functions.rst:1001 msgid "``'a'``" msgstr "``'a'``" -#: ../Doc/library/functions.rst:995 +#: ../Doc/library/functions.rst:1001 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:996 +#: ../Doc/library/functions.rst:1002 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/functions.rst:996 +#: ../Doc/library/functions.rst:1002 msgid "binary mode" msgstr "mode binaire" -#: ../Doc/library/functions.rst:997 +#: ../Doc/library/functions.rst:1003 msgid "``'t'``" msgstr "``'t'``" -#: ../Doc/library/functions.rst:997 +#: ../Doc/library/functions.rst:1003 msgid "text mode (default)" msgstr "mode texte (par défaut)" -#: ../Doc/library/functions.rst:998 +#: ../Doc/library/functions.rst:1004 msgid "``'+'``" msgstr "``'+'``" -#: ../Doc/library/functions.rst:998 +#: ../Doc/library/functions.rst:1004 msgid "open a disk file for updating (reading and writing)" msgstr "ouvre un fichier pour le modifier (lire et écrire)" -#: ../Doc/library/functions.rst:999 -msgid "``'U'``" -msgstr "``'U'``" - -#: ../Doc/library/functions.rst:999 -msgid ":term:`universal newlines` mode (deprecated)" -msgstr "mode :term:`universal newlines` (obsolète)" - -#: ../Doc/library/functions.rst:1002 +#: ../Doc/library/functions.rst:1007 msgid "" "The default mode is ``'r'`` (open for reading text, synonym of ``'rt'``). " "For binary read-write access, the mode ``'w+b'`` opens and truncates the " @@ -1860,7 +1871,7 @@ msgstr "" "``'rt'``). Pour un accès en lecture écriture binaire, le mode ``'w+b'`` " "ouvre et vide le fichier. ``'r+b'`` ouvre le fichier sans le vider." -#: ../Doc/library/functions.rst:1006 +#: ../Doc/library/functions.rst:1011 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* " @@ -1878,17 +1889,31 @@ msgstr "" "é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:1016 +#: ../Doc/library/functions.rst:1019 +msgid "" +"There is an additional mode character permitted, ``'U'``, which no longer " +"has any effect, and is considered deprecated. It previously enabled :term:" +"`universal newlines` in text mode, which became the default behaviour in " +"Python 3.0. Refer to the documentation of the :ref:`newline ` parameter for further details." +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." + +#: ../Doc/library/functions.rst:1027 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 est effectué par Python lui même, et ainsi indépendant de la " -"plateforme." +"jacent, tout le traitement est effectué par Python lui même, et est ainsi " +"indépendant de la plateforme." -#: ../Doc/library/functions.rst:1020 +#: ../Doc/library/functions.rst:1031 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 " @@ -1903,7 +1928,7 @@ msgstr "" "en octets d'un tampon de taille fixe. Sans l'argument *buffering*, les " "comportements par défaut sont les suivants :" -#: ../Doc/library/functions.rst:1026 +#: ../Doc/library/functions.rst:1037 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 " @@ -1916,7 +1941,7 @@ msgstr "" "DEFAULT_BUFFER_SIZE`. Sur de nombreux systèmes, le tampon sera de 4096 ou " "8192 octets." -#: ../Doc/library/functions.rst:1031 +#: ../Doc/library/functions.rst:1042 msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " @@ -1926,7 +1951,7 @@ msgstr "" "isatty` donne ``True``) utilisent un tampon par lignes. Les autres fichiers " "texte sont traités comme les fichiers binaires." -#: ../Doc/library/functions.rst:1035 +#: ../Doc/library/functions.rst:1046 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 " @@ -1940,7 +1965,7 @@ msgstr "" "mais n'importe quel :term:`text encoding` supporté par Python peut être " "utilisé. Voir :mod:`codecs` pour une liste des encodages supportés." -#: ../Doc/library/functions.rst:1042 +#: ../Doc/library/functions.rst:1053 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 " @@ -1955,7 +1980,7 @@ msgstr "" "enregistré avec :func:`codecs.register_error` est aussi un argument valide. " "Les noms standards sont :" -#: ../Doc/library/functions.rst:1050 +#: ../Doc/library/functions.rst:1061 msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." @@ -1963,7 +1988,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:1054 +#: ../Doc/library/functions.rst:1065 msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " "data loss." @@ -1971,7 +1996,7 @@ msgstr "" "``'ignore'`` ignore les erreurs. Notez qu'ignorer les erreurs d'encodage " "peut mener à des pertes de données." -#: ../Doc/library/functions.rst:1057 +#: ../Doc/library/functions.rst:1068 msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." @@ -1979,7 +2004,7 @@ msgstr "" "``'replace'`` insère un marqueur de substitution (tel que ``'?'``) en place " "des données mal formées." -#: ../Doc/library/functions.rst:1060 +#: ../Doc/library/functions.rst:1071 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 " @@ -1994,7 +2019,7 @@ msgstr "" "l'écriture de la donnée. C'est utile pour traiter des fichiers d'un encodage " "inconnu." -#: ../Doc/library/functions.rst:1067 +#: ../Doc/library/functions.rst:1078 msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " "not supported by the encoding are replaced with the appropriate XML " @@ -2004,7 +2029,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:1071 +#: ../Doc/library/functions.rst:1082 msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." @@ -2012,7 +2037,7 @@ msgstr "" "``'backslashreplace'`` remplace les données mal formées par des séquences " "d'échappement Python (utilisant des *backslash*)." -#: ../Doc/library/functions.rst:1074 +#: ../Doc/library/functions.rst:1085 msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." @@ -2020,7 +2045,7 @@ msgstr "" "``'namereplace'`` (aussi supporté lors de l'écriture) remplace les " "caractères non supportés par des séquences d'échappement ``\\N{...}``." -#: ../Doc/library/functions.rst:1080 +#: ../Doc/library/functions.rst:1093 msgid "" "*newline* controls how :term:`universal newlines` mode works (it only " "applies to text mode). It can be ``None``, ``''``, ``'\\n'``, ``'\\r'``, " @@ -2030,7 +2055,7 @@ msgstr "" "(seulement en mode texte). Il eut être ``None``, ``''``, ``'\\n'``, " "``'\\r'``, et ``'\\r\\n'``. Il fonctionne comme suit :" -#: ../Doc/library/functions.rst:1084 +#: ../Doc/library/functions.rst:1097 msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -2048,7 +2073,7 @@ msgstr "" "autorisée, les lignes sont seulement terminées par la chaîne donnée, qui est " "rendue tel qu'elle." -#: ../Doc/library/functions.rst:1092 +#: ../Doc/library/functions.rst:1105 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, :" @@ -2062,7 +2087,7 @@ msgstr "" "*newline* est un autre caractère valide, chaque ``'\\n'`` sera remplacé par " "la chaîne donnée." -#: ../Doc/library/functions.rst:1098 +#: ../Doc/library/functions.rst:1111 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 " @@ -2074,7 +2099,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:1103 +#: ../Doc/library/functions.rst:1116 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 " @@ -2088,13 +2113,13 @@ msgstr "" "descripteur de fichier ouvert (fournir :mod:`os.open` en temps qu'*opener* " "aura le même effet que donner ``None``)." -#: ../Doc/library/functions.rst:1109 +#: ../Doc/library/functions.rst:1122 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:1111 +#: ../Doc/library/functions.rst:1124 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::" @@ -2102,7 +2127,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:1124 +#: ../Doc/library/functions.rst:1137 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 " @@ -2122,13 +2147,13 @@ msgstr "" "`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 mode binaire elle donne une :class:`io.BufferedReader`, en écriture " -"et ajout en mode binaire c'est une :class:`io.BufferedWriter`, et 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." -#: ../Doc/library/functions.rst:1145 +#: ../Doc/library/functions.rst:1158 msgid "" "See also the file handling modules, such as, :mod:`fileinput`, :mod:`io` " "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" @@ -2138,21 +2163,21 @@ msgstr "" "`fileinput`, :mod:`io` (où :func:`open` est déclarée), :mod:`os`, :mod:`os." "path`, :mod:`tmpfile`, et :mod:`shutil`." -#: ../Doc/library/functions.rst:1152 +#: ../Doc/library/functions.rst:1165 msgid "The *opener* parameter was added." msgstr "Le paramètre *opener* a été ajouté." -#: ../Doc/library/functions.rst:1153 +#: ../Doc/library/functions.rst:1166 msgid "The ``'x'`` mode was added." msgstr "Le mode ``'x'`` a été ajouté." -#: ../Doc/library/functions.rst:1154 +#: ../Doc/library/functions.rst:1167 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:1155 +#: ../Doc/library/functions.rst:1168 msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." @@ -2160,15 +2185,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:1161 +#: ../Doc/library/functions.rst:1174 msgid "The file is now non-inheritable." msgstr "Il n'est plus possible d'hériter de *file*." -#: ../Doc/library/functions.rst:1165 +#: ../Doc/library/functions.rst:1178 msgid "The ``'U'`` mode." msgstr "Le mode ``'U'``." -#: ../Doc/library/functions.rst:1170 +#: ../Doc/library/functions.rst:1183 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 :" @@ -2178,15 +2203,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:1173 +#: ../Doc/library/functions.rst:1186 msgid "The ``'namereplace'`` error handler was added." msgstr "Le gestionnaire d'erreurs ``'namereplace'`` a été ajouté." -#: ../Doc/library/functions.rst:1178 +#: ../Doc/library/functions.rst:1191 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:1179 +#: ../Doc/library/functions.rst:1192 msgid "" "On Windows, opening a console buffer may return a subclass of :class:`io." "RawIOBase` other than :class:`io.FileIO`." @@ -2194,7 +2219,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:1184 +#: ../Doc/library/functions.rst:1197 msgid "" "Given a string representing one Unicode character, return an integer " "representing the Unicode code point of that character. For example, " @@ -2206,7 +2231,7 @@ msgstr "" "nombre entier ``97`` et ``ord('€')`` (symbole Euro) renvoie ``8364``. Il " "s'agit de l'inverse de :func:`chr`." -#: ../Doc/library/functions.rst:1192 +#: ../Doc/library/functions.rst:1205 msgid "" "Return *x* to the power *y*; if *z* is present, return *x* to the power *y*, " "modulo *z* (computed more efficiently than ``pow(x, y) % z``). The two-" @@ -2217,7 +2242,7 @@ msgstr "" "modulo *z* (calculé de manière plus efficiente que ``pow(x, y) % z``). La " "forme à deux arguments est équivalent à ``x**y``." -#: ../Doc/library/functions.rst:1196 +#: ../Doc/library/functions.rst:1209 msgid "" "The arguments must have numeric types. With mixed operand types, the " "coercion rules for binary arithmetic operators apply. For :class:`int` " @@ -2238,7 +2263,7 @@ msgstr "" "argument est négatif, le troisième doit être omis. Si *z* est fourni, *x* et " "*y* doivent être des entiers et *y* positif." -#: ../Doc/library/functions.rst:1208 +#: ../Doc/library/functions.rst:1221 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 " @@ -2248,7 +2273,7 @@ msgstr "" "*end*. *sep*, *end*, *file*, et *flush*, s'ils sont présents, doivent être " "données par mot clef." -#: ../Doc/library/functions.rst:1212 +#: ../Doc/library/functions.rst:1225 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* " @@ -2262,7 +2287,7 @@ msgstr "" "les valeurs par défaut. Si aucun *objects* n'est donné :func:`print` écris " "seulement *end*." -#: ../Doc/library/functions.rst:1218 +#: ../Doc/library/functions.rst:1231 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 " @@ -2275,7 +2300,7 @@ msgstr "" "peut pas être utilisé avec des fichiers ouverts en mode binaire. Pour ceux " "ci utilisez plutôt ``file.write(...)``." -#: ../Doc/library/functions.rst:1223 +#: ../Doc/library/functions.rst:1236 msgid "" "Whether output is buffered is usually determined by *file*, but if the " "*flush* keyword argument is true, the stream is forcibly flushed." @@ -2283,15 +2308,15 @@ msgstr "" "Que la sortie utilise un *buffer* ou non est souvent décidé par *file*, mais " "si l'argument *flush* est vrai, le tampon du flux est vidé explicitement." -#: ../Doc/library/functions.rst:1226 +#: ../Doc/library/functions.rst:1239 msgid "Added the *flush* keyword argument." msgstr "Ajout de l'argument par mot clef *flush*." -#: ../Doc/library/functions.rst:1232 +#: ../Doc/library/functions.rst:1245 msgid "Return a property attribute." msgstr "Donne un attribut propriété." -#: ../Doc/library/functions.rst:1234 +#: ../Doc/library/functions.rst:1247 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 " @@ -2302,11 +2327,11 @@ msgstr "" "supprimer la valeur d'un attribut, et *doc* créé une *docstring* pour " "l'attribut." -#: ../Doc/library/functions.rst:1238 +#: ../Doc/library/functions.rst:1251 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:1255 +#: ../Doc/library/functions.rst:1268 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." @@ -2314,7 +2339,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:1258 +#: ../Doc/library/functions.rst:1271 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 " @@ -2324,9 +2349,9 @@ 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:`decorator` ::" -#: ../Doc/library/functions.rst:1271 +#: ../Doc/library/functions.rst:1284 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 " @@ -2336,7 +2361,7 @@ msgstr "" "*getter* d'un attribut du même nom, et donne *\"Get the current voltage\"* " "comme *docstring* de *voltage*." -#: ../Doc/library/functions.rst:1275 +#: ../Doc/library/functions.rst:1288 msgid "" "A property object has :attr:`~property.getter`, :attr:`~property.setter`, " "and :attr:`~property.deleter` methods usable as decorators that create a " @@ -2346,9 +2371,9 @@ msgstr "" "Un objet propriété à 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 : ::" +"fonction de décoration. C'est plus clair avec un exemple ::" -#: ../Doc/library/functions.rst:1297 +#: ../Doc/library/functions.rst:1310 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 " @@ -2358,7 +2383,7 @@ msgstr "" "donner aux fonctions additionnelles le même nom que la propriété (``x`` dans " "ce cas.)" -#: ../Doc/library/functions.rst:1301 +#: ../Doc/library/functions.rst:1314 msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and " "``fdel`` corresponding to the constructor arguments." @@ -2366,11 +2391,11 @@ msgstr "" "L'objet propriété donné à aussi les attributs ``fget``, ``fset`` et ``fdel`` " "correspondant correspondants aux arguments du constructeur." -#: ../Doc/library/functions.rst:1304 +#: ../Doc/library/functions.rst:1317 msgid "The docstrings of property objects are now writeable." msgstr "Les *docstrings* des objets propriété peuvent maintenant être écrits." -#: ../Doc/library/functions.rst:1313 +#: ../Doc/library/functions.rst:1326 msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." @@ -2378,7 +2403,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:1319 +#: ../Doc/library/functions.rst:1332 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 " @@ -2394,9 +2419,9 @@ msgstr "" "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__`." +"instances en définissant une méthode :meth:`__repr__`." -#: ../Doc/library/functions.rst:1330 +#: ../Doc/library/functions.rst:1343 msgid "" "Return a reverse :term:`iterator`. *seq* must be an object which has a :" "meth:`__reversed__` method or supports the sequence protocol (the :meth:" @@ -2408,7 +2433,7 @@ msgstr "" "meth:`__len__` et la méthode :meth:`__getitem__` avec des arguments entiers " "commençant à zéro)." -#: ../Doc/library/functions.rst:1338 +#: ../Doc/library/functions.rst:1351 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 " @@ -2418,7 +2443,7 @@ msgstr "" "virgule. Si *ndigits* est omis (ou est ``None``), l'entier le plus proche " "est renvoyé." -#: ../Doc/library/functions.rst:1342 +#: ../Doc/library/functions.rst:1355 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 " @@ -2436,7 +2461,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:1351 +#: ../Doc/library/functions.rst:1364 msgid "" "For a general Python object ``number``, ``round`` delegates to ``number." "__round__``." @@ -2444,7 +2469,7 @@ msgstr "" "Pour tout autre objet Python ``number``, ``round`` délègue à ``number." "__round__``." -#: ../Doc/library/functions.rst:1356 +#: ../Doc/library/functions.rst:1369 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 " @@ -2458,7 +2483,7 @@ msgstr "" "de décimaux ne peuvent pas être représentés exactement en nombre a virgule " "flottante. Voir :ref:`tut-fp-issues` pour plus d'information." -#: ../Doc/library/functions.rst:1367 +#: ../Doc/library/functions.rst:1380 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-" @@ -2468,7 +2493,7 @@ msgstr "" "d'*iterable*. ``set`` est une classe native. Voir :class:`set` et :ref:" "`types-set` pour la documentation de cette classe." -#: ../Doc/library/functions.rst:1371 +#: ../Doc/library/functions.rst:1384 msgid "" "For other containers see the built-in :class:`frozenset`, :class:`list`, :" "class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " @@ -2478,7 +2503,7 @@ msgstr "" "`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" "`collections`." -#: ../Doc/library/functions.rst:1378 +#: ../Doc/library/functions.rst:1391 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 " @@ -2492,7 +2517,7 @@ msgstr "" "si l'objet l'autorise. Par exemple, ``setattr(x, 'foobar', 123)`` équivaut à " "``x.foobar = 123``." -#: ../Doc/library/functions.rst:1390 +#: ../Doc/library/functions.rst:1403 msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " @@ -2516,26 +2541,27 @@ msgstr "" "étendue. Par exemple ``a[start:stop:step]`` ou ``a[start:stop, i]``. Voir :" "func:`itertools.islice` pour une version alternative donnant un itérateur." -#: ../Doc/library/functions.rst:1403 +#: ../Doc/library/functions.rst:1416 msgid "Return a new sorted list from the items in *iterable*." msgstr "Donne une nouvelle liste triée depuis les éléments d'*iterable*." -#: ../Doc/library/functions.rst:1405 +#: ../Doc/library/functions.rst:1418 msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." -#: ../Doc/library/functions.rst:1407 +#: ../Doc/library/functions.rst:1420 msgid "" "*key* specifies a function of one argument that is used to extract a " -"comparison key from each list element: ``key=str.lower``. The default value " -"is ``None`` (compare the elements directly)." +"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 " -"comparaison de chaque élément de la liste : ``key=str.lower``. La valeur par " -"défaut est ``None`` (compare les éléments directement)." +"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:1411 +#: ../Doc/library/functions.rst:1424 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -2543,7 +2569,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:1414 +#: ../Doc/library/functions.rst:1427 msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " "*key* function." @@ -2551,7 +2577,7 @@ msgstr "" "Utilisez :func:`functools.cmp_to_key` pour convertir l'ancienne notation " "*cmp* en une fonction *key*." -#: ../Doc/library/functions.rst:1417 +#: ../Doc/library/functions.rst:1430 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 " @@ -2563,42 +2589,41 @@ msgstr "" "eux. C'est utile pour trier en plusieurs passes, par exemple par département " "puis par salaire)." -#: ../Doc/library/functions.rst:1422 +#: ../Doc/library/functions.rst:1435 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:1426 +#: ../Doc/library/functions.rst:1439 msgid "Transform a method into a static method." msgstr "Transforme une méthode en méthode statique." -#: ../Doc/library/functions.rst:1428 +#: ../Doc/library/functions.rst:1441 msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" msgstr "" "Une méthode statique ne reçoit pas de premier argument implicitement. Voilà " -"comment déclarer une méthode statique : ::" +"comment déclarer une méthode statique ::" -#: ../Doc/library/functions.rst:1435 +#: ../Doc/library/functions.rst:1448 msgid "" -"The ``@staticmethod`` form is a function :term:`decorator` -- see the " -"description of function definitions in :ref:`function` for details." +"The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" +"`function` for details." msgstr "" -"La forme ``@staticmethod`` est un :term:`decorator` de fonction. Voir la " -"description des définitions de fonction dans :ref:`function` pour plus de " -"détails." +"La forme ``@staticmethod`` est un :term:`decorator` de fonction. Consultez :" +"ref:`function` pour plus de détails." -#: ../Doc/library/functions.rst:1438 +#: ../Doc/library/functions.rst:1451 msgid "" -"It can be called either on the class (such as ``C.f()``) or on an instance " -"(such as ``C().f()``). The instance is ignored except for its class." +"A static method can be called either on the class (such as ``C.f()``) or on " +"an instance (such as ``C().f()``)." msgstr "" "Elle peut être appelée soit sur une classe (tel que ``C.f()``) ou sur une " -"instance (tel que ``C().f()``). L'instance est ignorée, sauf pour sa classe." +"instance (tel que ``C().f()``)." -#: ../Doc/library/functions.rst:1441 +#: ../Doc/library/functions.rst:1454 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 " @@ -2608,7 +2633,7 @@ msgstr "" "ou en C++. Consultez :func:`classmethod` pour une variante utile pour créer " "des constructeurs alternatifs." -#: ../Doc/library/functions.rst:1445 +#: ../Doc/library/functions.rst:1458 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 " @@ -2622,22 +2647,19 @@ 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:1454 -msgid "" -"For more information on static methods, consult the documentation on the " -"standard type hierarchy in :ref:`types`." +#: ../Doc/library/functions.rst:1467 +msgid "For more information on static methods, see :ref:`types`." msgstr "" -"Pour plus d'informations sur les méthodes statiques, consultez la " -"documentation de la hiérarchie des types standards dans :ref:`types`." +"Pour plus d'informations sur les méthodes statiques, consultez :ref:`types`." -#: ../Doc/library/functions.rst:1466 +#: ../Doc/library/functions.rst:1478 msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" "Donne une version sous forme de :class:`str` d'*object*. Voir :func:`str` " "pour plus de détails." -#: ../Doc/library/functions.rst:1468 +#: ../Doc/library/functions.rst:1480 msgid "" "``str`` is the built-in string :term:`class`. For general information about " "strings, see :ref:`textseq`." @@ -2645,7 +2667,7 @@ msgstr "" "``str`` est la :term:`class` native des chaînes de caractères. Pour des " "informations générales à propos des chaînes, consultez :ref:`textseq`." -#: ../Doc/library/functions.rst:1474 +#: ../Doc/library/functions.rst:1486 msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " "the total. *start* defaults to ``0``. The *iterable*'s items are normally " @@ -2656,7 +2678,7 @@ msgstr "" "sont normalement des nombres, et la valeur de *start* ne peut pas être une " "chaîne." -#: ../Doc/library/functions.rst:1478 +#: ../Doc/library/functions.rst:1490 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 ``''." @@ -2670,7 +2692,7 @@ msgstr "" "meilleure précision, voir :func:`math.fsum`. Pour concaténer une série " "d'itérables, utilisez plutôt :func:`itertools.chain`." -#: ../Doc/library/functions.rst:1486 +#: ../Doc/library/functions.rst:1498 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 " @@ -2683,7 +2705,7 @@ msgstr "" "recherche est le même que celui utilisé par :func:`getattr` sauf que *type* " "lui même est sauté." -#: ../Doc/library/functions.rst:1491 +#: ../Doc/library/functions.rst:1503 msgid "" "The :attr:`~class.__mro__` attribute of the *type* lists the method " "resolution search order used by both :func:`getattr` and :func:`super`. The " @@ -2695,7 +2717,7 @@ msgstr "" "L'attribut est dynamique et peut changer lorsque la hiérarchie d'héritage " "est modifiée." -#: ../Doc/library/functions.rst:1496 +#: ../Doc/library/functions.rst:1508 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. " @@ -2707,7 +2729,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:1501 +#: ../Doc/library/functions.rst:1513 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 " @@ -2720,7 +2742,7 @@ msgstr "" "maintenable. Cet usage se rapproche de l'usage de *super* dans d'autres " "langages de programmation." -#: ../Doc/library/functions.rst:1506 +#: ../Doc/library/functions.rst:1518 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 " @@ -2743,12 +2765,12 @@ msgstr "" "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:1516 +#: ../Doc/library/functions.rst:1528 msgid "For both use cases, a typical superclass call looks like this::" msgstr "" -"Dans tous les cas, un appel typique à une classe parente ressemble à : ::" +"Dans tous les cas, un appel typique à une classe parente ressemble à ::" -#: ../Doc/library/functions.rst:1523 +#: ../Doc/library/functions.rst:1535 msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -2765,7 +2787,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:1530 +#: ../Doc/library/functions.rst:1542 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 " @@ -2782,7 +2804,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:1537 +#: ../Doc/library/functions.rst:1549 msgid "" "For practical suggestions on how to design cooperative classes using :func:" "`super`, see `guide to using super() `_." -#: ../Doc/library/functions.rst:1546 +#: ../Doc/library/functions.rst:1558 msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." @@ -2800,7 +2822,7 @@ msgstr "" "Plutôt qu'être une fonction, :class:`tuple` est en fait un type de séquence " "immuable, tel que documenté dans :ref:`typesseq-tuple` et :ref:`typesseq`." -#: ../Doc/library/functions.rst:1555 +#: ../Doc/library/functions.rst:1567 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." @@ -2810,7 +2832,7 @@ msgstr "" "type et généralement la même que la valeur de l'attribut :attr:`object." "__class__ `." -#: ../Doc/library/functions.rst:1559 +#: ../Doc/library/functions.rst:1571 msgid "" "The :func:`isinstance` built-in function is recommended for testing the type " "of an object, because it takes subclasses into account." @@ -2818,7 +2840,7 @@ msgstr "" "La fonction native :func:`isinstance` est recommandée pour tester le type " "d'un objet car elle prend en compte l'héritage." -#: ../Doc/library/functions.rst:1563 +#: ../Doc/library/functions.rst:1575 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 " @@ -2833,17 +2855,17 @@ msgstr "" "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:" -"`~class.__bases__` ; et le dictionnaire *dict* est l'espace de noms " +"`~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 " +"dictionnaire standard pour devenir l'attribut :attr:`~object.__dict__`. Par " "exemple, les deux instructions suivantes créent deux instances identiques " -"de :class:`type`." +"de :class:`type` :" -#: ../Doc/library/functions.rst:1577 +#: ../Doc/library/functions.rst:1589 msgid "See also :ref:`bltin-type-objects`." msgstr "Voir aussi :ref:`bltin-type-objects`." -#: ../Doc/library/functions.rst:1579 +#: ../Doc/library/functions.rst:1591 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." @@ -2852,7 +2874,7 @@ msgstr "" "ne devraient plus utiliser la forme à un argument pour récupérer le type " "d'un objet." -#: ../Doc/library/functions.rst:1585 +#: ../Doc/library/functions.rst:1597 msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance, " "or any other object with a :attr:`~object.__dict__` attribute." @@ -2861,7 +2883,7 @@ msgstr "" "instance ou de n'importe quel objet avec un attribut :attr:`~object." "__dict__`." -#: ../Doc/library/functions.rst:1588 +#: ../Doc/library/functions.rst:1600 msgid "" "Objects such as modules and instances have an updateable :attr:`~object." "__dict__` attribute; however, other objects may have write restrictions on " @@ -2874,21 +2896,21 @@ msgstr "" "exemple, les classes utilisent un :class:`types.MappingProxyType` pour " "éviter les modifications directes du dictionnaire)." -#: ../Doc/library/functions.rst:1593 +#: ../Doc/library/functions.rst:1605 msgid "" "Without an argument, :func:`vars` acts like :func:`locals`. Note, the " "locals dictionary is only useful for reads since updates to the locals " "dictionary are ignored." msgstr "" -"Sans augment, :func:`vars` se comporte comme :func:`locals`. Notez que le " +"Sans argument, :func:`vars` se comporte comme :func:`locals`. Notez que le " "dictionnaire des variables locales n'est utile qu'en lecture, car ses " "écritures sont ignorées." -#: ../Doc/library/functions.rst:1600 +#: ../Doc/library/functions.rst:1612 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:1602 +#: ../Doc/library/functions.rst:1614 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 " @@ -2900,9 +2922,9 @@ msgstr "" "é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 à : ::" +"arguments, elle donne un itérateur vide. Équivalent à ::" -#: ../Doc/library/functions.rst:1621 +#: ../Doc/library/functions.rst:1633 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 " @@ -2916,7 +2938,7 @@ msgstr "" "que le tuple obtenu contient le résultat de ``n`` appels à l'itérateur. Cela " "a pour effet de diviser la séquence en morceaux de taille *n*." -#: ../Doc/library/functions.rst:1627 +#: ../Doc/library/functions.rst:1639 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 " @@ -2927,15 +2949,15 @@ msgstr "" "peuvent être ignorées. Si c'est valeurs sont importantes, utilisez plutôt :" "func:`itertools.zip_longest`." -#: ../Doc/library/functions.rst:1631 +#: ../Doc/library/functions.rst:1643 msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" msgstr "" ":func:`zip` peut être utilisée conjointement avec l'opérateur ``*`` pour " -"dézipper une liste : ::" +"dézipper une liste ::" -#: ../Doc/library/functions.rst:1652 +#: ../Doc/library/functions.rst:1664 msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." @@ -2943,27 +2965,27 @@ msgstr "" "C'est une fonction avancée qui n'est pas fréquemment nécessaire, " "contrairement à :func:`importlib.import_module`." -#: ../Doc/library/functions.rst:1655 +#: ../Doc/library/functions.rst:1667 msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " -"``builtins.__import__``) in order to change semantics of the :keyword:" -"`import` statement, but doing so is **strongly** discouraged as it is " -"usually simpler to use import hooks (see :pep:`302`) to attain the same " -"goals and does not cause issues with code which assumes the default import " +"``builtins.__import__``) in order to change semantics of the :keyword:`!" +"import` statement, but doing so is **strongly** discouraged as it is usually " +"simpler to use import hooks (see :pep:`302`) to attain the same goals and " +"does not cause issues with code which assumes the default import " "implementation is in use. Direct use of :func:`__import__` is also " "discouraged in favor of :func:`importlib.import_module`." 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 *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:1664 +#: ../Doc/library/functions.rst:1676 msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " @@ -2979,7 +3001,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:1671 +#: ../Doc/library/functions.rst:1683 msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -2987,12 +3009,12 @@ msgid "" "directory of the module calling :func:`__import__` (see :pep:`328` for the " "details)." msgstr "" -"*level* permet de choisir entre import absolu ou relatif. ``0`` (par défaut) " -"implique de n'effectuer que des imports absolus. Une valeur positive indique " -"le nombre de dossiers parents relativement au dossier du module appelant :" -"func:`__import__` (voir la :pep:`328`)." +"*level* permet de choisir entre importation absolue ou relative. ``0`` (par " +"défaut) implique de n'effectuer que des importations absolues. Une valeur " +"positive indique le nombre de dossiers parents relativement au dossier du " +"module appelant :func:`__import__` (voir la :pep:`328`)." -#: ../Doc/library/functions.rst:1677 +#: ../Doc/library/functions.rst:1689 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 " @@ -3004,19 +3026,19 @@ msgstr "" "le module nommé par *name*. Cependant, lorsqu'un argument *fromlist* est " "fourni, le module nommé par *name* est donné." -#: ../Doc/library/functions.rst:1682 +#: ../Doc/library/functions.rst:1694 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 " -"(*bytecode* en anglais) ressemblant au code suivant : ::" +"(*bytecode* en anglais) ressemblant au code suivant ::" -#: ../Doc/library/functions.rst:1687 +#: ../Doc/library/functions.rst:1699 msgid "The statement ``import spam.ham`` results in this call::" -msgstr "L'instruction ``import ham.ham`` appelle : ::" +msgstr "L'instruction ``import ham.ham`` appelle ::" -#: ../Doc/library/functions.rst:1691 +#: ../Doc/library/functions.rst:1703 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." @@ -3024,15 +3046,15 @@ 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`." -#: ../Doc/library/functions.rst:1694 +#: ../Doc/library/functions.rst:1706 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`` " -"donne : ::" +"En revanche, l'instruction ``from spam.ham import eggs, sausage as saus`` " +"donne ::" -#: ../Doc/library/functions.rst:1701 +#: ../Doc/library/functions.rst:1713 msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " @@ -3041,7 +3063,7 @@ msgstr "" "Ici le module ``spam.ham`` est donné par :func:`__import__`. De cet objet, " "les noms à importer sont récupérés et assignés à leurs noms respectifs." -#: ../Doc/library/functions.rst:1705 +#: ../Doc/library/functions.rst:1717 msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." @@ -3049,7 +3071,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:1708 +#: ../Doc/library/functions.rst:1720 msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." @@ -3057,11 +3079,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:1714 +#: ../Doc/library/functions.rst:1726 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/functions.rst:1715 +#: ../Doc/library/functions.rst:1727 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 " @@ -3071,6 +3093,23 @@ msgstr "" "lisez le code depuis un fichier, assurez-vous d'utiliser la conversion de " "retours à la ligne pour convertir les fin de lignes Windows et Mac." +#~ msgid "``'U'``" +#~ msgstr "``'U'``" + +#~ msgid ":term:`universal newlines` mode (deprecated)" +#~ msgstr "mode :term:`universal newlines` (obsolète)" + +#~ msgid "" +#~ "One useful application of the second form of :func:`iter` is to read " +#~ "lines of a file until a certain line is reached. The following example " +#~ "reads a file until the :meth:`~io.TextIOBase.readline` method returns an " +#~ "empty string::" +#~ msgstr "" +#~ "Une autre application utile de la deuxième forme de :func:`iter` est de " +#~ "lire les lignes d'un fichier jusqu'à ce qu'un certaine ligne soit " +#~ "atteinte. L'exemple suivant lis un fichier jusqu'à ce que :meth:`~io." +#~ "TextIOBase.readline` donne une ligne vide ::" + #~ msgid "" #~ "Deprecated since version 3.4, will be removed in version 4.0: The 'U' " #~ "mode." diff --git a/library/functools.po b/library/functools.po index 7988bc94b..080f4db19 100644 --- a/library/functools.po +++ b/library/functools.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-09-29 15:53+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2019-02-21 17:51+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -71,7 +71,7 @@ msgstr "" "un appelable qui prend un argument et retourne une autre valeur qui sera " "utilisée comme clé de tri." -#: ../Doc/library/functools.rst:37 ../Doc/library/functools.rst:225 +#: ../Doc/library/functools.rst:37 ../Doc/library/functools.rst:231 msgid "Example::" msgstr "Exemple ::" @@ -181,10 +181,23 @@ msgstr "" "limite sur les processus longs comme les serveurs web." #: ../Doc/library/functools.rst:88 +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 " +"functions with side-effects, functions that need to create distinct mutable " +"objects on each call, or impure functions such as time() or random()." +msgstr "" +"En général, le cache LRU ne doit être utilisé que quand vous voulez ré-" +"utiliser les valeurs déjà calculées. Ainsi, cela n'a pas de sens de mettre " +"un cache sur une fonction qui a des effets de bord, qui doit créer un objet " +"mutable distinct à chaque appel ou des fonctions *impures* telles que ``!" +"time()`` ou ``!random()``." + +#: ../Doc/library/functools.rst:93 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:107 +#: ../Doc/library/functools.rst:112 msgid "" "Example of efficiently computing `Fibonacci numbers `_ using a cache to implement a `dynamic " @@ -195,11 +208,11 @@ msgstr "" "technique de `programmation dynamique `_ ::" -#: ../Doc/library/functools.rst:127 +#: ../Doc/library/functools.rst:132 msgid "Added the *typed* option." msgstr "L'option *typed* a été ajoutée." -#: ../Doc/library/functools.rst:132 +#: ../Doc/library/functools.rst:137 msgid "" "Given a class defining one or more rich comparison ordering methods, this " "class decorator supplies the rest. This simplifies the effort involved in " @@ -209,7 +222,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:136 +#: ../Doc/library/functools.rst:141 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__` " @@ -219,11 +232,11 @@ msgstr "" "`__le__`, :meth:`__gt__`, or :meth:`__ge__`. De plus, la classe doit fournir " "une méthode :meth:`__eq__`." -#: ../Doc/library/functools.rst:140 +#: ../Doc/library/functools.rst:145 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/functools.rst:160 +#: ../Doc/library/functools.rst:165 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 " @@ -238,7 +251,7 @@ msgstr "" "méthodes de comparaison riches résoudra normalement vos problèmes de " "rapidité." -#: ../Doc/library/functools.rst:169 +#: ../Doc/library/functools.rst:174 msgid "" "Returning NotImplemented from the underlying comparison function for " "unrecognised types is now supported." @@ -246,21 +259,21 @@ msgstr "" "Retourner NotImplemented dans les fonction de comparaison sous-jacentes pour " "les types non reconnus est maintenant supporté." -#: ../Doc/library/functools.rst:175 +#: ../Doc/library/functools.rst:180 msgid "" -"Return a new :class:`partial` object which when called will behave like " -"*func* called with the positional arguments *args* and keyword arguments " -"*keywords*. If more arguments are supplied to the call, they are appended to " -"*args*. If additional keyword arguments are supplied, they extend and " -"override *keywords*. Roughly equivalent to::" +"Return a new :ref:`partial object` which when called will " +"behave like *func* called with the positional arguments *args* and keyword " +"arguments *keywords*. If more arguments are supplied to the call, they are " +"appended to *args*. If additional keyword arguments are supplied, they " +"extend and override *keywords*. Roughly equivalent to::" msgstr "" -"Retourne un nouvel objet :class:`partial` qui, quand il est appelé, " -"fonctionne comme *func* appelée avec les arguments positionnels *args* et " -"les arguments nommés *keywords*. Si plus d'arguments sont fournis à l'appel, " -"ils sont ajoutés à *args*. Si plus d'arguments nommés sont fournis, ils " -"étendent et surchargent *keywords*. A peu près équivalent à ::" +"Retourne un nouvel :ref:`objet partiel ` qui, quand il est " +"appelé, fonctionne comme *func* appelée avec les arguments positionnels " +"*args* et les arguments nommés *keywords*. Si plus d'arguments sont fournis " +"à l'appel, ils sont ajoutés à *args*. Si plus d'arguments nommés sont " +"fournis, ils étendent et surchargent *keywords*. À peu près équivalent à ::" -#: ../Doc/library/functools.rst:191 +#: ../Doc/library/functools.rst:197 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 " @@ -274,7 +287,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:206 +#: ../Doc/library/functools.rst:212 msgid "" "Return a new :class:`partialmethod` descriptor which behaves like :class:" "`partial` except that it is designed to be used as a method definition " @@ -284,7 +297,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:210 +#: ../Doc/library/functools.rst:216 msgid "" "*func* must be a :term:`descriptor` or a callable (objects which are both, " "like normal functions, are handled as descriptors)." @@ -292,21 +305,21 @@ 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:213 +#: ../Doc/library/functools.rst:219 msgid "" "When *func* is a descriptor (such as a normal Python function, :func:" "`classmethod`, :func:`staticmethod`, :func:`abstractmethod` or another " "instance of :class:`partialmethod`), calls to ``__get__`` are delegated to " -"the underlying descriptor, and an appropriate :class:`partial` object " -"returned as the result." +"the underlying descriptor, and an appropriate :ref:`partial object` returned as the result." msgstr "" "Quand *func* est un descripteur (comme une fonction Python normale, :func:" "`classmethod`, :func:`staticmethod`, :func:`abstractmethod` ou une autre " "instance de :class:`partialmethod`), les appels à ``__get__`` sont délégués " -"au descripteur sous-jacent, et un objet :class:`partial` approprié est " -"retourné comme résultat." +"au descripteur sous-jacent, et un :ref:`objet partiel ` " +"approprié est renvoyé comme résultat." -#: ../Doc/library/functools.rst:219 +#: ../Doc/library/functools.rst:225 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 " @@ -320,7 +333,7 @@ msgstr "" "premier argument positionnel, avant les *args* et *keywords* fournis au " "constructeur :class:`partialmethod`." -#: ../Doc/library/functools.rst:250 +#: ../Doc/library/functools.rst:256 msgid "" "Apply *function* of two arguments cumulatively to the items of *sequence*, " "from left to right, so as to reduce the sequence to a single value. For " @@ -342,11 +355,11 @@ msgstr "" "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é." -#: ../Doc/library/functools.rst:259 +#: ../Doc/library/functools.rst:265 msgid "Roughly equivalent to::" -msgstr "Sensiblement équivalent à : ::" +msgstr "Sensiblement équivalent à ::" -#: ../Doc/library/functools.rst:274 +#: ../Doc/library/functools.rst:280 msgid "" "Transform a function into a :term:`single-dispatch ` :term:" "`generic function`." @@ -354,7 +367,7 @@ msgstr "" "Transforme une fonction en une :term:`fonction générique ` :term:`single-dispatch `." -#: ../Doc/library/functools.rst:277 +#: ../Doc/library/functools.rst:283 msgid "" "To define a generic function, decorate it with the ``@singledispatch`` " "decorator. Note that the dispatch happens on the type of the first argument, " @@ -364,7 +377,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:288 +#: ../Doc/library/functools.rst:294 msgid "" "To add overloaded implementations to the function, use the :func:`register` " "attribute of the generic function. It is a decorator. For functions " @@ -374,25 +387,25 @@ msgstr "" "Pour ajouter des surcharges d'implémentation à la fonction, utiliser " "l'attribut :func:`register` de la fonction générique. C'est un décorateur. " "Pour les fonctions annotées avec des types, le décorateur infère le type du " -"premier argument automatiquement : ::" +"premier argument automatiquement ::" -#: ../Doc/library/functools.rst:306 +#: ../Doc/library/functools.rst:312 msgid "" "For code which doesn't use type annotations, the appropriate type argument " "can be passed explicitly to the decorator itself::" msgstr "" "Pour le code qui n’utilise pas les indications de type, le type souhaité " -"peut être passé explicitement en argument au décorateur : ::" +"peut être passé explicitement en argument au décorateur ::" -#: ../Doc/library/functools.rst:317 +#: ../Doc/library/functools.rst:323 msgid "" "To enable registering lambdas and pre-existing functions, the :func:" "`register` attribute can be used in a functional form::" msgstr "" -"Pour permettre l'enregistrement de lambdas et de fonctions pré-existantes, " +"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:325 +#: ../Doc/library/functools.rst:331 msgid "" "The :func:`register` attribute returns the undecorated function which " "enables decorator stacking, pickling, as well as creating unit tests for " @@ -402,7 +415,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:339 +#: ../Doc/library/functools.rst:345 msgid "" "When called, the generic function dispatches on the type of the first " "argument::" @@ -410,7 +423,7 @@ msgstr "" "Quand elle est appelée, la fonction générique distribue sur le type du " "premier argument ::" -#: ../Doc/library/functools.rst:359 +#: ../Doc/library/functools.rst:365 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 " @@ -423,7 +436,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:365 +#: ../Doc/library/functools.rst:371 msgid "" "To check which implementation will the generic function choose for a given " "type, use the ``dispatch()`` attribute::" @@ -431,7 +444,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:373 +#: ../Doc/library/functools.rst:379 msgid "" "To access all registered implementations, use the read-only ``registry`` " "attribute::" @@ -439,12 +452,12 @@ msgstr "" "Pour accéder à toutes les implémentations enregistrées, utiliser l'attribut " "en lecture seule ``registry`` ::" -#: ../Doc/library/functools.rst:387 +#: ../Doc/library/functools.rst:393 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:393 +#: ../Doc/library/functools.rst:399 msgid "" "Update a *wrapper* function to look like the *wrapped* function. The " "optional arguments are tuples to specify which attributes of the original " @@ -463,13 +476,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:403 +#: ../Doc/library/functools.rst:409 msgid "" "To allow access to the original function for introspection and other " "purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " @@ -481,7 +494,7 @@ msgstr "" "func:`lru_cache`), cette fonction ajoute automatiquement un attribut " "``__wrapped__`` qui référence la fonction englobée." -#: ../Doc/library/functools.rst:408 +#: ../Doc/library/functools.rst:414 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 " @@ -491,11 +504,11 @@ msgid "" msgstr "" "La principale utilisation de cette fonction est dans les :term:`décorateurs " "` qui renvoient une nouvelle fonction. Si la fonction crée n'est " -"pas mise à jour, ses métadonnées reflèteront sa définition dans le " +"pas mise à jour, ses métadonnées refléteront sa définition dans le " "décorateur, au lieu de la définition originale, métadonnées souvent bien " "moins utiles." -#: ../Doc/library/functools.rst:414 +#: ../Doc/library/functools.rst:420 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 " @@ -504,25 +517,25 @@ msgid "" "wrapper function itself is missing any attributes named in *updated*." msgstr "" ":func:`update_wrapper` peut être utilisé avec des appelables autres que des " -"fonction. Tout attribut défini dans *assigned* ou *updated* qui ne sont pas " +"fonctions. Tout attribut défini dans *assigned* ou *updated* qui ne sont pas " "l'objet englobé sont ignorés (cette fonction n'essaiera pas de les définir " "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:420 +#: ../Doc/library/functools.rst:426 msgid "Automatic addition of the ``__wrapped__`` attribute." msgstr "Ajout automatique de l'attribut ``__wrapped__``." -#: ../Doc/library/functools.rst:423 +#: ../Doc/library/functools.rst:429 msgid "Copying of the ``__annotations__`` attribute by default." msgstr "Copie de l'attribut ``__annotations__`` par défaut." -#: ../Doc/library/functools.rst:426 +#: ../Doc/library/functools.rst:432 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:429 +#: ../Doc/library/functools.rst:435 msgid "" "The ``__wrapped__`` attribute now always refers to the wrapped function, " "even if that function defined a ``__wrapped__`` attribute. (see :issue:" @@ -531,7 +544,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:437 +#: ../Doc/library/functools.rst:443 msgid "" "This is a convenience function for invoking :func:`update_wrapper` as a " "function decorator when defining a wrapper function. It is equivalent to " @@ -543,7 +556,7 @@ msgstr "" "C'est équivalent à ``partial(update_wrapper, wrapped=wrapped, " "assigned=assigned, updated=updated)``. Par exemple ::" -#: ../Doc/library/functools.rst:463 +#: ../Doc/library/functools.rst:469 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:" @@ -553,11 +566,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:471 +#: ../Doc/library/functools.rst:477 msgid ":class:`partial` Objects" msgstr "Objets :class:`partial`" -#: ../Doc/library/functools.rst:473 +#: ../Doc/library/functools.rst:479 msgid "" ":class:`partial` objects are callable objects created by :func:`partial`. " "They have three read-only attributes:" @@ -565,7 +578,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:479 +#: ../Doc/library/functools.rst:485 msgid "" "A callable object or function. Calls to the :class:`partial` object will be " "forwarded to :attr:`func` with new arguments and keywords." @@ -573,7 +586,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:485 +#: ../Doc/library/functools.rst:491 msgid "" "The leftmost positional arguments that will be prepended to the positional " "arguments provided to a :class:`partial` object call." @@ -581,7 +594,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:491 +#: ../Doc/library/functools.rst:497 msgid "" "The keyword arguments that will be supplied when the :class:`partial` object " "is called." @@ -589,7 +602,7 @@ msgstr "" "Les arguments nommés qui seront fournis quand l'objet :class:`partial` est " "appelé." -#: ../Doc/library/functools.rst:494 +#: ../Doc/library/functools.rst:500 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/getopt.po b/library/getopt.po index 934b4c838..cfd98267a 100644 --- a/library/getopt.po +++ b/library/getopt.po @@ -6,17 +6,19 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-09 17:26+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.4\n" #: ../Doc/library/getopt.rst:2 msgid ":mod:`getopt` --- C-style parser for command line options" msgstr "" +":mod:`getopt` – Analyseur de style C pour les options de ligne de commande" #: ../Doc/library/getopt.rst:8 msgid "**Source code:** :source:`Lib/getopt.py`" @@ -30,6 +32,12 @@ msgid "" "write less code and get better help and error messages should consider using " "the :mod:`argparse` module instead." msgstr "" +"Le module :mod:`getopt` est un analyseur pour les options de ligne de " +"commande dont l’API est conçue pour être familière aux utilisateurs de la " +"fonction C :c:func:`getopt`. Les utilisateurs qui ne connaissent pas la " +"fonction :c:func:`getopt` ou qui aimeraient écrire moins de code, obtenir " +"une meilleure aide et de meilleurs messages d’erreur devraient utiliser le " +"module :mod:`argparse`." #: ../Doc/library/getopt.rst:20 msgid "" @@ -39,10 +47,16 @@ msgid "" "and '``--``'). Long options similar to those supported by GNU software may " "be used as well via an optional third argument." msgstr "" +"Ce module aide les scripts à analyser les arguments de ligne de commande " +"contenus dans ``sys.argv``. Il prend en charge les mêmes conventions que la " +"fonction UNIX :c:func:`getopt` (y compris les significations spéciales des " +"arguments de la forme ``-`` et ``--``). De longues options similaires à " +"celles prises en charge par le logiciel GNU peuvent également être utilisées " +"via un troisième argument facultatif." #: ../Doc/library/getopt.rst:26 msgid "This module provides two functions and an exception:" -msgstr "" +msgstr "Ce module fournit deux fonctions et une exception :" #: ../Doc/library/getopt.rst:32 msgid "" @@ -53,6 +67,14 @@ msgid "" "argument followed by a colon (``':'``; i.e., the same format that Unix :c:" "func:`getopt` uses)." msgstr "" +"Analyse les options de ligne de commande et la liste des paramètres. *args* " +"est la liste d’arguments à analyser, sans la référence principale au " +"programme en cours d’exécution. En général, cela signifie ``sys.argv[1:]`` " +"(donc que le premier argument contenant le nom du programme n’est pas dans " +"la liste). *shortopts* est la chaîne de lettres d’options que le script doit " +"reconnaître, avec des options qui requièrent un argument suivi d’un signe " +"deux-points (``:``, donc le même format que la version Unix de :c:func:" +"`getopt` utilise)." #: ../Doc/library/getopt.rst:40 msgid "" @@ -60,6 +82,9 @@ msgid "" "arguments are considered also non-options. This is similar to the way non-" "GNU Unix systems work." msgstr "" +"Contrairement au :c:func:`getopt` GNU, après un argument n'appartenant pas à " +"une option, aucun argument ne sera considéré comme appartenant à une option. " +"Ceci est similaire à la façon dont les systèmes UNIX non-GNU fonctionnent." #: ../Doc/library/getopt.rst:44 msgid "" @@ -74,6 +99,17 @@ msgid "" "option ``--fo`` will match as ``--foo``, but ``--f`` will not match " "uniquely, so :exc:`GetoptError` will be raised." msgstr "" +"*longopts*, si spécifié, doit être une liste de chaînes avec les noms des " +"options longues qui doivent être prises en charge. Le premier ``'--'`` ne " +"dois pas figurer dans le nom de l’option. Les options longues qui requièrent " +"un argument doivent être suivies d’un signe égal (``'='``). Les arguments " +"facultatifs ne sont pas pris en charge. Pour accepter uniquement les options " +"longues, *shortopts* doit être une chaîne vide. Les options longues sur la " +"ligne de commande peuvent être reconnues tant qu’elles fournissent un " +"préfixe du nom de l’option qui correspond exactement à l’une des options " +"acceptées. Par exemple, si *longopts* est ``['foo', 'frob']``, l’option ``--" +"fo`` correspondra à ``--foo``, mais ``--f`` ne correspondra pas de façon " +"unique, donc :exc:`GetoptError` sera levé." #: ../Doc/library/getopt.rst:55 msgid "" @@ -87,6 +123,17 @@ msgid "" "list in the same order in which they were found, thus allowing multiple " "occurrences. Long and short options may be mixed." msgstr "" +"La valeur de retour se compose de deux éléments : le premier est une liste " +"de paires ``(option, value)``, la deuxième est la liste des arguments de " +"programme laissés après que la liste d’options est été dépouillée (il s’agit " +"d’une tranche de fin de *args*). Chaque paire option-valeur retournée a " +"l’option comme premier élément, préfixée avec un trait d'union pour les " +"options courtes (par exemple, ``'-x'``) ou deux tirets pour les options " +"longues (par exemple, ``'--long-option'``), et l’argument option comme " +"deuxième élément, ou une chaîne vide si le option n’a aucun argument. Les " +"options se trouvent dans la liste dans l’ordre dans lequel elles ont été " +"trouvées, permettant ainsi plusieurs occurrences. Les options longues et " +"courtes peuvent être mélangées." #: ../Doc/library/getopt.rst:68 msgid "" @@ -95,6 +142,10 @@ msgid "" "intermixed. The :func:`getopt` function stops processing options as soon as " "a non-option argument is encountered." msgstr "" +"Cette fonction fonctionne comme :func:`getopt`, sauf que le mode de *scan* " +"GNU est utilisé par défaut. Cela signifie que les arguments option et non-" +"option peuvent être **intermixés**. La fonction :func:`getopt` arrête le " +"traitement des options dès qu’un argument de non-option est rencontré." #: ../Doc/library/getopt.rst:73 msgid "" @@ -102,6 +153,9 @@ msgid "" "environment variable :envvar:`POSIXLY_CORRECT` is set, then option " "processing stops as soon as a non-option argument is encountered." msgstr "" +"Si le premier caractère de la chaîne d’options est ``+``, ou si la variable " +"d’environnement :envvar:`POSIXLY_CORRECT` est définie, le traitement des " +"options s’arrête dès qu’un argument non-option est rencontré." #: ../Doc/library/getopt.rst:80 msgid "" @@ -113,22 +167,30 @@ msgid "" "give the error message and related option; if there is no specific option to " "which the exception relates, :attr:`opt` is an empty string." msgstr "" +"Cette exception est levée lorsqu’une option non reconnue est trouvée dans la " +"liste d’arguments ou lorsqu’une option nécessitant un argument n’en a pas " +"reçu. L’argument de l’exception est une chaîne de caractères indiquant la " +"cause de l’erreur. Pour les options longues, un argument donné à une option " +"qui n’en exige pas un entraîne également le levage de cette exception. Les " +"attributs :attr:`msg` et :attr:`opt` donnent le message d’erreur et l’option " +"connexe. S’il n’existe aucune option spécifique à laquelle l’exception se " +"rapporte, :attr:`opt` est une chaîne vide." #: ../Doc/library/getopt.rst:91 msgid "Alias for :exc:`GetoptError`; for backward compatibility." -msgstr "" +msgstr "Alias pour :exc:`GetoptError` ; pour la rétrocompatibilité." #: ../Doc/library/getopt.rst:93 msgid "An example using only Unix style options:" -msgstr "" +msgstr "Un exemple utilisant uniquement les options de style UNIX :" #: ../Doc/library/getopt.rst:105 msgid "Using long option names is equally easy:" -msgstr "" +msgstr "L’utilisation de noms d’options longs est tout aussi simple :" #: ../Doc/library/getopt.rst:118 msgid "In a script, typical usage is something like this::" -msgstr "" +msgstr "Dans un script, l’utilisation typique ressemble à ceci ::" #: ../Doc/library/getopt.rst:147 msgid "" @@ -136,11 +198,16 @@ msgid "" "code and more informative help and error messages by using the :mod:" "`argparse` module::" msgstr "" +"Notez qu’une interface de ligne de commande équivalente peut être produite " +"avec moins de code et des messages d’erreur et d’aide plus informatifs à " +"l’aide du module :mod:`argparse` module ::" #: ../Doc/library/getopt.rst:162 msgid "Module :mod:`argparse`" -msgstr "" +msgstr "Module :mod:`argparse`" #: ../Doc/library/getopt.rst:163 msgid "Alternative command line option and argument parsing library." msgstr "" +"Option de ligne de commande alternative et bibliothèque d’analyse " +"d’arguments." diff --git a/library/gettext.po b/library/gettext.po index 9cf56e3cb..05b8e3477 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" -"PO-Revision-Date: 2018-09-28 12:39+0200\n" -"Last-Translator: François Magimel \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 23:30+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.0.3\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/gettext.rst:2 msgid ":mod:`gettext` --- Multilingual internationalization services" -msgstr ":mod:`gettext` --- Services d'internationalisation multilingue" +msgstr ":mod:`gettext` — Services d'internationalisation multilingue" #: ../Doc/library/gettext.rst:10 msgid "**Source code:** :source:`Lib/gettext.py`" @@ -27,20 +27,20 @@ msgstr "**Code source :** :source:`Lib/gettext.py`" msgid "" "The :mod:`gettext` module provides internationalization (I18N) and " "localization (L10N) services for your Python modules and applications. It " -"supports both the GNU ``gettext`` message catalog API and a higher level, " -"class-based API that may be more appropriate for Python files. The " +"supports both the GNU :program:`gettext` message catalog API and a higher " +"level, class-based API that may be more appropriate for Python files. The " "interface described below allows you to write your module and application " "messages in one natural language, and provide a catalog of translated " "messages for running under different natural languages." msgstr "" "Le module :mod:`gettext` fournit un service d'internationalisation (*I18N*) " "et de localisation linguistique (*L10N*) pour vos modules et applications " -"Python. Il est compatible avec l'API du catalogue de messages GNU `gettext` " -"et à un plus haut niveau, avec l'API basée sur les classes qui serait peut-" -"être plus adaptée aux fichiers Python. L'interface décrite ci-dessous vous " -"permet d'écrire les textes de vos modules et applications dans une langue " -"naturelle, puis de fournir un catalogue de traductions pour les lancer " -"ensuite dans d'autres langues naturelles." +"Python. Il est compatible avec l'API du catalogue de messages GNU :program:" +"`gettext` et à un plus haut niveau, avec l'API basée sur les classes qui " +"serait peut-être plus adaptée aux fichiers Python. L'interface décrite ci-" +"dessous vous permet d'écrire les textes de vos modules et applications dans " +"une langue naturelle, puis de fournir un catalogue de traductions pour les " +"lancer ensuite dans d'autres langues naturelles." #: ../Doc/library/gettext.rst:22 msgid "" @@ -75,15 +75,15 @@ msgstr "" msgid "" "Bind the *domain* to the locale directory *localedir*. More concretely, :" "mod:`gettext` will look for binary :file:`.mo` files for the given domain " -"using the path (on Unix): :file:`localedir/language/LC_MESSAGES/domain.mo`, " -"where *languages* is searched for in the environment variables :envvar:" +"using the path (on Unix): :file:`{localedir}/{language}/LC_MESSAGES/{domain}." +"mo`, where *languages* is searched for in the environment variables :envvar:" "`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES`, and :envvar:`LANG` " "respectively." msgstr "" -"Lie *domain* au répertoire *localedir* des localisations. Plus " +"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ù *language* est contenu " +"`{localedir}/{language}/LC_MESSAGES/{domain}.mo`, où *languages* est contenu " "respectivement dans l'une des variables d'environnement suivantes : :envvar:" "`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` et :envvar:`LANG`." @@ -117,7 +117,7 @@ msgstr "" "alors le domaine global actuel est renvoyé. Sinon, le domaine global est " "positionné à *domain*, puis renvoyé." -#: ../Doc/library/gettext.rst:66 +#: ../Doc/library/gettext.rst:67 msgid "" "Return the localized translation of *message*, based on the current global " "domain, language, and locale directory. This function is usually aliased " @@ -128,13 +128,13 @@ msgstr "" "est typiquement renommée :func:`_` dans le namespace courant (voir les " "exemples ci-dessous)." -#: ../Doc/library/gettext.rst:73 +#: ../Doc/library/gettext.rst:74 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:78 +#: ../Doc/library/gettext.rst:79 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 " @@ -147,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:83 +#: ../Doc/library/gettext.rst:84 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 " @@ -163,13 +163,13 @@ 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:93 +#: ../Doc/library/gettext.rst:94 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:101 +#: ../Doc/library/gettext.rst:102 msgid "" "Equivalent to the corresponding functions without the ``l`` prefix (:func:`." "gettext`, :func:`dgettext`, :func:`ngettext` and :func:`dngettext`), but the " @@ -183,7 +183,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:109 +#: ../Doc/library/gettext.rst:110 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 " @@ -204,7 +204,7 @@ msgstr "" "versions futures de Python à cause de leurs problèmes et limitations " "inhérents." -#: ../Doc/library/gettext.rst:119 +#: ../Doc/library/gettext.rst:120 msgid "" "Note that GNU :program:`gettext` also defines a :func:`dcgettext` method, " "but this was deemed not useful and so it is currently unimplemented." @@ -213,44 +213,44 @@ msgstr "" "elle a été considérée comme inutile et donc actuellement marquée comme non " "implémentée." -#: ../Doc/library/gettext.rst:122 +#: ../Doc/library/gettext.rst:123 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:133 +#: ../Doc/library/gettext.rst:134 msgid "Class-based API" msgstr "API basée sur les classes" -#: ../Doc/library/gettext.rst:135 +#: ../Doc/library/gettext.rst:136 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 " "recommended way of localizing your Python applications and modules. :mod:`!" -"gettext` defines a \"translations\" class which implements the parsing of " -"GNU :file:`.mo` format files, and has methods for returning strings. " -"Instances of this \"translations\" class can also install themselves in the " -"built-in namespace as the function :func:`_`." +"gettext` defines a :class:`GNUTranslations` class which implements the " +"parsing of GNU :file:`.mo` format files, and has methods for returning " +"strings. Instances of this class can also install themselves in the built-in " +"namespace as the function :func:`_`." msgstr "" "L'API du module :mod:`gettext` basée sur les classes vous donne plus de " -"flexibilité et est plus pratique que l'API de GNU :program:`gettext`. Son " +"flexibilité et est plus pratique que l'API de GNU :program:`gettext`. Son " "utilisation est recommandée pour localiser vos applications et modules " -"Python. :mod:`!gettext` définit une classe \"translations\" qui analyse " -"syntaxiquement les fichiers au format GNU :file:`.mo`, et qui possède des " -"méthodes pour renvoyer des chaînes de caractères. Les instances de cette " -"classe \"translations\" peuvent également s'installer dans l'espace de noms " -"natif en tant que fonction :func:`_`." +"Python. :mod:`!gettext` définit une classe :class:`GNUTranslations` qui " +"analyse syntaxiquement les fichiers au format GNU :file:`.mo`, et qui " +"possède des méthodes pour renvoyer des chaînes de caractères. Les instances " +"de cette classe \"translations\" peuvent également s'installer dans l'espace " +"de nommage natif en tant que fonction :func:`_`." #: ../Doc/library/gettext.rst:146 msgid "" "This function implements the standard :file:`.mo` file search algorithm. It " "takes a *domain*, identical to what :func:`textdomain` takes. Optional " -"*localedir* is as in :func:`bindtextdomain` Optional *languages* is a list " +"*localedir* is as in :func:`bindtextdomain`. Optional *languages* is a list " "of strings, where each string is a language code." msgstr "" "Cette fonction implémente l'algorithme standard de recherche de fichier :" -"file:`mo`. Il prend en entrée un *domain*, tout comme la fonction :func:" -"`textdomain`. Le paramètre optionnel *localedir* est le même que celui de :" -"func:`bindtextdomain`. Le paramètre optionnel *langages* est une liste de " +"file:`mo`. Il prend en entrée un *domain*, tout comme la fonction :func:" +"`textdomain`. Le paramètre optionnel *localedir* est le même que celui de :" +"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:151 @@ -299,22 +299,22 @@ msgstr "" #: ../Doc/library/gettext.rst:172 msgid "" -"Return a :class:`Translations` instance based on the *domain*, *localedir*, " +"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 " "associated :file:`.mo` file paths. Instances with identical :file:`.mo` " -"file names are cached. The actual class instantiated is either *class_* if " +"file names are cached. The actual class instantiated is *class_* if " "provided, otherwise :class:`GNUTranslations`. The class's constructor must " "take a single :term:`file object` argument. If provided, *codeset* will " "change the charset used to encode translated strings in the :meth:" "`~NullTranslations.lgettext` and :meth:`~NullTranslations.lngettext` methods." msgstr "" -"Renvoie une instance de la classe :class:`Translations` en se basant sur " +"Renvoie une instance de la classe :class:`*Translations` en se basant sur " "*domain*, *localedir* et *languages*, qui sont d'abord passés en argument " "de :func:`find` afin d'obtenir une liste de chemin des fichiers :file:`.mo` " -"associés. Les instances avec des noms de fichiers :file:`.mo` identiques " -"sont mises en cache. La classe réellement instanciée est soit *class_* si " -"renseigné, soit une classe :class:`GNUTranslations`. Le constructeur de " -"cette classe doit prendre en argument un seul :term:`file object`. Si " +"associés. Les instances avec des noms de fichiers :file:`.mo` identiques " +"sont mises en cache. La classe réellement instanciée est soit *class_* si " +"renseigné, soit une classe :class:`GNUTranslations`. Le constructeur de " +"cette classe doit prendre en argument un seul :term:`file object`. Si " "renseigné, *codeset* modifiera le jeu de caractères utilisé pour encoder les " "chaînes de caractères traduites, dans les méthodes :meth:`~NullTranslations." "lgettext` et :meth:`~NullTranslations.lngettext`." @@ -354,9 +354,9 @@ msgid "" "on *domain*, *localedir*, and *codeset* which are passed to the function :" "func:`translation`." msgstr "" -"Positionne la fonction :func:`_` dans l'espace de noms natif à Python, en se " -"basant sur *domain*, *localedir* et *codeset*, qui sont passés en argument " -"de la fonction :func:`translation`." +"Positionne la fonction :func:`_` dans l'espace de nommage natif de Python, " +"en se basant sur *domain*, *localedir* et *codeset*, qui sont passés en " +"argument de la fonction :func:`translation`." #: ../Doc/library/gettext.rst:201 msgid "" @@ -373,7 +373,7 @@ msgid "" "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:210 msgid "" @@ -382,8 +382,8 @@ msgid "" "application." msgstr "" "Pour plus de confort, il vaut mieux positionner la fonction :func:`_` dans " -"l'espace de noms natif à Python pour la rendre plus accessible dans tous les " -"modules de votre application." +"l'espace de nommage natif de Python pour la rendre plus accessible dans tous " +"les modules de votre application." #: ../Doc/library/gettext.rst:216 msgid "The :class:`NullTranslations` class" @@ -420,7 +420,7 @@ msgstr "" #: ../Doc/library/gettext.rst:235 msgid "" -"No-op'd in the base class, this method takes file object *fp*, and reads the " +"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 " "unsupported message catalog file format, you should override this method to " "parse your format." @@ -470,7 +470,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:271 ../Doc/library/gettext.rst:392 +#: ../Doc/library/gettext.rst:271 ../Doc/library/gettext.rst:393 msgid "" "These methods should be avoided in Python 3. See the warning for the :func:" "`lgettext` function." @@ -479,14 +479,18 @@ msgstr "" "l'avertissement de la fonction :func:`lgettext`." #: ../Doc/library/gettext.rst:277 -msgid "Return the \"protected\" :attr:`_info` variable." -msgstr "Renvoie la variable \"protégée\" :attr:`_info`." +msgid "" +"Return the \"protected\" :attr:`_info` variable, a dictionary containing the " +"metadata found in the message catalog file." +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:282 +#: ../Doc/library/gettext.rst:283 msgid "Return the encoding of the message catalog file." msgstr "Renvoie l'encodage du fichier du catalogue de messages." -#: ../Doc/library/gettext.rst:287 +#: ../Doc/library/gettext.rst:288 msgid "" "Return the encoding used to return translated messages in :meth:`.lgettext` " "and :meth:`.lngettext`." @@ -494,19 +498,19 @@ msgstr "" "Renvoie l'encodage utilisé par :meth:`.lgettext` et :meth:`.lngettext` pour " "la traduction des messages." -#: ../Doc/library/gettext.rst:293 +#: ../Doc/library/gettext.rst:294 msgid "Change the encoding used to return translated messages." msgstr "Modifie l'encodage utilisé pour la traduction des messages." -#: ../Doc/library/gettext.rst:298 +#: ../Doc/library/gettext.rst:299 msgid "" "This method installs :meth:`.gettext` into the built-in namespace, binding " "it to ``_``." msgstr "" -"Cette méthode positionne :meth:`.gettext` dans l'espace de noms natif, en le " -"liant à ``_``." +"Cette méthode positionne :meth:`.gettext` dans l'espace de nommage natif, en " +"le liant à ``_``." -#: ../Doc/library/gettext.rst:301 +#: ../Doc/library/gettext.rst:302 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 " @@ -515,10 +519,10 @@ 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 noms 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'``, ``'lgettext'`` et ``'lngettext'``." -#: ../Doc/library/gettext.rst:306 +#: ../Doc/library/gettext.rst:307 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 " @@ -528,24 +532,24 @@ msgid "" msgstr "" "Notez que ce n'est là qu'un moyen parmi d'autres, quoique le plus pratique, " "pour rendre la fonction :func:`_` accessible à votre application. Puisque " -"cela affecte toute l'application, et plus particulièrement l'espace de noms " -"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 : ::" +"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 ::" -#: ../Doc/library/gettext.rst:316 +#: ../Doc/library/gettext.rst:317 msgid "" "This puts :func:`_` only in the module's global namespace and so only " "affects calls within this module." msgstr "" -"Cela met :func:`_` dans l'espace de noms global du module uniquement et donc " -"n'affectera ses appels que dans ce module." +"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:321 +#: ../Doc/library/gettext.rst:322 msgid "The :class:`GNUTranslations` class" msgstr "La classe :class:`GNUTranslations`" -#: ../Doc/library/gettext.rst:323 +#: ../Doc/library/gettext.rst:324 msgid "" "The :mod:`gettext` module provides one additional class derived from :class:" "`NullTranslations`: :class:`GNUTranslations`. This class overrides :meth:" @@ -557,32 +561,32 @@ 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:328 +#: ../Doc/library/gettext.rst:329 msgid "" -":class:`GNUTranslations` parses optional meta-data out of the translation " -"catalog. It is convention with GNU :program:`gettext` to include meta-data " -"as the translation for the empty string. This meta-data is in :rfc:`822`\\ -" +":class:`GNUTranslations` parses optional metadata out of the translation " +"catalog. It is convention with GNU :program:`gettext` to include metadata as " +"the translation for the empty string. This metadata is in :rfc:`822`\\ -" "style ``key: value`` pairs, and should contain the ``Project-Id-Version`` " "key. If the key ``Content-Type`` is found, then the ``charset`` property is " "used to initialize the \"protected\" :attr:`_charset` instance variable, " "defaulting to ``None`` if not found. If the charset encoding is specified, " "then all message ids and message strings read from the catalog are converted " -"to Unicode using this encoding, else ASCII encoding is assumed." +"to Unicode using this encoding, else ASCII is assumed." msgstr "" ":class:`GNUTranslations` analyse les métadonnées optionnelles du catalogue " -"de traduction. Il est d'usage avec GNU :program:`gettext` d'utiliser une " -"métadonnée pour traduire la chaîne vide. Cette métadonnée est un ensemble " -"de 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 " +"de traduction. Il est d'usage avec GNU :program:`gettext` d'utiliser une " +"métadonnée pour traduire la chaîne vide. Cette métadonnée est un ensemble de " +"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 " +"\" :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:338 +#: ../Doc/library/gettext.rst:339 msgid "" "Since message ids are read as Unicode strings too, all :meth:`*gettext` " "methods will assume message ids as Unicode strings, not byte strings." @@ -591,7 +595,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:341 +#: ../Doc/library/gettext.rst:342 msgid "" "The entire set of key/value pairs are placed into a dictionary and set as " "the \"protected\" :attr:`_info` instance variable." @@ -599,7 +603,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:344 +#: ../Doc/library/gettext.rst:345 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, " @@ -610,14 +614,14 @@ msgstr "" "lecture du fichier, instancier une classe :class:`GNUTranslations` peut " "lever une exception :exc:`OSError`." -#: ../Doc/library/gettext.rst:350 +#: ../Doc/library/gettext.rst:351 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:354 +#: ../Doc/library/gettext.rst:355 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 " @@ -631,7 +635,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:363 +#: ../Doc/library/gettext.rst:364 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 " @@ -642,7 +646,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:367 +#: ../Doc/library/gettext.rst:368 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." @@ -654,11 +658,11 @@ msgstr "" "`~NullTranslations.ngettext` du substitut. Sinon, est renvoyé *singular* " "lorsque *n* vaut 1, *plural* dans tous les autres cas." -#: ../Doc/library/gettext.rst:372 +#: ../Doc/library/gettext.rst:373 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" -#: ../Doc/library/gettext.rst:385 +#: ../Doc/library/gettext.rst:386 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 " @@ -670,11 +674,11 @@ msgstr "" "système si aucun autre n'a été défini avec :meth:`~NullTranslations." "set_output_charset`." -#: ../Doc/library/gettext.rst:397 +#: ../Doc/library/gettext.rst:398 msgid "Solaris message catalog support" msgstr "Support du catalogue de message de Solaris" -#: ../Doc/library/gettext.rst:399 +#: ../Doc/library/gettext.rst:400 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 " @@ -684,20 +688,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:405 +#: ../Doc/library/gettext.rst:406 msgid "The Catalog constructor" msgstr "Le constructeur *Catalog*" -#: ../Doc/library/gettext.rst:409 +#: ../Doc/library/gettext.rst:410 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:417 +#: ../Doc/library/gettext.rst:418 msgid "" "For compatibility with this older module, the function :func:`Catalog` is an " "alias for the :func:`translation` function described above." @@ -705,7 +709,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:420 +#: ../Doc/library/gettext.rst:421 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 " @@ -715,11 +719,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:426 +#: ../Doc/library/gettext.rst:427 msgid "Internationalizing your programs and modules" msgstr "Internationaliser vos programmes et modules" -#: ../Doc/library/gettext.rst:428 +#: ../Doc/library/gettext.rst:429 msgid "" "Internationalization (I18N) refers to the operation by which a program is " "made aware of multiple languages. Localization (L10N) refers to the " @@ -733,33 +737,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:434 +#: ../Doc/library/gettext.rst:435 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:436 +#: ../Doc/library/gettext.rst:437 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:438 -msgid "create language specific translations of the message catalogs" +#: ../Doc/library/gettext.rst:439 +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:440 +#: ../Doc/library/gettext.rst:441 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:442 +#: ../Doc/library/gettext.rst:443 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 " @@ -769,7 +773,7 @@ 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:452 msgid "" @@ -876,12 +880,12 @@ msgstr "Localiser votre module" #: ../Doc/library/gettext.rst:500 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 " -"``gettext`` API but instead the class-based API." +"changes, e.g. to the built-in namespace. You should not use the GNU :program:" +"`gettext` API but instead the class-based API." msgstr "" "Si vous localisez votre module, veillez à ne pas faire de changements " -"globaux, e.g. dans l'espace de nom natif. Vous ne devriez pas utiliser " -"l'API GNU ``gettext`` mais plutôt celle basée sur les classes." +"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:504 msgid "" @@ -893,7 +897,7 @@ 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:515 msgid "Localizing your application" @@ -907,8 +911,8 @@ msgid "" "just use ``_('...')`` without having to explicitly install it in each file." msgstr "" "Si vous localisez votre application, vous pouvez positionner la fonction :" -"func:`_` de manière globale dans l'espace de noms natif, généralement dans " -"le fichier principal de votre application. Cela permettra à tous les " +"func:`_` de manière globale dans l'espace de nommage natif, généralement " +"dans le fichier principal de votre application. Cela permettra à tous les " "fichiers de votre application de n'utiliser que ``_('...')`` sans devoir le " "redéfinir explicitement dans chaque fichier." @@ -918,7 +922,7 @@ msgid "" "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:528 msgid "" @@ -926,7 +930,7 @@ msgid "" "`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:536 msgid "Changing languages on the fly" @@ -940,7 +944,7 @@ 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:559 msgid "Deferred translations" @@ -955,7 +959,7 @@ 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:574 msgid "" @@ -968,7 +972,7 @@ msgstr "" #: ../Doc/library/gettext.rst:578 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:594 msgid "" @@ -981,9 +985,9 @@ msgstr "" "Cela fonctionne car la définition factice de :func:`_` renvoie simplement la " "chaîne de caractères passée en entrée. Et cette définition factice va " "temporairement outrepasser toute autre définition de :func:`_` dans l'espace " -"de noms natif (jusqu'à l'utilisation de la commande :keyword:`del`). " +"de nommage natif (jusqu'à l'utilisation de la commande :keyword:`del`). " "Attention toutefois si vous avez déjà une autre définition de :func:`_` dans " -"l'espace de noms local." +"l'espace de nommage local." #: ../Doc/library/gettext.rst:600 msgid "" @@ -997,7 +1001,7 @@ msgstr "" #: ../Doc/library/gettext.rst:604 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:618 msgid "" @@ -1074,18 +1078,23 @@ 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`. " -"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.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." 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, mais utilise le dossier :file:`sys.prefix/share/" -"locale`. C'est pour cette raison qu'il est toujours préférable d'appeler :" +"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." -#: ../Doc/library/gettext.rst:659 +#: ../Doc/library/gettext.rst:660 msgid "See the footnote for :func:`bindtextdomain` above." msgstr "Voir la note de :func:`bindtextdomain` ci-dessus." + +#~ msgid "Return the \"protected\" :attr:`_info` variable." +#~ msgstr "Renvoie la variable \"protégée\" :attr:`_info`." diff --git a/library/glob.po b/library/glob.po index 428c92256..ca908b616 100644 --- a/library/glob.po +++ b/library/glob.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-09-28 12:40+0200\n" "Last-Translator: Julien VITARD \n" "Language-Team: FRENCH \n" @@ -24,7 +24,7 @@ msgstr "" msgid "**Source code:** :source:`Lib/glob.py`" msgstr "**Code source :** :source:`Lib/glob.py`" -#: ../Doc/library/glob.rst:13 +#: ../Doc/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:23 +#: ../Doc/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:28 +#: ../Doc/library/glob.rst:36 msgid "The :mod:`pathlib` module offers high-level path objects." msgstr "" -"Le module :mod:`pathlib` offre une représentation objet des chemins de haut " -"niveau." +"Le module :mod:`pathlib` offre une représentation objet de haut niveau des " +"chemins." -#: ../Doc/library/glob.rst:33 +#: ../Doc/library/glob.rst:41 msgid "" "Return a possibly-empty list of path names that match *pathname*, which must " "be a string containing a path specification. *pathname* can be either " @@ -78,7 +78,7 @@ msgstr "" "symboliques cassés sont aussi inclus dans les résultats (comme pour le " "shell)." -#: ../Doc/library/glob.rst:39 +#: ../Doc/library/glob.rst:50 msgid "" "If *recursive* is true, the pattern \"``**``\" will match any files and zero " "or more directories and subdirectories. If the pattern is followed by an " @@ -89,19 +89,19 @@ msgstr "" "caractère de séparation ``os.sep``, seuls les répertoires et sous-" "répertoires sont reconnus." -#: ../Doc/library/glob.rst:44 +#: ../Doc/library/glob.rst:55 msgid "" "Using the \"``**``\" pattern in large directory trees may consume an " "inordinate amount of time." msgstr "" -"Utiliser le motif \"``**``\" dans de larges arborescences de fichiers peut " -"consommer un temps excessif." +"Utiliser le motif \"``**``\" dans de grandes arborescences de dossier peut " +"consommer une quantité de temps démesurée." -#: ../Doc/library/glob.rst:47 +#: ../Doc/library/glob.rst:58 msgid "Support for recursive globs using \"``**``\"." msgstr "Gestion des chemins récursifs utilisant le motif \"``**``\"." -#: ../Doc/library/glob.rst:53 +#: ../Doc/library/glob.rst:64 msgid "" "Return an :term:`iterator` which yields the same values as :func:`glob` " "without actually storing them all simultaneously." @@ -109,7 +109,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:59 +#: ../Doc/library/glob.rst:70 msgid "" "Escape all special characters (``'?'``, ``'*'`` and ``'['``). This is useful " "if you want to match an arbitrary literal string that may have special " @@ -124,7 +124,7 @@ msgstr "" "Windows ``escape('//?/c:/Quo vadis?.txt')`` renvoie ``'//?/c:/Quo vadis[?]." "txt'``." -#: ../Doc/library/glob.rst:68 +#: ../Doc/library/glob.rst:79 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 " @@ -138,7 +138,7 @@ msgstr "" "les résultats suivants. Notons que les composantes principales des chemins " "sont préservées. ::" -#: ../Doc/library/glob.rst:86 +#: ../Doc/library/glob.rst:97 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 :" @@ -146,13 +146,13 @@ msgid "" msgstr "" "Si le répertoire contient des fichiers commençant par ``.``, ils ne sont pas " "reconnus par défaut. Par exemple, considérons un répertoire contenant :file:" -"`card.gif` et :file:`.card.gif` : ::" +"`card.gif` et :file:`.card.gif` ::" -#: ../Doc/library/glob.rst:98 +#: ../Doc/library/glob.rst:109 msgid "Module :mod:`fnmatch`" msgstr "Module :mod:`fnmatch`" -#: ../Doc/library/glob.rst:99 +#: ../Doc/library/glob.rst:110 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 d00e75dac..16e85e965 100644 --- a/library/grp.po +++ b/library/grp.po @@ -33,7 +33,7 @@ msgstr "" #: ../Doc/library/grp.rst:18 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/grp.rst:18 msgid "Attribute" @@ -130,7 +130,7 @@ msgstr "" #: ../Doc/library/grp.rst:64 msgid "Module :mod:`pwd`" -msgstr "" +msgstr "Module :mod:`pwd`" #: ../Doc/library/grp.rst:64 msgid "An interface to the user database, similar to this." diff --git a/library/gzip.po b/library/gzip.po index a42491fb4..94f295985 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-07 15:03+0200\n" +"Last-Translator: Lomanic \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" #: ../Doc/library/gzip.rst:2 msgid ":mod:`gzip` --- Support for :program:`gzip` files" -msgstr "" +msgstr ":mod:`gzip` — Support pour les fichiers :program:`gzip`" #: ../Doc/library/gzip.rst:7 msgid "**Source code:** :source:`Lib/gzip.py`" @@ -27,10 +28,13 @@ msgid "" "This module provides a simple interface to compress and decompress files " "just like the GNU programs :program:`gzip` and :program:`gunzip` would." msgstr "" +"Ce module fournit une interface simple pour compresser et décompresser des " +"fichiers tout comme le font les programmes GNU :program:`gzip` et :program:" +"`gunzip`." #: ../Doc/library/gzip.rst:14 msgid "The data compression is provided by the :mod:`zlib` module." -msgstr "" +msgstr "La compression de données est fournie par le module :mod:`zlib`." #: ../Doc/library/gzip.rst:16 msgid "" @@ -40,6 +44,11 @@ msgid "" "files, automatically compressing or decompressing the data so that it looks " "like an ordinary :term:`file object`." msgstr "" +"Le module :mod:`gzip` fournit la classe :class:`GzipFile` ainsi que les " +"fonctions pratiques :func:`.open`, :func:`compress` et :func:`decompress`. " +"La classe :class:`GzipFile` lit et écrit des fichiers au format :program:" +"`gzip`, compressant et décompressant automatiquement les données pour " +"qu'elles aient l'apparence d'un objet :term:`file object` ordinaire." #: ../Doc/library/gzip.rst:22 msgid "" @@ -47,6 +56,10 @@ msgid "" "`gzip` and :program:`gunzip` programs, such as those produced by :program:" "`compress` and :program:`pack`, are not supported by this module." msgstr "" +"Notez que les formats de fichier supplémentaires qui peuvent être " +"décompressés par les programmes :program:`gzip` et :program:`gunzip`, comme " +"ceux produits par le programmes :program:`compress` et :program:`pack`, ne " +"sont pas gérés par ce module." #: ../Doc/library/gzip.rst:26 msgid "The module defines the following items:" @@ -57,12 +70,17 @@ msgid "" "Open a gzip-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" +"Ouvre un fichier compressé en *gzip* en mode binaire ou texte, renvoie un " +"objet :term:`file object`." #: ../Doc/library/gzip.rst:34 msgid "" "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 "" +"L'argument *filename* peut être un nom de fichier (un objet :class:`str` ou :" +"class:`bytes`) ou un objet fichier existant que l'on peut lire, ou où l'on " +"peut écrire." #: ../Doc/library/gzip.rst:37 msgid "" @@ -70,12 +88,17 @@ msgid "" "``'w'``, ``'wb'``, ``'x'`` or ``'xb'`` for binary mode, or ``'rt'``, " "``'at'``, ``'wt'``, or ``'xt'`` for text mode. The default is ``'rb'``." msgstr "" +"L'argument *mode* peut-être ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, ``'w'``, " +"``'wb'``, ``'x'`` ou ``'xb'`` pour le mode binaire ou ``'rt'``, ``'at'``, " +"``'wt'``, ou ``'xt'`` pour le mode texte. Le mode par défaut est ``'rb'``." #: ../Doc/library/gzip.rst:41 msgid "" "The *compresslevel* argument is an integer from 0 to 9, as for the :class:" "`GzipFile` constructor." msgstr "" +"L'argument *compresslevel* est un entier de 0 à 9, comme pour le " +"constructeur de la classe :class:`GzipFile`." #: ../Doc/library/gzip.rst:44 msgid "" @@ -83,6 +106,10 @@ msgid "" "constructor: ``GzipFile(filename, mode, compresslevel)``. In this case, the " "*encoding*, *errors* and *newline* arguments must not be provided." msgstr "" +"En mode binaire, cette fonction est équivalente au constructeur de la " +"classe :class:`GzipFile` : ``GzipFile(filename, mode, compresslevel)``. Dans " +"ce cas, les arguments *encoding*, *errors* et *newline* ne doivent pas être " +"fournis." #: ../Doc/library/gzip.rst:48 msgid "" @@ -90,16 +117,21 @@ msgid "" "class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line ending(s)." msgstr "" +"En mode texte, un objet :class:`GzipFile` est créé et empaqueté dans une " +"instance de :class:`io.TextIOWrapper` avec l'encodage, la gestion d'erreur " +"et les fins de ligne spécifiés." #: ../Doc/library/gzip.rst:52 msgid "" "Added support for *filename* being a file object, support for text mode, and " "the *encoding*, *errors* and *newline* arguments." msgstr "" +"Ajout de la prise en charge de *filename* en tant qu'objet *file*, du mode " +"texte et des arguments *encoding*, *errors* et *newline*." #: ../Doc/library/gzip.rst:56 msgid "Added support for the ``'x'``, ``'xb'`` and ``'xt'`` modes." -msgstr "" +msgstr "Ajout de la prise en charge des modes ``'x'``, ``'xb'`` et ``'xt'``." #: ../Doc/library/gzip.rst:59 ../Doc/library/gzip.rst:156 msgid "Accepts a :term:`path-like object`." @@ -112,6 +144,10 @@ msgid "" "method. At least one of *fileobj* and *filename* must be given a non-" "trivial value." msgstr "" +"Constructeur de la classe :class:`GzipFile` qui simule la plupart des " +"méthodes d'un objet :term:`file object` à l'exception de la méthode :meth:" +"`truncate`. Au moins un des arguments *fileobj* et *filename* doit avoir une " +"valeur non triviale." #: ../Doc/library/gzip.rst:69 msgid "" @@ -120,6 +156,10 @@ msgid "" "It defaults to ``None``, in which case *filename* is opened to provide a " "file object." msgstr "" +"La nouvelle instance de classe est basée sur *fileobj* qui peut être un " +"fichier usuel, un objet :class:`io.BytesIO` ou tout autre objet qui simule " +"un fichier. *fileobj* est par défaut à *None*, dans ce cas *filename* est " +"ouvert afin de fournir un objet fichier." #: ../Doc/library/gzip.rst:74 msgid "" @@ -129,6 +169,12 @@ msgid "" "*fileobj*, if discernible; otherwise, it defaults to the empty string, and " "in this case the original filename is not included in the header." msgstr "" +"Quand *fileobj* n'est pas à ``None``, l'argument *filename* est uniquement " +"utilisé pour être inclus dans l'entête du fichier :program:`gzip`, qui peut " +"inclure le nom original du fichier décompressé. Il est par défaut défini " +"avec le nom de fichier de *fileobj* s'il est discernable, sinon il est par " +"défaut défini à une chaîne de caractères vide et dans ce cas le nom du " +"fichier orignal n'est pas inclus dans l'entête." #: ../Doc/library/gzip.rst:80 msgid "" @@ -137,6 +183,10 @@ msgid "" "be read or written. The default is the mode of *fileobj* if discernible; " "otherwise, the default is ``'rb'``." msgstr "" +"L'argument *mode* peut-être ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, ``'w'``, " +"``'wb'``, ``'x'``, ou ``'xb'``, selon que le fichier va être lu ou écrit. " +"Par défaut prend la valeur du mode de *fileobj* si discernable ; sinon, la " +"valeur par défaut est ``'rb'``." #: ../Doc/library/gzip.rst:85 msgid "" @@ -144,6 +194,9 @@ msgid "" "file in text mode, use :func:`.open` (or wrap your :class:`GzipFile` with " "an :class:`io.TextIOWrapper`)." msgstr "" +"Notez que le fichier est toujours ouvert en mode binaire. Pour ouvrir un " +"fichier compressé en mode texte, utilisez la fonction :func:`.open` (ou " +"empaquetez votre classe :class:`GzipFile` avec un :class:`io.TextIOWrapper`)." #: ../Doc/library/gzip.rst:89 msgid "" @@ -152,6 +205,10 @@ msgid "" "compression, and ``9`` is slowest and produces the most compression. ``0`` " "is no compression. The default is ``9``." msgstr "" +"L'argument *compresslevel* est un entier de ``0`` à ``9`` contrôlant le " +"niveau de compression,``1`` est le plus rapide et produit la compression la " +"plus faible et ``9`` est le plus rapide et produit la compression la plus " +"élevée. ``0`` désactive la compression. Par défaut à ``9``." #: ../Doc/library/gzip.rst:94 msgid "" @@ -160,6 +217,10 @@ msgid "" "be provided in compression mode. If omitted or ``None``, the current time " "is used. See the :attr:`mtime` attribute for more details." msgstr "" +"L'argument *mtime* est un *timestamp* numérique optionnel à écrire dans le " +"champ de date de dernière modification du flux durant la compression. Il ne " +"doit être défini qu'en mode compression. S'il est omis ou ``None``, la date " +"courante est utilisée. Voir l'attribut :attr:`mtime` pour plus de détails." #: ../Doc/library/gzip.rst:99 msgid "" @@ -169,6 +230,12 @@ msgid "" "writing as *fileobj*, and retrieve the resulting memory buffer using the :" "class:`io.BytesIO` object's :meth:`~io.BytesIO.getvalue` method." msgstr "" +"Appeler la méthode :meth:`close` d'un objet :class:`GzipFile` ne ferme pas " +"*fileobj*, puisque vous pourriez avoir besoin d'ajouter des informations " +"après les données compressées. Cela vous permet aussi de passer un objet :" +"class:`io.BytesIO` ouvert en écriture en tant que *fileobj* et récupérer le " +"tampon mémoire final en utilisant la méthode :meth:`~io.BytesIO.getvalue` de " +"l'objet :class:`io.BytesIO`." #: ../Doc/library/gzip.rst:105 msgid "" @@ -176,10 +243,14 @@ msgid "" "including iteration and the :keyword:`with` statement. Only the :meth:" "`truncate` method isn't implemented." msgstr "" +":La classe :class:`GzipFile` implémente l'interface :class:`io." +"BufferedIOBase`, incluant l'itération, la déclaration :keyword:`with`. La " +"méthode :meth:`truncate` est la seule non implémentée." #: ../Doc/library/gzip.rst:109 msgid ":class:`GzipFile` also provides the following method and attribute:" msgstr "" +"La classe :class:`GzipFile` fournit aussi la méthode et l'attribut suivant :" #: ../Doc/library/gzip.rst:113 msgid "" @@ -187,6 +258,10 @@ msgid "" "single read on the compressed stream is done to satisfy the call. The " "number of bytes returned may be more or less than requested." msgstr "" +"Lit *n* octets non compressés sans avancer la position dans le fichier. Au " +"plus une seule lecture sur le flux compressé est faite pour satisfaire " +"l'appel. Le nombre d'octets retournés peut être supérieur ou inférieur au " +"nombre demandé." #: ../Doc/library/gzip.rst:118 msgid "" @@ -194,6 +269,10 @@ msgid "" "`GzipFile`, it may change the position of the underlying file object (e.g. " "if the :class:`GzipFile` was constructed with the *fileobj* parameter)." msgstr "" +"Bien que l'appel à :meth:`peek` ne change pas la position dans le fichier de " +"l'objet :class:`GzipFile`, il peut changer la position de l'objet de fichier " +"sous-jacent (par exemple, si l'instance de :class:`GzipFile` a été " +"construite avec le paramètre *fileobj*)." #: ../Doc/library/gzip.rst:127 msgid "" @@ -201,6 +280,10 @@ msgid "" "most recently read header may be read from this attribute, as an integer. " "The initial value before reading any headers is ``None``." msgstr "" +"Lors de la décompression, la valeur du champ de date de dernière " +"modification dans le dernier en-tête lu peut être lue à partir de cet " +"attribut, comme un entier. La valeur initiale avant lecture d'un en-tête est " +"``None``." #: ../Doc/library/gzip.rst:131 msgid "" @@ -210,24 +293,33 @@ msgid "" "time` and the :attr:`~os.stat_result.st_mtime` attribute of the object " "returned by :func:`os.stat`." msgstr "" +"Tous les flux compressés en :program:`gzip` doivent contenir ce champ " +"*timestamp*. Certains programmes, comme :program:`gunzip`\\ , utilisent ce " +"*timestamp*. Ce format est le même que la valeur retour de :func:`time.time` " +"et l'attribut :attr:`~os.stat_result.st_mtime` de l'objet retourné par :func:" +"`os.stat`." #: ../Doc/library/gzip.rst:137 msgid "" "Support for the :keyword:`with` statement was added, along with the *mtime* " "constructor argument and :attr:`mtime` attribute." msgstr "" +"Ajout de la prise en charge du mot-clef :keyword:`with`, ainsi que de " +"l'argument *mtime* du constructeur et de l'attribut :attr:`mtime`." #: ../Doc/library/gzip.rst:141 msgid "Support for zero-padded and unseekable files was added." msgstr "" +"Ajout de la prise en charge des fichiers non navigables ou commençant par " +"des octets nuls." #: ../Doc/library/gzip.rst:144 msgid "The :meth:`io.BufferedIOBase.read1` method is now implemented." -msgstr "" +msgstr "La méthode :meth:`io.BufferedIOBase.read1` est désormais implémentée." #: ../Doc/library/gzip.rst:147 msgid "Added support for the ``'x'`` and ``'xb'`` modes." -msgstr "" +msgstr "Ajout de la prise en charge des modes ``'x'`` et ``'xb'``." #: ../Doc/library/gzip.rst:150 msgid "" @@ -235,6 +327,9 @@ msgid "" "object>`. The :meth:`~io.BufferedIOBase.read` method now accepts an argument " "of ``None``." msgstr "" +"Ajout de la prise en charge de l'écriture d'objets :term:`bytes-like objects " +"` arbitraires. La méthode :meth:`~io.BufferedIOBase.read` " +"accepte désormais un argument de valeur ``None``." #: ../Doc/library/gzip.rst:162 msgid "" @@ -242,39 +337,49 @@ msgid "" "compressed data. *compresslevel* has the same meaning as in the :class:" "`GzipFile` constructor above." msgstr "" +"Compresse les données *data*, renvoie un objet :class:`bytes` contenant les " +"données compressées. L'argument *compresslevel* a la même signification que " +"dans le constructeur de la classe :class:`GzipFile` ci-dessus." #: ../Doc/library/gzip.rst:170 msgid "" "Decompress the *data*, returning a :class:`bytes` object containing the " "uncompressed data." msgstr "" +"Décompresse les données *data*, retourne un objet :class:`bytes` contenant " +"les données décompressées." #: ../Doc/library/gzip.rst:179 msgid "Examples of usage" -msgstr "" +msgstr "Exemples d'utilisation" #: ../Doc/library/gzip.rst:181 msgid "Example of how to read a compressed file::" -msgstr "" +msgstr "Exemple montrant comment lire un fichier compressé ::" #: ../Doc/library/gzip.rst:187 msgid "Example of how to create a compressed GZIP file::" -msgstr "" +msgstr "Exemple montrant comment créer un fichier GZIP ::" #: ../Doc/library/gzip.rst:194 msgid "Example of how to GZIP compress an existing file::" msgstr "" +"Exemple montrant comment compresser dans un GZIP un fichier existant ::" #: ../Doc/library/gzip.rst:202 msgid "Example of how to GZIP compress a binary string::" msgstr "" +"Exemple montrant comment compresser dans un GZIP un binaire dans une " +"chaîne ::" #: ../Doc/library/gzip.rst:211 msgid "Module :mod:`zlib`" -msgstr "" +msgstr "Module :mod:`zlib`" #: ../Doc/library/gzip.rst:211 msgid "" "The basic data compression module needed to support the :program:`gzip` file " "format." msgstr "" +"Le module de compression de données de base nécessaire pour gérer le format " +"de fichier :program:`gzip`." diff --git a/library/hashlib.po b/library/hashlib.po index 33adf379d..10d5bc5af 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -5,19 +5,20 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2017-08-10 01:00+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-03-26 17:49+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 1.8.11\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/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 msgid "**Source code:** :source:`Lib/hashlib.py`" @@ -32,22 +33,34 @@ msgid "" "hash\" and \"message digest\" are interchangeable. Older algorithms were " "called message digests. The modern term is secure hash." msgstr "" +"Ce module implémente une interface commune à différents algorithmes de " +"hachage sécurisés et de synthèse de messages. Sont inclus les algorithmes " +"standards FIPS de hachage SHA1, SHA224, SHA256, SHA384, et SHA512 (définis " +"dans FIPS 180-2) ainsi que l'algorithme MD5 de RSA (défini par la :rfc:" +"`1321`). Les termes \"algorithmes de hachage sécurisé\" et \"algorithme de " +"synthèse de message\" sont interchangeables. Les anciens algorithmes étaient " +"appelés\" algorithmes de synthèse de messages\". Le terme moderne est " +"\"algorithme de hachage sécurisé\"." #: ../Doc/library/hashlib.rst:32 msgid "" "If you want the adler32 or crc32 hash functions, they are available in the :" "mod:`zlib` module." 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 msgid "" "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 msgid "Hash algorithms" -msgstr "" +msgstr "Algorithmes de hachage" #: ../Doc/library/hashlib.rst:46 msgid "" @@ -59,18 +72,32 @@ msgid "" "`digest` of the concatenation of the data fed to it so far using the :meth:" "`digest` or :meth:`hexdigest` methods." 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 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 msgid "" "For better multithreading performance, the Python :term:`GIL` is released " "for data larger than 2047 bytes at object creation or on update." msgstr "" +"Pour de meilleures performances avec de multiples fils d'exécution, le :term:" +"`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 msgid "" "Feeding string objects into :meth:`update` is not supported, as hashes work " "on bytes, not on characters." msgstr "" +"Fournir des objets chaînes de caractères à la méthode :meth:`update` n'est " +"pas implémenté, comme les fonctions de hachages travaillent sur des *bytes* " +"et pas sur des caractères." #: ../Doc/library/hashlib.rst:66 msgid "" @@ -83,26 +110,40 @@ msgid "" "most platforms the :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :" "func:`sha3_512`, :func:`shake_128`, :func:`shake_256` are also available." msgstr "" +"Les constructeurs pour les algorithmes de hachage qui sont toujours présents " +"dans ce module sont :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:" +"`sha384`, :func:`sha512`, :func:`blake2b`, et :func:`blake2s`. :func:`md5` " +"est normalement disponible aussi, mais il peut être manquant si vous " +"utilisez une forme rare de Python \"conforme FIPS\" . Des algorithmes " +"additionnels peuvent aussi être disponibles dépendant de la librairie " +"OpenSSL que Python utilise sur votre plate-forme. Sur la plupart des plates-" +"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 msgid "" "SHA3 (Keccak) and SHAKE constructors :func:`sha3_224`, :func:`sha3_256`, :" "func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." msgstr "" +"Les constructeurs SHA3 (Keccak) et SHAKE :func:`sha3_224`, :func:" +"`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:" +"`shake_256`." #: ../Doc/library/hashlib.rst:80 msgid ":func:`blake2b` and :func:`blake2s` were added." -msgstr "" +msgstr "Les fonctions :func:`blake2b` et :func:`blake2s` ont été ajoutées." #: ../Doc/library/hashlib.rst:83 msgid "" "For example, to obtain the digest of the byte string ``b'Nobody inspects the " "spammish repetition'``::" msgstr "" +"Par exemple, pour obtenir l'empreinte de la chaîne ``b'Nobody inspects the " +"spammish repetition'`` ::" #: ../Doc/library/hashlib.rst:97 msgid "More condensed:" -msgstr "" +msgstr "En plus condensé ::" #: ../Doc/library/hashlib.rst:104 msgid "" @@ -112,14 +153,19 @@ msgid "" "library may offer. The named constructors are much faster than :func:`new` " "and should be preferred." msgstr "" +"Est un constructeur générique qui prend comme premier paramètre le nom de " +"l'algorithme désiré (*name*) . Il existe pour permettre l'accès aux " +"algorithmes listés ci-dessus ainsi qu'aux autres algorithmes que votre " +"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 msgid "Using :func:`new` with an algorithm provided by OpenSSL:" -msgstr "" +msgstr "En utilisant :func:`new` avec un algorithme fourni par OpenSSL ::" #: ../Doc/library/hashlib.rst:117 msgid "Hashlib provides the following constant attributes:" -msgstr "" +msgstr "*Hashlib* fournit les constantes suivantes ::" #: ../Doc/library/hashlib.rst:121 msgid "" @@ -128,6 +174,10 @@ msgid "" "some upstream vendors offering an odd \"FIPS compliant\" Python build that " "excludes it." msgstr "" +"Un ensemble contenant les noms des algorithmes de hachage garantis d'être " +"implémentés par ce module sur toutes les plate-formes. Notez que *md5* est " +"dans cette liste malgré certains éditeurs qui offrent une implémentation " +"Python de la librairie compatible FIPS l'excluant." #: ../Doc/library/hashlib.rst:130 msgid "" @@ -137,30 +187,40 @@ msgid "" "same algorithm may appear multiple times in this set under different names " "(thanks to OpenSSL)." msgstr "" +"Un ensemble contenant les noms des algorithmes de hachage disponibles dans " +"l'interpréteur Python. Ces noms sont reconnus lorsqu'ils sont passés à la " +"fonction :func:`new`. :attr:`algorithms_guaranteed` est toujours un sous-" +"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 msgid "" "The following values are provided as constant attributes of the hash objects " "returned by the constructors:" 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 msgid "The size of the resulting hash in bytes." -msgstr "" +msgstr "La taille du *hash* résultant en octets." #: ../Doc/library/hashlib.rst:148 msgid "The internal block size of the hash algorithm in bytes." -msgstr "" +msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." #: ../Doc/library/hashlib.rst:150 msgid "A hash object has the following attributes:" -msgstr "" +msgstr "L'objet haché possède les attributs suivants ::" #: ../Doc/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." msgstr "" +"Le nom canonique de cet objet haché, toujours en minuscule et toujours " +"transmissible à la fonction :func:`new` pour créer un autre objet haché de " +"ce type." #: ../Doc/library/hashlib.rst:157 msgid "" @@ -168,10 +228,13 @@ msgid "" "until Python 3.4 was not formally specified, so may not exist on some " "platforms." msgstr "" +"L'attribut *name* est présent dans CPython depuis sa création, mais n'était " +"pas spécifié formellement jusqu'à Python 3.4, il peut ne pas exister sur " +"certaines plate-formes." #: ../Doc/library/hashlib.rst:162 msgid "A hash object has the following methods:" -msgstr "" +msgstr "L'objet haché possède les méthodes suivantes ::" #: ../Doc/library/hashlib.rst:167 msgid "" @@ -179,6 +242,9 @@ msgid "" "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 haché avec :term:`bytes-like object`. Les appels répétés " +"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 msgid "" @@ -186,6 +252,10 @@ msgid "" "on data larger than 2047 bytes is taking place when using hash algorithms " "supplied by OpenSSL." msgstr "" +"Le GIL Python est relâché pour permettre aux autres fils d'exécution de " +"tourner pendant que la fonction de hachage met à jour des données plus " +"larges que 2047 octets, lorsque les algorithmes fournis par OpenSSL sont " +"utilisés." #: ../Doc/library/hashlib.rst:180 msgid "" @@ -193,6 +263,9 @@ msgid "" "This is a bytes object of size :attr:`digest_size` which may contain bytes " "in the whole range from 0 to 255." msgstr "" +"Renvoie le *digest* des données passées à la méthode :meth:`update`. C'est " +"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 msgid "" @@ -200,16 +273,23 @@ msgid "" "double length, containing only hexadecimal digits. This may be used to " "exchange the value safely in email or other non-binary environments." msgstr "" +"Comme la méthode :meth:`digest` sauf que le *digest* renvoyé est une chaîne " +"de caractères de longueur double, contenant seulement des chiffres " +"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 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." msgstr "" +"Renvoie une copie (\"clone\") de l'objet haché. Cela peut être utilisé pour " +"calculer efficacement les *digests* de données partageant des sous-chaînes " +"communes." #: ../Doc/library/hashlib.rst:199 msgid "SHAKE variable length digests" -msgstr "" +msgstr "Synthèse de messages de taille variable SHAKE" #: ../Doc/library/hashlib.rst:201 msgid "" @@ -218,6 +298,11 @@ msgid "" "such, their digest methods require a length. Maximum length is not limited " "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." #: ../Doc/library/hashlib.rst:208 msgid "" @@ -225,10 +310,13 @@ msgid "" "This is a bytes object of size *length* which may contain bytes in the whole " "range from 0 to 255." msgstr "" +"Renvoie le *digest* des données passées à la méthode :meth:`update`. C'est " +"un objet de type *bytes* de taille *length* qui contient des octets dans " +"l'intervalle 0 à 255." #: ../Doc/library/hashlib.rst:221 msgid "Key derivation" -msgstr "" +msgstr "Dérivation de clé" #: ../Doc/library/hashlib.rst:223 msgid "" @@ -238,12 +326,20 @@ msgid "" "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 " +"``sha1(password)`` ne sont pas résistants aux attaques par force brute. Une " +"bonne fonction de hachage doit être paramétrable, lente, et inclure un `sel " +"`_." #: ../Doc/library/hashlib.rst:231 msgid "" "The function provides PKCS#5 password-based key derivation function 2. It " "uses HMAC as pseudorandom function." msgstr "" +"La fonction fournit une fonction de dérivation PKCS#5 (*Public Key " +"Cryptographic Standards #5 v2.0*). Elle utilise HMAC comme fonction de " +"pseudo-aléatoire." #: ../Doc/library/hashlib.rst:234 msgid "" @@ -253,6 +349,12 @@ msgid "" "sensible length (e.g. 1024). *salt* should be about 16 or more bytes from a " "proper source, e.g. :func:`os.urandom`." msgstr "" +"La chaîne de caractères *hash_name* est le nom de l'algorithme de hachage " +"désiré pour le HMAC, par exemple ``\"sha1\"`` ou ``\"sha256\"``. *password* " +"et *salt* sont interprétés comme des tampons d'octets. Les applications et " +"bibliothèques doivent limiter *password* à une longueur raisonnable (comme " +"``1024``). *salt* doit être de 16 octets ou plus provenant d'une source " +"correcte, e.g. :func:`os.urandom`." #: ../Doc/library/hashlib.rst:240 msgid "" @@ -260,12 +362,18 @@ msgid "" "computing power. As of 2013, at least 100,000 iterations of SHA-256 are " "suggested." msgstr "" +"Le nombre d'*iterations* doit être choisi sur la base de l'algorithme de " +"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 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." msgstr "" +"*dklen* est la longueur de la clé dérivée. Si *dklen* vaut ``None`` alors la " +"taille du message de l'algorithme de hachage *hash_name* est utilisé, e.g. " +"64 pour SHA-512." #: ../Doc/library/hashlib.rst:256 msgid "" @@ -273,12 +381,17 @@ msgid "" "Python implementation uses an inline version of :mod:`hmac`. It is about " "three times slower and doesn't release the GIL." msgstr "" +"Une implémentation rapide de *pbkdf2_hmac* est disponible avec OpenSSL. " +"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 msgid "" "The function provides scrypt password-based key derivation function as " "defined in :rfc:`7914`." msgstr "" +"La fonction fournit la fonction de dérivation de clé *scrypt* comme définie " +"dans :rfc:`7914`." #: ../Doc/library/hashlib.rst:265 msgid "" @@ -287,6 +400,10 @@ msgid "" "length (e.g. 1024). *salt* should be about 16 or more bytes from a proper " "source, e.g. :func:`os.urandom`." msgstr "" +"*password* et *salt* doivent être des :term:`bytes-like objects `. Les applications et bibliothèques doivent limiter *password* à une " +"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 msgid "" @@ -294,130 +411,156 @@ msgid "" "factor and *maxmem* limits memory (OpenSSL 1.1.0 defaults to 32 MiB). " "*dklen* is the length of the derived key." msgstr "" +"*n* est le facteur de coût CPU/Mémoire, *r* la taille de bloc, *p* le " +"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:274 -msgid "Availability: OpenSSL 1.1+" -msgstr "" +#: ../Doc/library/hashlib.rst:275 +msgid ":ref:`Availability `: OpenSSL 1.1+." +msgstr ":ref:`Disponibilité ` : OpenSSL 1.1+." #: ../Doc/library/hashlib.rst:280 msgid "BLAKE2" -msgstr "" +msgstr "BLAKE2" #: ../Doc/library/hashlib.rst:287 msgid "" "BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " "in two flavors:" msgstr "" +"BLAKE2_ est une fonction de hachage cryptographique définie dans la :rfc:" +"`7693` et disponible en deux versions ::" #: ../Doc/library/hashlib.rst:290 msgid "" "**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " "between 1 and 64 bytes," 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 msgid "" "**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " "any size between 1 and 32 bytes." msgstr "" +"**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 msgid "" "BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " "**salted hashing**, **personalization**, and **tree hashing**." msgstr "" +"BLAKE2 gère diverses fonctionnalités **keyed mode** (un remplacement plus " +"rapide et plus simple pour HMAC_), **salted hashing**, **personalization**, " +"et **tree hashing**." #: ../Doc/library/hashlib.rst:299 msgid "" "Hash objects from this module follow the API of standard library's :mod:" "`hashlib` objects." 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 msgid "Creating hash objects" -msgstr "" +msgstr "Création d'objets hachés" #: ../Doc/library/hashlib.rst:306 msgid "New hash objects are created by calling constructor functions:" -msgstr "" +msgstr "Les nouveaux objets hachés sont créés en appelant les constructeurs ::" #: ../Doc/library/hashlib.rst:318 msgid "" "These functions return the corresponding hash objects for calculating " "BLAKE2b or BLAKE2s. They optionally take these general parameters:" 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 msgid "" "*data*: initial chunk of data to hash, which must be :term:`bytes-like " "object`. It can be passed only as positional argument." 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 msgid "*digest_size*: size of output digest in bytes." -msgstr "" +msgstr "*digest_size*: taille en sortie du message en octets." #: ../Doc/library/hashlib.rst:326 msgid "" "*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " "BLAKE2s)." 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 msgid "" "*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " "bytes for BLAKE2s)." msgstr "" +"*salt*: sel pour le hachage randomisé *randomized hashing* (jusqu'à 16 " +"octets pour BLAKE2b, jusqu'à 8 octets pour BLAKE2s)." #: ../Doc/library/hashlib.rst:332 msgid "" "*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " "for BLAKE2s)." msgstr "" +"*person*: chaîne de personnalisation (jusqu'à 16 octets pour BLAKE2b, " +"jusqu'à 8 octets pour BLAKE2s)." #: ../Doc/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 msgid "Hash" -msgstr "" +msgstr "Hash" #: ../Doc/library/hashlib.rst:338 msgid "digest_size" -msgstr "" +msgstr "digest_size" #: ../Doc/library/hashlib.rst:338 msgid "len(key)" -msgstr "" +msgstr "len(key)" #: ../Doc/library/hashlib.rst:338 msgid "len(salt)" -msgstr "" +msgstr "len(salt)" #: ../Doc/library/hashlib.rst:338 msgid "len(person)" -msgstr "" +msgstr "len(person)" #: ../Doc/library/hashlib.rst:340 msgid "BLAKE2b" -msgstr "" +msgstr "BLAKE2b" #: ../Doc/library/hashlib.rst:340 msgid "64" -msgstr "" +msgstr "64" #: ../Doc/library/hashlib.rst:340 msgid "16" -msgstr "" +msgstr "16" #: ../Doc/library/hashlib.rst:341 msgid "BLAKE2s" -msgstr "" +msgstr "BLAKE2s" #: ../Doc/library/hashlib.rst:341 msgid "32" -msgstr "" +msgstr "32" #: ../Doc/library/hashlib.rst:341 msgid "8" @@ -432,60 +575,85 @@ msgid "" "example, ``b'salt'`` and ``b'salt\\x00'`` is the same value. (This is not " "the case for *key*.)" msgstr "" +"Les spécifications de BLAKE2 définissent des longueurs constantes pour les " +"sel et chaînes de personnalisation, toutefois, par commodité, cette " +"implémentation accepte des chaînes *byte* de n'importe quelle taille jusqu'à " +"la longueur spécifiée. Si la longueur du paramètre est moindre par rapport à " +"celle spécifiée, il est complété par des zéros, ainsi, par exemple, " +"``b'salt'`` et ``b'salt\\x00'`` sont la même valeur (Ce n'est pas le cas " +"pour *key*.)" #: ../Doc/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 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 msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." -msgstr "" +msgstr "*fanout*: *fanout* (0 à 255, 0 si illimité, 1 en mode séquentiel)." #: ../Doc/library/hashlib.rst:359 msgid "" "*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " "mode)." msgstr "" +"*depth*: profondeur maximale de l'arbre (1 à 255, 255 si illimité, 1 en mode " +"séquentiel)." #: ../Doc/library/hashlib.rst:362 msgid "" "*leaf_size*: maximal byte length of leaf (0 to 2**32-1, 0 if unlimited or in " "sequential mode)." 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 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)." 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 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 msgid "" "*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " "in sequential mode)." 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 msgid "" "*last_node*: boolean indicating whether the processed node is the last one " "(`False` for sequential mode)." 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 msgid "" "See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." msgstr "" +"Voir section 2.10 dans `BLAKE2 specification `_ pour une approche compréhensive du *tree hashing*." #: ../Doc/library/hashlib.rst:385 msgid "Constants" @@ -493,20 +661,22 @@ msgstr "Constantes" #: ../Doc/library/hashlib.rst:390 msgid "Salt length (maximum length accepted by constructors)." -msgstr "" +msgstr "Longueur du sel (longueur maximale acceptée par les constructeurs)." #: ../Doc/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 msgid "Maximum key size." -msgstr "" +msgstr "Taille maximale de clé." #: ../Doc/library/hashlib.rst:408 msgid "Maximum digest size that the hash function can output." -msgstr "" +msgstr "Taille maximale du message que peut fournir la fonction de hachage." #: ../Doc/library/hashlib.rst:412 msgid "Examples" @@ -514,7 +684,7 @@ msgstr "Exemples" #: ../Doc/library/hashlib.rst:415 msgid "Simple hashing" -msgstr "" +msgstr "Hachage simple" #: ../Doc/library/hashlib.rst:417 msgid "" @@ -524,22 +694,32 @@ msgid "" "object, and, finally, get the digest out of the object by calling :meth:" "`digest` (or :meth:`hexdigest` for hex-encoded string)." msgstr "" +"Pour calculer les *hash* de certaines données, vous devez d'abord construire " +"un objet haché en appelant la fonction constructeur appropriée (:func:" +"`blake2b` or :func:`blake2s`), ensuite le mettre à jour avec les données en " +"appelant la méthode :meth:`update` sur l'objet, et, pour finir, récupérer " +"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 msgid "" "As a shortcut, you can pass the first chunk of data to update directly to " "the constructor as the positional argument:" msgstr "" +"Pour raccourcir, vous pouvez passer directement au constructeur, comme " +"argument positionnel, le premier morceau du message à mettre à jour ::" #: ../Doc/library/hashlib.rst:437 msgid "" "You can call :meth:`hash.update` as many times as you need to iteratively " "update the hash:" 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 msgid "Using different digest sizes" -msgstr "" +msgstr "Usage de tailles d'empreintes différentes" #: ../Doc/library/hashlib.rst:452 msgid "" @@ -547,6 +727,10 @@ msgid "" "32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " "changing the size of output, we can tell BLAKE2b to produce 20-byte digests:" msgstr "" +"BLAKE2 permet de configurer la taille des empreintes jusqu'à 64 octets pour " +"BLAKE2b et jusqu'à 32 octets pour BLAKE2s. Par exemple, pour remplacer SHA-1 " +"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 msgid "" @@ -554,10 +738,14 @@ msgid "" "(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " "produce different outputs even if the output length is the same:" msgstr "" +"Les objets hachés avec différentes tailles d'empreintes ont des sorties " +"complètement différentes (les *hash* plus courts *ne sont pas* des préfixes " +"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 msgid "Keyed hashing" -msgstr "" +msgstr "Code d'authentification de message" #: ../Doc/library/hashlib.rst:484 msgid "" @@ -567,28 +755,43 @@ msgid "" "can be securely used in prefix-MAC mode thanks to the indifferentiability " "property inherited from BLAKE." msgstr "" +"Le hachage avec clé (*keyed hashing* en anglais) est une alternative plus " +"simple et plus rapide à un `code d’authentification d’une empreinte " +"cryptographique de message avec clé `_ (HMAC). BLAKE2 peut être utilisé de " +"manière sécurisée dans le mode préfixe MAC grâce à la propriété " +"d'indifférentiabilité héritée de BLAKE." #: ../Doc/library/hashlib.rst:490 msgid "" "This example shows how to get a (hex-encoded) 128-bit authentication code " "for message ``b'message data'`` with key ``b'pseudorandom key'``::" msgstr "" +"Cet exemple montre comment obtenir un code d'authentification de message de " +"128-bit (en hexadécimal) pour un message ``b'message data'`` avec la clé " +"``b'pseudorandom key'`` ::" #: ../Doc/library/hashlib.rst:500 msgid "" "As a practical example, a web application can symmetrically sign cookies " "sent to users and later verify them to make sure they weren't tampered with::" msgstr "" +"Comme exemple pratique, une application web peut chiffrer symétriquement les " +"*cookies* envoyés aux utilisateurs et les vérifier plus tard pour être " +"certaine qu'ils n'aient pas été altérés ::" #: ../Doc/library/hashlib.rst:529 msgid "" "Even though there's a native keyed hashing mode, BLAKE2 can, of course, be " "used in HMAC construction with :mod:`hmac` module::" msgstr "" +"Même s'il possède en natif la création de code d'authentification de message " +"(MAC), BLAKE2 peut, bien sûr, être utilisé pour construire un HMAC en " +"combinaison du module :mod:`hmac` ::" #: ../Doc/library/hashlib.rst:540 msgid "Randomized hashing" -msgstr "" +msgstr "Hachage randomisé" #: ../Doc/library/hashlib.rst:542 msgid "" @@ -596,6 +799,10 @@ msgid "" "function. Randomized hashing is useful for protecting against collision " "attacks on the hash function used in digital signatures." msgstr "" +"En définissant le paramètre *salt* les utilisateurs peuvent introduire de " +"l'aléatoire dans la fonction de hachage. Le hachage randomisé est utile pour " +"se protéger des attaques par collisions sur les fonctions de hachage " +"utilisées dans les signatures numériques." #: ../Doc/library/hashlib.rst:546 msgid "" @@ -617,18 +824,41 @@ msgid "" "hashing may reduce the amount of security provided by a digital signature " "when all portions of the message are prepared by the signer." msgstr "" +"Le hachage aléatoire est conçu pour les situations où une partie, le " +"préparateur du message, génère tout ou partie d'un message à signer par une " +"seconde partie, le signataire du message. Si le préparateur du message est " +"capable de trouver des collisions sur la fonction cryptographique de hachage " +"(i.e., deux messages produisant la même valeur une fois hachés), alors ils " +"peuvent préparer des versions significatives du message qui produiront les " +"mêmes *hachs* et même signature mais avec des résultats différents (e.g. " +"transférer 1000000$ sur un compte plutôt que 10$). Les fonctions " +"cryptographiques de hachage ont été conçues dans le but de résister aux " +"collisions, mais la concentration actuelle d'attaques sur les fonctions de " +"hachage peut avoir pour conséquence qu'une fonction de hachage donnée soit " +"moins résistante qu'attendu. Le hachage aléatoire offre au signataire une " +"protection supplémentaire en réduisant la probabilité que le préparateur " +"puisse générer deux messages ou plus qui renverront la même valeur haché " +"lors du processus de génération de la signature --- même s'il est pratique " +"de trouver des collisions sur la fonction de hachage. Toutefois, " +"l'utilisation du hachage aléatoire peut réduire le niveau de sécurité fourni " +"par une signature numérique lorsque tous les morceaux du message sont " +"préparés par le signataire." #: ../Doc/library/hashlib.rst:565 msgid "" "(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_)" msgstr "" +"(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_, article en anglais)" #: ../Doc/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." 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 msgid "" @@ -636,10 +866,14 @@ msgid "" "cryptographic hash function, such as SHA-256, is not suitable for hashing " "passwords. See `BLAKE2 FAQ `_ for more information." msgstr "" +"*Salted hashing* (ou juste hachage) avec BLAKE2 ou toute autre fonction de " +"hachage générique, comme SHA-256, ne convient pas pour le chiffrement des " +"mots de passe. Voir `BLAKE2 FAQ `_ pour plus " +"d'informations." #: ../Doc/library/hashlib.rst:596 msgid "Personalization" -msgstr "" +msgstr "Personnalisation" #: ../Doc/library/hashlib.rst:598 msgid "" @@ -647,6 +881,9 @@ msgid "" "for the same input for different purposes. Quoting the authors of the Skein " "hash function:" msgstr "" +"Parfois il est utile de forcer une fonction de hachage à produire " +"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 msgid "" @@ -657,40 +894,56 @@ msgid "" "force the application to make the hash inputs the same. Personalizing each " "hash function used in the protocol summarily stops this type of attack." msgstr "" +"Nous recommandons que tous les développeurs d'application considèrent " +"sérieusement de faire cela ; nous avons vu de nombreux protocoles où un " +"*hash* était calculé à un endroit du protocole pour être utilisé à un autre " +"endroit car deux calculs de *hash* étaient réalisés sur des données " +"similaires ou liées, et qu'un attaquant peut forcer une application à " +"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 msgid "" "(`The Skein Hash Function Family `_, p. 21)" msgstr "" +"(`The Skein Hash Function Family `_, p. 21, article en anglais)" #: ../Doc/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 msgid "" "Personalization together with the keyed mode can also be used to derive " "different keys from a single one." 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 msgid "Tree mode" -msgstr "" +msgstr "Mode Arbre" #: ../Doc/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 msgid "" "This example uses 64-byte internal digests, and returns the 32-byte final " "digest::" msgstr "" +"Cet exemple utilise en interne des empreintes de 64 octets, et produit " +"finalement des empreintes 32 octets ::" #: ../Doc/library/hashlib.rst:679 msgid "Credits" -msgstr "" +msgstr "Crédits" #: ../Doc/library/hashlib.rst:681 msgid "" @@ -699,12 +952,18 @@ msgid "" "created by *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, and " "*Raphael C.-W. Phan*." msgstr "" +"BLAKE2_ a été conçu par *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " +"Wilcox-O'Hearn*, et *Christian Winnerlein* basé sur SHA-3_ finaliste BLAKE_ " +"créé par *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, et *Raphael " +"C.-W. Phan*." #: ../Doc/library/hashlib.rst:686 msgid "" "It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " "Bernstein*." msgstr "" +"Il utilise le cœur de l'algorithme de chiffrement de ChaCha_ conçu par " +"*Daniel J. Bernstein*." #: ../Doc/library/hashlib.rst:688 msgid "" @@ -712,16 +971,23 @@ msgid "" "*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " "documentation was copied from pyblake2_ and written by *Dmitry Chestnykh*." msgstr "" +"L'implémentation dans la librairie standard est basée sur le module " +"pyblake2_. Il a été écrit par *Dmitry Chestnykh* et basé sur " +"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 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 msgid "" "The following public domain dedication applies for both C hash function " "implementation, extension code, and this documentation:" 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 msgid "" @@ -729,6 +995,10 @@ msgid "" "and related and neighboring rights to this software to the public domain " "worldwide. This software is distributed without any warranty." msgstr "" +"Tout en restant dans les limites de la loi, le(s) auteur(s) a (ont) consacré " +"tous les droits d’auteur et droits connexes et voisins de ce logiciel au " +"domaine public dans le monde entier. Ce logiciel est distribué sans aucune " +"garantie." #: ../Doc/library/hashlib.rst:701 msgid "" @@ -736,6 +1006,9 @@ msgid "" "with this software. If not, see https://creativecommons.org/publicdomain/" "zero/1.0/." msgstr "" +"Vous devriez recevoir avec ce logiciel une copie de la licence *CC0 Public " +"Domain Dedication*. Sinon, voir https://creativecommons.org/publicdomain/" +"zero/1.0/." #: ../Doc/library/hashlib.rst:705 msgid "" @@ -743,18 +1016,22 @@ msgid "" "changes to the project and the public domain according to the Creative " "Commons Public Domain Dedication 1.0 Universal:" msgstr "" +"Les personnes suivantes ont aidé au développement ou contribué aux " +"modification du projet et au domaine public selon la licence Creative " +"Commons Public Domain Dedication 1.0 Universal ::" #: ../Doc/library/hashlib.rst:709 msgid "*Alexandr Sokolovskiy*" -msgstr "" +msgstr "*Alexandr Sokolovskiy*" #: ../Doc/library/hashlib.rst:723 msgid "Module :mod:`hmac`" -msgstr "" +msgstr "Module :mod:`hmac`" #: ../Doc/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 msgid "Module :mod:`base64`" @@ -763,41 +1040,49 @@ msgstr "Module :mod:`base64`" #: ../Doc/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 msgid "https://blake2.net" -msgstr "" +msgstr "https://blake2.net" #: ../Doc/library/hashlib.rst:729 msgid "Official BLAKE2 website." -msgstr "" +msgstr "Site officiel de BLAKE2." #: ../Doc/library/hashlib.rst:732 msgid "" "https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" "documents/fips180-2.pdf" msgstr "" +"https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" +"documents/fips180-2.pdf" #: ../Doc/library/hashlib.rst:732 msgid "The FIPS 180-2 publication on Secure Hash Algorithms." -msgstr "" +msgstr "La publication FIPS 180-2 sur les algorithmes de hachage sécurisés." #: ../Doc/library/hashlib.rst:736 msgid "" "https://en.wikipedia.org/wiki/" "Cryptographic_hash_function#Cryptographic_hash_algorithms" msgstr "" +"https://en.wikipedia.org/wiki/" +"Cryptographic_hash_function#Cryptographic_hash_algorithms" #: ../Doc/library/hashlib.rst:735 msgid "" "Wikipedia article with information on which algorithms have known issues and " "what that means regarding their use." 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 msgid "https://www.ietf.org/rfc/rfc2898.txt" -msgstr "" +msgstr "https://www.ietf.org/rfc/rfc2898.txt" #: ../Doc/library/hashlib.rst:739 msgid "PKCS #5: Password-Based Cryptography Specification Version 2.0" -msgstr "" +msgstr "PKCS #5: Password-Based Cryptography Specification Version 2.0" diff --git a/library/heapq.po b/library/heapq.po index 5e9ac116d..eeab0342e 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-07-05 09:53+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/heapq.rst:2 msgid ":mod:`heapq` --- Heap queue algorithm" -msgstr "" +msgstr ":mod:`heapq` — File de priorité basée sur un tas" #: ../Doc/library/heapq.rst:12 msgid "**Source code:** :source:`Lib/heapq.py`" @@ -27,6 +27,8 @@ msgid "" "This module provides an implementation of the heap queue algorithm, also " "known as the priority queue algorithm." msgstr "" +"Ce module expose une implémentation de l'algorithme de file de priorité, " +"basée sur un tas." #: ../Doc/library/heapq.rst:19 msgid "" @@ -37,6 +39,13 @@ msgid "" "elements are considered to be infinite. The interesting property of a heap " "is that its smallest element is always the root, ``heap[0]``." msgstr "" +"Les tas sont des arbres binaires pour lesquels chaque valeur portée par un " +"nœud est inférieure ou égale à celle de ses deux fils. Cette implémentation " +"utilise des tableaux pour lesquels ``tas[k] <= tas[2*k+1]`` et ``tas[k] <= " +"tas[2*k+2]`` pour tout *k*, en commençant la numérotation à zéro. Pour " +"contenter l'opérateur de comparaison, les éléments inexistants sont " +"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 msgid "" @@ -48,6 +57,13 @@ 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 " +"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 " +"la littérature car il permet le classement sans tampon)." #: ../Doc/library/heapq.rst:33 msgid "" @@ -55,20 +71,28 @@ msgid "" "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 et ``heap.sort()`` " +"conserve l'invariant du tas !" #: ../Doc/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`." msgstr "" +"Pour créer un tas, utilisez une liste initialisée à ``[]`` ou bien utilisez " +"une liste existante et transformez la en tas à l'aide de la fonction :func:" +"`heapify`." #: ../Doc/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 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 msgid "" @@ -76,6 +100,9 @@ msgid "" "invariant. If the heap is empty, :exc:`IndexError` is raised. To access " "the smallest item without popping it, use ``heap[0]``." msgstr "" +"Extraie le plus petit élément de *heap* en préservant l'invariant du tas. Si " +"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 msgid "" @@ -83,10 +110,15 @@ msgid "" "*heap*. The combined action runs more efficiently than :func:`heappush` " "followed by a separate call to :func:`heappop`." msgstr "" +"Introduit l'élément *item* dans le tas, puis extraie le plus petit élément " +"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 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 msgid "" @@ -94,6 +126,9 @@ msgid "" "*item*. The heap size doesn't change. If the heap is empty, :exc:" "`IndexError` is raised." msgstr "" +"Extraie le plus petit élément de *heap* et introduit le nouvel élément " +"*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 msgid "" @@ -102,6 +137,10 @@ msgid "" "heap. The pop/push combination always returns an element from the heap and " "replaces it with *item*." msgstr "" +"Cette opération en une étape est plus efficace qu'un appel à :func:`heappop` " +"suivi d'un appel à :func:`heappush` et est plus appropriée lorsque le tas " +"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 msgid "" @@ -110,10 +149,15 @@ msgid "" "combination returns the smaller of the two values, leaving the larger value " "on the heap." msgstr "" +"La valeur renvoyée peut être plus grande que l'élément *item* ajouté. Si " +"cela n'est pas souhaitable, utilisez plutôt :func:`heappushpop` à la place. " +"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 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 msgid "" @@ -121,6 +165,9 @@ msgid "" "timestamped entries from multiple log files). Returns an :term:`iterator` " "over the sorted values." msgstr "" +"Fusionne plusieurs entrées ordonnées en une unique sortie ordonnée (par " +"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 msgid "" @@ -128,6 +175,9 @@ msgid "" "does not pull the data into memory all at once, and assumes that each of the " "input streams is already sorted (smallest to largest)." msgstr "" +"Similaire à ``sorted(itertools.chain(*iterables))`` mais renvoie un " +"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 msgid "" @@ -165,18 +215,29 @@ msgstr "Ajout des paramètres optionnels *key* et *reverse*." 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 " -"is used to extract a comparison key from each element in the iterable: " -"``key=str.lower`` Equivalent to: ``sorted(iterable, key=key, reverse=True)[:" -"n]``" +"is used to extract a comparison key from each element in *iterable* (for " +"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key, " +"reverse=True)[:n]``." msgstr "" +"Renvoie une liste contenant les *n* plus grands éléments du jeu de données " +"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]``." #: ../Doc/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 " -"is used to extract a comparison key from each element in the iterable: " -"``key=str.lower`` Equivalent to: ``sorted(iterable, key=key)[:n]``" +"is used to extract a comparison key from each element in *iterable* (for " +"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key)[:" +"n]``." msgstr "" +"Renvoie une liste contenant les *n* plus petits éléments du jeu de données " +"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]``." #: ../Doc/library/heapq.rst:128 msgid "" @@ -186,10 +247,16 @@ msgid "" "`max` functions. If repeated usage of these functions is required, consider " "turning the iterable into an actual heap." msgstr "" +"Les deux fonctions précédentes sont les plus efficaces pour des petites " +"valeurs de *n*. Pour de grandes valeurs, il est préférable d'utiliser la " +"fonction :func:`sorted`. En outre, lorsque ``n==1``, il est plus efficace " +"d'utiliser les fonctions natives :func:`min` et :func:`max`. Si vous devez " +"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 msgid "Basic Examples" -msgstr "" +msgstr "Exemples simples" #: ../Doc/library/heapq.rst:138 msgid "" @@ -197,52 +264,71 @@ msgid "" "pushing all values onto a heap and then popping off the smallest values one " "at a time::" msgstr "" +"Un `tri par tas `_ peut être " +"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 msgid "" "This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this " "implementation is not stable." msgstr "" +"Ceci est similaire à ``sorted(iterable)`` mais, contrairement à :func:" +"`sorted`, cette implémentation n'est pas stable." #: ../Doc/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 " +"assigner des valeurs de comparaison (par exemple, des priorités de tâches) " +"en plus de l'élément qui est suivi ::" #: ../Doc/library/heapq.rst:167 msgid "Priority Queue Implementation Notes" -msgstr "" +msgstr "Notes d'implémentation de la file de priorité" #: ../Doc/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 :" #: ../Doc/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 ?" #: ../Doc/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." 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 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 ?" #: ../Doc/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 ?" #: ../Doc/library/heapq.rst:184 msgid "" @@ -252,6 +338,13 @@ msgid "" "returned in the order they were added. And since no two entry counts are the " "same, the tuple comparison will never attempt to directly compare two tasks." msgstr "" +"Une solution aux deux premiers problèmes consiste à stocker les entrées sous " +"forme de liste à 3 éléments incluant la priorité, le numéro d'ajout et la " +"tâche. Le numéro d'ajout sert à briser les égalités de telle sorte que deux " +"tâches avec la même priorité sont renvoyées dans l'ordre de leur insertion. " +"Puisque deux tâches ne peuvent jamais avoir le même numéro d'ajout, la " +"comparaison des triplets ne va jamais chercher à comparer des tâches entre " +"elles." #: ../Doc/library/heapq.rst:190 msgid "" @@ -259,6 +352,9 @@ msgid "" "wrapper class that ignores the task item and only compares the priority " "field::" 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é ::" #: ../Doc/library/heapq.rst:201 msgid "" @@ -266,6 +362,9 @@ msgid "" "changes to its priority or removing it entirely. Finding a task can be done " "with a dictionary pointing to an entry in the queue." msgstr "" +"Le problème restant consiste à trouver une tâche en attente et modifier sa " +"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 msgid "" @@ -273,10 +372,14 @@ msgid "" "would break the heap structure invariants. So, a possible solution is to " "mark the entry as removed and add a new entry with the revised priority::" 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 ::" #: ../Doc/library/heapq.rst:239 msgid "Theory" -msgstr "" +msgstr "Théorie" #: ../Doc/library/heapq.rst:241 msgid "" @@ -285,12 +388,19 @@ msgid "" "elements are considered to be infinite. The interesting property of a heap " "is that ``a[0]`` is always its smallest element." msgstr "" +"Les tas sont des tableaux pour lesquels ``a[k] <= a[2*k+1]`` et ``a[k] <= " +"a[2*k+2]`` pour tout *k* en comptant les éléments à partir de 0. Pour " +"simplifier la comparaison, les éléments inexistants sont considérés comme " +"étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus " +"petit élément." #: ../Doc/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]`` ::" #: ../Doc/library/heapq.rst:259 msgid "" @@ -304,6 +414,17 @@ 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." #: ../Doc/library/heapq.rst:268 msgid "" @@ -315,6 +436,15 @@ msgid "" "logarithmic on the total number of items in the tree. By iterating over all " "items, you get an O(n log n) sort." 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 " +"(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 " +"approche a un coût logarithmique par rapport au nombre total d'éléments dans " +"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 msgid "" @@ -327,6 +457,16 @@ msgid "" "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é " +"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 " +"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 msgid "" @@ -336,6 +476,11 @@ msgid "" "average case. However, there are other representations which are more " "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 " +"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 msgid "" @@ -350,6 +495,18 @@ msgid "" "which are twice the size of the memory for random input, and much better for " "input fuzzily ordered." msgstr "" +"Les tas sont également très utiles pour ordonner les données sur de gros " +"disques. Vous savez probablement qu'un gros tri implique la production de " +"séquences pré-classées (dont la taille est généralement liée à la quantité " +"de mémoire CPU disponible), suivie par une passe de fusion qui est " +"généralement organisée de façon très intelligente [#]_. Il est très " +"important que le classement initial produise des séquences les plus longues " +"possibles. Les tournois sont une bonne façon d'arriver à ce résultat. Si, en " +"utilisant toute la mémoire disponible pour stocker un tournoi, vous " +"remplacez et faites percoler les éléments qui s'avèrent acceptables pour la " +"séquence courante, vous produirez des séquences d'une taille égale au double " +"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 msgid "" @@ -361,12 +518,23 @@ msgid "" "the first heap is melting. When the first heap completely vanishes, you " "switch heaps and start a new run. Clever and quite effective!" 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 " +"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 !" #: ../Doc/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. :-)" msgstr "" +"Pour résumer, les tas sont des structures de données qu'il est bon de " +"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 msgid "Footnotes" @@ -384,3 +552,14 @@ msgid "" "Believe me, real good tape sorts were quite spectacular to watch! From all " "times, sorting has always been a Great Art! :-)" msgstr "" +"Les algorithmes de répartition de charge pour les disques, courants de nos " +"jours, sont plus embêtants qu'utiles, en raison de la capacité des disques à " +"réaliser des accès aléatoires. Sur les périphériques qui ne peuvent faire " +"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 " +"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 ! ☺" diff --git a/library/hmac.po b/library/hmac.po index 7d950268d..64e36be3f 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -17,6 +17,8 @@ msgstr "" #: ../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,6 +27,7 @@ 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 "" @@ -41,6 +44,9 @@ msgid "" "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:31 msgid "MD5 as implicit default digest for *digestmod* is deprecated." @@ -54,6 +60,12 @@ 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:42 msgid "" @@ -61,10 +73,13 @@ msgid "" "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:49 msgid "An HMAC object has the following methods:" -msgstr "" +msgstr "Un objet HMAC a les méthodes suivantes :" #: ../Doc/library/hmac.rst:53 msgid "" @@ -72,10 +87,14 @@ msgid "" "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:57 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:63 msgid "" @@ -84,6 +103,10 @@ msgid "" "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:70 msgid "" @@ -92,6 +115,10 @@ msgid "" "`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:78 msgid "" @@ -99,6 +126,10 @@ msgid "" "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:84 msgid "" @@ -107,6 +138,11 @@ msgid "" "`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:92 msgid "" @@ -114,26 +150,35 @@ msgid "" "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:96 msgid "A hash object has the following attributes:" msgstr "" +"Un objet *code d'authentification de message* (HMAC) possède les attributs " +"suivants :" #: ../Doc/library/hmac.rst:100 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:104 msgid "The internal block size of the hash algorithm in bytes." -msgstr "" +msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." #: ../Doc/library/hmac.rst:110 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:115 msgid "This module also provides the following helper function:" -msgstr "" +msgstr "Ce module fournit également la fonction utilitaire suivante :" #: ../Doc/library/hmac.rst:119 msgid "" @@ -143,6 +188,12 @@ 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:127 msgid "" @@ -150,11 +201,14 @@ msgid "" "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:137 msgid "Module :mod:`hashlib`" -msgstr "" +msgstr "Module :mod:`hashlib`" #: ../Doc/library/hmac.rst:138 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 50ffbbc8b..1fa137a26 100644 --- a/library/html.entities.po +++ b/library/html.entities.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/html.entities.rst:2 msgid ":mod:`html.entities` --- Definitions of HTML general entities" -msgstr ":mod:`html.entities` --- Définitions des entités HTML générales" +msgstr ":mod:`html.entities` — Définitions des entités HTML générales" #: ../Doc/library/html.entities.rst:9 msgid "**Source code:** :source:`Lib/html/entities.py`" diff --git a/library/html.po b/library/html.po index cd1bddecc..1deff420b 100644 --- a/library/html.po +++ b/library/html.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-09-27 15:05+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-13 17:52+0200\n" "Last-Translator: Bruno Inec \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/html.rst:2 msgid ":mod:`html` --- HyperText Markup Language support" -msgstr ":mod:`html` --- Support du HyperText Markup Language" +msgstr ":mod:`html` — Support du HyperText Markup Language" #: ../Doc/library/html.rst:7 msgid "**Source code:** :source:`Lib/html/__init__.py`" @@ -44,13 +44,13 @@ msgstr "" #: ../Doc/library/html.rst:26 msgid "" "Convert all named and numeric character references (e.g. ``>``, ``>" -"``, ``&x3e;``) in the string *s* to the corresponding unicode characters. " +"``, ``>``) in the string *s* to the corresponding Unicode characters. " "This function uses the rules defined by the HTML 5 standard for both valid " "and invalid character references, and the :data:`list of HTML 5 named " "character references `." msgstr "" "Convertit toutes les références de caractères nommés et numériques (e.g. " -"``>``, ``>``, ``&x3e;``) dans la chaîne de caractères *s* par les " +"``>``, ``>``, ``>``) dans la chaîne de caractères *s* par les " "caractères Unicode correspondants. Cette fonction utilise les règles " "définies par le standard HTML 5 à la fois pour les caractères valides et les " "caractères invalides, et la :data:`liste des références des caractères " diff --git a/library/http.client.po b/library/http.client.po index 2b5325609..30862a0ed 100644 --- a/library/http.client.po +++ b/library/http.client.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-24 14:22+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -505,17 +505,17 @@ msgstr "Exemples" msgid "Here is an example session that uses the ``GET`` method::" msgstr "" -#: ../Doc/library/http.client.rst:507 +#: ../Doc/library/http.client.rst:508 msgid "" "Here is an example session that uses the ``HEAD`` method. Note that the " "``HEAD`` method never returns any data. ::" msgstr "" -#: ../Doc/library/http.client.rst:522 +#: ../Doc/library/http.client.rst:523 msgid "Here is an example session that shows how to ``POST`` requests::" msgstr "" -#: ../Doc/library/http.client.rst:538 +#: ../Doc/library/http.client.rst:539 msgid "" "Client side ``HTTP PUT`` requests are very similar to ``POST`` requests. The " "difference lies only the server side where HTTP server will allow resources " @@ -525,11 +525,11 @@ msgid "" "do ``PUT`` request using http.client::" msgstr "" -#: ../Doc/library/http.client.rst:560 +#: ../Doc/library/http.client.rst:561 msgid "HTTPMessage Objects" msgstr "" -#: ../Doc/library/http.client.rst:562 +#: ../Doc/library/http.client.rst:563 msgid "" "An :class:`http.client.HTTPMessage` instance holds the headers from an HTTP " "response. It is implemented using the :class:`email.message.Message` class." diff --git a/library/http.cookiejar.po b/library/http.cookiejar.po index b3813cee0..af8915874 100644 --- a/library/http.cookiejar.po +++ b/library/http.cookiejar.po @@ -168,7 +168,7 @@ msgstr "" #: ../Doc/library/http.cookiejar.rst:126 msgid ":rfc:`2109` - HTTP State Management Mechanism" -msgstr "" +msgstr ":rfc:`2109` - HTTP State Management Mechanism" #: ../Doc/library/http.cookiejar.rst:126 msgid "Obsoleted by :rfc:`2965`. Uses :mailheader:`Set-Cookie` with version=1." @@ -765,7 +765,7 @@ msgstr "" #: ../Doc/library/http.cookiejar.rst:602 msgid "Cookie Objects" -msgstr "" +msgstr "Objets *Cookie*" #: ../Doc/library/http.cookiejar.rst:604 msgid "" diff --git a/library/http.cookies.po b/library/http.cookies.po index 39daea5e2..47fd3aefe 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:39+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" #: ../Doc/library/http.cookies.rst:2 msgid ":mod:`http.cookies` --- HTTP state management" -msgstr "" +msgstr ":mod:`http.cookies` — gestion d'état pour HTTP" #: ../Doc/library/http.cookies.rst:10 msgid "**Source code:** :source:`Lib/http/cookies.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/http/cookies.py`" #: ../Doc/library/http.cookies.rst:14 msgid "" @@ -29,6 +30,10 @@ msgid "" "string-only cookies, and provides an abstraction for having any serializable " "data-type as cookie value." msgstr "" +"Le module :mod:`http.cookies` définit des classes abstrayant le concept de " +"témoin web (cookie), un mécanisme de gestion d'état pour HTTP. Il fournit " +"une abstraction gérant des données textuelles et tout type de données " +"sérialisable comme valeur de témoin." #: ../Doc/library/http.cookies.rst:19 msgid "" @@ -39,6 +44,13 @@ msgid "" "comes to Cookie handling. As a result, the parsing rules used are a bit " "less strict." msgstr "" +"Auparavant, le module appliquait strictement les règles d'analyse décrites " +"dans les spécifications :rfc:`2109` et :rfc:`2068`. Entre temps, il a été " +"découvert que Internet Explorer 3.0 ne suit pas les règles liées aux " +"caractères précisées dans ces spécifications. De plus, plusieurs navigateurs " +"et serveurs dans leur versions récentes ont assoupli les règles d'analyse " +"quant à la gestion des témoins. En conséquence, les règles d'analyse " +"utilisées sont un peu moins strictes que les spécifications initiales." #: ../Doc/library/http.cookies.rst:25 msgid "" @@ -46,10 +58,13 @@ msgid "" "``!#$%&'*+-.^_`|~:`` denote the set of valid characters allowed by this " "module in Cookie name (as :attr:`~Morsel.key`)." msgstr "" +"Les jeux de caractères :data:`string.ascii_letters`, :data:`string.digits` " +"et ``!#$%&'*+-.^_`|~:`` définissent l'ensemble des caractères autorisés par " +"ce module pour le nom du témoin (comme :attr:`~Morsel.key`)." #: ../Doc/library/http.cookies.rst:29 msgid "Allowed ':' as a valid Cookie name character." -msgstr "" +msgstr "Ajouté « : » comme caractère autorisé pour les noms de témoin." #: ../Doc/library/http.cookies.rst:35 msgid "" @@ -57,12 +72,17 @@ msgid "" "cookie data comes from a browser you should always prepare for invalid data " "and catch :exc:`CookieError` on parsing." msgstr "" +"Quand un témoin invalide est rencontré, l'exception :exc:`CookieError` est " +"levée. Si les données du témoin proviennent d'un navigateur il faut " +"impérativement gérer les données invalides en attrapant :exc:`CookieError`." #: ../Doc/library/http.cookies.rst:42 msgid "" "Exception failing because of :rfc:`2109` invalidity: incorrect attributes, " "incorrect :mailheader:`Set-Cookie` header, etc." msgstr "" +"Exception levée pour cause d'incompatibilité avec la :rfc:`2109`. Exemples : " +"attributs incorrects, en-tête ``Set-Cookie`` incorrect, etc." #: ../Doc/library/http.cookies.rst:48 msgid "" @@ -71,225 +91,290 @@ msgid "" "value, the value is first converted to a :class:`Morsel` containing the key " "and the value." msgstr "" +"Cette classe définit un dictionnaire dont les clés sont des chaines de " +"caractères et dont les valeurs sont des instances de :class:`Morsel`. Notez " +"qu'à l'assignation d'une valeur à une clé, la valeur est transformée en :" +"class:`Morsel` contenant la clé et la valeur." #: ../Doc/library/http.cookies.rst:52 msgid "If *input* is given, it is passed to the :meth:`load` method." msgstr "" +"Si l'argument *input* est donné, il est passé à la méthode :meth:`load`." #: ../Doc/library/http.cookies.rst:57 msgid "" "This class derives from :class:`BaseCookie` and overrides :meth:" -"`value_decode` and :meth:`value_encode` to be the identity and :func:`str` " -"respectively." -msgstr "" - -#: ../Doc/library/http.cookies.rst:65 +"`value_decode` and :meth:`value_encode`. SimpleCookie supports strings as " +"cookie values. When setting the value, SimpleCookie calls the builtin :func:" +"`str()` to convert the value to a string. Values received from HTTP are kept " +"as strings." +msgstr "" +"Cette classe dérive de :class:`BaseCookie`. Elle surcharge les méthodes :" +"meth:`value_decode` et :meth:`value_encode`. **SimpleCookie** gère les " +"chaines de caractères pour spécifier des valeurs de cookies. Lorsque la " +"valeur est définie, **SimpleCookie** appelle la fonction native :func:" +"`str()` pour convertir la valeur en chaine de caractères. Les valeurs reçues " +"par HTTP sont gardées comme chaines." + +#: ../Doc/library/http.cookies.rst:66 msgid "Module :mod:`http.cookiejar`" -msgstr "" +msgstr "Module :mod:`http.cookiejar`" -#: ../Doc/library/http.cookies.rst:64 +#: ../Doc/library/http.cookies.rst:65 msgid "" "HTTP cookie handling for web *clients*. The :mod:`http.cookiejar` and :mod:" "`http.cookies` modules do not depend on each other." msgstr "" +"Gestion de témoins HTTP pour *clients* web. Les modules :mod:`http." +"cookiejar` et :mod:`http.cookies` ne dépendent pas l'un de l'autre." -#: ../Doc/library/http.cookies.rst:67 +#: ../Doc/library/http.cookies.rst:68 msgid ":rfc:`2109` - HTTP State Management Mechanism" -msgstr "" +msgstr ":rfc:`2109` - HTTP State Management Mechanism" -#: ../Doc/library/http.cookies.rst:68 +#: ../Doc/library/http.cookies.rst:69 msgid "This is the state management specification implemented by this module." -msgstr "" +msgstr "Spécification de gestion d'états implantée par ce module." -#: ../Doc/library/http.cookies.rst:74 +#: ../Doc/library/http.cookies.rst:75 msgid "Cookie Objects" -msgstr "" +msgstr "Objets *Cookie*" -#: ../Doc/library/http.cookies.rst:79 +#: ../Doc/library/http.cookies.rst:80 msgid "" -"Return a decoded value from a string representation. Return value can be any " -"type. This method does nothing in :class:`BaseCookie` --- it exists so it " -"can be overridden." +"Return a tuple ``(real_value, coded_value)`` from a string representation. " +"``real_value`` can be any type. This method does no decoding in :class:" +"`BaseCookie` --- it exists so it can be overridden." msgstr "" +"Renvoie une paire ``(real_value, coded_value)`` depuis une représentation de " +"chaine. ``real_value`` peut être de n’importe quel type. Cette méthode ne " +"décode rien dans :class:`BaseCookie` – elle existe pour être surchargée." -#: ../Doc/library/http.cookies.rst:86 +#: ../Doc/library/http.cookies.rst:87 msgid "" -"Return an encoded value. *val* can be any type, but return value must be a " -"string. This method does nothing in :class:`BaseCookie` --- it exists so it " -"can be overridden." +"Return a tuple ``(real_value, coded_value)``. *val* can be any type, but " +"``coded_value`` will always be converted to a string. This method does no " +"encoding in :class:`BaseCookie` --- it exists so it can be overridden." msgstr "" +"Renvoie une paire ``(real_value, coded_value)``. *val* peut être de " +"n’importe quel type, mais ``coded_value`` est toujours converti en chaine de " +"caractères. Cette méthode n’encode pas dans :class:`BaseCookie` – elle " +"existe pour être surchargée." -#: ../Doc/library/http.cookies.rst:90 +#: ../Doc/library/http.cookies.rst:92 msgid "" "In general, it should be the case that :meth:`value_encode` and :meth:" "`value_decode` are inverses on the range of *value_decode*." msgstr "" +"Généralement, les méthodes :meth:`value_encode` et :meth:`value_decode` " +"doivent être inverses l'une de l'autre, c'est-à-dire qu'en envoyant la " +"sortie de l'un dans l'entrée de l'autre la valeur finale doit être égale à " +"la valeur initiale." -#: ../Doc/library/http.cookies.rst:96 +#: ../Doc/library/http.cookies.rst:98 msgid "" "Return a string representation suitable to be sent as HTTP headers. *attrs* " "and *header* are sent to each :class:`Morsel`'s :meth:`output` method. *sep* " "is used to join the headers together, and is by default the combination " "``'\\r\\n'`` (CRLF)." msgstr "" +"Renvoie une représentation textuelle compatible avec les en-têtes HTTP. " +"*attrs et *header* sont envoyés à la méthode :meth:`output` de chaque " +"classe :class:`Morsel`. *sep* est le séparateur à utiliser pour joindre les " +"valeurs d'en-têtes. Sa valeur par défaut est ``'\\r\\n'`` (CRLF)." -#: ../Doc/library/http.cookies.rst:104 +#: ../Doc/library/http.cookies.rst:106 msgid "" "Return an embeddable JavaScript snippet, which, if run on a browser which " "supports JavaScript, will act the same as if the HTTP headers was sent." msgstr "" +"Renvoie un extrait de code JavaScript qui, lorsque exécuté par un navigateur " +"qui supporte le JavaScript, va fonctionner de la même manière que si les en-" +"têtes HTTP avaient été envoyés." -#: ../Doc/library/http.cookies.rst:107 ../Doc/library/http.cookies.rst:195 -#: ../Doc/library/http.cookies.rst:203 +#: ../Doc/library/http.cookies.rst:109 ../Doc/library/http.cookies.rst:197 +#: ../Doc/library/http.cookies.rst:205 msgid "The meaning for *attrs* is the same as in :meth:`output`." -msgstr "" +msgstr "*attrs* a la même signification que dans la méthode :meth:`output`." -#: ../Doc/library/http.cookies.rst:112 +#: ../Doc/library/http.cookies.rst:114 msgid "" "If *rawdata* is a string, parse it as an ``HTTP_COOKIE`` and add the values " "found there as :class:`Morsel`\\ s. If it is a dictionary, it is equivalent " "to::" msgstr "" +"Si *rawdata* est une chaine de caractères, l'analyser comme étant un " +"``HTTP_COOKIE`` et ajouter les valeurs trouvées en tant que :class:`Morsel`" +"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::" -#: ../Doc/library/http.cookies.rst:122 +#: ../Doc/library/http.cookies.rst:124 msgid "Morsel Objects" -msgstr "" +msgstr "Objets *Morsel*" -#: ../Doc/library/http.cookies.rst:127 +#: ../Doc/library/http.cookies.rst:129 msgid "Abstract a key/value pair, which has some :rfc:`2109` attributes." msgstr "" +"Abstraction de paire clé / valeur, accompagnée d'attributs provenant de la " +"spécification :rfc:`2109`." -#: ../Doc/library/http.cookies.rst:129 +#: ../Doc/library/http.cookies.rst:131 msgid "" "Morsels are dictionary-like objects, whose set of keys is constant --- the " "valid :rfc:`2109` attributes, which are" msgstr "" +"Les objets *Morsel* sont des objets compatibles dictionnaire, dont " +"l'ensemble des clés est fixe et égal aux attributs :rfc:`2109` valides, qui " +"sont" -#: ../Doc/library/http.cookies.rst:132 +#: ../Doc/library/http.cookies.rst:134 msgid "``expires``" msgstr "``expires``" -#: ../Doc/library/http.cookies.rst:133 +#: ../Doc/library/http.cookies.rst:135 msgid "``path``" msgstr "``path``" -#: ../Doc/library/http.cookies.rst:134 +#: ../Doc/library/http.cookies.rst:136 msgid "``comment``" msgstr "``comment``" -#: ../Doc/library/http.cookies.rst:135 +#: ../Doc/library/http.cookies.rst:137 msgid "``domain``" msgstr "``domain``" -#: ../Doc/library/http.cookies.rst:136 +#: ../Doc/library/http.cookies.rst:138 msgid "``max-age``" msgstr "``max-age``" -#: ../Doc/library/http.cookies.rst:137 +#: ../Doc/library/http.cookies.rst:139 msgid "``secure``" msgstr "``secure``" -#: ../Doc/library/http.cookies.rst:138 +#: ../Doc/library/http.cookies.rst:140 msgid "``version``" msgstr "``version``" -#: ../Doc/library/http.cookies.rst:139 +#: ../Doc/library/http.cookies.rst:141 msgid "``httponly``" msgstr "``httponly``" -#: ../Doc/library/http.cookies.rst:141 +#: ../Doc/library/http.cookies.rst:143 msgid "" "The attribute :attr:`httponly` specifies that the cookie is only transferred " "in HTTP requests, and is not accessible through JavaScript. This is intended " "to mitigate some forms of cross-site scripting." msgstr "" +"L'attribut :attr:`httponly` spécifie que le témoin transféré dans les " +"requêtes HTTP n'est pas accessible par le biais de JavaScript. Il s'agit " +"d'une contremesure à certaines attaques de scripts inter-sites (*XSS*)." -#: ../Doc/library/http.cookies.rst:145 +#: ../Doc/library/http.cookies.rst:147 msgid "The keys are case-insensitive and their default value is ``''``." msgstr "" +"Les clés ne sont pas sensibles à la casse, leur valeur par défaut est ``''``." -#: ../Doc/library/http.cookies.rst:147 +#: ../Doc/library/http.cookies.rst:149 msgid "" ":meth:`~Morsel.__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel." "value` into account." msgstr "" +"Dorénavant, :meth:`~Morsel.__eq__` prend en compte :attr:`~Morsel.key` et :" +"attr:`~Morsel.value`." -#: ../Doc/library/http.cookies.rst:151 +#: ../Doc/library/http.cookies.rst:153 msgid "" "Attributes :attr:`~Morsel.key`, :attr:`~Morsel.value` and :attr:`~Morsel." "coded_value` are read-only. Use :meth:`~Morsel.set` for setting them." msgstr "" +"Les attributs :attr:`~Morsel.key`, :attr:`~Morsel.value` et :attr:`~Morsel." +"coded_value` sont en lecture seule. Utilisez :meth:`~Morsel.set` pour les " +"assigner." -#: ../Doc/library/http.cookies.rst:159 +#: ../Doc/library/http.cookies.rst:161 msgid "The value of the cookie." -msgstr "" +msgstr "La valeur du témoin." -#: ../Doc/library/http.cookies.rst:164 +#: ../Doc/library/http.cookies.rst:166 msgid "The encoded value of the cookie --- this is what should be sent." -msgstr "" +msgstr "La valeur codée du témoin. C'est celle qui doit être transférée." -#: ../Doc/library/http.cookies.rst:169 +#: ../Doc/library/http.cookies.rst:171 msgid "The name of the cookie." -msgstr "" +msgstr "Le nom du témoin." -#: ../Doc/library/http.cookies.rst:174 +#: ../Doc/library/http.cookies.rst:176 msgid "Set the *key*, *value* and *coded_value* attributes." -msgstr "" +msgstr "Assigne les attributs *key*, *value* et *coded_value*." -#: ../Doc/library/http.cookies.rst:179 +#: ../Doc/library/http.cookies.rst:181 msgid "Whether *K* is a member of the set of keys of a :class:`Morsel`." -msgstr "" +msgstr "Renvoie si *K* est membre des clés d'un :class:`Morsel`." -#: ../Doc/library/http.cookies.rst:184 +#: ../Doc/library/http.cookies.rst:186 msgid "" "Return a string representation of the Morsel, suitable to be sent as an HTTP " "header. By default, all the attributes are included, unless *attrs* is " "given, in which case it should be a list of attributes to use. *header* is " "by default ``\"Set-Cookie:\"``." msgstr "" +"Renvoie une représentation textuelle du *Morsel* compatible avec les en-" +"têtes HTTP. Par défaut, tous les attributs sont inclus, à moins que *attrs* " +"ne soit renseigné. Dans ce cas la valeur doit être une liste d'attributs à " +"utiliser. Par défaut, *header* a la valeur ``\"Set-Cookie:\"``." -#: ../Doc/library/http.cookies.rst:192 +#: ../Doc/library/http.cookies.rst:194 msgid "" "Return an embeddable JavaScript snippet, which, if run on a browser which " "supports JavaScript, will act the same as if the HTTP header was sent." msgstr "" +"Renvoie un extrait de code JavaScript qui, lorsque exécuté par un navigateur " +"qui supporte le JavaScript, va fonctionner de la même manière que si les en-" +"têtes HTTP avaient été envoyés." -#: ../Doc/library/http.cookies.rst:200 +#: ../Doc/library/http.cookies.rst:202 msgid "" "Return a string representing the Morsel, without any surrounding HTTP or " "JavaScript." msgstr "" +"Renvoie une chaine de caractères représentant le *Morsel*, nettoyé de son " +"contexte HTTP ou JavaScript." -#: ../Doc/library/http.cookies.rst:208 +#: ../Doc/library/http.cookies.rst:210 msgid "" "Update the values in the Morsel dictionary with the values in the dictionary " "*values*. Raise an error if any of the keys in the *values* dict is not a " "valid :rfc:`2109` attribute." msgstr "" +"Met à jour les valeurs du dictionnaire du *Morsel* avec les valeurs " +"provenant du dictionnaire *values*. Lève une erreur si une des clés n'est " +"pas un attribut :rfc:`2109` valide." -#: ../Doc/library/http.cookies.rst:212 +#: ../Doc/library/http.cookies.rst:214 msgid "an error is raised for invalid keys." -msgstr "" +msgstr "une erreur est levée pour les clés invalides." -#: ../Doc/library/http.cookies.rst:218 +#: ../Doc/library/http.cookies.rst:220 msgid "Return a shallow copy of the Morsel object." -msgstr "" +msgstr "Renvoie une copie superficielle de l'objet *Morsel*." -#: ../Doc/library/http.cookies.rst:220 +#: ../Doc/library/http.cookies.rst:222 msgid "return a Morsel object instead of a dict." -msgstr "" +msgstr "renvoie un objet *Morsel* au lieu d'un ``dict``." -#: ../Doc/library/http.cookies.rst:226 +#: ../Doc/library/http.cookies.rst:228 msgid "" "Raise an error if key is not a valid :rfc:`2109` attribute, otherwise behave " "the same as :meth:`dict.setdefault`." msgstr "" +"Lève une erreur si la clé n'est pas un attribut :rfc:`2109` valide, sinon " +"fonctionne de la même manière que :meth:`dict.setdefault`." -#: ../Doc/library/http.cookies.rst:233 +#: ../Doc/library/http.cookies.rst:235 msgid "Example" msgstr "Exemple" -#: ../Doc/library/http.cookies.rst:235 +#: ../Doc/library/http.cookies.rst:237 msgid "" "The following example demonstrates how to use the :mod:`http.cookies` module." msgstr "" +"L'exemple suivant montre comment utiliser le module :mod:`http.cookies`." diff --git a/library/http.po b/library/http.po index fc730387e..206d2dc93 100644 --- a/library/http.po +++ b/library/http.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" "PO-Revision-Date: 2018-09-27 11:39+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/http.rst:2 msgid ":mod:`http` --- HTTP modules" -msgstr ":mod:`http` --- modules HTTP" +msgstr ":mod:`http` — modules HTTP" #: ../Doc/library/http.rst:7 msgid "**Source code:** :source:`Lib/http/__init__.py`" @@ -557,8 +557,8 @@ msgid "``416``" msgstr "``416``" #: ../Doc/library/http.rst:99 -msgid "``REQUEST_RANGE_NOT_SATISFIABLE``" -msgstr "``REQUEST_RANGE_NOT_SATISFIABLE``" +msgid "``REQUESTED_RANGE_NOT_SATISFIABLE``" +msgstr "``REQUESTED_RANGE_NOT_SATISFIABLE``" #: ../Doc/library/http.rst:99 msgid "HTTP/1.1 Range Requests :rfc:`7233`, Section 4.4" diff --git a/library/http.server.po b/library/http.server.po index af2c97831..2375b78ca 100644 --- a/library/http.server.po +++ b/library/http.server.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -27,14 +27,20 @@ msgid "" "This module defines classes for implementing HTTP servers (Web servers)." msgstr "" -#: ../Doc/library/http.server.rst:19 +#: ../Doc/library/http.server.rst:21 +msgid "" +":mod:`http.server` is not recommended for production. It only implements " +"basic security checks." +msgstr "" + +#: ../Doc/library/http.server.rst:24 msgid "" "One class, :class:`HTTPServer`, is a :class:`socketserver.TCPServer` " "subclass. It creates and listens at the HTTP socket, dispatching the " "requests to a handler. Code to create and run the server looks like this::" msgstr "" -#: ../Doc/library/http.server.rst:31 +#: ../Doc/library/http.server.rst:36 msgid "" "This class builds on the :class:`~socketserver.TCPServer` class by storing " "the server address as instance variables named :attr:`server_name` and :attr:" @@ -42,7 +48,7 @@ msgid "" "the handler's :attr:`server` instance variable." msgstr "" -#: ../Doc/library/http.server.rst:38 +#: ../Doc/library/http.server.rst:43 msgid "" "This class is identical to HTTPServer but uses threads to handle requests by " "using the :class:`~socketserver.ThreadingMixIn`. This is useful to handle " @@ -50,14 +56,14 @@ msgid "" "indefinitely." msgstr "" -#: ../Doc/library/http.server.rst:46 +#: ../Doc/library/http.server.rst:51 msgid "" "The :class:`HTTPServer` and :class:`ThreadingHTTPServer` must be given a " "*RequestHandlerClass* on instantiation, of which this module provides three " "different variants:" msgstr "" -#: ../Doc/library/http.server.rst:52 +#: ../Doc/library/http.server.rst:57 msgid "" "This class is used to handle the HTTP requests that arrive at the server. " "By itself, it cannot respond to any actual HTTP requests; it must be " @@ -66,7 +72,7 @@ msgid "" "and methods for use by subclasses." msgstr "" -#: ../Doc/library/http.server.rst:58 +#: ../Doc/library/http.server.rst:63 msgid "" "The handler will parse the request and the headers, then call a method " "specific to the request type. The method name is constructed from the " @@ -76,28 +82,28 @@ msgid "" "override or extend the :meth:`__init__` method." msgstr "" -#: ../Doc/library/http.server.rst:65 +#: ../Doc/library/http.server.rst:70 msgid ":class:`BaseHTTPRequestHandler` has the following instance variables:" msgstr "" -#: ../Doc/library/http.server.rst:69 +#: ../Doc/library/http.server.rst:74 msgid "" "Contains a tuple of the form ``(host, port)`` referring to the client's " "address." msgstr "" -#: ../Doc/library/http.server.rst:74 +#: ../Doc/library/http.server.rst:79 msgid "Contains the server instance." msgstr "" -#: ../Doc/library/http.server.rst:78 +#: ../Doc/library/http.server.rst:83 msgid "" "Boolean that should be set before :meth:`handle_one_request` returns, " "indicating if another request may be expected, or if the connection should " "be shut down." msgstr "" -#: ../Doc/library/http.server.rst:84 +#: ../Doc/library/http.server.rst:89 msgid "" "Contains the string representation of the HTTP request line. The terminating " "CRLF is stripped. This attribute should be set by :meth:" @@ -105,20 +111,20 @@ msgid "" "set to the empty string." msgstr "" -#: ../Doc/library/http.server.rst:91 +#: ../Doc/library/http.server.rst:96 msgid "Contains the command (request type). For example, ``'GET'``." msgstr "" -#: ../Doc/library/http.server.rst:95 +#: ../Doc/library/http.server.rst:100 msgid "Contains the request path." msgstr "" -#: ../Doc/library/http.server.rst:99 +#: ../Doc/library/http.server.rst:104 msgid "" "Contains the version string from the request. For example, ``'HTTP/1.0'``." msgstr "" -#: ../Doc/library/http.server.rst:103 +#: ../Doc/library/http.server.rst:108 msgid "" "Holds an instance of the class specified by the :attr:`MessageClass` class " "variable. This instance parses and manages the headers in the HTTP request. " @@ -127,42 +133,42 @@ msgid "" "valid :rfc:`2822` style header." msgstr "" -#: ../Doc/library/http.server.rst:111 +#: ../Doc/library/http.server.rst:116 msgid "" "An :class:`io.BufferedIOBase` input stream, ready to read from the start of " "the optional input data." msgstr "" -#: ../Doc/library/http.server.rst:116 +#: ../Doc/library/http.server.rst:121 msgid "" "Contains the output stream for writing a response back to the client. Proper " "adherence to the HTTP protocol must be used when writing to this stream in " "order to achieve successful interoperation with HTTP clients." msgstr "" -#: ../Doc/library/http.server.rst:121 +#: ../Doc/library/http.server.rst:126 msgid "This is an :class:`io.BufferedIOBase` stream." msgstr "" -#: ../Doc/library/http.server.rst:124 +#: ../Doc/library/http.server.rst:129 msgid ":class:`BaseHTTPRequestHandler` has the following attributes:" msgstr "" -#: ../Doc/library/http.server.rst:128 +#: ../Doc/library/http.server.rst:133 msgid "" "Specifies the server software version. You may want to override this. The " "format is multiple whitespace-separated strings, where each string is of the " "form name[/version]. For example, ``'BaseHTTP/0.2'``." msgstr "" -#: ../Doc/library/http.server.rst:134 +#: ../Doc/library/http.server.rst:139 msgid "" "Contains the Python system version, in a form usable by the :attr:" "`version_string` method and the :attr:`server_version` class variable. For " "example, ``'Python/1.4'``." msgstr "" -#: ../Doc/library/http.server.rst:140 +#: ../Doc/library/http.server.rst:145 msgid "" "Specifies a format string that should be used by :meth:`send_error` method " "for building an error response to the client. The string is filled by " @@ -170,13 +176,13 @@ msgid "" "passed to :meth:`send_error`." msgstr "" -#: ../Doc/library/http.server.rst:147 +#: ../Doc/library/http.server.rst:152 msgid "" "Specifies the Content-Type HTTP header of error responses sent to the " "client. The default value is ``'text/html'``." msgstr "" -#: ../Doc/library/http.server.rst:152 +#: ../Doc/library/http.server.rst:157 msgid "" "This specifies the HTTP protocol version used in responses. If set to " "``'HTTP/1.1'``, the server will permit HTTP persistent connections; however, " @@ -185,14 +191,14 @@ msgid "" "backwards compatibility, the setting defaults to ``'HTTP/1.0'``." msgstr "" -#: ../Doc/library/http.server.rst:160 +#: ../Doc/library/http.server.rst:165 msgid "" "Specifies an :class:`email.message.Message`\\ -like class to parse HTTP " "headers. Typically, this is not overridden, and it defaults to :class:`http." "client.HTTPMessage`." msgstr "" -#: ../Doc/library/http.server.rst:166 +#: ../Doc/library/http.server.rst:171 msgid "" "This attribute contains a mapping of error code integers to two-element " "tuples containing a short and long message. For example, ``{code: " @@ -201,24 +207,24 @@ msgid "" "It is used by :meth:`send_response_only` and :meth:`send_error` methods." msgstr "" -#: ../Doc/library/http.server.rst:172 +#: ../Doc/library/http.server.rst:177 msgid "A :class:`BaseHTTPRequestHandler` instance has the following methods:" msgstr "" -#: ../Doc/library/http.server.rst:176 +#: ../Doc/library/http.server.rst:181 msgid "" "Calls :meth:`handle_one_request` once (or, if persistent connections are " "enabled, multiple times) to handle incoming HTTP requests. You should never " "need to override it; instead, implement appropriate :meth:`do_\\*` methods." msgstr "" -#: ../Doc/library/http.server.rst:183 +#: ../Doc/library/http.server.rst:188 msgid "" "This method will parse and dispatch the request to the appropriate :meth:`do_" "\\*` method. You should never need to override it." msgstr "" -#: ../Doc/library/http.server.rst:188 +#: ../Doc/library/http.server.rst:193 msgid "" "When a HTTP/1.1 compliant server receives an ``Expect: 100-continue`` " "request header it responds back with a ``100 Continue`` followed by ``200 " @@ -227,7 +233,7 @@ msgid "" "``417 Expectation Failed`` as a response header and ``return False``." msgstr "" -#: ../Doc/library/http.server.rst:199 +#: ../Doc/library/http.server.rst:204 msgid "" "Sends and logs a complete error reply to the client. The numeric *code* " "specifies the HTTP error code, with *message* as an optional, short, human " @@ -242,13 +248,13 @@ msgid "" "Reset Content``, ``304 Not Modified``." msgstr "" -#: ../Doc/library/http.server.rst:211 +#: ../Doc/library/http.server.rst:216 msgid "" "The error response includes a Content-Length header. Added the *explain* " "argument." msgstr "" -#: ../Doc/library/http.server.rst:217 +#: ../Doc/library/http.server.rst:222 msgid "" "Adds a response header to the headers buffer and logs the accepted request. " "The HTTP response line is written to the internal buffer, followed by " @@ -259,13 +265,13 @@ msgid "" "followed by an :meth:`end_headers` call." msgstr "" -#: ../Doc/library/http.server.rst:226 +#: ../Doc/library/http.server.rst:231 msgid "" "Headers are stored to an internal buffer and :meth:`end_headers` needs to be " "called explicitly." msgstr "" -#: ../Doc/library/http.server.rst:232 +#: ../Doc/library/http.server.rst:237 msgid "" "Adds the HTTP header to an internal buffer which will be written to the " "output stream when either :meth:`end_headers` or :meth:`flush_headers` is " @@ -274,11 +280,11 @@ msgid "" "`end_headers` MUST BE called in order to complete the operation." msgstr "" -#: ../Doc/library/http.server.rst:238 +#: ../Doc/library/http.server.rst:243 msgid "Headers are stored in an internal buffer." msgstr "" -#: ../Doc/library/http.server.rst:243 +#: ../Doc/library/http.server.rst:248 msgid "" "Sends the response header only, used for the purposes when ``100 Continue`` " "response is sent by the server to the client. The headers not buffered and " @@ -286,37 +292,37 @@ msgid "" "message corresponding the response *code* is sent." msgstr "" -#: ../Doc/library/http.server.rst:252 +#: ../Doc/library/http.server.rst:257 msgid "" "Adds a blank line (indicating the end of the HTTP headers in the response) " "to the headers buffer and calls :meth:`flush_headers()`." msgstr "" -#: ../Doc/library/http.server.rst:256 +#: ../Doc/library/http.server.rst:261 msgid "The buffered headers are written to the output stream." msgstr "" -#: ../Doc/library/http.server.rst:261 +#: ../Doc/library/http.server.rst:266 msgid "" "Finally send the headers to the output stream and flush the internal headers " "buffer." msgstr "" -#: ../Doc/library/http.server.rst:268 +#: ../Doc/library/http.server.rst:273 msgid "" "Logs an accepted (successful) request. *code* should specify the numeric " "HTTP code associated with the response. If a size of the response is " "available, then it should be passed as the *size* parameter." msgstr "" -#: ../Doc/library/http.server.rst:274 +#: ../Doc/library/http.server.rst:279 msgid "" "Logs an error when a request cannot be fulfilled. By default, it passes the " "message to :meth:`log_message`, so it takes the same arguments (*format* and " "additional values)." msgstr "" -#: ../Doc/library/http.server.rst:281 +#: ../Doc/library/http.server.rst:286 msgid "" "Logs an arbitrary message to ``sys.stderr``. This is typically overridden to " "create custom error logging mechanisms. The *format* argument is a standard " @@ -325,63 +331,63 @@ msgid "" "and current date and time are prefixed to every message logged." msgstr "" -#: ../Doc/library/http.server.rst:289 +#: ../Doc/library/http.server.rst:294 msgid "" "Returns the server software's version string. This is a combination of the :" "attr:`server_version` and :attr:`sys_version` attributes." msgstr "" -#: ../Doc/library/http.server.rst:294 +#: ../Doc/library/http.server.rst:299 msgid "" "Returns the date and time given by *timestamp* (which must be ``None`` or in " "the format returned by :func:`time.time`), formatted for a message header. " "If *timestamp* is omitted, it uses the current date and time." msgstr "" -#: ../Doc/library/http.server.rst:298 +#: ../Doc/library/http.server.rst:303 msgid "The result looks like ``'Sun, 06 Nov 1994 08:49:37 GMT'``." msgstr "" -#: ../Doc/library/http.server.rst:302 +#: ../Doc/library/http.server.rst:307 msgid "Returns the current date and time, formatted for logging." msgstr "" -#: ../Doc/library/http.server.rst:306 +#: ../Doc/library/http.server.rst:311 msgid "Returns the client address." msgstr "" -#: ../Doc/library/http.server.rst:308 +#: ../Doc/library/http.server.rst:313 msgid "" "Previously, a name lookup was performed. To avoid name resolution delays, it " "now always returns the IP address." msgstr "" -#: ../Doc/library/http.server.rst:315 +#: ../Doc/library/http.server.rst:320 msgid "" "This class serves files from the current directory and below, directly " "mapping the directory structure to HTTP requests." msgstr "" -#: ../Doc/library/http.server.rst:318 +#: ../Doc/library/http.server.rst:323 msgid "" "A lot of the work, such as parsing the request, is done by the base class :" "class:`BaseHTTPRequestHandler`. This class implements the :func:`do_GET` " "and :func:`do_HEAD` functions." msgstr "" -#: ../Doc/library/http.server.rst:322 +#: ../Doc/library/http.server.rst:327 msgid "" "The following are defined as class-level attributes of :class:" "`SimpleHTTPRequestHandler`:" msgstr "" -#: ../Doc/library/http.server.rst:327 +#: ../Doc/library/http.server.rst:332 msgid "" "This will be ``\"SimpleHTTP/\" + __version__``, where ``__version__`` is " "defined at the module level." msgstr "" -#: ../Doc/library/http.server.rst:332 +#: ../Doc/library/http.server.rst:337 msgid "" "A dictionary mapping suffixes into MIME types. The default is signified by " "an empty string, and is considered to be ``application/octet-stream``. The " @@ -389,30 +395,30 @@ msgid "" "keys." msgstr "" -#: ../Doc/library/http.server.rst:339 +#: ../Doc/library/http.server.rst:344 msgid "" "If not specified, the directory to serve is the current working directory." msgstr "" -#: ../Doc/library/http.server.rst:341 +#: ../Doc/library/http.server.rst:346 msgid "" "The :class:`SimpleHTTPRequestHandler` class defines the following methods:" msgstr "" -#: ../Doc/library/http.server.rst:345 +#: ../Doc/library/http.server.rst:350 msgid "" "This method serves the ``'HEAD'`` request type: it sends the headers it " "would send for the equivalent ``GET`` request. See the :meth:`do_GET` method " "for a more complete explanation of the possible headers." msgstr "" -#: ../Doc/library/http.server.rst:351 +#: ../Doc/library/http.server.rst:356 msgid "" "The request is mapped to a local file by interpreting the request as a path " "relative to the current working directory." msgstr "" -#: ../Doc/library/http.server.rst:354 +#: ../Doc/library/http.server.rst:359 msgid "" "If the request was mapped to a directory, the directory is checked for a " "file named ``index.html`` or ``index.htm`` (in that order). If found, the " @@ -422,7 +428,7 @@ msgid "" "func:`~os.listdir` fails." msgstr "" -#: ../Doc/library/http.server.rst:361 +#: ../Doc/library/http.server.rst:366 msgid "" "If the request was mapped to a file, it is opened. Any :exc:`OSError` " "exception in opening the requested file is mapped to a ``404``, ``'File not " @@ -433,81 +439,81 @@ msgid "" "*extensions_map* variable, and the file contents are returned." msgstr "" -#: ../Doc/library/http.server.rst:369 +#: ../Doc/library/http.server.rst:374 msgid "" "A ``'Content-type:'`` header with the guessed content type is output, " "followed by a ``'Content-Length:'`` header with the file's size and a " "``'Last-Modified:'`` header with the file's modification time." msgstr "" -#: ../Doc/library/http.server.rst:373 +#: ../Doc/library/http.server.rst:378 msgid "" "Then follows a blank line signifying the end of the headers, and then the " "contents of the file are output. If the file's MIME type starts with ``text/" "`` the file is opened in text mode; otherwise binary mode is used." msgstr "" -#: ../Doc/library/http.server.rst:377 +#: ../Doc/library/http.server.rst:382 msgid "" "For example usage, see the implementation of the :func:`test` function " "invocation in the :mod:`http.server` module." msgstr "" -#: ../Doc/library/http.server.rst:380 +#: ../Doc/library/http.server.rst:385 msgid "Support of the ``'If-Modified-Since'`` header." msgstr "" -#: ../Doc/library/http.server.rst:383 +#: ../Doc/library/http.server.rst:388 msgid "" "The :class:`SimpleHTTPRequestHandler` class can be used in the following " "manner in order to create a very basic webserver serving files relative to " "the current directory::" msgstr "" -#: ../Doc/library/http.server.rst:400 +#: ../Doc/library/http.server.rst:405 msgid "" ":mod:`http.server` can also be invoked directly using the :option:`-m` " "switch of the interpreter with a ``port number`` argument. Similar to the " "previous example, this serves files relative to the current directory::" msgstr "" -#: ../Doc/library/http.server.rst:406 +#: ../Doc/library/http.server.rst:411 msgid "" "By default, server binds itself to all interfaces. The option ``-b/--bind`` " "specifies a specific address to which it should bind. For example, the " "following command causes the server to bind to localhost only::" msgstr "" -#: ../Doc/library/http.server.rst:412 +#: ../Doc/library/http.server.rst:417 msgid "``--bind`` argument was introduced." msgstr "" -#: ../Doc/library/http.server.rst:415 +#: ../Doc/library/http.server.rst:420 msgid "" "By default, server uses the current directory. The option ``-d/--directory`` " "specifies a directory to which it should serve the files. For example, the " "following command uses a specific directory::" msgstr "" -#: ../Doc/library/http.server.rst:421 +#: ../Doc/library/http.server.rst:426 msgid "``--directory`` specify alternate directory" msgstr "" -#: ../Doc/library/http.server.rst:426 +#: ../Doc/library/http.server.rst:431 msgid "" "This class is used to serve either files or output of CGI scripts from the " "current directory and below. Note that mapping HTTP hierarchic structure to " "local directory structure is exactly as in :class:`SimpleHTTPRequestHandler`." msgstr "" -#: ../Doc/library/http.server.rst:432 +#: ../Doc/library/http.server.rst:437 msgid "" "CGI scripts run by the :class:`CGIHTTPRequestHandler` class cannot execute " "redirects (HTTP code 302), because code 200 (script output follows) is sent " "prior to execution of the CGI script. This pre-empts the status code." msgstr "" -#: ../Doc/library/http.server.rst:437 +#: ../Doc/library/http.server.rst:442 msgid "" "The class will however, run the CGI script, instead of serving it as a file, " "if it guesses it to be a CGI script. Only directory-based CGI are used --- " @@ -515,42 +521,45 @@ msgid "" "denoting CGI scripts." msgstr "" -#: ../Doc/library/http.server.rst:442 +#: ../Doc/library/http.server.rst:447 msgid "" "The :func:`do_GET` and :func:`do_HEAD` functions are modified to run CGI " "scripts and serve the output, instead of serving files, if the request leads " "to somewhere below the ``cgi_directories`` path." msgstr "" -#: ../Doc/library/http.server.rst:446 +#: ../Doc/library/http.server.rst:451 msgid "The :class:`CGIHTTPRequestHandler` defines the following data member:" msgstr "" -#: ../Doc/library/http.server.rst:450 +#: ../Doc/library/http.server.rst:455 msgid "" "This defaults to ``['/cgi-bin', '/htbin']`` and describes directories to " "treat as containing CGI scripts." msgstr "" -#: ../Doc/library/http.server.rst:453 +#: ../Doc/library/http.server.rst:458 msgid "The :class:`CGIHTTPRequestHandler` defines the following method:" msgstr "" -#: ../Doc/library/http.server.rst:457 +#: ../Doc/library/http.server.rst:462 msgid "" "This method serves the ``'POST'`` request type, only allowed for CGI " "scripts. Error 501, \"Can only POST to CGI scripts\", is output when trying " "to POST to a non-CGI url." msgstr "" -#: ../Doc/library/http.server.rst:461 +#: ../Doc/library/http.server.rst:466 msgid "" "Note that CGI scripts will be run with UID of user nobody, for security " "reasons. Problems with the CGI script will be translated to error 403." msgstr "" -#: ../Doc/library/http.server.rst:464 +#: ../Doc/library/http.server.rst:469 msgid "" ":class:`CGIHTTPRequestHandler` can be enabled in the command line by passing " "the ``--cgi`` option::" msgstr "" + +#~ msgid "Security Considerations" +#~ msgstr "Considérations de sécurité" diff --git a/library/idle.po b/library/idle.po index 926c9c529..ed9f75a75 100644 --- a/library/idle.po +++ b/library/idle.po @@ -5,454 +5,542 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2019-07-02 11:42+0200\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/idle.rst:4 msgid "IDLE" -msgstr "IDLE" +msgstr "*IDLE*" #: ../Doc/library/idle.rst:8 msgid "**Source code:** :source:`Lib/idlelib/`" -msgstr "" +msgstr "**Code source** : :source:`Lib/idlelib/`" #: ../Doc/library/idle.rst:17 msgid "IDLE is Python's Integrated Development and Learning Environment." msgstr "" +"*IDLE* est l'environnement de développement et d'apprentissage intégré de " +"Python (*Integrated Development and Learning Environment*)." #: ../Doc/library/idle.rst:19 msgid "IDLE has the following features:" -msgstr "" +msgstr "*IDLE* a les fonctionnalités suivantes :" #: ../Doc/library/idle.rst:21 msgid "coded in 100% pure Python, using the :mod:`tkinter` GUI toolkit" msgstr "" +"codé à 100% en pur Python, en utilisant l'outil d'interfaçage graphique :mod:" +"`tkinter`" #: ../Doc/library/idle.rst:23 -msgid "cross-platform: works mostly the same on Windows, Unix, and Mac OS X" +msgid "cross-platform: works mostly the same on Windows, Unix, and macOS" msgstr "" +"multi-plateformes : fonctionne de la même manière sous Windows, *Unix* et " +"*macOS*" #: ../Doc/library/idle.rst:25 msgid "" "Python shell window (interactive interpreter) with colorizing of code input, " "output, and error messages" msgstr "" +"Console Python (interpréteur interactif) avec coloration du code entré, des " +"sorties et des messages d'erreur" #: ../Doc/library/idle.rst:28 msgid "" "multi-window text editor with multiple undo, Python colorizing, smart " "indent, call tips, auto completion, and other features" msgstr "" +"éditeur de texte multi-fenêtres avec annulations multiples, coloration " +"Python, indentation automatique, aide pour les appels de fonction, " +"*autocomplétion*, parmi d'autres fonctionnalités" #: ../Doc/library/idle.rst:31 msgid "" "search within any window, replace within editor windows, and search through " "multiple files (grep)" msgstr "" +"recherche dans n'importe quelle fenêtre, remplacement dans une fenêtre " +"d'édition et recherche dans des fichiers multiples (*grep*)" #: ../Doc/library/idle.rst:34 msgid "" "debugger with persistent breakpoints, stepping, and viewing of global and " "local namespaces" msgstr "" +"débogueur avec points d'arrêt persistants, pas-à-pas et visualisation des " +"espaces de nommage locaux et globaux" #: ../Doc/library/idle.rst:37 msgid "configuration, browsers, and other dialogs" -msgstr "" +msgstr "configuration, navigateur et d'autres fenêtres de dialogue" #: ../Doc/library/idle.rst:40 msgid "Menus" -msgstr "" +msgstr "Menus" #: ../Doc/library/idle.rst:42 msgid "" "IDLE has two main window types, the Shell window and the Editor window. It " -"is possible to have multiple editor windows simultaneously. Output windows, " -"such as used for Edit / Find in Files, are a subtype of edit window. They " -"currently have the same top menu as Editor windows but a different default " -"title and context menu." +"is possible to have multiple editor windows simultaneously. On Windows and " +"Linux, each has its own top menu. Each menu documented below indicates " +"which window type it is associated with." msgstr "" +"*IDLE* a deux principaux types de fenêtre, la fenêtre de console et la " +"fenêtre d'édition. Il est possible d'avoir de multiples fenêtres d'édition " +"ouvertes simultanément. Sous Windows et Linux, chacune a son propre menu. " +"Chaque menu documenté ci-dessous indique à quel type de fenêtre il est " +"associé." -#: ../Doc/library/idle.rst:48 +#: ../Doc/library/idle.rst:47 msgid "" -"IDLE's menus dynamically change based on which window is currently selected. " -"Each menu documented below indicates which window type it is associated with." +"Output windows, such as used for Edit => Find in Files, are a subtype of " +"editor window. They currently have the same top menu but a different " +"default title and context menu." msgstr "" +"Les fenêtre d'affichage, comme celles qui sont utilisées pour *Edit => Find " +"in Files*, sont un sous-type de fenêtre d'édition. Elles possèdent " +"actuellement le même menu principal mais un titre par défaut et un menu " +"contextuel différents." -#: ../Doc/library/idle.rst:52 -msgid "File menu (Shell and Editor)" +#: ../Doc/library/idle.rst:51 +msgid "" +"On macOS, there is one application menu. It dynamically changes according " +"to the window currently selected. It has an IDLE menu, and some entries " +"described below are moved around to conform to Apple guidelines." msgstr "" +"Sous *macOS*, il y a un menu d'application. Il change dynamiquement en " +"fonction de la fenêtre active. Il a un menu *IDLE* et certaines entrées " +"décrites ci-dessous sont déplacées conformément aux directives d'Apple." + +#: ../Doc/library/idle.rst:56 +msgid "File menu (Shell and Editor)" +msgstr "Menu *File* (Console et Éditeur)" -#: ../Doc/library/idle.rst:55 +#: ../Doc/library/idle.rst:59 msgid "New File" -msgstr "" +msgstr "*New File*" -#: ../Doc/library/idle.rst:55 +#: ../Doc/library/idle.rst:59 msgid "Create a new file editing window." -msgstr "" +msgstr "Crée une nouvelle fenêtre d'édition." -#: ../Doc/library/idle.rst:58 +#: ../Doc/library/idle.rst:62 msgid "Open..." -msgstr "" +msgstr "*Open...*" -#: ../Doc/library/idle.rst:58 +#: ../Doc/library/idle.rst:62 msgid "Open an existing file with an Open dialog." msgstr "" +"Ouvre un fichier existant avec une fenêtre de dialogue pour l'ouverture." -#: ../Doc/library/idle.rst:61 +#: ../Doc/library/idle.rst:65 msgid "Recent Files" -msgstr "" +msgstr "*Recent Files*" -#: ../Doc/library/idle.rst:61 +#: ../Doc/library/idle.rst:65 msgid "Open a list of recent files. Click one to open it." msgstr "" +"Ouvre une liste des fichiers récents. Cliquez sur l'un d'eux pour l'ouvrir." -#: ../Doc/library/idle.rst:64 +#: ../Doc/library/idle.rst:68 msgid "Open Module..." -msgstr "" +msgstr "*Open Module...*" -#: ../Doc/library/idle.rst:64 +#: ../Doc/library/idle.rst:68 msgid "Open an existing module (searches sys.path)." -msgstr "" +msgstr "Ouvre un module existant (cherche dans *sys.path*)." -#: ../Doc/library/idle.rst:72 +#: ../Doc/library/idle.rst:76 msgid "Class Browser" -msgstr "" +msgstr "*Class Browser*" -#: ../Doc/library/idle.rst:71 +#: ../Doc/library/idle.rst:75 msgid "" "Show functions, classes, and methods in the current Editor file in a tree " "structure. In the shell, open a module first." msgstr "" +"Montre les fonctions, classes et méthodes dans une arborescence pour le " +"fichier en cours d'édition. Dans la console, ouvre d'abord un module." -#: ../Doc/library/idle.rst:76 +#: ../Doc/library/idle.rst:80 msgid "Path Browser" -msgstr "" +msgstr "*Path Browser*" -#: ../Doc/library/idle.rst:75 +#: ../Doc/library/idle.rst:79 msgid "" "Show sys.path directories, modules, functions, classes and methods in a tree " "structure." msgstr "" +"Affiche les dossiers de *sys.path*, les modules, fonctions, classes et " +"méthodes dans une arborescence." -#: ../Doc/library/idle.rst:82 +#: ../Doc/library/idle.rst:86 msgid "Save" -msgstr "" +msgstr "*Save*" -#: ../Doc/library/idle.rst:79 +#: ../Doc/library/idle.rst:83 msgid "" "Save the current window to the associated file, if there is one. Windows " "that have been changed since being opened or last saved have a \\* before " "and after the window title. If there is no associated file, do Save As " "instead." msgstr "" +"Enregistre la fenêtre active sous le fichier associé, s'il existe. Les " +"fenêtres qui ont été modifiées depuis leur ouverture ou leur dernier " +"enregistrement ont un \\* avant et après le titre de la fenêtre. S'il n'y a " +"aucun fichier associé, exécute *Save As* à la place." -#: ../Doc/library/idle.rst:86 +#: ../Doc/library/idle.rst:90 msgid "Save As..." -msgstr "" +msgstr "*Save As...*" -#: ../Doc/library/idle.rst:85 +#: ../Doc/library/idle.rst:89 msgid "" "Save the current window with a Save As dialog. The file saved becomes the " "new associated file for the window." msgstr "" +"Enregistre la fenêtre active avec une fenêtre de dialogue d'enregistrement. " +"Le fichier enregistré devient le nouveau fichier associé pour cette fenêtre." -#: ../Doc/library/idle.rst:90 +#: ../Doc/library/idle.rst:94 msgid "Save Copy As..." -msgstr "" +msgstr "*Save Copy As...*" -#: ../Doc/library/idle.rst:89 +#: ../Doc/library/idle.rst:93 msgid "" "Save the current window to different file without changing the associated " "file." msgstr "" +"Enregistre la fenêtre active sous un fichier différent sans changer le " +"fichier associé." -#: ../Doc/library/idle.rst:93 +#: ../Doc/library/idle.rst:97 msgid "Print Window" -msgstr "" +msgstr "*Print Window*" -#: ../Doc/library/idle.rst:93 +#: ../Doc/library/idle.rst:97 msgid "Print the current window to the default printer." -msgstr "" +msgstr "Imprime la fenêtre active avec l'imprimante par défaut." -#: ../Doc/library/idle.rst:96 +#: ../Doc/library/idle.rst:100 msgid "Close" -msgstr "" +msgstr "*Close*" -#: ../Doc/library/idle.rst:96 +#: ../Doc/library/idle.rst:100 msgid "Close the current window (ask to save if unsaved)." -msgstr "" +msgstr "Ferme la fenêtre active (demande à enregistrer si besoin)." -#: ../Doc/library/idle.rst:99 +#: ../Doc/library/idle.rst:103 msgid "Exit" -msgstr "" +msgstr "*Exit*" -#: ../Doc/library/idle.rst:99 +#: ../Doc/library/idle.rst:103 msgid "Close all windows and quit IDLE (ask to save unsaved windows)." msgstr "" +"Ferme toutes les fenêtres et quitte *IDLE* (demande à enregistrer les " +"fenêtres non sauvegardées)." -#: ../Doc/library/idle.rst:102 +#: ../Doc/library/idle.rst:106 msgid "Edit menu (Shell and Editor)" -msgstr "" +msgstr "Menu *Edit* (console et éditeur)" -#: ../Doc/library/idle.rst:106 +#: ../Doc/library/idle.rst:110 msgid "Undo" -msgstr "" +msgstr "*Undo*" -#: ../Doc/library/idle.rst:105 +#: ../Doc/library/idle.rst:109 msgid "" "Undo the last change to the current window. A maximum of 1000 changes may " "be undone." msgstr "" +"Annule le dernier changement dans la fenêtre active. Un maximum de 1000 " +"changements peut être annulé." -#: ../Doc/library/idle.rst:109 +#: ../Doc/library/idle.rst:113 msgid "Redo" -msgstr "" +msgstr "*Redo*" -#: ../Doc/library/idle.rst:109 +#: ../Doc/library/idle.rst:113 msgid "Redo the last undone change to the current window." -msgstr "" +msgstr "Ré-applique le dernier changement annulé dans la fenêtre active." -#: ../Doc/library/idle.rst:112 ../Doc/library/idle.rst:326 +#: ../Doc/library/idle.rst:116 ../Doc/library/idle.rst:353 msgid "Cut" -msgstr "" +msgstr "*Cut*" -#: ../Doc/library/idle.rst:112 ../Doc/library/idle.rst:326 +#: ../Doc/library/idle.rst:116 ../Doc/library/idle.rst:353 msgid "" "Copy selection into the system-wide clipboard; then delete the selection." msgstr "" +"Copie la sélection dans le presse-papier global ; puis supprime la sélection." -#: ../Doc/library/idle.rst:115 ../Doc/library/idle.rst:329 +#: ../Doc/library/idle.rst:119 ../Doc/library/idle.rst:356 msgid "Copy" -msgstr "" +msgstr "*Copy*" -#: ../Doc/library/idle.rst:115 ../Doc/library/idle.rst:329 +#: ../Doc/library/idle.rst:119 ../Doc/library/idle.rst:356 msgid "Copy selection into the system-wide clipboard." -msgstr "" +msgstr "Copie la sélection dans le presse-papier global." -#: ../Doc/library/idle.rst:118 ../Doc/library/idle.rst:332 +#: ../Doc/library/idle.rst:122 ../Doc/library/idle.rst:359 msgid "Paste" -msgstr "" +msgstr "*Paste*" -#: ../Doc/library/idle.rst:118 ../Doc/library/idle.rst:332 +#: ../Doc/library/idle.rst:122 ../Doc/library/idle.rst:359 msgid "Insert contents of the system-wide clipboard into the current window." -msgstr "" +msgstr "Insère le contenu du presse-papier global dans la fenêtre active." -#: ../Doc/library/idle.rst:120 +#: ../Doc/library/idle.rst:124 msgid "The clipboard functions are also available in context menus." msgstr "" +"Les fonctions du presse-papier sont aussi disponibles dans les menus " +"contextuels." -#: ../Doc/library/idle.rst:123 +#: ../Doc/library/idle.rst:127 msgid "Select All" -msgstr "" +msgstr "*Select All*" -#: ../Doc/library/idle.rst:123 +#: ../Doc/library/idle.rst:127 msgid "Select the entire contents of the current window." -msgstr "" +msgstr "Sélectionne la totalité du contenu de la fenêtre active." -#: ../Doc/library/idle.rst:126 +#: ../Doc/library/idle.rst:130 msgid "Find..." -msgstr "" +msgstr "*Find...*" -#: ../Doc/library/idle.rst:126 +#: ../Doc/library/idle.rst:130 msgid "Open a search dialog with many options" -msgstr "" +msgstr "Ouvre une fenêtre de recherche avec de nombreuses options" -#: ../Doc/library/idle.rst:129 +#: ../Doc/library/idle.rst:133 msgid "Find Again" -msgstr "" +msgstr "*Find Again*" -#: ../Doc/library/idle.rst:129 +#: ../Doc/library/idle.rst:133 msgid "Repeat the last search, if there is one." -msgstr "" +msgstr "Répète la dernière recherche, s'il y en a une." -#: ../Doc/library/idle.rst:132 +#: ../Doc/library/idle.rst:136 msgid "Find Selection" -msgstr "" +msgstr "*Find Selection*" -#: ../Doc/library/idle.rst:132 +#: ../Doc/library/idle.rst:136 msgid "Search for the currently selected string, if there is one." -msgstr "" +msgstr "Cherche la chaîne sélectionnée, s'il y en a une." -#: ../Doc/library/idle.rst:135 +#: ../Doc/library/idle.rst:139 msgid "Find in Files..." -msgstr "" +msgstr "*Find in Files...*" -#: ../Doc/library/idle.rst:135 +#: ../Doc/library/idle.rst:139 msgid "Open a file search dialog. Put results in a new output window." msgstr "" +"Ouvre une fenêtre de recherche de fichiers. Présente les résultats dans une " +"nouvelle fenêtre d'affichage." -#: ../Doc/library/idle.rst:138 +#: ../Doc/library/idle.rst:142 msgid "Replace..." -msgstr "" +msgstr "*Replace...*" -#: ../Doc/library/idle.rst:138 +#: ../Doc/library/idle.rst:142 msgid "Open a search-and-replace dialog." -msgstr "" +msgstr "Ouvre une fenêtre de recherche et remplacement." -#: ../Doc/library/idle.rst:141 +#: ../Doc/library/idle.rst:145 msgid "Go to Line" -msgstr "" +msgstr "*Go to Line*" -#: ../Doc/library/idle.rst:141 +#: ../Doc/library/idle.rst:145 msgid "Move cursor to the line number requested and make that line visible." msgstr "" +"Déplace le curseur sur la ligne de numéro demandé et rend cette ligne " +"visible." -#: ../Doc/library/idle.rst:145 +#: ../Doc/library/idle.rst:149 msgid "Show Completions" -msgstr "" +msgstr "*Show Completions*" -#: ../Doc/library/idle.rst:144 +#: ../Doc/library/idle.rst:148 msgid "" -"Open a scrollable list allowing selection of keywords and attributes. See " -"Completions in the Tips sections below." +"Open a scrollable list allowing selection of keywords and attributes. See :" +"ref:`Completions ` in the Editing and navigation section below." msgstr "" +"Ouvre une liste navigable permettant la sélection de mots-clefs et " +"attributs. Reportez-vous à :ref:`Complétions ` dans la section " +"Édition et navigation ci-dessous." -#: ../Doc/library/idle.rst:149 +#: ../Doc/library/idle.rst:153 msgid "Expand Word" -msgstr "" +msgstr "*Expand Word*" -#: ../Doc/library/idle.rst:148 +#: ../Doc/library/idle.rst:152 msgid "" "Expand a prefix you have typed to match a full word in the same window; " "repeat to get a different expansion." msgstr "" +"Complète un préfixe que vous avez saisi pour correspondre à un mot complet " +"de la même fenêtre ; recommencez pour obtenir un autre complément." -#: ../Doc/library/idle.rst:153 +#: ../Doc/library/idle.rst:158 msgid "Show call tip" -msgstr "" +msgstr "*Show call tip*" -#: ../Doc/library/idle.rst:152 +#: ../Doc/library/idle.rst:156 msgid "" "After an unclosed parenthesis for a function, open a small window with " -"function parameter hints." +"function parameter hints. See :ref:`Calltips ` in the Editing and " +"navigation section below." msgstr "" +"Après une parenthèse ouverte pour une fonction, ouvre une petite fenêtre " +"avec des indications sur les paramètres de la fonction. Reportez-vous à :ref:" +"`Aides aux appels ` dans la section Édition et navigation ci-" +"dessous." -#: ../Doc/library/idle.rst:156 +#: ../Doc/library/idle.rst:161 msgid "Show surrounding parens" -msgstr "" +msgstr "*Show surrounding parens*" -#: ../Doc/library/idle.rst:156 +#: ../Doc/library/idle.rst:161 msgid "Highlight the surrounding parenthesis." -msgstr "" +msgstr "Surligne les parenthèses encadrantes." -#: ../Doc/library/idle.rst:159 +#: ../Doc/library/idle.rst:166 msgid "Format menu (Editor window only)" -msgstr "" +msgstr "Menu *Format* (fenêtre d'édition uniquement)" -#: ../Doc/library/idle.rst:162 +#: ../Doc/library/idle.rst:169 msgid "Indent Region" -msgstr "" +msgstr "*Indent Region*" -#: ../Doc/library/idle.rst:162 +#: ../Doc/library/idle.rst:169 msgid "Shift selected lines right by the indent width (default 4 spaces)." msgstr "" +"Décale les lignes sélectionnées vers la droite d'un niveau d'indentation (4 " +"espaces par défaut)." -#: ../Doc/library/idle.rst:165 +#: ../Doc/library/idle.rst:172 msgid "Dedent Region" -msgstr "" +msgstr "*Dedent Region*" -#: ../Doc/library/idle.rst:165 +#: ../Doc/library/idle.rst:172 msgid "Shift selected lines left by the indent width (default 4 spaces)." msgstr "" +"Décale les lignes sélectionnées vers la gauche d'un niveau d'indentation (4 " +"espaces par défaut)." -#: ../Doc/library/idle.rst:168 +#: ../Doc/library/idle.rst:175 msgid "Comment Out Region" -msgstr "" +msgstr "*Comment Out Region*" -#: ../Doc/library/idle.rst:168 +#: ../Doc/library/idle.rst:175 msgid "Insert ## in front of selected lines." -msgstr "" +msgstr "Insère ## devant les lignes sélectionnées." -#: ../Doc/library/idle.rst:171 +#: ../Doc/library/idle.rst:178 msgid "Uncomment Region" -msgstr "" +msgstr "*Uncomment Region*" -#: ../Doc/library/idle.rst:171 +#: ../Doc/library/idle.rst:178 msgid "Remove leading # or ## from selected lines." -msgstr "" +msgstr "Enlève les # ou ## au début des lignes sélectionnées." -#: ../Doc/library/idle.rst:175 +#: ../Doc/library/idle.rst:182 msgid "Tabify Region" -msgstr "" +msgstr "*Tabify Region*" -#: ../Doc/library/idle.rst:174 +#: ../Doc/library/idle.rst:181 msgid "" "Turn *leading* stretches of spaces into tabs. (Note: We recommend using 4 " "space blocks to indent Python code.)" msgstr "" +"Transforme les blocs d'espaces *au début des lignes* en tabulations. " +"(Note : Nous recommandons d'utiliser des blocs de 4 espaces pour indenter du " +"code Python.)" -#: ../Doc/library/idle.rst:178 +#: ../Doc/library/idle.rst:185 msgid "Untabify Region" -msgstr "" +msgstr "*Untabify Region*" -#: ../Doc/library/idle.rst:178 +#: ../Doc/library/idle.rst:185 msgid "Turn *all* tabs into the correct number of spaces." -msgstr "" +msgstr "Transforme *toutes* les tabulations en le bon nombre d'espaces." -#: ../Doc/library/idle.rst:181 +#: ../Doc/library/idle.rst:188 msgid "Toggle Tabs" -msgstr "" +msgstr "*Toggle Tabs*" -#: ../Doc/library/idle.rst:181 +#: ../Doc/library/idle.rst:188 msgid "Open a dialog to switch between indenting with spaces and tabs." msgstr "" +"Ouvre une boîte de dialogue permettant de passer des espaces aux tabulations " +"(et inversement) pour l'indentation." -#: ../Doc/library/idle.rst:185 +#: ../Doc/library/idle.rst:192 msgid "New Indent Width" -msgstr "" +msgstr "*New Indent Width*" -#: ../Doc/library/idle.rst:184 +#: ../Doc/library/idle.rst:191 msgid "" "Open a dialog to change indent width. The accepted default by the Python " "community is 4 spaces." msgstr "" +"Ouvre une boîte de dialogue pour changer la taille de l'indentation. La " +"valeur par défaut acceptée par la communauté Python est de 4 espaces." -#: ../Doc/library/idle.rst:190 +#: ../Doc/library/idle.rst:197 msgid "Format Paragraph" -msgstr "" +msgstr "*Format Paragraph*" -#: ../Doc/library/idle.rst:188 +#: ../Doc/library/idle.rst:195 msgid "" "Reformat the current blank-line-delimited paragraph in comment block or " "multiline string or selected line in a string. All lines in the paragraph " "will be formatted to less than N columns, where N defaults to 72." msgstr "" +"Reformate le paragraphe actif, délimité par des lignes vides, en un bloc de " +"commentaires, ou la chaîne de caractères multi-lignes ou ligne sélectionnée " +"en chaîne de caractères. Toutes les lignes du paragraphe seront formatées à " +"moins de N colonnes, avec N valant 72 par défaut." -#: ../Doc/library/idle.rst:195 +#: ../Doc/library/idle.rst:202 msgid "Strip trailing whitespace" -msgstr "" +msgstr "*Strip trailing whitespace*" -#: ../Doc/library/idle.rst:193 +#: ../Doc/library/idle.rst:200 msgid "" "Remove trailing space and other whitespace characters after the last non-" "whitespace character of a line by applying str.rstrip to each line, " "including lines within multiline strings." msgstr "" +"Enlève les espaces et autres caractères blancs après le dernier caractère " +"non blanc d'une ligne en appliquant *str.rstrip* à chaque ligne, y compris " +"les lignes avec des chaînes de caractère multi-lignes." -#: ../Doc/library/idle.rst:201 +#: ../Doc/library/idle.rst:208 msgid "Run menu (Editor window only)" -msgstr "" +msgstr "Menu *Run* (fenêtre d'édition uniquement)" -#: ../Doc/library/idle.rst:204 +#: ../Doc/library/idle.rst:213 msgid "Python Shell" -msgstr "" +msgstr "Console Python" -#: ../Doc/library/idle.rst:204 +#: ../Doc/library/idle.rst:213 msgid "Open or wake up the Python Shell window." -msgstr "" +msgstr "Ouvre ou active la fenêtre de console Python." -#: ../Doc/library/idle.rst:211 +#: ../Doc/library/idle.rst:222 msgid "Check Module" -msgstr "" +msgstr "*Check Module*" -#: ../Doc/library/idle.rst:207 +#: ../Doc/library/idle.rst:218 msgid "" "Check the syntax of the module currently open in the Editor window. If the " "module has not been saved IDLE will either prompt the user to save or " @@ -460,58 +548,113 @@ msgid "" "there is a syntax error, the approximate location is indicated in the Editor " "window." msgstr "" +"Vérifie la syntaxe du module actuellement ouvert dans la fenêtre d'édition. " +"Si le module n'a pas été enregistré, *IDLE* va soit demander à enregistrer à " +"l'utilisateur, soit enregistrer automatiquement, selon l'option sélectionnée " +"dans l'onglet *General* de la fenêtre de configuration d'*IDLE*. S'il y a " +"une erreur de syntaxe, l'emplacement approximatif est indiqué dans la " +"fenêtre d'édition." -#: ../Doc/library/idle.rst:220 +#: ../Doc/library/idle.rst:233 msgid "Run Module" -msgstr "" +msgstr "*Run Module*" -#: ../Doc/library/idle.rst:214 +#: ../Doc/library/idle.rst:227 msgid "" -"Do Check Module (above). If no error, restart the shell to clean the " -"environment, then execute the module. Output is displayed in the Shell " -"window. Note that output requires use of ``print`` or ``write``. When " +"Do :ref:`Check Module `. If no error, restart the shell to " +"clean the environment, then execute the module. Output is displayed in the " +"Shell window. Note that output requires use of ``print`` or ``write``. When " "execution is complete, the Shell retains focus and displays a prompt. At " "this point, one may interactively explore the result of execution. This is " "similar to executing a file with ``python -i file`` at a command line." msgstr "" +"Applique :ref:`Check Module ` (ci-dessus). S'il n'y a pas " +"d'erreur, redémarre la console pour nettoyer l'environnement, puis exécute " +"le module. Les sorties sont affichées dans la fenêtre de console. Notez " +"qu'une sortie requiert l'utilisation de ``print`` ou ``write``. Quand " +"l'exécution est terminée, la console reste active et affiche une invite de " +"commande. À ce moment, vous pouvez explorer interactivement le résultat de " +"l'exécution. Ceci est similaire à l'exécution d'un fichier avec ``python -i " +"fichier`` sur un terminal." -#: ../Doc/library/idle.rst:223 -msgid "Shell menu (Shell window only)" +#: ../Doc/library/idle.rst:241 +msgid "Run... Customized" +msgstr "Run... Customized" + +#: ../Doc/library/idle.rst:238 +msgid "" +"Same as :ref:`Run Module `, but run the module with customized " +"settings. *Command Line Arguments* extend :data:`sys.argv` as if passed on " +"a command line. The module can be run in the Shell without restarting." msgstr "" +"Similaire à :ref:`Run Module `, mais lance le module avec des " +"paramètres personnalisés. Les *Command Line Arguments* se rajoutent à :data:" +"`sys.argv` comme s'ils étaient passés par la ligne de commande. Le module " +"peut être lancé dans le terminal sans avoir à le redémarrer." + +#: ../Doc/library/idle.rst:244 +msgid "Shell menu (Shell window only)" +msgstr "Menu Shell (fenêtre de console uniquement)" -#: ../Doc/library/idle.rst:226 +#: ../Doc/library/idle.rst:247 msgid "View Last Restart" -msgstr "" +msgstr "*View Last Restart*" -#: ../Doc/library/idle.rst:226 +#: ../Doc/library/idle.rst:247 msgid "Scroll the shell window to the last Shell restart." msgstr "" +"Fait défiler la fenêtre de console jusqu'au dernier redémarrage de la " +"console." -#: ../Doc/library/idle.rst:229 +#: ../Doc/library/idle.rst:250 msgid "Restart Shell" -msgstr "" +msgstr "*Restart Shell*" -#: ../Doc/library/idle.rst:229 +#: ../Doc/library/idle.rst:250 msgid "Restart the shell to clean the environment." +msgstr "Redémarre la console pour nettoyer l'environnement." + +#: ../Doc/library/idle.rst:253 +msgid "Previous History" +msgstr "*Previous History*" + +#: ../Doc/library/idle.rst:253 +msgid "" +"Cycle through earlier commands in history which match the current entry." msgstr "" +"Parcours les commandes précédentes dans l'historique qui correspondent à " +"l'entrée actuelle." -#: ../Doc/library/idle.rst:232 -msgid "Interrupt Execution" +#: ../Doc/library/idle.rst:256 +msgid "Next History" +msgstr "*Next History*" + +#: ../Doc/library/idle.rst:256 +msgid "Cycle through later commands in history which match the current entry." msgstr "" +"Parcours les commandes suivantes dans l'historique qui correspondent à " +"l'entrée actuelle." + +#: ../Doc/library/idle.rst:259 +msgid "Interrupt Execution" +msgstr "*Interrupt Execution*" -#: ../Doc/library/idle.rst:232 +#: ../Doc/library/idle.rst:259 msgid "Stop a running program." -msgstr "" +msgstr "Arrête un programme en cours d'exécution." -#: ../Doc/library/idle.rst:235 +#: ../Doc/library/idle.rst:262 msgid "Debug menu (Shell window only)" -msgstr "" +msgstr "Menu *Debug* (fenêtre de console uniquement)" -#: ../Doc/library/idle.rst:242 +#: ../Doc/library/idle.rst:269 msgid "Go to File/Line" -msgstr "" +msgstr "*Go to File/Line*" -#: ../Doc/library/idle.rst:238 +# Look on the current line. with the cursor, and the line above for a filename +# and line number. +# Il y a des erreurs d'anglais là-dedans... +#: ../Doc/library/idle.rst:265 msgid "" "Look on the current line. with the cursor, and the line above for a filename " "and line number. If found, open the file if not already open, and show the " @@ -519,273 +662,395 @@ msgid "" "and lines found by Find in Files. Also available in the context menu of the " "Shell window and Output windows." msgstr "" +"Cherche, sur la ligne active et la ligne en-dessous, un nom de fichier et un " +"numéro de ligne. Le cas échéant, ouvre le fichier s'il n'est pas encore " +"ouvert et montre la ligne. Utilisez ceci pour visualiser les lignes de code " +"source référencées dans un *traceback* d'exception et les lignes trouvées " +"par *Find in Files*. Également disponible dans le menu contextuel des " +"fenêtres de console et d'affichage." -#: ../Doc/library/idle.rst:251 +#: ../Doc/library/idle.rst:278 msgid "Debugger (toggle)" -msgstr "" +msgstr "*Debugger* ([dés]activer)" -#: ../Doc/library/idle.rst:249 +#: ../Doc/library/idle.rst:276 msgid "" "When activated, code entered in the Shell or run from an Editor will run " "under the debugger. In the Editor, breakpoints can be set with the context " "menu. This feature is still incomplete and somewhat experimental." msgstr "" +"Quand cette fonctionnalité est activée, le code saisi dans la console ou " +"exécuté depuis un Éditeur s'exécutera avec le débogueur. Dans l'Éditeur, des " +"points d'arrêt peuvent être placés avec le menu contextuel. Cette " +"fonctionnalité est encore incomplète et plus ou moins expérimentale." -#: ../Doc/library/idle.rst:255 +#: ../Doc/library/idle.rst:282 msgid "Stack Viewer" -msgstr "" +msgstr "*Stack Viewer*" -#: ../Doc/library/idle.rst:254 +#: ../Doc/library/idle.rst:281 msgid "" "Show the stack traceback of the last exception in a tree widget, with access " "to locals and globals." msgstr "" +"Montre l'état de la pile au moment de la dernière erreur dans une " +"arborescence, avec accès aux variables locales et globales." -#: ../Doc/library/idle.rst:258 +#: ../Doc/library/idle.rst:285 msgid "Auto-open Stack Viewer" -msgstr "" +msgstr "*Auto-open Stack Viewer*" -#: ../Doc/library/idle.rst:258 +#: ../Doc/library/idle.rst:285 msgid "" "Toggle automatically opening the stack viewer on an unhandled exception." msgstr "" +"Active ou désactive l'ouverture automatique de l'afficheur de pile après une " +"erreur non gérée." -#: ../Doc/library/idle.rst:261 +#: ../Doc/library/idle.rst:288 msgid "Options menu (Shell and Editor)" -msgstr "" +msgstr "Menu *Options* (console et éditeur)" -#: ../Doc/library/idle.rst:273 +#: ../Doc/library/idle.rst:296 msgid "Configure IDLE" -msgstr "" +msgstr "*Configure IDLE*" -#: ../Doc/library/idle.rst:264 +#: ../Doc/library/idle.rst:291 msgid "" "Open a configuration dialog and change preferences for the following: fonts, " "indentation, keybindings, text color themes, startup windows and size, " -"additional help sources, and extensions (see below). On OS X, open the " -"configuration dialog by selecting Preferences in the application menu. To " -"use a new built-in color theme (IDLE Dark) with older IDLEs, save it as a " -"new custom theme." -msgstr "" - -#: ../Doc/library/idle.rst:271 -msgid "" -"Non-default user settings are saved in a .idlerc directory in the user's " -"home directory. Problems caused by bad user configuration files are solved " -"by editing or deleting one or more of the files in .idlerc." -msgstr "" +"additional help sources, and extensions. On macOS, open the configuration " +"dialog by selecting Preferences in the application menu. For more, see :ref:" +"`Setting preferences ` under Help and preferences." +msgstr "" +"Ouvre une fenêtre de configuration et change les préférences pour les " +"éléments suivants : police, indentation, raccourcis clavier, thème de " +"coloration du texte, taille et nature de la fenêtre au lancement, sources " +"d'aide additionnelles et extensions. Sous *macOS*, ouvrez la fenêtre de " +"configuration en sélectionnant *Preferences* dans le menu de l'application. " +"Pour plus de détails, référez-vous à :ref:`Paramètres ` dans " +"Aide et paramètres." + +#: ../Doc/library/idle.rst:301 +msgid "Show/Hide Code Context (Editor Window only)" +msgstr "*Show/Hide Code Context* (fenêtres d'édition uniquement)" -#: ../Doc/library/idle.rst:278 -msgid "Code Context (toggle)(Editor Window only)" -msgstr "" - -#: ../Doc/library/idle.rst:276 +#: ../Doc/library/idle.rst:299 msgid "" "Open a pane at the top of the edit window which shows the block context of " -"the code which has scrolled above the top of the window. Clicking a line in " -"this pane exposes that line at the top of the editor." -msgstr "" - -#: ../Doc/library/idle.rst:281 -msgid "Window menu (Shell and Editor)" +"the code which has scrolled above the top of the window. See :ref:`Code " +"Context ` in the Editing and Navigation section below." msgstr "" +"Fais passer la fenêtre de taille normale à maximale. La taille de départ par " +"défaut est de 40 lignes par 80 caractères, sauf changement dans l'onglet " +"*General* de la fenêtre de configuration d'*IDLE*. Consultez :ref:`Code " +"Context ` dans la section « Édition et navigation » ci-dessous." -#: ../Doc/library/idle.rst:286 -msgid "Zoom Height" -msgstr "" +#: ../Doc/library/idle.rst:309 +msgid "Zoom/Restore Height" +msgstr "*Zoom/Restore Height*" -#: ../Doc/library/idle.rst:284 +#: ../Doc/library/idle.rst:304 msgid "" "Toggles the window between normal size and maximum height. The initial size " "defaults to 40 lines by 80 chars unless changed on the General tab of the " -"Configure IDLE dialog." +"Configure IDLE dialog. The maximum height for a screen is determined by " +"momentarily maximizing a window the first time one is zoomed on the screen. " +"Changing screen settings may invalidate the saved height. This toogle has " +"no effect when a window is maximized." msgstr "" -#: ../Doc/library/idle.rst:288 +#: ../Doc/library/idle.rst:312 +msgid "Window menu (Shell and Editor)" +msgstr "Menu *Windows* (console et éditeur)" + +#: ../Doc/library/idle.rst:314 msgid "" -"The rest of this menu lists the names of all open windows; select one to " -"bring it to the foreground (deiconifying it if necessary)." +"Lists the names of all open windows; select one to bring it to the " +"foreground (deiconifying it if necessary)." msgstr "" +"Liste les noms de toutes les fenêtres ouvertes ; sélectionnez-en une pour " +"l'amener au premier plan (en l'ouvrant si nécessaire)." -#: ../Doc/library/idle.rst:292 +#: ../Doc/library/idle.rst:318 msgid "Help menu (Shell and Editor)" -msgstr "" +msgstr "Menu *Help* (console et éditeur)" -#: ../Doc/library/idle.rst:295 +#: ../Doc/library/idle.rst:321 msgid "About IDLE" -msgstr "" +msgstr "About *IDLE*" -#: ../Doc/library/idle.rst:295 +#: ../Doc/library/idle.rst:321 msgid "Display version, copyright, license, credits, and more." msgstr "" +"Affiche la version, les copyrights, la licence, les crédits, entre autres." -#: ../Doc/library/idle.rst:299 +#: ../Doc/library/idle.rst:325 msgid "IDLE Help" -msgstr "" +msgstr "*IDLE Help*" -#: ../Doc/library/idle.rst:298 +#: ../Doc/library/idle.rst:324 msgid "" -"Display a help file for IDLE detailing the menu options, basic editing and " +"Display this IDLE document, detailing the menu options, basic editing and " "navigation, and other tips." msgstr "" +"Affiche ce document *IDLE*, qui détaille les options des menus, les bases de " +"l'édition et de la navigation ainsi que d'autres astuces." -#: ../Doc/library/idle.rst:303 +#: ../Doc/library/idle.rst:329 msgid "Python Docs" -msgstr "" +msgstr "*Python Docs*" -#: ../Doc/library/idle.rst:302 +#: ../Doc/library/idle.rst:328 msgid "" "Access local Python documentation, if installed, or start a web browser and " "open docs.python.org showing the latest Python documentation." msgstr "" +"Accède à la documentation Python locale, si installée, ou ouvre docs.python." +"org dans un navigateur pour afficher la documentation Python la plus récente." -#: ../Doc/library/idle.rst:306 +#: ../Doc/library/idle.rst:332 msgid "Turtle Demo" -msgstr "" +msgstr "*Turtle Demo*" -#: ../Doc/library/idle.rst:306 +#: ../Doc/library/idle.rst:332 msgid "Run the turtledemo module with example Python code and turtle drawings." msgstr "" +"Exécute le module *turtledemo* avec des exemples de code Python et de " +"dessins *turtle*." -#: ../Doc/library/idle.rst:308 +#: ../Doc/library/idle.rst:334 msgid "" "Additional help sources may be added here with the Configure IDLE dialog " -"under the General tab." +"under the General tab. See the :ref:`Help sources ` subsection " +"below for more on Help menu choices." msgstr "" +"Des sources d'aide supplémentaires peuvent être ajoutées ici avec la fenêtre " +"de configuration d'*IDLE* dans l'onglet *General*. Référez-vous à la sous-" +"section :ref:`Sources d'aide ` ci-dessous pour plus de détails " +"sur les choix du menu d'aide." -#: ../Doc/library/idle.rst:320 +#: ../Doc/library/idle.rst:347 msgid "Context Menus" -msgstr "" +msgstr "Menus Contextuels" -#: ../Doc/library/idle.rst:322 +#: ../Doc/library/idle.rst:349 msgid "" -"Open a context menu by right-clicking in a window (Control-click on OS X). " +"Open a context menu by right-clicking in a window (Control-click on macOS). " "Context menus have the standard clipboard functions also on the Edit menu." msgstr "" +"Vous pouvez ouvrir un menu contextuel par un clic droit dans une fenêtre " +"(Contrôle-clic sous *macOS*). Les menus contextuels ont les fonctions de " +"presse-papier standard, également disponibles dans le menu *Edit*." -#: ../Doc/library/idle.rst:334 +#: ../Doc/library/idle.rst:361 msgid "" "Editor windows also have breakpoint functions. Lines with a breakpoint set " "are specially marked. Breakpoints only have an effect when running under " "the debugger. Breakpoints for a file are saved in the user's .idlerc " "directory." msgstr "" +"Les fenêtres d'édition ont aussi des fonctions de points d'arrêt. Les lignes " +"avec un point d'arrêt activé sont marquées. Les points d'arrêt n'ont d'effet " +"que lorsque l'exécution se déroule sous débogueur. Les points d'arrêt pour " +"un fichier sont enregistrés dans le dossier *.idlerc* de l'utilisateur." -#: ../Doc/library/idle.rst:339 +#: ../Doc/library/idle.rst:366 msgid "Set Breakpoint" -msgstr "" +msgstr "*Set Breakpoint*" -#: ../Doc/library/idle.rst:339 +#: ../Doc/library/idle.rst:366 msgid "Set a breakpoint on the current line." -msgstr "" +msgstr "Place un point d'arrêt sur la ligne active." -#: ../Doc/library/idle.rst:342 +#: ../Doc/library/idle.rst:369 msgid "Clear Breakpoint" -msgstr "" +msgstr "*Clear Breakpoint*" -#: ../Doc/library/idle.rst:342 +#: ../Doc/library/idle.rst:369 msgid "Clear the breakpoint on that line." -msgstr "" +msgstr "Enlève le point d'arrêt sur cette ligne." -#: ../Doc/library/idle.rst:344 -msgid "Shell and Output windows have the following." +#: ../Doc/library/idle.rst:371 +msgid "Shell and Output windows also have the following." msgstr "" +"Les fenêtres de console et d'affichage disposent en plus des éléments " +"suivants." -#: ../Doc/library/idle.rst:348 +#: ../Doc/library/idle.rst:374 msgid "Go to file/line" -msgstr "" +msgstr "*Go to file/line*" -#: ../Doc/library/idle.rst:347 +#: ../Doc/library/idle.rst:374 msgid "Same as in Debug menu." +msgstr "Même effet que dans le menu *Debug*." + +#: ../Doc/library/idle.rst:376 +msgid "" +"The Shell window also has an output squeezing facility explained in the " +"*Python Shell window* subsection below." msgstr "" +"Les fenêtres de console ont également une fonction de réduction des sorties " +"détaillée dans la sous-section *fenêtre de console de Python* ci-dessous." -#: ../Doc/library/idle.rst:351 +#: ../Doc/library/idle.rst:382 +msgid "Squeeze" +msgstr "*Squeeze*" + +#: ../Doc/library/idle.rst:380 +msgid "" +"If the cursor is over an output line, squeeze all the output between the " +"code above and the prompt below down to a 'Squeezed text' label." +msgstr "" +"Si le curseur est sur une ligne d'affichage, compacte toute la sortie entre " +"le code au-dessus et l'invite en-dessous en un bouton *\"Squeezed text\"*." + +#: ../Doc/library/idle.rst:387 msgid "Editing and navigation" +msgstr "Édition et navigation" + +#: ../Doc/library/idle.rst:390 +msgid "Editor windows" +msgstr "Fenêtre d'édition" + +#: ../Doc/library/idle.rst:392 +msgid "" +"IDLE may open editor windows when it starts, depending on settings and how " +"you start IDLE. Thereafter, use the File menu. There can be only one open " +"editor window for a given file." +msgstr "" +"*IDLE* peut ouvrir une fenêtre d'édition quand il démarre, selon les " +"paramètres et la manière dont vous démarrez *IDLE*. Ensuite, utilisez le " +"menu *File*. Il ne peut y avoir qu'une fenêtre d'édition pour un fichier " +"donné." + +#: ../Doc/library/idle.rst:396 +msgid "" +"The title bar contains the name of the file, the full path, and the version " +"of Python and IDLE running the window. The status bar contains the line " +"number ('Ln') and column number ('Col'). Line numbers start with 1; column " +"numbers with 0." msgstr "" +"La barre de titre contient le nom du fichier, le chemin absolu et la version " +"de Python et d'*IDLE* s'exécutant dans la fenêtre. La barre de statut " +"contient le numéro de ligne (\"*Ln\"*) et le numéro de la colonne (\"*Col" +"\"*). Les numéros de ligne commencent à 1 ; les numéros de colonne " +"commencent à 0." -#: ../Doc/library/idle.rst:353 +#: ../Doc/library/idle.rst:401 +msgid "" +"IDLE assumes that files with a known .py* extension contain Python code and " +"that other files do not. Run Python code with the Run menu." +msgstr "" +"*IDLE* suppose que les fichiers avec une extension en *.py\\** reconnue " +"contiennent du code Python, mais pas les autres fichiers. Exécutez du code " +"Python avec le menu *Run*." + +#: ../Doc/library/idle.rst:405 +msgid "Key bindings" +msgstr "Raccourcis clavier" + +#: ../Doc/library/idle.rst:407 msgid "" "In this section, 'C' refers to the :kbd:`Control` key on Windows and Unix " -"and the :kbd:`Command` key on Mac OSX." +"and the :kbd:`Command` key on macOS." msgstr "" +"Dans cette section, *\"C\"* renvoie à la touche :kbd:`Contrôle`sous Windows " +"et *Unix* et à la touche :kbd:`Commande` sous *macOS*." -#: ../Doc/library/idle.rst:356 +#: ../Doc/library/idle.rst:410 msgid ":kbd:`Backspace` deletes to the left; :kbd:`Del` deletes to the right" msgstr "" +":kbd:`Retour arrière` supprime à gauche ; :kbd:`Suppr` supprime à droite" -#: ../Doc/library/idle.rst:358 +#: ../Doc/library/idle.rst:412 msgid "" ":kbd:`C-Backspace` delete word left; :kbd:`C-Del` delete word to the right" msgstr "" +":kbd:`C-Retour arrière` supprime le mot à gauche ; :kbd:`C-Suppr` supprime " +"le mot à droite" -#: ../Doc/library/idle.rst:360 +#: ../Doc/library/idle.rst:414 msgid "Arrow keys and :kbd:`Page Up`/:kbd:`Page Down` to move around" msgstr "" +"Utilisez les touches flèche et :kbd:`Page Haut` / :kbd:`Page Bas` pour vous " +"déplacer" -#: ../Doc/library/idle.rst:362 +#: ../Doc/library/idle.rst:416 msgid ":kbd:`C-LeftArrow` and :kbd:`C-RightArrow` moves by words" msgstr "" +":kbd:`C-Flèche Gauche` et :kbd:`C-Flèche Droite` déplacent de mot en mot" -#: ../Doc/library/idle.rst:364 +#: ../Doc/library/idle.rst:418 msgid ":kbd:`Home`/:kbd:`End` go to begin/end of line" -msgstr "" +msgstr ":kbd:`Début`/:kbd:`Fin` vont au début / à la fin de la ligne" -#: ../Doc/library/idle.rst:366 +#: ../Doc/library/idle.rst:420 msgid ":kbd:`C-Home`/:kbd:`C-End` go to begin/end of file" -msgstr "" +msgstr ":kbd:`C-Début` / :kbd:`C-Fin` vont au début / à la fin du fichier" -#: ../Doc/library/idle.rst:368 +#: ../Doc/library/idle.rst:422 msgid "Some useful Emacs bindings are inherited from Tcl/Tk:" -msgstr "" +msgstr "Quelques raccourcis *Emacs* utiles sont hérités de *Tcl/Tk* :" -#: ../Doc/library/idle.rst:370 +#: ../Doc/library/idle.rst:424 msgid ":kbd:`C-a` beginning of line" -msgstr "" +msgstr ":kbd:`C-a` début de ligne" -#: ../Doc/library/idle.rst:372 +#: ../Doc/library/idle.rst:426 msgid ":kbd:`C-e` end of line" -msgstr "" +msgstr ":kbd:`C-e` fin de ligne" -#: ../Doc/library/idle.rst:374 +#: ../Doc/library/idle.rst:428 msgid ":kbd:`C-k` kill line (but doesn't put it in clipboard)" msgstr "" +":kbd:`C-k` supprime la ligne (mais ne la met pas dans le presse-papier)" -#: ../Doc/library/idle.rst:376 +#: ../Doc/library/idle.rst:430 msgid ":kbd:`C-l` center window around the insertion point" -msgstr "" +msgstr ":kbd:`C-l` centre la fenêtre autour du point d’insertion" -#: ../Doc/library/idle.rst:378 +#: ../Doc/library/idle.rst:432 msgid "" ":kbd:`C-b` go backward one character without deleting (usually you can also " "use the cursor key for this)" msgstr "" +":kbd:`C-b` recule d'un caractère sans le supprimer (habituellement vous " +"pouvez également utiliser les touches flèches pour faire cela)" -#: ../Doc/library/idle.rst:381 +#: ../Doc/library/idle.rst:435 msgid "" ":kbd:`C-f` go forward one character without deleting (usually you can also " "use the cursor key for this)" msgstr "" +":kbd:`C-f` avance d'un caractère sans le supprimer (habituellement vous " +"pouvez également utiliser les touches flèches pour faire cela)" -#: ../Doc/library/idle.rst:384 +#: ../Doc/library/idle.rst:438 msgid "" ":kbd:`C-p` go up one line (usually you can also use the cursor key for this)" msgstr "" +":kbd:`C-p` remonte d'une ligne (habituellement vous pouvez également " +"utiliser les touches flèches pour faire cela)" -#: ../Doc/library/idle.rst:387 +#: ../Doc/library/idle.rst:441 msgid ":kbd:`C-d` delete next character" -msgstr "" +msgstr ":kbd:`C-d` supprime le caractère suivant" -#: ../Doc/library/idle.rst:389 +#: ../Doc/library/idle.rst:443 msgid "" "Standard keybindings (like :kbd:`C-c` to copy and :kbd:`C-v` to paste) may " "work. Keybindings are selected in the Configure IDLE dialog." msgstr "" +"Les raccourcis clavier standards (comme :kbd:`C-c` pour copier et :kbd:`C-v` " +"pour coller) peuvent fonctionner. Les raccourcis clavier sont sélectionnés " +"dans la fenêtre de configuration d'*IDLE*." -#: ../Doc/library/idle.rst:394 +#: ../Doc/library/idle.rst:447 msgid "Automatic indentation" -msgstr "" +msgstr "Indentation automatique" -#: ../Doc/library/idle.rst:396 +#: ../Doc/library/idle.rst:449 msgid "" "After a block-opening statement, the next line is indented by 4 spaces (in " "the Python Shell window by one tab). After certain keywords (break, return " @@ -794,36 +1059,57 @@ msgid "" "Python Shell window one tab), number depends on Indent width. Currently, " "tabs are restricted to four spaces due to Tcl/Tk limitations." msgstr "" +"Après une structure d'ouverture de bloc, la prochaine ligne est indentée de " +"4 espaces (dans la console Python d'une tabulation). Après certains mots-" +"clefs (*break*, *return* etc) la ligne suivante est *dédentée*. Dans une " +"indentation au début de la ligne, :kbd:`Retour arrière` supprime jusqu'à 4 " +"espaces s'il y en a. :kbd:`Tab` insère des espaces (dans la console, une " +"tabulation), en nombre dépendant de la configuration. Les tabulations sont " +"actuellement restreintes à quatre espaces à cause de limitations de *Tcl/Tk*." -#: ../Doc/library/idle.rst:403 -msgid "See also the indent/dedent region commands in the edit menu." +#: ../Doc/library/idle.rst:456 +msgid "" +"See also the indent/dedent region commands on the :ref:`Format menu `." msgstr "" +"Cf. les commandes *indent/dedent region* dans le :ref:`menu *Format* `." -#: ../Doc/library/idle.rst:406 +#: ../Doc/library/idle.rst:463 msgid "Completions" -msgstr "" +msgstr "Complétions" -#: ../Doc/library/idle.rst:408 +#: ../Doc/library/idle.rst:465 msgid "" "Completions are supplied for functions, classes, and attributes of classes, " "both built-in and user-defined. Completions are also provided for filenames." msgstr "" +"Les complétions sont fournies pour les fonctions, classes et attributs de " +"classes incluses par défaut et celles définies par l'utilisateur. Les " +"complétions sont aussi fournies pour les noms de fichiers." -#: ../Doc/library/idle.rst:412 +#: ../Doc/library/idle.rst:469 msgid "" "The AutoCompleteWindow (ACW) will open after a predefined delay (default is " "two seconds) after a '.' or (in a string) an os.sep is typed. If after one " "of those characters (plus zero or more other characters) a tab is typed the " "ACW will open immediately if a possible continuation is found." msgstr "" +"La fenêtre d'auto-complétion (*ACW*, *AutoCompleteWindow*) s'ouvre après un " +"délai prédéfini (deux secondes par défaut) après qu'un *\"*.\"** ou (dans " +"une chaîne) un os.sep est saisi. Si, après un de ces caractères " +"(éventuellement suivi d'autres caractères), une tabulation est saisie, " +"l'**ACW** s'ouvre immédiatement si une complétion compatible est trouvée." -#: ../Doc/library/idle.rst:417 +#: ../Doc/library/idle.rst:474 msgid "" "If there is only one possible completion for the characters entered, a :kbd:" "`Tab` will supply that completion without opening the ACW." msgstr "" +"S'il n'y a qu'une seule complétion possible pour le caractère saisi, un :kbd:" +"`Tab` fournit cette complétion sans ouvrir l'*ACW*." -#: ../Doc/library/idle.rst:420 +#: ../Doc/library/idle.rst:477 msgid "" "'Show Completions' will force open a completions window, by default the :kbd:" "`C-space` will open a completions window. In an empty string, this will " @@ -832,8 +1118,15 @@ msgid "" "namespaces, plus any modules imported. If some characters have been entered, " "the ACW will attempt to be more specific." msgstr "" +"*\"Show Completions\"* force l'ouverture d'une fenêtre de complétion, par " +"défaut :kbd:`C-espace` ouvre une fenêtre de complétion. Dans une chaîne " +"vide, cette fenêtre contient les fichiers du dossier actif. Sur une ligne " +"vide, elle contient les fonctions et classes intégrées par défaut et " +"définies par l'utilisateur de l'espace de nommage actif, plus tous les " +"modules importés. Si des caractères ont été saisis, l'*ACW* essaie d'être " +"plus spécifique." -#: ../Doc/library/idle.rst:427 +#: ../Doc/library/idle.rst:484 msgid "" "If a string of characters is typed, the ACW selection will jump to the entry " "most closely matching those characters. Entering a :kbd:`tab` will cause " @@ -842,19 +1135,31 @@ msgid "" "will return or a double click. Cursor keys, Page Up/Down, mouse selection, " "and the scroll wheel all operate on the ACW." msgstr "" +"Si une chaîne de caractère est saisie, la sélection de l'*ACW* va à l'entrée " +"la plus proche de ces caractères. Saisir un :kbd:`Tab` saisit la plus longue " +"correspondance non ambiguë dans la console ou l'éditeur. Deux :kbd:`Tab` à " +"la suite fournissent la sélection de l'*ACW*, de la même manière que la " +"touche *\"Entrée\"* ou un double-clic. Les touches flèches, Page Haut/Bas, " +"la sélection à la souris et la molette de la souris fonctionnent tous sur " +"l'*ACW*." -#: ../Doc/library/idle.rst:434 +#: ../Doc/library/idle.rst:491 msgid "" "\"Hidden\" attributes can be accessed by typing the beginning of hidden name " "after a '.', e.g. '_'. This allows access to modules with ``__all__`` set, " "or to class-private attributes." msgstr "" +"Les attributs *\"cachés\"* peuvent être atteints en saisissant le début d'un " +"nom caché après un *\"*.\"**, e.g.\"**_\"**. Ceci permet l'accès aux modules " +"utilisant ``__all__`` ou aux attributs privés des classes." -#: ../Doc/library/idle.rst:438 +#: ../Doc/library/idle.rst:495 msgid "Completions and the 'Expand Word' facility can save a lot of typing!" msgstr "" +"Les complétions et la fonctionnalité *\"*Expand Word*\"* peuvent vous faire " +"économiser beaucoup de temps !" -#: ../Doc/library/idle.rst:440 +#: ../Doc/library/idle.rst:497 msgid "" "Completions are currently limited to those in the namespaces. Names in an " "Editor window which are not via ``__main__`` and :data:`sys.modules` will " @@ -862,18 +1167,26 @@ msgid "" "situation. Note that IDLE itself places quite a few modules in sys.modules, " "so much can be found by default, e.g. the re module." msgstr "" +"Les complétions sont actuellement limitées à ce qui est présent dans les " +"espaces de nommage. Les noms dans une fenêtre d'édition qui ne viennent pas " +"de ``__main__`` et :data:`sys.modules` ne sont pas trouvés. Exécutez votre " +"module avec vos importations pour corriger cette situation. Notez qu'*IDLE* " +"lui-même place quelques modules dans *sys.modules*, qui peuvent être donc " +"accédés par défaut, comme le module *re*." -#: ../Doc/library/idle.rst:446 +#: ../Doc/library/idle.rst:503 msgid "" "If you don't like the ACW popping up unbidden, simply make the delay longer " "or disable the extension." msgstr "" +"Si vous n'aimez pas que l'*ACW* s'affiche spontanément, vous pouvez " +"simplement augmenter le délai ou désactiver l'extension." -#: ../Doc/library/idle.rst:450 +#: ../Doc/library/idle.rst:509 msgid "Calltips" -msgstr "" +msgstr "Info-bulles" -#: ../Doc/library/idle.rst:452 +#: ../Doc/library/idle.rst:511 msgid "" "A calltip is shown when one types :kbd:`(` after the name of an *accessible* " "function. A name expression may include dots and subscripts. A calltip " @@ -881,23 +1194,37 @@ msgid "" "or :kbd:`)` is typed. When the cursor is in the argument part of a " "definition, the menu or shortcut display a calltip." msgstr "" +"Une info-bulle est affichée quand vous saisissez :kbd:`(` après le nom d'une " +"fonction *accessible*. Une expression de nom peut inclure des points et des " +"tirets bas.L'info-bulle reste affichée jusqu'à ce que vous cliquiez dessus, " +"que le curseur se déplace hors de la zone des arguments, ou que :kbd:`)` " +"soit saisi. Quand le curseur est dans la partie *\"arguments\"* de la " +"définition, le menu ou raccourci affiche une info-bulle." -#: ../Doc/library/idle.rst:458 +#: ../Doc/library/idle.rst:517 msgid "" "A calltip consists of the function signature and the first line of the " "docstring. For builtins without an accessible signature, the calltip " "consists of all lines up the fifth line or the first blank line. These " "details may change." msgstr "" +"Une info-bulle contient la signature de la fonction et la première ligne de " +"la *docstring*. Pour les fonctions incluses par défaut sans signature " +"accessible, l'info-bulle contient toutes les lignes jusqu'à la cinquième " +"ligne ou la première ligne vide. Ces détails sont sujets à changement." -#: ../Doc/library/idle.rst:463 +#: ../Doc/library/idle.rst:522 msgid "" "The set of *accessible* functions depends on what modules have been imported " "into the user process, including those imported by Idle itself, and what " "definitions have been run, all since the last restart." msgstr "" +"L'ensemble des fonctions *accessibles* dépend des modules qui ont été " +"importés dans le processus utilisateur, y compris ceux importés par *IDLE* " +"lui-même et quelles définitions ont été exécutées, le tout depuis le dernier " +"redémarrage." -#: ../Doc/library/idle.rst:467 +#: ../Doc/library/idle.rst:526 msgid "" "For example, restart the Shell and enter ``itertools.count(``. A calltip " "appears because Idle imports itertools into the user process for its own " @@ -905,54 +1232,140 @@ msgid "" "Idle does not import turtle. The menu or shortcut do nothing either. Enter " "``import turtle`` and then ``turtle.write(`` will work." msgstr "" +"Par exemple, redémarrez la console et saisissez ``itertools.count(``. Une " +"info-bulle s'affiche parce que *IDLE* importe *itertools* dans le processus " +"utilisateur pour son propre usage (ceci pourrait changer). Saisissez " +"``turtle.write(`` et rien ne s'affiche. *IDLE* n'importe pas *turtle*. Le " +"menu ou le raccourci ne font rien non plus. Saisir ``import *turtle`` puis " +"``turtle.write(`` fonctionnera." -#: ../Doc/library/idle.rst:473 +#: ../Doc/library/idle.rst:532 msgid "" "In an editor, import statements have no effect until one runs the file. One " "might want to run a file after writing the import statements at the top, or " "immediately run an existing file before editing." msgstr "" - -#: ../Doc/library/idle.rst:478 +"Dans l'éditeur, les commandes d'importation n'ont pas d'effet jusqu'à ce que " +"le fichier soit exécuté. Vous pouvez exécuter un fichier après avoir écrit " +"les commandes d'importation au début, ou immédiatement exécuter un fichier " +"existant avant de l'éditer." + +#: ../Doc/library/idle.rst:539 +msgid "Code Context" +msgstr "Contexte du code" + +#: ../Doc/library/idle.rst:541 +msgid "" +"Within an editor window containing Python code, code context can be toggled " +"in order to show or hide a pane at the top of the window. When shown, this " +"pane freezes the opening lines for block code, such as those beginning with " +"``class``, ``def``, or ``if`` keywords, that would have otherwise scrolled " +"out of view. The size of the pane will be expanded and contracted as needed " +"to show the all current levels of context, up to the maximum number of lines " +"defined in the Configure IDLE dialog (which defaults to 15). If there are " +"no current context lines and the feature is toggled on, a single blank line " +"will display. Clicking on a line in the context pane will move that line to " +"the top of the editor." +msgstr "" +"Dans une fenêtre d'édition contenant du code Python, le contexte du code " +"peut être activé pour afficher ou cacher une zone en haut de la fenêtre. " +"Quand elle est affichée, cette zone gèle les lignes ouvrant le bloc de code, " +"comme celles qui commencent par les mots-clés ``class``, ``def`` ou ``if``, " +"qui auraient autrement été cachées plus haut dans le fichier. La taille de " +"cette zone varie automatiquement selon ce qui est nécessaire pour afficher " +"tous les niveaux de contexte, jusqu'à un nombre maximal de lignes défini " +"dans la fenêtre de configuration d'*IDLE* (valeur qui vaut 15 par défaut). " +"S'il n'y a pas de lignes de contexte et que cette fonctionnalité est " +"activée, une unique ligne vide est affichée. Un clic sur une ligne dans la " +"zone de contexte déplace cette ligne en haut de l'éditeur." + +#: ../Doc/library/idle.rst:552 +msgid "" +"The text and background colors for the context pane can be configured under " +"the Highlights tab in the Configure IDLE dialog." +msgstr "" +"Les couleurs de texte et du fond pour la zone de contexte peuvent être " +"configurées dans l'onglet *Highlights* de la fenêtre de configuration " +"d'*IDLE*." + +#: ../Doc/library/idle.rst:556 msgid "Python Shell window" +msgstr "Fenêtre de console Python" + +#: ../Doc/library/idle.rst:558 +msgid "" +"With IDLE's Shell, one enters, edits, and recalls complete statements. Most " +"consoles and terminals only work with a single physical line at a time." msgstr "" +"Avec la console d'*IDLE*, vous pouvez saisir, éditer et rappeler des " +"commandes entières. La plupart des consoles et des terminaux ne travaillent " +"qu'avec une seule ligne physique à la fois." -#: ../Doc/library/idle.rst:480 -msgid ":kbd:`C-c` interrupts executing command" +#: ../Doc/library/idle.rst:561 +msgid "" +"When one pastes code into Shell, it is not compiled and possibly executed " +"until one hits :kbd:`Return`. One may edit pasted code first. If one pastes " +"more that one statement into Shell, the result will be a :exc:`SyntaxError` " +"when multiple statements are compiled as if they were one." msgstr "" +"Quand du texte est collé dans la console, il n'est ni compilé, ni exécuté " +"jusqu'à la ce qu'on saisisse :kbd:`Entrée`. On peut éditer le code collé " +"d'abord. Si plus d'une commande est collée dans la console, une :exc:" +"`SyntaxError` est levée si plusieurs commandes sont compilées comme une " +"seule." + +#: ../Doc/library/idle.rst:566 +msgid "" +"The editing features described in previous subsections work when entering " +"code interactively. IDLE's Shell window also responds to the following keys." +msgstr "" +"Les fonctionnalités d'édition décrites dans les sous-sections suivantes " +"fonctionnent du code est saisi de façon interactive. La fenêtre de console " +"d'*IDLE* réagit également aux touches suivantes." + +#: ../Doc/library/idle.rst:569 +msgid ":kbd:`C-c` interrupts executing command" +msgstr ":kbd:`C-c` interrompt l'exécution de la commande" -#: ../Doc/library/idle.rst:482 +#: ../Doc/library/idle.rst:571 msgid "" ":kbd:`C-d` sends end-of-file; closes window if typed at a ``>>>`` prompt" msgstr "" +":kbd:`C-d` envoie fin-de-fichier (*EOF*) ; cela ferme la fenêtre s'il est " +"saisi à une invite ``>>>``" -#: ../Doc/library/idle.rst:484 +#: ../Doc/library/idle.rst:573 msgid ":kbd:`Alt-/` (Expand word) is also useful to reduce typing" msgstr "" +":kbd:`Alt-/` (Compléter le mot) est également utile pour réduire la quantité " +"de texte saisie" -#: ../Doc/library/idle.rst:486 +#: ../Doc/library/idle.rst:575 msgid "Command history" -msgstr "" +msgstr "Historique des commandes" -#: ../Doc/library/idle.rst:488 +#: ../Doc/library/idle.rst:577 msgid "" -":kbd:`Alt-p` retrieves previous command matching what you have typed. On OS " -"X use :kbd:`C-p`." +":kbd:`Alt-p` retrieves previous command matching what you have typed. On " +"macOS use :kbd:`C-p`." msgstr "" +":kbd:`Alt-p` récupère la précédente commande qui correspond à ce que vous " +"avez saisi. Sous *macOS*, utilisez :kbd:`C-p`." -#: ../Doc/library/idle.rst:491 -msgid ":kbd:`Alt-n` retrieves next. On OS X use :kbd:`C-n`." -msgstr "" +#: ../Doc/library/idle.rst:580 +msgid ":kbd:`Alt-n` retrieves next. On macOS use :kbd:`C-n`." +msgstr ":kbd:`Alt-n` récupère la suivante. Sous *macOS*, utilisez :kbd:`C-n`." -#: ../Doc/library/idle.rst:493 +#: ../Doc/library/idle.rst:582 msgid ":kbd:`Return` while on any previous command retrieves that command" msgstr "" +":kbd:`Entrée` sur une des commandes précédentes récupère cette commande" -#: ../Doc/library/idle.rst:497 +#: ../Doc/library/idle.rst:585 msgid "Text colors" -msgstr "" +msgstr "Coloration du texte" -#: ../Doc/library/idle.rst:499 +#: ../Doc/library/idle.rst:587 msgid "" "Idle defaults to black on white text, but colors text with special meanings. " "For the shell, these are shell output, shell error, user output, and user " @@ -961,20 +1374,34 @@ msgid "" "``def``, strings, and comments. For any text window, these are the cursor " "(when present), found text (when possible), and selected text." msgstr "" +"*IDLE* affiche par défaut le texte en noir sur blanc mais colore le texte " +"qui possède une signification spéciale. Pour la console, ceci concerne les " +"sorties de la console et de l'utilisateur ainsi que les erreurs de " +"l'utilisateur. Pour le code Python, dans l'invite de commande de la console " +"ou sur un éditeur, ce sont les mots-clefs, noms de fonctions et de classes " +"incluses par défaut, les noms suivant ``class`` et ``def``, les chaînes de " +"caractères et les commentaires. Pour n'importe quelle fenêtre de texte, ce " +"sont le curseur (si présent), le texte trouvé (s'il y en a) et le texte " +"sélectionné." -#: ../Doc/library/idle.rst:506 +#: ../Doc/library/idle.rst:594 msgid "" "Text coloring is done in the background, so uncolorized text is occasionally " "visible. To change the color scheme, use the Configure IDLE dialog " "Highlighting tab. The marking of debugger breakpoint lines in the editor " "and text in popups and dialogs is not user-configurable." msgstr "" +"La coloration du texte est faite en arrière-plan, donc du texte non coloré " +"est parfois visible. Pour changer les couleurs, utilisez l'onglet " +"*Highlighting* de la fenêtre de configuration d'*IDLE*. Le marquage des " +"points d'arrêt du débogueur dans l'éditeur et du texte dans les dialogues " +"n'est pas configurable." -#: ../Doc/library/idle.rst:513 +#: ../Doc/library/idle.rst:601 msgid "Startup and code execution" -msgstr "" +msgstr "Démarrage et exécution du code" -#: ../Doc/library/idle.rst:515 +#: ../Doc/library/idle.rst:603 msgid "" "Upon startup with the ``-s`` option, IDLE will execute the file referenced " "by the environment variables :envvar:`IDLESTARTUP` or :envvar:" @@ -985,8 +1412,16 @@ msgid "" "from the IDLE shell, or for executing import statements to import common " "modules." msgstr "" +"Quand il est démarré avec l'option ``-s``, *IDLE* exécutera le fichier " +"référencé par la variable d'environnement :envvar:`IDLE*STARTUP` ou :envvar:" +"`PYTHONSTARTUP`. *IDLE* cherche d'abord ``IDLESTARTUP`` ; si ``IDLESTARTUP`` " +"est présent, le fichier référencé est exécuté. Si ``IDLESTARTUP`` n'est pas " +"présent, alors *IDLE* cherche ``PYTHONSTARTUP``. Les fichiers référencés par " +"ces variables d'environnement sont de bons endroits pour stocker des " +"fonctions qui sont utilisées fréquemment depuis la console d'*IDLE* ou pour " +"exécuter des commandes d'importation des modules communs." -#: ../Doc/library/idle.rst:523 +#: ../Doc/library/idle.rst:611 msgid "" "In addition, ``Tk`` also loads a startup file if it is present. Note that " "the Tk file is loaded unconditionally. This additional file is ``.Idle.py`` " @@ -994,34 +1429,46 @@ msgid "" "will be executed in the Tk namespace, so this file is not useful for " "importing functions to be used from IDLE's Python shell." msgstr "" +"De plus, ``Tk`` charge lui aussi un fichier de démarrage s'il est présent. " +"Notez que le fichier de *Tk* est chargé sans condition. Ce fichier " +"additionnel est ``.Idle.py`` et est recherché dans le dossier personnel de " +"l'utilisateur. Les commandes dans ce fichier sont exécutées dans l'espace de " +"nommage de *Tk*, donc ce fichier n'est pas utile pour importer des fonctions " +"à utiliser depuis la console Python d'*IDLE*." -#: ../Doc/library/idle.rst:531 +#: ../Doc/library/idle.rst:618 msgid "Command line usage" -msgstr "" +msgstr "Utilisation de la ligne de commande" -#: ../Doc/library/idle.rst:547 +#: ../Doc/library/idle.rst:634 msgid "If there are arguments:" -msgstr "" +msgstr "S'il y a des arguments :" -#: ../Doc/library/idle.rst:549 +#: ../Doc/library/idle.rst:636 msgid "" "If ``-``, ``-c``, or ``r`` is used, all arguments are placed in ``sys." "argv[1:...]`` and ``sys.argv[0]`` is set to ``''``, ``'-c'``, or ``'-r'``. " "No editor window is opened, even if that is the default set in the Options " "dialog." msgstr "" +"Si ``-``, ``-c`` ou ``-r`` sont utilisés, tous les arguments sont placés " +"dans ``sys.argv[1:...]`` et ``sys.argv[0]`` est assigné à `''``, ``'-c'``, " +"ou ``'-r'``. Aucune fenêtre d'édition n'est ouverte, même si c'est le " +"comportement par défaut fixé dans la fenêtre d'options." -#: ../Doc/library/idle.rst:554 +#: ../Doc/library/idle.rst:641 msgid "" "Otherwise, arguments are files opened for editing and ``sys.argv`` reflects " "the arguments passed to IDLE itself." msgstr "" +"Sinon, les arguments sont des fichiers ouverts pour édition et ``sys.argv`` " +"reflète les arguments passés à *IDLE* lui-même." -#: ../Doc/library/idle.rst:559 +#: ../Doc/library/idle.rst:645 msgid "Startup failure" -msgstr "" +msgstr "Échec au démarrage" -#: ../Doc/library/idle.rst:561 +#: ../Doc/library/idle.rst:647 msgid "" "IDLE uses a socket to communicate between the IDLE GUI process and the user " "code execution process. A connection must be established whenever the Shell " @@ -1030,8 +1477,16 @@ msgid "" "displays a ``Tk`` error box with a 'cannot connect' message that directs the " "user here. It then exits." msgstr "" +"*IDLE* utilise un connecteur (*socket* en anglais) pour communiquer entre le " +"processus d'interface graphique d'*IDLE* et le processus d'exécution de code " +"de l'utilisateur. Une connexion doit être établie quand la console démarre " +"ou redémarre (le redémarrage est indiqué par une ligne de division avec *" +"\"RESTART\"*). Si le processus utilisateur échoue à établir une connexion " +"avec le processus graphique, il affiche une fenêtre d'erreur ``Tk`` avec un " +"message *\"connexion impossible\"* qui redirige l'utilisateur ici. Ensuite, " +"il s'arrête." -#: ../Doc/library/idle.rst:568 +#: ../Doc/library/idle.rst:654 msgid "" "A common cause of failure is a user-written file with the same name as a " "standard library module, such as *random.py* and *tkinter.py*. When such a " @@ -1039,8 +1494,14 @@ msgid "" "IDLE cannot import the stdlib file. The current fix is to rename the user " "file." msgstr "" +"Une cause d'échec courant est un fichier écrit par l'utilisateur avec le " +"même nom qu'un module de la bibliothèque standard, comme *random.py* et " +"*tkinter.py*. Quand un fichier de ce genre est enregistré dans le même " +"répertoire qu'un fichier à exécuter, *IDLE* ne peut pas importer le fichier " +"standard. La solution actuelle consiste à renommer le fichier de " +"l'utilisateur." -#: ../Doc/library/idle.rst:574 +#: ../Doc/library/idle.rst:660 msgid "" "Though less common than in the past, an antivirus or firewall program may " "stop the connection. If the program cannot be taught to allow the " @@ -1049,24 +1510,44 @@ msgid "" "ports. A similar problem is a network mis-configuration that blocks " "connections." msgstr "" +"Même si c'est plus rare qu'avant, un antivirus ou un pare-feu peuvent " +"interrompre la connexion. Si le programme ne peut pas être paramétré pour " +"autoriser la connexion, alors il doit être éteint pour qu'*IDLE* puisse " +"fonctionner. Cette connexion interne est sûre car aucune donnée n'est " +"visible depuis un port extérieur. Un problème similaire est une mauvaise " +"configuration du réseau qui bloque les connexions." -#: ../Doc/library/idle.rst:581 +#: ../Doc/library/idle.rst:667 msgid "" "Python installation issues occasionally stop IDLE: multiple versions can " "clash, or a single installation might need admin access. If one undo the " "clash, or cannot or does not want to run as admin, it might be easiest to " "completely remove Python and start over." msgstr "" +"Des problèmes d'installation de Python stoppent parfois *IDLE* : il peut y " +"avoir un conflit de versions ou bien l'installation peut nécessiter des " +"privilèges administrateurs. Si on corrige le conflit , ou qu'on ne peut ou " +"ne veut pas accorder de privilège, il peut être plus facile de désinstaller " +"complètement Python et de recommencer." -#: ../Doc/library/idle.rst:586 +#: ../Doc/library/idle.rst:672 msgid "" "A zombie pythonw.exe process could be a problem. On Windows, use Task " "Manager to detect and stop one. Sometimes a restart initiated by a program " "crash or Keyboard Interrupt (control-C) may fail to connect. Dismissing the " "error box or Restart Shell on the Shell menu may fix a temporary problem." msgstr "" +"Un processus *pythonw.exe* zombie peut être un problème. Sous Windows, " +"utilisez le Gestionnaire des Tâches pour en détecter puis en arrêter un. " +"Parfois, un redémarrage causé par un plantage ou une interruption clavier " +"(Ctrl-C) peut ne pas réussir à se connecter. Fermer la fenêtre d'erreur ou " +"redémarrer la console dans le menu Shell peut résoudre un problème " +"temporaire." -#: ../Doc/library/idle.rst:591 +# ... this can be prevented by never editing the files by hand, using the +# configuration dialog, under Options, instead Options. +# Qu'est-ce que ça veut dire ??? +#: ../Doc/library/idle.rst:677 msgid "" "When IDLE first starts, it attempts to read user configuration files in ~/." "idlerc/ (~ is one's home directory). If there is a problem, an error " @@ -1075,89 +1556,309 @@ msgid "" "dialog, under Options, instead Options. Once it happens, the solution may " "be to delete one or more of the configuration files." msgstr "" +"Quand *IDLE* démarre pour la première fois, il essaie de lire la " +"configuration de l'utilisateur dans les fichiers de *~/.idlerc* (~ est le " +"répertoire personnel de l'utilisateur). S'il y a un problème, un message " +"d'erreur devrait être affiché. Mis à part les erreurs aléatoires du disque " +"dur, ceci peut être évité en n'éditant jamais les fichiers directement, mais " +"en utilisant la fenêtre de configuration, dans Options. Quand cela arrive, " +"la solution peut être de supprimer un ou plusieurs des fichiers de " +"configuration." -#: ../Doc/library/idle.rst:598 +# Je suppose que c'est (``python -m idlelib)``, et pas (``python -m +# idlelib``)... +#: ../Doc/library/idle.rst:684 msgid "" "If IDLE quits with no message, and it was not started from a console, try " "starting from a console (``python -m idlelib)`` and see if a message appears." msgstr "" +"Si *IDLE* se ferme sans message et qu'il n'a pas été démarré depuis une " +"console, essayez de le démarrer depuis une console (``python -m idlelib``) " +"et regardez si un message apparaît." -#: ../Doc/library/idle.rst:603 -msgid "IDLE-console differences" -msgstr "" +#: ../Doc/library/idle.rst:688 +msgid "Running user code" +msgstr "Exécuter le code de l'utilisateur" -#: ../Doc/library/idle.rst:605 +#: ../Doc/library/idle.rst:690 msgid "" "With rare exceptions, the result of executing Python code with IDLE is " -"intended to be the same as executing the same code in a console window. " +"intended to be the same as executing the same code by the default method, " +"directly with Python in a text-mode system console or terminal window. " "However, the different interface and operation occasionally affect visible " -"results. For instance, ``sys.modules`` starts with more entries." +"results. For instance, ``sys.modules`` starts with more entries, and " +"``threading.activeCount()`` returns 2 instead of 1." msgstr "" +"Sauf dans de rares cas, le résultat de l'exécution de code Python avec " +"*IDLE* est censé être le même que lors de l'exécution du même code via la " +"méthode par défaut, directement avec Python dans une console système en mode " +"texte ou dans une fenêtre de terminal. Cependant, les différentes interfaces " +"et opérations affectent parfois les résultats visibles. Par exemple, ``sys." +"modules`` démarre avec plus d'entrées et ``threading.activeCount()`` renvoie " +"2 plutôt que 1." -#: ../Doc/library/idle.rst:610 +#: ../Doc/library/idle.rst:697 msgid "" -"IDLE also replaces ``sys.stdin``, ``sys.stdout``, and ``sys.stderr`` with " -"objects that get input from and send output to the Shell window. When Shell " -"has the focus, it controls the keyboard and screen. This is normally " -"transparent, but functions that directly access the keyboard and screen will " -"not work. If ``sys`` is reset with ``importlib.reload(sys)``, IDLE's " -"changes are lost and things like ``input``, ``raw_input``, and ``print`` " +"By default, IDLE runs user code in a separate OS process rather than in the " +"user interface process that runs the shell and editor. In the execution " +"process, it replaces ``sys.stdin``, ``sys.stdout``, and ``sys.stderr`` with " +"objects that get input from and send output to the Shell window. The " +"original values stored in ``sys.__stdin__``, ``sys.__stdout__``, and ``sys." +"__stderr__`` are not touched, but may be ``None``." +msgstr "" +"Par défaut, *IDLE* exécute le code de l'utilisateur dans un processus " +"système séparé plutôt que dans le processus d'interface utilisateur qui " +"exécute la console et l'éditeur. Dans le processus d'exécution, il remplace " +"``sys.stdin``, ``sys.stdout`` et ``sys.stderr`` par des objets qui " +"récupèrent les entrées et envoient les sorties à la fenêtre de console. Les " +"valeurs originales stockées dans ``sys.__stdin__``, ``sys.__stdout__`` et " +"``sys.__stderr__`` ne sont pas touchées, mais peuvent être ``None``." + +#: ../Doc/library/idle.rst:704 +msgid "" +"When Shell has the focus, it controls the keyboard and screen. This is " +"normally transparent, but functions that directly access the keyboard and " +"screen will not work. These include system-specific functions that " +"determine whether a key has been pressed and if so, which." +msgstr "" +"Quand la console est au premier plan, elle contrôle le clavier et l'écran. " +"Ceci est normalement transparent, mais les fonctions qui accèdent " +"directement au clavier et à l'écran ne fonctionneront pas. Ceci inclut des " +"fonctions spécifiques du système qui déterminent si une touche a été pressée " +"et, le cas échéant, laquelle." + +#: ../Doc/library/idle.rst:709 +msgid "" +"IDLE's standard stream replacements are not inherited by subprocesses " +"created in the execution process, whether directly by user code or by " +"modules such as multiprocessing. If such subprocess use ``input`` from sys." +"stdin or ``print`` or ``write`` to sys.stdout or sys.stderr, IDLE should be " +"started in a command line window. The secondary subprocess will then be " +"attached to that window for input and output." +msgstr "" +"Les remplacements des flux standards par *IDLE* ne sont pas hérités par les " +"sous-processus créés dans le processus d'exécution, directement par le code " +"de l'utilisateur ou par des modules comme *multiprocessing*. Si de tels " +"modules utilisent ``input`` à partir de *sys.stdin* ou ``write`` à *sys." +"stdout* ou *sys.stderr*, *IDLE* doit être démarré dans une fenêtre de ligne " +"de commande. Le sous-processus secondaire sera ensuite attaché à cette " +"fenêtre pour les entrées et les sorties." + +#: ../Doc/library/idle.rst:716 +msgid "" +"If ``sys`` is reset by user code, such as with ``importlib.reload(sys)``, " +"IDLE's changes are lost and input from the keyboard and output to the screen " "will not work correctly." msgstr "" - -#: ../Doc/library/idle.rst:618 -msgid "" -"With IDLE's Shell, one enters, edits, and recalls complete statements. Some " -"consoles only work with a single physical line at a time. IDLE uses " -"``exec`` to run each statement. As a result, ``'__builtins__'`` is always " -"defined for each statement." -msgstr "" - -#: ../Doc/library/idle.rst:624 +"Si ``sys`` est réinitialisé par le code de l'utilisateur, comme avec " +"``importlib.reload(sys)``, les changements d'*IDLE* seront perdus et " +"l'entrée du clavier et la sortie à l'écran ne fonctionneront pas " +"correctement." + +#: ../Doc/library/idle.rst:720 +msgid "" +"When user code raises SystemExit either directly or by calling sys.exit, " +"IDLE returns to a Shell prompt instead of exiting." +msgstr "" +"Lorsque l'utilisateur lève `SystemExit` directement ou en appelant ``sys." +"exit``, IDLE revient au terminal IDLE au lieu de quitter." + +#: ../Doc/library/idle.rst:724 +msgid "User output in Shell" +msgstr "Sortie de l'utilisateur sur la console" + +#: ../Doc/library/idle.rst:726 +msgid "" +"When a program outputs text, the result is determined by the corresponding " +"output device. When IDLE executes user code, ``sys.stdout`` and ``sys." +"stderr`` are connected to the display area of IDLE's Shell. Some of its " +"features are inherited from the underlying Tk Text widget. Others are " +"programmed additions. Where it matters, Shell is designed for development " +"rather than production runs." +msgstr "" +"Quand un programme affiche du texte, le résultat est déterminé par le " +"support d'affichage correspondant. Quand *IDLE* exécute du code de " +"l'utilisateur, ``sys.stdout`` et ``sys.stderr`` sont connectées à la zone " +"d'affichage de la console d'*IDLE*. Certaines de ces fonctionnalités sont " +"héritées des widgets *Tk* sous-jacents. D'autres sont des additions " +"programmées. Quand cela importe, la console est conçue pour le développement " +"plutôt que l'exécution en production." + +#: ../Doc/library/idle.rst:733 +msgid "" +"For instance, Shell never throws away output. A program that sends " +"unlimited output to Shell will eventually fill memory, resulting in a memory " +"error. In contrast, some system text windows only keep the last n lines of " +"output. A Windows console, for instance, keeps a user-settable 1 to 9999 " +"lines, with 300 the default." +msgstr "" +"Par exemple, la console ne supprime jamais de sortie. Un programme qui écrit " +"à l'infini dans la console finira par remplir la mémoire, ce qui entraînera " +"un erreur mémoire. Par ailleurs, certains systèmes de fenêtres textuelles ne " +"conservent que les n dernières lignes de sortie. Une console Windows, par " +"exemple, conserve une quantité de lignes configurable entre 1 et 9999, avec " +"une valeur par défaut de 300." + +#: ../Doc/library/idle.rst:739 +msgid "" +"A Tk Text widget, and hence IDLE's Shell, displays characters (codepoints) " +"in the the BMP (Basic Multilingual Plane) subset of Unicode. Which " +"characters are displayed with a proper glyph and which with a replacement " +"box depends on the operating system and installed fonts. Tab characters " +"cause the following text to begin after the next tab stop. (They occur every " +"8 'characters'). Newline characters cause following text to appear on a new " +"line. Other control characters are ignored or displayed as a space, box, or " +"something else, depending on the operating system and font. (Moving the text " +"cursor through such output with arrow keys may exhibit some surprising " +"spacing behavior.)" +msgstr "" +"Un widget *Text* de *Tk* et donc la console d'*IDLE*, affiche des caractères " +"(points de code) dans le sous-ensemble *BMP* (*Basic Multilingual Plane*) " +"d'Unicode. Quels caractères sont affichés avec le bon glyphe et lesquels " +"sont affichés avec un caractère de remplacement dépend du système " +"d'exploitation et des polices installées. Les caractères de tabulation font " +"que le texte suivant commencera après le prochain taquet de tabulation (ils " +"sont placés tous les 8 *\"caractères\"*). Les caractères saut de ligne font " +"que le texte suivant apparaît sur une nouvelle ligne. D'autres caractères de " +"contrôle sont ignorés et affichés comme une espace, un carré, ou quelque " +"chose d'autre, selon le système d'exploitation et la police (déplacer le " +"curseur de texte sur une sortie de ce genre peut provoquer un comportement " +"surprenant du point de vue de l'espacement.)" + +#: ../Doc/library/idle.rst:757 +msgid "" +"The ``repr`` function is used for interactive echo of expression values. It " +"returns an altered version of the input string in which control codes, some " +"BMP codepoints, and all non-BMP codepoints are replaced with escape codes. " +"As demonstrated above, it allows one to identify the characters in a string, " +"regardless of how they are displayed." +msgstr "" +"La fonction ``repr`` est utilisée pour l'affichage interactif de la valeur " +"des expressions. Elle renvoie une version modifiée de la chaîne en entrée " +"dans laquelle les codes de contrôle, certains points de code *BMP* et tous " +"les points de code non *BMP* sont remplacés par des caractères " +"d'échappement. Comme montré ci-dessus, ceci permet d'identifier les " +"caractères dans une chaîne, quelle que soit la façon dont elle est affichée." + +#: ../Doc/library/idle.rst:763 +msgid "" +"Normal and error output are generally kept separate (on separate lines) from " +"code input and each other. They each get different highlight colors." +msgstr "" +"Les sorties standard et d'erreur sont généralement séparées (sur des lignes " +"séparées) de l'entrée de code et entre elles. Elles ont chacune une " +"coloration différente." + +#: ../Doc/library/idle.rst:766 +msgid "" +"For SyntaxError tracebacks, the normal '^' marking where the error was " +"detected is replaced by coloring the text with an error highlight. When code " +"run from a file causes other exceptions, one may right click on a traceback " +"line to jump to the corresponding line in an IDLE editor. The file will be " +"opened if necessary." +msgstr "" +"Pour les *traceback* de *SyntaxError*, le *\"^\"* habituel marquant " +"l'endroit où l'erreur a été détectée est remplacé par la coloration et le " +"surlignage du texte avec une erreur. Quand du code exécuté depuis un fichier " +"cause d'autres exceptions, un clic droit sur la ligne du *traceback* permet " +"d'accéder à la ligne correspondante dans un éditeur *IDLE*. Le fichier est " +"ouvert si nécessaire." + +#: ../Doc/library/idle.rst:772 +msgid "" +"Shell has a special facility for squeezing output lines down to a 'Squeezed " +"text' label. This is done automatically for output over N lines (N = 50 by " +"default). N can be changed in the PyShell section of the General page of the " +"Settings dialog. Output with fewer lines can be squeezed by right clicking " +"on the output. This can be useful lines long enough to slow down scrolling." +msgstr "" +"La console a une fonctionnalité spéciale pour réduire les lignes de sorties " +"à une étiquette *\"Squeezed text\"*. Ceci est fait automatiquement pour un " +"sortie de plus de N lignes (N = 50 par défaut). N peut être changé dans la " +"section *PyShell* de la page *General* de la fenêtre de configuration. Les " +"sorties avec moins de lignes peuvent être réduites par un clic droit sur la " +"sortie. Ceci peut être utile sur des lignes si longues qu'elles ralentissent " +"la navigation." + +#: ../Doc/library/idle.rst:780 +msgid "" +"Squeezed output is expanded in place by double-clicking the label. It can " +"also be sent to the clipboard or a separate view window by right-clicking " +"the label." +msgstr "" +"Les sorties réduites sont étendues sur place en double-cliquant sur " +"l'étiquette Elles peuvent aussi être envoyées au presse-papier ou sur un " +"fenêtre séparée par un clic-droit sur l'étiquette." + +#: ../Doc/library/idle.rst:785 msgid "Developing tkinter applications" -msgstr "" +msgstr "Développer des applications *tkinter*" -#: ../Doc/library/idle.rst:626 +#: ../Doc/library/idle.rst:787 msgid "" "IDLE is intentionally different from standard Python in order to facilitate " "development of tkinter programs. Enter ``import tkinter as tk; root = tk." "Tk()`` in standard Python and nothing appears. Enter the same in IDLE and a " "tk window appears. In standard Python, one must also enter ``root." "update()`` to see the window. IDLE does the equivalent in the background, " -"about 20 times a second, which is about every 50 milleseconds. Next enter " +"about 20 times a second, which is about every 50 milliseconds. Next enter " "``b = tk.Button(root, text='button'); b.pack()``. Again, nothing visibly " "changes in standard Python until one enters ``root.update()``." msgstr "" +"*IDLE* est intentionnellement différent de Python standard dans le but de " +"faciliter le développement des programmes *tkinter*. Saisissez ``import " +"*tkinter* as tk; root = tk.Tk()`` avec Python standard, rien n'apparaît. " +"Saisissez la même chose dans *IDLE* et une fenêtre *tk* apparaît. En Python " +"standard, il faut également saisir ``root.update()`` pour voir la fenêtre. " +"*IDLE* fait un équivalent mais en arrière-plan, environ 20 fois par seconde, " +"soit environ toutes les 50 millisecondes. Ensuite, saisissez ``b = tk." +"Button(root, text='button'); b.pack()``. De la même manière, aucun " +"changement n'est visible en Python standard jusqu'à la saisie de ``root." +"update()``." -#: ../Doc/library/idle.rst:635 +#: ../Doc/library/idle.rst:796 msgid "" "Most tkinter programs run ``root.mainloop()``, which usually does not return " "until the tk app is destroyed. If the program is run with ``python -i`` or " "from an IDLE editor, a ``>>>`` shell prompt does not appear until " "``mainloop()`` returns, at which time there is nothing left to interact with." msgstr "" +"La plupart des programmes *tkinter* exécutent ``root.mainloop()``, qui " +"d'habitude ne renvoie pas jusqu'à ce que l'application *tk* soit détruite. " +"Si le programme est exécuté avec ``python -i``ou depuis un éditeur *IDLE*, " +"une invite de commande ``>>>`` n'apparaît pas tant que ``mainloop()`` ne " +"termine pas, c'est-à-dire quand il ne reste plus rien avec lequel interagir." -#: ../Doc/library/idle.rst:641 +#: ../Doc/library/idle.rst:802 msgid "" "When running a tkinter program from an IDLE editor, one can comment out the " "mainloop call. One then gets a shell prompt immediately and can interact " "with the live application. One just has to remember to re-enable the " "mainloop call when running in standard Python." msgstr "" +"Avec un programme *tkinter* exécuté depuis un éditeur *IDLE*, vous pouvez " +"immédiatement commenter l'appel à *mainloop*. On a alors accès à une invite " +"de commande et on peut interagir en direct avec l'application. Il faut juste " +"se rappeler de réactiver l'appel à *mainloop* lors de l'exécution en Python " +"standard." -#: ../Doc/library/idle.rst:647 +#: ../Doc/library/idle.rst:808 msgid "Running without a subprocess" -msgstr "" +msgstr "Exécution sans sous-processus" -#: ../Doc/library/idle.rst:649 +#: ../Doc/library/idle.rst:810 msgid "" "By default, IDLE executes user code in a separate subprocess via a socket, " "which uses the internal loopback interface. This connection is not " "externally visible and no data is sent to or received from the Internet. If " "firewall software complains anyway, you can ignore it." msgstr "" +"Par défaut *IDLE* exécute le code de l'utilisateur dans un sous-processus " +"séparé via un connecteur sur l'interface de la boucle locale. Cette " +"connexion n'est pas visible de l'extérieur et rien n'est envoyé ou reçu " +"d'Internet. Si un pare-feu s'en plaint quand même, vous pouvez l'ignorer." -#: ../Doc/library/idle.rst:654 +#: ../Doc/library/idle.rst:815 msgid "" "If the attempt to make the socket connection fails, Idle will notify you. " "Such failures are sometimes transient, but if persistent, the problem may be " @@ -1165,8 +1866,14 @@ msgid "" "particular system. Until the problem is fixed, one can run Idle with the -n " "command line switch." msgstr "" +"Si la tentative de connexion par le *socket* échoue, *IDLE* vous le notifie. " +"Ce genre d'échec est parfois temporaire, mais s'il persiste, le problème " +"peut soit venir d'un pare-feu qui bloque la connexion ou d'une mauvaise " +"configuration dans un système particulier. Jusqu'à ce que le problème soit " +"résolu, vous pouvez exécuter *IDLE* avec l'option *-n* de la ligne de " +"commande." -#: ../Doc/library/idle.rst:660 +#: ../Doc/library/idle.rst:821 msgid "" "If IDLE is started with the -n command line switch it will run in a single " "process and will not create the subprocess which runs the RPC Python " @@ -1179,41 +1886,134 @@ msgid "" "these reasons, it is preferable to run IDLE with the default subprocess if " "at all possible." msgstr "" - -#: ../Doc/library/idle.rst:675 +"Si *IDLE* est démarré avec l'option *-n* de la ligne de commande, il " +"s'exécute dans un seul processus et ne crée pas de sous-processus pour " +"exécuter le serveur RPC d'exécution de Python. Ceci peut être utile si " +"Python ne peut pas créer de sous-processus ou de connecteur *RPC* sur votre " +"plateforme. Cependant, dans ce mode, le code de l'utilisateur n'est pas " +"isolé de *IDLE* lui-même. De plus, l'environnement n'est pas réinitialisé " +"quand *Run/Run Module* (`F5`) est sélectionné. Si votre code a été modifié, " +"vous devez *reload*() les modules affectés et ré-importer tous les éléments " +"spécifiques (e.g. *from foo import baz*) pour que les changements prennent " +"effet. Pour toutes ces raisons, il est préférable d'exécuter *IDLE* avec le " +"sous-processus par défaut si c'est possible." + +#: ../Doc/library/idle.rst:836 msgid "Help and preferences" +msgstr "Aide et préférences" + +#: ../Doc/library/idle.rst:841 +msgid "Help sources" +msgstr "Sources d'aide" + +#: ../Doc/library/idle.rst:843 +msgid "" +"Help menu entry \"IDLE Help\" displays a formatted html version of the IDLE " +"chapter of the Library Reference. The result, in a read-only tkinter text " +"window, is close to what one sees in a web browser. Navigate through the " +"text with a mousewheel, the scrollbar, or up and down arrow keys held down. " +"Or click the TOC (Table of Contents) button and select a section header in " +"the opened box." msgstr "" +"L'entrée du menu d'aide *\"IDLE Help\"* affiche une version *html* formatée " +"du chapitre sur *IDLE* de la *Library Reference*. Le résultat, dans une " +"fenêtre de texte *tkinter* en lecture-seule, est proche de ce qu'on voit " +"dans un navigateur. Naviguez dans le texte avec la molette de la souris, la " +"barre de défilement ou avec les touches directionnelles du clavier " +"enfoncées. Ou cliquez sur le bouton TOC (*Table of Contents* : sommaire) et " +"sélectionnez un titre de section dans l'espace ouvert." -#: ../Doc/library/idle.rst:678 -msgid "Additional help sources" +#: ../Doc/library/idle.rst:851 +msgid "" +"Help menu entry \"Python Docs\" opens the extensive sources of help, " +"including tutorials, available at docs.python.org/x.y, where 'x.y' is the " +"currently running Python version. If your system has an off-line copy of " +"the docs (this may be an installation option), that will be opened instead." msgstr "" +"L'entrée du menu d'aide *\"Python Docs\"* ouvre les sources d'aide " +"détaillées, incluant des tutoriels, disponibles sur docs.python.org/x.y, " +"avec *\"x.y\"* la version de Python en cours d'exécution. Si votre système a " +"une copie locale de la documentation (ce peut être une option " +"d'installation), c'est elle qui est ouverte." -#: ../Doc/library/idle.rst:680 +#: ../Doc/library/idle.rst:857 msgid "" -"IDLE includes a help menu entry called \"Python Docs\" that will open the " -"extensive sources of help, including tutorials, available at docs.python." -"org. Selected URLs can be added or removed from the help menu at any time " -"using the Configure IDLE dialog. See the IDLE help option in the help menu " -"of IDLE for more information." +"Selected URLs can be added or removed from the help menu at any time using " +"the General tab of the Configure IDLE dialog ." msgstr "" +"Les URI sélectionnés peuvent être ajoutés ou enlevés du menu d'aide à " +"n'importe quel moment en utilisant l'onglet *General* de la fenêtre de " +"configuration d'*IDLE*." -#: ../Doc/library/idle.rst:688 +#: ../Doc/library/idle.rst:863 msgid "Setting preferences" -msgstr "" +msgstr "Modifier les préférences" -#: ../Doc/library/idle.rst:690 +#: ../Doc/library/idle.rst:865 msgid "" "The font preferences, highlighting, keys, and general preferences can be " -"changed via Configure IDLE on the Option menu. Keys can be user defined; " -"IDLE ships with four built-in key sets. In addition, a user can create a " -"custom key set in the Configure IDLE dialog under the keys tab." -msgstr "" - -#: ../Doc/library/idle.rst:697 +"changed via Configure IDLE on the Option menu. Non-default user settings are " +"saved in a .idlerc directory in the user's home directory. Problems caused " +"by bad user configuration files are solved by editing or deleting one or " +"more of the files in .idlerc." +msgstr "" +"Les préférences de fontes, surlignage, touches et les préférences générales " +"peuvent peuvent être changées via *Configure *IDLE** dans le menu Option. " +"Les paramètres modifiés par l'utilisateur sont enregistrés dans un dossier *." +"idlerc* dans le dossier personnel de l'utilisateur. Les problèmes causés par " +"des fichiers de configuration de l'utilisateur corrompus sont résolus en " +"modifiant ou en supprimant un ou plusieurs fichiers dans *.idlerc*." + +#: ../Doc/library/idle.rst:871 +msgid "" +"On the Font tab, see the text sample for the effect of font face and size on " +"multiple characters in multiple languages. Edit the sample to add other " +"characters of personal interest. Use the sample to select monospaced " +"fonts. If particular characters have problems in Shell or an editor, add " +"them to the top of the sample and try changing first size and then font." +msgstr "" +"Dans l'onglet *Fonts*, regardez les échantillons de texte pour voir l'effet " +"de la police et de la taille sur de multiples caractères de multiples " +"langues. Éditez les échantillons pour ajouter d'autres caractères qui vous " +"intéressent. Utilisez les échantillons pour sélectionner les polices à " +"largeur constante. Si certains caractères posent des difficultés dans la " +"console ou l'éditeur, ajoutez-les en haut des échantillons et essayez de " +"changer d'abord la taille, puis la fonte." + +#: ../Doc/library/idle.rst:878 +msgid "" +"On the Highlights and Keys tab, select a built-in or custom color theme and " +"key set. To use a newer built-in color theme or key set with older IDLEs, " +"save it as a new custom theme or key set and it well be accessible to older " +"IDLEs." +msgstr "" +"Dans les onglets *Highlights* et *Keys*, sélectionnez un ensemble de " +"couleurs et de raccourcis pré-inclus ou personnalisé. Pour utiliser un " +"ensemble de couleurs et de raccourcis récent avec une version d'*IDLE* plus " +"ancienne, enregistrez-le en tant que nouveau thème ou ensemble de raccourcis " +"personnalisé ; il sera alors accessible aux *IDLE* plus anciens." + +#: ../Doc/library/idle.rst:884 +msgid "IDLE on macOS" +msgstr "*IDLE* sous *macOS*" + +# framework=>cadriciel ne pose pas de problème ? +#: ../Doc/library/idle.rst:886 +msgid "" +"Under System Preferences: Dock, one can set \"Prefer tabs when opening " +"documents\" to \"Always\". This setting is not compatible with the tk/" +"tkinter GUI framework used by IDLE, and it breaks a few IDLE features." +msgstr "" +"Dans *System Preferences: Dock*, on peut mettre *\"Prefer tabs when opening " +"documents\"* à la valeur *\"Always\"*. Ce paramètre n'est pas compatible " +"avec le cadriciel *tk/tkinter* utilisé par *IDLE* et il casse quelques " +"fonctionnalités d'*IDLE*." + +#: ../Doc/library/idle.rst:891 msgid "Extensions" -msgstr "" +msgstr "Extensions" -#: ../Doc/library/idle.rst:699 +#: ../Doc/library/idle.rst:893 msgid "" "IDLE contains an extension facility. Preferences for extensions can be " "changed with the Extensions tab of the preferences dialog. See the beginning " @@ -1221,3 +2021,8 @@ msgid "" "The only current default extension is zzdummy, an example also used for " "testing." msgstr "" +"*IDLE* inclut un outil d'extensions. Les préférences pour les extensions " +"peuvent être changées avec l'onglet Extensions de la fenêtre de préférences. " +"Lisez le début de *config-extensions.def* dans le dossier *idlelib* pour " +"plus d'informations. La seule extension actuellement utilisée par défaut est " +"*zzdummy*, un exemple également utilisé pour les tests." diff --git a/library/imaplib.po b/library/imaplib.po index fbc3608e4..93f4cac96 100644 --- a/library/imaplib.po +++ b/library/imaplib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\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" "Language-Team: FRENCH \n" @@ -49,12 +49,12 @@ msgstr "" msgid "" "The :class:`IMAP4` class supports the :keyword:`with` statement. When used " "like this, the IMAP4 ``LOGOUT`` command is issued automatically when the :" -"keyword:`with` statement exits. E.g.::" +"keyword:`!with` statement exits. E.g.::" msgstr "" #: ../Doc/library/imaplib.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/imaplib.rst:53 msgid "Three exceptions are defined as attributes of the :class:`IMAP4` class:" diff --git a/library/imp.po b/library/imp.po index 08e1d6a35..eb6e33f06 100644 --- a/library/imp.po +++ b/library/imp.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -242,7 +242,7 @@ msgid "" "If a module imports objects from another module using :keyword:`from` ... :" "keyword:`import` ..., calling :func:`reload` for the other module does not " "redefine the objects imported from it --- one way around this is to re-" -"execute the :keyword:`from` statement, another is to use :keyword:`import` " +"execute the :keyword:`!from` statement, another is to use :keyword:`!import` " "and qualified names (*module*.*name*) instead." msgstr "" @@ -305,8 +305,8 @@ msgid "" "Given the *path* to a :pep:`3147` file name, return the associated source " "code file path. For example, if *path* is ``/foo/bar/__pycache__/baz." "cpython-32.pyc`` the returned path would be ``/foo/bar/baz.py``. *path* " -"need not exist, however if it does not conform to :pep:`3147` format, a " -"``ValueError`` is raised. If :attr:`sys.implementation.cache_tag` is not " +"need not exist, however if it does not conform to :pep:`3147` format, a :exc:" +"`ValueError` is raised. If :attr:`sys.implementation.cache_tag` is not " "defined, :exc:`NotImplementedError` is raised." msgstr "" diff --git a/library/importlib.po b/library/importlib.po index 231235c3c..81455a8de 100644 --- a/library/importlib.po +++ b/library/importlib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2018-07-04 11:26+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" "X-Generator: Poedit 1.8.11\n" #: ../Doc/library/importlib.rst:2 -msgid ":mod:`importlib` --- The implementation of :keyword:`import`" +msgid ":mod:`!importlib` --- The implementation of :keyword:`!import`" msgstr "" #: ../Doc/library/importlib.rst:12 @@ -32,7 +32,7 @@ msgid "" "The purpose of the :mod:`importlib` package is two-fold. One is to provide " "the implementation of the :keyword:`import` statement (and thus, by " "extension, the :func:`__import__` function) in Python source code. This " -"provides an implementation of :keyword:`import` which is portable to any " +"provides an implementation of :keyword:`!import` which is portable to any " "Python interpreter. This also provides an implementation which is easier to " "comprehend than one implemented in a programming language other than Python." msgstr "" @@ -323,7 +323,7 @@ msgid "" "If a module imports objects from another module using :keyword:`from` ... :" "keyword:`import` ..., calling :func:`reload` for the other module does not " "redefine the objects imported from it --- one way around this is to re-" -"execute the :keyword:`from` statement, another is to use :keyword:`import` " +"execute the :keyword:`!from` statement, another is to use :keyword:`!import` " "and qualified names (*module.name*) instead." msgstr "" @@ -1655,8 +1655,8 @@ msgid "" "code file path. For example, if *path* is ``/foo/bar/__pycache__/baz." "cpython-32.pyc`` the returned path would be ``/foo/bar/baz.py``. *path* " "need not exist, however if it does not conform to :pep:`3147` or :pep:`488` " -"format, a ``ValueError`` is raised. If :attr:`sys.implementation.cache_tag` " -"is not defined, :exc:`NotImplementedError` is raised." +"format, a :exc:`ValueError` is raised. If :attr:`sys.implementation." +"cache_tag` is not defined, :exc:`NotImplementedError` is raised." msgstr "" #: ../Doc/library/importlib.rst:1421 @@ -1898,7 +1898,7 @@ msgstr "" #: ../Doc/library/importlib.rst:1655 msgid "" "To import a Python source file directly, use the following recipe (Python " -"3.4 and newer only)::" +"3.5 and newer only)::" msgstr "" #: ../Doc/library/importlib.rst:1675 diff --git a/library/inspect.po b/library/inspect.po index 659d112b8..78bad953d 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" "PO-Revision-Date: 2017-05-27 19:55+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -71,13 +71,13 @@ msgstr "module" #: ../Doc/library/inspect.rst:43 ../Doc/library/inspect.rst:48 #: ../Doc/library/inspect.rst:58 ../Doc/library/inspect.rst:73 -#: ../Doc/library/inspect.rst:225 +#: ../Doc/library/inspect.rst:222 msgid "__doc__" msgstr "__doc__" #: ../Doc/library/inspect.rst:43 ../Doc/library/inspect.rst:48 #: ../Doc/library/inspect.rst:58 ../Doc/library/inspect.rst:73 -#: ../Doc/library/inspect.rst:225 +#: ../Doc/library/inspect.rst:222 msgid "documentation string" msgstr "" @@ -94,8 +94,8 @@ msgid "class" msgstr "classe" #: ../Doc/library/inspect.rst:50 ../Doc/library/inspect.rst:60 -#: ../Doc/library/inspect.rst:75 ../Doc/library/inspect.rst:194 -#: ../Doc/library/inspect.rst:208 ../Doc/library/inspect.rst:227 +#: ../Doc/library/inspect.rst:75 ../Doc/library/inspect.rst:191 +#: ../Doc/library/inspect.rst:205 ../Doc/library/inspect.rst:224 msgid "__name__" msgstr "__name__" @@ -104,14 +104,14 @@ msgid "name with which this class was defined" msgstr "" #: ../Doc/library/inspect.rst:53 ../Doc/library/inspect.rst:63 -#: ../Doc/library/inspect.rst:78 ../Doc/library/inspect.rst:196 -#: ../Doc/library/inspect.rst:210 ../Doc/library/inspect.rst:230 +#: ../Doc/library/inspect.rst:78 ../Doc/library/inspect.rst:193 +#: ../Doc/library/inspect.rst:207 ../Doc/library/inspect.rst:227 msgid "__qualname__" msgstr "__qualname__" #: ../Doc/library/inspect.rst:53 ../Doc/library/inspect.rst:63 -#: ../Doc/library/inspect.rst:78 ../Doc/library/inspect.rst:196 -#: ../Doc/library/inspect.rst:210 ../Doc/library/inspect.rst:230 +#: ../Doc/library/inspect.rst:78 ../Doc/library/inspect.rst:193 +#: ../Doc/library/inspect.rst:207 ../Doc/library/inspect.rst:227 msgid "qualified name" msgstr "nom qualifié" @@ -139,7 +139,7 @@ msgstr "__func__" msgid "function object containing implementation of method" msgstr "" -#: ../Doc/library/inspect.rst:69 ../Doc/library/inspect.rst:232 +#: ../Doc/library/inspect.rst:69 ../Doc/library/inspect.rst:229 msgid "__self__" msgstr "__self__" @@ -233,8 +233,8 @@ msgstr "tb_next" msgid "next inner traceback object (called by this level)" msgstr "" -#: ../Doc/library/inspect.rst:114 ../Doc/library/inspect.rst:198 -#: ../Doc/library/inspect.rst:215 +#: ../Doc/library/inspect.rst:114 ../Doc/library/inspect.rst:195 +#: ../Doc/library/inspect.rst:212 msgid "frame" msgstr "" @@ -287,258 +287,250 @@ msgid "local namespace seen by this frame" msgstr "" #: ../Doc/library/inspect.rst:135 -msgid "f_restricted" -msgstr "f_restricted" - -#: ../Doc/library/inspect.rst:135 -msgid "0 or 1 if frame is in restricted execution mode" -msgstr "" - -#: ../Doc/library/inspect.rst:138 msgid "f_trace" msgstr "f_trace" -#: ../Doc/library/inspect.rst:138 +#: ../Doc/library/inspect.rst:135 msgid "tracing function for this frame, or ``None``" msgstr "" -#: ../Doc/library/inspect.rst:141 ../Doc/library/inspect.rst:202 -#: ../Doc/library/inspect.rst:219 +#: ../Doc/library/inspect.rst:138 ../Doc/library/inspect.rst:199 +#: ../Doc/library/inspect.rst:216 msgid "code" msgstr "" -#: ../Doc/library/inspect.rst:141 +#: ../Doc/library/inspect.rst:138 msgid "co_argcount" msgstr "co_argcount" -#: ../Doc/library/inspect.rst:141 +#: ../Doc/library/inspect.rst:138 msgid "" "number of arguments (not including keyword only arguments, \\* or \\*\\* " "args)" msgstr "" -#: ../Doc/library/inspect.rst:146 +#: ../Doc/library/inspect.rst:143 msgid "co_code" msgstr "co_code" -#: ../Doc/library/inspect.rst:146 +#: ../Doc/library/inspect.rst:143 msgid "string of raw compiled bytecode" msgstr "" -#: ../Doc/library/inspect.rst:149 +#: ../Doc/library/inspect.rst:146 msgid "co_cellvars" msgstr "" -#: ../Doc/library/inspect.rst:149 +#: ../Doc/library/inspect.rst:146 msgid "tuple of names of cell variables (referenced by containing scopes)" msgstr "" -#: ../Doc/library/inspect.rst:153 +#: ../Doc/library/inspect.rst:150 msgid "co_consts" msgstr "co_consts" -#: ../Doc/library/inspect.rst:153 +#: ../Doc/library/inspect.rst:150 msgid "tuple of constants used in the bytecode" msgstr "" -#: ../Doc/library/inspect.rst:156 +#: ../Doc/library/inspect.rst:153 msgid "co_filename" msgstr "co_filename" -#: ../Doc/library/inspect.rst:156 +#: ../Doc/library/inspect.rst:153 msgid "name of file in which this code object was created" msgstr "" -#: ../Doc/library/inspect.rst:160 +#: ../Doc/library/inspect.rst:157 msgid "co_firstlineno" msgstr "co_firstlineno" -#: ../Doc/library/inspect.rst:160 +#: ../Doc/library/inspect.rst:157 msgid "number of first line in Python source code" msgstr "" -#: ../Doc/library/inspect.rst:163 +#: ../Doc/library/inspect.rst:160 msgid "co_flags" msgstr "co_flags" -#: ../Doc/library/inspect.rst:163 +#: ../Doc/library/inspect.rst:160 msgid "" "bitmap of ``CO_*`` flags, read more :ref:`here `" msgstr "" -#: ../Doc/library/inspect.rst:167 +#: ../Doc/library/inspect.rst:164 msgid "co_lnotab" msgstr "co_lnotab" -#: ../Doc/library/inspect.rst:167 +#: ../Doc/library/inspect.rst:164 msgid "encoded mapping of line numbers to bytecode indices" msgstr "" -#: ../Doc/library/inspect.rst:171 +#: ../Doc/library/inspect.rst:168 msgid "co_freevars" msgstr "co_freevars" -#: ../Doc/library/inspect.rst:171 +#: ../Doc/library/inspect.rst:168 msgid "tuple of names of free variables (referenced via a function's closure)" msgstr "" -#: ../Doc/library/inspect.rst:175 +#: ../Doc/library/inspect.rst:172 msgid "co_kwonlyargcount" msgstr "co_kwonlyargcount" -#: ../Doc/library/inspect.rst:175 +#: ../Doc/library/inspect.rst:172 msgid "number of keyword only arguments (not including \\*\\* arg)" msgstr "" -#: ../Doc/library/inspect.rst:179 +#: ../Doc/library/inspect.rst:176 msgid "co_name" msgstr "co_name" -#: ../Doc/library/inspect.rst:179 +#: ../Doc/library/inspect.rst:176 msgid "name with which this code object was defined" msgstr "" -#: ../Doc/library/inspect.rst:182 +#: ../Doc/library/inspect.rst:179 msgid "co_names" msgstr "co_names" -#: ../Doc/library/inspect.rst:182 +#: ../Doc/library/inspect.rst:179 msgid "tuple of names of local variables" msgstr "" -#: ../Doc/library/inspect.rst:185 +#: ../Doc/library/inspect.rst:182 msgid "co_nlocals" msgstr "co_nlocals" -#: ../Doc/library/inspect.rst:185 +#: ../Doc/library/inspect.rst:182 msgid "number of local variables" msgstr "" -#: ../Doc/library/inspect.rst:187 +#: ../Doc/library/inspect.rst:184 msgid "co_stacksize" msgstr "co_stacksize" -#: ../Doc/library/inspect.rst:187 +#: ../Doc/library/inspect.rst:184 msgid "virtual machine stack space required" msgstr "" -#: ../Doc/library/inspect.rst:190 +#: ../Doc/library/inspect.rst:187 msgid "co_varnames" msgstr "co_varnames" -#: ../Doc/library/inspect.rst:190 +#: ../Doc/library/inspect.rst:187 msgid "tuple of names of arguments and local variables" msgstr "" -#: ../Doc/library/inspect.rst:194 +#: ../Doc/library/inspect.rst:191 msgid "generator" msgstr "générateur" -#: ../Doc/library/inspect.rst:194 ../Doc/library/inspect.rst:208 +#: ../Doc/library/inspect.rst:191 ../Doc/library/inspect.rst:205 msgid "name" msgstr "" -#: ../Doc/library/inspect.rst:198 +#: ../Doc/library/inspect.rst:195 msgid "gi_frame" msgstr "gi_frame" -#: ../Doc/library/inspect.rst:200 +#: ../Doc/library/inspect.rst:197 msgid "gi_running" msgstr "gi_running" -#: ../Doc/library/inspect.rst:200 +#: ../Doc/library/inspect.rst:197 msgid "is the generator running?" msgstr "" -#: ../Doc/library/inspect.rst:202 +#: ../Doc/library/inspect.rst:199 msgid "gi_code" msgstr "gi_code" -#: ../Doc/library/inspect.rst:204 +#: ../Doc/library/inspect.rst:201 msgid "gi_yieldfrom" msgstr "gi_yieldfrom" -#: ../Doc/library/inspect.rst:204 +#: ../Doc/library/inspect.rst:201 msgid "object being iterated by ``yield from``, or ``None``" msgstr "" -#: ../Doc/library/inspect.rst:208 +#: ../Doc/library/inspect.rst:205 msgid "coroutine" msgstr "coroutine" -#: ../Doc/library/inspect.rst:212 +#: ../Doc/library/inspect.rst:209 msgid "cr_await" msgstr "cr_await" -#: ../Doc/library/inspect.rst:212 +#: ../Doc/library/inspect.rst:209 msgid "object being awaited on, or ``None``" msgstr "" -#: ../Doc/library/inspect.rst:215 +#: ../Doc/library/inspect.rst:212 msgid "cr_frame" msgstr "cr_frame" -#: ../Doc/library/inspect.rst:217 +#: ../Doc/library/inspect.rst:214 msgid "cr_running" msgstr "cr_running" -#: ../Doc/library/inspect.rst:217 +#: ../Doc/library/inspect.rst:214 msgid "is the coroutine running?" msgstr "" -#: ../Doc/library/inspect.rst:219 +#: ../Doc/library/inspect.rst:216 msgid "cr_code" msgstr "cr_code" -#: ../Doc/library/inspect.rst:221 +#: ../Doc/library/inspect.rst:218 msgid "cr_origin" msgstr "" -#: ../Doc/library/inspect.rst:221 +#: ../Doc/library/inspect.rst:218 msgid "where coroutine was created, or ``None``. See |coroutine-origin-link|" msgstr "" -#: ../Doc/library/inspect.rst:225 +#: ../Doc/library/inspect.rst:222 msgid "builtin" msgstr "" -#: ../Doc/library/inspect.rst:227 +#: ../Doc/library/inspect.rst:224 msgid "original name of this function or method" msgstr "" -#: ../Doc/library/inspect.rst:232 +#: ../Doc/library/inspect.rst:229 msgid "instance to which a method is bound, or ``None``" msgstr "" -#: ../Doc/library/inspect.rst:239 +#: ../Doc/library/inspect.rst:236 msgid "Add ``__qualname__`` and ``gi_yieldfrom`` attributes to generators." msgstr "" -#: ../Doc/library/inspect.rst:241 +#: ../Doc/library/inspect.rst:238 msgid "" "The ``__name__`` attribute of generators is now set from the function name, " "instead of the code name, and it can now be modified." msgstr "" -#: ../Doc/library/inspect.rst:246 +#: ../Doc/library/inspect.rst:243 msgid "Add ``cr_origin`` attribute to coroutines." msgstr "" -#: ../Doc/library/inspect.rst:250 +#: ../Doc/library/inspect.rst:247 msgid "" "Return all the members of an object in a list of (name, value) pairs sorted " "by name. If the optional *predicate* argument is supplied, only members for " "which the predicate returns a true value are included." msgstr "" -#: ../Doc/library/inspect.rst:256 +#: ../Doc/library/inspect.rst:253 msgid "" ":func:`getmembers` will only return class attributes defined in the " "metaclass when the argument is a class and those attributes have been listed " "in the metaclass' custom :meth:`__dir__`." msgstr "" -#: ../Doc/library/inspect.rst:263 +#: ../Doc/library/inspect.rst:260 msgid "" "Return the name of the module named by the file *path*, without including " "the names of enclosing packages. The file extension is checked against all " @@ -547,113 +539,113 @@ msgid "" "``None`` is returned." msgstr "" -#: ../Doc/library/inspect.rst:269 +#: ../Doc/library/inspect.rst:266 msgid "" "Note that this function *only* returns a meaningful name for actual Python " "modules - paths that potentially refer to Python packages will still return " "``None``." msgstr "" -#: ../Doc/library/inspect.rst:273 +#: ../Doc/library/inspect.rst:270 msgid "The function is based directly on :mod:`importlib`." msgstr "" -#: ../Doc/library/inspect.rst:279 +#: ../Doc/library/inspect.rst:276 msgid "Return true if the object is a module." msgstr "" -#: ../Doc/library/inspect.rst:284 +#: ../Doc/library/inspect.rst:281 msgid "" "Return true if the object is a class, whether built-in or created in Python " "code." msgstr "" -#: ../Doc/library/inspect.rst:290 +#: ../Doc/library/inspect.rst:287 msgid "Return true if the object is a bound method written in Python." msgstr "" -#: ../Doc/library/inspect.rst:295 +#: ../Doc/library/inspect.rst:292 msgid "" "Return true if the object is a Python function, which includes functions " "created by a :term:`lambda` expression." msgstr "" -#: ../Doc/library/inspect.rst:301 +#: ../Doc/library/inspect.rst:298 msgid "Return true if the object is a Python generator function." msgstr "" -#: ../Doc/library/inspect.rst:306 +#: ../Doc/library/inspect.rst:303 msgid "Return true if the object is a generator." msgstr "" -#: ../Doc/library/inspect.rst:311 +#: ../Doc/library/inspect.rst:308 msgid "" "Return true if the object is a :term:`coroutine function` (a function " "defined with an :keyword:`async def` syntax)." msgstr "" -#: ../Doc/library/inspect.rst:319 +#: ../Doc/library/inspect.rst:316 msgid "" "Return true if the object is a :term:`coroutine` created by an :keyword:" "`async def` function." msgstr "" -#: ../Doc/library/inspect.rst:327 +#: ../Doc/library/inspect.rst:324 msgid "Return true if the object can be used in :keyword:`await` expression." msgstr "" -#: ../Doc/library/inspect.rst:329 +#: ../Doc/library/inspect.rst:326 msgid "" "Can also be used to distinguish generator-based coroutines from regular " "generators::" msgstr "" -#: ../Doc/library/inspect.rst:346 +#: ../Doc/library/inspect.rst:343 msgid "" "Return true if the object is an :term:`asynchronous generator` function, for " "example::" msgstr "" -#: ../Doc/library/inspect.rst:360 +#: ../Doc/library/inspect.rst:357 msgid "" "Return true if the object is an :term:`asynchronous generator iterator` " "created by an :term:`asynchronous generator` function." msgstr "" -#: ../Doc/library/inspect.rst:367 +#: ../Doc/library/inspect.rst:364 msgid "Return true if the object is a traceback." msgstr "" -#: ../Doc/library/inspect.rst:372 +#: ../Doc/library/inspect.rst:369 msgid "Return true if the object is a frame." msgstr "" -#: ../Doc/library/inspect.rst:377 +#: ../Doc/library/inspect.rst:374 msgid "Return true if the object is a code." msgstr "" -#: ../Doc/library/inspect.rst:382 +#: ../Doc/library/inspect.rst:379 msgid "" "Return true if the object is a built-in function or a bound built-in method." msgstr "" -#: ../Doc/library/inspect.rst:387 +#: ../Doc/library/inspect.rst:384 msgid "" "Return true if the object is a user-defined or built-in function or method." msgstr "" -#: ../Doc/library/inspect.rst:392 +#: ../Doc/library/inspect.rst:389 msgid "Return true if the object is an abstract base class." msgstr "" -#: ../Doc/library/inspect.rst:397 +#: ../Doc/library/inspect.rst:394 msgid "" "Return true if the object is a method descriptor, but not if :func:" "`ismethod`, :func:`isclass`, :func:`isfunction` or :func:`isbuiltin` are " "true." msgstr "" -#: ../Doc/library/inspect.rst:401 +#: ../Doc/library/inspect.rst:398 msgid "" "This, for example, is true of ``int.__add__``. An object passing this test " "has a :meth:`~object.__get__` method but not a :meth:`~object.__set__` " @@ -661,7 +653,7 @@ msgid "" "__name__` attribute is usually sensible, and :attr:`__doc__` often is." msgstr "" -#: ../Doc/library/inspect.rst:407 +#: ../Doc/library/inspect.rst:404 msgid "" "Methods implemented via descriptors that also pass one of the other tests " "return false from the :func:`ismethoddescriptor` test, simply because the " @@ -669,11 +661,11 @@ msgid "" "`__func__` attribute (etc) when an object passes :func:`ismethod`." msgstr "" -#: ../Doc/library/inspect.rst:415 +#: ../Doc/library/inspect.rst:412 msgid "Return true if the object is a data descriptor." msgstr "" -#: ../Doc/library/inspect.rst:417 +#: ../Doc/library/inspect.rst:414 msgid "" "Data descriptors have both a :attr:`~object.__get__` and a :attr:`~object." "__set__` method. Examples are properties (defined in Python), getsets, and " @@ -684,33 +676,33 @@ msgid "" "these attributes), but this is not guaranteed." msgstr "" -#: ../Doc/library/inspect.rst:428 +#: ../Doc/library/inspect.rst:425 msgid "Return true if the object is a getset descriptor." msgstr "" -#: ../Doc/library/inspect.rst:432 +#: ../Doc/library/inspect.rst:429 msgid "" "getsets are attributes defined in extension modules via :c:type:" "`PyGetSetDef` structures. For Python implementations without such types, " "this method will always return ``False``." msgstr "" -#: ../Doc/library/inspect.rst:439 +#: ../Doc/library/inspect.rst:436 msgid "Return true if the object is a member descriptor." msgstr "" -#: ../Doc/library/inspect.rst:443 +#: ../Doc/library/inspect.rst:440 msgid "" "Member descriptors are attributes defined in extension modules via :c:type:" "`PyMemberDef` structures. For Python implementations without such types, " "this method will always return ``False``." msgstr "" -#: ../Doc/library/inspect.rst:451 +#: ../Doc/library/inspect.rst:448 msgid "Retrieving source code" msgstr "" -#: ../Doc/library/inspect.rst:455 +#: ../Doc/library/inspect.rst:452 msgid "" "Get the documentation string for an object, cleaned up with :func:" "`cleandoc`. If the documentation string for an object is not provided and " @@ -718,11 +710,11 @@ msgid "" "documentation string from the inheritance hierarchy." msgstr "" -#: ../Doc/library/inspect.rst:460 +#: ../Doc/library/inspect.rst:457 msgid "Documentation strings are now inherited if not overridden." msgstr "" -#: ../Doc/library/inspect.rst:466 +#: ../Doc/library/inspect.rst:463 msgid "" "Return in a single string any lines of comments immediately preceding the " "object's source code (for a class, function, or method), or at the top of " @@ -731,25 +723,25 @@ msgid "" "been defined in C or the interactive shell." msgstr "" -#: ../Doc/library/inspect.rst:475 +#: ../Doc/library/inspect.rst:472 msgid "" "Return the name of the (text or binary) file in which an object was defined. " "This will fail with a :exc:`TypeError` if the object is a built-in module, " "class, or function." msgstr "" -#: ../Doc/library/inspect.rst:482 +#: ../Doc/library/inspect.rst:479 msgid "Try to guess which module an object was defined in." msgstr "" -#: ../Doc/library/inspect.rst:487 +#: ../Doc/library/inspect.rst:484 msgid "" "Return the name of the Python source file in which an object was defined. " "This will fail with a :exc:`TypeError` if the object is a built-in module, " "class, or function." msgstr "" -#: ../Doc/library/inspect.rst:494 +#: ../Doc/library/inspect.rst:491 msgid "" "Return a list of source lines and starting line number for an object. The " "argument may be a module, class, method, function, traceback, frame, or code " @@ -759,13 +751,13 @@ msgid "" "code cannot be retrieved." msgstr "" -#: ../Doc/library/inspect.rst:501 ../Doc/library/inspect.rst:513 +#: ../Doc/library/inspect.rst:498 ../Doc/library/inspect.rst:510 msgid "" ":exc:`OSError` is raised instead of :exc:`IOError`, now an alias of the " "former." msgstr "" -#: ../Doc/library/inspect.rst:508 +#: ../Doc/library/inspect.rst:505 msgid "" "Return the text of the source code for an object. The argument may be a " "module, class, method, function, traceback, frame, or code object. The " @@ -773,13 +765,13 @@ msgid "" "the source code cannot be retrieved." msgstr "" -#: ../Doc/library/inspect.rst:520 +#: ../Doc/library/inspect.rst:517 msgid "" "Clean up indentation from docstrings that are indented to line up with " "blocks of code." msgstr "" -#: ../Doc/library/inspect.rst:523 +#: ../Doc/library/inspect.rst:520 msgid "" "All leading whitespace is removed from the first line. Any leading " "whitespace that can be uniformly removed from the second line onwards is " @@ -787,55 +779,62 @@ msgid "" "Also, all tabs are expanded to spaces." msgstr "" -#: ../Doc/library/inspect.rst:532 +#: ../Doc/library/inspect.rst:529 msgid "Introspecting callables with the Signature object" msgstr "" -#: ../Doc/library/inspect.rst:536 +#: ../Doc/library/inspect.rst:533 msgid "" "The Signature object represents the call signature of a callable object and " "its return annotation. To retrieve a Signature object, use the :func:" "`signature` function." msgstr "" -#: ../Doc/library/inspect.rst:542 +#: ../Doc/library/inspect.rst:539 msgid "Return a :class:`Signature` object for the given ``callable``::" msgstr "" -#: ../Doc/library/inspect.rst:559 +#: ../Doc/library/inspect.rst:556 msgid "" "Accepts a wide range of Python callables, from plain functions and classes " "to :func:`functools.partial` objects." msgstr "" -#: ../Doc/library/inspect.rst:562 +#: ../Doc/library/inspect.rst:559 msgid "" "Raises :exc:`ValueError` if no signature can be provided, and :exc:" "`TypeError` if that type of object is not supported." msgstr "" -#: ../Doc/library/inspect.rst:565 +#: ../Doc/library/inspect.rst:562 +msgid "" +"A slash(/) in the signature of a function denotes that the parameters prior " +"to it are positional-only. For more info, see :ref:`the FAQ entry on " +"positional-only parameters `." +msgstr "" + +#: ../Doc/library/inspect.rst:566 msgid "" "``follow_wrapped`` parameter. Pass ``False`` to get a signature of " "``callable`` specifically (``callable.__wrapped__`` will not be used to " "unwrap decorated callables.)" msgstr "" -#: ../Doc/library/inspect.rst:572 +#: ../Doc/library/inspect.rst:573 msgid "" "Some callables may not be introspectable in certain implementations of " "Python. For example, in CPython, some built-in functions defined in C " "provide no metadata about their arguments." msgstr "" -#: ../Doc/library/inspect.rst:579 +#: ../Doc/library/inspect.rst:580 msgid "" "A Signature object represents the call signature of a function and its " "return annotation. For each parameter accepted by the function it stores a :" "class:`Parameter` object in its :attr:`parameters` collection." msgstr "" -#: ../Doc/library/inspect.rst:583 +#: ../Doc/library/inspect.rst:584 msgid "" "The optional *parameters* argument is a sequence of :class:`Parameter` " "objects, which is validated to check that there are no parameters with " @@ -844,54 +843,54 @@ msgid "" "defaults follow parameters without defaults." msgstr "" -#: ../Doc/library/inspect.rst:589 +#: ../Doc/library/inspect.rst:590 msgid "" "The optional *return_annotation* argument, can be an arbitrary Python " "object, is the \"return\" annotation of the callable." msgstr "" -#: ../Doc/library/inspect.rst:592 +#: ../Doc/library/inspect.rst:593 msgid "" "Signature objects are *immutable*. Use :meth:`Signature.replace` to make a " "modified copy." msgstr "" -#: ../Doc/library/inspect.rst:595 +#: ../Doc/library/inspect.rst:596 msgid "Signature objects are picklable and hashable." msgstr "" -#: ../Doc/library/inspect.rst:600 +#: ../Doc/library/inspect.rst:601 msgid "A special class-level marker to specify absence of a return annotation." msgstr "" -#: ../Doc/library/inspect.rst:604 +#: ../Doc/library/inspect.rst:605 msgid "" "An ordered mapping of parameters' names to the corresponding :class:" "`Parameter` objects. Parameters appear in strict definition order, " "including keyword-only parameters." msgstr "" -#: ../Doc/library/inspect.rst:608 ../Doc/library/inspect.rst:930 +#: ../Doc/library/inspect.rst:609 ../Doc/library/inspect.rst:931 msgid "" "Python only explicitly guaranteed that it preserved the declaration order of " "keyword-only parameters as of version 3.7, although in practice this order " "had always been preserved in Python 3." msgstr "" -#: ../Doc/library/inspect.rst:615 +#: ../Doc/library/inspect.rst:616 msgid "" "The \"return\" annotation for the callable. If the callable has no \"return" "\" annotation, this attribute is set to :attr:`Signature.empty`." msgstr "" -#: ../Doc/library/inspect.rst:620 +#: ../Doc/library/inspect.rst:621 msgid "" "Create a mapping from positional and keyword arguments to parameters. " "Returns :class:`BoundArguments` if ``*args`` and ``**kwargs`` match the " "signature, or raises a :exc:`TypeError`." msgstr "" -#: ../Doc/library/inspect.rst:626 +#: ../Doc/library/inspect.rst:627 msgid "" "Works the same way as :meth:`Signature.bind`, but allows the omission of " "some required arguments (mimics :func:`functools.partial` behavior.) " @@ -899,7 +898,7 @@ msgid "" "arguments do not match the signature." msgstr "" -#: ../Doc/library/inspect.rst:633 +#: ../Doc/library/inspect.rst:634 msgid "" "Create a new Signature instance based on the instance replace was invoked " "on. It is possible to pass different ``parameters`` and/or " @@ -908,137 +907,137 @@ msgid "" "attr:`Signature.empty`." msgstr "" -#: ../Doc/library/inspect.rst:650 +#: ../Doc/library/inspect.rst:651 msgid "" "Return a :class:`Signature` (or its subclass) object for a given callable " "``obj``. Pass ``follow_wrapped=False`` to get a signature of ``obj`` " "without unwrapping its ``__wrapped__`` chain." msgstr "" -#: ../Doc/library/inspect.rst:654 +#: ../Doc/library/inspect.rst:655 msgid "This method simplifies subclassing of :class:`Signature`::" msgstr "" -#: ../Doc/library/inspect.rst:666 +#: ../Doc/library/inspect.rst:667 msgid "" "Parameter objects are *immutable*. Instead of modifying a Parameter object, " "you can use :meth:`Parameter.replace` to create a modified copy." msgstr "" -#: ../Doc/library/inspect.rst:669 +#: ../Doc/library/inspect.rst:670 msgid "Parameter objects are picklable and hashable." msgstr "" -#: ../Doc/library/inspect.rst:674 +#: ../Doc/library/inspect.rst:675 msgid "" "A special class-level marker to specify absence of default values and " "annotations." msgstr "" -#: ../Doc/library/inspect.rst:679 +#: ../Doc/library/inspect.rst:680 msgid "" "The name of the parameter as a string. The name must be a valid Python " "identifier." msgstr "" -#: ../Doc/library/inspect.rst:684 +#: ../Doc/library/inspect.rst:685 msgid "" "CPython generates implicit parameter names of the form ``.0`` on the code " "objects used to implement comprehensions and generator expressions." msgstr "" -#: ../Doc/library/inspect.rst:688 +#: ../Doc/library/inspect.rst:689 msgid "" "These parameter names are exposed by this module as names like ``implicit0``." msgstr "" -#: ../Doc/library/inspect.rst:694 +#: ../Doc/library/inspect.rst:695 msgid "" "The default value for the parameter. If the parameter has no default value, " "this attribute is set to :attr:`Parameter.empty`." msgstr "" -#: ../Doc/library/inspect.rst:699 +#: ../Doc/library/inspect.rst:700 msgid "" "The annotation for the parameter. If the parameter has no annotation, this " "attribute is set to :attr:`Parameter.empty`." msgstr "" -#: ../Doc/library/inspect.rst:704 +#: ../Doc/library/inspect.rst:705 msgid "" "Describes how argument values are bound to the parameter. Possible values " "(accessible via :class:`Parameter`, like ``Parameter.KEYWORD_ONLY``):" msgstr "" -#: ../Doc/library/inspect.rst:710 +#: ../Doc/library/inspect.rst:711 msgid "Name" msgstr "Nom" -#: ../Doc/library/inspect.rst:710 +#: ../Doc/library/inspect.rst:711 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/inspect.rst:712 +#: ../Doc/library/inspect.rst:713 msgid "*POSITIONAL_ONLY*" msgstr "" -#: ../Doc/library/inspect.rst:712 +#: ../Doc/library/inspect.rst:713 msgid "Value must be supplied as a positional argument." msgstr "" -#: ../Doc/library/inspect.rst:715 +#: ../Doc/library/inspect.rst:716 msgid "" "Python has no explicit syntax for defining positional-only parameters, but " "many built-in and extension module functions (especially those that accept " "only one or two parameters) accept them." msgstr "" -#: ../Doc/library/inspect.rst:721 +#: ../Doc/library/inspect.rst:722 msgid "*POSITIONAL_OR_KEYWORD*" msgstr "" -#: ../Doc/library/inspect.rst:721 +#: ../Doc/library/inspect.rst:722 msgid "" "Value may be supplied as either a keyword or positional argument (this is " "the standard binding behaviour for functions implemented in Python.)" msgstr "" -#: ../Doc/library/inspect.rst:726 +#: ../Doc/library/inspect.rst:727 msgid "*VAR_POSITIONAL*" msgstr "" -#: ../Doc/library/inspect.rst:726 +#: ../Doc/library/inspect.rst:727 msgid "" "A tuple of positional arguments that aren't bound to any other parameter. " "This corresponds to a ``*args`` parameter in a Python function definition." msgstr "" -#: ../Doc/library/inspect.rst:731 +#: ../Doc/library/inspect.rst:732 msgid "*KEYWORD_ONLY*" msgstr "" -#: ../Doc/library/inspect.rst:731 +#: ../Doc/library/inspect.rst:732 msgid "" "Value must be supplied as a keyword argument. Keyword only parameters are " "those which appear after a ``*`` or ``*args`` entry in a Python function " "definition." msgstr "" -#: ../Doc/library/inspect.rst:736 +#: ../Doc/library/inspect.rst:737 msgid "*VAR_KEYWORD*" msgstr "" -#: ../Doc/library/inspect.rst:736 +#: ../Doc/library/inspect.rst:737 msgid "" "A dict of keyword arguments that aren't bound to any other parameter. This " "corresponds to a ``**kwargs`` parameter in a Python function definition." msgstr "" -#: ../Doc/library/inspect.rst:742 +#: ../Doc/library/inspect.rst:743 msgid "Example: print all keyword-only arguments without default values::" msgstr "" -#: ../Doc/library/inspect.rst:756 +#: ../Doc/library/inspect.rst:757 msgid "" "Create a new Parameter instance based on the instance replaced was invoked " "on. To override a :class:`Parameter` attribute, pass the corresponding " @@ -1046,20 +1045,20 @@ msgid "" "pass :attr:`Parameter.empty`." msgstr "" -#: ../Doc/library/inspect.rst:774 +#: ../Doc/library/inspect.rst:775 msgid "" "In Python 3.3 Parameter objects were allowed to have ``name`` set to " "``None`` if their ``kind`` was set to ``POSITIONAL_ONLY``. This is no longer " "permitted." msgstr "" -#: ../Doc/library/inspect.rst:781 +#: ../Doc/library/inspect.rst:782 msgid "" "Result of a :meth:`Signature.bind` or :meth:`Signature.bind_partial` call. " "Holds the mapping of arguments to the function's parameters." msgstr "" -#: ../Doc/library/inspect.rst:786 +#: ../Doc/library/inspect.rst:787 msgid "" "An ordered, mutable mapping (:class:`collections.OrderedDict`) of " "parameters' names to arguments' values. Contains only explicitly bound " @@ -1067,68 +1066,68 @@ msgid "" "attr:`kwargs`." msgstr "" -#: ../Doc/library/inspect.rst:791 +#: ../Doc/library/inspect.rst:792 msgid "" "Should be used in conjunction with :attr:`Signature.parameters` for any " "argument processing purposes." msgstr "" -#: ../Doc/library/inspect.rst:796 +#: ../Doc/library/inspect.rst:797 msgid "" "Arguments for which :meth:`Signature.bind` or :meth:`Signature.bind_partial` " "relied on a default value are skipped. However, if needed, use :meth:" "`BoundArguments.apply_defaults` to add them." msgstr "" -#: ../Doc/library/inspect.rst:803 +#: ../Doc/library/inspect.rst:804 msgid "" "A tuple of positional arguments values. Dynamically computed from the :attr:" "`arguments` attribute." msgstr "" -#: ../Doc/library/inspect.rst:808 +#: ../Doc/library/inspect.rst:809 msgid "" "A dict of keyword arguments values. Dynamically computed from the :attr:" "`arguments` attribute." msgstr "" -#: ../Doc/library/inspect.rst:813 +#: ../Doc/library/inspect.rst:814 msgid "A reference to the parent :class:`Signature` object." msgstr "" -#: ../Doc/library/inspect.rst:817 +#: ../Doc/library/inspect.rst:818 msgid "Set default values for missing arguments." msgstr "" -#: ../Doc/library/inspect.rst:819 +#: ../Doc/library/inspect.rst:820 msgid "" "For variable-positional arguments (``*args``) the default is an empty tuple." msgstr "" -#: ../Doc/library/inspect.rst:822 +#: ../Doc/library/inspect.rst:823 msgid "" "For variable-keyword arguments (``**kwargs``) the default is an empty dict." msgstr "" -#: ../Doc/library/inspect.rst:835 +#: ../Doc/library/inspect.rst:836 msgid "" "The :attr:`args` and :attr:`kwargs` properties can be used to invoke " "functions::" msgstr "" -#: ../Doc/library/inspect.rst:848 +#: ../Doc/library/inspect.rst:849 msgid ":pep:`362` - Function Signature Object." msgstr "" -#: ../Doc/library/inspect.rst:849 +#: ../Doc/library/inspect.rst:850 msgid "The detailed specification, implementation details and examples." msgstr "" -#: ../Doc/library/inspect.rst:855 +#: ../Doc/library/inspect.rst:856 msgid "Classes and functions" -msgstr "" +msgstr "Classes et fonctions" -#: ../Doc/library/inspect.rst:859 +#: ../Doc/library/inspect.rst:860 msgid "" "Arrange the given list of classes into a hierarchy of nested lists. Where a " "nested list appears, it contains classes derived from the class whose entry " @@ -1139,7 +1138,7 @@ msgid "" "will appear multiple times." msgstr "" -#: ../Doc/library/inspect.rst:870 +#: ../Doc/library/inspect.rst:871 msgid "" "Get the names and default values of a Python function's parameters. A :term:" "`named tuple` ``ArgSpec(args, varargs, keywords, defaults)`` is returned. " @@ -1150,33 +1149,33 @@ msgid "" "in *args*." msgstr "" -#: ../Doc/library/inspect.rst:878 +#: ../Doc/library/inspect.rst:879 msgid "" "Use :func:`getfullargspec` for an updated API that is usually a drop-in " "replacement, but also correctly handles function annotations and keyword-" "only parameters." msgstr "" -#: ../Doc/library/inspect.rst:883 +#: ../Doc/library/inspect.rst:884 msgid "" "Alternatively, use :func:`signature` and :ref:`Signature Object `, which provide a more structured introspection API for " "callables." msgstr "" -#: ../Doc/library/inspect.rst:890 +#: ../Doc/library/inspect.rst:891 msgid "" "Get the names and default values of a Python function's parameters. A :term:" "`named tuple` is returned:" msgstr "" -#: ../Doc/library/inspect.rst:893 +#: ../Doc/library/inspect.rst:894 msgid "" "``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, " "annotations)``" msgstr "" -#: ../Doc/library/inspect.rst:896 +#: ../Doc/library/inspect.rst:897 msgid "" "*args* is a list of the positional parameter names. *varargs* is the name of " "the ``*`` parameter or ``None`` if arbitrary positional arguments are not " @@ -1191,7 +1190,7 @@ msgid "" "report the function return value annotation (if any)." msgstr "" -#: ../Doc/library/inspect.rst:911 +#: ../Doc/library/inspect.rst:912 msgid "" "Note that :func:`signature` and :ref:`Signature Object ` provide the recommended API for callable introspection, and support " @@ -1201,14 +1200,14 @@ msgid "" "``inspect`` module API." msgstr "" -#: ../Doc/library/inspect.rst:918 +#: ../Doc/library/inspect.rst:919 msgid "" "This function is now based on :func:`signature`, but still ignores " "``__wrapped__`` attributes and includes the already bound first parameter in " "the signature output for bound methods." msgstr "" -#: ../Doc/library/inspect.rst:923 +#: ../Doc/library/inspect.rst:924 msgid "" "This method was previously documented as deprecated in favour of :func:" "`signature` in Python 3.5, but that decision has been reversed in order to " @@ -1216,7 +1215,7 @@ msgid "" "code migrating away from the legacy :func:`getargspec` API." msgstr "" -#: ../Doc/library/inspect.rst:938 +#: ../Doc/library/inspect.rst:939 msgid "" "Get information about arguments passed into a particular frame. A :term:" "`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is returned. " @@ -1225,47 +1224,47 @@ msgid "" "dictionary of the given frame." msgstr "" -#: ../Doc/library/inspect.rst:945 ../Doc/library/inspect.rst:982 +#: ../Doc/library/inspect.rst:946 ../Doc/library/inspect.rst:983 msgid "This function was inadvertently marked as deprecated in Python 3.5." msgstr "" -#: ../Doc/library/inspect.rst:950 +#: ../Doc/library/inspect.rst:951 msgid "" "Format a pretty argument spec from the values returned by :func:" "`getfullargspec`." msgstr "" -#: ../Doc/library/inspect.rst:953 +#: ../Doc/library/inspect.rst:954 msgid "" "The first seven arguments are (``args``, ``varargs``, ``varkw``, " "``defaults``, ``kwonlyargs``, ``kwonlydefaults``, ``annotations``)." msgstr "" -#: ../Doc/library/inspect.rst:956 +#: ../Doc/library/inspect.rst:957 msgid "" "The other six arguments are functions that are called to turn argument " "names, ``*`` argument name, ``**`` argument name, default values, return " "annotation and individual annotations into strings, respectively." msgstr "" -#: ../Doc/library/inspect.rst:960 +#: ../Doc/library/inspect.rst:961 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" -#: ../Doc/library/inspect.rst:969 +#: ../Doc/library/inspect.rst:970 msgid "" "Use :func:`signature` and :ref:`Signature Object `, which provide a better introspecting API for callables." msgstr "" -#: ../Doc/library/inspect.rst:977 +#: ../Doc/library/inspect.rst:978 msgid "" "Format a pretty argument spec from the four values returned by :func:" "`getargvalues`. The format\\* arguments are the corresponding optional " "formatting functions that are called to turn names and values into strings." msgstr "" -#: ../Doc/library/inspect.rst:987 +#: ../Doc/library/inspect.rst:988 msgid "" "Return a tuple of class cls's base classes, including cls, in method " "resolution order. No class appears more than once in this tuple. Note that " @@ -1273,7 +1272,7 @@ msgid "" "user-defined metatype is in use, cls will be the first element of the tuple." msgstr "" -#: ../Doc/library/inspect.rst:995 +#: ../Doc/library/inspect.rst:996 msgid "" "Bind the *args* and *kwds* to the argument names of the Python function or " "method *func*, as if it was called with them. For bound methods, bind also " @@ -1286,11 +1285,11 @@ msgid "" "example::" msgstr "" -#: ../Doc/library/inspect.rst:1018 +#: ../Doc/library/inspect.rst:1019 msgid "Use :meth:`Signature.bind` and :meth:`Signature.bind_partial` instead." msgstr "" -#: ../Doc/library/inspect.rst:1024 +#: ../Doc/library/inspect.rst:1025 msgid "" "Get the mapping of external name references in a Python function or method " "*func* to their current values. A :term:`named tuple` " @@ -1302,18 +1301,18 @@ msgid "" "builtins." msgstr "" -#: ../Doc/library/inspect.rst:1033 +#: ../Doc/library/inspect.rst:1034 msgid "" ":exc:`TypeError` is raised if *func* is not a Python function or method." msgstr "" -#: ../Doc/library/inspect.rst:1040 +#: ../Doc/library/inspect.rst:1041 msgid "" "Get the object wrapped by *func*. It follows the chain of :attr:" "`__wrapped__` attributes returning the last object in the chain." msgstr "" -#: ../Doc/library/inspect.rst:1043 +#: ../Doc/library/inspect.rst:1044 msgid "" "*stop* is an optional callback accepting an object in the wrapper chain as " "its sole argument that allows the unwrapping to be terminated early if the " @@ -1323,15 +1322,15 @@ msgid "" "``__signature__`` attribute defined." msgstr "" -#: ../Doc/library/inspect.rst:1050 +#: ../Doc/library/inspect.rst:1051 msgid ":exc:`ValueError` is raised if a cycle is encountered." msgstr "" -#: ../Doc/library/inspect.rst:1058 +#: ../Doc/library/inspect.rst:1059 msgid "The interpreter stack" msgstr "" -#: ../Doc/library/inspect.rst:1060 +#: ../Doc/library/inspect.rst:1061 msgid "" "When the following functions return \"frame records,\" each record is a :" "term:`named tuple` ``FrameInfo(frame, filename, lineno, function, " @@ -1341,11 +1340,11 @@ msgid "" "list." msgstr "" -#: ../Doc/library/inspect.rst:1068 +#: ../Doc/library/inspect.rst:1069 msgid "Return a named tuple instead of a tuple." msgstr "" -#: ../Doc/library/inspect.rst:1073 +#: ../Doc/library/inspect.rst:1074 msgid "" "Keeping references to frame objects, as found in the first element of the " "frame records these functions return, can cause your program to create " @@ -1357,7 +1356,7 @@ msgid "" "consumption which occurs." msgstr "" -#: ../Doc/library/inspect.rst:1081 +#: ../Doc/library/inspect.rst:1082 msgid "" "Though the cycle detector will catch these, destruction of the frames (and " "local variables) can be made deterministic by removing the cycle in a :" @@ -1365,27 +1364,27 @@ msgid "" "disabled when Python was compiled or using :func:`gc.disable`. For example::" msgstr "" -#: ../Doc/library/inspect.rst:1093 +#: ../Doc/library/inspect.rst:1094 msgid "" "If you want to keep the frame around (for example to print a traceback " "later), you can also break reference cycles by using the :meth:`frame.clear` " "method." msgstr "" -#: ../Doc/library/inspect.rst:1097 +#: ../Doc/library/inspect.rst:1098 msgid "" "The optional *context* argument supported by most of these functions " "specifies the number of lines of context to return, which are centered " "around the current line." msgstr "" -#: ../Doc/library/inspect.rst:1104 +#: ../Doc/library/inspect.rst:1105 msgid "" "Get information about a frame or traceback object. A :term:`named tuple` " "``Traceback(filename, lineno, function, code_context, index)`` is returned." msgstr "" -#: ../Doc/library/inspect.rst:1110 +#: ../Doc/library/inspect.rst:1111 msgid "" "Get a list of frame records for a frame and all outer frames. These frames " "represent the calls that lead to the creation of *frame*. The first entry in " @@ -1393,14 +1392,14 @@ msgid "" "outermost call on *frame*'s stack." msgstr "" -#: ../Doc/library/inspect.rst:1115 ../Doc/library/inspect.rst:1128 -#: ../Doc/library/inspect.rst:1152 ../Doc/library/inspect.rst:1165 +#: ../Doc/library/inspect.rst:1116 ../Doc/library/inspect.rst:1129 +#: ../Doc/library/inspect.rst:1153 ../Doc/library/inspect.rst:1166 msgid "" "A list of :term:`named tuples ` ``FrameInfo(frame, filename, " "lineno, function, code_context, index)`` is returned." msgstr "" -#: ../Doc/library/inspect.rst:1123 +#: ../Doc/library/inspect.rst:1124 msgid "" "Get a list of frame records for a traceback's frame and all inner frames. " "These frames represent calls made as a consequence of *frame*. The first " @@ -1408,11 +1407,11 @@ msgid "" "the exception was raised." msgstr "" -#: ../Doc/library/inspect.rst:1136 +#: ../Doc/library/inspect.rst:1137 msgid "Return the frame object for the caller's stack frame." msgstr "" -#: ../Doc/library/inspect.rst:1140 +#: ../Doc/library/inspect.rst:1141 msgid "" "This function relies on Python stack frame support in the interpreter, which " "isn't guaranteed to exist in all implementations of Python. If running in " @@ -1420,14 +1419,14 @@ msgid "" "``None``." msgstr "" -#: ../Doc/library/inspect.rst:1148 +#: ../Doc/library/inspect.rst:1149 msgid "" "Return a list of frame records for the caller's stack. The first entry in " "the returned list represents the caller; the last entry represents the " "outermost call on the stack." msgstr "" -#: ../Doc/library/inspect.rst:1160 +#: ../Doc/library/inspect.rst:1161 msgid "" "Return a list of frame records for the stack between the current frame and " "the frame in which an exception currently being handled was raised in. The " @@ -1435,11 +1434,11 @@ msgid "" "where the exception was raised." msgstr "" -#: ../Doc/library/inspect.rst:1172 +#: ../Doc/library/inspect.rst:1173 msgid "Fetching attributes statically" msgstr "" -#: ../Doc/library/inspect.rst:1174 +#: ../Doc/library/inspect.rst:1175 msgid "" "Both :func:`getattr` and :func:`hasattr` can trigger code execution when " "fetching or checking for the existence of attributes. Descriptors, like " @@ -1447,20 +1446,20 @@ msgid "" "`__getattribute__` may be called." msgstr "" -#: ../Doc/library/inspect.rst:1179 +#: ../Doc/library/inspect.rst:1180 msgid "" "For cases where you want passive introspection, like documentation tools, " "this can be inconvenient. :func:`getattr_static` has the same signature as :" "func:`getattr` but avoids executing code when it fetches attributes." msgstr "" -#: ../Doc/library/inspect.rst:1185 +#: ../Doc/library/inspect.rst:1186 msgid "" "Retrieve attributes without triggering dynamic lookup via the descriptor " "protocol, :meth:`__getattr__` or :meth:`__getattribute__`." msgstr "" -#: ../Doc/library/inspect.rst:1188 +#: ../Doc/library/inspect.rst:1189 msgid "" "Note: this function may not be able to retrieve all attributes that getattr " "can fetch (like dynamically created attributes) and may find attributes that " @@ -1468,31 +1467,31 @@ msgid "" "return descriptors objects instead of instance members." msgstr "" -#: ../Doc/library/inspect.rst:1194 +#: ../Doc/library/inspect.rst:1195 msgid "" "If the instance :attr:`~object.__dict__` is shadowed by another member (for " "example a property) then this function will be unable to find instance " "members." msgstr "" -#: ../Doc/library/inspect.rst:1200 +#: ../Doc/library/inspect.rst:1201 msgid "" ":func:`getattr_static` does not resolve descriptors, for example slot " "descriptors or getset descriptors on objects implemented in C. The " "descriptor object is returned instead of the underlying attribute." msgstr "" -#: ../Doc/library/inspect.rst:1204 +#: ../Doc/library/inspect.rst:1205 msgid "" "You can handle these with code like the following. Note that for arbitrary " "getset descriptors invoking these may trigger code execution::" msgstr "" -#: ../Doc/library/inspect.rst:1230 +#: ../Doc/library/inspect.rst:1231 msgid "Current State of Generators and Coroutines" msgstr "" -#: ../Doc/library/inspect.rst:1232 +#: ../Doc/library/inspect.rst:1233 msgid "" "When implementing coroutine schedulers and for other advanced uses of " "generators, it is useful to determine whether a generator is currently " @@ -1501,31 +1500,31 @@ msgid "" "generator to be determined easily." msgstr "" -#: ../Doc/library/inspect.rst:1240 +#: ../Doc/library/inspect.rst:1241 msgid "Get current state of a generator-iterator." msgstr "" -#: ../Doc/library/inspect.rst:1246 ../Doc/library/inspect.rst:1261 +#: ../Doc/library/inspect.rst:1247 ../Doc/library/inspect.rst:1262 msgid "Possible states are:" msgstr "" -#: ../Doc/library/inspect.rst:1243 +#: ../Doc/library/inspect.rst:1244 msgid "GEN_CREATED: Waiting to start execution." msgstr "" -#: ../Doc/library/inspect.rst:1244 +#: ../Doc/library/inspect.rst:1245 msgid "GEN_RUNNING: Currently being executed by the interpreter." msgstr "" -#: ../Doc/library/inspect.rst:1245 +#: ../Doc/library/inspect.rst:1246 msgid "GEN_SUSPENDED: Currently suspended at a yield expression." msgstr "" -#: ../Doc/library/inspect.rst:1246 +#: ../Doc/library/inspect.rst:1247 msgid "GEN_CLOSED: Execution has completed." msgstr "" -#: ../Doc/library/inspect.rst:1252 +#: ../Doc/library/inspect.rst:1253 msgid "" "Get current state of a coroutine object. The function is intended to be " "used with coroutine objects created by :keyword:`async def` functions, but " @@ -1533,30 +1532,30 @@ msgid "" "``cr_frame`` attributes." msgstr "" -#: ../Doc/library/inspect.rst:1258 +#: ../Doc/library/inspect.rst:1259 msgid "CORO_CREATED: Waiting to start execution." msgstr "" -#: ../Doc/library/inspect.rst:1259 +#: ../Doc/library/inspect.rst:1260 msgid "CORO_RUNNING: Currently being executed by the interpreter." msgstr "" -#: ../Doc/library/inspect.rst:1260 +#: ../Doc/library/inspect.rst:1261 msgid "CORO_SUSPENDED: Currently suspended at an await expression." msgstr "" -#: ../Doc/library/inspect.rst:1261 +#: ../Doc/library/inspect.rst:1262 msgid "CORO_CLOSED: Execution has completed." msgstr "" -#: ../Doc/library/inspect.rst:1265 +#: ../Doc/library/inspect.rst:1266 msgid "" "The current internal state of the generator can also be queried. This is " "mostly useful for testing purposes, to ensure that internal state is being " "updated as expected:" msgstr "" -#: ../Doc/library/inspect.rst:1271 +#: ../Doc/library/inspect.rst:1272 msgid "" "Get the mapping of live local variables in *generator* to their current " "values. A dictionary is returned that maps from variable names to values. " @@ -1564,14 +1563,14 @@ msgid "" "generator, and all the same caveats apply." msgstr "" -#: ../Doc/library/inspect.rst:1276 +#: ../Doc/library/inspect.rst:1277 msgid "" "If *generator* is a :term:`generator` with no currently associated frame, " "then an empty dictionary is returned. :exc:`TypeError` is raised if " "*generator* is not a Python generator object." msgstr "" -#: ../Doc/library/inspect.rst:1282 +#: ../Doc/library/inspect.rst:1283 msgid "" "This function relies on the generator exposing a Python stack frame for " "introspection, which isn't guaranteed to be the case in all implementations " @@ -1579,76 +1578,76 @@ msgid "" "dictionary." msgstr "" -#: ../Doc/library/inspect.rst:1291 +#: ../Doc/library/inspect.rst:1292 msgid "" "This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " "for coroutine objects created by :keyword:`async def` functions." msgstr "" -#: ../Doc/library/inspect.rst:1300 +#: ../Doc/library/inspect.rst:1301 msgid "Code Objects Bit Flags" msgstr "" -#: ../Doc/library/inspect.rst:1302 +#: ../Doc/library/inspect.rst:1303 msgid "" "Python code objects have a ``co_flags`` attribute, which is a bitmap of the " "following flags:" msgstr "" -#: ../Doc/library/inspect.rst:1307 +#: ../Doc/library/inspect.rst:1308 msgid "The code object is optimized, using fast locals." msgstr "" -#: ../Doc/library/inspect.rst:1311 +#: ../Doc/library/inspect.rst:1312 msgid "" "If set, a new dict will be created for the frame's ``f_locals`` when the " "code object is executed." msgstr "" -#: ../Doc/library/inspect.rst:1316 +#: ../Doc/library/inspect.rst:1317 msgid "The code object has a variable positional parameter (``*args``-like)." msgstr "" -#: ../Doc/library/inspect.rst:1320 +#: ../Doc/library/inspect.rst:1321 msgid "The code object has a variable keyword parameter (``**kwargs``-like)." msgstr "" -#: ../Doc/library/inspect.rst:1324 +#: ../Doc/library/inspect.rst:1325 msgid "The flag is set when the code object is a nested function." msgstr "" -#: ../Doc/library/inspect.rst:1328 +#: ../Doc/library/inspect.rst:1329 msgid "" "The flag is set when the code object is a generator function, i.e. a " "generator object is returned when the code object is executed." msgstr "" -#: ../Doc/library/inspect.rst:1333 +#: ../Doc/library/inspect.rst:1334 msgid "The flag is set if there are no free or cell variables." msgstr "" -#: ../Doc/library/inspect.rst:1337 +#: ../Doc/library/inspect.rst:1338 msgid "" "The flag is set when the code object is a coroutine function. When the code " "object is executed it returns a coroutine object. See :pep:`492` for more " "details." msgstr "" -#: ../Doc/library/inspect.rst:1345 +#: ../Doc/library/inspect.rst:1346 msgid "" "The flag is used to transform generators into generator-based coroutines. " "Generator objects with this flag can be used in ``await`` expression, and " "can ``yield from`` coroutine objects. See :pep:`492` for more details." msgstr "" -#: ../Doc/library/inspect.rst:1354 +#: ../Doc/library/inspect.rst:1355 msgid "" "The flag is set when the code object is an asynchronous generator function. " "When the code object is executed it returns an asynchronous generator " "object. See :pep:`525` for more details." msgstr "" -#: ../Doc/library/inspect.rst:1361 +#: ../Doc/library/inspect.rst:1362 msgid "" "The flags are specific to CPython, and may not be defined in other Python " "implementations. Furthermore, the flags are an implementation detail, and " @@ -1656,24 +1655,27 @@ msgid "" "use public APIs from the :mod:`inspect` module for any introspection needs." msgstr "" -#: ../Doc/library/inspect.rst:1371 +#: ../Doc/library/inspect.rst:1372 msgid "Command Line Interface" msgstr "Interface en ligne de commande" -#: ../Doc/library/inspect.rst:1373 +#: ../Doc/library/inspect.rst:1374 msgid "" "The :mod:`inspect` module also provides a basic introspection capability " "from the command line." msgstr "" -#: ../Doc/library/inspect.rst:1378 +#: ../Doc/library/inspect.rst:1379 msgid "" "By default, accepts the name of a module and prints the source of that " "module. A class or function within the module can be printed instead by " "appended a colon and the qualified name of the target object." msgstr "" -#: ../Doc/library/inspect.rst:1384 +#: ../Doc/library/inspect.rst:1385 msgid "" "Print information about the specified object rather than the source code" msgstr "" + +#~ msgid "f_restricted" +#~ msgstr "f_restricted" diff --git a/library/intro.po b/library/intro.po index 905418c65..468193078 100644 --- a/library/intro.po +++ b/library/intro.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-09-28 13:14+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-27 11:44+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" #: ../Doc/library/intro.rst:5 msgid "Introduction" @@ -119,3 +120,25 @@ msgstr "" #: ../Doc/library/intro.rst:48 msgid "Let the show begin!" msgstr "Que le spectacle commence !" + +#: ../Doc/library/intro.rst:54 +msgid "Notes on availability" +msgstr "Notes sur la disponibilité" + +#: ../Doc/library/intro.rst:56 +msgid "" +"An \"Availability: Unix\" note means that this function is commonly found on " +"Unix systems. It does not make any claims about its existence on a specific " +"operating system." +msgstr "" +"Une note \"Disponibilité : Unix \" signifie que cette fonction est " +"communément implémentée dans les systèmes Unix. Une telle note ne prétend " +"pas l'existence de la fonction sur un système d'exploitation particulier." + +#: ../Doc/library/intro.rst:60 +msgid "" +"If not separately noted, all functions that claim \"Availability: Unix\" are " +"supported on Mac OS X, which builds on a Unix core." +msgstr "" +"Si ce n'est pas mentionné séparément, toutes les fonctions se réclamant " +"\"Disponibilité : Unix\" sont gérées sur Mac OS X, qui est basé sur Unix." diff --git a/library/io.po b/library/io.po index cf856b895..1b869f532 100644 --- a/library/io.po +++ b/library/io.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" "PO-Revision-Date: 2018-07-03 11:13+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -24,7 +24,7 @@ msgstr "" #: ../Doc/library/io.rst:22 msgid "Overview" -msgstr "" +msgstr "Aperçu" #: ../Doc/library/io.rst:27 msgid "" @@ -38,7 +38,7 @@ msgstr "" #: ../Doc/library/io.rst:34 msgid "" -"Independently of its category, each concrete stream object will also have " +"Independent of its category, each concrete stream object will also have " "various capabilities: it can be read-only, write-only, or read-write. It can " "also allow arbitrary random access (seeking forwards or backwards to any " "location), or only sequential access (for example in the case of a socket or " @@ -49,8 +49,8 @@ msgstr "" msgid "" "All streams are careful about the type of data you give to them. For " "example giving a :class:`str` object to the ``write()`` method of a binary " -"stream will raise a ``TypeError``. So will giving a :class:`bytes` object " -"to the ``write()`` method of a text stream." +"stream will raise a :exc:`TypeError`. So will giving a :class:`bytes` " +"object to the ``write()`` method of a text stream." msgstr "" #: ../Doc/library/io.rst:45 @@ -60,7 +60,7 @@ msgid "" msgstr "" #: ../Doc/library/io.rst:51 ../Doc/library/io.rst:755 -#: ../Doc/library/io.rst:1011 +#: ../Doc/library/io.rst:1010 msgid "Text I/O" msgstr "" @@ -89,7 +89,7 @@ msgid "" "`TextIOBase`." msgstr "" -#: ../Doc/library/io.rst:72 ../Doc/library/io.rst:999 +#: ../Doc/library/io.rst:72 ../Doc/library/io.rst:998 msgid "Binary I/O" msgstr "" @@ -346,29 +346,27 @@ msgstr "" #: ../Doc/library/io.rst:229 msgid "" -"Even though :class:`IOBase` does not declare :meth:`read`, :meth:`readinto`, " -"or :meth:`write` because their signatures will vary, implementations and " -"clients should consider those methods part of the interface. Also, " -"implementations may raise a :exc:`ValueError` (or :exc:" -"`UnsupportedOperation`) when operations they do not support are called." +"Even though :class:`IOBase` does not declare :meth:`read` or :meth:`write` " +"because their signatures will vary, implementations and clients should " +"consider those methods part of the interface. Also, implementations may " +"raise a :exc:`ValueError` (or :exc:`UnsupportedOperation`) when operations " +"they do not support are called." msgstr "" #: ../Doc/library/io.rst:235 msgid "" "The basic type used for binary data read from or written to a file is :class:" "`bytes`. Other :term:`bytes-like objects ` are accepted " -"as method arguments too. In some cases, such as :meth:`~RawIOBase." -"readinto`, a writable object such as :class:`bytearray` is required. Text I/" -"O classes work with :class:`str` data." +"as method arguments too. Text I/O classes work with :class:`str` data." msgstr "" -#: ../Doc/library/io.rst:241 +#: ../Doc/library/io.rst:239 msgid "" "Note that calling any method (even inquiries) on a closed stream is " "undefined. Implementations may raise :exc:`ValueError` in this case." msgstr "" -#: ../Doc/library/io.rst:244 +#: ../Doc/library/io.rst:242 msgid "" ":class:`IOBase` (and its subclasses) supports the iterator protocol, meaning " "that an :class:`IOBase` object can be iterated over yielding the lines in a " @@ -377,135 +375,135 @@ msgid "" "character strings). See :meth:`~IOBase.readline` below." msgstr "" -#: ../Doc/library/io.rst:250 +#: ../Doc/library/io.rst:248 msgid "" ":class:`IOBase` is also a context manager and therefore supports the :" "keyword:`with` statement. In this example, *file* is closed after the :" -"keyword:`with` statement's suite is finished---even if an exception occurs::" +"keyword:`!with` statement's suite is finished---even if an exception occurs::" msgstr "" -#: ../Doc/library/io.rst:257 +#: ../Doc/library/io.rst:255 msgid ":class:`IOBase` provides these data attributes and methods:" msgstr "" -#: ../Doc/library/io.rst:261 +#: ../Doc/library/io.rst:259 msgid "" "Flush and close this stream. This method has no effect if the file is " "already closed. Once the file is closed, any operation on the file (e.g. " "reading or writing) will raise a :exc:`ValueError`." msgstr "" -#: ../Doc/library/io.rst:265 +#: ../Doc/library/io.rst:263 msgid "" "As a convenience, it is allowed to call this method more than once; only the " "first call, however, will have an effect." msgstr "" -#: ../Doc/library/io.rst:270 +#: ../Doc/library/io.rst:268 msgid "``True`` if the stream is closed." msgstr "" -#: ../Doc/library/io.rst:274 +#: ../Doc/library/io.rst:272 msgid "" "Return the underlying file descriptor (an integer) of the stream if it " "exists. An :exc:`OSError` is raised if the IO object does not use a file " "descriptor." msgstr "" -#: ../Doc/library/io.rst:280 +#: ../Doc/library/io.rst:278 msgid "" "Flush the write buffers of the stream if applicable. This does nothing for " "read-only and non-blocking streams." msgstr "" -#: ../Doc/library/io.rst:285 +#: ../Doc/library/io.rst:283 msgid "" "Return ``True`` if the stream is interactive (i.e., connected to a terminal/" "tty device)." msgstr "" -#: ../Doc/library/io.rst:290 +#: ../Doc/library/io.rst:288 msgid "" "Return ``True`` if the stream can be read from. If ``False``, :meth:`read` " "will raise :exc:`OSError`." msgstr "" -#: ../Doc/library/io.rst:295 +#: ../Doc/library/io.rst:293 msgid "" "Read and return one line from the stream. If *size* is specified, at most " "*size* bytes will be read." msgstr "" -#: ../Doc/library/io.rst:298 +#: ../Doc/library/io.rst:296 msgid "" "The line terminator is always ``b'\\n'`` for binary files; for text files, " "the *newline* argument to :func:`open` can be used to select the line " "terminator(s) recognized." msgstr "" -#: ../Doc/library/io.rst:304 +#: ../Doc/library/io.rst:302 msgid "" "Read and return a list of lines from the stream. *hint* can be specified to " "control the number of lines read: no more lines will be read if the total " "size (in bytes/characters) of all lines so far exceeds *hint*." msgstr "" -#: ../Doc/library/io.rst:308 +#: ../Doc/library/io.rst:306 msgid "" "Note that it's already possible to iterate on file objects using ``for line " "in file: ...`` without calling ``file.readlines()``." msgstr "" -#: ../Doc/library/io.rst:313 +#: ../Doc/library/io.rst:311 msgid "" "Change the stream position to the given byte *offset*. *offset* is " "interpreted relative to the position indicated by *whence*. The default " "value for *whence* is :data:`SEEK_SET`. Values for *whence* are:" msgstr "" -#: ../Doc/library/io.rst:317 +#: ../Doc/library/io.rst:315 msgid "" ":data:`SEEK_SET` or ``0`` -- start of the stream (the default); *offset* " "should be zero or positive" msgstr "" -#: ../Doc/library/io.rst:319 +#: ../Doc/library/io.rst:317 msgid "" ":data:`SEEK_CUR` or ``1`` -- current stream position; *offset* may be " "negative" msgstr "" -#: ../Doc/library/io.rst:321 +#: ../Doc/library/io.rst:319 msgid "" ":data:`SEEK_END` or ``2`` -- end of the stream; *offset* is usually negative" msgstr "" -#: ../Doc/library/io.rst:324 +#: ../Doc/library/io.rst:322 msgid "Return the new absolute position." msgstr "" -#: ../Doc/library/io.rst:326 ../Doc/library/io.rst:832 +#: ../Doc/library/io.rst:324 ../Doc/library/io.rst:831 msgid "The ``SEEK_*`` constants." msgstr "" -#: ../Doc/library/io.rst:329 +#: ../Doc/library/io.rst:327 msgid "" "Some operating systems could support additional values, like :data:`os." "SEEK_HOLE` or :data:`os.SEEK_DATA`. The valid values for a file could depend " "on it being open in text or binary mode." msgstr "" -#: ../Doc/library/io.rst:336 +#: ../Doc/library/io.rst:334 msgid "" "Return ``True`` if the stream supports random access. If ``False``, :meth:" "`seek`, :meth:`tell` and :meth:`truncate` will raise :exc:`OSError`." msgstr "" -#: ../Doc/library/io.rst:341 +#: ../Doc/library/io.rst:339 msgid "Return the current stream position." msgstr "" -#: ../Doc/library/io.rst:345 +#: ../Doc/library/io.rst:343 msgid "" "Resize the stream to the given *size* in bytes (or the current position if " "*size* is not specified). The current stream position isn't changed. This " @@ -514,49 +512,49 @@ msgid "" "additional bytes are zero-filled). The new file size is returned." msgstr "" -#: ../Doc/library/io.rst:352 +#: ../Doc/library/io.rst:350 msgid "Windows will now zero-fill files when extending." msgstr "" -#: ../Doc/library/io.rst:357 +#: ../Doc/library/io.rst:355 msgid "" "Return ``True`` if the stream supports writing. If ``False``, :meth:`write` " "and :meth:`truncate` will raise :exc:`OSError`." msgstr "" -#: ../Doc/library/io.rst:362 +#: ../Doc/library/io.rst:360 msgid "" "Write a list of lines to the stream. Line separators are not added, so it " "is usual for each of the lines provided to have a line separator at the end." msgstr "" -#: ../Doc/library/io.rst:368 +#: ../Doc/library/io.rst:366 msgid "" "Prepare for object destruction. :class:`IOBase` provides a default " "implementation of this method that calls the instance's :meth:`~IOBase." "close` method." msgstr "" -#: ../Doc/library/io.rst:375 +#: ../Doc/library/io.rst:373 msgid "" "Base class for raw binary I/O. It inherits :class:`IOBase`. There is no " "public constructor." msgstr "" -#: ../Doc/library/io.rst:378 +#: ../Doc/library/io.rst:376 msgid "" "Raw binary I/O typically provides low-level access to an underlying OS " "device or API, and does not try to encapsulate it in high-level primitives " "(this is left to Buffered I/O and Text I/O, described later in this page)." msgstr "" -#: ../Doc/library/io.rst:382 +#: ../Doc/library/io.rst:380 msgid "" "In addition to the attributes and methods from :class:`IOBase`, :class:" "`RawIOBase` provides the following methods:" msgstr "" -#: ../Doc/library/io.rst:387 +#: ../Doc/library/io.rst:385 msgid "" "Read up to *size* bytes from the object and return them. As a convenience, " "if *size* is unspecified or -1, all bytes until EOF are returned. Otherwise, " @@ -564,32 +562,33 @@ msgid "" "if the operating system call returns fewer than *size* bytes." msgstr "" -#: ../Doc/library/io.rst:392 +#: ../Doc/library/io.rst:390 msgid "" "If 0 bytes are returned, and *size* was not 0, this indicates end of file. " "If the object is in non-blocking mode and no bytes are available, ``None`` " "is returned." msgstr "" -#: ../Doc/library/io.rst:396 +#: ../Doc/library/io.rst:394 msgid "" "The default implementation defers to :meth:`readall` and :meth:`readinto`." msgstr "" -#: ../Doc/library/io.rst:401 +#: ../Doc/library/io.rst:399 msgid "" "Read and return all the bytes from the stream until EOF, using multiple " "calls to the stream if necessary." msgstr "" -#: ../Doc/library/io.rst:406 +#: ../Doc/library/io.rst:404 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b*, and " -"return the number of bytes read. If the object is in non-blocking mode and " -"no bytes are available, ``None`` is returned." +"return the number of bytes read. For example, *b* might be a :class:" +"`bytearray`. If the object is in non-blocking mode and no bytes are " +"available, ``None`` is returned." msgstr "" -#: ../Doc/library/io.rst:413 +#: ../Doc/library/io.rst:412 msgid "" "Write the given :term:`bytes-like object`, *b*, to the underlying raw " "stream, and return the number of bytes written. This can be less than the " @@ -600,13 +599,13 @@ msgid "" "the implementation should only access *b* during the method call." msgstr "" -#: ../Doc/library/io.rst:426 +#: ../Doc/library/io.rst:425 msgid "" "Base class for binary streams that support some kind of buffering. It " "inherits :class:`IOBase`. There is no public constructor." msgstr "" -#: ../Doc/library/io.rst:429 +#: ../Doc/library/io.rst:428 msgid "" "The main difference with :class:`RawIOBase` is that methods :meth:`read`, :" "meth:`readinto` and :meth:`write` will try (respectively) to read as much " @@ -614,7 +613,7 @@ msgid "" "perhaps more than one system call." msgstr "" -#: ../Doc/library/io.rst:434 +#: ../Doc/library/io.rst:433 msgid "" "In addition, those methods can raise :exc:`BlockingIOError` if the " "underlying raw stream is in non-blocking mode and cannot take or give enough " @@ -622,55 +621,55 @@ msgid "" "``None``." msgstr "" -#: ../Doc/library/io.rst:439 +#: ../Doc/library/io.rst:438 msgid "" "Besides, the :meth:`read` method does not have a default implementation that " "defers to :meth:`readinto`." msgstr "" -#: ../Doc/library/io.rst:442 +#: ../Doc/library/io.rst:441 msgid "" "A typical :class:`BufferedIOBase` implementation should not inherit from a :" "class:`RawIOBase` implementation, but wrap one, like :class:`BufferedWriter` " "and :class:`BufferedReader` do." msgstr "" -#: ../Doc/library/io.rst:446 +#: ../Doc/library/io.rst:445 msgid "" ":class:`BufferedIOBase` provides or overrides these methods and attribute in " "addition to those from :class:`IOBase`:" msgstr "" -#: ../Doc/library/io.rst:451 +#: ../Doc/library/io.rst:450 msgid "" "The underlying raw stream (a :class:`RawIOBase` instance) that :class:" "`BufferedIOBase` deals with. This is not part of the :class:" "`BufferedIOBase` API and may not exist on some implementations." msgstr "" -#: ../Doc/library/io.rst:457 +#: ../Doc/library/io.rst:456 msgid "Separate the underlying raw stream from the buffer and return it." msgstr "" -#: ../Doc/library/io.rst:459 +#: ../Doc/library/io.rst:458 msgid "" "After the raw stream has been detached, the buffer is in an unusable state." msgstr "" -#: ../Doc/library/io.rst:462 +#: ../Doc/library/io.rst:461 msgid "" "Some buffers, like :class:`BytesIO`, do not have the concept of a single raw " "stream to return from this method. They raise :exc:`UnsupportedOperation`." msgstr "" -#: ../Doc/library/io.rst:470 +#: ../Doc/library/io.rst:469 msgid "" "Read and return up to *size* bytes. If the argument is omitted, ``None``, " "or negative, data is read and returned until EOF is reached. An empty :" "class:`bytes` object is returned if the stream is already at EOF." msgstr "" -#: ../Doc/library/io.rst:474 +#: ../Doc/library/io.rst:473 msgid "" "If the argument is positive, and the underlying raw stream is not " "interactive, multiple raw reads may be issued to satisfy the byte count " @@ -679,14 +678,14 @@ msgid "" "imminent." msgstr "" -#: ../Doc/library/io.rst:480 ../Doc/library/io.rst:502 +#: ../Doc/library/io.rst:479 ../Doc/library/io.rst:502 #: ../Doc/library/io.rst:512 msgid "" "A :exc:`BlockingIOError` is raised if the underlying raw stream is in non " "blocking-mode, and has no data available at the moment." msgstr "" -#: ../Doc/library/io.rst:485 +#: ../Doc/library/io.rst:484 msgid "" "Read and return up to *size* bytes, with at most one call to the underlying " "raw stream's :meth:`~RawIOBase.read` (or :meth:`~RawIOBase.readinto`) " @@ -694,16 +693,17 @@ msgid "" "top of a :class:`BufferedIOBase` object." msgstr "" -#: ../Doc/library/io.rst:491 +#: ../Doc/library/io.rst:490 msgid "" "If *size* is ``-1`` (the default), an arbitrary number of bytes are returned " "(more than zero unless EOF is reached)." msgstr "" -#: ../Doc/library/io.rst:496 +#: ../Doc/library/io.rst:495 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b* and " -"return the number of bytes read." +"return the number of bytes read. For example, *b* might be a :class:" +"`bytearray`." msgstr "" #: ../Doc/library/io.rst:499 @@ -1043,131 +1043,130 @@ msgstr "" #: ../Doc/library/io.rst:759 msgid "" "Base class for text streams. This class provides a character and line based " -"interface to stream I/O. There is no :meth:`readinto` method because " -"Python's character strings are immutable. It inherits :class:`IOBase`. " -"There is no public constructor." +"interface to stream I/O. It inherits :class:`IOBase`. There is no public " +"constructor." msgstr "" -#: ../Doc/library/io.rst:764 +#: ../Doc/library/io.rst:763 msgid "" ":class:`TextIOBase` provides or overrides these data attributes and methods " "in addition to those from :class:`IOBase`:" msgstr "" -#: ../Doc/library/io.rst:769 +#: ../Doc/library/io.rst:768 msgid "" "The name of the encoding used to decode the stream's bytes into strings, and " "to encode strings into bytes." msgstr "" -#: ../Doc/library/io.rst:774 +#: ../Doc/library/io.rst:773 msgid "The error setting of the decoder or encoder." msgstr "" -#: ../Doc/library/io.rst:778 +#: ../Doc/library/io.rst:777 msgid "" "A string, a tuple of strings, or ``None``, indicating the newlines " "translated so far. Depending on the implementation and the initial " "constructor flags, this may not be available." msgstr "" -#: ../Doc/library/io.rst:784 +#: ../Doc/library/io.rst:783 msgid "" "The underlying binary buffer (a :class:`BufferedIOBase` instance) that :" "class:`TextIOBase` deals with. This is not part of the :class:`TextIOBase` " "API and may not exist in some implementations." msgstr "" -#: ../Doc/library/io.rst:790 +#: ../Doc/library/io.rst:789 msgid "" "Separate the underlying binary buffer from the :class:`TextIOBase` and " "return it." msgstr "" -#: ../Doc/library/io.rst:793 +#: ../Doc/library/io.rst:792 msgid "" "After the underlying buffer has been detached, the :class:`TextIOBase` is in " "an unusable state." msgstr "" -#: ../Doc/library/io.rst:796 +#: ../Doc/library/io.rst:795 msgid "" "Some :class:`TextIOBase` implementations, like :class:`StringIO`, may not " "have the concept of an underlying buffer and calling this method will raise :" "exc:`UnsupportedOperation`." msgstr "" -#: ../Doc/library/io.rst:804 +#: ../Doc/library/io.rst:803 msgid "" "Read and return at most *size* characters from the stream as a single :class:" "`str`. If *size* is negative or ``None``, reads until EOF." msgstr "" -#: ../Doc/library/io.rst:809 +#: ../Doc/library/io.rst:808 msgid "" "Read until newline or EOF and return a single ``str``. If the stream is " "already at EOF, an empty string is returned." msgstr "" -#: ../Doc/library/io.rst:812 +#: ../Doc/library/io.rst:811 msgid "If *size* is specified, at most *size* characters will be read." msgstr "" -#: ../Doc/library/io.rst:816 +#: ../Doc/library/io.rst:815 msgid "" "Change the stream position to the given *offset*. Behaviour depends on the " "*whence* parameter. The default value for *whence* is :data:`SEEK_SET`." msgstr "" -#: ../Doc/library/io.rst:820 +#: ../Doc/library/io.rst:819 msgid "" ":data:`SEEK_SET` or ``0``: seek from the start of the stream (the default); " "*offset* must either be a number returned by :meth:`TextIOBase.tell`, or " "zero. Any other *offset* value produces undefined behaviour." msgstr "" -#: ../Doc/library/io.rst:824 +#: ../Doc/library/io.rst:823 msgid "" ":data:`SEEK_CUR` or ``1``: \"seek\" to the current position; *offset* must " "be zero, which is a no-operation (all other values are unsupported)." msgstr "" -#: ../Doc/library/io.rst:827 +#: ../Doc/library/io.rst:826 msgid "" ":data:`SEEK_END` or ``2``: seek to the end of the stream; *offset* must be " "zero (all other values are unsupported)." msgstr "" -#: ../Doc/library/io.rst:830 +#: ../Doc/library/io.rst:829 msgid "Return the new absolute position as an opaque number." msgstr "" -#: ../Doc/library/io.rst:837 +#: ../Doc/library/io.rst:836 msgid "" "Return the current stream position as an opaque number. The number does not " "usually represent a number of bytes in the underlying binary storage." msgstr "" -#: ../Doc/library/io.rst:843 +#: ../Doc/library/io.rst:842 msgid "" "Write the string *s* to the stream and return the number of characters " "written." msgstr "" -#: ../Doc/library/io.rst:850 +#: ../Doc/library/io.rst:849 msgid "" "A buffered text stream over a :class:`BufferedIOBase` binary stream. It " "inherits :class:`TextIOBase`." msgstr "" -#: ../Doc/library/io.rst:853 +#: ../Doc/library/io.rst:852 msgid "" "*encoding* gives the name of the encoding that the stream will be decoded or " "encoded with. It defaults to :func:`locale.getpreferredencoding(False) " "`." msgstr "" -#: ../Doc/library/io.rst:857 +#: ../Doc/library/io.rst:856 msgid "" "*errors* is an optional string that specifies how encoding and decoding " "errors are to be handled. Pass ``'strict'`` to raise a :exc:`ValueError` " @@ -1182,13 +1181,13 @@ msgid "" "that has been registered with :func:`codecs.register_error` is also valid." msgstr "" -#: ../Doc/library/io.rst:873 +#: ../Doc/library/io.rst:872 msgid "" "*newline* controls how line endings are handled. It can be ``None``, " "``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as follows:" msgstr "" -#: ../Doc/library/io.rst:876 +#: ../Doc/library/io.rst:875 msgid "" "When reading input from the stream, if *newline* is ``None``, :term:" "`universal newlines` mode is enabled. Lines in the input can end in " @@ -1207,7 +1206,7 @@ msgstr "" "autre valeur autorisée, les lignes sont seulement terminées par la chaîne " "donnée, qui est rendue tel qu'elle." -#: ../Doc/library/io.rst:885 +#: ../Doc/library/io.rst:884 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, :" @@ -1221,24 +1220,24 @@ msgstr "" "*newline* est un autre caractère valide, chaque ``'\\n'`` sera remplacé par " "la chaîne donnée." -#: ../Doc/library/io.rst:891 +#: ../Doc/library/io.rst:890 msgid "" "If *line_buffering* is ``True``, :meth:`flush` is implied when a call to " "write contains a newline character or a carriage return." msgstr "" -#: ../Doc/library/io.rst:894 +#: ../Doc/library/io.rst:893 msgid "" "If *write_through* is ``True``, calls to :meth:`write` are guaranteed not to " "be buffered: any data written on the :class:`TextIOWrapper` object is " "immediately handled to its underlying binary *buffer*." msgstr "" -#: ../Doc/library/io.rst:898 +#: ../Doc/library/io.rst:897 msgid "The *write_through* argument has been added." msgstr "" -#: ../Doc/library/io.rst:901 +#: ../Doc/library/io.rst:900 msgid "" "The default *encoding* is now ``locale.getpreferredencoding(False)`` instead " "of ``locale.getpreferredencoding()``. Don't change temporary the locale " @@ -1246,58 +1245,58 @@ msgid "" "instead of the user preferred encoding." msgstr "" -#: ../Doc/library/io.rst:907 +#: ../Doc/library/io.rst:906 msgid "" ":class:`TextIOWrapper` provides these members in addition to those of :class:" "`TextIOBase` and its parents:" msgstr "" -#: ../Doc/library/io.rst:912 +#: ../Doc/library/io.rst:911 msgid "Whether line buffering is enabled." msgstr "" -#: ../Doc/library/io.rst:916 +#: ../Doc/library/io.rst:915 msgid "Whether writes are passed immediately to the underlying binary buffer." msgstr "" -#: ../Doc/library/io.rst:924 +#: ../Doc/library/io.rst:923 msgid "" "Reconfigure this text stream using new settings for *encoding*, *errors*, " "*newline*, *line_buffering* and *write_through*." msgstr "" -#: ../Doc/library/io.rst:927 +#: ../Doc/library/io.rst:926 msgid "" "Parameters not specified keep current settings, except ``errors='strict`` is " "used when *encoding* is specified but *errors* is not specified." msgstr "" -#: ../Doc/library/io.rst:931 +#: ../Doc/library/io.rst:930 msgid "" "It is not possible to change the encoding or newline if some data has " "already been read from the stream. On the other hand, changing encoding " "after write is possible." msgstr "" -#: ../Doc/library/io.rst:935 +#: ../Doc/library/io.rst:934 msgid "" "This method does an implicit stream flush before setting the new parameters." msgstr "" -#: ../Doc/library/io.rst:943 +#: ../Doc/library/io.rst:942 msgid "" "An in-memory stream for text I/O. The text buffer is discarded when the :" "meth:`~IOBase.close` method is called." msgstr "" -#: ../Doc/library/io.rst:946 +#: ../Doc/library/io.rst:945 msgid "" "The initial value of the buffer can be set by providing *initial_value*. If " "newline translation is enabled, newlines will be encoded as if by :meth:" "`~TextIOBase.write`. The stream is positioned at the start of the buffer." msgstr "" -#: ../Doc/library/io.rst:951 +#: ../Doc/library/io.rst:950 msgid "" "The *newline* argument works like that of :class:`TextIOWrapper`. The " "default is to consider only ``\\n`` characters as ends of lines and to do no " @@ -1306,40 +1305,40 @@ msgid "" "performed when reading." msgstr "" -#: ../Doc/library/io.rst:957 +#: ../Doc/library/io.rst:956 msgid "" ":class:`StringIO` provides this method in addition to those from :class:" "`TextIOBase` and its parents:" msgstr "" -#: ../Doc/library/io.rst:962 +#: ../Doc/library/io.rst:961 msgid "" "Return a ``str`` containing the entire contents of the buffer. Newlines are " "decoded as if by :meth:`~TextIOBase.read`, although the stream position is " "not changed." msgstr "" -#: ../Doc/library/io.rst:966 +#: ../Doc/library/io.rst:965 msgid "Example usage::" -msgstr "" +msgstr "Exemple d'utilisation ::" -#: ../Doc/library/io.rst:988 +#: ../Doc/library/io.rst:987 msgid "" "A helper codec that decodes newlines for :term:`universal newlines` mode. It " "inherits :class:`codecs.IncrementalDecoder`." msgstr "" -#: ../Doc/library/io.rst:993 +#: ../Doc/library/io.rst:992 msgid "Performance" -msgstr "" +msgstr "Performances" -#: ../Doc/library/io.rst:995 +#: ../Doc/library/io.rst:994 msgid "" "This section discusses the performance of the provided concrete I/O " "implementations." msgstr "" -#: ../Doc/library/io.rst:1001 +#: ../Doc/library/io.rst:1000 msgid "" "By reading and writing only large chunks of data even when the user asks for " "a single byte, buffered I/O hides any inefficiency in calling and executing " @@ -1352,7 +1351,7 @@ msgid "" "data." msgstr "" -#: ../Doc/library/io.rst:1013 +#: ../Doc/library/io.rst:1012 msgid "" "Text I/O over a binary storage (such as a file) is significantly slower than " "binary I/O over the same storage, because it requires conversions between " @@ -1362,23 +1361,23 @@ msgid "" "to the reconstruction algorithm used." msgstr "" -#: ../Doc/library/io.rst:1020 +#: ../Doc/library/io.rst:1019 msgid "" ":class:`StringIO`, however, is a native in-memory unicode container and will " "exhibit similar speed to :class:`BytesIO`." msgstr "" -#: ../Doc/library/io.rst:1024 +#: ../Doc/library/io.rst:1023 msgid "Multi-threading" msgstr "Fils d'exécution" -#: ../Doc/library/io.rst:1026 +#: ../Doc/library/io.rst:1025 msgid "" ":class:`FileIO` objects are thread-safe to the extent that the operating " "system calls (such as ``read(2)`` under Unix) they wrap are thread-safe too." msgstr "" -#: ../Doc/library/io.rst:1029 +#: ../Doc/library/io.rst:1028 msgid "" "Binary buffered objects (instances of :class:`BufferedReader`, :class:" "`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) " @@ -1386,15 +1385,15 @@ msgid "" "them from multiple threads at once." msgstr "" -#: ../Doc/library/io.rst:1034 +#: ../Doc/library/io.rst:1033 msgid ":class:`TextIOWrapper` objects are not thread-safe." msgstr "" -#: ../Doc/library/io.rst:1037 +#: ../Doc/library/io.rst:1036 msgid "Reentrancy" msgstr "" -#: ../Doc/library/io.rst:1039 +#: ../Doc/library/io.rst:1038 msgid "" "Binary buffered objects (instances of :class:`BufferedReader`, :class:" "`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) are " @@ -1405,7 +1404,7 @@ msgid "" "from entering the buffered object." msgstr "" -#: ../Doc/library/io.rst:1047 +#: ../Doc/library/io.rst:1046 msgid "" "The above implicitly extends to text files, since the :func:`open()` " "function will wrap a buffered object inside a :class:`TextIOWrapper`. This " diff --git a/library/ipaddress.po b/library/ipaddress.po index 2981b08b9..5f92dea99 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -20,7 +20,7 @@ msgstr "" #: ../Doc/library/ipaddress.rst:9 msgid "**Source code:** :source:`Lib/ipaddress.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/ipaddress.py`" #: ../Doc/library/ipaddress.rst:13 msgid "" @@ -676,7 +676,7 @@ msgstr "" #: ../Doc/library/ipaddress.rst:693 msgid "Iteration" -msgstr "" +msgstr "Itération" #: ../Doc/library/ipaddress.rst:695 msgid "" diff --git a/library/ipc.po b/library/ipc.po index 3fe38b0da..fa887d0ed 100644 --- a/library/ipc.po +++ b/library/ipc.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-09-28 13:14+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-13 17:33+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -15,16 +15,16 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../Doc/library/ipc.rst:5 -msgid "Interprocess Communication and Networking" -msgstr "Communication et réseau entre processus" +msgid "Networking and Interprocess Communication" +msgstr "Réseau et communication entre processus" #: ../Doc/library/ipc.rst:7 msgid "" -"The modules described in this chapter provide mechanisms for different " -"processes to communicate." +"The modules described in this chapter provide mechanisms for networking and " +"inter-processes communication." msgstr "" -"Les modules décrits dans ce chapitre fournissent différents mécanismes " -"permettant à des processus de communiquer." +"Les modules décrits dans ce chapitre fournissent différents mécanismes de " +"mise en réseau et de communication entre processus." #: ../Doc/library/ipc.rst:10 msgid "" diff --git a/library/itertools.po b/library/itertools.po index 661a92e2f..e235c72f1 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -18,8 +18,7 @@ msgstr "" #: ../Doc/library/itertools.rst:2 msgid ":mod:`itertools` --- Functions creating iterators for efficient looping" msgstr "" -":mod:`itertools` --- Fonctions créant des itérateurs pour boucler " -"efficacement." +":mod:`itertools` — Fonctions créant des itérateurs pour boucler efficacement" #: ../Doc/library/itertools.rst:16 msgid "" @@ -28,8 +27,8 @@ msgid "" "suitable for Python." msgstr "" "Ce module implémente de nombreuses briques :term:`d'itérateurs ` " -"inspirées par des constructions de APL, Haskell et SML. Toutes ont été " -"retravaillées dans un format adéquat pour Python." +"inspirées par des éléments de APL, Haskell et SML. Toutes ont été " +"retravaillées dans un format adapté à Python." #: ../Doc/library/itertools.rst:20 msgid "" @@ -38,10 +37,10 @@ msgid "" "algebra\" making it possible to construct specialized tools succinctly and " "efficiently in pure Python." msgstr "" -"Ce module standardise un noyau d'outils rapide, efficaces en mémoire qui " -"sont utiles d'eux-mêmes ou en les combinant. Ensemble, ils forment une " -"\"algèbre d'itérateurs\" rendant possible la construction succincte et " -"efficace d'outils spécialisés en Python seulement." +"Ce module standardise un ensemble de base d'outils rapides et efficaces en " +"mémoire qui peuvent être utilisés individuellement ou en les combinant. " +"Ensemble, ils forment une « algèbre d'itérateurs » rendant possible la " +"construction rapide et efficace d'outils spécialisés en Python." #: ../Doc/library/itertools.rst:25 msgid "" @@ -50,7 +49,7 @@ msgid "" "by combining :func:`map` and :func:`count` to form ``map(f, count())``." msgstr "" "Par exemple, SML fournit un outil de tabulation ``tabulate(f)`` qui produit " -"une séquence ``f(0), f(1), ...``. Le même résultat peut être achevé en " +"une séquence ``f(0), f(1), ...``. Le même résultat peut être obtenu en " "Python en combinant :func:`map` et :func:`count` pour former ``map(f, " "count())``." @@ -61,10 +60,10 @@ msgid "" "multiplication operator can be mapped across two vectors to form an " "efficient dot-product: ``sum(map(operator.mul, vector1, vector2))``." msgstr "" -"Ces outils et leurs équivalents intégrés fonctionnent aussi bien avec les " -"fonction à grande vitesse dans le module :mod:`operator`. Par exemple, " -"l'opérateur de multiplication peut être appliqué à deux vecteurs pour créer " -"un produit scalaire efficace ``sum(map(operator.mul, vecteur1, vecteur2))``." +"Ces outils et leurs équivalents natifs fonctionnent également bien avec les " +"fonctions optimisées du module :mod:`operator`. Par exemple, l'opérateur de " +"multiplication peut être appliqué à deux vecteurs pour créer un produit " +"scalaire efficace : ``sum(map(operator.mul, vecteur1, vecteur2))``." #: ../Doc/library/itertools.rst:35 msgid "**Infinite iterators:**" @@ -224,7 +223,7 @@ msgstr ":func:`filterfalse`" #: ../Doc/library/itertools.rst:55 msgid "elements of seq where pred(elem) is false" -msgstr "éléments de *seq* quand *pred(elem)* est faux" +msgstr "éléments de *seq* pour lesquels *pred(elem)* est faux" #: ../Doc/library/itertools.rst:55 msgid "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" @@ -337,8 +336,8 @@ msgstr "p[, r]" #: ../Doc/library/itertools.rst:70 msgid "r-length tuples, all possible orderings, no repeated elements" msgstr "" -"*tuples* de longueur *r*, tous les ré-arrangements possibles, sans " -"répétition d'éléments" +"n-uplets de longueur r, tous les ré-arrangements possibles, sans répétition " +"d'éléments" #: ../Doc/library/itertools.rst:71 msgid ":func:`combinations`" @@ -350,7 +349,7 @@ msgstr "p, r" #: ../Doc/library/itertools.rst:71 msgid "r-length tuples, in sorted order, no repeated elements" -msgstr "tuples de longueur r, triés, sans répétition d'éléments" +msgstr "n-uplets de longueur r, ordonnés, sans répétition d'éléments" #: ../Doc/library/itertools.rst:72 msgid ":func:`combinations_with_replacement`" @@ -358,7 +357,7 @@ msgstr ":func:`combinations_with_replacement`" #: ../Doc/library/itertools.rst:72 msgid "r-length tuples, in sorted order, with repeated elements" -msgstr "tuples de longueur r, triés, avec répétition d'éléments" +msgstr "n-uplets de longueur r, ordonnés, avec répétition d'éléments" #: ../Doc/library/itertools.rst:73 msgid "``product('ABCD', repeat=2)``" @@ -402,10 +401,10 @@ msgid "" "provide streams of infinite length, so they should only be accessed by " "functions or loops that truncate the stream." msgstr "" -"Toutes les fonctions de module qui suivent construisent et renvoient des " -"itérateurs. Certaines fournissent des flux de longueur infinie, elles " -"devraient seulement être accédées par des fonctions ou boucles qui tronquent " -"le flux." +"Toutes les fonctions du module qui suivent construisent et renvoient des " +"itérateurs. Certaines produisent des flux de longueur infinie ; celles-ci ne " +"doivent donc être contrôlées que par des fonctions ou boucles qui " +"interrompent le flux." #: ../Doc/library/itertools.rst:91 msgid "" @@ -432,7 +431,7 @@ msgstr "" #: ../Doc/library/itertools.rst:242 ../Doc/library/itertools.rst:478 #: ../Doc/library/itertools.rst:557 ../Doc/library/itertools.rst:610 msgid "Roughly equivalent to::" -msgstr "Sensiblement équivalent à : ::" +msgstr "À peu près équivalent à ::" #: ../Doc/library/itertools.rst:117 msgid "" @@ -444,14 +443,15 @@ msgid "" "modeled by supplying the initial value in the iterable and using only the " "accumulated total in *func* argument::" msgstr "" -"Il y a de nombreuses utilisations pour l'argument *func*. Il peut être :func:" -"`min` pour un minimum glissant, :func:`max` pour un maximum glissant, ou :" -"func:`operator.mul` pour un produit glissant. Des tableaux de remboursement " -"peuvent être construites en accumulant l'intérêt et en déposant des " -"paiements. Des `suites de récurrences `_ de premier ordre peuvent être modélisées " -"en renseignant la valeur initiale dans l'itérable et en utilisant seulement " -"le total accumulé dans l'argument *func* : ::" +"Il y a de nombreuses utilisations à l'argument *func*. Celui-ci peut être :" +"func:`min` pour calculer un minimum glissant, :func:`max` pour un maximum " +"glissant ou :func:`operator.mul` pour un produit glissant. Des tableaux de " +"remboursements peuvent être construits en ajoutant les intérêts et en " +"soustrayant les paiements. Des `suites par récurrence `_ de premier ordre peuvent " +"être modélisées en en passant la valeur initiale dans *iterable* et en " +"n'utilisant que le premier argument de *func*, qui contient le résultat des " +"évaluations précédentes ::" #: ../Doc/library/itertools.rst:147 msgid "" @@ -463,7 +463,7 @@ msgstr "" #: ../Doc/library/itertools.rst:152 msgid "Added the optional *func* parameter." -msgstr "Le paramètre optionnel *func* a été ajouté." +msgstr "Ajout du paramètre optionnel *func*." #: ../Doc/library/itertools.rst:157 msgid "" @@ -472,10 +472,10 @@ msgid "" "are exhausted. Used for treating consecutive sequences as a single " "sequence. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments du premier itérable jusqu'à son " +"Crée un itérateur qui renvoie les éléments du premier itérable jusqu'à son " "épuisement, puis continue avec l'itérable suivant jusqu'à ce que tous les " "itérables soient épuisés. Utilisée pour traiter des séquences consécutives " -"comme une seule séquence Sensiblement équivalente à : ::" +"comme une seule séquence. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:171 msgid "" @@ -483,12 +483,12 @@ msgid "" "iterable argument that is evaluated lazily. Roughly equivalent to::" msgstr "" "Constructeur alternatif pour :func:`chain`. Récupère des entrées chaînées " -"d'un unique argument itérable qui est évalué de manière paresseuse. " -"Sensiblement équivalente à : ::" +"depuis un unique itérable passé en argument, qui est évalué de manière " +"paresseuse. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:183 msgid "Return *r* length subsequences of elements from the input *iterable*." -msgstr "Renvoyer les sous-séquences de longueur *r* de l'itérable *iterable*." +msgstr "Renvoie les combinaisons de longueur *r* de *iterable*." #: ../Doc/library/itertools.rst:185 ../Doc/library/itertools.rst:234 msgid "" @@ -496,9 +496,9 @@ msgid "" "*iterable* is sorted, the combination tuples will be produced in sorted " "order." msgstr "" -"Les combinaisons sont émises dans l'ordre lexicographique. Ainsi, si " -"l'itérable *iterable* est trié, les *tuples* de combinaison seront produits " -"dans l'ordre." +"Les combinaisons sont produites dans l'ordre lexicographique. Ainsi, si " +"l'itérable *iterable* est ordonné, les n-uplets de combinaison produits le " +"sont aussi." #: ../Doc/library/itertools.rst:189 msgid "" @@ -516,9 +516,9 @@ msgid "" "func:`permutations` after filtering entries where the elements are not in " "sorted order (according to their position in the input pool)::" msgstr "" -"Le code de :func:`combinations` peut aussi être exprimé comme une sous-" -"séquence de :func:`permutations` après avoir filtré les entrées dont les " -"éléments ne sont pas triés (selon leur position dans le *pool* d'entrée) : ::" +"Un appel à :func:`combinations` peut aussi être vu comme à un appel à :func:" +"`permutations` en excluant les sorties dans lesquelles les éléments ne sont " +"pas ordonnés (avec la même relation d'ordre que pour l'entrée) ::" #: ../Doc/library/itertools.rst:226 msgid "" @@ -553,10 +553,10 @@ msgid "" "a subsequence of :func:`product` after filtering entries where the elements " "are not in sorted order (according to their position in the input pool)::" msgstr "" -"Le code pour :func:`combinations_with_replacement` peut aussi être exprimé " -"comme une sous-séquence de :func:`product` après avoir filtré les entrées où " -"les éléments ne sont pas dans triés (selon leur position dans le *pool* " -"d'entrée) : ::" +"Un appel à :func:`combinations_with_replacement` peut aussi être vu comme un " +"appel à :func:`product` en excluant les sorties dans lesquelles les éléments " +"ne sont pas dans ordonnés (avec la même relation d'ordre que pour " +"l'entrée) ::" #: ../Doc/library/itertools.rst:272 msgid "" @@ -571,10 +571,10 @@ msgid "" "Stops when either the *data* or *selectors* iterables has been exhausted. " "Roughly equivalent to::" msgstr "" -"Créer un itérateur qui filtre les éléments de *data*, renvoyant seulement " -"ceux qui ont un élément correspondant dans *selectors* qui évalue à " -"``True``. S'arrête quand l'itérable *data* ou *selectors* a été épuisé. " -"Sensiblement équivalent à : ::" +"Crée un itérateur qui filtre les éléments de *data*, en ne renvoyant que " +"ceux dont l'élément correspondant dans *selectors* s'évalue à ``True``. " +"S'arrête quand l'itérable *data* ou *selectors* a été épuisé. À peu près " +"équivalent à ::" #: ../Doc/library/itertools.rst:293 msgid "" @@ -583,10 +583,10 @@ msgid "" "data points. Also, used with :func:`zip` to add sequence numbers. Roughly " "equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les valeurs espacées également commençant par " -"le nombre *start*. Souvent utilisée comme un argument de :func:`map` pour " -"générer des points de données consécutifs. Aussi utilisé avec :func:`zip` " -"pour ajouter des nombres de séquence. Sensiblement équivalent à : ::" +"Crée un itérateur qui renvoie des valeurs espacées régulièrement, en " +"commençant par le nombre *start*. Souvent utilisé comme un argument de :func:" +"`map` pour générer des points de données consécutifs. Aussi utilisé avec :" +"func:`zip` pour ajouter des nombres de séquence. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:305 msgid "" @@ -594,9 +594,9 @@ msgid "" "achieved by substituting multiplicative code such as: ``(start + step * i " "for i in count())``." msgstr "" -"Quand on compte avec des nombres à virgule flottante, il est parfois " -"possible d'obtenir une meilleure précision en substituant du code " -"multiplicateur comme : ``(start + step * i for i in count())``." +"Pour compter avec des nombres à virgule flottante, il est parfois préférable " +"d'utiliser le code : ``(start + step * i for i in count())`` pour obtenir " +"une meilleure précision." #: ../Doc/library/itertools.rst:309 msgid "Added *step* argument and allowed non-integer arguments." @@ -610,18 +610,17 @@ msgid "" "each. When the iterable is exhausted, return elements from the saved copy. " "Repeats indefinitely. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments de l'itérable et qui sauvegarde " -"une copie de chaque. Quand l'itérable est épuisé, renvoyer les éléments " -"depuis la copie sauvegardée. Répète à l'infini. Sensiblement équivalent " -"à : ::" +"Crée un itérateur qui renvoie les éléments de l'itérable en en sauvegardant " +"une copie. Quand l'itérable est épuisé, renvoie les éléments depuis la " +"sauvegarde. Répète à l'infini. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:328 msgid "" "Note, this member of the toolkit may require significant auxiliary storage " "(depending on the length of the iterable)." msgstr "" -"Note, cette fonction pourrait avoir besoin d'un stockage auxiliaire " -"important (en fonction de la longueur de l'itérable)." +"Note, cette fonction peut avoir besoin d'un stockage auxiliaire important " +"(en fonction de la longueur de l'itérable)." #: ../Doc/library/itertools.rst:334 msgid "" @@ -630,10 +629,10 @@ msgid "" "does not produce *any* output until the predicate first becomes false, so it " "may have a lengthy start-up time. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui saute les éléments de l'itérable tant que le prédicat " -"est vrai ; ensuite, renvoyer chaque élément. Note, l'itérateur ne produit " +"Crée un itérateur qui saute les éléments de l'itérable tant que le prédicat " +"est vrai ; renvoie ensuite chaque élément. Notez que l'itérateur ne produit " "*aucune* sortie avant que le prédicat ne devienne faux, il peut donc avoir " -"un temps de démarrage long. Sensiblement équivalent à : ::" +"un temps de démarrage long. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:351 msgid "" @@ -641,9 +640,9 @@ msgid "" "for which the predicate is ``False``. If *predicate* is ``None``, return the " "items that are false. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui filtre les éléments de *iterable*, ne renvoyant " -"seulement ceux pour lesquels le prédicat est ``Faux``. Si *predicate* vaut " -"``None``, renvoyer les éléments qui sont faux. Sensiblement équivalent à : ::" +"Crée un itérateur qui filtre les éléments de *iterable*, ne renvoyant " +"seulement ceux pour lesquels le prédicat est ``False``. Si *predicate* vaut " +"``None``, renvoie les éléments qui sont faux. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:366 msgid "" @@ -653,12 +652,12 @@ msgid "" "returns the element unchanged. Generally, the iterable needs to already be " "sorted on the same key function." msgstr "" -"Créer un itérateur qui renvoie les clés et les groupes de l'itérable " +"Crée un itérateur qui renvoie les clés et les groupes de l'itérable " "*iterable*. La clé *key* est une fonction qui génère une clé pour chaque " -"élément. Si *key* n'est pas spécifié ou est ``None``, elle vaut par défaut " +"élément. Si *key* n'est pas spécifiée ou est ``None``, elle vaut par défaut " "une fonction d'identité qui renvoie l'élément sans le modifier. " -"Généralement, l'itérable a besoin d'être déjà trié selon cette même fonction " -"de clé." +"Généralement, l'itérable a besoin d'avoir ses éléments déjà classés selon " +"cette même fonction de clé." #: ../Doc/library/itertools.rst:372 msgid "" @@ -685,12 +684,12 @@ msgstr "" "Le groupe renvoyé est lui-même un itérateur qui partage l'itérable sous-" "jacent avec :func:`groupby`. Puisque que la source est partagée, quand " "l'objet :func:`groupby` est avancé, le groupe précédent n'est plus visible. " -"Ainsi, si cette donnée doit être utilisée plus tard, elle devrait être " -"stockée comme une liste : ::" +"Ainsi, si cette donnée doit être utilisée plus tard, elle doit être stockée " +"comme une liste ::" #: ../Doc/library/itertools.rst:390 msgid ":func:`groupby` is roughly equivalent to::" -msgstr ":func:`groupby` est sensiblement équivalent à : ::" +msgstr ":func:`groupby` est à peu près équivalente à ::" #: ../Doc/library/itertools.rst:423 msgid "" @@ -705,18 +704,18 @@ msgid "" "the internal structure has been flattened (for example, a multi-line report " "may list a name field on every third line). Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les élément sélectionnés de l'itérable. Si " -"*start* est non-nul, alors les éléments de l'itérable sont sautés jusqu'à ce " -"que *start* soit atteint. Ensuite, les éléments sont renvoyés " +"Crée un itérateur qui renvoie les élément sélectionnés de l'itérable. Si " +"*start* est différent de zéro, alors les éléments de l'itérable sont ignorés " +"jusqu'à ce que *start* soit atteint. Ensuite, les éléments sont renvoyés " "consécutivement sauf si *step* est plus grand que 1, auquel cas certains " -"éléments seront sautés. Si *stop* est ``None``, alors l'itération continue " +"éléments seront ignorés. Si *stop* est ``None``, alors l'itération continue " "jusqu'à ce que l'itérateur soit épuisé s'il ne l'est pas déjà ; sinon, il " -"s'arrête à la position spécifiée. À la différence du *slicing* standard, :" -"func:`slice` ne supporte pas les valeurs négatives pour *start*, *stop* ou " -"*step*. Peut être utilisée pour extraire les champs apparentés depuis des " +"s'arrête à la position spécifiée. À la différence des tranches standards, :" +"func:`slice` ne gère pas les valeurs négatives pour *start*, *stop* ou " +"*step*. Peut être utilisée pour extraire les champs consécutifs depuis des " "données dont la structure interne a été aplatie (par exemple, un rapport " -"multi-ligne pourrait lister un nom de champ toutes les trois lignes). " -"Sensiblement similaire à : ::" +"multi-lignes pourrait lister un nom de champ toutes les trois lignes). À peu " +"près similaire à ::" #: ../Doc/library/itertools.rst:458 msgid "" @@ -730,7 +729,7 @@ msgstr "" msgid "" "Return successive *r* length permutations of elements in the *iterable*." msgstr "" -"Renvoyer les permutations successives de longueur *r* des éléments de " +"Renvoie les arrangements successifs de longueur *r* des éléments de " "*iterable*." #: ../Doc/library/itertools.rst:466 @@ -749,8 +748,8 @@ msgid "" "order." msgstr "" "Les permutations sont émises dans l'ordre lexicographique. Ainsi, si " -"l'itérable d'entrée *iterable* est trié, les *tuples* de permutation seront " -"produits dans l'ordre." +"l'itérable d'entrée *iterable* est classé, les n-uplets de permutation sont " +"produits dans ce même ordre." #: ../Doc/library/itertools.rst:474 msgid "" @@ -768,9 +767,9 @@ msgid "" "func:`product`, filtered to exclude entries with repeated elements (those " "from the same position in the input pool)::" msgstr "" -"Le code pour :func:`permutations` peut aussi être exprimé comme une sous-" -"séquence de :func:`product`, filtré pour exclure les entrées avec des " -"éléments répétés (celles de la même position dans la *pool* d'entrée) : ::" +"Un appel à :func:`permutations` peut aussi être vu un appel à :func:" +"`product` en excluant les sorties avec des doublons (avec la même relation " +"d'ordre que pour l'entrée) ::" #: ../Doc/library/itertools.rst:517 msgid "" @@ -790,9 +789,9 @@ msgid "" "example, ``product(A, B)`` returns the same as ``((x,y) for x in A for y in " "B)``." msgstr "" -"Sensiblement équivalent à des boucles *for* imbriquées dans une expression " -"de générateur. Par exemple ``product(A, B)`` renvoie la même chose que " -"``((x, y) for x in A for y in B)``." +"À peu près équivalent à des boucles *for* imbriquées dans une expression de " +"générateur. Par exemple ``product(A, B)`` renvoie la même chose que ``((x, " +"y) for x in A for y in B)``." #: ../Doc/library/itertools.rst:527 msgid "" @@ -802,9 +801,9 @@ msgid "" "sorted order." msgstr "" "Les boucles imbriquées tournent comme un compteur kilométrique avec " -"l'élément le plus à droite avançant à chaque itération. ce motif créé un tri " -"lexicographique afin que si les itérables de l'entrée sont triés, les " -"*tuples* de produit sont émis dans l'ordre." +"l'élément le plus à droite avançant à chaque itération. Ce motif défini un " +"ordre lexicographique afin que, si les éléments des itérables en l'entrée " +"sont ordonnés, les n-uplets produits le sont aussi." #: ../Doc/library/itertools.rst:532 msgid "" @@ -812,17 +811,18 @@ msgid "" "repetitions with the optional *repeat* keyword argument. For example, " "``product(A, repeat=4)`` means the same as ``product(A, A, A, A)``." msgstr "" -"Pour générer le produit d'un itérable avec lui-même, spécifier le nombre de " +"Pour générer le produit d'un itérable avec lui-même, spécifiez le nombre de " "répétitions avec le paramètre nommé optionnel *repeat*. Par exemple, " -"``product(A, repeat=4)`` veut dire la même chose que ``product(A, A, A, A)``." +"``product(A, repeat=4)`` est équivalent à ``product(A, A, A, A)``." #: ../Doc/library/itertools.rst:536 msgid "" "This function is roughly equivalent to the following code, except that the " "actual implementation does not build up intermediate results in memory::" msgstr "" -"Cette fonction est sensiblement équivalente au code suivant, saut que la " -"vraie implémentation ne créé pas les résultats intermédiaires en mémoire : ::" +"Cette fonction est à peu près équivalente au code suivant, à la différence " +"près que la vraie implémentation ne crée pas de résultats intermédiaires en " +"mémoire ::" #: ../Doc/library/itertools.rst:552 msgid "" @@ -831,18 +831,18 @@ msgid "" "func:`map` for invariant parameters to the called function. Also used with :" "func:`zip` to create an invariant part of a tuple record." msgstr "" -"Créer un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment " +"Crée un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment " "sauf si l'argument *times* est spécifié. Utilisée comme argument de :func:" "`map` pour les paramètres invariants de la fonction appelée. Aussi utilisée " -"avec :func:`zip` pour créer une partie invariante d'un *tuple*." +"avec :func:`zip` pour créer une partie invariante d'un n-uplet." #: ../Doc/library/itertools.rst:568 msgid "" "A common use for *repeat* is to supply a stream of constant values to *map* " "or *zip*::" msgstr "" -"Une utilisation commune de *repeat* est de fournir un flux constant de " -"valeurs à *map* ou *zip* : ::" +"Une utilisation courante de *repeat* est de fournir un flux constant de " +"valeurs à *map* ou *zip* ::" #: ../Doc/library/itertools.rst:576 msgid "" @@ -853,24 +853,24 @@ msgid "" "the distinction between ``function(a,b)`` and ``function(*c)``. Roughly " "equivalent to::" msgstr "" -"Créer un itérateur qui exécute la fonction avec les arguments obtenus de " +"Crée un itérateur qui exécute la fonction avec les arguments obtenus depuis " "l'itérable. Utilisée à la place de :func:`map` quand les arguments sont déjà " -"groupés en *tuples* depuis un seul itérable (la donnée a déjà été \"pré-" -"zippée\"). La différence entre :func:`map` et :func:`starmap` est similaire " -"à la différence entre ``fonction(a,b)`` et ``fonction(*c)``. Sensiblement " -"équivalent à : ::" +"groupés en n-uplets depuis un seul itérable — la donnée a déjà été « pré-" +"zippée ». La différence entre :func:`map` et :func:`starmap` est similaire à " +"la différence entre ``fonction(a,b)`` et ``fonction(*c)``. À peu près " +"équivalent à ::" #: ../Doc/library/itertools.rst:590 msgid "" "Make an iterator that returns elements from the iterable as long as the " "predicate is true. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments d'un itérable tant que le " -"prédicat est vrai. Sensiblement équivalent à : ::" +"Crée un itérateur qui renvoie les éléments d'un itérable tant que le " +"prédicat est vrai. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:604 msgid "Return *n* independent iterators from a single iterable." -msgstr "Renvoyer *n* itérateurs indépendant depuis un unique itérable." +msgstr "Renvoie *n* itérateurs indépendants depuis un unique itérable." #: ../Doc/library/itertools.rst:606 msgid "" @@ -878,9 +878,9 @@ msgid "" "implementation is more complex and uses only a single underlying :abbr:`FIFO " "(first-in, first-out)` queue)." msgstr "" -"Le code Python qui suit aide à expliquer ce que fait *tee* (bien que la " -"vraie implémentation est plus complexe et n'utilise qu'une file :abbr:`FIFO " -"(first-in, first-out)`)." +"Le code Python qui suit aide à expliquer ce que fait *tee*, bien que la " +"vraie implémentation soit plus complexe et n'utilise qu'une file :abbr:`FIFO " +"(premier entré, premier sorti ou *first-in, first-out* en anglais)`." #: ../Doc/library/itertools.rst:627 msgid "" @@ -889,8 +889,8 @@ msgid "" "tee objects being informed." msgstr "" "Une fois que :func:`tee` a créé un branchement, l'itérable *iterable* ne " -"devrait être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être " -"avancé sans que les objets tee soient informés." +"doit être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être " +"avancé sans que les objets tee ne soient informés." #: ../Doc/library/itertools.rst:631 msgid "" @@ -899,11 +899,11 @@ msgid "" "most or all of the data before another iterator starts, it is faster to use :" "func:`list` instead of :func:`tee`." msgstr "" -"Cet outil pourrait avoir besoin d'un stockage auxiliaire important (en " -"fonction de la taille des données temporaires nécessaires). En général, si " -"un itérateur utilise la majorité ou toute la donnée avant qu'un autre " -"itérateur ne commence, il est plus rapide d'utiliser :func:`list` à la place " -"de :func:`tee`." +"Cet outil peut avoir besoin d'un stockage auxiliaire important (en fonction " +"de la taille des données temporaires nécessaires). En général, si un " +"itérateur utilise la majorité ou toute la donnée avant qu'un autre itérateur " +"ne commence, il est plus rapide d'utiliser :func:`list` à la place de :func:" +"`tee`." #: ../Doc/library/itertools.rst:639 msgid "" @@ -912,10 +912,10 @@ msgid "" "*fillvalue*. Iteration continues until the longest iterable is exhausted. " "Roughly equivalent to::" msgstr "" -"Créer un itérateur qui agrège les éléments de chacun des itérables. Si les " +"Crée un itérateur qui agrège les éléments de chacun des itérables. Si les " "itérables sont de longueurs différentes, les valeurs manquantes sont " "remplacées par *fillvalue*. L'itération continue jusqu'à ce que l'itérable " -"le plus long soit épuisé. Sensiblement équivalent à : ::" +"le plus long soit épuisé. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:663 msgid "" @@ -925,7 +925,7 @@ msgid "" "specified, *fillvalue* defaults to ``None``." msgstr "" "Si un des itérables est potentiellement infini, alors la fonction :func:" -"`zip_longest` devrait être entourée avec quelque chose qui limite le nombre " +"`zip_longest` doit être encapsulée dans un code qui limite le nombre " "d'appels (par exemple, :func:`islice` ou :func:`takewhile`). Si *fillvalue* " "n'est pas spécifié, il vaut ``None`` par défaut." @@ -938,8 +938,8 @@ msgid "" "This section shows recipes for creating an extended toolset using the " "existing itertools as building blocks." msgstr "" -"Cette section montre des recettes pour créer une boîte à outil étendue en se " -"servant des *itertools* existants comme de briques." +"Cette section présente des recettes pour créer une vaste boîte à outils en " +"se servant des *itertools* existants comme des briques." #: ../Doc/library/itertools.rst:677 msgid "" @@ -955,9 +955,10 @@ msgstr "" "jacents. La performance mémoire supérieure est gardée en traitant les " "éléments un à la fois plutôt que de charger tout l'itérable en mémoire en " "même temps. Le volume de code reste bas grâce à un chaînage de style " -"fonctionnel qui aide à éliminer des variables temporaires. La grande vitesse " -"est gardée en préférant les briques \"vectorisées\" plutôt que les boucles " -"*for* et les :term:`générateur`\\s qui engendrent du sur-coût de traitement." +"fonctionnel qui aide à éliminer les variables temporaires. La grande vitesse " +"est gardée en préférant les briques « vectorisées » plutôt que les boucles " +"*for* et les :term:`générateurs ` qui engendrent un surcoût de " +"traitement." #: ../Doc/library/itertools.rst:899 msgid "" diff --git a/library/json.po b/library/json.po index 0c6eba9d5..afccadb0a 100644 --- a/library/json.po +++ b/library/json.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-13 15:13+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-09-28 14:21+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/json.rst:2 msgid ":mod:`json` --- JSON encoder and decoder" -msgstr ":mod:`json` --- Encodage et décodage JSON" +msgstr ":mod:`json` — Encodage et décodage JSON" #: ../Doc/library/json.rst:10 msgid "**Source code:** :source:`Lib/json/__init__.py`" @@ -49,27 +49,27 @@ msgstr "" #: ../Doc/library/json.rst:24 msgid "Encoding basic Python object hierarchies::" -msgstr "Encodage d'objets Python basiques : ::" +msgstr "Encodage d'objets Python basiques ::" #: ../Doc/library/json.rst:43 msgid "Compact encoding::" -msgstr "Encodage compact : ::" +msgstr "Encodage compact ::" #: ../Doc/library/json.rst:49 msgid "Pretty printing::" -msgstr "Affichage élégant : ::" +msgstr "Affichage élégant ::" #: ../Doc/library/json.rst:58 msgid "Decoding JSON::" -msgstr "Décodage JSON : ::" +msgstr "Décodage JSON ::" #: ../Doc/library/json.rst:70 msgid "Specializing JSON object decoding::" -msgstr "Spécialisation du décodage JSON pour un objet : ::" +msgstr "Spécialisation du décodage JSON pour un objet ::" #: ../Doc/library/json.rst:85 msgid "Extending :class:`JSONEncoder`::" -msgstr "Étendre la classe :class:`JSONEncoder` : ::" +msgstr "Étendre la classe :class:`JSONEncoder` ::" #: ../Doc/library/json.rst:103 msgid "Using :mod:`json.tool` from the shell to validate and pretty-print:" @@ -496,7 +496,7 @@ msgstr "*null*" #: ../Doc/library/json.rst:313 ../Doc/library/json.rst:400 msgid "None" -msgstr "*None*" +msgstr "``None``" #: ../Doc/library/json.rst:316 msgid "" @@ -684,7 +684,7 @@ msgid "" "like this::" msgstr "" "Par exemple, pour supporter des itérateurs arbitraires, vous pourriez " -"implémenter *default* comme cela : ::" +"implémenter *default* comme cela ::" #: ../Doc/library/json.rst:484 msgid "" @@ -692,7 +692,7 @@ msgid "" "example::" msgstr "" "Renvoie une chaîne JSON représentant la structure de données Python *o*. " -"Par exemple : ::" +"Par exemple ::" #: ../Doc/library/json.rst:493 msgid "" @@ -700,7 +700,7 @@ msgid "" "available. For example::" msgstr "" "Encode l'objet *o* donné, et produit chaque chaîne représentant l'objet " -"selon disponibilité. Par exemple : ::" +"selon disponibilité. Par exemple ::" #: ../Doc/library/json.rst:501 msgid "Exceptions" @@ -884,7 +884,7 @@ msgstr "" "La RFC spécifie que les noms au sein d'un objet JSON doivent être uniques, " "mais ne décrit pas comment les noms répétés doivent être gérés. Par défaut, " "ce module ne lève pas d'exception ; à la place, il ignore tous les couples " -"nom/valeur sauf le dernier pour un nom donné : ::" +"nom/valeur sauf le dernier pour un nom donné ::" #: ../Doc/library/json.rst:613 msgid "The *object_pairs_hook* parameter can be used to alter this behavior." @@ -972,15 +972,15 @@ msgstr "" "la sérialisation de valeurs :class:`int` Python de forte magnitude, ou " "d'instances de types numériques « exotiques » comme :class:`decimal.Decimal`." -#: ../Doc/library/json.rst:654 +#: ../Doc/library/json.rst:656 msgid "Command Line Interface" msgstr "Interface en ligne de commande" -#: ../Doc/library/json.rst:659 +#: ../Doc/library/json.rst:661 msgid "**Source code:** :source:`Lib/json/tool.py`" msgstr "**Code source :** :source:`Lib/json/tool.py`" -#: ../Doc/library/json.rst:663 +#: ../Doc/library/json.rst:665 msgid "" "The :mod:`json.tool` module provides a simple command line interface to " "validate and pretty-print JSON objects." @@ -988,7 +988,7 @@ msgstr "" "Le module :mod:`json.tool` fournit une simple interface en ligne de commande " "pour valider et réécrire élégamment des objets JSON." -#: ../Doc/library/json.rst:666 +#: ../Doc/library/json.rst:668 msgid "" "If the optional ``infile`` and ``outfile`` arguments are not specified, :" "attr:`sys.stdin` and :attr:`sys.stdout` will be used respectively:" @@ -997,7 +997,7 @@ msgstr "" "spécifiés, :attr:`sys.stdin` et :attr:`sys.stdout` seront utilisés " "respectivement :" -#: ../Doc/library/json.rst:678 +#: ../Doc/library/json.rst:680 msgid "" "The output is now in the same order as the input. Use the :option:`--sort-" "keys` option to sort the output of dictionaries alphabetically by key." @@ -1006,20 +1006,20 @@ msgstr "" "l'option :option:`--sort-keys` pour sortir des dictionnaires triés " "alphabétiquement par clés." -#: ../Doc/library/json.rst:684 +#: ../Doc/library/json.rst:687 msgid "Command line options" msgstr "Options de la ligne de commande" -#: ../Doc/library/json.rst:688 +#: ../Doc/library/json.rst:691 msgid "The JSON file to be validated or pretty-printed:" msgstr "Le fichier JSON à valider ou réécrire élégamment :" -#: ../Doc/library/json.rst:704 +#: ../Doc/library/json.rst:707 msgid "If *infile* is not specified, read from :attr:`sys.stdin`." msgstr "" "Si *infile* n'est pas spécifié, lit le document depuis :attr:`sys.stdin`." -#: ../Doc/library/json.rst:708 +#: ../Doc/library/json.rst:711 msgid "" "Write the output of the *infile* to the given *outfile*. Otherwise, write it " "to :attr:`sys.stdout`." @@ -1027,19 +1027,19 @@ msgstr "" "Écrit la sortie générée par *infile* vers le fichier *outfile* donné. " "Autrement, écrit sur :attr:`sys.stdout`." -#: ../Doc/library/json.rst:713 +#: ../Doc/library/json.rst:716 msgid "Sort the output of dictionaries alphabetically by key." msgstr "Trie alphabétiquement les dictionnaires par clés." -#: ../Doc/library/json.rst:719 +#: ../Doc/library/json.rst:722 msgid "Show the help message." msgstr "Affiche le message d'aide." -#: ../Doc/library/json.rst:723 +#: ../Doc/library/json.rst:726 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/json.rst:724 +#: ../Doc/library/json.rst:727 msgid "" "As noted in `the errata for RFC 7159 `_, JSON permits literal U+2028 (LINE SEPARATOR) " diff --git a/library/keyword.po b/library/keyword.po index 30cd9cbfa..2cc1c17fc 100644 --- a/library/keyword.po +++ b/library/keyword.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/keyword.rst:2 msgid ":mod:`keyword` --- Testing for Python keywords" -msgstr ":mod:`keyword` --- Tester si des chaînes sont des mot-clés Python" +msgstr ":mod:`keyword` — Tester si des chaînes sont des mot-clés Python" #: ../Doc/library/keyword.rst:7 msgid "**Source code:** :source:`Lib/keyword.py`" diff --git a/library/linecache.po b/library/linecache.po index b96902fb0..2a4bd5eab 100644 --- a/library/linecache.po +++ b/library/linecache.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/linecache.rst:2 msgid ":mod:`linecache` --- Random access to text lines" -msgstr ":mod:`linecache` --- Accès direct aux lignes d'un texte" +msgstr ":mod:`linecache` — Accès direct aux lignes d'un texte" #: ../Doc/library/linecache.rst:9 msgid "**Source code:** :source:`Lib/linecache.py`" diff --git a/library/locale.po b/library/locale.po index 6f466113a..ce59a7ae8 100644 --- a/library/locale.po +++ b/library/locale.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+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/locale.rst:2 msgid ":mod:`locale` --- Internationalization services" -msgstr "" +msgstr ":mod:`locale` — Services d'internationalisation" #: ../Doc/library/locale.rst:10 msgid "**Source code:** :source:`Lib/locale.py`" @@ -29,22 +29,33 @@ msgid "" "certain cultural issues in an application, without requiring the programmer " "to know all the specifics of each country where the software is executed." msgstr "" +"Le module :mod:`locale` donne accès à la base de données et aux " +"fonctionnalités des paramètres linguistiques définis par POSIX. Le mécanisme " +"des paramètres linguistiques de POSIX permet aux développeurs de faire face " +"à certaines problématiques culturelles dans une application, sans avoir à " +"connaître toutes les spécificités de chaque pays où le logiciel est exécuté." #: ../Doc/library/locale.rst:21 msgid "" "The :mod:`locale` module is implemented on top of the :mod:`_locale` module, " "which in turn uses an ANSI C locale implementation if available." msgstr "" +"Le module :mod:`locale` est implémenté au-dessus du module :mod:`_locale`, " +"qui lui-même utilise l'implémentation du paramètre régional ANSI C si " +"disponible." #: ../Doc/library/locale.rst:24 msgid "The :mod:`locale` module defines the following exception and functions:" msgstr "" +"Le module :mod:`locale` définit l'exception et les fonctions suivantes :" #: ../Doc/library/locale.rst:29 msgid "" "Exception raised when the locale passed to :func:`setlocale` is not " "recognized." msgstr "" +"Exception levée lorsque le paramètre régional passé en paramètre de :func:" +"`setlocale` n'est pas reconnu." #: ../Doc/library/locale.rst:35 msgid "" @@ -57,18 +68,31 @@ msgid "" "exception :exc:`Error` is raised. If successful, the new locale setting is " "returned." msgstr "" +"Si *locale* ne vaut pas ``None``, :func:`setlocale` modifie le paramètre " +"régional pour la catégorie *category*. Les catégories disponibles sont " +"listées dans la description des données ci-dessous. *locale* peut être une " +"chaîne de caractères ou un itérable de deux chaînes de caractères (code de " +"la langue et encodage). Si c'est un itérable, il est converti en un nom de " +"paramètre régional à l'aide du moteur de normalisation fait pour. Si c'est " +"une chaîne vide, les paramètres par défaut de l'utilisateur sont utilisés. " +"Si la modification du paramètre régional échoue, l'exception :exc:`Error` " +"est levée. Si elle fonctionne, le nouveau paramètre est renvoyé." #: ../Doc/library/locale.rst:43 msgid "" "If *locale* is omitted or ``None``, the current setting for *category* is " "returned." msgstr "" +"Si *locale* est omis ou vaut ``None``, le paramètre actuel de *category* est " +"renvoyé." #: ../Doc/library/locale.rst:46 msgid "" ":func:`setlocale` is not thread-safe on most systems. Applications typically " "start with a call of ::" msgstr "" +":func:`setlocale` n'est pas *thread-safe* sur la plupart des systèmes. Les " +"applications commencent généralement par un appel de : ::" #: ../Doc/library/locale.rst:52 msgid "" @@ -77,20 +101,28 @@ msgid "" "locale is not changed thereafter, using multithreading should not cause " "problems." msgstr "" +"Cela définit les paramètres régionaux dans toutes les catégories sur ceux " +"par défaut de l'utilisateur (habituellement spécifiés dans la variable " +"d'environnement :envvar:`LANG`). Si les paramètres régionaux ne sont pas " +"modifiés par la suite, l'utilisation de fils d'exécution ne devrait pas " +"poser de problèmes." #: ../Doc/library/locale.rst:59 msgid "" "Returns the database of the local conventions as a dictionary. This " "dictionary has the following strings as keys:" msgstr "" +"Renvoie la base de données des conventions locales sous forme de " +"dictionnaire. Ce dictionnaire a les chaînes de caractères suivantes comme " +"clés :" #: ../Doc/library/locale.rst:65 msgid "Category" -msgstr "" +msgstr "Catégorie" #: ../Doc/library/locale.rst:65 msgid "Key" -msgstr "" +msgstr "Clé" #: ../Doc/library/locale.rst:65 msgid "Meaning" @@ -107,6 +139,8 @@ msgstr "``'decimal_point'``" #: ../Doc/library/locale.rst:67 msgid "Decimal point character." msgstr "" +"Caractère du séparateur décimal (entre la partie entière et la partie " +"décimale)." #: ../Doc/library/locale.rst:69 msgid "``'grouping'``" @@ -119,6 +153,11 @@ msgid "" "`CHAR_MAX`, no further grouping is performed. If the sequence terminates " "with a ``0``, the last group size is repeatedly used." msgstr "" +"Séquence de nombres spécifiant les positions relatives attendues pour " +"``'thousands_sep'`` (séparateur de milliers). Si la séquence se termine " +"par :const:`CHAR_MAX`, aucun autre regroupement n'est effectué. Si la " +"séquence se termine par un ``0``, la dernière taille du groupe est utilisée " +"à plusieurs reprises." #: ../Doc/library/locale.rst:80 msgid "``'thousands_sep'``" @@ -126,7 +165,7 @@ msgstr "``'thousands_sep'``" #: ../Doc/library/locale.rst:80 msgid "Character used between groups." -msgstr "" +msgstr "Caractère utilisé entre les groupes (séparateur de milliers)." #: ../Doc/library/locale.rst:82 msgid ":const:`LC_MONETARY`" @@ -138,7 +177,7 @@ msgstr "``'int_curr_symbol'``" #: ../Doc/library/locale.rst:82 msgid "International currency symbol." -msgstr "" +msgstr "Symbole monétaire international." #: ../Doc/library/locale.rst:84 msgid "``'currency_symbol'``" @@ -146,7 +185,7 @@ msgstr "``'currency_symbol'``" #: ../Doc/library/locale.rst:84 msgid "Local currency symbol." -msgstr "" +msgstr "Symbole monétaire local." #: ../Doc/library/locale.rst:86 msgid "``'p_cs_precedes/n_cs_precedes'``" @@ -157,6 +196,8 @@ msgid "" "Whether the currency symbol precedes the value (for positive resp. negative " "values)." msgstr "" +"Si le symbole monétaire précède ou non la valeur (pour les valeurs positives " +"et négatives, respectivement)." #: ../Doc/library/locale.rst:91 msgid "``'p_sep_by_space/n_sep_by_space'``" @@ -167,6 +208,8 @@ msgid "" "Whether the currency symbol is separated from the value by a space (for " "positive resp. negative values)." msgstr "" +"Si le symbole monétaire est séparé de la valeur par une espace ou non (pour " +"les valeurs positives et négatives, respectivement)." #: ../Doc/library/locale.rst:96 msgid "``'mon_decimal_point'``" @@ -175,6 +218,8 @@ msgstr "``'mon_decimal_point'``" #: ../Doc/library/locale.rst:96 msgid "Decimal point used for monetary values." msgstr "" +"Séparateur décimal (entre la partie entière et la partie décimale) utilisé " +"pour les valeurs monétaires." #: ../Doc/library/locale.rst:99 msgid "``'frac_digits'``" @@ -184,6 +229,7 @@ msgstr "``'frac_digits'``" msgid "" "Number of fractional digits used in local formatting of monetary values." msgstr "" +"Nombre de décimales utilisées dans le format local des valeurs monétaires." #: ../Doc/library/locale.rst:103 msgid "``'int_frac_digits'``" @@ -194,6 +240,8 @@ msgid "" "Number of fractional digits used in international formatting of monetary " "values." msgstr "" +"Nombre de décimales utilisées dans le format international des valeurs " +"monétaires." #: ../Doc/library/locale.rst:107 msgid "``'mon_thousands_sep'``" @@ -201,7 +249,7 @@ msgstr "``'mon_thousands_sep'``" #: ../Doc/library/locale.rst:107 msgid "Group separator used for monetary values." -msgstr "" +msgstr "Séparateur de groupe utilisé pour les valeurs monétaires." #: ../Doc/library/locale.rst:110 msgid "``'mon_grouping'``" @@ -209,7 +257,7 @@ msgstr "``'mon_grouping'``" #: ../Doc/library/locale.rst:110 msgid "Equivalent to ``'grouping'``, used for monetary values." -msgstr "" +msgstr "Équivalent de ``'grouping'``, utilisé pour les valeurs monétaires." #: ../Doc/library/locale.rst:113 msgid "``'positive_sign'``" @@ -217,7 +265,7 @@ msgstr "``'positive_sign'``" #: ../Doc/library/locale.rst:113 msgid "Symbol used to annotate a positive monetary value." -msgstr "" +msgstr "Symbole utilisé pour indiquer qu'une valeur monétaire est positive." #: ../Doc/library/locale.rst:116 msgid "``'negative_sign'``" @@ -225,7 +273,7 @@ msgstr "``'negative_sign'``" #: ../Doc/library/locale.rst:116 msgid "Symbol used to annotate a negative monetary value." -msgstr "" +msgstr "Symbole utilisé pour indiquer qu'une valeur monétaire est négative." #: ../Doc/library/locale.rst:119 msgid "``'p_sign_posn/n_sign_posn'``" @@ -235,18 +283,24 @@ msgstr "``'p_sign_posn/n_sign_posn'``" msgid "" "The position of the sign (for positive resp. negative values), see below." msgstr "" +"Position du signe (pour les valeurs positives et négatives, respectivement), " +"voir ci-dessous." #: ../Doc/library/locale.rst:124 msgid "" "All numeric values can be set to :const:`CHAR_MAX` to indicate that there is " "no value specified in this locale." msgstr "" +"Toutes les valeurs numériques peuvent être définies à :const:`CHAR_MAX` pour " +"indiquer qu'il n'y a pas de valeur spécifiée pour ces paramètres régionaux." #: ../Doc/library/locale.rst:127 msgid "" "The possible values for ``'p_sign_posn'`` and ``'n_sign_posn'`` are given " "below." msgstr "" +"Les valeurs possibles pour ``'p_sign_posn'`` et ``'n_sign_posn'`` sont " +"données ci-dessous." #: ../Doc/library/locale.rst:130 msgid "Value" @@ -262,7 +316,7 @@ msgstr "``0``" #: ../Doc/library/locale.rst:132 msgid "Currency and value are surrounded by parentheses." -msgstr "" +msgstr "Le symbole monétaire et la valeur sont entourés de parenthèses." #: ../Doc/library/locale.rst:135 msgid "``1``" @@ -270,7 +324,7 @@ msgstr "``1``" #: ../Doc/library/locale.rst:135 msgid "The sign should precede the value and currency symbol." -msgstr "" +msgstr "Le signe doit précéder la valeur et le symbole monétaire." #: ../Doc/library/locale.rst:138 msgid "``2``" @@ -278,7 +332,7 @@ msgstr "``2``" #: ../Doc/library/locale.rst:138 msgid "The sign should follow the value and currency symbol." -msgstr "" +msgstr "Le signe doit suivre la valeur et le symbole monétaire." #: ../Doc/library/locale.rst:141 msgid "``3``" @@ -286,7 +340,7 @@ msgstr "``3``" #: ../Doc/library/locale.rst:141 msgid "The sign should immediately precede the value." -msgstr "" +msgstr "Le signe doit précéder immédiatement la valeur." #: ../Doc/library/locale.rst:144 msgid "``4``" @@ -294,7 +348,7 @@ msgstr "``4``" #: ../Doc/library/locale.rst:144 msgid "The sign should immediately follow the value." -msgstr "" +msgstr "Le signe doit suivre immédiatement la valeur." #: ../Doc/library/locale.rst:147 msgid "``CHAR_MAX``" @@ -302,136 +356,180 @@ msgstr "``CHAR_MAX``" #: ../Doc/library/locale.rst:147 msgid "Nothing is specified in this locale." -msgstr "" +msgstr "Rien n'est spécifié dans ces paramètres régionaux." #: ../Doc/library/locale.rst:150 msgid "" "The function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` " -"locale to decode ``decimal_point`` and ``thousands_sep`` byte strings if " -"they are non-ASCII or longer than 1 byte, and the ``LC_NUMERIC`` locale is " -"different than the ``LC_CTYPE`` locale. This temporary change affects other " -"threads." +"locale or the ``LC_MONETARY`` locale if locales are different and numeric or " +"monetary strings are non-ASCII. This temporary change affects other threads." msgstr "" -#: ../Doc/library/locale.rst:156 +#: ../Doc/library/locale.rst:154 msgid "" "The function now sets temporarily the ``LC_CTYPE`` locale to the " "``LC_NUMERIC`` locale in some cases." msgstr "" +"La fonction définit maintenant la valeur du paramètre ``LC_CTYPE`` à celle " +"du paramètre ``LC_NUMERIC`` temporairement dans certains cas." -#: ../Doc/library/locale.rst:163 +#: ../Doc/library/locale.rst:161 msgid "" "Return some locale-specific information as a string. This function is not " "available on all systems, and the set of possible options might also vary " "across platforms. The possible argument values are numbers, for which " "symbolic constants are available in the locale module." msgstr "" +"Renvoie quelques informations spécifiques aux paramètres régionaux sous " +"forme de chaîne. Cette fonction n'est pas disponible sur tous les systèmes " +"et l'ensemble des options possibles peut également varier d'une plateforme à " +"l'autre. Les valeurs possibles pour les arguments sont des nombres, pour " +"lesquels des constantes symboliques sont disponibles dans le module *locale*." -#: ../Doc/library/locale.rst:168 +#: ../Doc/library/locale.rst:166 msgid "" "The :func:`nl_langinfo` function accepts one of the following keys. Most " "descriptions are taken from the corresponding description in the GNU C " "library." msgstr "" +"La fonction :func:`nl_langinfo` accepte l'une des clés suivantes. La " +"plupart des descriptions sont extraites des descriptions correspondantes " +"dans la bibliothèque GNU C." -#: ../Doc/library/locale.rst:174 +#: ../Doc/library/locale.rst:172 msgid "" "Get a string with the name of the character encoding used in the selected " "locale." msgstr "" +"Récupère une chaîne avec le nom de l'encodage des caractères utilisé par le " +"paramètre régional sélectionné." -#: ../Doc/library/locale.rst:179 +#: ../Doc/library/locale.rst:177 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent date and time in a locale-specific way." msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter la date et l'heure pour un " +"paramètre régional spécifique." -#: ../Doc/library/locale.rst:184 +#: ../Doc/library/locale.rst:182 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent a date in a locale-specific way." msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter une date pour un paramètre régional " +"spécifique." -#: ../Doc/library/locale.rst:189 +#: ../Doc/library/locale.rst:187 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent a time in a locale-specific way." msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter une heure pour un paramètre " +"régional spécifique." -#: ../Doc/library/locale.rst:194 +#: ../Doc/library/locale.rst:192 msgid "" "Get a format string for :func:`time.strftime` to represent time in the am/pm " "format." msgstr "" +"Récupère une chaîne de format pour :func:`time.strftime` afin de représenter " +"l'heure au format am / pm." -#: ../Doc/library/locale.rst:199 +#: ../Doc/library/locale.rst:197 msgid "Get the name of the n-th day of the week." -msgstr "" +msgstr "Récupère le nom du n-ième jour de la semaine." -#: ../Doc/library/locale.rst:203 +#: ../Doc/library/locale.rst:201 msgid "" "This follows the US convention of :const:`DAY_1` being Sunday, not the " "international convention (ISO 8601) that Monday is the first day of the week." msgstr "" +"Cela suit la convention américaine qui définit :const:`DAY_1` comme étant " +"dimanche, et non la convention internationale (ISO 8601) où lundi est le " +"premier jour de la semaine." -#: ../Doc/library/locale.rst:209 +#: ../Doc/library/locale.rst:207 msgid "Get the abbreviated name of the n-th day of the week." -msgstr "" +msgstr "Récupère l'abréviation du n-ième jour de la semaine." -#: ../Doc/library/locale.rst:213 +#: ../Doc/library/locale.rst:211 msgid "Get the name of the n-th month." -msgstr "" +msgstr "Récupère le nom du n-ième mois." -#: ../Doc/library/locale.rst:217 +#: ../Doc/library/locale.rst:215 msgid "Get the abbreviated name of the n-th month." -msgstr "" +msgstr "Récupère l'abréviation du n-ième mois." -#: ../Doc/library/locale.rst:221 +#: ../Doc/library/locale.rst:219 msgid "Get the radix character (decimal dot, decimal comma, etc.)." msgstr "" +"Récupère le caractère de séparation *radix* (point décimal, virgule " +"décimale, etc.)." -#: ../Doc/library/locale.rst:225 +#: ../Doc/library/locale.rst:223 msgid "Get the separator character for thousands (groups of three digits)." msgstr "" +"Récupère le caractère de séparation des milliers (groupes de 3 chiffres)." -#: ../Doc/library/locale.rst:229 +#: ../Doc/library/locale.rst:227 msgid "" "Get a regular expression that can be used with the regex function to " "recognize a positive response to a yes/no question." msgstr "" +"Récupère une expression régulière qui peut être utilisée par la fonction " +"*regex* pour reconnaître une réponse positive à une question fermée (oui / " +"non)." -#: ../Doc/library/locale.rst:234 +#: ../Doc/library/locale.rst:232 msgid "" "The expression is in the syntax suitable for the :c:func:`regex` function " "from the C library, which might differ from the syntax used in :mod:`re`." msgstr "" +"L'expression est dans une syntaxe adaptée à la fonction :c:func:`regex` de " +"la bibliothèque C, qui peut différer de la syntaxe utilisée par :mod:`re`." -#: ../Doc/library/locale.rst:239 +#: ../Doc/library/locale.rst:237 msgid "" "Get a regular expression that can be used with the regex(3) function to " "recognize a negative response to a yes/no question." msgstr "" +"Récupère une expression régulière qui peut être utilisée par la fonction " +"*regex(3)* pour reconnaître une réponse négative à une question fermée " +"(oui / non)." -#: ../Doc/library/locale.rst:244 +#: ../Doc/library/locale.rst:242 msgid "" "Get the currency symbol, preceded by \"-\" if the symbol should appear " "before the value, \"+\" if the symbol should appear after the value, or \"." "\" if the symbol should replace the radix character." msgstr "" +"Récupère le symbole monétaire, précédé de « - » si le symbole doit " +"apparaître avant la valeur, « + » s'il doit apparaître après la valeur, ou " +"« . » s'il doit remplacer le caractère de séparation *radix*." -#: ../Doc/library/locale.rst:250 +#: ../Doc/library/locale.rst:248 msgid "Get a string that represents the era used in the current locale." msgstr "" +"Récupère une chaîne qui représente l'ère utilisée pour le paramètre régional " +"actuel." -#: ../Doc/library/locale.rst:252 +#: ../Doc/library/locale.rst:250 msgid "" "Most locales do not define this value. An example of a locale which does " "define this value is the Japanese one. In Japan, the traditional " "representation of dates includes the name of the era corresponding to the " "then-emperor's reign." msgstr "" +"La plupart des paramètres régionaux ne définissent pas cette valeur. Un " +"exemple de région qui définit bien cette valeur est le japonais. Au Japon, " +"la représentation traditionnelle des dates comprend le nom de l'ère " +"correspondant au règne de l'empereur de l'époque." -#: ../Doc/library/locale.rst:257 +#: ../Doc/library/locale.rst:255 msgid "" "Normally it should not be necessary to use this value directly. Specifying " "the ``E`` modifier in their format strings causes the :func:`time.strftime` " @@ -439,38 +537,53 @@ msgid "" "specified, and therefore you should not assume knowledge of it on different " "systems." msgstr "" +"Normalement, il ne devrait pas être nécessaire d'utiliser cette valeur " +"directement. Spécifier le modificateur ``E`` dans leurs chaînes de format " +"provoque l'utilisation de cette information par la fonction :func:`time." +"strftime`. Le format de la chaîne renvoyée n'est pas spécifié, et vous ne " +"devez donc pas supposer en avoir connaissance sur des systèmes différents." -#: ../Doc/library/locale.rst:265 +#: ../Doc/library/locale.rst:263 msgid "" "Get a format string for :func:`time.strftime` to represent date and time in " "a locale-specific era-based way." msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"la date et l'heure pour un paramètre régional spécifique basée sur une ère." -#: ../Doc/library/locale.rst:270 +#: ../Doc/library/locale.rst:268 msgid "" "Get a format string for :func:`time.strftime` to represent a date in a " "locale-specific era-based way." msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"une date pour un paramètre régional spécifique basée sur une ère." -#: ../Doc/library/locale.rst:275 +#: ../Doc/library/locale.rst:273 msgid "" "Get a format string for :func:`time.strftime` to represent a time in a " "locale-specific era-based way." msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"une heure pour un paramètre régional spécifique basée sur une ère." -#: ../Doc/library/locale.rst:280 +#: ../Doc/library/locale.rst:278 msgid "" "Get a representation of up to 100 values used to represent the values 0 to " "99." msgstr "" +"Récupère une représentation de 100 valeurs maximum utilisées pour " +"représenter les valeurs de 0 à 99." -#: ../Doc/library/locale.rst:286 +#: ../Doc/library/locale.rst:284 msgid "" "Tries to determine the default locale settings and returns them as a tuple " "of the form ``(language code, encoding)``." msgstr "" +"Tente de déterminer les paramètres régionaux par défaut, puis les renvoie " +"sous la forme d'un n-uplet ``(code de la langue, encodage)``." -#: ../Doc/library/locale.rst:289 +#: ../Doc/library/locale.rst:287 msgid "" "According to POSIX, a program which has not called ``setlocale(LC_ALL, '')`` " "runs using the portable ``'C'`` locale. Calling ``setlocale(LC_ALL, '')`` " @@ -478,8 +591,14 @@ msgid "" "Since we do not want to interfere with the current locale setting we thus " "emulate the behavior in the way described above." msgstr "" +"D'après POSIX, un programme qui n'a pas appelé ``setlocale(LC_ALL, '')`` " +"fonctionne en utilisant le paramètre régional portable ``'C'``. Appeler " +"``setlocale(LC_ALL, '')`` lui permet d'utiliser les paramètres régionaux par " +"défaut définis par la variable :envvar:`LANG`. Comme nous ne voulons pas " +"interférer avec les paramètres régionaux actuels, nous émulons donc le " +"comportement décrit ci-dessus." -#: ../Doc/library/locale.rst:295 +#: ../Doc/library/locale.rst:293 msgid "" "To maintain compatibility with other platforms, not only the :envvar:`LANG` " "variable is tested, but a list of variables given as envvars parameter. The " @@ -488,212 +607,306 @@ msgid "" "``'LANG'``. The GNU gettext search path contains ``'LC_ALL'``, " "``'LC_CTYPE'``, ``'LANG'`` and ``'LANGUAGE'``, in that order." msgstr "" +"Afin de maintenir la compatibilité avec d'autres plateformes, non seulement " +"la variable :envvar:`LANG` est testée, mais c'est aussi le cas pour toute " +"une liste de variables passés en paramètre via *envvars*. La première " +"variable à être définie sera utilisée. *envvars* utilise par défaut le " +"chemin de recherche utilisé dans GNU *gettext* ; il doit toujours contenir " +"le nom de variable ``'LANG'``. Le chemin de recherche de GNU *gettext* " +"contient ``'LC_ALL'``, ``'LC_CTYPE'``, ``'LANG'`` et ``'LANGUAGE'``, dans " +"cet ordre." -#: ../Doc/library/locale.rst:302 ../Doc/library/locale.rst:313 +#: ../Doc/library/locale.rst:300 ../Doc/library/locale.rst:311 msgid "" "Except for the code ``'C'``, the language code corresponds to :rfc:`1766`. " "*language code* and *encoding* may be ``None`` if their values cannot be " "determined." msgstr "" +"À l'exception du code ``'C'``, le code d'une langue correspond à la :rfc:" +"`1766`. Le *code de la langue* et l'*encodage* peuvent valoir ``None`` si " +"leur valeur ne peut être déterminée." -#: ../Doc/library/locale.rst:309 +#: ../Doc/library/locale.rst:307 msgid "" "Returns the current setting for the given locale category as sequence " "containing *language code*, *encoding*. *category* may be one of the :const:" "`LC_\\*` values except :const:`LC_ALL`. It defaults to :const:`LC_CTYPE`." msgstr "" +"Renvoie les réglages actuels pour la catégorie de paramètres régionaux " +"donnée, sous la forme d'une séquence contenant le *code de la langue* et " +"l'*encodage*. La catégorie *category* peut être l'une des valeurs :const:`LC_" +"\\*` à l'exception de :const:`LC_ALL`. La valeur par défaut est :const:" +"`LC_CTYPE`." -#: ../Doc/library/locale.rst:320 +#: ../Doc/library/locale.rst:318 msgid "" "Return the encoding used for text data, according to user preferences. User " "preferences are expressed differently on different systems, and might not be " "available programmatically on some systems, so this function only returns a " "guess." msgstr "" +"Renvoie le codage utilisé pour les données textuelles, selon les préférences " +"de l'utilisateur. Les préférences de l'utilisateur sont exprimées " +"différemment selon les systèmes et peuvent ne pas être disponibles via les " +"interfaces de programmation sur certains systèmes. Cette fonction ne renvoie " +"donc qu'une supposition." -#: ../Doc/library/locale.rst:325 +#: ../Doc/library/locale.rst:323 msgid "" "On some systems, it is necessary to invoke :func:`setlocale` to obtain the " "user preferences, so this function is not thread-safe. If invoking setlocale " "is not necessary or desired, *do_setlocale* should be set to ``False``." msgstr "" +"Sur certains systèmes, il est nécessaire d'invoquer :func:`setlocale` pour " +"obtenir les préférences de l'utilisateur, cette fonction n'est donc pas " +"utilisable sans protection dans les programmes à fils d'exécutions " +"multiples. Si l'appel de `setlocale` n'est pas nécessaire ou souhaité, " +"*do_setlocale* doit être réglé à ``False``." -#: ../Doc/library/locale.rst:329 +#: ../Doc/library/locale.rst:327 msgid "" "On Android or in the UTF-8 mode (:option:`-X` ``utf8`` option), always " "return ``'UTF-8'``, the locale and the *do_setlocale* argument are ignored." msgstr "" +"Sur Android ou dans le mode UTF-8 (avec l'option :option:`-X` ``utf8``), " +"renvoie toujours ``'UTF-8'``, la locale et l'argument *do_setlocale* sont " +"ignorés." -#: ../Doc/library/locale.rst:332 +#: ../Doc/library/locale.rst:330 msgid "" "The function now always returns ``UTF-8`` on Android or if the UTF-8 mode is " "enabled." msgstr "" +"La fonction renvoie maintenant toujours ``UTF-8`` sur Android ou si le mode " +"UTF-8 est activé." -#: ../Doc/library/locale.rst:339 +#: ../Doc/library/locale.rst:337 msgid "" "Returns a normalized locale code for the given locale name. The returned " "locale code is formatted for use with :func:`setlocale`. If normalization " "fails, the original name is returned unchanged." msgstr "" +"Renvoie un code normalisé pour le nom du paramètre régional fourni. Ce code " +"renvoyé est structuré de façon à être utilisé avec :func:`setlocale`. Si la " +"normalisation échoue, le nom d'origine est renvoyé inchangé." -#: ../Doc/library/locale.rst:343 +#: ../Doc/library/locale.rst:341 msgid "" "If the given encoding is not known, the function defaults to the default " "encoding for the locale code just like :func:`setlocale`." msgstr "" +"Si l'encodage donné n'est pas connu, la fonction utilise l'encodage par " +"défaut pour le code du paramètre régional, tout comme :func:`setlocale`." -#: ../Doc/library/locale.rst:349 +#: ../Doc/library/locale.rst:347 msgid "Sets the locale for *category* to the default setting." msgstr "" +"Définit le paramètre régional de la catégorie *category* au réglage par " +"défaut." -#: ../Doc/library/locale.rst:351 +#: ../Doc/library/locale.rst:349 msgid "" "The default setting is determined by calling :func:`getdefaultlocale`. " "*category* defaults to :const:`LC_ALL`." msgstr "" +"Le réglage par défaut est déterminé en appelant :func:`getdefaultlocale`. La " +"catégorie *category* vaut par défaut :const:`LC_ALL`." -#: ../Doc/library/locale.rst:357 +#: ../Doc/library/locale.rst:355 msgid "" "Compares two strings according to the current :const:`LC_COLLATE` setting. " "As any other compare function, returns a negative, or a positive value, or " "``0``, depending on whether *string1* collates before or after *string2* or " "is equal to it." msgstr "" +"Compare deux chaînes en se basant sur le paramètre :const:`LC_COLLATE` " +"actuel. Comme toute autre fonction de comparaison, renvoie une valeur " +"négative, positive, ou ``0``, selon si *string1* est lexicographiquement " +"inférieure, supérieure, ou égale à *string2*." -#: ../Doc/library/locale.rst:365 +#: ../Doc/library/locale.rst:363 msgid "" "Transforms a string to one that can be used in locale-aware comparisons. " "For example, ``strxfrm(s1) < strxfrm(s2)`` is equivalent to ``strcoll(s1, " "s2) < 0``. This function can be used when the same string is compared " "repeatedly, e.g. when collating a sequence of strings." msgstr "" +"Transforme une chaîne de caractères en une chaîne qui peut être utilisée " +"dans les comparaisons sensibles aux paramètres régionaux. Par exemple, " +"``strxfrm(s1) < strxfrm(s2)`` est équivalent à ``strcoll(s1, s2) < 0``. " +"Cette fonction peut être utilisée lorsque la même chaîne est comparée de " +"façon répétitive, par exemple lors de l'assemblage d'une séquence de chaînes." -#: ../Doc/library/locale.rst:374 +#: ../Doc/library/locale.rst:372 msgid "" "Formats a number *val* according to the current :const:`LC_NUMERIC` setting. " "The format follows the conventions of the ``%`` operator. For floating " "point values, the decimal point is modified if appropriate. If *grouping* " "is true, also takes the grouping into account." msgstr "" +"Structure un nombre *val* en fonction du paramètre :const:`LC_NUMERIC` " +"actuel. Le format suit les conventions de l'opérateur ``%``. Pour les " +"valeurs à virgule flottante, le point décimal est modifié si nécessaire. Si " +"*grouping* est vrai, le regroupement est également pris en compte." -#: ../Doc/library/locale.rst:379 +#: ../Doc/library/locale.rst:377 msgid "" "If *monetary* is true, the conversion uses monetary thousands separator and " "grouping strings." msgstr "" +"Si *monetary* est vrai, la conversion utilise un séparateur des milliers " +"monétaire et des chaînes de regroupement." -#: ../Doc/library/locale.rst:382 +#: ../Doc/library/locale.rst:380 msgid "" "Processes formatting specifiers as in ``format % val``, but takes the " "current locale settings into account." msgstr "" +"Traite les marqueurs de structure en ``format % val``, mais en prenant en " +"compte les paramètres régionaux actuels." -#: ../Doc/library/locale.rst:385 +#: ../Doc/library/locale.rst:383 msgid "The *monetary* keyword parameter was added." msgstr "" -#: ../Doc/library/locale.rst:391 +#: ../Doc/library/locale.rst:389 msgid "" "Please note that this function works like :meth:`format_string` but will " "only work for exactly one ``%char`` specifier. For example, ``'%f'`` and " "``'%.0f'`` are both valid specifiers, but ``'%f KiB'`` is not." msgstr "" -#: ../Doc/library/locale.rst:395 +#: ../Doc/library/locale.rst:393 msgid "For whole format strings, use :func:`format_string`." msgstr "" -#: ../Doc/library/locale.rst:397 +#: ../Doc/library/locale.rst:395 msgid "Use :meth:`format_string` instead." msgstr "" -#: ../Doc/library/locale.rst:403 +#: ../Doc/library/locale.rst:401 msgid "" "Formats a number *val* according to the current :const:`LC_MONETARY` " "settings." msgstr "" +"Structure un nombre *val* en fonction du paramètre :const:`LC_MONETARY` " +"actuel." -#: ../Doc/library/locale.rst:405 +#: ../Doc/library/locale.rst:403 msgid "" "The returned string includes the currency symbol if *symbol* is true, which " "is the default. If *grouping* is true (which is not the default), grouping " "is done with the value. If *international* is true (which is not the " "default), the international currency symbol is used." msgstr "" +"La chaîne renvoyée inclut le symbole monétaire si *symbol* est vrai, ce qui " +"est le cas par défaut. Si *grouping* est vrai (ce qui n'est pas le cas par " +"défaut), un regroupement est effectué avec la valeur. Si *international* est " +"vrai (ce qui n'est pas le cas par défaut), le symbole de la devise " +"internationale est utilisé." -#: ../Doc/library/locale.rst:410 +#: ../Doc/library/locale.rst:408 msgid "" "Note that this function will not work with the 'C' locale, so you have to " "set a locale via :func:`setlocale` first." msgstr "" +"Notez que cette fonction ne fonctionnera pas avec le paramètre régional 'C', " +"vous devez donc d'abord en définir un via :func:`setlocale`." -#: ../Doc/library/locale.rst:416 +#: ../Doc/library/locale.rst:414 msgid "" "Formats a floating point number using the same format as the built-in " "function ``str(float)``, but takes the decimal point into account." msgstr "" +"Structure un nombre flottant en utilisant le même format que la fonction " +"native ``str(float)``, mais en prenant en compte le point décimal." -#: ../Doc/library/locale.rst:422 +#: ../Doc/library/locale.rst:420 msgid "" "Converts a string into a normalized number string, following the :const:" "`LC_NUMERIC` settings." msgstr "" +"Convertit une chaîne de caractères en une chaîne de nombres normalisés, en " +"suivant les réglages :const:`LC_NUMERIC`." -#: ../Doc/library/locale.rst:430 +#: ../Doc/library/locale.rst:428 msgid "" "Converts a string to a floating point number, following the :const:" "`LC_NUMERIC` settings." msgstr "" +"Convertit une chaîne de caractères en nombre à virgule flottante, en suivant " +"les réglages :const:`LC_NUMERIC`." -#: ../Doc/library/locale.rst:436 +#: ../Doc/library/locale.rst:434 msgid "" "Converts a string to an integer, following the :const:`LC_NUMERIC` " "conventions." msgstr "" +"Convertit une chaîne de caractères en un entier, en suivant les réglages :" +"const:`LC_NUMERIC`." -#: ../Doc/library/locale.rst:443 +#: ../Doc/library/locale.rst:441 msgid "" "Locale category for the character type functions. Depending on the settings " "of this category, the functions of module :mod:`string` dealing with case " "change their behaviour." msgstr "" +"Catégorie de paramètre régional pour les fonctions de type caractère. " +"Suivant les réglages de la catégorie, les fonctions du module :mod:`string` " +"gérant la casse peuvent changer leur comportement." -#: ../Doc/library/locale.rst:450 +#: ../Doc/library/locale.rst:448 msgid "" "Locale category for sorting strings. The functions :func:`strcoll` and :" "func:`strxfrm` of the :mod:`locale` module are affected." msgstr "" +"Catégorie de paramètre régional pour les tris de chaînes de caractères. Les " +"fonctions :func:`strcoll` et :func:`strxfrm` du module :mod:`locale` sont " +"concernées." -#: ../Doc/library/locale.rst:456 +#: ../Doc/library/locale.rst:454 msgid "" "Locale category for the formatting of time. The function :func:`time." "strftime` follows these conventions." msgstr "" +"Catégorie de paramètre régional pour la mise en forme de la date et de " +"l'heure. La fonction :func:`time.strftime` suit ces conventions." -#: ../Doc/library/locale.rst:462 +#: ../Doc/library/locale.rst:460 msgid "" "Locale category for formatting of monetary values. The available options " "are available from the :func:`localeconv` function." msgstr "" +"Catégorie de paramètre régional pour la mise en forme des valeurs " +"monétaires. Les options disponibles sont accessibles à partir de la " +"fonction :func:`localeconv`." -#: ../Doc/library/locale.rst:468 +#: ../Doc/library/locale.rst:466 msgid "" "Locale category for message display. Python currently does not support " "application specific locale-aware messages. Messages displayed by the " "operating system, like those returned by :func:`os.strerror` might be " "affected by this category." msgstr "" +"Catégorie de paramètre régional pour l'affichage de messages. Actuellement, " +"Python ne gère pas les messages spécifiques aux applications qui sont " +"sensibles aux paramètres régionaux. Les messages affichés par le système " +"d'exploitation, comme ceux renvoyés par :func:`os.strerror` peuvent être " +"affectés par cette catégorie." -#: ../Doc/library/locale.rst:476 +#: ../Doc/library/locale.rst:474 msgid "" "Locale category for formatting numbers. The functions :func:`.format`, :" "func:`atoi`, :func:`atof` and :func:`.str` of the :mod:`locale` module are " "affected by that category. All other numeric formatting operations are not " "affected." msgstr "" +"Catégorie de paramètre régional pour la mise en forme des nombres. Les " +"fonctions :func:`.format`, :func:`atoi`, :func:`atof` et :func:`.str` du " +"module :mod:`locale` sont affectées par cette catégorie. Toutes les autres " +"opérations de mise en forme des nombres ne sont pas affectées." -#: ../Doc/library/locale.rst:484 +#: ../Doc/library/locale.rst:482 msgid "" "Combination of all locale settings. If this flag is used when the locale is " "changed, setting the locale for all categories is attempted. If that fails " @@ -702,30 +915,44 @@ msgid "" "categories is returned. This string can be later used to restore the " "settings." msgstr "" +"Combinaison de tous les paramètres régionaux. Si cette option est utilisée " +"lors du changement de paramètres régionaux, la définition de ces paramètres " +"pour toutes les catégories est tentée. Si cela échoue pour n'importe quelle " +"catégorie, aucune d'entre elles n'est modifiée. Lorsque les paramètres " +"régionaux sont récupérés à l'aide de cette option, une chaîne de caractères " +"indiquant le réglage pour toutes les catégories est renvoyée. Cette chaîne " +"peut alors être utilisée plus tard pour restaurer les paramètres d'origine." -#: ../Doc/library/locale.rst:493 +#: ../Doc/library/locale.rst:491 msgid "" "This is a symbolic constant used for different values returned by :func:" "`localeconv`." msgstr "" +"Ceci est une constante symbolique utilisée pour différentes valeurs " +"renvoyées par :func:`localeconv`." -#: ../Doc/library/locale.rst:497 +#: ../Doc/library/locale.rst:495 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/locale.rst:510 +#: ../Doc/library/locale.rst:508 msgid "Background, details, hints, tips and caveats" -msgstr "" +msgstr "Contexte, détails, conseils, astuces et mises en garde" -#: ../Doc/library/locale.rst:512 +#: ../Doc/library/locale.rst:510 msgid "" "The C standard defines the locale as a program-wide property that may be " "relatively expensive to change. On top of that, some implementation are " "broken in such a way that frequent locale changes may cause core dumps. " "This makes the locale somewhat painful to use correctly." msgstr "" +"La norme C définie les paramètres régionaux comme une propriété à l'échelle " +"d'un programme, qui peut être relativement coûteuse à changer. En plus de " +"cela, certaines implémentations ne fonctionnent pas car des changements " +"fréquents de paramètres régionaux peuvent causer des *core dumps*. Cela " +"rend l'utilisation correcte de ces paramètres quelque peu pénible." -#: ../Doc/library/locale.rst:517 +#: ../Doc/library/locale.rst:515 msgid "" "Initially, when a program is started, the locale is the ``C`` locale, no " "matter what the user's preferred locale is. There is one exception: the :" @@ -734,16 +961,28 @@ msgid "" "explicitly say that it wants the user's preferred locale settings for other " "categories by calling ``setlocale(LC_ALL, '')``." msgstr "" +"Initialement, lorsqu'un programme est démarré, les paramètres régionaux " +"``C`` sont utilisés, peu importe les réglages de l'utilisateur. Il y a " +"toutefois une exception : la catégorie :data:`LC_CTYPE` est modifiée au " +"démarrage pour définir l'encodage des paramètres régionaux actuels comme " +"celui défini par l'utilisateur. Le programme doit explicitement dire qu'il " +"veut utiliser les réglages de l'utilisateur pour les autres catégories, en " +"appelant ``setlocale(LC_ALL, '')``." -#: ../Doc/library/locale.rst:524 +#: ../Doc/library/locale.rst:522 msgid "" "It is generally a bad idea to call :func:`setlocale` in some library " "routine, since as a side effect it affects the entire program. Saving and " "restoring it is almost as bad: it is expensive and affects other threads " "that happen to run before the settings have been restored." msgstr "" +"C'est généralement une mauvaise idée d'appeler :func:`setlocale` dans une " +"routine de bibliothèque car cela a pour effet secondaire d'affecter le " +"programme entier. Sauvegarder et restaurer les paramètres est presque aussi " +"mauvais : c'est coûteux et cela affecte d'autres fils d'exécutions qui " +"s'exécutent avant que les paramètres n'aient été restaurés." -#: ../Doc/library/locale.rst:529 +#: ../Doc/library/locale.rst:527 msgid "" "If, when coding a module for general use, you need a locale independent " "version of an operation that is affected by the locale (such as certain " @@ -753,15 +992,26 @@ msgid "" "you document that your module is not compatible with non-\\ ``C`` locale " "settings." msgstr "" +"Si, lors du développement d'un module à usage général, vous avez besoin " +"d'une version indépendante des paramètres régionaux pour une opération y " +"étant sensible (comme c'est le cas pour certains formats utilisés avec :func:" +"`time.strftime`), vous devez trouver un moyen de le faire sans utiliser la " +"routine de la bibliothèque standard. Le mieux est encore de se convaincre " +"que l'usage des paramètres régionaux est une bonne chose. Ce n'est qu'en " +"dernier recours que vous devez documenter que votre module n'est pas " +"compatible avec les réglages du paramètre régional ``C``." -#: ../Doc/library/locale.rst:536 +#: ../Doc/library/locale.rst:534 msgid "" "The only way to perform numeric operations according to the locale is to use " "the special functions defined by this module: :func:`atof`, :func:`atoi`, :" "func:`.format`, :func:`.str`." msgstr "" +"La seule façon d'effectuer des opérations numériques conformément aux " +"paramètres régionaux est d'utiliser les fonctions spéciales définies par ce " +"module : :func:`atof`, :func:`atoi`, :func:`.format`, :func:`.str`." -#: ../Doc/library/locale.rst:540 +#: ../Doc/library/locale.rst:538 msgid "" "There is no way to perform case conversions and character classifications " "according to the locale. For (Unicode) text strings these are done " @@ -771,20 +1021,32 @@ msgid "" "converted or considered part of a character class such as letter or " "whitespace." msgstr "" +"Il n'y a aucun moyen d'effectuer des conversions de casse et des " +"classifications de caractères en fonction des paramètres régionaux. Pour " +"les chaînes de caractères (Unicode), celles-ci se font uniquement en " +"fonction de la valeur du caractère, tandis que pour les chaînes d'octets, " +"les conversions et les classifications se font en fonction de la valeur " +"ASCII de l'octet, et les octets dont le bit de poids fort est à 1 (c'est-à-" +"dire les octets non ASCII) ne sont jamais convertis ou considérés comme " +"faisant partie d'une classe de caractères comme une lettre ou une espace." -#: ../Doc/library/locale.rst:551 +#: ../Doc/library/locale.rst:549 msgid "For extension writers and programs that embed Python" -msgstr "" +msgstr "Pour les auteurs d'extensions et les programmes qui intègrent Python" -#: ../Doc/library/locale.rst:553 +#: ../Doc/library/locale.rst:551 msgid "" "Extension modules should never call :func:`setlocale`, except to find out " "what the current locale is. But since the return value can only be used " "portably to restore it, that is not very useful (except perhaps to find out " "whether or not the locale is ``C``)." msgstr "" +"Les modules d'extensions ne devraient jamais appeler :func:`setlocale`, sauf " +"pour connaître le paramètre régional actuel. Mais comme la valeur renvoyée " +"ne peut être utilisée que pour le restaurer, ce n'est pas très utile (sauf " +"peut-être pour savoir si le paramètre régional est défini à ``C`` ou non)." -#: ../Doc/library/locale.rst:558 +#: ../Doc/library/locale.rst:556 msgid "" "When Python code uses the :mod:`locale` module to change the locale, this " "also affects the embedding application. If the embedding application " @@ -793,12 +1055,19 @@ msgid "" "file:`config.c` file, and make sure that the :mod:`_locale` module is not " "accessible as a shared library." msgstr "" +"Lorsque le code Python utilise le module :mod:`locale` pour changer le " +"paramètre régional, cela affecte également l'application intégrée. Si " +"l'application intégrée ne souhaite pas que cela se produise, elle doit " +"supprimer le module d'extension :mod:`_locale` (qui fait tout le travail) de " +"la table des modules natifs se trouvant dans le fichier :file:`config.c`, et " +"s'assurer que le module :mod:`_locale` n'est pas accessible en tant que " +"bibliothèque partagée." -#: ../Doc/library/locale.rst:569 +#: ../Doc/library/locale.rst:567 msgid "Access to message catalogs" -msgstr "" +msgstr "Accéder aux catalogues de messages" -#: ../Doc/library/locale.rst:577 +#: ../Doc/library/locale.rst:575 msgid "" "The locale module exposes the C library's gettext interface on systems that " "provide this interface. It consists of the functions :func:`!gettext`, :" @@ -808,8 +1077,14 @@ msgid "" "binary format for message catalogs, and the C library's search algorithms " "for locating message catalogs." msgstr "" +"Le module *locale* expose l'interface *gettext* de la bibliothèque C sur les " +"systèmes qui fournissent cette interface. Il se compose des fonctions :func:" +"`!gettext`, :func:`!dgettext`, :func:`!dcgettext`, :func:`!textdomain`, :" +"func:`!bindtextdomain` et :func:`!bind_textdomain_codeset`. Elles sont " +"similaires aux fonctions du module :mod:`gettext`, mais utilisent le format " +"binaire de la bibliothèque C pour les catalogues de messages." -#: ../Doc/library/locale.rst:584 +#: ../Doc/library/locale.rst:582 msgid "" "Python applications should normally find no need to invoke these functions, " "and should use :mod:`gettext` instead. A known exception to this rule are " @@ -818,3 +1093,10 @@ msgid "" "necessary to bind the text domain, so that the libraries can properly locate " "their message catalogs." msgstr "" +"Les applications Python ne devraient normalement pas avoir besoin de faire " +"appel à ces fonctions, mais devraient plutôt utiliser :mod:`gettext`. Une " +"exception connue pour cette règle concerne les applications qui sont liées " +"avec des bibliothèques C supplémentaires faisant appel à :c:func:`gettext` " +"ou :c:func:`dcgettext`. Pour ces applications, il peut être nécessaire de " +"lier le domaine du texte, afin que les bibliothèques puissent régionaliser " +"correctement leurs catalogues de messages." diff --git a/library/logging.config.po b/library/logging.config.po index 941ee457a..3e275727e 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -26,18 +26,20 @@ msgstr "" msgid "" "This page contains only reference information. For tutorials, please see" msgstr "" +"Cette page contient uniquement des informations de référence. Pour des " +"tutoriels, veuillez consulter" #: ../Doc/library/logging.config.rst:17 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.config.rst:18 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.config.rst:19 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.config.rst:23 msgid "This section describes the API for configuring the logging module." @@ -135,7 +137,7 @@ msgstr "" #: ../Doc/library/logging.config.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.config.rst:90 msgid "" @@ -158,9 +160,9 @@ msgstr "" msgid "" "If specified as ``False``, loggers which exist when this call is made are " "left enabled. The default is ``True`` because this enables old behaviour in " -"a backward-compatible way. This behaviour is to disable any existing loggers " -"unless they or their ancestors are explicitly named in the logging " -"configuration." +"a backward-compatible way. This behaviour is to disable any existing non-" +"root loggers unless they or their ancestors are explicitly named in the " +"logging configuration." msgstr "" #: ../Doc/library/logging.config.rst:114 @@ -422,7 +424,7 @@ msgstr "" #: ../Doc/library/logging.config.rst:311 msgid "" -"*disable_existing_loggers* - whether any existing loggers are to be " +"*disable_existing_loggers* - whether any existing non-root loggers are to be " "disabled. This setting mirrors the parameter of the same name in :func:" "`fileConfig`. If absent, this parameter defaults to ``True``. This value is " "ignored if *incremental* is ``True``." @@ -555,7 +557,7 @@ msgstr "" #: ../Doc/library/logging.config.rst:453 msgid "and::" -msgstr "et  : ::" +msgstr "et ::" #: ../Doc/library/logging.config.rst:460 msgid "" @@ -853,16 +855,16 @@ msgstr "" #: ../Doc/library/logging.config.rst:815 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Module :mod:`logging`" #: ../Doc/library/logging.config.rst:815 msgid "API reference for the logging module." -msgstr "" +msgstr "Référence d'API pour le module de journalisation." #: ../Doc/library/logging.config.rst:817 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Module :mod:`logging.handlers`" #: ../Doc/library/logging.config.rst:818 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestionnaires utiles inclus avec le module de journalisation." diff --git a/library/logging.handlers.po b/library/logging.handlers.po index e4d5f1cf9..4da950d1c 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,28 +16,30 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:2 msgid ":mod:`logging.handlers` --- Logging handlers" -msgstr "" +msgstr ":mod:`logging.handlers` — Gestionnaires de journalisation" #: ../Doc/library/logging.handlers.rst:10 msgid "**Source code:** :source:`Lib/logging/handlers.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/logging/handlers.py`" #: ../Doc/library/logging.handlers.rst:14 msgid "" "This page contains only reference information. For tutorials, please see" msgstr "" +"Cette page contient uniquement des informations de référence. Pour des " +"tutoriels, veuillez consulter" #: ../Doc/library/logging.handlers.rst:17 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.handlers.rst:18 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.handlers.rst:19 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.handlers.rst:25 msgid "" @@ -46,10 +48,15 @@ msgid "" "`NullHandler`) are actually defined in the :mod:`logging` module itself, but " "have been documented here along with the other handlers." msgstr "" +"Les gestionnaires suivants, très utiles, sont fournis dans le paquet. Notez " +"que trois des gestionnaires (:class:`StreamHandler`, :class:`FileHandler` " +"et :class:`NullHandler`) sont en réalité définis dans le module :mod:" +"`logging` lui-même, mais qu’ils sont documentés ici avec les autres " +"gestionnaires." #: ../Doc/library/logging.handlers.rst:33 msgid "StreamHandler" -msgstr "" +msgstr "Gestionnaire à flux — *StreamHandler*" #: ../Doc/library/logging.handlers.rst:35 msgid "" @@ -58,6 +65,10 @@ msgid "" "or any file-like object (or, more precisely, any object which supports :meth:" "`write` and :meth:`flush` methods)." msgstr "" +"La classe :class:`StreamHandler`, du paquet :mod:`logging`, envoie les " +"sorties de journalisation dans des flux tels que *sys.stdout*, *sys.stderr* " +"ou n’importe quel objet fichier-compatible (ou, plus précisément, tout objet " +"qui gère les méthodes :meth:`write` et :meth:`flush`)." #: ../Doc/library/logging.handlers.rst:43 msgid "" @@ -65,6 +76,9 @@ msgid "" "specified, the instance will use it for logging output; otherwise, *sys." "stderr* will be used." msgstr "" +"Renvoie une nouvelle instance de la classe :class:`StreamHandler`. Si " +"*stream* est spécifié, l’instance l’utilise pour les sorties de " +"journalisation ; autrement elle utilise *sys.stderr*." #: ../Doc/library/logging.handlers.rst:50 msgid "" @@ -80,28 +94,34 @@ msgid "" "`close` method is inherited from :class:`~logging.Handler` and so does no " "output, so an explicit :meth:`flush` call may be needed at times." msgstr "" +"Purge le flux en appelant sa méthode :meth:`flush`. Notez que la méthode :" +"meth:`close` est héritée de :class:`~logging.Handler` donc elle n'écrit " +"rien. Par conséquent, un appel explicite à :meth:`flush` peut parfois " +"s'avérer nécessaire." #: ../Doc/library/logging.handlers.rst:64 msgid "" "Sets the instance's stream to the specified value, if it is different. The " "old stream is flushed before the new stream is set." msgstr "" +"Définit le flux de l’instance à la valeur spécifiée, si elle est différente. " +"L’ancien flux est purgé avant que le nouveau flux ne soit établi." #: ../Doc/library/logging.handlers.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.handlers.rst:67 msgid "The stream that the handler should use." -msgstr "" +msgstr "Le flux que le gestionnaire doit utiliser." #: ../Doc/library/logging.handlers.rst:0 msgid "Returns" -msgstr "" +msgstr "Renvoie" #: ../Doc/library/logging.handlers.rst:69 msgid "the old stream, if the stream was changed, or *None* if it wasn't." -msgstr "" +msgstr "l’ancien flux, si le flux a été changé, ou *None* s’il ne l’a pas été." #: ../Doc/library/logging.handlers.rst:74 msgid "" @@ -114,7 +134,7 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:85 msgid "FileHandler" -msgstr "" +msgstr "Gestionnaire à fichier — *FileHandler*" #: ../Doc/library/logging.handlers.rst:87 msgid "" @@ -122,6 +142,9 @@ msgid "" "sends logging output to a disk file. It inherits the output functionality " "from :class:`StreamHandler`." msgstr "" +"La classe :class:`FileHandler`, du paquet :mod:`logging`, envoie les sorties " +"de journalisation dans un fichier. Elle hérite des fonctionnalités de sortie " +"de :class:`StreamHandler`." #: ../Doc/library/logging.handlers.rst:94 msgid "" @@ -141,18 +164,20 @@ msgid "" "As well as string values, :class:`~pathlib.Path` objects are also accepted " "for the *filename* argument." msgstr "" +"L'argument *filename* accepte les objets :class:`~pathlib.Path` aussi bien " +"que les chaînes de caractères." #: ../Doc/library/logging.handlers.rst:106 msgid "Closes the file." -msgstr "" +msgstr "Ferme le fichier." #: ../Doc/library/logging.handlers.rst:111 msgid "Outputs the record to the file." -msgstr "" +msgstr "Écrit l’enregistrement dans le fichier." #: ../Doc/library/logging.handlers.rst:117 msgid "NullHandler" -msgstr "" +msgstr "Gestionnaire à puits sans fond — *NullHandler*" #: ../Doc/library/logging.handlers.rst:121 msgid "" @@ -160,31 +185,38 @@ msgid "" "does not do any formatting or output. It is essentially a 'no-op' handler " "for use by library developers." msgstr "" +"La classe :class:`NullHandler`, située dans le paquet principal :mod:" +"`logging`, ne produit aucun formatage ni sortie. C’est essentiellement un " +"gestionnaire « fantôme » destiné aux développeurs de bibliothèques." #: ../Doc/library/logging.handlers.rst:127 msgid "Returns a new instance of the :class:`NullHandler` class." -msgstr "" +msgstr "Renvoie une nouvelle instance de la classe :class:`NullHandler`." #: ../Doc/library/logging.handlers.rst:131 #: ../Doc/library/logging.handlers.rst:135 msgid "This method does nothing." -msgstr "" +msgstr "Cette méthode ne fait rien." #: ../Doc/library/logging.handlers.rst:139 msgid "" "This method returns ``None`` for the lock, since there is no underlying I/O " "to which access needs to be serialized." msgstr "" +"Cette méthode renvoie ``None`` pour le verrou, étant donné qu’il n’y a aucun " +"flux d'entrée-sortie sous-jacent dont l’accès doit être sérialisé." #: ../Doc/library/logging.handlers.rst:143 msgid "" "See :ref:`library-config` for more information on how to use :class:" "`NullHandler`." msgstr "" +"Voir :ref:`library-config` pour plus d’information sur l'utilisation de :" +"class:`NullHandler`." #: ../Doc/library/logging.handlers.rst:149 msgid "WatchedFileHandler" -msgstr "" +msgstr "Gestionnaire à fichier avec surveillance — *WatchedFileHandler*" #: ../Doc/library/logging.handlers.rst:153 msgid "" @@ -193,6 +225,10 @@ msgid "" "logging to. If the file changes, it is closed and reopened using the file " "name." msgstr "" +"La classe :class:`WatchedFileHandler`, située dans le module :mod:`logging." +"handlers`, est un :class:`FileHandler` qui surveille le fichier dans lequel " +"il journalise. Si le fichier change, il est fermé et rouvert en utilisant le " +"nom du fichier." #: ../Doc/library/logging.handlers.rst:157 msgid "" @@ -203,6 +239,14 @@ msgid "" "changed.) If the file has changed, the old file stream is closed, and the " "file opened to get a new stream." msgstr "" +"Un changement du fichier peut arriver à cause de l’utilisation de programmes " +"tels que *newsyslog* ou *logrotate* qui assurent le roulement des fichiers " +"de journalisation. Ce gestionnaire, destiné à une utilisation sous Unix/" +"Linux, surveille le fichier pour voir s’il a changé depuis la dernière " +"écriture (un fichier est réputé avoir changé si son nœud d’index ou le " +"périphérique auquel il est rattaché a changé). Si le fichier a changé, " +"l’ancien flux vers ce fichier est fermé, et le fichier est ouvert pour " +"établir un nouveau flux." #: ../Doc/library/logging.handlers.rst:164 msgid "" @@ -212,6 +256,12 @@ msgid "" "*ST_INO* is not supported under Windows; :func:`~os.stat` always returns " "zero for this value." msgstr "" +"Ce gestionnaire n’est pas approprié pour une utilisation sous *Windows*, car " +"sous *Windows* les fichiers de journalisation ouverts ne peuvent être ni " +"déplacés, ni renommés — la journalisation ouvre les fichiers avec des " +"verrous exclusifs — de telle sorte qu’il n’y a pas besoin d’un tel " +"gestionnaire. En outre, *ST_INO* n’est pas géré par *Windows* ; :func:`~os." +"stat` renvoie toujours zéro pour cette valeur." #: ../Doc/library/logging.handlers.rst:173 msgid "" @@ -229,16 +279,21 @@ msgid "" "flushed and closed and the file opened again, typically as a precursor to " "outputting the record to the file." msgstr "" +"Vérifie si le fichier a changé. Si c’est le cas, le flux existant est purgé " +"et fermé et le fichier est rouvert, généralement avant d'effectuer " +"l’écriture de l'enregistrement dans le fichier." #: ../Doc/library/logging.handlers.rst:194 msgid "" "Outputs the record to the file, but first calls :meth:`reopenIfNeeded` to " "reopen the file if it has changed." msgstr "" +"Écrit l’enregistrement dans le fichier, mais appelle d’abord :meth:" +"`reopenIfNeeded` pour rouvrir le fichier s’il a changé." #: ../Doc/library/logging.handlers.rst:200 msgid "BaseRotatingHandler" -msgstr "" +msgstr "Base des gestionnaires à roulement *BaseRotatingHandler*" #: ../Doc/library/logging.handlers.rst:202 msgid "" @@ -248,10 +303,17 @@ msgid "" "need to instantiate this class, but it has attributes and methods you may " "need to override." msgstr "" +"La classe :class:`BaseRotatingHandler`, située dans le module :mod:`logging." +"handlers`, est la classe de base pour les gestionnaires à roulement, :class:" +"`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Vous ne devez " +"pas initialiser cette classe, mais elle a des attributs et des méthodes que " +"vous devrez peut-être surcharger." #: ../Doc/library/logging.handlers.rst:210 msgid "The parameters are as for :class:`FileHandler`. The attributes are:" msgstr "" +"Les paramètres sont les mêmes que pour :class:`FileHandler`. Les attributs " +"sont :" #: ../Doc/library/logging.handlers.rst:214 msgid "" @@ -259,6 +321,9 @@ msgid "" "delegates to this callable. The parameters passed to the callable are those " "passed to :meth:`rotation_filename`." msgstr "" +"Si cet attribut est défini en tant qu’appelable, la méthode :meth:" +"`rotation_filename` se rapporte à cet appelable. Les paramètres passés à " +"l’appelable sont ceux passés à :meth:`rotation_filename`." #: ../Doc/library/logging.handlers.rst:218 msgid "" @@ -267,6 +332,10 @@ msgid "" "every time for a given input, otherwise the rollover behaviour may not work " "as expected." msgstr "" +"La fonction *namer* est appelée pas mal de fois durant le roulement, de " +"telle sorte qu’elle doit être aussi simple et rapide que possible. Elle doit " +"aussi renvoyer toujours la même sortie pour une entrée donnée, autrement le " +"comportement du roulement pourrait être différent de celui attendu." #: ../Doc/library/logging.handlers.rst:228 msgid "" @@ -274,14 +343,18 @@ msgid "" "to this callable. The parameters passed to the callable are those passed " "to :meth:`rotate`." msgstr "" +"Si cet attribut est défini en tant qu’appelable, cet appelable se substitue " +"à la méthode :meth:`rotate`. Les paramètres passés à l’appelable sont ceux " +"passés à :meth:`rotate`." #: ../Doc/library/logging.handlers.rst:236 msgid "Modify the filename of a log file when rotating." msgstr "" +"Modifie le nom du fichier d’un fichier de journalisation lors du roulement." #: ../Doc/library/logging.handlers.rst:238 msgid "This is provided so that a custom filename can be provided." -msgstr "" +msgstr "Cette méthode sert à pouvoir produire un nom de fichier personnalisé." #: ../Doc/library/logging.handlers.rst:240 msgid "" @@ -289,14 +362,17 @@ msgid "" "it's callable, passing the default name to it. If the attribute isn't " "callable (the default is ``None``), the name is returned unchanged." msgstr "" +"L’implémentation par défaut appelle l’attribut *namer* du gestionnaire, si " +"c’est un appelable, lui passant le nom par défaut. Si l’attribut n’est pas " +"un appelable (le défaut est ``None``), le nom est renvoyé tel quel." #: ../Doc/library/logging.handlers.rst:244 msgid "The default name for the log file." -msgstr "" +msgstr "Le nom par défaut du fichier de journalisation." #: ../Doc/library/logging.handlers.rst:251 msgid "When rotating, rotate the current log." -msgstr "" +msgstr "Lors du roulement, effectue le roulement du journal courant." #: ../Doc/library/logging.handlers.rst:253 msgid "" @@ -305,17 +381,25 @@ msgid "" "isn't callable (the default is ``None``), the source is simply renamed to " "the destination." msgstr "" +"L’implémentation par défaut appelle l’attribut *rotator* du gestionnaire, si " +"c’est un appelable, lui passant les arguments *source* et *dest*. Si " +"l’attribut n’est pas un appelable (le défaut est ``None``), le nom de la " +"source est simplement renommé avec la destination." #: ../Doc/library/logging.handlers.rst:258 msgid "" "The source filename. This is normally the base filename, e.g. 'test.log'." msgstr "" +"Le nom du fichier source. Il s’agit normalement du nom du fichier, par " +"exemple ``\"test.log\"``." #: ../Doc/library/logging.handlers.rst:260 msgid "" "The destination filename. This is normally what the source is rotated to, e." "g. 'test.log.1'." msgstr "" +"Le nom du fichier de destination. Il s’agit normalement du nom donné à la " +"source après le roulement, par exemple ``\"test.log.1\"``." #: ../Doc/library/logging.handlers.rst:265 msgid "" @@ -326,26 +410,36 @@ msgid "" "exception during an :meth:`emit` call, i.e. via the :meth:`handleError` " "method of the handler." msgstr "" +"La raison d’être de ces attributs est de vous épargner la création d’une " +"sous-classe — vous pouvez utiliser les mêmes appels pour des instances de :" +"class:`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Si le " +"*namer* ou le *rotator* appelable lève une exception, ce sera géré de la " +"même manière que n’importe quelle exception durant un appel :meth:`emit`, " +"c'est-à-dire par la méthode :meth:`handleError` du gestionnaire." #: ../Doc/library/logging.handlers.rst:272 msgid "" "If you need to make more significant changes to rotation processing, you can " "override the methods." msgstr "" +"Si vous avez besoin de faire d’importantes modifications au processus de " +"roulement, surchargez les méthodes." #: ../Doc/library/logging.handlers.rst:275 msgid "For an example, see :ref:`cookbook-rotator-namer`." -msgstr "" +msgstr "Pour un exemple, voir :ref:`cookbook-rotator-namer`." #: ../Doc/library/logging.handlers.rst:281 msgid "RotatingFileHandler" -msgstr "" +msgstr "Gestionnaire à roulement de fichiers — *RotatingFileHandler*" #: ../Doc/library/logging.handlers.rst:283 msgid "" "The :class:`RotatingFileHandler` class, located in the :mod:`logging." "handlers` module, supports rotation of disk log files." msgstr "" +"La classe :class:`RotatingFileHandler`, située dans le module :mod:`logging." +"handlers`, gère le roulement des fichiers de journalisation sur disque." #: ../Doc/library/logging.handlers.rst:289 msgid "" @@ -374,21 +468,41 @@ msgid "" "log.1`, and if files :file:`app.log.1`, :file:`app.log.2`, etc. exist, then " "they are renamed to :file:`app.log.2`, :file:`app.log.3` etc. respectively." msgstr "" +"Utilisez les valeurs *maxBytes* et *backupCount* pour autoriser le roulement " +"du fichier (:dfn:`rollover`) à une taille prédéterminée. Quand la taille " +"limite est sur le point d’être dépassée, le fichier est fermé et un nouveau " +"fichier est discrètement ouvert en tant que sortie. Un roulement se produit " +"dès que le fichier de journalisation actuel atteint presque une taille de " +"*maxBytes* ; si *maxBytes* ou *backupCount* est à 0, le roulement ne se " +"produit jamais, donc en temps normal il convient de définir *backupCount* à " +"au moins 1, et avoir une valeur de *maxBytes* non nulle. Quand *backupCount* " +"est non nul, le système sauvegarde les anciens fichiers de journalisation en " +"leur ajoutant au nom du fichier, les suffixes ``\".1\"``, ``\".2\"`` et " +"ainsi de suite. Par exemple, avec un *backupCount* de 5 et :file:`app.log` " +"comme radical du fichier, vous obtiendrez :file:`app.log`, :file:`app." +"log.1`, :file:`app.log.2`, jusqu’à :file:`app.log.5`. Le fichier dans lequel " +"on écrit est toujours :file:`app.log`. Quand ce fichier est rempli, il est " +"fermé et renommé en :file:`app.log.1`, et si les fichiers :file:`app." +"log.1`, :file:`app.log.2`, etc. existent, alors ils sont renommés " +"respectivement en :file:`app.log.2`, :file:`app.log.3` etc." #: ../Doc/library/logging.handlers.rst:316 #: ../Doc/library/logging.handlers.rst:416 msgid "Does a rollover, as described above." -msgstr "" +msgstr "Effectue un roulement, comme décrit au-dessus." #: ../Doc/library/logging.handlers.rst:321 msgid "" "Outputs the record to the file, catering for rollover as described " "previously." msgstr "" +"Écrit l'enregistrement dans le fichier, effectuant un roulement au besoin " +"comme décrit précédemment." #: ../Doc/library/logging.handlers.rst:327 msgid "TimedRotatingFileHandler" msgstr "" +"Gestionnaire à roulement de fichiers périodique — *TimedRotatingFileHandler*" #: ../Doc/library/logging.handlers.rst:329 msgid "" @@ -396,6 +510,9 @@ msgid "" "handlers` module, supports rotation of disk log files at certain timed " "intervals." msgstr "" +"La classe :class:`TimedRotatingFileHandler`, située dans le module :mod:" +"`logging.handlers`, gère le roulement des fichiers de journalisation sur le " +"disque à un intervalle de temps spécifié." #: ../Doc/library/logging.handlers.rst:336 msgid "" @@ -404,12 +521,19 @@ msgid "" "also sets the filename suffix. Rotating happens based on the product of " "*when* and *interval*." msgstr "" +"Renvoie une nouvelle instance de la classe :class:" +"`TimedRotatingFileHandler`. Le fichier spécifié est ouvert et utilisé en " +"tant que flux de sortie pour la journalisation. Au moment du roulement, il " +"met également à jour le suffixe du nom du fichier. Le roulement se produit " +"sur la base combinée de *when* et *interval*." #: ../Doc/library/logging.handlers.rst:341 msgid "" "You can use the *when* to specify the type of *interval*. The list of " "possible values is below. Note that they are not case sensitive." msgstr "" +"Utilisez le *when* pour spécifier le type de l’*interval*. La liste des " +"valeurs possibles est ci-dessous. Notez qu’elles sont sensibles à la casse." #: ../Doc/library/logging.handlers.rst:345 msgid "Value" @@ -417,11 +541,11 @@ msgstr "Valeur" #: ../Doc/library/logging.handlers.rst:345 msgid "Type of interval" -msgstr "" +msgstr "Type d’intervalle" #: ../Doc/library/logging.handlers.rst:345 msgid "If/how *atTime* is used" -msgstr "" +msgstr "Si/comment *atTime* est utilisé" #: ../Doc/library/logging.handlers.rst:347 msgid "``'S'``" @@ -429,7 +553,7 @@ msgstr "``'S'``" #: ../Doc/library/logging.handlers.rst:347 msgid "Seconds" -msgstr "" +msgstr "Secondes" #: ../Doc/library/logging.handlers.rst:347 #: ../Doc/library/logging.handlers.rst:349 @@ -444,7 +568,7 @@ msgstr "``'M'``" #: ../Doc/library/logging.handlers.rst:349 msgid "Minutes" -msgstr "" +msgstr "Minutes" #: ../Doc/library/logging.handlers.rst:351 msgid "``'H'``" @@ -452,7 +576,7 @@ msgstr "``'H'``" #: ../Doc/library/logging.handlers.rst:351 msgid "Hours" -msgstr "" +msgstr "Heures" #: ../Doc/library/logging.handlers.rst:353 msgid "``'D'``" @@ -460,7 +584,7 @@ msgstr "``'D'``" #: ../Doc/library/logging.handlers.rst:353 msgid "Days" -msgstr "" +msgstr "Jours" #: ../Doc/library/logging.handlers.rst:355 msgid "``'W0'-'W6'``" @@ -468,12 +592,12 @@ msgstr "``'W0'-'W6'``" #: ../Doc/library/logging.handlers.rst:355 msgid "Weekday (0=Monday)" -msgstr "" +msgstr "Jour de la semaine (0=lundi)" #: ../Doc/library/logging.handlers.rst:355 #: ../Doc/library/logging.handlers.rst:358 msgid "Used to compute initial rollover time" -msgstr "" +msgstr "Utilisé pour calculer le moment du roulement" #: ../Doc/library/logging.handlers.rst:358 msgid "``'midnight'``" @@ -482,6 +606,8 @@ msgstr "``'midnight'``" #: ../Doc/library/logging.handlers.rst:358 msgid "Roll over at midnight, if *atTime* not specified, else at time *atTime*" msgstr "" +"Roulement du fichier à minuit, si *atTime* n’est pas spécifié, sinon à " +"l’heure *atTime*" #: ../Doc/library/logging.handlers.rst:363 msgid "" @@ -489,6 +615,10 @@ msgid "" "Tuesday, and so on up to 'W6' for Sunday. In this case, the value passed for " "*interval* isn't used." msgstr "" +"Lors de l’utilisation d’un roulement basé sur les jours de la semaine, " +"définir *W0* pour lundi, *W1* pour mardi, et ainsi de suite jusqu’à *W6* " +"pour dimanche. Dans ce cas, la valeur indiquée pour *interval* n’est pas " +"utilisée." #: ../Doc/library/logging.handlers.rst:367 msgid "" @@ -496,6 +626,10 @@ msgid "" "The extensions are date-and-time based, using the strftime format ``%Y-%m-%d_" "%H-%M-%S`` or a leading portion thereof, depending on the rollover interval." msgstr "" +"Le système sauvegarde les anciens fichiers de journalisation en ajoutant une " +"extension au nom du fichier. Les extensions sont basées sur la date et " +"l’heure, en utilisation le format *strftime* ``%Y-%m-%d_%H-%M-%S`` ou le " +"début de celui-ci, selon l’intervalle du roulement." #: ../Doc/library/logging.handlers.rst:372 msgid "" @@ -503,6 +637,10 @@ msgid "" "is created), the last modification time of an existing log file, or else the " "current time, is used to compute when the next rotation will occur." msgstr "" +"Lors du premier calcul du roulement suivant (quand le gestionnaire est " +"créé), la dernière date de modification d’un fichier de journalisation " +"existant, ou sinon la date actuelle, est utilisée pour calculer la date du " +"prochain roulement." #: ../Doc/library/logging.handlers.rst:376 msgid "" @@ -612,10 +750,11 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:472 msgid "" "Pickles the record's attribute dictionary in binary format with a length " -"prefix, and returns it ready for transmission across the socket." +"prefix, and returns it ready for transmission across the socket. The details " +"of this operation are equivalent to::" msgstr "" -#: ../Doc/library/logging.handlers.rst:475 +#: ../Doc/library/logging.handlers.rst:480 msgid "" "Note that pickles aren't completely secure. If you are concerned about " "security, you may want to override this method to implement a more secure " @@ -624,13 +763,20 @@ msgid "" "objects on the receiving end." msgstr "" -#: ../Doc/library/logging.handlers.rst:484 +#: ../Doc/library/logging.handlers.rst:489 msgid "" -"Send a pickled string *packet* to the socket. This function allows for " -"partial sends which can happen when the network is busy." +"Send a pickled byte-string *packet* to the socket. The format of the sent " +"byte-string is as described in the documentation for :meth:`~SocketHandler." +"makePickle`." msgstr "" -#: ../Doc/library/logging.handlers.rst:490 +#: ../Doc/library/logging.handlers.rst:493 +msgid "" +"This function allows for partial sends, which can happen when the network is " +"busy." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:499 msgid "" "Tries to create a socket; on failure, uses an exponential back-off " "algorithm. On initial failure, the handler will drop the message it was " @@ -641,23 +787,23 @@ msgid "" "each time up to a maximum of 30 seconds." msgstr "" -#: ../Doc/library/logging.handlers.rst:498 +#: ../Doc/library/logging.handlers.rst:507 msgid "This behaviour is controlled by the following handler attributes:" msgstr "" -#: ../Doc/library/logging.handlers.rst:500 +#: ../Doc/library/logging.handlers.rst:509 msgid "``retryStart`` (initial delay, defaulting to 1.0 seconds)." msgstr "" -#: ../Doc/library/logging.handlers.rst:501 +#: ../Doc/library/logging.handlers.rst:510 msgid "``retryFactor`` (multiplier, defaulting to 2.0)." msgstr "" -#: ../Doc/library/logging.handlers.rst:502 +#: ../Doc/library/logging.handlers.rst:511 msgid "``retryMax`` (maximum delay, defaulting to 30.0 seconds)." msgstr "" -#: ../Doc/library/logging.handlers.rst:504 +#: ../Doc/library/logging.handlers.rst:513 msgid "" "This means that if the remote listener starts up *after* the handler has " "been used, you could lose messages (since the handler won't even attempt a " @@ -665,31 +811,31 @@ msgid "" "during the delay period)." msgstr "" -#: ../Doc/library/logging.handlers.rst:513 +#: ../Doc/library/logging.handlers.rst:522 msgid "DatagramHandler" msgstr "" -#: ../Doc/library/logging.handlers.rst:515 +#: ../Doc/library/logging.handlers.rst:524 msgid "" "The :class:`DatagramHandler` class, located in the :mod:`logging.handlers` " "module, inherits from :class:`SocketHandler` to support sending logging " "messages over UDP sockets." msgstr "" -#: ../Doc/library/logging.handlers.rst:522 +#: ../Doc/library/logging.handlers.rst:531 msgid "" "Returns a new instance of the :class:`DatagramHandler` class intended to " "communicate with a remote machine whose address is given by *host* and " "*port*." msgstr "" -#: ../Doc/library/logging.handlers.rst:525 +#: ../Doc/library/logging.handlers.rst:534 msgid "" "If ``port`` is specified as ``None``, a Unix domain socket is created using " "the value in ``host`` - otherwise, a UDP socket is created." msgstr "" -#: ../Doc/library/logging.handlers.rst:531 +#: ../Doc/library/logging.handlers.rst:540 msgid "" "Pickles the record's attribute dictionary and writes it to the socket in " "binary format. If there is an error with the socket, silently drops the " @@ -697,27 +843,29 @@ msgid "" "LogRecord`, use the :func:`~logging.makeLogRecord` function." msgstr "" -#: ../Doc/library/logging.handlers.rst:540 +#: ../Doc/library/logging.handlers.rst:549 msgid "" "The factory method of :class:`SocketHandler` is here overridden to create a " "UDP socket (:const:`socket.SOCK_DGRAM`)." msgstr "" -#: ../Doc/library/logging.handlers.rst:546 -msgid "Send a pickled string to a socket." +#: ../Doc/library/logging.handlers.rst:555 +msgid "" +"Send a pickled byte-string to a socket. The format of the sent byte-string " +"is as described in the documentation for :meth:`SocketHandler.makePickle`." msgstr "" -#: ../Doc/library/logging.handlers.rst:552 +#: ../Doc/library/logging.handlers.rst:562 msgid "SysLogHandler" msgstr "" -#: ../Doc/library/logging.handlers.rst:554 +#: ../Doc/library/logging.handlers.rst:564 msgid "" "The :class:`SysLogHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a remote or local Unix syslog." msgstr "" -#: ../Doc/library/logging.handlers.rst:560 +#: ../Doc/library/logging.handlers.rst:570 msgid "" "Returns a new instance of the :class:`SysLogHandler` class intended to " "communicate with a remote Unix machine whose address is given by *address* " @@ -732,7 +880,7 @@ msgid "" "rsyslog), specify a value of :const:`socket.SOCK_STREAM`." msgstr "" -#: ../Doc/library/logging.handlers.rst:572 +#: ../Doc/library/logging.handlers.rst:582 msgid "" "Note that if your server is not listening on UDP port 514, :class:" "`SysLogHandler` may appear not to work. In that case, check what address you " @@ -743,21 +891,21 @@ msgid "" "platforms). On Windows, you pretty much have to use the UDP option." msgstr "" -#: ../Doc/library/logging.handlers.rst:581 +#: ../Doc/library/logging.handlers.rst:591 msgid "*socktype* was added." msgstr "" -#: ../Doc/library/logging.handlers.rst:587 +#: ../Doc/library/logging.handlers.rst:597 msgid "Closes the socket to the remote host." msgstr "" -#: ../Doc/library/logging.handlers.rst:592 +#: ../Doc/library/logging.handlers.rst:602 msgid "" "The record is formatted, and then sent to the syslog server. If exception " "information is present, it is *not* sent to the server." msgstr "" -#: ../Doc/library/logging.handlers.rst:595 +#: ../Doc/library/logging.handlers.rst:605 msgid "" "(See: :issue:`12168`.) In earlier versions, the message sent to the syslog " "daemons was always terminated with a NUL byte, because early versions of " @@ -768,7 +916,7 @@ msgid "" "byte on as part of the message." msgstr "" -#: ../Doc/library/logging.handlers.rst:604 +#: ../Doc/library/logging.handlers.rst:614 msgid "" "To enable easier handling of syslog messages in the face of all these " "differing daemon behaviours, the appending of the NUL byte has been made " @@ -778,7 +926,7 @@ msgid "" "*not* append the NUL terminator." msgstr "" -#: ../Doc/library/logging.handlers.rst:611 +#: ../Doc/library/logging.handlers.rst:621 msgid "" "(See: :issue:`12419`.) In earlier versions, there was no facility for an " "\"ident\" or \"tag\" prefix to identify the source of the message. This can " @@ -789,262 +937,262 @@ msgid "" "bytes, and is prepended to the message exactly as is." msgstr "" -#: ../Doc/library/logging.handlers.rst:622 +#: ../Doc/library/logging.handlers.rst:632 msgid "" "Encodes the facility and priority into an integer. You can pass in strings " "or integers - if strings are passed, internal mapping dictionaries are used " "to convert them to integers." msgstr "" -#: ../Doc/library/logging.handlers.rst:626 +#: ../Doc/library/logging.handlers.rst:636 msgid "" "The symbolic ``LOG_`` values are defined in :class:`SysLogHandler` and " "mirror the values defined in the ``sys/syslog.h`` header file." msgstr "" -#: ../Doc/library/logging.handlers.rst:629 +#: ../Doc/library/logging.handlers.rst:639 msgid "**Priorities**" msgstr "" -#: ../Doc/library/logging.handlers.rst:632 -#: ../Doc/library/logging.handlers.rst:654 +#: ../Doc/library/logging.handlers.rst:642 +#: ../Doc/library/logging.handlers.rst:664 msgid "Name (string)" msgstr "" -#: ../Doc/library/logging.handlers.rst:632 -#: ../Doc/library/logging.handlers.rst:654 +#: ../Doc/library/logging.handlers.rst:642 +#: ../Doc/library/logging.handlers.rst:664 msgid "Symbolic value" msgstr "" -#: ../Doc/library/logging.handlers.rst:634 +#: ../Doc/library/logging.handlers.rst:644 msgid "``alert``" msgstr "``alert``" -#: ../Doc/library/logging.handlers.rst:634 +#: ../Doc/library/logging.handlers.rst:644 msgid "LOG_ALERT" msgstr "LOG_ALERT" -#: ../Doc/library/logging.handlers.rst:636 +#: ../Doc/library/logging.handlers.rst:646 msgid "``crit`` or ``critical``" msgstr "``crit`` ou ``critical``" -#: ../Doc/library/logging.handlers.rst:636 +#: ../Doc/library/logging.handlers.rst:646 msgid "LOG_CRIT" msgstr "LOG_CRIT" -#: ../Doc/library/logging.handlers.rst:638 +#: ../Doc/library/logging.handlers.rst:648 msgid "``debug``" msgstr "``debug``" -#: ../Doc/library/logging.handlers.rst:638 +#: ../Doc/library/logging.handlers.rst:648 msgid "LOG_DEBUG" msgstr "LOG_DEBUG" -#: ../Doc/library/logging.handlers.rst:640 +#: ../Doc/library/logging.handlers.rst:650 msgid "``emerg`` or ``panic``" msgstr "``emerg`` ou ``panic``" -#: ../Doc/library/logging.handlers.rst:640 +#: ../Doc/library/logging.handlers.rst:650 msgid "LOG_EMERG" msgstr "LOG_EMERG" -#: ../Doc/library/logging.handlers.rst:642 +#: ../Doc/library/logging.handlers.rst:652 msgid "``err`` or ``error``" msgstr "``err`` ou ``error``" -#: ../Doc/library/logging.handlers.rst:642 +#: ../Doc/library/logging.handlers.rst:652 msgid "LOG_ERR" msgstr "LOG_ERR" -#: ../Doc/library/logging.handlers.rst:644 +#: ../Doc/library/logging.handlers.rst:654 msgid "``info``" msgstr "``info``" -#: ../Doc/library/logging.handlers.rst:644 +#: ../Doc/library/logging.handlers.rst:654 msgid "LOG_INFO" msgstr "LOG_INFO" -#: ../Doc/library/logging.handlers.rst:646 +#: ../Doc/library/logging.handlers.rst:656 msgid "``notice``" msgstr "``notice``" -#: ../Doc/library/logging.handlers.rst:646 +#: ../Doc/library/logging.handlers.rst:656 msgid "LOG_NOTICE" msgstr "LOG_NOTICE" -#: ../Doc/library/logging.handlers.rst:648 +#: ../Doc/library/logging.handlers.rst:658 msgid "``warn`` or ``warning``" msgstr "``warn`` ou ``warning``" -#: ../Doc/library/logging.handlers.rst:648 +#: ../Doc/library/logging.handlers.rst:658 msgid "LOG_WARNING" msgstr "LOG_WARNING" -#: ../Doc/library/logging.handlers.rst:651 +#: ../Doc/library/logging.handlers.rst:661 msgid "**Facilities**" msgstr "" -#: ../Doc/library/logging.handlers.rst:656 +#: ../Doc/library/logging.handlers.rst:666 msgid "``auth``" msgstr "``auth``" -#: ../Doc/library/logging.handlers.rst:656 +#: ../Doc/library/logging.handlers.rst:666 msgid "LOG_AUTH" msgstr "LOG_AUTH" -#: ../Doc/library/logging.handlers.rst:658 +#: ../Doc/library/logging.handlers.rst:668 msgid "``authpriv``" msgstr "``authpriv``" -#: ../Doc/library/logging.handlers.rst:658 +#: ../Doc/library/logging.handlers.rst:668 msgid "LOG_AUTHPRIV" msgstr "LOG_AUTHPRIV" -#: ../Doc/library/logging.handlers.rst:660 +#: ../Doc/library/logging.handlers.rst:670 msgid "``cron``" msgstr "``cron``" -#: ../Doc/library/logging.handlers.rst:660 +#: ../Doc/library/logging.handlers.rst:670 msgid "LOG_CRON" msgstr "LOG_CRON" -#: ../Doc/library/logging.handlers.rst:662 +#: ../Doc/library/logging.handlers.rst:672 msgid "``daemon``" msgstr "``daemon``" -#: ../Doc/library/logging.handlers.rst:662 +#: ../Doc/library/logging.handlers.rst:672 msgid "LOG_DAEMON" msgstr "LOG_DAEMON" -#: ../Doc/library/logging.handlers.rst:664 +#: ../Doc/library/logging.handlers.rst:674 msgid "``ftp``" msgstr "``ftp``" -#: ../Doc/library/logging.handlers.rst:664 +#: ../Doc/library/logging.handlers.rst:674 msgid "LOG_FTP" msgstr "LOG_FTP" -#: ../Doc/library/logging.handlers.rst:666 +#: ../Doc/library/logging.handlers.rst:676 msgid "``kern``" msgstr "``kern``" -#: ../Doc/library/logging.handlers.rst:666 +#: ../Doc/library/logging.handlers.rst:676 msgid "LOG_KERN" msgstr "LOG_KERN" -#: ../Doc/library/logging.handlers.rst:668 +#: ../Doc/library/logging.handlers.rst:678 msgid "``lpr``" msgstr "``lpr``" -#: ../Doc/library/logging.handlers.rst:668 +#: ../Doc/library/logging.handlers.rst:678 msgid "LOG_LPR" msgstr "LOG_LPR" -#: ../Doc/library/logging.handlers.rst:670 +#: ../Doc/library/logging.handlers.rst:680 msgid "``mail``" msgstr "``mail``" -#: ../Doc/library/logging.handlers.rst:670 +#: ../Doc/library/logging.handlers.rst:680 msgid "LOG_MAIL" msgstr "LOG_MAIL" -#: ../Doc/library/logging.handlers.rst:672 +#: ../Doc/library/logging.handlers.rst:682 msgid "``news``" msgstr "``news``" -#: ../Doc/library/logging.handlers.rst:672 +#: ../Doc/library/logging.handlers.rst:682 msgid "LOG_NEWS" msgstr "LOG_NEWS" -#: ../Doc/library/logging.handlers.rst:674 +#: ../Doc/library/logging.handlers.rst:684 msgid "``syslog``" msgstr "``syslog``" -#: ../Doc/library/logging.handlers.rst:674 +#: ../Doc/library/logging.handlers.rst:684 msgid "LOG_SYSLOG" msgstr "LOG_SYSLOG" -#: ../Doc/library/logging.handlers.rst:676 +#: ../Doc/library/logging.handlers.rst:686 msgid "``user``" msgstr "``user``" -#: ../Doc/library/logging.handlers.rst:676 +#: ../Doc/library/logging.handlers.rst:686 msgid "LOG_USER" msgstr "LOG_USER" -#: ../Doc/library/logging.handlers.rst:678 +#: ../Doc/library/logging.handlers.rst:688 msgid "``uucp``" msgstr "``uucp``" -#: ../Doc/library/logging.handlers.rst:678 +#: ../Doc/library/logging.handlers.rst:688 msgid "LOG_UUCP" msgstr "LOG_UUCP" -#: ../Doc/library/logging.handlers.rst:680 +#: ../Doc/library/logging.handlers.rst:690 msgid "``local0``" msgstr "``local0``" -#: ../Doc/library/logging.handlers.rst:680 +#: ../Doc/library/logging.handlers.rst:690 msgid "LOG_LOCAL0" msgstr "LOG_LOCAL0" -#: ../Doc/library/logging.handlers.rst:682 +#: ../Doc/library/logging.handlers.rst:692 msgid "``local1``" msgstr "``local1``" -#: ../Doc/library/logging.handlers.rst:682 +#: ../Doc/library/logging.handlers.rst:692 msgid "LOG_LOCAL1" msgstr "LOG_LOCAL1" -#: ../Doc/library/logging.handlers.rst:684 +#: ../Doc/library/logging.handlers.rst:694 msgid "``local2``" msgstr "``local2``" -#: ../Doc/library/logging.handlers.rst:684 +#: ../Doc/library/logging.handlers.rst:694 msgid "LOG_LOCAL2" msgstr "LOG_LOCAL2" -#: ../Doc/library/logging.handlers.rst:686 +#: ../Doc/library/logging.handlers.rst:696 msgid "``local3``" msgstr "``local3``" -#: ../Doc/library/logging.handlers.rst:686 +#: ../Doc/library/logging.handlers.rst:696 msgid "LOG_LOCAL3" msgstr "LOG_LOCAL3" -#: ../Doc/library/logging.handlers.rst:688 +#: ../Doc/library/logging.handlers.rst:698 msgid "``local4``" msgstr "``local4``" -#: ../Doc/library/logging.handlers.rst:688 +#: ../Doc/library/logging.handlers.rst:698 msgid "LOG_LOCAL4" msgstr "LOG_LOCAL4" -#: ../Doc/library/logging.handlers.rst:690 +#: ../Doc/library/logging.handlers.rst:700 msgid "``local5``" msgstr "``local5``" -#: ../Doc/library/logging.handlers.rst:690 +#: ../Doc/library/logging.handlers.rst:700 msgid "LOG_LOCAL5" msgstr "LOG_LOCAL5" -#: ../Doc/library/logging.handlers.rst:692 +#: ../Doc/library/logging.handlers.rst:702 msgid "``local6``" msgstr "``local6``" -#: ../Doc/library/logging.handlers.rst:692 +#: ../Doc/library/logging.handlers.rst:702 msgid "LOG_LOCAL6" msgstr "LOG_LOCAL6" -#: ../Doc/library/logging.handlers.rst:694 +#: ../Doc/library/logging.handlers.rst:704 msgid "``local7``" msgstr "``local7``" -#: ../Doc/library/logging.handlers.rst:694 +#: ../Doc/library/logging.handlers.rst:704 msgid "LOG_LOCAL7" msgstr "LOG_LOCAL7" -#: ../Doc/library/logging.handlers.rst:699 +#: ../Doc/library/logging.handlers.rst:709 msgid "" "Maps a logging level name to a syslog priority name. You may need to " "override this if you are using custom levels, or if the default algorithm is " @@ -1053,11 +1201,11 @@ msgid "" "all other level names to 'warning'." msgstr "" -#: ../Doc/library/logging.handlers.rst:709 +#: ../Doc/library/logging.handlers.rst:719 msgid "NTEventLogHandler" msgstr "" -#: ../Doc/library/logging.handlers.rst:711 +#: ../Doc/library/logging.handlers.rst:721 msgid "" "The :class:`NTEventLogHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a local Windows NT, Windows " @@ -1065,7 +1213,7 @@ msgid "" "Win32 extensions for Python installed." msgstr "" -#: ../Doc/library/logging.handlers.rst:719 +#: ../Doc/library/logging.handlers.rst:729 msgid "" "Returns a new instance of the :class:`NTEventLogHandler` class. The " "*appname* is used to define the application name as it appears in the event " @@ -1081,7 +1229,7 @@ msgid "" "or ``'Security'``, and defaults to ``'Application'``." msgstr "" -#: ../Doc/library/logging.handlers.rst:735 +#: ../Doc/library/logging.handlers.rst:745 msgid "" "At this point, you can remove the application name from the registry as a " "source of event log entries. However, if you do this, you will not be able " @@ -1090,19 +1238,19 @@ msgid "" "not do this." msgstr "" -#: ../Doc/library/logging.handlers.rst:744 +#: ../Doc/library/logging.handlers.rst:754 msgid "" "Determines the message ID, event category and event type, and then logs the " "message in the NT event log." msgstr "" -#: ../Doc/library/logging.handlers.rst:750 +#: ../Doc/library/logging.handlers.rst:760 msgid "" "Returns the event category for the record. Override this if you want to " "specify your own categories. This version returns 0." msgstr "" -#: ../Doc/library/logging.handlers.rst:756 +#: ../Doc/library/logging.handlers.rst:766 msgid "" "Returns the event type for the record. Override this if you want to specify " "your own types. This version does a mapping using the handler's typemap " @@ -1113,7 +1261,7 @@ msgid "" "the handler's *typemap* attribute." msgstr "" -#: ../Doc/library/logging.handlers.rst:767 +#: ../Doc/library/logging.handlers.rst:777 msgid "" "Returns the message ID for the record. If you are using your own messages, " "you could do this by having the *msg* passed to the logger being an ID " @@ -1122,17 +1270,17 @@ msgid "" "message ID in :file:`win32service.pyd`." msgstr "" -#: ../Doc/library/logging.handlers.rst:776 +#: ../Doc/library/logging.handlers.rst:786 msgid "SMTPHandler" msgstr "" -#: ../Doc/library/logging.handlers.rst:778 +#: ../Doc/library/logging.handlers.rst:788 msgid "" "The :class:`SMTPHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to an email address via SMTP." msgstr "" -#: ../Doc/library/logging.handlers.rst:784 +#: ../Doc/library/logging.handlers.rst:794 msgid "" "Returns a new instance of the :class:`SMTPHandler` class. The instance is " "initialized with the from and to addresses and subject line of the email. " @@ -1143,7 +1291,7 @@ msgid "" "*credentials* argument." msgstr "" -#: ../Doc/library/logging.handlers.rst:791 +#: ../Doc/library/logging.handlers.rst:801 msgid "" "To specify the use of a secure protocol (TLS), pass in a tuple to the " "*secure* argument. This will only be used when authentication credentials " @@ -1153,31 +1301,31 @@ msgid "" "SMTP.starttls` method.)" msgstr "" -#: ../Doc/library/logging.handlers.rst:798 +#: ../Doc/library/logging.handlers.rst:808 msgid "" "A timeout can be specified for communication with the SMTP server using the " "*timeout* argument." msgstr "" -#: ../Doc/library/logging.handlers.rst:801 +#: ../Doc/library/logging.handlers.rst:811 msgid "The *timeout* argument was added." msgstr "" -#: ../Doc/library/logging.handlers.rst:806 +#: ../Doc/library/logging.handlers.rst:816 msgid "Formats the record and sends it to the specified addressees." msgstr "" -#: ../Doc/library/logging.handlers.rst:811 +#: ../Doc/library/logging.handlers.rst:821 msgid "" "If you want to specify a subject line which is record-dependent, override " "this method." msgstr "" -#: ../Doc/library/logging.handlers.rst:817 +#: ../Doc/library/logging.handlers.rst:827 msgid "MemoryHandler" msgstr "" -#: ../Doc/library/logging.handlers.rst:819 +#: ../Doc/library/logging.handlers.rst:829 msgid "" "The :class:`MemoryHandler` class, located in the :mod:`logging.handlers` " "module, supports buffering of logging records in memory, periodically " @@ -1185,7 +1333,7 @@ msgid "" "buffer is full, or when an event of a certain severity or greater is seen." msgstr "" -#: ../Doc/library/logging.handlers.rst:824 +#: ../Doc/library/logging.handlers.rst:834 msgid "" ":class:`MemoryHandler` is a subclass of the more general :class:" "`BufferingHandler`, which is an abstract class. This buffers logging records " @@ -1194,29 +1342,29 @@ msgid "" "should, then :meth:`flush` is expected to do the flushing." msgstr "" -#: ../Doc/library/logging.handlers.rst:833 +#: ../Doc/library/logging.handlers.rst:843 msgid "Initializes the handler with a buffer of the specified capacity." msgstr "" -#: ../Doc/library/logging.handlers.rst:838 +#: ../Doc/library/logging.handlers.rst:848 msgid "" "Appends the record to the buffer. If :meth:`shouldFlush` returns true, " "calls :meth:`flush` to process the buffer." msgstr "" -#: ../Doc/library/logging.handlers.rst:844 +#: ../Doc/library/logging.handlers.rst:854 msgid "" "You can override this to implement custom flushing behavior. This version " "just zaps the buffer to empty." msgstr "" -#: ../Doc/library/logging.handlers.rst:850 +#: ../Doc/library/logging.handlers.rst:860 msgid "" "Returns true if the buffer is up to capacity. This method can be overridden " "to implement custom flushing strategies." msgstr "" -#: ../Doc/library/logging.handlers.rst:856 +#: ../Doc/library/logging.handlers.rst:866 msgid "" "Returns a new instance of the :class:`MemoryHandler` class. The instance is " "initialized with a buffer size of *capacity*. If *flushLevel* is not " @@ -1228,41 +1376,41 @@ msgid "" "occur when the handler is closed." msgstr "" -#: ../Doc/library/logging.handlers.rst:864 +#: ../Doc/library/logging.handlers.rst:874 msgid "The *flushOnClose* parameter was added." msgstr "" -#: ../Doc/library/logging.handlers.rst:870 +#: ../Doc/library/logging.handlers.rst:880 msgid "Calls :meth:`flush`, sets the target to ``None`` and clears the buffer." msgstr "" -#: ../Doc/library/logging.handlers.rst:876 +#: ../Doc/library/logging.handlers.rst:886 msgid "" "For a :class:`MemoryHandler`, flushing means just sending the buffered " "records to the target, if there is one. The buffer is also cleared when this " "happens. Override if you want different behavior." msgstr "" -#: ../Doc/library/logging.handlers.rst:883 +#: ../Doc/library/logging.handlers.rst:893 msgid "Sets the target handler for this handler." msgstr "" -#: ../Doc/library/logging.handlers.rst:888 +#: ../Doc/library/logging.handlers.rst:898 msgid "Checks for buffer full or a record at the *flushLevel* or higher." msgstr "" -#: ../Doc/library/logging.handlers.rst:894 +#: ../Doc/library/logging.handlers.rst:904 msgid "HTTPHandler" msgstr "" -#: ../Doc/library/logging.handlers.rst:896 +#: ../Doc/library/logging.handlers.rst:906 msgid "" "The :class:`HTTPHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a Web server, using either " "``GET`` or ``POST`` semantics." msgstr "" -#: ../Doc/library/logging.handlers.rst:903 +#: ../Doc/library/logging.handlers.rst:913 msgid "" "Returns a new instance of the :class:`HTTPHandler` class. The *host* can be " "of the form ``host:port``, should you need to use a specific port number. " @@ -1276,11 +1424,11 @@ msgid "" "cleartext across the wire." msgstr "" -#: ../Doc/library/logging.handlers.rst:914 +#: ../Doc/library/logging.handlers.rst:924 msgid "The *context* parameter was added." msgstr "" -#: ../Doc/library/logging.handlers.rst:919 +#: ../Doc/library/logging.handlers.rst:929 msgid "" "Provides a dictionary, based on ``record``, which is to be URL-encoded and " "sent to the web server. The default implementation just returns ``record." @@ -1289,14 +1437,14 @@ msgid "" "customization of what's sent to the server is required." msgstr "" -#: ../Doc/library/logging.handlers.rst:927 +#: ../Doc/library/logging.handlers.rst:937 msgid "" "Sends the record to the Web server as a URL-encoded dictionary. The :meth:" "`mapLogRecord` method is used to convert the record to the dictionary to be " "sent." msgstr "" -#: ../Doc/library/logging.handlers.rst:931 +#: ../Doc/library/logging.handlers.rst:941 msgid "" "Since preparing a record for sending it to a Web server is not the same as a " "generic formatting operation, using :meth:`~logging.Handler.setFormatter` to " @@ -1306,18 +1454,18 @@ msgid "" "the dictionary in a form suitable for sending to a Web server." msgstr "" -#: ../Doc/library/logging.handlers.rst:944 +#: ../Doc/library/logging.handlers.rst:954 msgid "QueueHandler" msgstr "" -#: ../Doc/library/logging.handlers.rst:948 +#: ../Doc/library/logging.handlers.rst:958 msgid "" "The :class:`QueueHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a queue, such as those " "implemented in the :mod:`queue` or :mod:`multiprocessing` modules." msgstr "" -#: ../Doc/library/logging.handlers.rst:952 +#: ../Doc/library/logging.handlers.rst:962 msgid "" "Along with the :class:`QueueListener` class, :class:`QueueHandler` can be " "used to let handlers do their work on a separate thread from the one which " @@ -1327,7 +1475,7 @@ msgid "" "an email via :class:`SMTPHandler`) are done on a separate thread." msgstr "" -#: ../Doc/library/logging.handlers.rst:961 +#: ../Doc/library/logging.handlers.rst:971 msgid "" "Returns a new instance of the :class:`QueueHandler` class. The instance is " "initialized with the queue to send messages to. The queue can be any queue-" @@ -1335,41 +1483,42 @@ msgid "" "know how to send messages to it." msgstr "" -#: ../Doc/library/logging.handlers.rst:969 +#: ../Doc/library/logging.handlers.rst:979 msgid "Enqueues the result of preparing the LogRecord." msgstr "" -#: ../Doc/library/logging.handlers.rst:973 +#: ../Doc/library/logging.handlers.rst:983 msgid "" "Prepares a record for queuing. The object returned by this method is " "enqueued." msgstr "" -#: ../Doc/library/logging.handlers.rst:976 +#: ../Doc/library/logging.handlers.rst:986 msgid "" -"The base implementation formats the record to merge the message and " -"arguments, and removes unpickleable items from the record in-place." +"The base implementation formats the record to merge the message, arguments, " +"and exception information, if present. It also removes unpickleable items " +"from the record in-place." msgstr "" -#: ../Doc/library/logging.handlers.rst:980 +#: ../Doc/library/logging.handlers.rst:990 msgid "" "You might want to override this method if you want to convert the record to " "a dict or JSON string, or send a modified copy of the record while leaving " "the original intact." msgstr "" -#: ../Doc/library/logging.handlers.rst:986 +#: ../Doc/library/logging.handlers.rst:996 msgid "" "Enqueues the record on the queue using ``put_nowait()``; you may want to " "override this if you want to use blocking behaviour, or a timeout, or a " "customized queue implementation." msgstr "" -#: ../Doc/library/logging.handlers.rst:995 +#: ../Doc/library/logging.handlers.rst:1005 msgid "QueueListener" msgstr "" -#: ../Doc/library/logging.handlers.rst:999 +#: ../Doc/library/logging.handlers.rst:1009 msgid "" "The :class:`QueueListener` class, located in the :mod:`logging.handlers` " "module, supports receiving logging messages from a queue, such as those " @@ -1380,7 +1529,7 @@ msgid "" "works hand-in-hand with :class:`QueueHandler`." msgstr "" -#: ../Doc/library/logging.handlers.rst:1007 +#: ../Doc/library/logging.handlers.rst:1017 msgid "" "Along with the :class:`QueueHandler` class, :class:`QueueListener` can be " "used to let handlers do their work on a separate thread from the one which " @@ -1390,7 +1539,7 @@ msgid "" "an email via :class:`SMTPHandler`) are done on a separate thread." msgstr "" -#: ../Doc/library/logging.handlers.rst:1016 +#: ../Doc/library/logging.handlers.rst:1026 msgid "" "Returns a new instance of the :class:`QueueListener` class. The instance is " "initialized with the queue to send messages to and a list of handlers which " @@ -1403,82 +1552,82 @@ msgid "" "handler." msgstr "" -#: ../Doc/library/logging.handlers.rst:1026 +#: ../Doc/library/logging.handlers.rst:1036 msgid "The ``respect_handler_levels`` argument was added." msgstr "" -#: ../Doc/library/logging.handlers.rst:1031 +#: ../Doc/library/logging.handlers.rst:1041 msgid "Dequeues a record and return it, optionally blocking." msgstr "" -#: ../Doc/library/logging.handlers.rst:1033 +#: ../Doc/library/logging.handlers.rst:1043 msgid "" "The base implementation uses ``get()``. You may want to override this method " "if you want to use timeouts or work with custom queue implementations." msgstr "" -#: ../Doc/library/logging.handlers.rst:1039 +#: ../Doc/library/logging.handlers.rst:1049 msgid "Prepare a record for handling." msgstr "" -#: ../Doc/library/logging.handlers.rst:1041 +#: ../Doc/library/logging.handlers.rst:1051 msgid "" "This implementation just returns the passed-in record. You may want to " "override this method if you need to do any custom marshalling or " "manipulation of the record before passing it to the handlers." msgstr "" -#: ../Doc/library/logging.handlers.rst:1047 +#: ../Doc/library/logging.handlers.rst:1057 msgid "Handle a record." msgstr "" -#: ../Doc/library/logging.handlers.rst:1049 +#: ../Doc/library/logging.handlers.rst:1059 msgid "" "This just loops through the handlers offering them the record to handle. The " "actual object passed to the handlers is that which is returned from :meth:" "`prepare`." msgstr "" -#: ../Doc/library/logging.handlers.rst:1055 +#: ../Doc/library/logging.handlers.rst:1065 msgid "Starts the listener." msgstr "" -#: ../Doc/library/logging.handlers.rst:1057 +#: ../Doc/library/logging.handlers.rst:1067 msgid "" "This starts up a background thread to monitor the queue for LogRecords to " "process." msgstr "" -#: ../Doc/library/logging.handlers.rst:1062 +#: ../Doc/library/logging.handlers.rst:1072 msgid "Stops the listener." msgstr "" -#: ../Doc/library/logging.handlers.rst:1064 +#: ../Doc/library/logging.handlers.rst:1074 msgid "" "This asks the thread to terminate, and then waits for it to do so. Note that " "if you don't call this before your application exits, there may be some " "records still left on the queue, which won't be processed." msgstr "" -#: ../Doc/library/logging.handlers.rst:1070 +#: ../Doc/library/logging.handlers.rst:1080 msgid "" "Writes a sentinel to the queue to tell the listener to quit. This " "implementation uses ``put_nowait()``. You may want to override this method " "if you want to use timeouts or work with custom queue implementations." msgstr "" -#: ../Doc/library/logging.handlers.rst:1081 +#: ../Doc/library/logging.handlers.rst:1091 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Module :mod:`logging`" -#: ../Doc/library/logging.handlers.rst:1081 +#: ../Doc/library/logging.handlers.rst:1091 msgid "API reference for the logging module." -msgstr "" +msgstr "Référence d'API pour le module de journalisation." -#: ../Doc/library/logging.handlers.rst:1083 +#: ../Doc/library/logging.handlers.rst:1093 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Module :mod:`logging.config`" -#: ../Doc/library/logging.handlers.rst:1084 +#: ../Doc/library/logging.handlers.rst:1094 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuration pour le module de journalisation." diff --git a/library/logging.po b/library/logging.po index 71ceb7d28..b52217a30 100644 --- a/library/logging.po +++ b/library/logging.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" "PO-Revision-Date: 2018-07-05 11:54+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -17,35 +17,40 @@ msgstr "" #: ../Doc/library/logging.rst:2 msgid ":mod:`logging` --- Logging facility for Python" -msgstr "" +msgstr ":mod:`logging` — Fonctionnalités de journalisation pour Python" #: ../Doc/library/logging.rst:10 msgid "**Source code:** :source:`Lib/logging/__init__.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/logging/__init__.py`" #: ../Doc/library/logging.rst:16 msgid "" "This page contains the API reference information. For tutorial information " "and discussion of more advanced topics, see" msgstr "" +"Cette page contient les informations de référence de l’API. Pour des " +"tutoriels et des discussions sur des sujets plus avancés, voir" #: ../Doc/library/logging.rst:19 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.rst:20 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.rst:21 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.rst:25 msgid "" "This module defines functions and classes which implement a flexible event " "logging system for applications and libraries." msgstr "" +"Ce module définit les fonctions et les classes qui mettent en œuvre un " +"système flexible d’enregistrement des événements pour les applications et " +"les bibliothèques." #: ../Doc/library/logging.rst:28 msgid "" @@ -54,6 +59,10 @@ msgid "" "application log can include your own messages integrated with messages from " "third-party modules." msgstr "" +"Le principal avantage de l’API de journalisation fournie par un module de " +"bibliothèque standard est que tous les modules Python peuvent participer à " +"la journalisation, de sorte que le journal de votre application peut inclure " +"vos propres messages intégrés aux messages de modules tiers." #: ../Doc/library/logging.rst:33 msgid "" @@ -61,44 +70,62 @@ msgid "" "unfamiliar with logging, the best way to get to grips with it is to see the " "tutorials (see the links on the right)." msgstr "" +"Le module offre beaucoup de fonctionnalités et de flexibilité. Si vous " +"n’êtes pas familiarisé avec la journalisation, la meilleure façon de vous y " +"familiariser est de consulter les tutoriels (voir les liens à droite)." #: ../Doc/library/logging.rst:37 msgid "" "The basic classes defined by the module, together with their functions, are " "listed below." msgstr "" +"Les classes de base définies par le module, ainsi que leurs fonctions, sont " +"énumérées ci-dessous." #: ../Doc/library/logging.rst:40 msgid "Loggers expose the interface that application code directly uses." msgstr "" +"Les enregistreurs (*loggers* en anglais) exposent l'interface que le code de " +"l'application utilise directement." #: ../Doc/library/logging.rst:41 msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" +"Les gestionnaires (*handlers*) envoient les entrées de journal (créées par " +"les *loggers*) vers les destinations voulues." #: ../Doc/library/logging.rst:43 msgid "" "Filters provide a finer grained facility for determining which log records " "to output." msgstr "" +"Les filtres (*filters*) fournissent un moyen de choisir finement quelles " +"entrées de journal doivent être sorties." #: ../Doc/library/logging.rst:45 msgid "Formatters specify the layout of log records in the final output." msgstr "" +"Les formateurs (*formatters*) spécifient la structure de l'entrée de journal " +"dans la sortie finale." #: ../Doc/library/logging.rst:51 msgid "Logger Objects" -msgstr "" +msgstr "Objets Enregistreurs" #: ../Doc/library/logging.rst:53 msgid "" -"Loggers have the following attributes and methods. Note that Loggers are " -"never instantiated directly, but always through the module-level function " -"``logging.getLogger(name)``. Multiple calls to :func:`getLogger` with the " -"same name will always return a reference to the same Logger object." +"Loggers have the following attributes and methods. Note that Loggers should " +"*NEVER* be instantiated directly, but always through the module-level " +"function ``logging.getLogger(name)``. Multiple calls to :func:`getLogger` " +"with the same name will always return a reference to the same Logger object." msgstr "" +"Les enregistreurs ont les attributs et les méthodes suivants. Notez que les " +"enregistreurs ne doivent *JAMAIS* être instanciés directement, mais toujours " +"par la fonction au niveau du module ``logging.getLogger(name)``. Plusieurs " +"appels à :func:`getLogger` avec le même nom renvoient toujours une référence " +"au même objet enregistreur." #: ../Doc/library/logging.rst:58 msgid "" @@ -113,6 +140,18 @@ msgid "" "getLogger(__name__)``. That's because in a module, ``__name__`` is the " "module's name in the Python package namespace." msgstr "" +"Le nom ``name`` est potentiellement une valeur avec plusieurs niveaux de " +"hiérarchie, séparés par des points, comme ``truc.machin.bidule`` (bien qu’il " +"puisse aussi être simplement ``truc``, par exemple). Les enregistreurs qui " +"sont plus bas dans la liste hiérarchique sont les enfants des enregistreurs " +"plus haut dans la liste. Par exemple, pour un enregistreur nommé ``truc``, " +"les enregistreurs portant les noms ``truc.machin``, ``truc.machin.bidule`` " +"et ``truc.chose`` sont tous des descendants de ``truc``. La hiérarchie des " +"noms d’enregistreurs est analogue à la hiérarchie des paquets Python, et est " +"identique à celle-ci si vous organisez vos enregistreurs par module en " +"utilisant la construction recommandée ``logging.getLogger(__name__)``. " +"C’est ainsi parce que dans un module, ``__name__`` est le nom du module dans " +"l’espace de noms des paquets Python." #: ../Doc/library/logging.rst:74 msgid "" @@ -122,16 +161,24 @@ msgid "" "ancestor loggers' handlers - neither the level nor filters of the ancestor " "loggers in question are considered." msgstr "" +"Si cet attribut est évalué comme vrai, les événements enregistrés dans cet " +"enregistreur seront transmis aux gestionnaires des enregistreurs de niveau " +"supérieur (parents), en plus des gestionnaires attachés à cet enregistreur. " +"Les messages sont transmis directement aux gestionnaires des enregistreurs " +"parents — ni le niveau ni les filtres des enregistreurs ancestraux en " +"question ne sont pris en compte." #: ../Doc/library/logging.rst:80 msgid "" "If this evaluates to false, logging messages are not passed to the handlers " "of ancestor loggers." msgstr "" +"S’il s’évalue comme faux, les messages de journalisation ne sont pas " +"transmis aux gestionnaires des enregistreurs parents." #: ../Doc/library/logging.rst:83 msgid "The constructor sets this attribute to ``True``." -msgstr "" +msgstr "Le constructeur fixe cet attribut à ``True``." #: ../Doc/library/logging.rst:85 msgid "" @@ -144,6 +191,15 @@ msgid "" "handlers only to the root logger, and to let propagation take care of the " "rest." msgstr "" +"Si vous associez un gestionnaire à un enregistreur *et* à un ou plusieurs de " +"ses parents, il peut émettre le même enregistrement plusieurs fois. En " +"général, vous ne devriez pas avoir besoin d'attacher un gestionnaire à plus " +"d'un enregistreur — si vous l'attachez simplement à l'enregistreur approprié " +"qui est le plus haut dans la hiérarchie des enregistreurs, alors il voit " +"tous les événements enregistrés par tous les enregistreurs descendants, à " +"condition que leur paramètre de propagation soit laissé à ``True``. Un " +"scénario courant est d'attacher les gestionnaires uniquement à " +"l'enregistreur racine, et de laisser la propagation s'occuper du reste." #: ../Doc/library/logging.rst:96 msgid "" @@ -153,6 +209,11 @@ msgid "" "service this logger, unless a handler's level has been set to a higher " "severity level than *level*." msgstr "" +"Fixe le seuil de cet enregistreur au niveau *level*. Les messages de " +"journalisation qui sont moins graves que *level* sont ignorés ; les messages " +"qui ont une gravité égale à *level* ou plus élevée sont émis par le ou les " +"gestionnaires de cet enregistreur, à moins que le niveau d'un gestionnaire " +"n'ait été fixé à un niveau de gravité plus élevé que *level*." #: ../Doc/library/logging.rst:101 msgid "" @@ -161,6 +222,11 @@ msgid "" "delegation to the parent when the logger is a non-root logger). Note that " "the root logger is created with level :const:`WARNING`." msgstr "" +"Lorsqu'un enregistreur est créé, le niveau est fixé à :const:`NOTSET` (ce " +"qui entraîne le traitement de tous les messages lorsque l'enregistreur est " +"l'enregistreur racine, ou la délégation au parent lorsque l'enregistreur est " +"un enregistreur non racine). Notez que l'enregistreur racine est créé avec " +"le niveau :const:`WARNING`." #: ../Doc/library/logging.rst:106 msgid "" @@ -168,6 +234,10 @@ msgid "" "NOTSET, its chain of ancestor loggers is traversed until either an ancestor " "with a level other than NOTSET is found, or the root is reached." msgstr "" +"Le terme « délégation au parent » signifie que si un enregistreur a un " +"niveau de ``NOTSET``, sa chaîne d’enregistreurs parents est parcourue " +"jusqu'à ce qu'un parent ayant un niveau autre que ``NOTSET`` soit trouvé, ou " +"que la racine soit atteinte." #: ../Doc/library/logging.rst:110 msgid "" @@ -175,6 +245,10 @@ msgid "" "level is treated as the effective level of the logger where the ancestor " "search began, and is used to determine how a logging event is handled." msgstr "" +"Si un ancêtre est trouvé avec un niveau autre que NOTSET, alors le niveau de " +"ce parent est traité comme le niveau effectif de l'enregistreur où la " +"recherche de l'ancêtre a commencé, et est utilisé pour déterminer comment un " +"événement d'enregistrement est traité." #: ../Doc/library/logging.rst:114 msgid "" @@ -182,10 +256,13 @@ msgid "" "be processed. Otherwise, the root's level will be used as the effective " "level." msgstr "" +"Si la racine est atteinte, et qu'elle a un niveau de NOTSET, alors tous les " +"messages sont traités. Sinon, le niveau de la racine est utilisé comme " +"niveau effectif." #: ../Doc/library/logging.rst:117 ../Doc/library/logging.rst:407 msgid "See :ref:`levels` for a list of levels." -msgstr "" +msgstr "Voir :ref:`levels` pour la liste des niveaux." #: ../Doc/library/logging.rst:119 msgid "" @@ -195,6 +272,12 @@ msgid "" "such as e.g. :meth:`getEffectiveLevel` and :meth:`isEnabledFor` will return/" "expect to be passed integers." msgstr "" +"Le paramètre *level* accepte maintenant une représentation du niveau en " +"chaîne de caractères (comme ``'INFO'``) en alternative aux constantes " +"entières comme :const:`INFO`. Notez, cependant, que les niveaux sont stockés " +"en interne sous forme d'entiers, et des méthodes telles que :meth:" +"`getEffectiveLevel` et :meth:`isEnabledFor` renvoient/s'attendent à recevoir " +"des entiers." #: ../Doc/library/logging.rst:129 msgid "" @@ -212,6 +295,12 @@ msgid "" "`NOTSET` is found, and that value is returned. The value returned is an " "integer, typically one of :const:`logging.DEBUG`, :const:`logging.INFO` etc." msgstr "" +"Indique le niveau effectif pour cet enregistreur. Si une valeur autre que :" +"const:`NOTSET` a été définie en utilisant :meth:`setLevel`, elle est " +"renvoyée. Sinon, la hiérarchie est parcourue vers la racine jusqu'à ce " +"qu'une valeur autre que :const:`NOTSET` soit trouvée, et cette valeur est " +"renvoyée. La valeur renvoyée est un entier, généralement l'un de :const:" +"`logging.DEBUG`, :const:`logging.INFO`, etc." #: ../Doc/library/logging.rst:147 msgid "" @@ -221,6 +310,12 @@ msgid "" "ghi')``. This is a convenience method, useful when the parent logger is " "named using e.g. ``__name__`` rather than a literal string." msgstr "" +"Renvoie un enregistreur qui est un enfant de cet enregistreur, tel que " +"déterminé par le suffixe. Ainsi, ``logging.getLogger('abc').getChild('def." +"ghi')`` renvoie le même enregistreur que celui renvoyé par ``logging." +"getLogger('abc.def.ghi')``. C'est une méthode de pure commodité, utile " +"lorsque l’enregistreur parent est nommé en utilisant par exemple " +"``__name__`` plutôt qu'une chaîne de caractères littérale." #: ../Doc/library/logging.rst:158 msgid "" @@ -428,7 +523,7 @@ msgstr "" #: ../Doc/library/logging.rst:340 msgid "Logging Levels" -msgstr "" +msgstr "Niveaux de journalisation" #: ../Doc/library/logging.rst:342 msgid "" @@ -438,14 +533,19 @@ msgid "" "define a level with the same numeric value, it overwrites the predefined " "value; the predefined name is lost." msgstr "" +"Les valeurs numériques des niveaux de journalisation sont données dans le " +"tableau suivant. Celles-ci n'ont d'intérêt que si vous voulez définir vos " +"propres niveaux, avec des valeurs spécifiques par rapport aux niveaux " +"prédéfinis. Si vous définissez un niveau avec la même valeur numérique, il " +"écrase la valeur prédéfinie ; le nom prédéfini est perdu." #: ../Doc/library/logging.rst:349 msgid "Level" -msgstr "" +msgstr "Niveau" #: ../Doc/library/logging.rst:349 msgid "Numeric value" -msgstr "" +msgstr "Valeur numérique" #: ../Doc/library/logging.rst:351 msgid "``CRITICAL``" @@ -835,7 +935,7 @@ msgstr "" #: ../Doc/library/logging.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.rst:672 msgid "" @@ -1302,11 +1402,11 @@ msgstr "" #: ../Doc/library/logging.rst:883 msgid "Module-Level Functions" -msgstr "" +msgstr "Fonctions de niveau module" #: ../Doc/library/logging.rst:885 msgid "" -"In addition to the classes described above, there are a number of module- " +"In addition to the classes described above, there are a number of module-" "level functions." msgstr "" @@ -1366,8 +1466,9 @@ msgid "" "There are three keyword arguments in *kwargs* which are inspected: " "*exc_info* which, if it does not evaluate as false, causes exception " "information to be added to the logging message. If an exception tuple (in " -"the format returned by :func:`sys.exc_info`) is provided, it is used; " -"otherwise, :func:`sys.exc_info` is called to get the exception information." +"the format returned by :func:`sys.exc_info`) or an exception instance is " +"provided, it is used; otherwise, :func:`sys.exc_info` is called to get the " +"exception information." msgstr "" #: ../Doc/library/logging.rst:957 @@ -1653,29 +1754,32 @@ msgid "" "logger. The class should define :meth:`__init__` such that only a name " "argument is required, and the :meth:`__init__` should call :meth:`Logger." "__init__`. This function is typically called before any loggers are " -"instantiated by applications which need to use custom logger behavior." +"instantiated by applications which need to use custom logger behavior. After " +"this call, as at any other time, do not instantiate loggers directly using " +"the subclass: continue to use the :func:`logging.getLogger` API to get your " +"loggers." msgstr "" -#: ../Doc/library/logging.rst:1199 +#: ../Doc/library/logging.rst:1201 msgid "Set a callable which is used to create a :class:`LogRecord`." msgstr "" -#: ../Doc/library/logging.rst:1201 +#: ../Doc/library/logging.rst:1203 msgid "The factory callable to be used to instantiate a log record." msgstr "" -#: ../Doc/library/logging.rst:1203 +#: ../Doc/library/logging.rst:1205 msgid "" "This function has been provided, along with :func:`getLogRecordFactory`, to " "allow developers more control over how the :class:`LogRecord` representing a " "logging event is constructed." msgstr "" -#: ../Doc/library/logging.rst:1208 +#: ../Doc/library/logging.rst:1210 msgid "The factory has the following signature:" msgstr "" -#: ../Doc/library/logging.rst:1210 +#: ../Doc/library/logging.rst:1212 msgid "" "``factory(name, level, fn, lno, msg, args, exc_info, func=None, sinfo=None, " "**kwargs)``" @@ -1683,7 +1787,7 @@ msgstr "" "``factory(name, level, fn, lno, msg, args, exc_info, func=None, sinfo=None, " "**kwargs)``" -#: ../Doc/library/logging.rst:1212 +#: ../Doc/library/logging.rst:1214 msgid "The logger name." msgstr "" @@ -1691,7 +1795,7 @@ msgstr "" msgid "level" msgstr "level" -#: ../Doc/library/logging.rst:1213 +#: ../Doc/library/logging.rst:1215 msgid "The logging level (numeric)." msgstr "" @@ -1699,7 +1803,7 @@ msgstr "" msgid "fn" msgstr "fn" -#: ../Doc/library/logging.rst:1214 +#: ../Doc/library/logging.rst:1216 msgid "The full pathname of the file where the logging call was made." msgstr "" @@ -1707,19 +1811,19 @@ msgstr "" msgid "lno" msgstr "lno" -#: ../Doc/library/logging.rst:1215 +#: ../Doc/library/logging.rst:1217 msgid "The line number in the file where the logging call was made." msgstr "" -#: ../Doc/library/logging.rst:1216 +#: ../Doc/library/logging.rst:1218 msgid "The logging message." msgstr "" -#: ../Doc/library/logging.rst:1217 +#: ../Doc/library/logging.rst:1219 msgid "The arguments for the logging message." msgstr "" -#: ../Doc/library/logging.rst:1218 +#: ../Doc/library/logging.rst:1220 msgid "An exception tuple, or ``None``." msgstr "" @@ -1727,7 +1831,7 @@ msgstr "" msgid "func" msgstr "func" -#: ../Doc/library/logging.rst:1219 +#: ../Doc/library/logging.rst:1221 msgid "The name of the function or method which invoked the logging call." msgstr "" @@ -1735,7 +1839,7 @@ msgstr "" msgid "sinfo" msgstr "sinfo" -#: ../Doc/library/logging.rst:1221 +#: ../Doc/library/logging.rst:1223 msgid "" "A stack traceback such as is provided by :func:`traceback.print_stack`, " "showing the call hierarchy." @@ -1745,15 +1849,15 @@ msgstr "" msgid "kwargs" msgstr "" -#: ../Doc/library/logging.rst:1223 +#: ../Doc/library/logging.rst:1225 msgid "Additional keyword arguments." msgstr "" -#: ../Doc/library/logging.rst:1227 +#: ../Doc/library/logging.rst:1229 msgid "Module-Level Attributes" msgstr "" -#: ../Doc/library/logging.rst:1231 +#: ../Doc/library/logging.rst:1233 msgid "" "A \"handler of last resort\" is available through this attribute. This is a :" "class:`StreamHandler` writing to ``sys.stderr`` with a level of ``WARNING``, " @@ -1764,22 +1868,22 @@ msgid "" "reason, ``lastResort`` can be set to ``None``." msgstr "" -#: ../Doc/library/logging.rst:1242 +#: ../Doc/library/logging.rst:1244 msgid "Integration with the warnings module" msgstr "" -#: ../Doc/library/logging.rst:1244 +#: ../Doc/library/logging.rst:1246 msgid "" "The :func:`captureWarnings` function can be used to integrate :mod:`logging` " "with the :mod:`warnings` module." msgstr "" -#: ../Doc/library/logging.rst:1249 +#: ../Doc/library/logging.rst:1251 msgid "" "This function is used to turn the capture of warnings by logging on and off." msgstr "" -#: ../Doc/library/logging.rst:1252 +#: ../Doc/library/logging.rst:1254 msgid "" "If *capture* is ``True``, warnings issued by the :mod:`warnings` module will " "be redirected to the logging system. Specifically, a warning will be " @@ -1788,46 +1892,46 @@ msgid "" "`WARNING`." msgstr "" -#: ../Doc/library/logging.rst:1257 +#: ../Doc/library/logging.rst:1259 msgid "" "If *capture* is ``False``, the redirection of warnings to the logging system " "will stop, and warnings will be redirected to their original destinations (i." "e. those in effect before ``captureWarnings(True)`` was called)." msgstr "" -#: ../Doc/library/logging.rst:1265 +#: ../Doc/library/logging.rst:1267 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Module :mod:`logging.config`" -#: ../Doc/library/logging.rst:1265 +#: ../Doc/library/logging.rst:1267 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuration pour le module de journalisation." -#: ../Doc/library/logging.rst:1268 +#: ../Doc/library/logging.rst:1270 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Module :mod:`logging.handlers`" -#: ../Doc/library/logging.rst:1268 +#: ../Doc/library/logging.rst:1270 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestionnaires utiles inclus avec le module de journalisation." -#: ../Doc/library/logging.rst:1272 +#: ../Doc/library/logging.rst:1274 msgid ":pep:`282` - A Logging System" msgstr "" -#: ../Doc/library/logging.rst:1271 +#: ../Doc/library/logging.rst:1273 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." msgstr "" -#: ../Doc/library/logging.rst:1277 +#: ../Doc/library/logging.rst:1279 msgid "" "`Original Python logging package `_" msgstr "" -#: ../Doc/library/logging.rst:1275 +#: ../Doc/library/logging.rst:1277 msgid "" "This is the original source for the :mod:`logging` package. The version of " "the package available from this site is suitable for use with Python 1.5.2, " diff --git a/library/lzma.po b/library/lzma.po index 9b8c84c44..d63ddd544 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -13,12 +13,12 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.5\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.5\n" #: ../Doc/library/lzma.rst:2 msgid ":mod:`lzma` --- Compression using the LZMA algorithm" -msgstr ":mod:`lzma` --- Compression via l'algorithme LZMA" +msgstr ":mod:`lzma` — Compression via l'algorithme LZMA" #: ../Doc/library/lzma.rst:12 msgid "**Source code:** :source:`Lib/lzma.py`" @@ -45,16 +45,24 @@ msgid "" "`LZMAFile` instance from multiple threads, it is necessary to protect it " "with a lock." msgstr "" +"L'interface disponible par ce module ressemble en de nombreux points à celle " +"du module :mod:`bz2`. Cependant, notez que la :class:`LZMAFile` n'est pas " +"*thread-safe*, comme l'est la :class:`bz2.BZ2File`. Donc, si vous souhaitez " +"utiliser une seule instance de :class:`LZMAFile` pour plusieurs fils, il " +"sera alors nécessaire de la protéger avec un verrou (*lock*)." #: ../Doc/library/lzma.rst:29 msgid "" "This exception is raised when an error occurs during compression or " "decompression, or while initializing the compressor/decompressor state." msgstr "" +"Cette exception est levée dès lors qu'une erreur survient pendant la " +"compression ou la décompression, ou pendant l'initialisation de l'état de la " +"compression/décompression." #: ../Doc/library/lzma.rst:34 msgid "Reading and writing compressed files" -msgstr "" +msgstr "Lire et écrire des fichiers compressés" #: ../Doc/library/lzma.rst:38 msgid "" @@ -69,6 +77,10 @@ msgid "" "which case the named file is opened, or it can be an existing file object to " "read from or write to." msgstr "" +"L'argument *nom de fichier* peut être soit le nom d'un fichier à créer " +"(donné pour :class:`str`, :class:`bytes` ou un objet :term:`path-like `), dont le fichier nommé reste ouvert, ou soit un objet fichier " +"existant à lire ou à écrire." #: ../Doc/library/lzma.rst:46 msgid "" @@ -77,6 +89,10 @@ msgid "" "\"rt\"``, ``\"wt\"``, ``\"xt\"``, or ``\"at\"`` for text mode. The default " "is ``\"rb\"``." msgstr "" +"L'argument *mode* peut être n'importe quel argument suivant : ``\"r\"``, ``" +"\"rb\"``, ``\"w\"``, ``\"wb\"``, ``\"x\"``, ``\"xb\"``, ``\"a\"`` ou ``\"ab" +"\"`` pour le mode binaire, ou ``\"rt\"``, ``\"wt\"``, ``\"xt\"``, ou ``\"at" +"\"`` pour le mode texte. La valeur par défaut est ``\"rb\"``." #: ../Doc/library/lzma.rst:50 ../Doc/library/lzma.rst:95 msgid "" @@ -84,12 +100,18 @@ msgid "" "the same meanings as for :class:`LZMADecompressor`. In this case, the " "*check* and *preset* arguments should not be used." msgstr "" +"Quand un fichier est ouvert pour le lire, les arguments *format* et " +"*filters* ont les mêmes significations que pour la :class:" +"`LZMADecompressor`. Par conséquent, les arguments *check* et *preset* ne " +"devront pas être sollicités." #: ../Doc/library/lzma.rst:54 ../Doc/library/lzma.rst:99 msgid "" "When opening a file for writing, the *format*, *check*, *preset* and " "*filters* arguments have the same meanings as for :class:`LZMACompressor`." msgstr "" +"Dès ouverture d'un fichier pour l'écriture, les arguments *format*, *check*, " +"*preset* et *filters* ont le même sens que dans la :class:`LZMACompressor`." #: ../Doc/library/lzma.rst:57 msgid "" @@ -97,6 +119,9 @@ msgid "" "constructor: ``LZMAFile(filename, mode, ...)``. In this case, the " "*encoding*, *errors* and *newline* arguments must not be provided." msgstr "" +"Pour le mode binaire, cette fonction équivaut au constructeur de la :class:" +"`LZMAFile` : ``LZMAFile(filename, mode, ...)``. Dans ce cas précis, les " +"arguments *encoding*, *errors* et *newline* ne sont pas accessibles." #: ../Doc/library/lzma.rst:61 msgid "" @@ -107,7 +132,7 @@ msgstr "" #: ../Doc/library/lzma.rst:65 msgid "Added support for the ``\"x\"``, ``\"xb\"`` and ``\"xt\"`` modes." -msgstr "" +msgstr "Support ajouté pour les modes ``\"x\"``, ``\"xb\"`` et ``\"xt\"``." #: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:126 msgid "Accepts a :term:`path-like object`." @@ -115,7 +140,7 @@ msgstr "Accepte un :term:`path-like object`." #: ../Doc/library/lzma.rst:74 msgid "Open an LZMA-compressed file in binary mode." -msgstr "" +msgstr "Ouvre un fichier LZMA compressé en mode binaire." #: ../Doc/library/lzma.rst:76 msgid "" @@ -126,6 +151,12 @@ msgid "" "wrapping an existing file object, the wrapped file will not be closed when " "the :class:`LZMAFile` is closed." msgstr "" +"An :class:`LZMAFile` can wrap an already-open :term:`file object`, or " +"operate directly on a named file. The *filename* argument specifies either " +"the file object to wrap, or the name of the file to open (as a :class:" +"`str`, :class:`bytes` or :term:`path-like ` object). When " +"wrapping an existing file object, the wrapped file will not be closed when " +"the :class:`LZMAFile` is closed." #: ../Doc/library/lzma.rst:83 msgid "" @@ -134,6 +165,10 @@ msgid "" "appending. These can equivalently be given as ``\"rb\"``, ``\"wb\"``, ``\"xb" "\"`` and ``\"ab\"`` respectively." msgstr "" +"L'argument *mode* peut être soit ``\"r\"`` pour la lecture (défaut), ``\"w" +"\"`` pour la ré-écriture, ``\"x\"`` pour la création exclusive, ou ``\"a\"`` " +"pour l'insertion. Elles peuvent aussi être écrites de la façon suivante : ``" +"\"rb\"``, ``\"wb\"``, ``\"xb\"`` et ``\"ab\"`` respectivement." #: ../Doc/library/lzma.rst:88 msgid "" @@ -147,6 +182,9 @@ msgid "" "multiple separate compressed streams. These are transparently decoded as a " "single logical stream." msgstr "" +"Dès l'ouverture d'un fichier pour être lu, le fichier d'entrée peut être le " +"résultat d'une concaténation de plusieurs flux distincts et compressés. Ceux-" +"ci sont décodés de manière transparente en un seul flux logique." #: ../Doc/library/lzma.rst:102 msgid "" @@ -157,7 +195,7 @@ msgstr "" #: ../Doc/library/lzma.rst:106 msgid "The following method is also provided:" -msgstr "" +msgstr "Les méthodes suivantes sont aussi disponibles :" #: ../Doc/library/lzma.rst:110 msgid "" @@ -165,6 +203,10 @@ msgid "" "of data will be returned, unless EOF has been reached. The exact number of " "bytes returned is unspecified (the *size* argument is ignored)." msgstr "" +"Renvoie la donnée en mémoire-tampon sans progression de la position du " +"fichier. Au moins un octet de donnée sera renvoyé, jusqu'à ce que l'EOF soit " +"atteinte. Le nombre exact d'octets renvoyés demeure indéterminé (l'argument " +"*taille* est ignoré). " #: ../Doc/library/lzma.rst:114 msgid "" @@ -183,49 +225,61 @@ 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/lzma.rst:131 msgid "Compressing and decompressing data in memory" -msgstr "" +msgstr "Compresser et décompresser une donnée en mémoire" #: ../Doc/library/lzma.rst:135 msgid "" "Create a compressor object, which can be used to compress data incrementally." msgstr "" +"Créé un objet compresseur, qui peut être utilisé pour compresser " +"incrémentalement une donnée." #: ../Doc/library/lzma.rst:137 msgid "" "For a more convenient way of compressing a single chunk of data, see :func:" "`compress`." msgstr "" +"Pour une façon plus adaptée de compresser un seul extrait de donnée, voir :" +"func:`compress`." #: ../Doc/library/lzma.rst:140 msgid "" "The *format* argument specifies what container format should be used. " "Possible values are:" msgstr "" +"L'argument *format* définit quel format de conteneur sera mis en œuvre. Les " +"valeurs possibles sont :" #: ../Doc/library/lzma.rst:144 msgid ":const:`FORMAT_XZ`: The ``.xz`` container format." -msgstr "" +msgstr ":const:`FORMAT_XZ`: Le format du conteneur ``.xz``." #: ../Doc/library/lzma.rst:144 msgid "This is the default format." -msgstr "" +msgstr "C'est le format par défaut." #: ../Doc/library/lzma.rst:148 msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." -msgstr "" +msgstr ":const:`FORMAT_ALONE`: L'ancien format du conteneur ``.lzma``." #: ../Doc/library/lzma.rst:147 msgid "" "This format is more limited than ``.xz`` -- it does not support integrity " "checks or multiple filters." msgstr "" +"Ce format est davantage limité que ``.xz`` --il ne supporte pas les " +"vérifications d'intégrité ou les filtres multiples." #: ../Doc/library/lzma.rst:154 msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format." msgstr "" +":const:`FORMAT_RAW`: Un flux de données brut, n'utilisant aucun format de " +"conteneur." #: ../Doc/library/lzma.rst:151 msgid "" @@ -234,6 +288,11 @@ msgid "" "decompression). Additionally, data compressed in this manner cannot be " "decompressed using :const:`FORMAT_AUTO` (see :class:`LZMADecompressor`)." msgstr "" +"Ce format spécifique ne prend pas en charge les vérifications d'intégrité et " +"exige systématiquement la définition d'une chaîne de filtrage personnalisée " +"(à la fois pour la compression et la décompression). Par ailleurs, les " +"données compressées par ce biais ne peuvent pas être décompressées par " +"l'usage de :const:`FORMAT_AUTO` (voir : :class:`LZMADecompressor`)." #: ../Doc/library/lzma.rst:156 msgid "" @@ -241,31 +300,46 @@ msgid "" "compressed data. This check is used when decompressing, to ensure that the " "data has not been corrupted. Possible values are:" msgstr "" +"L'argument *check* détermine le type de vérification d'intégrité à exploiter " +"avec la donnée compressée. Cette vérification est déclenchée lors de la " +"décompression, pour garantir que la donnée n'a pas été corrompue. Les " +"valeurs possibles sont :" #: ../Doc/library/lzma.rst:160 msgid "" ":const:`CHECK_NONE`: No integrity check. This is the default (and the only " "acceptable value) for :const:`FORMAT_ALONE` and :const:`FORMAT_RAW`." msgstr "" +":const:`CHECK_NONE`: Pas de vérification d'intégrité. C'est la valeur par " +"défaut (et la seule valeur acceptable) pour :const:`FORMAT_ALONE` et :const:" +"`FORMAT_RAW`." #: ../Doc/library/lzma.rst:164 msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check." msgstr "" +":const:`CHECK_CRC32`: Vérification par Redondance Cyclique 32-bit (*Cyclic " +"Redundancy Check*)." #: ../Doc/library/lzma.rst:166 msgid "" ":const:`CHECK_CRC64`: 64-bit Cyclic Redundancy Check. This is the default " "for :const:`FORMAT_XZ`." msgstr "" +":const:`CHECK_CRC64`: Vérification par Redondance Cyclique 64-bit (*Cyclic " +"Redundancy Check*). Valeur par défaut pour :const:`FORMAT_XZ`." #: ../Doc/library/lzma.rst:169 msgid ":const:`CHECK_SHA256`: 256-bit Secure Hash Algorithm." msgstr "" +":const:`CHECK_SHA256`: Algorithme de Hachage Sécurisé 256-bit (*Secure Hash " +"Algorithm*)." #: ../Doc/library/lzma.rst:171 msgid "" "If the specified check is not supported, an :class:`LZMAError` is raised." msgstr "" +"Si le type de vérification n'est pas supporté par le système, une erreur de " +"type :class:`LZMAError` est levée." #: ../Doc/library/lzma.rst:173 msgid "" @@ -273,6 +347,10 @@ msgid "" "level (with the *preset* argument), or in detail as a custom filter chain " "(with the *filters* argument)." msgstr "" +"Les réglages de compression peuvent être définis soit comme un pré-réglage " +"de niveau de compression (avec l'argument *preset*) ; soit de façon " +"détaillée comme une chaîne particulière de filtres (avec l'argument " +"*filters*)." #: ../Doc/library/lzma.rst:177 msgid "" @@ -282,6 +360,12 @@ msgid "" "behavior is to use :const:`PRESET_DEFAULT` (preset level ``6``). Higher " "presets produce smaller output, but make the compression process slower." msgstr "" +"L'argument *preset* (s'il est fourni) doit être un entier compris entre `0`` " +"et ``9`` (inclus), éventuellement relié à OR avec la constante :const:" +"`PRESET_EXTREME`. Si aucun *preset* ni *filters* ne ont définis, le " +"comportement par défaut consiste à utiliser la :const:`PRESET_DEFAULT` " +"(niveau par défaut : ``6``). Des pré-réglages plus élevés entraîne une " +"sortie plus petite, mais rend le processus de compression plus lent." #: ../Doc/library/lzma.rst:186 msgid "" @@ -291,12 +375,20 @@ msgid "" "`LZMACompressor` object can be as high as 800 MiB. For this reason, it is " "generally best to stick with the default preset." msgstr "" +"En plus d'être plus gourmande en CPU, la compression avec des préréglages " +"plus élevés nécessite beaucoup plus de mémoire (et produit des résultats qui " +"nécessitent plus de mémoire pour décompresser). Par exemple, avec le " +"préréglage ``9``, l'objet d'une :class:`LZMACompressor` peut dépasser " +"largement les 800 Mo. Pour cette raison, il est généralement préférable de " +"respecter le préréglage par défaut." #: ../Doc/library/lzma.rst:192 msgid "" "The *filters* argument (if provided) should be a filter chain specifier. " "See :ref:`filter-chain-specs` for details." msgstr "" +"L'argument *filters* (s'il est défini) doit être un critère de la chaîne de " +"filtrage. Voir :ref:`filter-chain-specs` pour plus de précisions." #: ../Doc/library/lzma.rst:197 msgid "" @@ -306,12 +398,21 @@ msgid "" "meth:`flush`. The returned data should be concatenated with the output of " "any previous calls to :meth:`compress`." msgstr "" +"Une *data* compressée (un objet :class:`bytes`), renvoie un objet :class:" +"`bytes` contenant une donnée compressée pour au moins une partie de " +"l'entrée. Certaine *data* peuvent être mise en tampon, pour être utiliser " +"lors de prochains appels par :meth:`compress` et :meth:`flush`. La donnée " +"renvoyée pourra être concaténée avec la sortie d'appels précédents vers la " +"méthode :meth:`compress`." #: ../Doc/library/lzma.rst:205 msgid "" "Finish the compression process, returning a :class:`bytes` object containing " "any data stored in the compressor's internal buffers." msgstr "" +"Conclut l'opération de compression, en renvoyant l'objet :class:`bytes` " +"constitué de toutes les données stockées dans les tampons interne du " +"compresseur." #: ../Doc/library/lzma.rst:208 msgid "The compressor cannot be used after this method has been called." @@ -322,12 +423,16 @@ msgid "" "Create a decompressor object, which can be used to decompress data " "incrementally." msgstr "" +"Créé un objet de décompression, pour décompresser de façon incrémentale une " +"donnée." #: ../Doc/library/lzma.rst:216 msgid "" "For a more convenient way of decompressing an entire compressed stream at " "once, see :func:`decompress`." msgstr "" +"Pour un moyen plus pratique de décompresser un flux compressé complet en une " +"seule fois, voir :func:`decompress`." #: ../Doc/library/lzma.rst:219 msgid "" @@ -336,6 +441,10 @@ msgid "" "``.lzma`` files. Other possible values are :const:`FORMAT_XZ`, :const:" "`FORMAT_ALONE`, and :const:`FORMAT_RAW`." msgstr "" +"L'argument *format* spécifie le format du conteneur à utiliser. La valeur " +"par défaut est :const:`FORMAT_AUTO` pouvant à la fois décompresser les " +"fichiers ``.xz`` et ``.lzma``. D'autres valeurs sont possibles comme :const:" +"`FORMAT_XZ`, :const:`FORMAT_ALONE`, et :const:`FORMAT_RAW`." #: ../Doc/library/lzma.rst:224 msgid "" @@ -344,6 +453,10 @@ msgid "" "will fail with an :class:`LZMAError` if it is not possible to decompress the " "input within the given memory limit." msgstr "" +"L'argument *memlimit* spécifie une limite (en octets) sur la quantité de " +"mémoire que le décompresseur peut utiliser. Lorsque cet argument est " +"utilisé, la décompression échouera avec une :class:`LZMAError` s'il n'est " +"pas possible de décompresser l'entrée dans la limite mémoire disponible." #: ../Doc/library/lzma.rst:229 msgid "" @@ -352,6 +465,10 @@ msgid "" "const:`FORMAT_RAW`, but should not be used for other formats. See :ref:" "`filter-chain-specs` for more information about filter chains." msgstr "" +"L'argument *filters* spécifie la chaîne de filtrage utilisée pour créer le " +"flux décompressé. Cet argument est requis si *format* est :const:" +"`FORMAT_RAW`, mais ne doit pas être utilisé pour d'autres formats. Voir :ref:" +"`filter-chain-specs` pour plus d'informations sur les chaînes de filtrage." #: ../Doc/library/lzma.rst:235 msgid "" @@ -360,6 +477,10 @@ msgid "" "decompress a multi-stream input with :class:`LZMADecompressor`, you must " "create a new decompressor for each stream." msgstr "" +"Cette classe ne gère pas de manière transparente les entrées contenant " +"plusieurs flux compressés, contrairement à :func:`decompress` et :class:" +"`LZMAFile`. Pour décompresser une entrée multi-flux avec :class:" +"`LZMADecompressor`, vous devez créer un nouveau décompresseur à chaque flux." #: ../Doc/library/lzma.rst:242 msgid "" @@ -368,6 +489,11 @@ msgid "" "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/lzma.rst:248 msgid "" @@ -377,6 +503,11 @@ 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/lzma.rst:255 msgid "" @@ -384,6 +515,9 @@ msgid "" "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" +"Si toutes les données 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/lzma.rst:260 msgid "" @@ -391,6 +525,9 @@ msgid "" "`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/lzma.rst:264 msgid "Added the *max_length* parameter." @@ -402,10 +539,13 @@ msgid "" "`CHECK_UNKNOWN` until enough of the input has been decoded to determine what " "integrity check it uses." msgstr "" +"L'ID de la vérification d'intégrité exploité par le flux entrant. Il s'agit " +"de :const:`CHECK_UNKNOWN` tant que ce flux a été décodé pour déterminer quel " +"type de vérification d'intégrité à été utilisé." #: ../Doc/library/lzma.rst:275 msgid "``True`` if the end-of-stream marker has been reached." -msgstr "" +msgstr "``True`` si le marqueur de fin de flux a été atteint." #: ../Doc/library/lzma.rst:279 msgid "Data found after the end of the compressed stream." @@ -413,47 +553,59 @@ msgstr "Donnée trouvée après la fin du flux compressé." #: ../Doc/library/lzma.rst:281 msgid "Before the end of the stream is reached, this will be ``b\"\"``." -msgstr "" +msgstr "Avant d'atteindre la fin du flux, ce sera ``b\"\"``." #: ../Doc/library/lzma.rst:285 msgid "" "``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/lzma.rst:292 msgid "" "Compress *data* (a :class:`bytes` object), returning the compressed data as " "a :class:`bytes` object." msgstr "" +"*data* compressée (un objet :class:`bytes`), renvoyant une donnée compressée " +"comme un objet :class:`bytes`." #: ../Doc/library/lzma.rst:295 msgid "" "See :class:`LZMACompressor` above for a description of the *format*, " "*check*, *preset* and *filters* arguments." msgstr "" +"Voir :class:`LZMACompressor` ci-dessus pour une description des arguments " +"*format*, *check*, *preset* et *filters*." #: ../Doc/library/lzma.rst:301 msgid "" "Decompress *data* (a :class:`bytes` object), returning the uncompressed data " "as a :class:`bytes` object." msgstr "" +"Décompresse *data* (un objet :class:`bytes` ), et retourne la donnée " +"décompressée sous la forme d'un objet :class:`bytes`." #: ../Doc/library/lzma.rst:304 msgid "" "If *data* is the concatenation of multiple distinct compressed streams, " "decompress all of these streams, and return the concatenation of the results." msgstr "" +"Si *data* est le résultat de la concaténation de plusieurs flux compressés " +"et distincts , il les décompresse tous, et retourne les résultats concaténés." #: ../Doc/library/lzma.rst:307 msgid "" "See :class:`LZMADecompressor` above for a description of the *format*, " "*memlimit* and *filters* arguments." msgstr "" +"Voir :class:`LZMADecompressor` ci-dessus pour une description des arguments " +"*format*, *memlimit* et *filters*." #: ../Doc/library/lzma.rst:312 msgid "Miscellaneous" -msgstr "" +msgstr "Divers" #: ../Doc/library/lzma.rst:316 msgid "Returns true if the given integrity check is supported on this system." @@ -465,10 +617,14 @@ msgid "" "`CHECK_CRC64` and :const:`CHECK_SHA256` may be unavailable if you are using " "a version of :program:`liblzma` that was compiled with a limited feature set." msgstr "" +":const:`CHECK_NONE` et :const:`CHECK_CRC32` sont toujours pris en charge. :" +"const:`CHECK_CRC64` et :const:`CHECK_SHA256` peuvent être indisponibles si " +"vous utilisez une version de :program:`liblzma` compilée avec des " +"possibilités restreintes." #: ../Doc/library/lzma.rst:327 msgid "Specifying custom filter chains" -msgstr "" +msgstr "Préciser des chaînes de filtre personnalisées" #: ../Doc/library/lzma.rst:329 msgid "" @@ -477,24 +633,31 @@ msgid "" "must contain the key ``\"id\"``, and may contain additional keys to specify " "filter-dependent options. Valid filter IDs are as follows:" msgstr "" +"Une chaîne de filtres est une séquence de dictionnaires, où chaque " +"dictionnaire contient l'ID et les options pour chaque filtre. Le moindre " +"dictionnaire contient la clé ``\"id\"`` et peut aussi contenir d'autres clés " +"pour préciser chaque options relative au filtre déclaré. Les ID valides des " +"filtres sont définies comme suit :" #: ../Doc/library/lzma.rst:336 msgid "Compression filters:" -msgstr "" +msgstr "Filtres de compression:" #: ../Doc/library/lzma.rst:335 msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" -msgstr "" +msgstr ":const:`FILTER_LZMA1` (à utiliser avec :const:`FORMAT_ALONE`)" #: ../Doc/library/lzma.rst:336 msgid "" ":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:" "`FORMAT_RAW`)" msgstr "" +":const:`FILTER_LZMA2` (à utiliser avec :const:`FORMAT_XZ` et :const:" +"`FORMAT_RAW`)" #: ../Doc/library/lzma.rst:339 msgid "Delta filter:" -msgstr "" +msgstr "Filtre Delta:" #: ../Doc/library/lzma.rst:339 msgid ":const:`FILTER_DELTA`" @@ -502,7 +665,7 @@ msgstr ":const:`FILTER_DELTA`" #: ../Doc/library/lzma.rst:347 msgid "Branch-Call-Jump (BCJ) filters:" -msgstr "" +msgstr "Filtres Branch-Call-Jump (BCJ):" #: ../Doc/library/lzma.rst:342 msgid ":const:`FILTER_X86`" @@ -534,60 +697,78 @@ msgid "" "filter in the chain must be a compression filter, and any other filters must " "be delta or BCJ filters." msgstr "" +"Une chaîne de filtres peut contenir jusqu'à 4 filtres, et ne peut pas être " +"vide. Le dernier filtre de cette chaîne devra être un filtre de compression, " +"et tous les autres doivent être des filtres delta ou BCJ." #: ../Doc/library/lzma.rst:353 msgid "" "Compression filters support the following options (specified as additional " "entries in the dictionary representing the filter):" msgstr "" +"Les filtres de compression contiennent les options suivantes (définies comme " +"entrées additionnelles dans le dictionnaire qui représente le filtre) :" #: ../Doc/library/lzma.rst:356 msgid "" "``preset``: A compression preset to use as a source of default values for " "options that are not specified explicitly." msgstr "" +"``preset``: Un pré-réglage à exploiter comme une source de valeurs par " +"défaut pour les options qui ne sont pas explicitement définies." #: ../Doc/library/lzma.rst:358 msgid "" "``dict_size``: Dictionary size in bytes. This should be between 4 KiB and " "1.5 GiB (inclusive)." msgstr "" +"``dict_size``: La taille du dictionnaire en octets. Comprise entre 4 Ko et " +"1.5 Go (inclus)." #: ../Doc/library/lzma.rst:360 msgid "``lc``: Number of literal context bits." -msgstr "" +msgstr "``lc``: Nombre de bits dans le contexte littéral." #: ../Doc/library/lzma.rst:361 msgid "" "``lp``: Number of literal position bits. The sum ``lc + lp`` must be at most " "4." msgstr "" +"``lp``: Nombre de bits dans la position littérale. La somme ``lc + lp`` " +"devra être au moins 4." #: ../Doc/library/lzma.rst:363 msgid "``pb``: Number of position bits; must be at most 4." -msgstr "" +msgstr "``pb``: Nombre de bits à cette position ; au moins 4." #: ../Doc/library/lzma.rst:364 msgid "``mode``: :const:`MODE_FAST` or :const:`MODE_NORMAL`." -msgstr "" +msgstr "``mode``: :const:`MODE_FAST` ou :const:`MODE_NORMAL`." #: ../Doc/library/lzma.rst:365 msgid "" "``nice_len``: What should be considered a \"nice length\" for a match. This " "should be 273 or less." msgstr "" +"``nice_len``: Ce qui devra être pris en compte comme \"longueur appréciable" +"\" pour une recherche. Il devra être 273 ou moins." #: ../Doc/library/lzma.rst:367 msgid "" "``mf``: What match finder to use -- :const:`MF_HC3`, :const:`MF_HC4`, :const:" "`MF_BT2`, :const:`MF_BT3`, or :const:`MF_BT4`." msgstr "" +"``mf``: Quel type d'index de recherche à utiliser -- :const:`MF_HC3`, :const:" +"`MF_HC4`, :const:`MF_BT2`, :const:`MF_BT3`, ou :const:`MF_BT4`." #: ../Doc/library/lzma.rst:369 msgid "" "``depth``: Maximum search depth used by match finder. 0 (default) means to " "select automatically based on other filter options." msgstr "" +"``depth``: Profondeur maximum de la recherche, utilisée par l'index de " +"recherche. 0 (défaut) signifie une sélection automatique basée sur des " +"options de filtres différents." #: ../Doc/library/lzma.rst:372 msgid "" @@ -597,6 +778,11 @@ msgid "" "subtracted. The default is 1, i.e. take the differences between adjacent " "bytes." msgstr "" +"Le filtre delta stocke les différences entre octets, induisant davantage " +"d'entrées répétitives pour le compresseur, selon les circonstances. Il " +"support une option, ``dist``. Ce paramètre définit la distance entre les " +"octets à soustraire. Par défaut : 1, soit la différence entre des octets " +"adjacents." #: ../Doc/library/lzma.rst:377 msgid "" @@ -607,6 +793,12 @@ msgid "" "specifies the address that should be mapped to the beginning of the input " "data. The default is 0." msgstr "" +"Les filtres BCJ sont conçus pour être appliqués sur du langage machine. Ils " +"convertissent les branches relatives, les appels et les sauts dans le code à " +"des fins d'adressage strict, dans le but d'augmenter la redondance mise en " +"jeu par le compresseur. Ils ne supportent qu'une seule option : " +"``start_offset``, pour définir l'adresse où sera déclenché le début de la " +"donnée d'entrée. Par défaut : 0." #: ../Doc/library/lzma.rst:385 msgid "Examples" @@ -614,24 +806,25 @@ msgstr "Exemples" #: ../Doc/library/lzma.rst:387 msgid "Reading in a compressed file::" -msgstr "" +msgstr "Lire un fichier compressé::" #: ../Doc/library/lzma.rst:393 msgid "Creating a compressed file::" -msgstr "" +msgstr "Créer un fichier compressé::" #: ../Doc/library/lzma.rst:400 msgid "Compressing data in memory::" -msgstr "" +msgstr "Compresser des données en mémoire ::" #: ../Doc/library/lzma.rst:406 msgid "Incremental compression::" -msgstr "" +msgstr "Compression incrémentale ::" #: ../Doc/library/lzma.rst:417 msgid "Writing compressed data to an already-open file::" -msgstr "" +msgstr "Écrire des données compressées dans un fichier préalablement ouvert ::" #: ../Doc/library/lzma.rst:426 msgid "Creating a compressed file using a custom filter chain::" msgstr "" +"Créer un fichier compressé en utilisant une chaîne de filtre personnalisée ::" diff --git a/library/macpath.po b/library/macpath.po index 85ed5ef4a..e93b4c7e3 100644 --- a/library/macpath.po +++ b/library/macpath.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/macpath.rst:2 msgid ":mod:`macpath` --- Mac OS 9 path manipulation functions" -msgstr ":mod:`macpath` --- Fonctions de manipulation de chemins pour Mac OS 9" +msgstr ":mod:`macpath` — Fonctions de manipulation de chemins pour Mac OS 9" #: ../Doc/library/macpath.rst:7 msgid "**Source code:** :source:`Lib/macpath.py`" diff --git a/library/mailbox.po b/library/mailbox.po index 696d75cee..6eda96c21 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\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" +"PO-Revision-Date: 2019-02-26 15:35+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -17,10 +17,11 @@ msgstr "" #: ../Doc/library/mailbox.rst:2 msgid ":mod:`mailbox` --- Manipulate mailboxes in various formats" msgstr "" +":mod:`mailbox` — Manipuler les boîtes de courriels dans différents formats" #: ../Doc/library/mailbox.rst:10 msgid "**Source code:** :source:`Lib/mailbox.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/mailbox.py`" #: ../Doc/library/mailbox.rst:14 msgid "" @@ -31,22 +32,30 @@ msgid "" "message.Message` class with format-specific state and behavior. Supported " "mailbox formats are Maildir, mbox, MH, Babyl, and MMDF." msgstr "" +"Ce module définit deux classes, :class:`Mailbox` et :class:`Message`, pour " +"accéder et manipuler les boîtes de courriel sur le disque et les messages " +"qu'elles contiennent. :class:`Mailbox` offre une interface ressemblant aux " +"dictionnaires avec des clés et des messages. La classe :class:`Message` " +"étend le module :mod:`email.message` de la classe :class:`~email.message." +"Message` avec un état et un comportement spécifiques à son format. Les " +"formats de boîtes de courriel gérés sont *Maildir*, *mbox*, *MH*, *Babyl* et " +"*MMDF*." #: ../Doc/library/mailbox.rst:24 msgid "Module :mod:`email`" -msgstr "" +msgstr "Module :mod:`email`" #: ../Doc/library/mailbox.rst:25 msgid "Represent and manipulate messages." -msgstr "" +msgstr "Représente et manipule des messages." #: ../Doc/library/mailbox.rst:31 msgid ":class:`Mailbox` objects" -msgstr "" +msgstr "Objets :class:`Mailbox`" #: ../Doc/library/mailbox.rst:35 msgid "A mailbox, which may be inspected and modified." -msgstr "" +msgstr "Une boîte mail, qui peut être inspectée et modifiée." #: ../Doc/library/mailbox.rst:37 msgid "" @@ -54,6 +63,10 @@ msgid "" "instantiated. Instead, format-specific subclasses should inherit from :" "class:`Mailbox` and your code should instantiate a particular subclass." msgstr "" +"La classe :class:`Mailbox` définit une interface et n'est pas destinée à " +"être instanciée. Les sous-classes de format spécifique doivent plutôt " +"hériter de :class:`Mailbox` et votre code doit instancier une sous-classe " +"particulière." #: ../Doc/library/mailbox.rst:41 msgid "" @@ -64,6 +77,12 @@ msgid "" "corresponding message is modified, such as by replacing it with another " "message." msgstr "" +"L'interface :class:`Mailbox` est un compatible avec celle des dictionnaires, " +"avec de courtes clés correspondant aux messages. Les clés sont générées par " +"l'instance :class:`Mailbox` avec laquelle elles sont utilisées et n'ont de " +"sens que pour cette instance :class:`Mailbox`. Une clé continue d'identifier " +"un message même si le message correspondant est modifié ou remplacé par un " +"autre message." #: ../Doc/library/mailbox.rst:47 msgid "" @@ -71,6 +90,10 @@ msgid "" "method :meth:`add` and removed using a ``del`` statement or the set-like " "methods :meth:`remove` and :meth:`discard`." msgstr "" +"Les messages peuvent être ajoutés à une instance :class:`Mailbox` en " +"utilisant la méthode :meth:`add` (comme pour les ensembles), et supprimés en " +"utilisant soit l'instruction ``del`` soit les méthodes :meth:`remove` et :" +"meth:`discard` (comme pour les ensembles)." #: ../Doc/library/mailbox.rst:51 msgid "" @@ -82,6 +105,14 @@ msgid "" "copied. In neither case is a reference to the message representation kept by " "the :class:`Mailbox` instance." msgstr "" +"La sémantique de l'interface :class:`Mailbox` diffère de la sémantique des " +"dictionnaires sur plusieurs aspects. À chaque fois qu'un message est " +"demandé, une nouvelle représentation (généralement une instance :class:" +"`Message`) est générée en se basant sur l'état actuel de la boîte mail. De " +"la même manière, lorsqu'un message est ajouté à l'instance :class:`Mailbox`, " +"le contenu de la représentation du message donné est copié. En aucun cas une " +"référence vers la représentation du message n'est gardée par l'instance :" +"class:`Mailbox`." #: ../Doc/library/mailbox.rst:59 msgid "" @@ -93,6 +124,15 @@ msgid "" "silently skipped, though using a key from an iterator may result in a :exc:" "`KeyError` exception if the corresponding message is subsequently removed." msgstr "" +"L'itérateur par défaut de :class:`Mailbox` itère sur les représentations des " +"messages et pas sur les clés (comme le fait par défaut l'itérateur des " +"dictionnaires). De plus, les modifications sur une boîte mail durant " +"l'itération sont sûres et clairement définies. Les messages ajoutés à la " +"boîte mail après la création d'un itérateur ne sont pas vus par l'itérateur. " +"Les messages supprimés de la boîte mail avant que l'itérateur les traite " +"seront ignorés silencieusement. Toutefois, utiliser une clé depuis un " +"itérateur peut aboutir à une exception :exc:`KeyError` si le message " +"correspondant est supprimé par la suite." #: ../Doc/library/mailbox.rst:70 msgid "" @@ -105,15 +145,25 @@ msgid "" "Failing to lock the mailbox runs the risk of losing messages or corrupting " "the entire mailbox." msgstr "" +"Soyez très prudent lorsque vous éditez des boîtes mail qui peuvent être " +"modifiées par d'autres processus. Le format de boîte mail le plus sûr à " +"utiliser pour ces tâches est *Maildir*, essayez d'éviter les formats à " +"fichier unique tels que *mbox* afin d'empêcher les écritures concurrentes. " +"Si vous modifiez une boîte mail, vous *devez* la verrouiller en appelant les " +"méthodes :meth:`lock` et :meth:`unlock` *avant* de lire les messages dans le " +"fichier ou d'y appliquer des changements en y ajoutant ou supprimant des " +"messages. Ne pas verrouiller la boîte mail vous fait prendre le risque de " +"perdre des messages ou de corrompre la boîte mail entière." #: ../Doc/library/mailbox.rst:79 msgid ":class:`Mailbox` instances have the following methods:" -msgstr "" +msgstr "Les instances :class:`Mailbox` contiennent les méthodes suivantes :" #: ../Doc/library/mailbox.rst:84 msgid "" "Add *message* to the mailbox and return the key that has been assigned to it." msgstr "" +"Ajoute *message* à la boîte mail et renvoie la clé qui lui a été assigné." #: ../Doc/library/mailbox.rst:87 msgid "" @@ -125,14 +175,22 @@ msgid "" "format-specific information is used. Otherwise, reasonable defaults for " "format-specific information are used." msgstr "" +"Le paramètre *message* peut être une instance :class:`Message`, une " +"instance :class:`email.message.Message`, une chaîne de caractères, une " +"séquence d'octets ou un objet fichier-compatible (qui doit être ouvert en " +"mode binaire). Si *message* est une instance de la sous-classe :class:" +"`Message` au format correspondant (par exemple s'il s'agit d'une instance :" +"class:`mboxMessage` et d'une instance :class:`mbox`), les informations " +"spécifiques à son format sont utilisées. Sinon, des valeurs par défaut " +"raisonnables pour son format sont utilisées." #: ../Doc/library/mailbox.rst:96 msgid "Support for binary input was added." -msgstr "" +msgstr "Ajout de la gestion des messages binaires." #: ../Doc/library/mailbox.rst:104 msgid "Delete the message corresponding to *key* from the mailbox." -msgstr "" +msgstr "Supprime le message correspondant à *key* dans la boîte mail." #: ../Doc/library/mailbox.rst:106 msgid "" @@ -142,12 +200,20 @@ msgid "" "`discard` may be preferred if the underlying mailbox format supports " "concurrent modification by other processes." msgstr "" +"Si ce message n'existe pas, une exception :exc:`KeyError` est levée si la " +"méthode a été appelée en tant que :meth:`remove` ou :meth:`__delitem__` mais " +"aucune exception n'est levée si la méthode a été appelée en tant que :meth:" +"`discard`. Vous préférerez sûrement le comportement de :meth:`discard` si le " +"format de boîte mail sous-jacent accepte la modification concurrente par les " +"autres processus." #: ../Doc/library/mailbox.rst:115 msgid "" "Replace the message corresponding to *key* with *message*. Raise a :exc:" "`KeyError` exception if no message already corresponds to *key*." msgstr "" +"Remplace le message correspondant à *key* par *message*. Lève une exception :" +"exc:`KeyError` s'il n'y a pas déjà de message correspondant à *key*." #: ../Doc/library/mailbox.rst:118 msgid "" @@ -160,12 +226,24 @@ msgid "" "specific information of the message that currently corresponds to *key* is " "left unchanged." msgstr "" +"Comme pour :meth:`add`, le paramètre *message* peut être une instance :class:" +"`Message`, une instance :class:`email.message.Message`, une chaîne de " +"caractères, une chaîne d'octets ou un objet fichier-compatible (qui doit " +"être ouvert en mode binaire). Si *message* est une instance de la sous-" +"classe :class:`Message` au format correspondant (par exemple s'il s'agit " +"d'une instance :class:`mboxMessage` et d'une instance :class:`mbox`), les " +"informations spécifiques à son format sont utilisées. Sinon, les " +"informations spécifiques au format du message qui correspond à *key* ne sont " +"modifiées." #: ../Doc/library/mailbox.rst:132 msgid "" "Return an iterator over all keys if called as :meth:`iterkeys` or return a " "list of keys if called as :meth:`keys`." msgstr "" +"Renvoie un itérateur sur toutes les clés s'il est appelé en tant que :meth:" +"`iterkeys` ou renvoie une liste de clés s'il est appelé en tant que :meth:" +"`keys`." #: ../Doc/library/mailbox.rst:140 msgid "" @@ -176,12 +254,21 @@ msgid "" "message factory was specified when the :class:`Mailbox` instance was " "initialized." msgstr "" +"Renvoie un itérateur sur les représentations de tous les messages s'il est " +"appelé en tant que :meth:`itervalues` ou :meth:`__iter__` et renvoie une " +"liste de ces représentations s'il est appelé en tant que :meth:`values`. Les " +"messages sont représentés en tant qu'instances de la sous-classe :class:" +"`Message` au format correspondant à moins qu'une fabrique de messages " +"personnalisée soit spécifiée lorsque l'instance :class:`Mailbox` a été " +"initialisée." #: ../Doc/library/mailbox.rst:149 msgid "" "The behavior of :meth:`__iter__` is unlike that of dictionaries, which " "iterate over keys." msgstr "" +"Le comportement de :meth:`__iter__` diffère de celui d'un dictionnaire, pour " +"lequel l'itération se fait sur ses clés." #: ../Doc/library/mailbox.rst:156 msgid "" @@ -192,6 +279,13 @@ msgid "" "subclass unless a custom message factory was specified when the :class:" "`Mailbox` instance was initialized." msgstr "" +"Renvoie un itérateur sur les paires (*key*, *message*), où *key* est une clé " +"et *message* est la représentation d'un message, si appelée en tant que :" +"meth:`iteritems` ; ou renvoie une liste de paires semblables si appelée en " +"tant que :meth:`items`. Les messages sont représentés comme instances au " +"format approprié et spécifique d'une sous-classe de :class:`Message` à moins " +"qu'une moulinette personnalisée de message ait été spécifiée lors de " +"l'initialisation de l'instance :class:`Mailbox`." #: ../Doc/library/mailbox.rst:167 msgid "" @@ -259,7 +353,7 @@ msgstr "" #: ../Doc/library/mailbox.rst:232 msgid "Delete all messages from the mailbox." -msgstr "" +msgstr "Supprime tous les messages de la boîte de courriel." #: ../Doc/library/mailbox.rst:237 msgid "" @@ -1443,7 +1537,7 @@ msgstr "" #: ../Doc/library/mailbox.rst:1134 msgid "Sequence" -msgstr "" +msgstr "Séquence" #: ../Doc/library/mailbox.rst:1136 ../Doc/library/mailbox.rst:1223 msgid "unseen" @@ -1646,16 +1740,20 @@ msgid "" "When a :class:`BabylMessage` instance is created based upon an :class:" "`MHMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`BabylMessage` est créée sur la base d'une " +"instance :class:`MHMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1337 msgid ":class:`MMDFMessage`" -msgstr "" +msgstr ":class:`MMDFMessage`" #: ../Doc/library/mailbox.rst:1342 msgid "" "A message with MMDF-specific behaviors. Parameter *message* has the same " "meaning as with the :class:`Message` constructor." msgstr "" +"Un message avec des comportements spécifiques à *MMDF*. Le paramètre " +"*message* a le même sens que pour le constructeur de :class:`Message`." #: ../Doc/library/mailbox.rst:1345 msgid "" @@ -1664,18 +1762,27 @@ msgid "" "\"From \". Likewise, flags that indicate the state of the message are " "typically stored in :mailheader:`Status` and :mailheader:`X-Status` headers." msgstr "" +"Comme pour le message d'une boîte de courriel *mbox*, les messages *MMDF* " +"sont stockés avec l'adresse de l'expéditeur et la date d'expédition dans la " +"ligne initiale commençant avec « From ». De même, les options indiquant " +"l'état du message sont stockées dans les en-têtes :mailheader:`Status` et :" +"mailheader:`X-Status`." #: ../Doc/library/mailbox.rst:1350 msgid "" "Conventional flags for MMDF messages are identical to those of mbox message " "and are as follows:" msgstr "" +"Les options conventionnelles des messages *MMDF* sont identiques à celles de " +"message *mbox* et sont les suivantes :" #: ../Doc/library/mailbox.rst:1371 msgid "" ":class:`MMDFMessage` instances offer the following methods, which are " "identical to those offered by :class:`mboxMessage`:" msgstr "" +"Les méthodes des instances :class:`MMDFMessage` sont identiques à celles de :" +"class:`mboxMessage` et sont les suivantes :" #: ../Doc/library/mailbox.rst:1420 msgid "" @@ -1684,18 +1791,26 @@ msgid "" "class:`MaildirMessage` instance's delivery date, and the following " "conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`MaildirMessage`, la ligne « From » est générée sur la base " +"de la date de remise de l'instance :class:`MaildirMessage` et les " +"conversions suivantes ont lieu :" #: ../Doc/library/mailbox.rst:1439 msgid "" "When an :class:`MMDFMessage` instance is created based upon an :class:" "`MHMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`MHMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1454 msgid "" "When an :class:`MMDFMessage` instance is created based upon a :class:" "`BabylMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`BabylMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1469 msgid "" @@ -1703,10 +1818,13 @@ msgid "" "`mboxMessage` instance, the \"From \" line is copied and all flags directly " "correspond:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`mboxMessage`, la ligne « From » est copiée et toutes les " +"options ont une correspondance directe :" #: ../Doc/library/mailbox.rst:1474 msgid ":class:`mboxMessage` state" -msgstr "" +msgstr "état de :class:`mboxMessage`" #: ../Doc/library/mailbox.rst:1489 msgid "Exceptions" @@ -1716,10 +1834,13 @@ msgstr "Exceptions" msgid "" "The following exception classes are defined in the :mod:`mailbox` module:" msgstr "" +"Les exceptions de classes suivantes sont définies dans le module :mod:" +"`mailbox` :" #: ../Doc/library/mailbox.rst:1496 msgid "The based class for all other module-specific exceptions." msgstr "" +"Classe de base pour toutes les autres exceptions spécifiques à ce module." #: ../Doc/library/mailbox.rst:1501 msgid "" @@ -1728,12 +1849,18 @@ msgid "" "(and with the *create* parameter set to ``False``), or when opening a folder " "that does not exist." msgstr "" +"Levée lorsqu'une boîte de courriel est attendue mais introuvable, comme " +"quand on instancie une sous-classe :class:`Mailbox` avec un chemin qui " +"n'existe pas (et avec le paramètre *create* fixé à ``False``), ou quand on " +"ouvre un répertoire qui n'existe pas." #: ../Doc/library/mailbox.rst:1508 msgid "" "Raised when a mailbox is not empty but is expected to be, such as when " "deleting a folder that contains messages." msgstr "" +"Levée lorsqu'une boîte de courriel n'est pas vide mais devrait l'être, comme " +"lorsqu'on supprime un répertoire contenant des messages." #: ../Doc/library/mailbox.rst:1514 msgid "" @@ -1742,12 +1869,19 @@ msgid "" "that another program already holds a lock, or when a uniquely-generated file " "name already exists." msgstr "" +"Levée lorsqu'une condition liée à la boîte de courriel est hors de contrôle " +"du programme et l'empêche de se poursuivre, comme lors de l’échec " +"d'acquisition du verrou ou lorsqu'un nom de fichier censé être unique existe " +"déjà." #: ../Doc/library/mailbox.rst:1522 msgid "" "Raised when the data in a file cannot be parsed, such as when an :class:`MH` " "instance attempts to read a corrupted :file:`.mh_sequences` file." msgstr "" +"Levée lorsque la donnée dans le fichier ne peut être analysée, comme lorsque " +"l'instance de :class:`MH` tente de lire un fichier :file:`.mh_sequences` " +"corrompu." #: ../Doc/library/mailbox.rst:1529 msgid "Examples" @@ -1758,12 +1892,18 @@ msgid "" "A simple example of printing the subjects of all messages in a mailbox that " "seem interesting::" msgstr "" +"Un exemple simple d'affichage de l'objet, qui semble pertinent, de tous les " +"messages d'une boîte de courriel ::" #: ../Doc/library/mailbox.rst:1540 msgid "" "To copy all mail from a Babyl mailbox to an MH mailbox, converting all of " "the format-specific information that can be converted::" msgstr "" +"Cet exemple copie tout le courriel d'une boite de courriel au format " +"*Babyl* vers une boite de courriel au format *MH*, convertissant toute " +"l'information qu'il est possible de convertir du premier format vers le " +"second ::" #: ../Doc/library/mailbox.rst:1551 msgid "" @@ -1772,3 +1912,8 @@ msgid "" "other programs, mail loss due to interruption of the program, or premature " "termination due to malformed messages in the mailbox::" msgstr "" +"Cet exemple trie le courriel en provenance de plusieurs listes de diffusion " +"vers différentes boîtes de courriel, tout en évitant une corruption à cause " +"de modifications concurrentielles par d'autres programmes, une perte due à " +"une interruption du programme ou un arrêt prématuré causé par des messages " +"mal structurés ::" diff --git a/library/marshal.po b/library/marshal.po index ca8bbfe85..229f34ac0 100644 --- a/library/marshal.po +++ b/library/marshal.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/marshal.rst:2 msgid ":mod:`marshal` --- Internal Python object serialization" -msgstr "" +msgstr ":mod:`marshal` — Sérialisation interne des objets Python" #: ../Doc/library/marshal.rst:10 msgid "" @@ -27,6 +27,13 @@ msgid "" "are undocumented on purpose; it may change between Python versions (although " "it rarely does). [#]_" msgstr "" +"Ce module contient des fonctions permettant de lire et écrire des valeurs " +"Python au format binaire. Ce format est propre à Python, mais indépendant " +"de l'architecture de la machine (p. ex., vous pouvez écrire une valeur " +"Python dans un fichier sur un PC, envoyer le fichier vers une machine Sun et " +"la lire à nouveau). Les détails du format sont volontairement non " +"documentés ; il peut changer d'une version Python à l'autre (bien que ce " +"soit rarement le cas). [#]_" #: ../Doc/library/marshal.rst:21 msgid "" @@ -41,6 +48,17 @@ msgid "" "guaranteed, and pickle supports a substantially wider range of objects than " "marshal." msgstr "" +"Ce module ne permet pas de « sérialiser » des objets de manière permanente. " +"Pour des questions de sérialisation en général ou de transfert d'objets " +"Python par des appels RPC, référez-vous aux modules :mod:`pickle` et :mod:" +"`shelve`. Le module :mod:`marshal` existe principalement pour permettre la " +"lecture et l'écriture de code « pseudo-compilé » pour les modules Python des " +"fichiers :file:`.pyc`. Par conséquent, les mainteneurs Python se réservent " +"le droit de modifier le format *marshal* en cassant la rétrocompatibilité si " +"besoin. Si vous sérialisez et dé-sérialisez des objets Python, utilisez " +"plutôt le module :mod:`pickle` — les performances sont comparables, " +"l'indépendance par rapport à la version est garantie, et *pickle* prend en " +"charge une gamme d'objets beaucoup plus large que *marshal*." #: ../Doc/library/marshal.rst:33 msgid "" @@ -48,6 +66,9 @@ msgid "" "maliciously constructed data. Never unmarshal data received from an " "untrusted or unauthenticated source." msgstr "" +"N'utilisez pas le module :mod:`marshal` pour lire des données erronées ou " +"malveillantes. Ne démantelez jamais des données reçues d'une source non " +"fiable ou non authentifiée." #: ../Doc/library/marshal.rst:39 msgid "" @@ -63,22 +84,39 @@ msgid "" "*version* lower than 3, recursive lists, sets and dictionaries cannot be " "written (see below)." msgstr "" +"Tous les types d'objets Python ne sont pas pris en charge ; en général, " +"seuls les objets dont la valeur est indépendante d'une invocation " +"particulière de Python peuvent être écrits et lus par ce module. Les types " +"suivants sont pris en charge : booléens, entiers, nombres à virgule " +"flottante, nombres complexes, chaînes de caractères, octets, *bytearrays*, " +"*n*-uplets, listes, ensembles, ensembles figés, dictionnaires et objets, " +"étant entendu que les *n*-uplets, listes, ensembles, ensembles figés et " +"dictionnaires sont pris en charge si les valeurs qu'ils contiennent sont " +"elles-mêmes prises en charge. Les singletons :const:`None`, :const:" +"`Ellipsis` et :exc:`StopIteration` peuvent également être « pseudo-" +"compilés » et « dé-pseudo-compilés ». Pour le format des *versions* " +"inférieures à 3, les listes récursives, les ensembles et les dictionnaires " +"ne peuvent pas être écrits (voir ci-dessous)." #: ../Doc/library/marshal.rst:51 msgid "" "There are functions that read/write files as well as functions operating on " "bytes-like objects." msgstr "" +"Il existe des fonctions de lecture-écriture de fichiers ainsi que des " +"fonctions opérant sur des objets octet." #: ../Doc/library/marshal.rst:54 msgid "The module defines these functions:" -msgstr "" +msgstr "Le module définit ces fonctions :" #: ../Doc/library/marshal.rst:59 msgid "" "Write the value on the open file. The value must be a supported type. The " "file must be a writeable :term:`binary file`." msgstr "" +"Écrit la valeur sur le fichier ouvert. La valeur doit être un type pris en " +"charge. Le fichier doit être un :term:`fichier binaire` ouvert en écriture." #: ../Doc/library/marshal.rst:62 msgid "" @@ -87,12 +125,18 @@ msgid "" "written to the file. The object will not be properly read back by :func:" "`load`." msgstr "" +"Si la valeur est (ou contient un objet qui est) d'un type non implémenté, " +"une exception :exc:`ValueError` est levée — mais le contenu de la mémoire " +"sera également écrit dans le fichier. L'objet ne sera pas correctement lu " +"par :func:`load`." #: ../Doc/library/marshal.rst:66 msgid "" "The *version* argument indicates the data format that ``dump`` should use " "(see below)." msgstr "" +"L'argument *version* indique le format de données que le ``dump`` doit " +"utiliser (voir ci-dessous)." #: ../Doc/library/marshal.rst:72 msgid "" @@ -101,12 +145,19 @@ msgid "" "format), raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. The " "file must be a readable :term:`binary file`." msgstr "" +"Lit une valeur du fichier ouvert et la renvoie. Si aucune valeur valide " +"n'est lue (p. ex. parce que les données ont un format décompilé incompatible " +"avec une autre version de Python), :exc:`EOFError`, :exc:`ValueError` ou :" +"exc:`TypeError` est levée. Le fichier doit être un :term:`fichier binaire` " +"ouvert en lecture." #: ../Doc/library/marshal.rst:79 msgid "" "If an object containing an unsupported type was marshalled with :func:" "`dump`, :func:`load` will substitute ``None`` for the unmarshallable type." msgstr "" +"Si un objet contenant un type non pris en charge a été dé-compilé avec :func:" +"`dump`, :func:`load` remplacera le type non « dé-compilable » par ``None``." #: ../Doc/library/marshal.rst:85 msgid "" @@ -114,12 +165,18 @@ msgid "" "file)``. The value must be a supported type. Raise a :exc:`ValueError` " "exception if value has (or contains an object that has) an unsupported type." msgstr "" +"Renvoie les octets qui seraient écrits dans un fichier par ``dump(value, " +"file)``. La valeur doit être un type pris en charge. Lève une exception :" +"exc:`ValueError` si la valeur a (ou contient un objet qui a) un type qui " +"n'est pas pris en charge." #: ../Doc/library/marshal.rst:89 msgid "" "The *version* argument indicates the data format that ``dumps`` should use " "(see below)." msgstr "" +"L'argument *version* indique le format de données que ``dumps`` doivent " +"utiliser (voir ci-dessous)." #: ../Doc/library/marshal.rst:95 msgid "" @@ -127,10 +184,13 @@ msgid "" "found, raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. Extra " "bytes in the input are ignored." msgstr "" +"Convertit le :term:`bytes-like object` en une valeur. Si aucune valeur " +"valide n'est trouvée, :exc:`EOFError`, :exc:`ValueError` ou :exc:`TypeError` " +"est levée. Les octets supplémentaires de l'entrée sont ignorés." #: ../Doc/library/marshal.rst:100 msgid "In addition, the following constants are defined:" -msgstr "" +msgstr "De plus, les constantes suivantes sont définies :" #: ../Doc/library/marshal.rst:104 msgid "" @@ -139,6 +199,11 @@ msgid "" "for floating point numbers. Version 3 adds support for object instancing and " "recursion. The current version is 4." msgstr "" +"Indique le format que le module utilise. La version 0 est le format " +"originel, la version 1 partage des chaînes de caractères internes et la " +"version 2 utilise un format binaire pour les nombres à virgule flottante. La " +"version 3 ajoute la prise en charge de l'instanciation et de la récursivité " +"des objets. La version actuelle est la 4." #: ../Doc/library/marshal.rst:112 msgid "Footnotes" @@ -152,3 +217,9 @@ msgid "" "marshal\" means to convert some data from internal to external form (in an " "RPC buffer for instance) and \"unmarshalling\" for the reverse process." msgstr "" +"Le nom de ce module provient d'un peu de terminologie utilisée par les " +"concepteurs de Modula-3 (entre autres), qui utilisent le terme *marshalling* " +"pour l'envoi de données sous une forme autonome. À proprement parler, *to " +"marshal* signifie convertir certaines données d'une forme interne à une " +"forme externe (dans une mémoire tampon RPC par exemple) et *unmarshalling* " +"désigne le processus inverse." diff --git a/library/math.po b/library/math.po index cd2a0ef2b..4a6332715 100644 --- a/library/math.po +++ b/library/math.po @@ -5,27 +5,27 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-28 19:39+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-13 14:21+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 1.5.4\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/library/math.rst:2 msgid ":mod:`math` --- Mathematical functions" -msgstr "Fonctions mathématiques --- :mod:`math`" +msgstr "Fonctions mathématiques — :mod:`math`" #: ../Doc/library/math.rst:13 msgid "" -"This module is always available. It provides access to the mathematical " -"functions defined by the C standard." +"This module provides access to the mathematical functions defined by the C " +"standard." msgstr "" -"Ce module est toujours disponible. Il fournit l'accès aux fonctions " -"mathématiques définies par le standard C." +"Ce module fournit l'accès aux fonctions mathématiques définies par la norme " +"C." #: ../Doc/library/math.rst:16 msgid "" @@ -38,15 +38,16 @@ msgid "" "of the unexpected complex number used as a parameter, so that the programmer " "can determine how and why it was generated in the first place." msgstr "" -"Ces fonctions ne peuvent être utilisées avec les nombres complexes, utilisez " -"les fonctions du même nom du module :mod:`cmath` si vous souhaitez un " -"support des nombres complexes. La distinction entre les fonctions supportant " -"les nombres complexes et celles ne les supportant pas set née du fait que " -"tous les utilisateurs ne désirent pas acquérir le niveau mathématique " -"suffisant pour comprendre les nombres complexes. Recevoir une exception à la " -"place d'un nombre complexe permet de détecter un nombre complexe non désiré " -"en paramètre, ainsi le programmeur peut déterminer comment et pourquoi il a " -"été généré." +"Ces fonctions ne peuvent pas être utilisées avec les nombres complexes ; si " +"vous avez besoin de la prise en charge des nombres complexes, utilisez les " +"fonctions du même nom du module :mod:`cmath`. La séparation entre les " +"fonctions qui gèrent les nombres complexes et les autres vient du constat " +"que tous les utilisateurs ne souhaitent pas acquérir le niveau mathématique " +"nécessaire à la compréhension des nombres complexes. Recevoir une exception " +"plutôt qu'un nombre complexe en retour d'une fonction permet au programmeur " +"de déterminer immédiatement comment et pourquoi ce nombre a été généré, " +"avant que celui-ci ne soit passé involontairement en paramètre d'une autre " +"fonction. " #: ../Doc/library/math.rst:25 msgid "" @@ -66,8 +67,8 @@ msgid "" "*x*. If *x* is not a float, delegates to ``x.__ceil__()``, which should " "return an :class:`~numbers.Integral` value." msgstr "" -"Renvoie la fonction *plafond* de *x*, le plus petit entier plus grand ou " -"égal à *x*. Si *x* est un flottant, délègue à ``x.__ceil()__``, qui doit " +"Renvoie la partie entière par excès de *x*, le plus petit entier supérieur " +"ou égal à *x*. Si *x* est un flottant, délègue à ``x.__ceil()__``, qui doit " "renvoyer une valeur :class:`~numbers.Integral`." #: ../Doc/library/math.rst:41 @@ -77,8 +78,8 @@ msgid "" "returns *-1.0*." msgstr "" "Renvoie un flottant contenant la magnitude (valeur absolue) de *x* mais avec " -"le signe de *y*. Sur les plate-formes supportant les zéros signés, " -"``copysign(1.0, -0.0)`` renvoie *-1.0*." +"le signe de *y*. Sur les plates-formes prenant en charge les zéros signés, " +"``copysign(1.0, -0.0)`` renvoie ``-1.0``." #: ../Doc/library/math.rst:48 msgid "Return the absolute value of *x*." @@ -86,11 +87,11 @@ msgstr "Renvoie la valeur absolue de *x*." #: ../Doc/library/math.rst:53 msgid "" -"Return *x* factorial. Raises :exc:`ValueError` if *x* is not integral or is " -"negative." +"Return *x* factorial as an integer. Raises :exc:`ValueError` if *x* is not " +"integral or is negative." msgstr "" -"Renvoie la factorielle de *x*. Lève une :exc:`ValueError` si *x* n'est pas " -"entier ou s'il est négatif." +"Renvoie la factorielle de *x* sous forme d'entier. Lève une :exc:" +"`ValueError` si *x* n'est pas entier ou s'il est négatif." #: ../Doc/library/math.rst:59 msgid "" @@ -98,9 +99,9 @@ msgid "" "*x* is not a float, delegates to ``x.__floor__()``, which should return an :" "class:`~numbers.Integral` value." msgstr "" -"Renvoie le plancher de *x*, le plus grand entier plus petit ou égal à *x*. " -"Si *x* n'est pas un flottant, délègue à ``x.__floor()__``, qui doit renvoyer " -"une valeur :class:`~numbers.Integral`." +"Renvoie la partie entière (par défaut) de *x*, le plus grand entier " +"inférieur ou égal à *x*. Si *x* n'est pas un flottant, délègue à ``x." +"__floor()__``, qui doit renvoyer une valeur :class:`~numbers.Integral`." #: ../Doc/library/math.rst:66 msgid "" @@ -128,8 +129,9 @@ msgstr "" "résultat de l'expression Python ``-1e-100 % 1e100`` est ``1e100-1e-100``, " "qui ne peut pas être représenté exactement par un flottant et donc qui est " "arrondi à ``1e100``. Pour cette raison, la fonction :func:`fmod` est " -"généralement préférée quand des flottants sont manipulés, alors que " -"l'expression Python ``x % y`` est préféré quand des entiers sont manipulés." +"généralement privilégiée quand des flottants sont manipulés, alors que " +"l'expression Python ``x % y`` est privilégiée quand des entiers sont " +"manipulés." #: ../Doc/library/math.rst:81 msgid "" @@ -150,7 +152,7 @@ msgid "" "loss of precision by tracking multiple intermediate partial sums::" msgstr "" "Renvoie une somme flottante exacte des valeurs dans l'itérable. Évite la " -"perte de précision en gardant plusieurs sommes partielles intermédiaires : ::" +"perte de précision en gardant plusieurs sommes partielles intermédiaires ::" #: ../Doc/library/math.rst:97 msgid "" @@ -160,8 +162,8 @@ msgid "" "occasionally double-round an intermediate sum causing it to be off in its " "least significant bit." msgstr "" -"L'exactitude de cet algorithme dépend des garanties arithmétiques de " -"IEEE-754 et des cas typiques où le mode d'arrondi est *half-even*. Sur " +"La précision de cet algorithme dépend des garanties arithmétiques de " +"IEEE-754 et des cas standards où le mode d'arrondi est *half-even*. Sur " "certaines versions non Windows, la bibliothèque C sous-jacente utilise une " "addition par précision étendue et peut occasionnellement effectuer un double-" "arrondi sur une somme intermédiaire causant la prise d'une mauvaise valeur " @@ -183,9 +185,9 @@ msgid "" "*a* or *b* is nonzero, then the value of ``gcd(a, b)`` is the largest " "positive integer that divides both *a* and *b*. ``gcd(0, 0)`` returns ``0``." msgstr "" -"Renvoie le plus grand diviseur commun des entiers *a* et *b*. Si soit *a* ou " -"*b* est différent de zéro, la valeur de ``gcd(a, b)`` est le plus grand " -"entier positif qui divise à la fois *a* et *b*. ``gcd(0, 0)`` renvoie ``0``." +"Renvoie le plus grand diviseur commun des entiers *a* et *b*. Si *a* ou *b* " +"est différent de zéro, la valeur de ``gcd(a, b)`` est le plus grand entier " +"positif qui divise à la fois *a* et *b*. ``gcd(0, 0)`` renvoie ``0``." #: ../Doc/library/math.rst:120 msgid "" @@ -200,8 +202,8 @@ msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances." msgstr "" -"Déterminer si deux valeurs sont proches se fait à l'aide des tolérances " -"absolues et relatives données en paramètres." +"Déterminer si deux valeurs sont considérées comme « proches » se fait à " +"l'aide des tolérances absolues et relatives passées en paramètres." #: ../Doc/library/math.rst:126 msgid "" @@ -211,7 +213,7 @@ msgid "" "tolerance is ``1e-09``, which assures that the two values are the same " "within about 9 decimal digits. *rel_tol* must be greater than zero." msgstr "" -"*rel_tol* est la tolérance relative -- c'est la différence maximale permise " +"*rel_tol* est la tolérance relative — c'est la différence maximale permise " "entre *a* et *b*, relativement à la plus grande valeur de *a* ou de *b*. Par " "exemple, pour définir une tolérance de 5%,, précisez ``rel_tol=0.05``. La " "tolérance par défaut est ``1e-09``, ce qui assure que deux valeurs sont les " @@ -223,7 +225,7 @@ msgid "" "*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " "zero. *abs_tol* must be at least zero." msgstr "" -"*abs_tol* est la tolérance absolue minimale -- utile pour les comparaisons " +"*abs_tol* est la tolérance absolue minimale — utile pour les comparaisons " "proches de zéro. *abs_tol* doit valoir au moins zéro." #: ../Doc/library/math.rst:135 @@ -244,12 +246,12 @@ msgstr "" "Les valeurs spécifiques suivantes : ``NaN``, ``inf``, et ``-inf`` définies " "dans la norme IEEE 754 seront manipulées selon les règles du standard IEEE. " "En particulier, ``NaN`` n'est considéré proche d'aucune autre valeur, " -"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérés proches que d'eux-" +"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérées proches que d'elles-" "mêmes." #: ../Doc/library/math.rst:147 msgid ":pep:`485` -- A function for testing approximate equality" -msgstr ":pep:`485` -- Une fonction pour tester des égalités approximées" +msgstr ":pep:`485` — Une fonction pour tester des quasi-égalités" #: ../Doc/library/math.rst:152 msgid "" @@ -257,7 +259,7 @@ msgid "" "otherwise. (Note that ``0.0`` *is* considered finite.)" msgstr "" "Renvoie ``True`` si *n* n'est ni infini, ni NaN, et ``False`` sinon. (Notez " -"que ``0.0`` *est* considéré fini.)" +"que ``0.0`` *est* considéré comme fini.)" #: ../Doc/library/math.rst:160 msgid "" @@ -286,7 +288,7 @@ msgid "" "Return the fractional and integer parts of *x*. Both results carry the sign " "of *x* and are floats." msgstr "" -"Renvoie les parties entières et fractionnelle de *x*. Les deux résultats ont " +"Renvoie les parties entière et fractionnelle de *x*. Les deux résultats ont " "le signe de *x* et sont flottants." #: ../Doc/library/math.rst:183 @@ -323,7 +325,7 @@ msgid "" "On platforms using IEEE 754 binary floating-point, the result of this " "operation is always exactly representable: no rounding error is introduced." msgstr "" -"Sur les plateformes utilisant la norme IEEE 754 pour les nombres à virgule " +"Sur les plates-formes utilisant la norme IEEE 754 pour les nombres à virgule " "flottante en binaire, le résultat de cette opération est toujours exactement " "représentable : aucune erreur d'arrondi n'est introduite." @@ -345,10 +347,9 @@ msgid "" "'output parameter' (there is no such thing in Python)." msgstr "" "Notez que les fonctions :func:`frexp` et :func:`modf` ont un système d'appel " -"différent de leur homologue C : elles prennent un simple argument et " -"renvoient une paire de valeurs au lieu de renvoyer leur seconde valeur de " -"retour dans un 'paramètre de sortie' (il n'y a pas de telle possibilité en " -"Python)." +"différent de leur homologue C : elles prennent un seul argument et renvoient " +"une paire de valeurs au lieu de placer la seconde valeur de retour dans un " +"*paramètre de sortie* (cela n'existe pas en Python)." #: ../Doc/library/math.rst:214 msgid "" @@ -360,7 +361,7 @@ msgid "" msgstr "" "Pour les fonctions :func:`ceil`, :func:`floor`, et :func:`modf`, notez que " "*tous* les nombres flottants de magnitude suffisamment grande sont des " -"entiers exacts. Les flottants de Python n'ont typiquement pas plus de 53 " +"entiers exacts. Les flottants de Python n'ont généralement pas plus de 53 " "*bits* de précision (tels que le type C ``double`` de la plate-forme), en " "quel cas tout flottant *x* tel que ``abs(x) >= 2**52`` n'a aucun *bit* " "fractionnel." @@ -375,7 +376,7 @@ msgid "" "natural logarithms. This is usually more accurate than ``math.e ** x`` or " "``pow(math.e, x)``." msgstr "" -"Renvoie *e* élevé à la puissance *x*, où *e* = 2.718281... est la base des " +"Renvoie *e* à la puissance *x*, où *e* = 2.718281… est la base des " "logarithmes naturels. Cela est en général plus précis que ``math.e ** x`` ou " "``pow(math.e, x)``." @@ -418,7 +419,7 @@ msgid "" "Return the base-2 logarithm of *x*. This is usually more accurate than " "``log(x, 2)``." msgstr "" -"Renvoie le logarithme en base 2 de *x*. C'est habituellement plus exact que " +"Renvoie le logarithme en base 2 de *x*. C'est en général plus précis que " "``log(x, 2)``." #: ../Doc/library/math.rst:271 @@ -512,7 +513,7 @@ msgstr "" #: ../Doc/library/math.rst:341 msgid "Return the sine of *x* radians." -msgstr "Renvoie le sinus de*x* radians." +msgstr "Renvoie le sinus de *x* radians." #: ../Doc/library/math.rst:346 msgid "Return the tangent of *x* radians." @@ -540,9 +541,9 @@ msgid "" "are analogs of trigonometric functions that are based on hyperbolas instead " "of circles." msgstr "" -"`Hyperbolic functions `_ " -"sont analogues à des fonctions trigonométriques qui sont basés sur des " -"hyperboles au lieu de cercles." +"`Les fonctions hyperboliques `_ sont analogues à des fonctions trigonométriques qui " +"sont basées sur des hyperboles au lieu de cercles." #: ../Doc/library/math.rst:371 msgid "Return the inverse hyperbolic cosine of *x*." @@ -589,7 +590,7 @@ msgstr "" "La fonction :func:`erf` peut être utilisée pour calculer des fonctions " "statistiques usuelles telles que la `répartition de la loi normale `_ : ::" +"A9partition>`_ ::" #: ../Doc/library/math.rst:420 msgid "" @@ -601,9 +602,9 @@ msgid "" msgstr "" "Renvoie la fonction d'erreur complémentaire en *x*. La `fonction d'erreur " "complémentaire `_ est " -"définie par ``1.0 - erf(x)``. C'est utilisé pour de grandes valeurs de *x* " -"où une soustraction d'un causerait une `perte de précision `_\\." +"définie par ``1.0 - erf(x)``. Elle est utilisée pour les grandes valeurs de " +"*x*, où la soustraction en partant de 1,0 entraînerait une `perte de " +"précision `_\\." #: ../Doc/library/math.rst:431 msgid "" @@ -627,13 +628,11 @@ msgstr "Constantes" #: ../Doc/library/math.rst:450 msgid "The mathematical constant *π* = 3.141592..., to available precision." -msgstr "" -"La constante mathématique *π* = 3.141592..., à la précision disponible." +msgstr "La constante mathématique *π* = 3.141592…, à la précision disponible." #: ../Doc/library/math.rst:455 msgid "The mathematical constant *e* = 2.718281..., to available precision." -msgstr "" -"La constante mathématique *e* = 2.718281..., à la précision disponible." +msgstr "La constante mathématique *e* = 2.718281…, à la précision disponible." #: ../Doc/library/math.rst:460 msgid "" @@ -643,12 +642,12 @@ msgid "" "(still) Wrong `_, and start " "celebrating `Tau day `_ by eating twice as much pie!" msgstr "" -"La constante mathématique *τ* = 6.283185..., à la précision disponible. Tau " +"La constante mathématique *τ* = 6.283185…, à la précision disponible. Tau " "est une constante du cercle égale à 2 \\*π*, le rapport de la circonférence " "d'un cercle à son rayon. Pour en apprendre plus sur Tau, regardez la vidéo " "de Vi Hart, `Pi is (still) Wrong `_, et profitez-en pour célébrer le `Jour de Tau `_ en bavardant comme deux pies." +"tauday.com/>`_ en bavardant comme deux pies !" #: ../Doc/library/math.rst:471 msgid "" @@ -685,8 +684,8 @@ msgstr "" "les opérations invalides telles que ``sqrt(-1.0)`` ou ``log(0.0)`` (où le " "standard C99 recommande de signaler que l'opération est invalide ou qu'il y " "a division par zéro), et une :exc:`OverflowError` pour les résultats qui " -"débordent (par exemple ``exp(1000.0)``). *NaN* ne sera renvoyé pour toute " -"les fonctions ci-dessus sauf si au moins un des arguments de la fonction " +"débordent (par exemple ``exp(1000.0)``). *NaN* ne sera renvoyé pour aucune " +"des fonctions ci-dessus, sauf si au moins un des arguments de la fonction " "vaut *NaN*. Dans ce cas, la plupart des fonctions renvoient *NaN*, mais (à " "nouveau, selon l'annexe 'F' du standard C99) il y a quelques exceptions à " "cette règle, par exemple ``pow(float('nan'), 0.0)`` ou ``hypot(float('nan'), " @@ -700,7 +699,7 @@ msgid "" msgstr "" "Notez que Python ne fait aucun effort pour distinguer les NaNs signalétiques " "des NaNs silencieux, et le comportement de signalement des NaNs reste non-" -"spécifié. le comportement typique est de traiter tous les NaNs comme s'ils " +"spécifié. Le comportement standard est de traiter tous les NaNs comme s'ils " "étaient silencieux." #: ../Doc/library/math.rst:506 diff --git a/library/mimetypes.po b/library/mimetypes.po index 7f7032e9e..be9d366fd 100644 --- a/library/mimetypes.po +++ b/library/mimetypes.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -183,7 +183,7 @@ msgstr "" #: ../Doc/library/mimetypes.rst:152 msgid "An example usage of the module::" -msgstr "Un exemple d'utilisation du module : ::" +msgstr "Un exemple d'utilisation du module ::" #: ../Doc/library/mimetypes.rst:169 msgid "MimeTypes Objects" @@ -279,13 +279,16 @@ msgid "" "format of the standard :file:`mime.types` files." msgstr "" -#: ../Doc/library/mimetypes.rst:252 ../Doc/library/mimetypes.rst:260 +#: ../Doc/library/mimetypes.rst:252 ../Doc/library/mimetypes.rst:262 msgid "" "If *strict* is ``True``, information will be added to the list of standard " "types, else to the list of non-standard types." msgstr "" #: ../Doc/library/mimetypes.rst:258 -msgid "" -"Load MIME type information from the Windows registry. Availability: Windows." +msgid "Load MIME type information from the Windows registry." msgstr "" + +#: ../Doc/library/mimetypes.rst:261 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." diff --git a/library/mmap.po b/library/mmap.po index 67bf8d954..37cfc0e35 100644 --- a/library/mmap.po +++ b/library/mmap.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -100,7 +100,8 @@ msgstr "" msgid "" "*offset* may be specified as a non-negative integer offset. mmap references " "will be relative to the offset from the beginning of the file. *offset* " -"defaults to 0. *offset* must be a multiple of the ALLOCATIONGRANULARITY." +"defaults to 0. *offset* must be a multiple of the :const:" +"`ALLOCATIONGRANULARITY`." msgstr "" #: ../Doc/library/mmap.rst:74 @@ -140,8 +141,8 @@ msgstr "" msgid "" "*offset* may be specified as a non-negative integer offset. mmap references " "will be relative to the offset from the beginning of the file. *offset* " -"defaults to 0. *offset* must be a multiple of the PAGESIZE or " -"ALLOCATIONGRANULARITY." +"defaults to 0. *offset* must be a multiple of :const:`ALLOCATIONGRANULARITY` " +"which is equal to :const:`PAGESIZE` on Unix systems." msgstr "" #: ../Doc/library/mmap.rst:100 @@ -193,8 +194,8 @@ msgid "" "``-1`` on failure." msgstr "" -#: ../Doc/library/mmap.rst:182 ../Doc/library/mmap.rst:245 -#: ../Doc/library/mmap.rst:277 +#: ../Doc/library/mmap.rst:182 ../Doc/library/mmap.rst:246 +#: ../Doc/library/mmap.rst:278 msgid "Writable :term:`bytes-like object` is now accepted." msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." @@ -204,29 +205,30 @@ msgid "" "use of this call there is no guarantee that changes are written back before " "the object is destroyed. If *offset* and *size* are specified, only changes " "to the given range of bytes will be flushed to disk; otherwise, the whole " -"extent of the mapping is flushed." +"extent of the mapping is flushed. *offset* must be a multiple of the :const:" +"`PAGESIZE` or :const:`ALLOCATIONGRANULARITY`." msgstr "" -#: ../Doc/library/mmap.rst:194 +#: ../Doc/library/mmap.rst:195 msgid "" "**(Windows version)** A nonzero value returned indicates success; zero " "indicates failure." msgstr "" -#: ../Doc/library/mmap.rst:197 +#: ../Doc/library/mmap.rst:198 msgid "" "**(Unix version)** A zero value is returned to indicate success. An " "exception is raised when the call failed." msgstr "" -#: ../Doc/library/mmap.rst:203 +#: ../Doc/library/mmap.rst:204 msgid "" "Copy the *count* bytes starting at offset *src* to the destination index " "*dest*. If the mmap was created with :const:`ACCESS_READ`, then calls to " "move will raise a :exc:`TypeError` exception." msgstr "" -#: ../Doc/library/mmap.rst:210 +#: ../Doc/library/mmap.rst:211 msgid "" "Return a :class:`bytes` containing up to *n* bytes starting from the current " "file position. If the argument is omitted, ``None`` or negative, return all " @@ -234,30 +236,30 @@ msgid "" "position is updated to point after the bytes that were returned." msgstr "" -#: ../Doc/library/mmap.rst:216 +#: ../Doc/library/mmap.rst:217 msgid "Argument can be omitted or ``None``." msgstr "" -#: ../Doc/library/mmap.rst:221 +#: ../Doc/library/mmap.rst:222 msgid "" "Returns a byte at the current file position as an integer, and advances the " "file position by 1." msgstr "" -#: ../Doc/library/mmap.rst:227 +#: ../Doc/library/mmap.rst:228 msgid "" "Returns a single line, starting at the current file position and up to the " "next newline." msgstr "" -#: ../Doc/library/mmap.rst:233 +#: ../Doc/library/mmap.rst:234 msgid "" "Resizes the map and the underlying file, if any. If the mmap was created " "with :const:`ACCESS_READ` or :const:`ACCESS_COPY`, resizing the map will " "raise a :exc:`TypeError` exception." msgstr "" -#: ../Doc/library/mmap.rst:240 +#: ../Doc/library/mmap.rst:241 msgid "" "Returns the highest index in the object where the subsequence *sub* is " "found, such that *sub* is contained in the range [*start*, *end*]. Optional " @@ -265,7 +267,7 @@ msgid "" "``-1`` on failure." msgstr "" -#: ../Doc/library/mmap.rst:251 +#: ../Doc/library/mmap.rst:252 msgid "" "Set the file's current position. *whence* argument is optional and defaults " "to ``os.SEEK_SET`` or ``0`` (absolute file positioning); other values are " @@ -273,17 +275,17 @@ msgid "" "SEEK_END`` or ``2`` (seek relative to the file's end)." msgstr "" -#: ../Doc/library/mmap.rst:259 +#: ../Doc/library/mmap.rst:260 msgid "" "Return the length of the file, which can be larger than the size of the " "memory-mapped area." msgstr "" -#: ../Doc/library/mmap.rst:265 +#: ../Doc/library/mmap.rst:266 msgid "Returns the current position of the file pointer." msgstr "" -#: ../Doc/library/mmap.rst:270 +#: ../Doc/library/mmap.rst:271 msgid "" "Write the bytes in *bytes* into memory at the current position of the file " "pointer and return the number of bytes written (never less than " @@ -293,11 +295,11 @@ msgid "" "it will raise a :exc:`TypeError` exception." msgstr "" -#: ../Doc/library/mmap.rst:280 +#: ../Doc/library/mmap.rst:281 msgid "The number of bytes written is now returned." msgstr "" -#: ../Doc/library/mmap.rst:286 +#: ../Doc/library/mmap.rst:287 msgid "" "Write the integer *byte* into memory at the current position of the file " "pointer; the file position is advanced by ``1``. If the mmap was created " diff --git a/library/modulefinder.po b/library/modulefinder.po index 868147698..eccedb6e9 100644 --- a/library/modulefinder.po +++ b/library/modulefinder.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/modulefinder.rst:2 msgid ":mod:`modulefinder` --- Find modules used by a script" -msgstr ":mod:`modulefinder` --- Identifie les modules utilisés par un script" +msgstr ":mod:`modulefinder` — Identifie les modules utilisés par un script" #: ../Doc/library/modulefinder.rst:9 msgid "**Source code:** :source:`Lib/modulefinder.py`" @@ -109,4 +109,4 @@ msgstr "Le script qui va afficher le rapport de *bacon.py* ::" #: ../Doc/library/modulefinder.rst:94 msgid "Sample output (may vary depending on the architecture)::" -msgstr "Exemple de sortie (peut varier en fonction de l'architecture) : ::" +msgstr "Exemple de sortie (peut varier en fonction de l'architecture) ::" diff --git a/library/msilib.po b/library/msilib.po index bf24dbaf9..242fbaca2 100644 --- a/library/msilib.po +++ b/library/msilib.po @@ -457,7 +457,7 @@ msgstr "" #: ../Doc/library/msilib.rst:414 msgid "Features" -msgstr "" +msgstr "Caractéristiques" #: ../Doc/library/msilib.rst:419 msgid "" diff --git a/library/multiprocessing.po b/library/multiprocessing.po index 05a962670..f4e4f85bb 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -5,23 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-30 22:25+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-06-18 22:36+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 1.8.11\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/multiprocessing.rst:2 msgid ":mod:`multiprocessing` --- Process-based parallelism" -msgstr "" +msgstr ":mod:`multiprocessing` — Parallélisme par processus" #: ../Doc/library/multiprocessing.rst:7 msgid "**Source code:** :source:`Lib/multiprocessing/`" -msgstr "" +msgstr "**Code source :** :source:`Lib/multiprocessing/`" #: ../Doc/library/multiprocessing.rst:12 msgid "Introduction" @@ -37,6 +37,14 @@ msgid "" "programmer to fully leverage multiple processors on a given machine. It " "runs on both Unix and Windows." msgstr "" +":mod:`multiprocessing` est un paquet qui permet l'instanciation de processus " +"via la même API que le module :mod:`threading`. Le paquet :mod:" +"`multiprocessing` offre à la fois des possibilités de programmation " +"concurrente locale ou à distance, contournant les problèmes du :term:`Global " +"Interpreter Lock` en utilisant des processus plutôt que des fils " +"d'exécution. Ainsi, le module :mod:`multiprocessing` permet au développeur " +"de bénéficier entièrement des multiples processeurs sur une machine. Il " +"tourne à la fois sur les systèmes Unix et Windows." #: ../Doc/library/multiprocessing.rst:22 msgid "" @@ -50,14 +58,22 @@ msgid "" "module. This basic example of data parallelism using :class:" "`~multiprocessing.pool.Pool`, ::" msgstr "" +"Le module :mod:`multiprocessing` introduit aussi des API sans analogues dans " +"le module :mod:`threading`. Un exemple est l'objet :class:`~multiprocessing." +"pool.Pool` qui offre une manière pratique de paralléliser l'exécution d'une " +"fonction sur de multiples valeurs d'entrée, distribuant ces valeurs entre " +"les processus (parallélisme de données). L'exemple suivant présente la " +"manière classique de définir une telle fonction dans un module afin que les " +"processus fils puissent importer ce module avec succès. L'exemple basique de " +"parallélisme de données utilise :class:`~multiprocessing.pool.Pool`, ::" #: ../Doc/library/multiprocessing.rst:40 msgid "will print to standard output ::" -msgstr "" +msgstr "affiche sur la sortie standard ::" #: ../Doc/library/multiprocessing.rst:46 msgid "The :class:`Process` class" -msgstr "" +msgstr "La classe :class:`Process`" #: ../Doc/library/multiprocessing.rst:48 msgid "" @@ -66,27 +82,37 @@ msgid "" "`Process` follows the API of :class:`threading.Thread`. A trivial example " "of a multiprocess program is ::" msgstr "" +"Dans le module :mod:`multiprocessing`, les processus sont instanciés en " +"créant un objet :class:`Process` et en appelant sa méthode :meth:`~Process." +"start`. La classe :class:`Process` suit la même API que :class:`threading." +"Thread`. Un exemple trivial d'un programme multi-processus est ::" #: ../Doc/library/multiprocessing.rst:63 msgid "" "To show the individual process IDs involved, here is an expanded example::" msgstr "" +"Pour afficher les IDs des processus impliqués, voici un exemple plus " +"étoffé ::" #: ../Doc/library/multiprocessing.rst:84 msgid "" "For an explanation of why the ``if __name__ == '__main__'`` part is " "necessary, see :ref:`multiprocessing-programming`." msgstr "" +"La nécessité de la ligne ``if __name__ == '__main__'`` est expliquée par :" +"ref:`multiprocessing-programming`." #: ../Doc/library/multiprocessing.rst:90 msgid "Contexts and start methods" -msgstr "" +msgstr "Contextes et méthodes de démarrage" #: ../Doc/library/multiprocessing.rst:94 msgid "" "Depending on the platform, :mod:`multiprocessing` supports three ways to " "start a process. These *start methods* are" msgstr "" +"Suivant la plateforme, :mod:`multiprocessing` gère trois manières de " +"démarrer un processus. Ces *méthodes de démarrage* sont" #: ../Doc/library/multiprocessing.rst:105 msgid "*spawn*" @@ -101,10 +127,16 @@ msgid "" "Starting a process using this method is rather slow compared to using *fork* " "or *forkserver*." msgstr "" +"Le processus parent démarre un processus neuf avec un interpréteur Python. " +"Le processus fils hérite uniquement des ressources nécessaires pour exécuter " +"la méthode :meth:`~Process.run` de l'objet associé au processus. En " +"particulier, les descripteurs de fichiers superflus et gérés par le " +"processus parent ne sont pas hérités. Démarrer un processus en utilisant " +"cette méthode est plutôt lent par rapport à *fork* ou *forkserver*." #: ../Doc/library/multiprocessing.rst:105 msgid "Available on Unix and Windows. The default on Windows." -msgstr "" +msgstr "Disponible sur Unix et Windows. Par défaut sur Windows." #: ../Doc/library/multiprocessing.rst:114 msgid "*fork*" @@ -117,14 +149,19 @@ msgid "" "process. All resources of the parent are inherited by the child process. " "Note that safely forking a multithreaded process is problematic." msgstr "" +"Le processus parent utilise :func:`os.fork` pour *forker* l'interpréteur " +"Python. Le processus fils, quand il démarre, est effectivement identique au " +"processus parent. Toutes les ressources du parent sont héritées par le fils. " +"Notez qu'il est problématique de *forker* sans danger un processus *multi-" +"threadé*." #: ../Doc/library/multiprocessing.rst:114 msgid "Available on Unix only. The default on Unix." -msgstr "" +msgstr "Disponible uniquement sous Unix. Par défaut sous Unix." #: ../Doc/library/multiprocessing.rst:125 msgid "*forkserver*" -msgstr "" +msgstr "*forkserver*" #: ../Doc/library/multiprocessing.rst:117 msgid "" @@ -134,12 +171,20 @@ msgid "" "process. The fork server process is single threaded so it is safe for it to " "use :func:`os.fork`. No unnecessary resources are inherited." msgstr "" +"Quand le programme démarre et choisit la méthode de démarrage *forkserver*, " +"un processus serveur est lancé. Dès lors, chaque fois qu'un nouveau " +"processus est nécessaire, le processus parent se connecte au serveur et lui " +"demande de *forker* un nouveau processus. Le processus serveur de *fork* " +"n'utilisant qu'un seul fil d'exécution, il peut utiliser :func:`os.fork` " +"sans danger. Les ressources superflues ne sont pas héritées." #: ../Doc/library/multiprocessing.rst:124 msgid "" "Available on Unix platforms which support passing file descriptors over Unix " "pipes." msgstr "" +"Disponible sur les plateformes Unix qui acceptent le passage de descripteurs " +"de fichiers à travers des tubes (*pipes*) Unix." #: ../Doc/library/multiprocessing.rst:127 msgid "" @@ -147,6 +192,9 @@ msgid "" "platforms. Child processes no longer inherit all of the parents inheritable " "handles on Windows." msgstr "" +"*spawn* ajouté à toutes les plateformes Unix, et *forkserver* ajouté à " +"certaines plateformes Unix. Les processus fils n'héritent plus de tous les " +"descripteurs héritables du parent sous Windows." #: ../Doc/library/multiprocessing.rst:133 msgid "" @@ -159,17 +207,31 @@ msgid "" "system allows only a limited number, and they will not be automatically " "unlinked until the next reboot.)" msgstr "" +"Sous Unix, utiliser les méthodes de démarrage *spawn* ou *forkserver* " +"démarre aussi un processus *semaphore tracker* qui traque les sémaphores " +"nommés non libérés créés par les processus du programme. Quand tous les " +"processus sont terminés, le traqueur de sémaphores libère les sémaphores " +"restants. Généralement il ne devrait pas y en avoir, mais si un processus a " +"été tué par un signal, certains sémaphores ont pu « fuiter ». (Libérer les " +"sémaphores nommés est une affaire sérieuse puisque le système n'en autorise " +"qu'un certain nombre, et qu'ils ne seront pas automatiquement libérés avant " +"le prochain redémarrage.)" #: ../Doc/library/multiprocessing.rst:142 msgid "" "To select a start method you use the :func:`set_start_method` in the ``if " "__name__ == '__main__'`` clause of the main module. For example::" msgstr "" +"Pour sélectionner une méthode de démarrage, utilisez la fonction :func:" +"`set_start_method` dans la clause ``if __name__ == '__main__'`` du module " +"principal. Par exemple ::" #: ../Doc/library/multiprocessing.rst:159 msgid "" ":func:`set_start_method` should not be used more than once in the program." msgstr "" +":func:`set_start_method` ne doit pas être utilisée plus d'une fois dans le " +"programme." #: ../Doc/library/multiprocessing.rst:162 msgid "" @@ -177,6 +239,10 @@ msgid "" "Context objects have the same API as the multiprocessing module, and allow " "one to use multiple start methods in the same program. ::" msgstr "" +"Alternativement, vous pouvez utiliser :func:`get_context` pour obtenir un " +"contexte. Les contextes ont la même API que le module *multiprocessing*, et " +"permettent l'utilisation de plusieurs méthodes de démarrage dans un même " +"programme. ::" #: ../Doc/library/multiprocessing.rst:180 msgid "" @@ -185,48 +251,75 @@ msgid "" "*fork* context cannot be passed to processes started using the *spawn* or " "*forkserver* start methods." msgstr "" +"Notez que les objets relatifs à un contexte ne sont pas forcément " +"compatibles avec les processus d'un contexte différent. En particulier, les " +"verrous créés avec le contexte *fork* ne peuvent pas être passés aux " +"processus lancés avec les méthodes *spawn* ou *forkserver*." #: ../Doc/library/multiprocessing.rst:185 msgid "" "A library which wants to use a particular start method should probably use :" "func:`get_context` to avoid interfering with the choice of the library user." msgstr "" +"Une bibliothèque qui veut utiliser une méthode de démarrage particulière " +"devrait probablement faire appel à :func:`get_context` pour éviter " +"d'interférer avec le choix de l'utilisateur de la bibliothèque." #: ../Doc/library/multiprocessing.rst:191 -msgid "Exchanging objects between processes" +msgid "" +"The ``'spawn'`` and ``'forkserver'`` start methods cannot currently be used " +"with \"frozen\" executables (i.e., binaries produced by packages like " +"**PyInstaller** and **cx_Freeze**) on Unix. The ``'fork'`` start method does " +"work." msgstr "" +"Les méthodes de démarrage ``’spawn’`` et ``’forkserver’`` ne peuvent pas " +"être utilisées avec des exécutables \"congelés\" (c'est-à-dire des binaires " +"produits par des paquets comme **PyInstaller** et **cx_Freeze**) sur Unix. " +"La méthode de démarrage ``’fork’`` fonctionne." -#: ../Doc/library/multiprocessing.rst:193 +#: ../Doc/library/multiprocessing.rst:198 +msgid "Exchanging objects between processes" +msgstr "Échange d'objets entre les processus" + +#: ../Doc/library/multiprocessing.rst:200 msgid "" ":mod:`multiprocessing` supports two types of communication channel between " "processes:" msgstr "" +":mod:`multiprocessing` gère deux types de canaux de communication entre les " +"processus :" -#: ../Doc/library/multiprocessing.rst:196 +#: ../Doc/library/multiprocessing.rst:203 msgid "**Queues**" msgstr "**Queues**" -#: ../Doc/library/multiprocessing.rst:198 +#: ../Doc/library/multiprocessing.rst:205 msgid "" "The :class:`Queue` class is a near clone of :class:`queue.Queue`. For " "example::" msgstr "" +"La classe :class:`Queue` est un clone assez proche de :class:`queue.Queue`. " +"Par exemple ::" -#: ../Doc/library/multiprocessing.rst:213 +#: ../Doc/library/multiprocessing.rst:220 msgid "Queues are thread and process safe." msgstr "" +"Les queues peuvent être utilisées par plusieurs fils d'exécution ou " +"processus." -#: ../Doc/library/multiprocessing.rst:215 +#: ../Doc/library/multiprocessing.rst:222 msgid "**Pipes**" -msgstr "**Pipes**" +msgstr "**Tubes** (*pipes*)" -#: ../Doc/library/multiprocessing.rst:217 +#: ../Doc/library/multiprocessing.rst:224 msgid "" "The :func:`Pipe` function returns a pair of connection objects connected by " "a pipe which by default is duplex (two-way). For example::" msgstr "" +"La fonction :func:`Pipe` renvoie une paire d'objets de connexion connectés à " +"un tube qui est par défaut à double-sens. Par exemple ::" -#: ../Doc/library/multiprocessing.rst:233 +#: ../Doc/library/multiprocessing.rst:240 msgid "" "The two connection objects returned by :func:`Pipe` represent the two ends " "of the pipe. Each connection object has :meth:`~Connection.send` and :meth:" @@ -235,83 +328,114 @@ msgid "" "the *same* end of the pipe at the same time. Of course there is no risk of " "corruption from processes using different ends of the pipe at the same time." msgstr "" +"Les deux objets de connexion renvoyés par :func:`Pipe` représentent les deux " +"bouts d'un tube. Chaque objet de connexion possède (entre autres) des " +"méthodes :meth:`~Connection.send` et :meth:`~Connection.recv`. Notez que les " +"données d'un tube peuvent être corrompues si deux processus (ou fils " +"d'exécution) essaient de lire ou d'écrire sur le même bout du tube en même " +"temps. Évidemment il n'y a pas de risque de corruption si les processus " +"utilisent deux bouts différents en même temps." -#: ../Doc/library/multiprocessing.rst:243 +#: ../Doc/library/multiprocessing.rst:250 msgid "Synchronization between processes" -msgstr "" +msgstr "Synchronisation entre processus" -#: ../Doc/library/multiprocessing.rst:245 +#: ../Doc/library/multiprocessing.rst:252 msgid "" ":mod:`multiprocessing` contains equivalents of all the synchronization " "primitives from :mod:`threading`. For instance one can use a lock to ensure " "that only one process prints to standard output at a time::" msgstr "" +":mod:`multiprocessing` contient des équivalents à toutes les primitives de " +"synchronisation de :mod:`threading`. Par exemple il est possible d'utiliser " +"un verrou pour s'assurer qu'un seul processus à la fois écrit sur la sortie " +"standard ::" -#: ../Doc/library/multiprocessing.rst:264 +#: ../Doc/library/multiprocessing.rst:271 msgid "" "Without using the lock output from the different processes is liable to get " "all mixed up." msgstr "" +"Sans le verrou, les sorties des différents processus risquent d'être " +"mélangées." -#: ../Doc/library/multiprocessing.rst:269 +#: ../Doc/library/multiprocessing.rst:276 msgid "Sharing state between processes" -msgstr "" +msgstr "Partager un état entre les processus" -#: ../Doc/library/multiprocessing.rst:271 +#: ../Doc/library/multiprocessing.rst:278 msgid "" "As mentioned above, when doing concurrent programming it is usually best to " "avoid using shared state as far as possible. This is particularly true when " "using multiple processes." msgstr "" +"Comme mentionné plus haut, il est généralement préférable d'éviter autant " +"que possible d'utiliser des états partagés en programmation concurrente. " +"C'est particulièrement vrai quand plusieurs processus sont utilisés." -#: ../Doc/library/multiprocessing.rst:275 +#: ../Doc/library/multiprocessing.rst:282 msgid "" "However, if you really do need to use some shared data then :mod:" "`multiprocessing` provides a couple of ways of doing so." msgstr "" +"Cependant, si vous devez réellement partager des données, :mod:" +"`multiprocessing` permet de le faire de deux manières." -#: ../Doc/library/multiprocessing.rst:278 +#: ../Doc/library/multiprocessing.rst:285 msgid "**Shared memory**" -msgstr "" +msgstr "**Mémoire partagée**" -#: ../Doc/library/multiprocessing.rst:280 +#: ../Doc/library/multiprocessing.rst:287 msgid "" "Data can be stored in a shared memory map using :class:`Value` or :class:" "`Array`. For example, the following code ::" msgstr "" +"Les données peuvent être stockées dans une mémoire partagée en utilisant " +"des :class:`Value` ou des :class:`Array`. Par exemple, le code suivant ::" -#: ../Doc/library/multiprocessing.rst:301 -#: ../Doc/library/multiprocessing.rst:347 +#: ../Doc/library/multiprocessing.rst:308 +#: ../Doc/library/multiprocessing.rst:354 msgid "will print ::" -msgstr "" +msgstr "affiche ::" -#: ../Doc/library/multiprocessing.rst:306 +#: ../Doc/library/multiprocessing.rst:313 msgid "" "The ``'d'`` and ``'i'`` arguments used when creating ``num`` and ``arr`` are " "typecodes of the kind used by the :mod:`array` module: ``'d'`` indicates a " "double precision float and ``'i'`` indicates a signed integer. These shared " "objects will be process and thread-safe." msgstr "" +"Les arguments ``'d'`` et ``'i'`` utilisés à la création des ``num`` et " +"`arr`` sont des codes de types tels qu'utilisés par le module :mod:`array` : " +"``'d'`` indique un flottant double-précision et ``'i'`` indique un entier " +"signé. Ces objets partagés seront sûr d'utilisation entre processus et fils " +"d'exécution." -#: ../Doc/library/multiprocessing.rst:311 +#: ../Doc/library/multiprocessing.rst:318 msgid "" "For more flexibility in using shared memory one can use the :mod:" "`multiprocessing.sharedctypes` module which supports the creation of " "arbitrary ctypes objects allocated from shared memory." msgstr "" +"Pour plus de flexibilité dans l'utilisation de mémoire partagée, vous pouvez " +"utiliser le module :mod:`multiprocessing.sharedctypes` qui permet la " +"création d'objets arbitraires *ctypes* alloués depuis la mémoire partagée." -#: ../Doc/library/multiprocessing.rst:315 +#: ../Doc/library/multiprocessing.rst:322 msgid "**Server process**" -msgstr "" +msgstr "**Processus serveur**" -#: ../Doc/library/multiprocessing.rst:317 +#: ../Doc/library/multiprocessing.rst:324 msgid "" "A manager object returned by :func:`Manager` controls a server process which " "holds Python objects and allows other processes to manipulate them using " "proxies." msgstr "" +"Un objet gestionnaire renvoyé par :func:`Manager` contrôle un processus " +"serveur qui détient les objets Python et autorise les autres processus à les " +"manipuler à l'aide de mandataires." -#: ../Doc/library/multiprocessing.rst:321 +#: ../Doc/library/multiprocessing.rst:328 msgid "" "A manager returned by :func:`Manager` will support types :class:`list`, :" "class:`dict`, :class:`~managers.Namespace`, :class:`Lock`, :class:`RLock`, :" @@ -319,37 +443,52 @@ msgid "" "`Event`, :class:`Barrier`, :class:`Queue`, :class:`Value` and :class:" "`Array`. For example, ::" msgstr "" +"Un gestionnaire renvoyé par :func:`Manager` supportera les types :class:" +"`list`, :class:`dict`, :class:`~managers.Namespace`, :class:`Lock`, :class:" +"`RLock`, :class:`Semaphore`, :class:`BoundedSemaphore`, :class:`Condition`, :" +"class:`Event`, :class:`Barrier`, :class:`Queue`, :class:`Value` et :class:" +"`Array`. Par exemple, ::" -#: ../Doc/library/multiprocessing.rst:352 +#: ../Doc/library/multiprocessing.rst:359 msgid "" "Server process managers are more flexible than using shared memory objects " "because they can be made to support arbitrary object types. Also, a single " "manager can be shared by processes on different computers over a network. " "They are, however, slower than using shared memory." msgstr "" +"Les processus serveurs de gestionnaires sont plus flexibles que les mémoires " +"partagées parce qu'ils peuvent gérer des types d'objets arbitraires. Aussi, " +"un gestionnaire unique peut être partagé par les processus sur différentes " +"machines à travers le réseau. Cependant, ils sont plus lents que les " +"mémoires partagées." -#: ../Doc/library/multiprocessing.rst:359 +#: ../Doc/library/multiprocessing.rst:366 msgid "Using a pool of workers" -msgstr "" +msgstr "Utiliser un réservoir de *workers*" -#: ../Doc/library/multiprocessing.rst:361 +#: ../Doc/library/multiprocessing.rst:368 msgid "" "The :class:`~multiprocessing.pool.Pool` class represents a pool of worker " "processes. It has methods which allows tasks to be offloaded to the worker " "processes in a few different ways." msgstr "" +"La classe :class:`~multiprocessing.pool.Pool` représente une *pool* de " +"processus de travail. Elle possède des méthodes qui permettent aux tâches " +"d'être déchargées vers les processus de travail de différentes manières." -#: ../Doc/library/multiprocessing.rst:365 +#: ../Doc/library/multiprocessing.rst:372 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/multiprocessing.rst:409 +#: ../Doc/library/multiprocessing.rst:416 msgid "" "Note that the methods of a pool should only ever be used by the process " "which created it." msgstr "" +"Notez que les méthodes d'une *pool* ne devraient être utilisées que par le " +"processus qui l'a créée." -#: ../Doc/library/multiprocessing.rst:414 +#: ../Doc/library/multiprocessing.rst:421 msgid "" "Functionality within this package requires that the ``__main__`` module be " "importable by the children. This is covered in :ref:`multiprocessing-" @@ -357,36 +496,49 @@ msgid "" "examples, such as the :class:`multiprocessing.pool.Pool` examples will not " "work in the interactive interpreter. For example::" msgstr "" +"Fonctionnellement ce paquet exige que que le module ``__main__`` soit " +"importable par les fils. Cela est expliqué sur la page :ref:`multiprocessing-" +"programming`, il est cependant utile de le rappeler ici. Cela signifie que " +"certains exemples, comme les exemples utilisant :class:`multiprocessing.pool." +"Pool`, ne fonctionnent pas dans l'interpréteur interactif. Par exemple ::" -#: ../Doc/library/multiprocessing.rst:436 +#: ../Doc/library/multiprocessing.rst:443 msgid "" "(If you try this it will actually output three full tracebacks interleaved " "in a semi-random fashion, and then you may have to stop the master process " "somehow.)" msgstr "" +"(Si vous essayez ce code, il affichera trois traces d'appels complètes " +"entrelacées de manière semi-aléatoire, et vous aurez alors à stopper le " +"processus maître.)" -#: ../Doc/library/multiprocessing.rst:442 +#: ../Doc/library/multiprocessing.rst:449 msgid "Reference" -msgstr "" +msgstr "Référence" -#: ../Doc/library/multiprocessing.rst:444 +#: ../Doc/library/multiprocessing.rst:451 msgid "" "The :mod:`multiprocessing` package mostly replicates the API of the :mod:" "`threading` module." msgstr "" +"Le paquet :mod:`multiprocessing` reproduit en grande partie l'API du module :" +"mod:`threading`." -#: ../Doc/library/multiprocessing.rst:449 +#: ../Doc/library/multiprocessing.rst:456 msgid ":class:`Process` and exceptions" -msgstr "" +msgstr ":class:`Process` et exceptions" -#: ../Doc/library/multiprocessing.rst:454 +#: ../Doc/library/multiprocessing.rst:461 msgid "" "Process objects represent activity that is run in a separate process. The :" "class:`Process` class has equivalents of all the methods of :class:" "`threading.Thread`." msgstr "" +"Les objets *process* représentent une activité exécutée dans un processus " +"séparé. La classe :class:`Process` a des équivalents à toutes les méthodes " +"de :class:`threading.Thread`." -#: ../Doc/library/multiprocessing.rst:458 +#: ../Doc/library/multiprocessing.rst:465 msgid "" "The constructor should always be called with keyword arguments. *group* " "should always be ``None``; it exists solely for compatibility with :class:" @@ -399,45 +551,65 @@ msgid "" "``False``. If ``None`` (the default), this flag will be inherited from the " "creating process." msgstr "" - -#: ../Doc/library/multiprocessing.rst:469 +"Le constructeur doit toujours être appelé avec des arguments nommés. *group* " +"devrait toujours être ``None`` ; il existe uniquement pour la compatibilité " +"avec :class:`threading.Thread`. *target* est l'objet appelable qui est " +"invoqué par la méthode :meth:`run(). Il vaut ``None`` par défaut, signifiant " +"que rien n'est appelé. *name* est le nom du processus (voir :attr:`name` " +"pour plus de détails). *args* est le *tuple* d'arguments pour l'invocation " +"de la cible. *kwargs* est le dictionnaire des arguments nommés pour " +"l'invocation de la cible. S'il est fourni, l'argument nommé *daemon* met " +"l'option :attr:`daemon` du processus à ``True`` ou ``False``. S'il est " +"``None`` (par défaut), l'option est héritée par le processus créateur." + +#: ../Doc/library/multiprocessing.rst:476 msgid "By default, no arguments are passed to *target*." -msgstr "" +msgstr "Par défaut, aucun argument n'est passé à *target*." -#: ../Doc/library/multiprocessing.rst:471 +#: ../Doc/library/multiprocessing.rst:478 msgid "" "If a subclass overrides the constructor, it must make sure it invokes the " "base class constructor (:meth:`Process.__init__`) before doing anything else " "to the process." msgstr "" +"Si une sous-classe redéfinit le constructeur, elle doit s'assurer d'invoquer " +"le constructeur de la classe de base (:meth:`Process.__init__`) avant de " +"faire autre chose du processus." -#: ../Doc/library/multiprocessing.rst:475 +#: ../Doc/library/multiprocessing.rst:482 msgid "Added the *daemon* argument." -msgstr "" +msgstr "Ajout de l'argument *daemon*." -#: ../Doc/library/multiprocessing.rst:480 +#: ../Doc/library/multiprocessing.rst:487 msgid "Method representing the process's activity." -msgstr "" +msgstr "Méthode représentant l'activité du processus." -#: ../Doc/library/multiprocessing.rst:482 +#: ../Doc/library/multiprocessing.rst:489 msgid "" "You may override this method in a subclass. The standard :meth:`run` method " "invokes the callable object passed to the object's constructor as the target " "argument, if any, with sequential and keyword arguments taken from the " "*args* and *kwargs* arguments, respectively." msgstr "" +"Vous pouvez redéfinir cette méthode dans une sous-classe. La méthode " +"standard :meth:`run` invoque l'objet appelable passé au constructeur comme " +"argument *target*, si fourni, avec les arguments séquentiels et nommés " +"respectivement pris depuis les paramètres *args* et *kwargs*." -#: ../Doc/library/multiprocessing.rst:489 +#: ../Doc/library/multiprocessing.rst:496 msgid "Start the process's activity." -msgstr "" +msgstr "Démarre l'activité du processus." -#: ../Doc/library/multiprocessing.rst:491 +#: ../Doc/library/multiprocessing.rst:498 msgid "" "This must be called at most once per process object. It arranges for the " "object's :meth:`run` method to be invoked in a separate process." msgstr "" +"Elle doit être appelée au plus une fois par objet processus. Elle s'arrange " +"pour que la méthode :meth:`run` de l'objet soit invoquée dans un processus " +"séparé." -#: ../Doc/library/multiprocessing.rst:496 +#: ../Doc/library/multiprocessing.rst:503 msgid "" "If the optional argument *timeout* is ``None`` (the default), the method " "blocks until the process whose :meth:`join` method is called terminates. If " @@ -446,58 +618,80 @@ msgid "" "times out. Check the process's :attr:`exitcode` to determine if it " "terminated." msgstr "" +"Si l'argument optionnel *timeout* est ``None`` (par défaut), la méthode " +"bloque jusqu'à ce que le processus dont la méthode :meth:`join` a été " +"appelée se termine. Si *timeout* est un nombre positif, elle bloque au " +"maximum pendant *timeout* secondes. Notez que la méthode renvoie ``None`` si " +"le processus se termine ou si le temps d'exécution expire. Vérifiez " +"l'attribut :attr:`exitcode` du processus pour déterminer s'il s'est terminé." -#: ../Doc/library/multiprocessing.rst:503 +#: ../Doc/library/multiprocessing.rst:510 msgid "A process can be joined many times." -msgstr "" +msgstr "*join* peut être appelée plusieurs fois sur un même processus." -#: ../Doc/library/multiprocessing.rst:505 +#: ../Doc/library/multiprocessing.rst:512 msgid "" "A process cannot join itself because this would cause a deadlock. It is an " "error to attempt to join a process before it has been started." msgstr "" +"Un processus ne peut pas s'attendre lui-même car cela causerait un " +"interblocage. C'est une erreur d'essayer d'attendre un processus avant qu'il " +"ne soit démarré." -#: ../Doc/library/multiprocessing.rst:510 +#: ../Doc/library/multiprocessing.rst:517 msgid "" "The process's name. The name is a string used for identification purposes " "only. It has no semantics. Multiple processes may be given the same name." msgstr "" +"Le nom du processus. Le nom est une chaîne de caractères utilisée uniquement " +"pour l'identification du processus. Il n'a pas de sémantique. Plusieurs " +"processus peuvent avoir le même nom." -#: ../Doc/library/multiprocessing.rst:514 +#: ../Doc/library/multiprocessing.rst:521 msgid "" "The initial name is set by the constructor. If no explicit name is provided " "to the constructor, a name of the form 'Process-N\\ :sub:`1`:N\\ :sub:" "`2`:...:N\\ :sub:`k`' is constructed, where each N\\ :sub:`k` is the N-th " "child of its parent." msgstr "" +"Le nom initial est déterminé par le constructeur. Si aucun nom explicite " +"n'est fourni au constructeur, un nom de la forme « Process-N\\ :sub:`1`:N\\ :" +"sub:`2`:...:N\\ :sub:`k` » est construit, où chaque N\\ :sub:`k` est le N-" +"ième enfant de son parent." -#: ../Doc/library/multiprocessing.rst:521 +#: ../Doc/library/multiprocessing.rst:528 msgid "Return whether the process is alive." -msgstr "" +msgstr "Renvoie vrai si le processus est en vie, faux sinon." -#: ../Doc/library/multiprocessing.rst:523 +#: ../Doc/library/multiprocessing.rst:530 msgid "" "Roughly, a process object is alive from the moment the :meth:`start` method " "returns until the child process terminates." msgstr "" +"Grossièrement, un objet processus est en vie depuis le moment où la méthode :" +"meth:`start` finit de s'exécuter jusqu'à ce que le processus fils se termine." -#: ../Doc/library/multiprocessing.rst:528 +#: ../Doc/library/multiprocessing.rst:535 msgid "" "The process's daemon flag, a Boolean value. This must be set before :meth:" "`start` is called." msgstr "" +"L'option *daemon* du processus, une valeur booléenne. L'option doit être " +"réglée avant que la méthode :meth:`start` ne soit appelée." -#: ../Doc/library/multiprocessing.rst:531 +#: ../Doc/library/multiprocessing.rst:538 msgid "The initial value is inherited from the creating process." -msgstr "" +msgstr "La valeur initiale est héritée par le processus créateur." -#: ../Doc/library/multiprocessing.rst:533 +#: ../Doc/library/multiprocessing.rst:540 msgid "" "When a process exits, it attempts to terminate all of its daemonic child " "processes." msgstr "" +"Quand un processus se ferme, il tente de terminer tous ses processus enfants " +"*daemon*." -#: ../Doc/library/multiprocessing.rst:536 +#: ../Doc/library/multiprocessing.rst:543 msgid "" "Note that a daemonic process is not allowed to create child processes. " "Otherwise a daemonic process would leave its children orphaned if it gets " @@ -505,80 +699,112 @@ msgid "" "Unix daemons or services, they are normal processes that will be terminated " "(and not joined) if non-daemonic processes have exited." msgstr "" +"Notez qu'un processus *daemon* n'est pas autorisé à créer des processus " +"fils. Sinon un processus *daemon* laisserait ses enfants orphelins lorsqu'il " +"se termine par la fermeture de son parent. De plus, ce **ne sont pas** des " +"*daemons* ou services Unix, ce sont des processus normaux qui seront " +"terminés (et non attendus) si un processus non *daemon* se ferme." -#: ../Doc/library/multiprocessing.rst:542 +#: ../Doc/library/multiprocessing.rst:549 msgid "" "In addition to the :class:`threading.Thread` API, :class:`Process` objects " "also support the following attributes and methods:" msgstr "" +"En plus de l'API :class:`threading.Thread`, les objets :class:`Process` " +"supportent aussi les attributs et méthodes suivants :" -#: ../Doc/library/multiprocessing.rst:547 +#: ../Doc/library/multiprocessing.rst:554 msgid "" "Return the process ID. Before the process is spawned, this will be ``None``." msgstr "" +"Renvoie l'ID du processus. Avant que le processus ne soit lancé, la valeur " +"est ``None``." -#: ../Doc/library/multiprocessing.rst:552 +#: ../Doc/library/multiprocessing.rst:559 msgid "" "The child's exit code. This will be ``None`` if the process has not yet " "terminated. A negative value *-N* indicates that the child was terminated " "by signal *N*." msgstr "" +"Le code de fermeture de l'enfant. La valeur est ``None`` si le processus ne " +"s'est pas encore terminé. Une valeur négative *-N* indique que le fils a été " +"terminé par un signal *N*." -#: ../Doc/library/multiprocessing.rst:558 +#: ../Doc/library/multiprocessing.rst:565 msgid "The process's authentication key (a byte string)." -msgstr "" +msgstr "La clé d'authentification du processus (une chaîne d'octets)." -#: ../Doc/library/multiprocessing.rst:560 +#: ../Doc/library/multiprocessing.rst:567 msgid "" "When :mod:`multiprocessing` is initialized the main process is assigned a " "random string using :func:`os.urandom`." msgstr "" +"Quand :mod:`multiprocessing` est initialisé, une chaîne aléatoire est " +"assignée au processus principal, en utilisant :func:`os.urandom`." -#: ../Doc/library/multiprocessing.rst:563 +#: ../Doc/library/multiprocessing.rst:570 msgid "" "When a :class:`Process` object is created, it will inherit the " "authentication key of its parent process, although this may be changed by " "setting :attr:`authkey` to another byte string." msgstr "" +"Quand un objet :class:`Process` est créé, il hérité de la clé " +"d'authentification de son parent, bien que cela puisse être changé à l'aide " +"du paramètre :attr:`authkey` pour une autre chaîne d'octets." -#: ../Doc/library/multiprocessing.rst:567 +#: ../Doc/library/multiprocessing.rst:574 msgid "See :ref:`multiprocessing-auth-keys`." -msgstr "" +msgstr "Voir :ref:`multiprocessing-auth-keys`." -#: ../Doc/library/multiprocessing.rst:571 +#: ../Doc/library/multiprocessing.rst:578 msgid "" "A numeric handle of a system object which will become \"ready\" when the " "process ends." msgstr "" +"Un identifiant numérique de l'objet système qui devient « prêt » quand le " +"processus se termine." -#: ../Doc/library/multiprocessing.rst:574 +#: ../Doc/library/multiprocessing.rst:581 msgid "" "You can use this value if you want to wait on several events at once using :" "func:`multiprocessing.connection.wait`. Otherwise calling :meth:`join()` is " "simpler." msgstr "" +"Vous pouvez utiliser cette valeur si vous voulez attendre plusieurs " +"événements à la fois en utilisant :func:`multiprocessing.connection.wait`. " +"Autrement appeler :meth:`join()` est plus simple." -#: ../Doc/library/multiprocessing.rst:578 +#: ../Doc/library/multiprocessing.rst:585 msgid "" "On Windows, this is an OS handle usable with the ``WaitForSingleObject`` and " "``WaitForMultipleObjects`` family of API calls. On Unix, this is a file " "descriptor usable with primitives from the :mod:`select` module." msgstr "" +"Sous Windows, c'est un mécanisme de l'OS utilisable avec les familles " +"d'appels API ``WaitForSingleObject`` et ``WaitForMultipleObjects``. Sous " +"Unix, c'est un descripteur de fichier utilisable avec les primitives sur " +"module :mod:`select`." -#: ../Doc/library/multiprocessing.rst:586 +#: ../Doc/library/multiprocessing.rst:593 msgid "" "Terminate the process. On Unix this is done using the ``SIGTERM`` signal; " "on Windows :c:func:`TerminateProcess` is used. Note that exit handlers and " "finally clauses, etc., will not be executed." msgstr "" +"Termine le processus. Sous Unix cela est réalisé à l'aide d'un signal " +"``SIGTERM``, sous Windows :c:func:`TerminateProcess` est utilisé. Notez que " +"les gestionnaires de sortie, les clauses `finally` etc. ne sont pas " +"exécutées." -#: ../Doc/library/multiprocessing.rst:590 +#: ../Doc/library/multiprocessing.rst:597 msgid "" "Note that descendant processes of the process will *not* be terminated -- " "they will simply become orphaned." msgstr "" +"Notez que les descendants du processus ne *seront pas* terminés -- ils " +"deviendront simplement orphelins." -#: ../Doc/library/multiprocessing.rst:595 +#: ../Doc/library/multiprocessing.rst:602 msgid "" "If this method is used when the associated process is using a pipe or queue " "then the pipe or queue is liable to become corrupted and may become unusable " @@ -586,72 +812,98 @@ msgid "" "semaphore etc. then terminating it is liable to cause other processes to " "deadlock." msgstr "" +"Si cette méthode est utilisée quand le processus associé utilise un tube ou " +"une queue, alors le tube ou la queue sont susceptibles d'être corrompus et " +"peuvent devenir inutilisables par les autres processus. De façon similaire, " +"si le processus a acquis un verrou, un sémaphore ou autre, alors le terminer " +"est susceptible de provoquer des blocages dans les autres processus." -#: ../Doc/library/multiprocessing.rst:603 +#: ../Doc/library/multiprocessing.rst:610 msgid "Same as :meth:`terminate()` but using the ``SIGKILL`` signal on Unix." msgstr "" +"Identique à :meth:`terminate()` mais utilisant le signal ``SIGKILL`` sous " +"Unix." -#: ../Doc/library/multiprocessing.rst:609 +#: ../Doc/library/multiprocessing.rst:616 msgid "" "Close the :class:`Process` object, releasing all resources associated with " "it. :exc:`ValueError` is raised if the underlying process is still " "running. Once :meth:`close` returns successfully, most other methods and " "attributes of the :class:`Process` object will raise :exc:`ValueError`." msgstr "" +"Ferme l'objet :class:`Process`, libérant toutes les ressources qui lui sont " +"associées. Une :exc:`ValueError` est levée si le processus sous-jacent " +"tourne toujours. Une fois que :meth:`close` se termine avec succès, la " +"plupart des autres méthodes et attributs des objets :class:`Process` " +"lèveront une :exc:`ValueError`." -#: ../Doc/library/multiprocessing.rst:617 +#: ../Doc/library/multiprocessing.rst:624 msgid "" "Note that the :meth:`start`, :meth:`join`, :meth:`is_alive`, :meth:" "`terminate` and :attr:`exitcode` methods should only be called by the " "process that created the process object." msgstr "" +"Notez que les méthodes :meth:`start`, :meth:`join`, :meth:`is_alive`, :meth:" +"`terminate` et :attr:`exitcode` ne devraient être appelées que par le " +"processus ayant créé l'objet *process*." -#: ../Doc/library/multiprocessing.rst:621 +#: ../Doc/library/multiprocessing.rst:628 msgid "Example usage of some of the methods of :class:`Process`:" -msgstr "" +msgstr "Exemple d'utilisation de quelques méthodes de :class:`Process` :" -#: ../Doc/library/multiprocessing.rst:641 +#: ../Doc/library/multiprocessing.rst:648 msgid "The base class of all :mod:`multiprocessing` exceptions." -msgstr "" +msgstr "La classe de base de toutes les exceptions de :mod:`multiprocessing`." -#: ../Doc/library/multiprocessing.rst:645 +#: ../Doc/library/multiprocessing.rst:652 msgid "" "Exception raised by :meth:`Connection.recv_bytes_into()` when the supplied " "buffer object is too small for the message read." msgstr "" +"Exception levée par :meth:`Connection.recv_bytes_into()` quand l'objet " +"tampon fourni est trop petit pour le message à lire." -#: ../Doc/library/multiprocessing.rst:648 +#: ../Doc/library/multiprocessing.rst:655 msgid "" "If ``e`` is an instance of :exc:`BufferTooShort` then ``e.args[0]`` will " "give the message as a byte string." msgstr "" +"Si ``e`` est une instance de :exc:`BufferTooShort` alors ``e.args[0]`` " +"donnera un message sous forme d'une chaîne d'octets." -#: ../Doc/library/multiprocessing.rst:653 +#: ../Doc/library/multiprocessing.rst:660 msgid "Raised when there is an authentication error." -msgstr "" +msgstr "Levée quand il y a une erreur d'authentification." -#: ../Doc/library/multiprocessing.rst:657 +#: ../Doc/library/multiprocessing.rst:664 msgid "Raised by methods with a timeout when the timeout expires." msgstr "" +"Levée par les méthodes avec temps d'exécution limité, quand ce temps expire." -#: ../Doc/library/multiprocessing.rst:660 +#: ../Doc/library/multiprocessing.rst:667 msgid "Pipes and Queues" -msgstr "" +msgstr "Tubes (*pipes*) et Queues" -#: ../Doc/library/multiprocessing.rst:662 +#: ../Doc/library/multiprocessing.rst:669 msgid "" "When using multiple processes, one generally uses message passing for " "communication between processes and avoids having to use any synchronization " "primitives like locks." msgstr "" +"Quand de multiples processus sont utilisés, de l'échange de messages est " +"souvent mis en place pour la communication entre processus et éviter d'avoir " +"à utiliser des primitives de synchronisation telles que des verrous." -#: ../Doc/library/multiprocessing.rst:666 +#: ../Doc/library/multiprocessing.rst:673 msgid "" "For passing messages one can use :func:`Pipe` (for a connection between two " "processes) or a queue (which allows multiple producers and consumers)." msgstr "" +"Pour échanger des messages vous pouvez utiliser un :func:`Pipe` (pour une " +"connexion entre deux processus) ou une queue (qui autorise de multiples " +"producteurs et consommateurs)." -#: ../Doc/library/multiprocessing.rst:669 +#: ../Doc/library/multiprocessing.rst:676 msgid "" "The :class:`Queue`, :class:`SimpleQueue` and :class:`JoinableQueue` types " "are multi-producer, multi-consumer :abbr:`FIFO (first-in, first-out)` queues " @@ -660,29 +912,45 @@ msgid "" "meth:`~queue.Queue.join` methods introduced into Python 2.5's :class:`queue." "Queue` class." msgstr "" +"Les types :class:`Queue`, :class:`SimpleQueue` et :class:`JoinableQueue` " +"sont des queues :abbr:`FIFO (first-in, first-out)` multi-producteurs et " +"multi-consommateurs modelées sur la classe :class:`queue.Queue` de la " +"bibliothèque standard. Elles diffèrent par l'absence dans :class:`Queue` des " +"méthodes :meth:`~queue.Queue.task_done` et :meth:`~queue.Queue.join` " +"introduites dans la classe :class:`queue.Queue` par Python 2.5." -#: ../Doc/library/multiprocessing.rst:676 +#: ../Doc/library/multiprocessing.rst:683 msgid "" "If you use :class:`JoinableQueue` then you **must** call :meth:" "`JoinableQueue.task_done` for each task removed from the queue or else the " "semaphore used to count the number of unfinished tasks may eventually " "overflow, raising an exception." msgstr "" +"Si vous utilisez :class:`JoinableQueue` alors vous **devez** appeler :meth:" +"`JoinableQueue.task_done` pour chaque tâche retirée de la queue, sans quoi " +"le sémaphore utilisé pour compter le nombre de tâches non accomplies pourra " +"éventuellement déborder, levant une exception." -#: ../Doc/library/multiprocessing.rst:681 +#: ../Doc/library/multiprocessing.rst:688 msgid "" "Note that one can also create a shared queue by using a manager object -- " "see :ref:`multiprocessing-managers`." msgstr "" +"Notez que vous pouvez aussi créer une queue partagée en utilisant un objet " +"gestionnaire -- voir :ref:`multiprocessing-managers`." -#: ../Doc/library/multiprocessing.rst:686 +#: ../Doc/library/multiprocessing.rst:693 msgid "" ":mod:`multiprocessing` uses the usual :exc:`queue.Empty` and :exc:`queue." "Full` exceptions to signal a timeout. They are not available in the :mod:" "`multiprocessing` namespace so you need to import them from :mod:`queue`." msgstr "" +":mod:`multiprocessing` utilise les exceptions habituelles :exc:`queue.Empty` " +"et :exc:`queue.Full` pour signaler un dépassement du temps maximal autorisé. " +"Elles ne sont pas disponibles dans l'espace de nommage :mod:" +"`multiprocessing` donc vous devez les importer depuis le module :mod:`queue`." -#: ../Doc/library/multiprocessing.rst:693 +#: ../Doc/library/multiprocessing.rst:700 msgid "" "When an object is put on a queue, the object is pickled and a background " "thread later flushes the pickled data to an underlying pipe. This has some " @@ -690,39 +958,63 @@ msgid "" "practical difficulties -- if they really bother you then you can instead use " "a queue created with a :ref:`manager `." msgstr "" +"Quand un objet est placé dans une queue, l'objet est sérialisé par *pickle* " +"et un fil d'exécution en arrière-plan transmettra ensuite les données " +"sérialisées sur un tube sous-jacent. Cela a certaines conséquences qui " +"peuvent être un peu surprenantes, mais ne devrait causer aucune difficultés " +"pratiques -- si elles vous embêtent vraiment, alors vous pouvez à la place " +"utiliser une queue créée avec un :ref:`manager `." -#: ../Doc/library/multiprocessing.rst:700 +#: ../Doc/library/multiprocessing.rst:707 msgid "" "After putting an object on an empty queue there may be an infinitesimal " "delay before the queue's :meth:`~Queue.empty` method returns :const:`False` " "and :meth:`~Queue.get_nowait` can return without raising :exc:`queue.Empty`." msgstr "" +"Après avoir placé un objet dans une queue vide il peut y avoir un délai " +"infinitésimal avant que la méthode :meth:`~Queue.empty` de la queue renvoie :" +"const:`False` et que :meth:`~Queue.get_nowait` renvoie une valeur sans lever " +"de :exc:`queue.Empty`." -#: ../Doc/library/multiprocessing.rst:705 +#: ../Doc/library/multiprocessing.rst:712 msgid "" "If multiple processes are enqueuing objects, it is possible for the objects " "to be received at the other end out-of-order. However, objects enqueued by " "the same process will always be in the expected order with respect to each " "other." msgstr "" +"Si plusieurs processus placent des objets dans la queue, il est possible " +"pour les objets d'être reçus de l'autre côté dans le désordre. Cependant, " +"les objets placés par un même processus seront toujours récupérés dans " +"l'ordre attendu." -#: ../Doc/library/multiprocessing.rst:712 +#: ../Doc/library/multiprocessing.rst:719 msgid "" "If a process is killed using :meth:`Process.terminate` or :func:`os.kill` " "while it is trying to use a :class:`Queue`, then the data in the queue is " "likely to become corrupted. This may cause any other process to get an " "exception when it tries to use the queue later on." msgstr "" +"Si un processus est tué à l'aide de :meth:`Process.terminate` ou :func:`os." +"kill` pendant qu'il tente d'utiliser une :class:`Queue`, alors les données " +"de la queue peuvent être corrompues. Cela peut par la suite causer des " +"levées d'exceptions dans les autres processus quand ils tenteront d'utiliser " +"la queue." -#: ../Doc/library/multiprocessing.rst:719 +#: ../Doc/library/multiprocessing.rst:726 msgid "" "As mentioned above, if a child process has put items on a queue (and it has " "not used :meth:`JoinableQueue.cancel_join_thread `), then that process will not terminate until all " "buffered items have been flushed to the pipe." msgstr "" +"Comme mentionné plus haut, si un processus fils a placé des éléments dans la " +"queue (et qu'il n'a pas utilisé :meth:`JoinableQueue.cancel_join_thread " +"`), alors le processus ne se " +"terminera pas tant que les éléments placés dans le tampon n'auront pas été " +"transmis au tube." -#: ../Doc/library/multiprocessing.rst:724 +#: ../Doc/library/multiprocessing.rst:731 msgid "" "This means that if you try joining that process you may get a deadlock " "unless you are sure that all items which have been put on the queue have " @@ -730,77 +1022,111 @@ msgid "" "parent process may hang on exit when it tries to join all its non-daemonic " "children." msgstr "" +"Cela signifie que si vous essayez d'attendre ce processus vous pouvez " +"obtenir un interblocage, à moins que vous ne soyez sûr que tous les éléments " +"placés dans la queue ont été consommés. De même, si le processus fils n'est " +"pas un *daemon* alors le processus parent pourrait bloquer à la fermeture " +"quand il tentera d'attendre tous ses enfants non *daemons*." -#: ../Doc/library/multiprocessing.rst:729 +#: ../Doc/library/multiprocessing.rst:736 msgid "" "Note that a queue created using a manager does not have this issue. See :" "ref:`multiprocessing-programming`." msgstr "" +"Notez que la queue créée à l'aide d'un gestionnaire n'a pas ce problème. " +"Voir :ref:`multiprocessing-programming`." -#: ../Doc/library/multiprocessing.rst:732 +#: ../Doc/library/multiprocessing.rst:739 msgid "" "For an example of the usage of queues for interprocess communication see :" "ref:`multiprocessing-examples`." msgstr "" +"Pour un exemple d'utilisation de queues pour de la communication entre les " +"processus, voir :ref:`multiprocessing-examples`." -#: ../Doc/library/multiprocessing.rst:738 +#: ../Doc/library/multiprocessing.rst:745 msgid "" "Returns a pair ``(conn1, conn2)`` of :class:`~multiprocessing.connection." "Connection` objects representing the ends of a pipe." msgstr "" +"Renvoie une paire ``(conn1, conn2)`` d'objets :class:`~multiprocessing." +"connection.Connection` représentant les bouts d'un tube." -#: ../Doc/library/multiprocessing.rst:742 +#: ../Doc/library/multiprocessing.rst:749 msgid "" "If *duplex* is ``True`` (the default) then the pipe is bidirectional. If " "*duplex* is ``False`` then the pipe is unidirectional: ``conn1`` can only be " "used for receiving messages and ``conn2`` can only be used for sending " "messages." msgstr "" +"Si *duplex* vaut ``True`` (par défaut), alors le tube est bidirectionnel. Si " +"*duplex* vaut ``False`` il est unidirectionnel : ``conn1`` ne peut être " +"utilisé que pour recevoir des messages et ``conn2`` que pour en envoyer." -#: ../Doc/library/multiprocessing.rst:750 +#: ../Doc/library/multiprocessing.rst:757 msgid "" "Returns a process shared queue implemented using a pipe and a few locks/" "semaphores. When a process first puts an item on the queue a feeder thread " "is started which transfers objects from a buffer into the pipe." msgstr "" +"Renvoie une queue partagée entre les processus utilisant un tube et quelques " +"verrous/sémaphores. Quand un processus place initialement un élément sur la " +"queue, un fil d'exécution *feeder* est démarré pour transférer les objets du " +"tampon vers le tube." -#: ../Doc/library/multiprocessing.rst:754 +#: ../Doc/library/multiprocessing.rst:761 msgid "" "The usual :exc:`queue.Empty` and :exc:`queue.Full` exceptions from the " "standard library's :mod:`queue` module are raised to signal timeouts." msgstr "" +"Les exceptions habituelles :exc:`queue.Empty` et :exc:`queue.Full` du " +"module :mod:`queue` de la bibliothèque standard sont levées pour signaler " +"les *timeouts*." -#: ../Doc/library/multiprocessing.rst:757 +#: ../Doc/library/multiprocessing.rst:764 msgid "" ":class:`Queue` implements all the methods of :class:`queue.Queue` except " "for :meth:`~queue.Queue.task_done` and :meth:`~queue.Queue.join`." msgstr "" +":class:`Queue` implémente toutes les méthodes de :class:`queue.Queue` à " +"l'exception de :meth:`~queue.Queue.task_done` et :meth:`~queue.Queue.join`." -#: ../Doc/library/multiprocessing.rst:762 +#: ../Doc/library/multiprocessing.rst:769 msgid "" "Return the approximate size of the queue. Because of multithreading/" "multiprocessing semantics, this number is not reliable." msgstr "" +"Renvoie la taille approximative de la queue. Ce nombre n'est pas fiable en " +"raison des problématiques de *multithreading* et *multiprocessing*." -#: ../Doc/library/multiprocessing.rst:765 +#: ../Doc/library/multiprocessing.rst:772 msgid "" "Note that this may raise :exc:`NotImplementedError` on Unix platforms like " "Mac OS X where ``sem_getvalue()`` is not implemented." msgstr "" +"Notez que cela peut lever une :exc:`NotImplementedError` sous les " +"plateformes Unix telles que Mac OS X où ``sem_getvalue()`` n'est pas " +"implémentée." -#: ../Doc/library/multiprocessing.rst:770 +#: ../Doc/library/multiprocessing.rst:777 msgid "" "Return ``True`` if the queue is empty, ``False`` otherwise. Because of " "multithreading/multiprocessing semantics, this is not reliable." msgstr "" +"Renvoie ``True`` si la queue est vide, ``False`` sinon. Cette valeur n'est " +"pas fiable en raison des problématiques de *multithreading* et " +"*multiprocessing*." -#: ../Doc/library/multiprocessing.rst:775 +#: ../Doc/library/multiprocessing.rst:782 msgid "" "Return ``True`` if the queue is full, ``False`` otherwise. Because of " "multithreading/multiprocessing semantics, this is not reliable." msgstr "" +"Renvoie ``True`` si la queue est pleine, ``False`` sinon. Cette valeur n'est " +"pas fiable en raison des problématiques de *multithreading* et " +"*multiprocessing*." -#: ../Doc/library/multiprocessing.rst:780 +#: ../Doc/library/multiprocessing.rst:787 msgid "" "Put obj into the queue. If the optional argument *block* is ``True`` (the " "default) and *timeout* is ``None`` (the default), block if necessary until a " @@ -810,12 +1136,20 @@ msgid "" "an item on the queue if a free slot is immediately available, else raise " "the :exc:`queue.Full` exception (*timeout* is ignored in that case)." msgstr "" +"Place *obj* dans la queue. Si l'argument optionnel *block* vaut ``True`` " +"(par défaut) est que *timeout* est ``None`` (par défaut), bloque jusqu'à ce " +"qu'un slot libre soit disponible. Si *timeout* est un nombre positif, la " +"méthode bloquera au maximum *timeout* secondes et lèvera une exception :exc:" +"`queue.Full` si aucun slot libre n'a été trouvé dans le temps imparti. " +"Autrement (*block* vaut ``False``), place un élément dans la queue si un " +"slot libre est immédiatement disponible, ou lève une exception :exc:`queue." +"Full` dans le cas contraire (*timeout* est ignoré dans ce cas)." -#: ../Doc/library/multiprocessing.rst:791 +#: ../Doc/library/multiprocessing.rst:798 msgid "Equivalent to ``put(obj, False)``." -msgstr "" +msgstr "Équivalent à ``put(obj, False)``." -#: ../Doc/library/multiprocessing.rst:795 +#: ../Doc/library/multiprocessing.rst:802 msgid "" "Remove and return an item from the queue. If optional args *block* is " "``True`` (the default) and *timeout* is ``None`` (the default), block if " @@ -825,48 +1159,74 @@ msgid "" "return an item if one is immediately available, else raise the :exc:`queue." "Empty` exception (*timeout* is ignored in that case)." msgstr "" - -#: ../Doc/library/multiprocessing.rst:805 -#, fuzzy +"Retire et renvoie un élément de la queue. Si l'argument optionnel *block* " +"vaut ``True`` (par défaut) et que *timeout* est ``None`` (par défaut), " +"bloque jusqu'à ce qu'un élément soit disponible. Si *timeout* (le délai " +"maximal autorisé) est un nombre positif, la méthode bloquera au maximum " +"*timeout* secondes et lèvera une exception :exc:`queue.Empty` si aucun " +"élément n'est disponible dans le temps imparti. Autrement (*block* vaut " +"``False``), renvoie un élément s'il est immédiatement disponible, ou lève " +"une exception :exc:`queue.Empty` dans le cas contraire (*timeout* est ignoré " +"dans ce cas)." + +#: ../Doc/library/multiprocessing.rst:812 msgid "Equivalent to ``get(False)``." msgstr "Équivalent à ``get(False)``." -#: ../Doc/library/multiprocessing.rst:807 +#: ../Doc/library/multiprocessing.rst:814 msgid "" ":class:`multiprocessing.Queue` has a few additional methods not found in :" "class:`queue.Queue`. These methods are usually unnecessary for most code:" msgstr "" +":class:`multiprocessing.Queue` possède quelques méthodes additionnelles non " +"présentes dans :class:`queue.Queue`. Ces méthodes ne sont habituellement pas " +"nécessaires pour la plupart des codes :" -#: ../Doc/library/multiprocessing.rst:813 +#: ../Doc/library/multiprocessing.rst:820 msgid "" "Indicate that no more data will be put on this queue by the current " "process. The background thread will quit once it has flushed all buffered " "data to the pipe. This is called automatically when the queue is garbage " "collected." msgstr "" +"Indique que plus aucune donnée ne peut être placée sur la queue par le " +"processus courant. Le fil d'exécution en arrière-plan se terminera quand il " +"aura transféré toutes les données du tampon vers le tube. Elle est appelée " +"automatiquement quand la queue est collectée par le ramasse-miettes." -#: ../Doc/library/multiprocessing.rst:820 +#: ../Doc/library/multiprocessing.rst:827 msgid "" "Join the background thread. This can only be used after :meth:`close` has " "been called. It blocks until the background thread exits, ensuring that all " "data in the buffer has been flushed to the pipe." msgstr "" +"Attend le fil d'exécution d'arrière-plan. Elle peut seulement être utilisée " +"une fois que :meth:`close` a été appelée. Elle bloque jusqu'à ce que le fil " +"d'arrière-plan se termine, assurant que toutes les données du tampon ont été " +"transmises au tube." -#: ../Doc/library/multiprocessing.rst:824 +#: ../Doc/library/multiprocessing.rst:831 msgid "" "By default if a process is not the creator of the queue then on exit it will " "attempt to join the queue's background thread. The process can call :meth:" "`cancel_join_thread` to make :meth:`join_thread` do nothing." msgstr "" +"Par défaut si un processus n'est pas le créateur de la queue alors à la " +"fermeture elle essaiera d'attendre le fil d'exécution d'arrière-plan de la " +"queue. Le processus peut appeler :meth:`cancel_join_thread` pour que :meth:" +"`join_thread` ne fasse rien." -#: ../Doc/library/multiprocessing.rst:830 +#: ../Doc/library/multiprocessing.rst:837 msgid "" "Prevent :meth:`join_thread` from blocking. In particular, this prevents the " "background thread from being joined automatically when the process exits -- " "see :meth:`join_thread`." msgstr "" +"Empêche :meth:`join_thread` de bloquer. En particulier, cela empêche le fil " +"d'arrière-plan d'être attendu automatiquement quand le processus se ferme -- " +"voir :meth:`join_thread`." -#: ../Doc/library/multiprocessing.rst:834 +#: ../Doc/library/multiprocessing.rst:841 msgid "" "A better name for this method might be ``allow_exit_without_flush()``. It " "is likely to cause enqueued data to lost, and you almost certainly will not " @@ -874,8 +1234,14 @@ msgid "" "exit immediately without waiting to flush enqueued data to the underlying " "pipe, and you don't care about lost data." msgstr "" +"Un meilleur nom pour cette méthode pourrait être " +"``allow_exit_without_flush()``. Cela peut provoquer des pertes de données " +"placées dans la queue, et vous ne devriez certainement pas avoir besoin de " +"l'utiliser. Elle n'est là que si vous souhaitez terminer immédiatement le " +"processus sans transférer les données du tampon, et que vous ne vous " +"inquiétez pas de perdre des données." -#: ../Doc/library/multiprocessing.rst:843 +#: ../Doc/library/multiprocessing.rst:850 msgid "" "This class's functionality requires a functioning shared semaphore " "implementation on the host operating system. Without one, the functionality " @@ -884,47 +1250,64 @@ msgid "" "information. The same holds true for any of the specialized queue types " "listed below." msgstr "" +"Le fonctionnement de cette classe requiert une implémentation de sémaphore " +"partagé sur le système d'exploitation hôte. Sans cela, la fonctionnalité " +"sera désactivée et la tentative d'instancier une :class:`Queue` lèvera une :" +"exc:`ImportError`. Voir :issue:`3770` pour plus d'informations. Cette " +"remarque reste valable pour les autres types de queues spécialisées définies " +"par la suite." -#: ../Doc/library/multiprocessing.rst:852 +#: ../Doc/library/multiprocessing.rst:859 msgid "" "It is a simplified :class:`Queue` type, very close to a locked :class:`Pipe`." msgstr "" +"Un type de :class:`Queue` simplifié, très proche d'un :class:`Pipe` avec " +"verrou." -#: ../Doc/library/multiprocessing.rst:856 +#: ../Doc/library/multiprocessing.rst:863 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." -msgstr "" +msgstr "Renvoie ``True`` si la queue est vide, ``False`` sinon." -#: ../Doc/library/multiprocessing.rst:860 +#: ../Doc/library/multiprocessing.rst:867 msgid "Remove and return an item from the queue." -msgstr "Supprime et donne un élément de la queue." +msgstr "Supprime et renvoie un élément de la queue." -#: ../Doc/library/multiprocessing.rst:864 +#: ../Doc/library/multiprocessing.rst:871 msgid "Put *item* into the queue." -msgstr "" +msgstr "Place *item* dans la queue." -#: ../Doc/library/multiprocessing.rst:869 +#: ../Doc/library/multiprocessing.rst:876 msgid "" ":class:`JoinableQueue`, a :class:`Queue` subclass, is a queue which " "additionally has :meth:`task_done` and :meth:`join` methods." msgstr "" +":class:`JoinableQueue`, une sous-classe de :class:`Queue`, est une queue qui " +"ajoute des méthodes :meth:`task_done` et :meth:`join`." -#: ../Doc/library/multiprocessing.rst:874 +#: ../Doc/library/multiprocessing.rst:881 msgid "" "Indicate that a formerly enqueued task is complete. 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 "" +"Indique qu'une tâche précédemment placée dans la queue est complétée. " +"Utilisé par les consommateurs de la queue. Pour chaque :meth:`~Queue.get` " +"utilisé pour récupérer une tâche, un appel ultérieur à :meth:`task_done` " +"indique à la queue que le traitement de la tâche est terminé." -#: ../Doc/library/multiprocessing.rst:879 +#: ../Doc/library/multiprocessing.rst:886 msgid "" "If a :meth:`~queue.Queue.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:`~queue.Queue.join` est actuellement bloquant, il se débloquera " +"quand tous les éléments auront été traités (signifiant qu'un appel à :meth:" +"`task_done` a été reçu pour chaque élément ayant été placé via :meth:`~Queue." +"put` dans la queue)." -#: ../Doc/library/multiprocessing.rst:883 -#, fuzzy +#: ../Doc/library/multiprocessing.rst:890 msgid "" "Raises a :exc:`ValueError` if called more times than there were items placed " "in the queue." @@ -932,11 +1315,13 @@ 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/multiprocessing.rst:889 +#: ../Doc/library/multiprocessing.rst:896 msgid "Block until all items in the queue have been gotten 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/multiprocessing.rst:891 +#: ../Doc/library/multiprocessing.rst:898 msgid "" "The count of unfinished tasks goes up whenever an item is added to the " "queue. The count goes down whenever a consumer calls :meth:`task_done` to " @@ -944,26 +1329,33 @@ msgid "" "the count of unfinished tasks drops to zero, :meth:`~queue.Queue.join` " "unblocks." msgstr "" +"Le compteur des tâches non accomplies augmente chaque fois qu'un élément est " +"ajouté à la queue. Le compteur redescend chaque fois qu'un consommateur " +"appelle :meth:`task_done` pour indiquer qu'un élément a été récupéré et que " +"tout le travail qui le concerne est complété. Quand le compteur des tâches " +"non accomplies atteint zéro, :meth:`~queue.Queue.join` est débloquée." -#: ../Doc/library/multiprocessing.rst:899 +#: ../Doc/library/multiprocessing.rst:906 msgid "Miscellaneous" -msgstr "" +msgstr "Divers" -#: ../Doc/library/multiprocessing.rst:903 +#: ../Doc/library/multiprocessing.rst:910 msgid "Return list of all live children of the current process." -msgstr "" +msgstr "Renvoie la liste de tous les enfants vivants du processus courant." -#: ../Doc/library/multiprocessing.rst:905 +#: ../Doc/library/multiprocessing.rst:912 msgid "" "Calling this has the side effect of \"joining\" any processes which have " "already finished." msgstr "" +"Appeler cette méthode provoque l'effet de bord d'attendre tout processus qui " +"n'a pas encore terminé." -#: ../Doc/library/multiprocessing.rst:910 +#: ../Doc/library/multiprocessing.rst:917 msgid "Return the number of CPUs in the system." -msgstr "" +msgstr "Renvoie le nombre de CPU sur le système." -#: ../Doc/library/multiprocessing.rst:912 +#: ../Doc/library/multiprocessing.rst:919 msgid "" "This number is not equivalent to the number of CPUs the current process can " "use. The number of usable CPUs can be obtained with ``len(os." @@ -973,51 +1365,62 @@ msgstr "" "peut utiliser. Le nombre de CPUs utilisables peut être obtenu avec ``len(os." "sched_getaffinity(0))``" -#: ../Doc/library/multiprocessing.rst:916 +#: ../Doc/library/multiprocessing.rst:923 msgid "May raise :exc:`NotImplementedError`." -msgstr "" +msgstr "Peut lever une :exc:`NotImplementedError`." -#: ../Doc/library/multiprocessing.rst:919 +#: ../Doc/library/multiprocessing.rst:926 msgid ":func:`os.cpu_count`" -msgstr "" +msgstr ":func:`os.cpu_count`" -#: ../Doc/library/multiprocessing.rst:923 +#: ../Doc/library/multiprocessing.rst:930 msgid "" "Return the :class:`Process` object corresponding to the current process." -msgstr "" +msgstr "Renvoie l'objet :class:`Process` correspondant au processus courant." -#: ../Doc/library/multiprocessing.rst:925 +#: ../Doc/library/multiprocessing.rst:932 msgid "An analogue of :func:`threading.current_thread`." -msgstr "" +msgstr "Un analogue à :func:`threading.current_thread`." -#: ../Doc/library/multiprocessing.rst:929 +#: ../Doc/library/multiprocessing.rst:936 msgid "" "Add support for when a program which uses :mod:`multiprocessing` has been " "frozen to produce a Windows executable. (Has been tested with **py2exe**, " "**PyInstaller** and **cx_Freeze**.)" msgstr "" +"Ajoute le support des programmes utilisant :mod:`multiprocessing` qui ont " +"été gelés pour produire un exécutable Windows. (Testé avec **py2exe**, " +"**PyInstaller** et **cx_Freeze**.)" -#: ../Doc/library/multiprocessing.rst:933 +#: ../Doc/library/multiprocessing.rst:940 msgid "" "One needs to call this function straight after the ``if __name__ == " "'__main__'`` line of the main module. For example::" msgstr "" +"Cette fonction doit être appelée juste après la ligne ``if __name__ == " +"'__main__'`` du module principal. Par exemple ::" -#: ../Doc/library/multiprocessing.rst:945 +#: ../Doc/library/multiprocessing.rst:952 msgid "" "If the ``freeze_support()`` line is omitted then trying to run the frozen " "executable will raise :exc:`RuntimeError`." msgstr "" +"Si la ligne ``freeze_support()`` est omise, alors tenter de lancer " +"l'exécutable gelé lèvera une :exc:`RuntimeError`." -#: ../Doc/library/multiprocessing.rst:948 +#: ../Doc/library/multiprocessing.rst:955 msgid "" "Calling ``freeze_support()`` has no effect when invoked on any operating " "system other than Windows. In addition, if the module is being run normally " "by the Python interpreter on Windows (the program has not been frozen), then " "``freeze_support()`` has no effect." msgstr "" +"Appeler ``freeze_support()`` n'a pas d'effet quand elle est invoquée sur un " +"système d'exploitation autre que Windows. De plus, si le module est lancé " +"normalement par l'interpréteur Python sous Windows (le programme n'a pas été " +"gelé), alors ``freeze_support()`` n'a pas d'effet." -#: ../Doc/library/multiprocessing.rst:955 +#: ../Doc/library/multiprocessing.rst:962 msgid "" "Returns a list of the supported start methods, the first of which is the " "default. The possible start methods are ``'fork'``, ``'spawn'`` and " @@ -1025,290 +1428,406 @@ msgid "" "``'fork'`` and ``'spawn'`` are always supported, with ``'fork'`` being the " "default." msgstr "" +"Renvoie la liste des méthodes de démarrage supportées, la première étant " +"celle par défaut. Les méthodes de démarrage possibles sont ``'fork'``, " +"``'spawn'`` et ``'forkserver'``. Sous Windows seule ``'spawn'`` est " +"disponible. Sous Unix ``'fork'`` et ``'spawn'`` sont disponibles, ``'fork'`` " +"étant celle par défaut." -#: ../Doc/library/multiprocessing.rst:965 +#: ../Doc/library/multiprocessing.rst:972 msgid "" "Return a context object which has the same attributes as the :mod:" "`multiprocessing` module." msgstr "" +"Renvoie un contexte ayant les mêmes attributs que le module :mod:" +"`multiprocessing`." -#: ../Doc/library/multiprocessing.rst:968 +#: ../Doc/library/multiprocessing.rst:975 msgid "" "If *method* is ``None`` then the default context is returned. Otherwise " "*method* should be ``'fork'``, ``'spawn'``, ``'forkserver'``. :exc:" "`ValueError` is raised if the specified start method is not available." msgstr "" +"Si *method* est ``None`` le contexte par défaut est renvoyé. Sinon *method* " +"doit valoir ``'fork'``, ``'spawn'`` ou ``'forkserver'``. Une :exc:" +"`ValueError` est levée si la méthode de démarrage spécifiée n'est pas " +"disponible." -#: ../Doc/library/multiprocessing.rst:977 +#: ../Doc/library/multiprocessing.rst:984 msgid "Return the name of start method used for starting processes." msgstr "" +"Renvoie le nom de la méthode de démarrage utilisée pour démarrer le " +"processus." -#: ../Doc/library/multiprocessing.rst:979 +#: ../Doc/library/multiprocessing.rst:986 msgid "" "If the start method has not been fixed and *allow_none* is false, then the " "start method is fixed to the default and the name is returned. If the start " "method has not been fixed and *allow_none* is true then ``None`` is returned." msgstr "" +"Si le nom de la méthode n'a pas été fixé et que *allow_none* est faux, alors " +"la méthode de démarrage est réglée à celle par défaut et son nom est " +"renvoyé. Si la méthode n'a pas été fixée et que *allow_none* est vrai, " +"``None`` est renvoyé." -#: ../Doc/library/multiprocessing.rst:984 +#: ../Doc/library/multiprocessing.rst:991 msgid "" "The return value can be ``'fork'``, ``'spawn'``, ``'forkserver'`` or " "``None``. ``'fork'`` is the default on Unix, while ``'spawn'`` is the " "default on Windows." msgstr "" +"La valeur de retour peut être ``'fork'``, ``'spawn'``, ``'forkserver'`` ou " +"``None``. ``'fork'`` est la valeur par défaut sous Unix, ``'spawn'`` est " +"celle sous Windows." -#: ../Doc/library/multiprocessing.rst:992 +#: ../Doc/library/multiprocessing.rst:999 msgid "" "Sets the path of the Python interpreter to use when starting a child " "process. (By default :data:`sys.executable` is used). Embedders will " "probably need to do some thing like ::" msgstr "" +"Définit le chemin de l'interpréteur Python à utiliser pour démarrer un " +"processus fils. (Par défaut :data:`sys.executable` est utilisé). Les " +"intégrateurs devront probablement faire quelque chose comme ::" -#: ../Doc/library/multiprocessing.rst:998 +#: ../Doc/library/multiprocessing.rst:1005 msgid "before they can create child processes." -msgstr "" +msgstr "avant de pouvoir créer des processus fils." -#: ../Doc/library/multiprocessing.rst:1000 +#: ../Doc/library/multiprocessing.rst:1007 msgid "Now supported on Unix when the ``'spawn'`` start method is used." msgstr "" +"Maintenant supporté sous Unix quand la méthode de démarrage ``'spawn'`` est " +"utilisée." -#: ../Doc/library/multiprocessing.rst:1005 +#: ../Doc/library/multiprocessing.rst:1012 msgid "" "Set the method which should be used to start child processes. *method* can " "be ``'fork'``, ``'spawn'`` or ``'forkserver'``." msgstr "" +"Règle la méthode qui doit être utilisée pour démarrer un processus fils. " +"*method* peut être ``'fork'``, ``'spawn'`` ou ``'forkserver'``." -#: ../Doc/library/multiprocessing.rst:1008 +#: ../Doc/library/multiprocessing.rst:1015 msgid "" "Note that this should be called at most once, and it should be protected " "inside the ``if __name__ == '__main__'`` clause of the main module." msgstr "" +"Notez que cette fonction ne devrait être appelée qu'une fois au plus, et " +"l'appel devrait être protégé à l'intérieur d'une clause ``if __name__ == " +"'__main__'`` dans le module principal." -#: ../Doc/library/multiprocessing.rst:1016 +#: ../Doc/library/multiprocessing.rst:1023 msgid "" ":mod:`multiprocessing` contains no analogues of :func:`threading." "active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :" "func:`threading.setprofile`, :class:`threading.Timer`, or :class:`threading." "local`." msgstr "" +":mod:`multiprocessing` ne contient pas d'analogues à :func:`threading." +"active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :" +"func:`threading.setprofile`, :class:`threading.Timer`, ou :class:`threading." +"local`." -#: ../Doc/library/multiprocessing.rst:1023 +#: ../Doc/library/multiprocessing.rst:1030 msgid "Connection Objects" -msgstr "" +msgstr "Objets de connexions" -#: ../Doc/library/multiprocessing.rst:1027 +#: ../Doc/library/multiprocessing.rst:1034 msgid "" "Connection objects allow the sending and receiving of picklable objects or " "strings. They can be thought of as message oriented connected sockets." msgstr "" +"Les objets de connexion autorisent l'envoi et la réception d'objets " +"sérialisables ou de chaînes de caractères. Ils peuvent être vus comme des " +"interfaces de connexion (*sockets*) connectées orientées messages." -#: ../Doc/library/multiprocessing.rst:1030 +#: ../Doc/library/multiprocessing.rst:1037 msgid "" "Connection objects are usually created using :func:`Pipe ` -- see also :ref:`multiprocessing-listeners-clients`." msgstr "" +"Les objets de connexion sont habituellement créés via :func:`Pipe " +"` -- voir aussi :ref:`multiprocessing-listeners-" +"clients`." -#: ../Doc/library/multiprocessing.rst:1038 +#: ../Doc/library/multiprocessing.rst:1045 msgid "" "Send an object to the other end of the connection which should be read " "using :meth:`recv`." msgstr "" +"Envoie un objet sur l'autre bout de la connexion, qui devra être lu avec :" +"meth:`recv`." -#: ../Doc/library/multiprocessing.rst:1041 +#: ../Doc/library/multiprocessing.rst:1048 msgid "" "The object must be picklable. Very large pickles (approximately 32 MiB+, " "though it depends on the OS) may raise a :exc:`ValueError` exception." msgstr "" +"L'objet doit être sérialisable. Les *pickles* très larges (approximativement " +"32 Mo+, bien que cela dépende de l'OS) pourront lever une exception :exc:" +"`ValueError`." -#: ../Doc/library/multiprocessing.rst:1046 +#: ../Doc/library/multiprocessing.rst:1053 msgid "" "Return an object sent from the other end of the connection using :meth:" "`send`. Blocks until there is something to receive. Raises :exc:`EOFError` " "if there is nothing left to receive and the other end was closed." msgstr "" +"Renvoie un objet envoyé depuis l'autre bout de la connexion en utilisant :" +"meth:`send`. Bloque jusqu'à ce que quelque chose soit reçu. Lève une :exc:" +"`EOFError` s'il n'y a plus rien à recevoir et que l'autre bout a été fermé." -#: ../Doc/library/multiprocessing.rst:1053 +#: ../Doc/library/multiprocessing.rst:1060 msgid "Return the file descriptor or handle used by the connection." msgstr "" +"Renvoie le descripteur de fichier ou identifiant utilisé par la connexion." -#: ../Doc/library/multiprocessing.rst:1057 +#: ../Doc/library/multiprocessing.rst:1064 msgid "Close the connection." -msgstr "" +msgstr "Ferme la connexion." -#: ../Doc/library/multiprocessing.rst:1059 +#: ../Doc/library/multiprocessing.rst:1066 msgid "This is called automatically when the connection is garbage collected." msgstr "" +"Elle est appelée automatiquement quand la connexion est collectée par le " +"ramasse-miettes." -#: ../Doc/library/multiprocessing.rst:1063 +#: ../Doc/library/multiprocessing.rst:1070 msgid "Return whether there is any data available to be read." msgstr "" +"Renvoie vrai ou faux selon si des données sont disponibles à la lecture." -#: ../Doc/library/multiprocessing.rst:1065 +#: ../Doc/library/multiprocessing.rst:1072 msgid "" "If *timeout* is not specified then it will return immediately. If *timeout* " "is a number then this specifies the maximum time in seconds to block. If " "*timeout* is ``None`` then an infinite timeout is used." msgstr "" +"Si *timeout* n'est pas spécifié la méthode renverra immédiatement. Si " +"*timeout* est un nombre alors il spécifie le temps maximum de blocage en " +"secondes. Si *timeout* est ``None``, un temps d'attente infini est utilisé." -#: ../Doc/library/multiprocessing.rst:1069 +#: ../Doc/library/multiprocessing.rst:1076 msgid "" "Note that multiple connection objects may be polled at once by using :func:" "`multiprocessing.connection.wait`." msgstr "" +"Notez que plusieurs objets de connexions peuvent être attendus en même temps " +"à l'aide de :func:`multiprocessing.connection.wait`." -#: ../Doc/library/multiprocessing.rst:1074 +#: ../Doc/library/multiprocessing.rst:1081 msgid "Send byte data from a :term:`bytes-like object` as a complete message." msgstr "" +"Envoie des données binaires depuis un :term:`bytes-like object` comme un " +"message complet." -#: ../Doc/library/multiprocessing.rst:1076 +#: ../Doc/library/multiprocessing.rst:1083 msgid "" "If *offset* is given then data is read from that position in *buffer*. If " "*size* is given then that many bytes will be read from buffer. Very large " "buffers (approximately 32 MiB+, though it depends on the OS) may raise a :" "exc:`ValueError` exception" msgstr "" +"Si *offset* est fourni, les données sont lues depuis cette position dans le " +"tampon *buffer*. Si *size* est fourni, il indique le nombre d'octets qui " +"seront lus depuis *buffer*. Les tampons très larges (approximativement 32 MiB" +"+, bien que cela dépende de l'OS) pourront lever une exception :exc:" +"`ValueError`." -#: ../Doc/library/multiprocessing.rst:1083 +#: ../Doc/library/multiprocessing.rst:1090 msgid "" "Return a complete message of byte data sent from the other end of the " "connection as a string. Blocks until there is something to receive. Raises :" "exc:`EOFError` if there is nothing left to receive and the other end has " "closed." msgstr "" +"Renvoie un message complet de données binaires envoyées depuis l'autre bout " +"de la connexion comme une chaîne de caractères. Bloque jusqu'à ce qu'il y " +"ait quelque chose à recevoir. Lève une :exc:`EOFError` s'il ne reste rien à " +"recevoir et que l'autre côté de la connexion a été fermé." -#: ../Doc/library/multiprocessing.rst:1088 +#: ../Doc/library/multiprocessing.rst:1095 msgid "" "If *maxlength* is specified and the message is longer than *maxlength* then :" "exc:`OSError` is raised and the connection will no longer be readable." msgstr "" +"Si *maxlength* est précisé que que le message est plus long que *maxlength* " +"alors une :exc:`OSError` est levée et la connexion n'est plus lisible." -#: ../Doc/library/multiprocessing.rst:1092 +#: ../Doc/library/multiprocessing.rst:1099 msgid "" "This function used to raise :exc:`IOError`, which is now an alias of :exc:" "`OSError`." msgstr "" +"Cette fonction levait auparavant une :exc:`IOError`, qui est maintenant un " +"alias pour :exc:`OSError`." -#: ../Doc/library/multiprocessing.rst:1099 +#: ../Doc/library/multiprocessing.rst:1106 msgid "" "Read into *buffer* a complete message of byte data sent from the other end " "of the connection and return the number of bytes in the message. Blocks " "until there is something to receive. Raises :exc:`EOFError` if there is " "nothing left to receive and the other end was closed." msgstr "" +"Lit et stocke dans *buffer* un message complet de données binaires envoyées " +"depuis l'autre bout de la connexion et renvoie le nombre d'octets du " +"message. Bloque jusqu'à ce qu'il y ait quelque chose à recevoir. Lève une :" +"exc:`EOFError` s'il ne reste rien à recevoir et que l'autre côté de la " +"connexion a été fermé." -#: ../Doc/library/multiprocessing.rst:1105 +#: ../Doc/library/multiprocessing.rst:1112 msgid "" "*buffer* must be a writable :term:`bytes-like object`. If *offset* is given " "then the message will be written into the buffer from that position. Offset " "must be a non-negative integer less than the length of *buffer* (in bytes)." msgstr "" +"*buffer* doit être un :term:`bytes-like object` accessible en écriture. Si " +"*offset* est donné, le message sera écrit dans le tampon à partir de cette " +"position. *offset* doit être un entier positif, inférieur à la taille de " +"*buffer* (en octets)." -#: ../Doc/library/multiprocessing.rst:1110 +#: ../Doc/library/multiprocessing.rst:1117 msgid "" "If the buffer is too short then a :exc:`BufferTooShort` exception is raised " "and the complete message is available as ``e.args[0]`` where ``e`` is the " "exception instance." msgstr "" +"Si le tampon est trop petit une exception :exc:`BufferTooShort` est levée et " +"le message complet est accessible via ``e.args[0]`` où ``e`` est l'instance " +"de l'exception." -#: ../Doc/library/multiprocessing.rst:1114 +#: ../Doc/library/multiprocessing.rst:1121 msgid "" "Connection objects themselves can now be transferred between processes " "using :meth:`Connection.send` and :meth:`Connection.recv`." msgstr "" +"Les objets de connexions eux-mêmes peuvent maintenant être transférés entre " +"les processus en utilisant :meth:`Connection.send` et :meth:`Connection." +"recv`." -#: ../Doc/library/multiprocessing.rst:1118 +#: ../Doc/library/multiprocessing.rst:1125 msgid "" "Connection objects now support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " "connection object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." msgstr "" +"Les objets de connexions supportent maintenant le protocole des " +"gestionnaires de contexte -- voir :ref:`typecontextmanager`. :meth:" +"`~contextmanager.__enter__` renvoie l'objet de connexion, et :meth:" +"`~contextmanager.__exit__` appelle :meth:`close`." -#: ../Doc/library/multiprocessing.rst:1123 +#: ../Doc/library/multiprocessing.rst:1130 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" -#: ../Doc/library/multiprocessing.rst:1147 +#: ../Doc/library/multiprocessing.rst:1154 msgid "" "The :meth:`Connection.recv` method automatically unpickles the data it " "receives, which can be a security risk unless you can trust the process " "which sent the message." msgstr "" +"La méthode :meth:`Connection.recv` désérialise automatiquement les données " +"qu'elle reçoit, ce qui peut être un risque de sécurité à moins que vous ne " +"fassiez réellement confiance au processus émetteur du message." -#: ../Doc/library/multiprocessing.rst:1151 +#: ../Doc/library/multiprocessing.rst:1158 msgid "" "Therefore, unless the connection object was produced using :func:`Pipe` you " "should only use the :meth:`~Connection.recv` and :meth:`~Connection.send` " "methods after performing some sort of authentication. See :ref:" "`multiprocessing-auth-keys`." msgstr "" +"Par conséquent, à moins que l'objet de connexion soit instancié par :func:" +"`Pipe`, vous ne devriez uniquement utiliser les méthodes :meth:`~Connection." +"recv` et :meth:`~Connection.send` après avoir effectué une quelconque forme " +"d'authentification. Voir :ref:`multiprocessing-auth-keys`." -#: ../Doc/library/multiprocessing.rst:1158 +#: ../Doc/library/multiprocessing.rst:1165 msgid "" "If a process is killed while it is trying to read or write to a pipe then " "the data in the pipe is likely to become corrupted, because it may become " "impossible to be sure where the message boundaries lie." msgstr "" +"Si un processus est tué pendant qu'il essaye de lire ou écrire sur le tube, " +"alors les données du tube ont des chances d'être corrompues, parce qu'il " +"devient impossible d'être sûr d'où se trouvent les bornes du message." -#: ../Doc/library/multiprocessing.rst:1164 +#: ../Doc/library/multiprocessing.rst:1171 msgid "Synchronization primitives" -msgstr "" +msgstr "Primitives de synchronisation" -#: ../Doc/library/multiprocessing.rst:1168 +#: ../Doc/library/multiprocessing.rst:1175 msgid "" "Generally synchronization primitives are not as necessary in a multiprocess " "program as they are in a multithreaded program. See the documentation for :" "mod:`threading` module." msgstr "" +"Généralement les primitives de synchronisation ne sont pas nécessaire dans " +"un programme multi-processus comme elles le sont dans un programme multi-" +"fils d'exécution. Voir la documentation du module :mod:`threading`." -#: ../Doc/library/multiprocessing.rst:1172 +#: ../Doc/library/multiprocessing.rst:1179 msgid "" "Note that one can also create synchronization primitives by using a manager " "object -- see :ref:`multiprocessing-managers`." msgstr "" +"Notez que vous pouvez aussi créer des primitives de synchronisation en " +"utilisant un objet gestionnaire -- voir :ref:`multiprocessing-managers`." -#: ../Doc/library/multiprocessing.rst:1177 +#: ../Doc/library/multiprocessing.rst:1184 msgid "A barrier object: a clone of :class:`threading.Barrier`." -msgstr "" +msgstr "Un objet barrière : un clone de :class:`threading.Barrier`." -#: ../Doc/library/multiprocessing.rst:1183 +#: ../Doc/library/multiprocessing.rst:1190 msgid "" "A bounded semaphore object: a close analog of :class:`threading." "BoundedSemaphore`." msgstr "" +"Un objet sémaphore lié : un analogue proche de :class:`threading." +"BoundedSemaphore`." -#: ../Doc/library/multiprocessing.rst:1186 -#: ../Doc/library/multiprocessing.rst:1324 +#: ../Doc/library/multiprocessing.rst:1193 +#: ../Doc/library/multiprocessing.rst:1331 msgid "" "A solitary difference from its close analog exists: its ``acquire`` method's " "first argument is named *block*, as is consistent with :meth:`Lock.acquire`." msgstr "" +"Une seule différence existe avec son proche analogue : le premier argument " +"de sa méthode ``acquire`` est appelé *block*, pour la cohérence avec :meth:" +"`Lock.acquire`." -#: ../Doc/library/multiprocessing.rst:1190 +#: ../Doc/library/multiprocessing.rst:1197 msgid "" "On Mac OS X, this is indistinguishable from :class:`Semaphore` because " "``sem_getvalue()`` is not implemented on that platform." msgstr "" +"Sur Mac OS X, elle n'est pas distinguable de la classe :class:`Semaphore` " +"parce que ``sem_getvalue()`` n'est pas implémentée sur cette plateforme." -#: ../Doc/library/multiprocessing.rst:1195 +#: ../Doc/library/multiprocessing.rst:1202 msgid "A condition variable: an alias for :class:`threading.Condition`." msgstr "" +"Une variable conditionnelle : un alias pour :class:`threading.Condition`." -#: ../Doc/library/multiprocessing.rst:1197 +#: ../Doc/library/multiprocessing.rst:1204 msgid "" "If *lock* is specified then it should be a :class:`Lock` or :class:`RLock` " "object from :mod:`multiprocessing`." msgstr "" +"Si *lock* est spécifié il doit être un objet :class:`Lock` ou :class:`RLock` " +"du module :mod:`multiprocessing`." -#: ../Doc/library/multiprocessing.rst:1200 -#: ../Doc/library/multiprocessing.rst:1734 +#: ../Doc/library/multiprocessing.rst:1207 +#: ../Doc/library/multiprocessing.rst:1741 msgid "The :meth:`~threading.Condition.wait_for` method was added." -msgstr "" +msgstr "La méthode :meth:`~threading.Condition.wait_for` a été ajoutée." -#: ../Doc/library/multiprocessing.rst:1205 +#: ../Doc/library/multiprocessing.rst:1212 msgid "A clone of :class:`threading.Event`." -msgstr "" +msgstr "Un clone de :class:`threading.Event`." -#: ../Doc/library/multiprocessing.rst:1210 +#: ../Doc/library/multiprocessing.rst:1217 msgid "" "A non-recursive lock object: a close analog of :class:`threading.Lock`. Once " "a process or thread has acquired a lock, subsequent attempts to acquire it " @@ -1318,41 +1837,61 @@ msgid "" "`multiprocessing.Lock` as it applies to either processes or threads, except " "as noted." msgstr "" +"Un verrou non récursif : un analogue proche de :class:`threading.Lock`. Une " +"fois que le processus ou le fil d'exécution a acquis un verrou, les " +"tentatives suivantes d'acquisition depuis n'importe quel processus ou fil " +"d'exécution bloqueront jusqu'à ce qu'il soit libéré ; n'importe quel " +"processus ou fil peut le libérer. Les concepts et comportements de :class:" +"`threading.Lock` qui s'appliquent aux fils d'exécution sont répliqués ici " +"dans :class:`multiprocessing.Lock` et s'appliquent aux processus et aux fils " +"d'exécution, à l'exception de ce qui est indiqué." -#: ../Doc/library/multiprocessing.rst:1218 +#: ../Doc/library/multiprocessing.rst:1225 msgid "" "Note that :class:`Lock` is actually a factory function which returns an " "instance of ``multiprocessing.synchronize.Lock`` initialized with a default " "context." msgstr "" +"Notez que :class:`Lock` est en fait une fonction *factory* qui renvoie une " +"instance de ``multiprocessing.synchronize.Lock`` initialisée avec un " +"contexte par défaut." -#: ../Doc/library/multiprocessing.rst:1222 +#: ../Doc/library/multiprocessing.rst:1229 msgid "" ":class:`Lock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" +":class:`Lock` supporte le protocole :term:`context manager` et peut ainsi " +"être utilisé avec une instruction :keyword:`with`." -#: ../Doc/library/multiprocessing.rst:1227 -#: ../Doc/library/multiprocessing.rst:1278 +#: ../Doc/library/multiprocessing.rst:1234 +#: ../Doc/library/multiprocessing.rst:1285 msgid "Acquire a lock, blocking or non-blocking." -msgstr "" +msgstr "Acquiert un verrou, bloquant ou non bloquant." -#: ../Doc/library/multiprocessing.rst:1229 +#: ../Doc/library/multiprocessing.rst:1236 msgid "" "With the *block* argument set to ``True`` (the default), the method call " "will block until the lock is in an unlocked state, then set it to locked and " "return ``True``. Note that the name of this first argument differs from " "that in :meth:`threading.Lock.acquire`." msgstr "" +"Avec l'argument *block* à ``True`` (par défaut), l'appel de méthode bloquera " +"jusqu'à ce que le verrou soit dans déverrouillé, puis le verrouillera avant " +"de renvoyer ``True``. Notez que le nom de ce premier argument diffère de " +"celui de :meth:`threading.Lock.acquire`." -#: ../Doc/library/multiprocessing.rst:1234 +#: ../Doc/library/multiprocessing.rst:1241 msgid "" "With the *block* argument set to ``False``, the method call does not block. " "If the lock is currently in a locked state, return ``False``; otherwise set " "the lock to a locked state and return ``True``." msgstr "" +"Avec l'argument *block* à ``False``, l'appel de méthode ne bloque pas. Si le " +"verrou est actuellement verrouillé, renvoie ``False`` ; autrement verrouille " +"le verrou et renvoie ``True``." -#: ../Doc/library/multiprocessing.rst:1238 +#: ../Doc/library/multiprocessing.rst:1245 msgid "" "When invoked with a positive, floating-point value for *timeout*, block for " "at most the number of seconds specified by *timeout* as long as the lock can " @@ -1365,20 +1904,36 @@ msgid "" "``False`` and is thus ignored. Returns ``True`` if the lock has been " "acquired or ``False`` if the timeout period has elapsed." msgstr "" +"Quand invoqué avec un nombre flottant positif comme *timeout*, bloque au " +"maximum pendant ce nombre spécifié de secondes, tant que le verrou ne peut " +"être acquis. Les invocations avec une valeur de *timeout* négatives sont " +"équivalents à zéro. Les invocations avec un *timeout* à ``None`` (par " +"défaut) correspondent à un délai d'attente infini. Notez que le traitement " +"des valeurs de *timeout* négatives et ``None`` diffère du comportement " +"implémenté dans :meth:`threading.Lock.acquire`. L'argument *timeout* n'a pas " +"d'implication pratique si l'argument *block* est mis ) ``False`` et est " +"alors ignoré. Renvoie ``True`` si le verrou a été acquis et ``False`` si le " +"temps de *timeout* a expiré." -#: ../Doc/library/multiprocessing.rst:1253 +#: ../Doc/library/multiprocessing.rst:1260 msgid "" "Release a lock. This can be called from any process or thread, not only the " "process or thread which originally acquired the lock." msgstr "" +"Libère un verrou. Elle peut être appelée depuis n'importe quel processus ou " +"fil d'exécution, pas uniquement le processus ou le fil qui a acquis le " +"verrou à l'origine." -#: ../Doc/library/multiprocessing.rst:1256 +#: ../Doc/library/multiprocessing.rst:1263 msgid "" "Behavior is the same as in :meth:`threading.Lock.release` except that when " "invoked on an unlocked lock, a :exc:`ValueError` is raised." msgstr "" +"Le comportement est le même que :meth:`threading.Lock.release` excepté que " +"lorsque la méthode est appelée sur un verrou déverrouillé, une :exc:" +"`ValueError` est levée." -#: ../Doc/library/multiprocessing.rst:1262 +#: ../Doc/library/multiprocessing.rst:1269 msgid "" "A recursive lock object: a close analog of :class:`threading.RLock`. A " "recursive lock must be released by the process or thread that acquired it. " @@ -1386,21 +1941,31 @@ msgid "" "thread may acquire it again without blocking; that process or thread must " "release it once for each time it has been acquired." msgstr "" +"Un objet verrou récursif : un analogue proche de :class:`threading.RLock`. " +"Un verrou récursif doit être libéré par le processus ou le fil d'exécution " +"qui l'a acquis. Quand un processus ou un fil acquiert un verrou récursif, le " +"même processus/fil peut l'acquérir à nouveau sans bloquer ; le processus/fil " +"doit le libérer autant de fois qu'il l'acquiert." -#: ../Doc/library/multiprocessing.rst:1268 +#: ../Doc/library/multiprocessing.rst:1275 msgid "" "Note that :class:`RLock` is actually a factory function which returns an " "instance of ``multiprocessing.synchronize.RLock`` initialized with a default " "context." msgstr "" +"Notez que :class:`RLock` est en fait une fonction *factory* qui renvoie une " +"instance de ``multiprocessing.synchronize.RLock`` initialisée avec un " +"contexte par défaut." -#: ../Doc/library/multiprocessing.rst:1272 +#: ../Doc/library/multiprocessing.rst:1279 msgid "" ":class:`RLock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" +":class:`RLock` supporte le protocole :term:`context manager` et peut ainsi " +"être utilisée avec une instruction :keyword:`with`." -#: ../Doc/library/multiprocessing.rst:1280 +#: ../Doc/library/multiprocessing.rst:1287 msgid "" "When invoked with the *block* argument set to ``True``, block until the lock " "is in an unlocked state (not owned by any process or thread) unless the lock " @@ -1412,8 +1977,16 @@ msgid "" "of :meth:`threading.RLock.acquire`, starting with the name of the argument " "itself." msgstr "" +"Quand invoqué avec l'argument *block* à ``True``, bloque jusqu'à ce que le " +"verrou soit déverrouillé (n'appartenant à aucun processus ou fil " +"d'exécution) sauf s'il appartient déjà au processus ou fil d'exécution " +"courant. Le processus ou fil d'exécution courant prend la possession du " +"verrou (s'il ne l'a pas déjà) et incrémente d'un le niveau de récursion du " +"verrou, renvoyant ainsi ``True``. Notez qu'il y a plusieurs différences dans " +"le comportement de ce premier argument comparé à l'implémentation de :meth:" +"`threading.RLock.acquire`, à commencer par le nom de l'argument lui-même." -#: ../Doc/library/multiprocessing.rst:1290 +#: ../Doc/library/multiprocessing.rst:1297 msgid "" "When invoked with the *block* argument set to ``False``, do not block. If " "the lock has already been acquired (and thus is owned) by another process or " @@ -1423,15 +1996,24 @@ msgid "" "thread takes ownership and the recursion level is incremented, resulting in " "a return value of ``True``." msgstr "" +"Quand invoqué avec l'argument *block* à ``False``, ne bloque pas. Si le " +"verrou est déjà acquis (et possédé) par un autre processus ou fil " +"d'exécution, le processus/fil courant n'en prend pas la possession et le " +"niveau de récursion n'est pas incrémenté, résultant en une valeur de retour " +"à ``False``. Si le verrou est déverrouillé, le processus/fil courant en " +"prend possession et incrémente son niveau de récursion, renvoyant ``True``." -#: ../Doc/library/multiprocessing.rst:1298 +#: ../Doc/library/multiprocessing.rst:1305 msgid "" "Use and behaviors of the *timeout* argument are the same as in :meth:`Lock." "acquire`. Note that some of these behaviors of *timeout* differ from the " "implemented behaviors in :meth:`threading.RLock.acquire`." msgstr "" +"L'usage et les comportements de l'argument *timeout* sont les mêmes que " +"pour :meth:`Lock.acquire`. Notez que certains de ces comportements diffèrent " +"par rapport à ceux implémentés par :meth:`threading.RLock.acquire`." -#: ../Doc/library/multiprocessing.rst:1305 +#: ../Doc/library/multiprocessing.rst:1312 msgid "" "Release a lock, decrementing the recursion level. If after the decrement " "the recursion level is zero, reset the lock to unlocked (not owned by any " @@ -1440,8 +2022,15 @@ msgid "" "after the decrement the recursion level is still nonzero, the lock remains " "locked and owned by the calling process or thread." msgstr "" +"Libère un verrou, décrémentant son niveau de récursion. Si après la " +"décrémentation le niveau de récursion est zéro, réinitialise le verrou à un " +"état déverrouillé (n'appartenant à aucun processus ou fil d'exécution) et si " +"des processus/fils attendent que le verrou se déverrouillé, autorise un seul " +"d'entre-eux à continuer. Si après cette décrémentation le niveau de " +"récursion est toujours strictement positif, le verrou reste verrouillé et " +"propriété du processus/fil appelant." -#: ../Doc/library/multiprocessing.rst:1313 +#: ../Doc/library/multiprocessing.rst:1320 msgid "" "Only call this method when the calling process or thread owns the lock. An :" "exc:`AssertionError` is raised if this method is called by a process or " @@ -1449,18 +2038,26 @@ msgid "" "state. Note that the type of exception raised in this situation differs " "from the implemented behavior in :meth:`threading.RLock.release`." msgstr "" +"N'appelez cette méthode que si le processus ou fil d'exécution appelant est " +"propriétaire du verrou. Une :exc:`AssertionError` est levée si cette méthode " +"est appelée par un processus/fil autre que le propriétaire ou si le verrou " +"n'est pas verrouillé (possédé). Notez que le type d'exception levé dans " +"cette situation diffère du comportement de :meth:`threading.RLock.release`." -#: ../Doc/library/multiprocessing.rst:1322 +#: ../Doc/library/multiprocessing.rst:1329 msgid "A semaphore object: a close analog of :class:`threading.Semaphore`." -msgstr "" +msgstr "Un objet sémaphore, proche analogue de :class:`threading.Semaphore`." -#: ../Doc/library/multiprocessing.rst:1329 +#: ../Doc/library/multiprocessing.rst:1336 msgid "" "On Mac OS X, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with " "a timeout will emulate that function's behavior using a sleeping loop." msgstr "" +"Sous Mac OS X, ``sem_timedwait`` n'est pas supporté, donc appeler " +"``acquire()`` avec un temps d'exécution limité émulera le comportement de " +"cette fonction en utilisant une boucle d'attente." -#: ../Doc/library/multiprocessing.rst:1334 +#: ../Doc/library/multiprocessing.rst:1341 msgid "" "If the SIGINT signal generated by :kbd:`Ctrl-C` arrives while the main " "thread is blocked by a call to :meth:`BoundedSemaphore.acquire`, :meth:`Lock." @@ -1468,14 +2065,21 @@ msgid "" "acquire` or :meth:`Condition.wait` then the call will be immediately " "interrupted and :exc:`KeyboardInterrupt` will be raised." msgstr "" +"Si le signal *SIGINT* généré par un :kbd:`Ctrl-C` survient pendant que le " +"fil d'exécution principal est bloqué par un appel à :meth:`BoundedSemaphore." +"acquire`, :meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Semaphore." +"acquire`, :meth:`Condition.acquire` ou :meth:`Condition.wait`, l'appel sera " +"immédiatement interrompu et une :exc:`KeyboardInterrupt` sera levée." -#: ../Doc/library/multiprocessing.rst:1340 +#: ../Doc/library/multiprocessing.rst:1347 msgid "" "This differs from the behaviour of :mod:`threading` where SIGINT will be " "ignored while the equivalent blocking calls are in progress." msgstr "" +"Cela diffère du comportement de :mod:`threading` où le *SIGINT* est ignoré " +"tant que les appels bloquants sont en cours." -#: ../Doc/library/multiprocessing.rst:1345 +#: ../Doc/library/multiprocessing.rst:1352 msgid "" "Some of this package's functionality requires a functioning shared semaphore " "implementation on the host operating system. Without one, the :mod:" @@ -1483,33 +2087,47 @@ msgid "" "import it will result in an :exc:`ImportError`. See :issue:`3770` for " "additional information." msgstr "" +"Certaines des fonctionnalités de ce paquet requièrent une implémentation " +"fonctionnelle de sémaphores partagés sur le système hôte. Sans cela, le " +"module :mod:`multiprocessing.synchronize` sera désactivé, et les tentatives " +"de l'importer lèveront une :exc:`ImportError`. Voir :issue:`3770` pour plus " +"d'informations." -#: ../Doc/library/multiprocessing.rst:1353 +#: ../Doc/library/multiprocessing.rst:1360 msgid "Shared :mod:`ctypes` Objects" -msgstr "" +msgstr "Objets :mod:`ctypes` partagés" -#: ../Doc/library/multiprocessing.rst:1355 +#: ../Doc/library/multiprocessing.rst:1362 msgid "" "It is possible to create shared objects using shared memory which can be " "inherited by child processes." msgstr "" +"Il est possible de créer des objets partagés utilisant une mémoire partagée " +"pouvant être héritée par les processus enfants." -#: ../Doc/library/multiprocessing.rst:1360 +#: ../Doc/library/multiprocessing.rst:1367 msgid "" "Return a :mod:`ctypes` object allocated from shared memory. By default the " "return value is actually a synchronized wrapper for the object. The object " "itself can be accessed via the *value* attribute of a :class:`Value`." msgstr "" +"Renvoie un objet :mod:`ctypes` alloué depuis la mémoire partagée. Par défaut " +"la valeur de retour est en fait un *wrapper* synchronisé autour de l'objet. " +"L'objet en lui-même est accessible par l'attribut *value* de l'une :class:" +"`Value`." -#: ../Doc/library/multiprocessing.rst:1364 -#: ../Doc/library/multiprocessing.rst:1451 +#: ../Doc/library/multiprocessing.rst:1371 +#: ../Doc/library/multiprocessing.rst:1458 msgid "" "*typecode_or_type* determines the type of the returned object: it is either " "a ctypes type or a one character typecode of the kind used by the :mod:" "`array` module. *\\*args* is passed on to the constructor for the type." msgstr "" +"*typecode_or_type* détermine le type de l'objet renvoyé : il s'agit soit " +"d'un type *ctype* soit d'un caractère *typecode* tel qu'utilisé par le " +"module :mod:`array`. *\\*args* est passé au constructeur de ce type." -#: ../Doc/library/multiprocessing.rst:1368 +#: ../Doc/library/multiprocessing.rst:1375 msgid "" "If *lock* is ``True`` (the default) then a new recursive lock object is " "created to synchronize access to the value. If *lock* is a :class:`Lock` " @@ -1518,33 +2136,47 @@ msgid "" "be automatically protected by a lock, so it will not necessarily be " "\"process-safe\"." msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou récursif est " +"créé pour synchroniser l'accès à la valeur. Si *lock* est un objet :class:" +"`Lock` ou :class:`RLock` alors il sera utilisé pour synchroniser l'accès à " +"la valeur. Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas " +"automatiquement protégé par un verrou, donc il ne sera pas forcément " +"« *process-safe* »." -#: ../Doc/library/multiprocessing.rst:1375 +#: ../Doc/library/multiprocessing.rst:1382 msgid "" "Operations like ``+=`` which involve a read and write are not atomic. So " "if, for instance, you want to atomically increment a shared value it is " "insufficient to just do ::" msgstr "" +"Les opérations telles que ``+=`` qui impliquent une lecture et une écriture " +"ne sont pas atomique. Ainsi si vous souhaitez par exemple réaliser une " +"incrémentation atomique sur une valeur partagée, vous ne pouvez pas " +"simplement faire ::" -#: ../Doc/library/multiprocessing.rst:1381 +#: ../Doc/library/multiprocessing.rst:1388 msgid "" "Assuming the associated lock is recursive (which it is by default) you can " "instead do ::" msgstr "" +"En supposant que le verrou associé est récursif (ce qui est le cas par " +"défaut), vous pouvez à la place faire ::" -#: ../Doc/library/multiprocessing.rst:1387 -#: ../Doc/library/multiprocessing.rst:1477 -#: ../Doc/library/multiprocessing.rst:1492 +#: ../Doc/library/multiprocessing.rst:1394 +#: ../Doc/library/multiprocessing.rst:1484 +#: ../Doc/library/multiprocessing.rst:1499 msgid "Note that *lock* is a keyword-only argument." -msgstr "" +msgstr "Notez que *lock* est un argument *keyword-only*." -#: ../Doc/library/multiprocessing.rst:1391 +#: ../Doc/library/multiprocessing.rst:1398 msgid "" "Return a ctypes array allocated from shared memory. By default the return " "value is actually a synchronized wrapper for the array." msgstr "" +"Renvoie un tableau *ctypes* alloué depuis la mémoire partagée. Par défaut la " +"valeur de retour est en fait un *wrapper* synchronisé autour du tableau." -#: ../Doc/library/multiprocessing.rst:1394 +#: ../Doc/library/multiprocessing.rst:1401 msgid "" "*typecode_or_type* determines the type of the elements of the returned " "array: it is either a ctypes type or a one character typecode of the kind " @@ -1553,8 +2185,14 @@ msgid "" "zeroed. Otherwise, *size_or_initializer* is a sequence which is used to " "initialize the array and whose length determines the length of the array." msgstr "" +"*typecode_or_type* détermine le type des éléments du tableau renvoyé : il " +"s'agit soit d'un type *ctype* soit d'un caractère *typecode* tel qu'utilisé " +"par le module :mod:`array`. Si *size_or_initialize* est un entier, alors il " +"détermine la taille du tableau, et le tableau sera initialisé avec des " +"zéros. Autrement, *size*or_initializer* est une séquence qui sera utilisée " +"pour initialiser le tableau et dont la taille détermine celle du tableau." -#: ../Doc/library/multiprocessing.rst:1401 +#: ../Doc/library/multiprocessing.rst:1408 msgid "" "If *lock* is ``True`` (the default) then a new lock object is created to " "synchronize access to the value. If *lock* is a :class:`Lock` or :class:" @@ -1563,29 +2201,41 @@ msgid "" "automatically protected by a lock, so it will not necessarily be \"process-" "safe\"." msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou est créé pour " +"synchroniser l'accès à la valeur. Si *lock* est un objet :class:`Lock` ou :" +"class:`RLock` alors il sera utilisé pour synchroniser l'accès à la valeur. " +"Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas " +"automatiquement protégé par un verrou, donc il ne sera pas forcément " +"« *process-safe* »." -#: ../Doc/library/multiprocessing.rst:1408 +#: ../Doc/library/multiprocessing.rst:1415 msgid "Note that *lock* is a keyword only argument." -msgstr "" +msgstr "Notez que *lock* est un argument *keyword-only*." -#: ../Doc/library/multiprocessing.rst:1410 +#: ../Doc/library/multiprocessing.rst:1417 msgid "" "Note that an array of :data:`ctypes.c_char` has *value* and *raw* attributes " "which allow one to use it to store and retrieve strings." msgstr "" +"Notez qu'un tableau de :data:`ctypes.c_char` a ses attributs *value* et " +"*raw* qui permettent de l'utiliser pour stocker et récupérer des chaînes de " +"caractères." -#: ../Doc/library/multiprocessing.rst:1415 +#: ../Doc/library/multiprocessing.rst:1422 msgid "The :mod:`multiprocessing.sharedctypes` module" -msgstr "" +msgstr "Le module :mod:`multiprocessing.sharedctypes`" -#: ../Doc/library/multiprocessing.rst:1420 +#: ../Doc/library/multiprocessing.rst:1427 msgid "" "The :mod:`multiprocessing.sharedctypes` module provides functions for " "allocating :mod:`ctypes` objects from shared memory which can be inherited " "by child processes." msgstr "" +"Le module :mod:`multiprocessing.sharedctypes` fournit des fonctions pour " +"allouer des objets :mod:`ctypes` depuis la mémoire partagée, qui peuvent " +"être hérités par les processus fils." -#: ../Doc/library/multiprocessing.rst:1426 +#: ../Doc/library/multiprocessing.rst:1433 msgid "" "Although it is possible to store a pointer in shared memory remember that " "this will refer to a location in the address space of a specific process. " @@ -1593,12 +2243,17 @@ msgid "" "second process and trying to dereference the pointer from the second process " "may cause a crash." msgstr "" +"Bien qu'il soit possible de stocker un pointeur en mémoire partagée, " +"rappelez-vous qu'un pointer référence un emplacement dans l'espace " +"d'adressage d'un processus particulier. Ainsi, ce pointeur a de fortes " +"chances d'être invalide dans le contexte d'un autre processus et " +"déréférencer le pointeur depuis ce second processus peut causer un plantage." -#: ../Doc/library/multiprocessing.rst:1434 +#: ../Doc/library/multiprocessing.rst:1441 msgid "Return a ctypes array allocated from shared memory." -msgstr "" +msgstr "Renvoie un tableau *ctypes* alloué depuis la mémoire partagée." -#: ../Doc/library/multiprocessing.rst:1436 +#: ../Doc/library/multiprocessing.rst:1443 msgid "" "*typecode_or_type* determines the type of the elements of the returned " "array: it is either a ctypes type or a one character typecode of the kind " @@ -1607,41 +2262,60 @@ msgid "" "zeroed. Otherwise *size_or_initializer* is a sequence which is used to " "initialize the array and whose length determines the length of the array." msgstr "" +"*typecode_or_type* détermine le type des éléments du tableau renvoyé : il " +"s'agit soit d'un type *ctype* soit d'un caractère codant le type des " +"éléments du tableau (*typecode*) tel qu'utilisé par le module :mod:`array`. " +"Si *size_or_initialize* est un entier, alors il détermine la taille du " +"tableau, et le tableau sera initialisé avec des zéros. Autrement, " +"*size_or_initializer* est une séquence qui sera utilisée pour initialiser le " +"tableau et dont la taille détermine celle du tableau." -#: ../Doc/library/multiprocessing.rst:1443 +#: ../Doc/library/multiprocessing.rst:1450 msgid "" "Note that setting and getting an element is potentially non-atomic -- use :" "func:`Array` instead to make sure that access is automatically synchronized " "using a lock." msgstr "" +"Notez que définir ou récupérer un élément est potentiellement non atomique " +"-- utilisez plutôt :func:`Array` pour vous assurer de synchroniser " +"automatiquement avec un verrou." -#: ../Doc/library/multiprocessing.rst:1449 +#: ../Doc/library/multiprocessing.rst:1456 msgid "Return a ctypes object allocated from shared memory." -msgstr "" +msgstr "Renvoie un objet *ctypes* alloué depuis la mémoire partagée." -#: ../Doc/library/multiprocessing.rst:1455 +#: ../Doc/library/multiprocessing.rst:1462 msgid "" "Note that setting and getting the value is potentially non-atomic -- use :" "func:`Value` instead to make sure that access is automatically synchronized " "using a lock." msgstr "" +"Notez que définir ou récupérer un élément est potentiellement non atomique " +"-- utilisez plutôt :func:`Value` pour vous assurer de synchroniser " +"automatiquement avec un verrou." -#: ../Doc/library/multiprocessing.rst:1459 +#: ../Doc/library/multiprocessing.rst:1466 msgid "" "Note that an array of :data:`ctypes.c_char` has ``value`` and ``raw`` " "attributes which allow one to use it to store and retrieve strings -- see " "documentation for :mod:`ctypes`." msgstr "" +"Notez qu'un tableau de :data:`ctypes.c_char` a ses attributs *value* et " +"*raw* qui permettent de l'utiliser pour stocker et récupérer des chaînes de " +"caractères -- voir la documentation de :mod:`ctypes`." -#: ../Doc/library/multiprocessing.rst:1465 +#: ../Doc/library/multiprocessing.rst:1472 msgid "" "The same as :func:`RawArray` except that depending on the value of *lock* a " "process-safe synchronization wrapper may be returned instead of a raw ctypes " "array." msgstr "" +"Identique à :func:`RawArray` à l'exception que suivant la valeur de *lock* " +"un *wrapper* de synchronisation *process-safe* pourra être renvoyé à la " +"place d'un tableau *ctypes* brut." -#: ../Doc/library/multiprocessing.rst:1469 -#: ../Doc/library/multiprocessing.rst:1485 +#: ../Doc/library/multiprocessing.rst:1476 +#: ../Doc/library/multiprocessing.rst:1492 msgid "" "If *lock* is ``True`` (the default) then a new lock object is created to " "synchronize access to the value. If *lock* is a :class:`~multiprocessing." @@ -1650,122 +2324,148 @@ msgid "" "returned object will not be automatically protected by a lock, so it will " "not necessarily be \"process-safe\"." msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou est créé pour " +"synchroniser l'accès à la valeur. Si *lock* est un objet :class:" +"`~multiprocessing.Lock` ou :class:`~multiprocessing.RLock` alors il sera " +"utilisé pour synchroniser l'accès à la valeur. Si *lock* vaut ``False``, " +"l'accès à l'objet renvoyé ne sera pas automatiquement protégé par un verrou, " +"donc il ne sera pas forcément « *process-safe* »." -#: ../Doc/library/multiprocessing.rst:1481 +#: ../Doc/library/multiprocessing.rst:1488 msgid "" "The same as :func:`RawValue` except that depending on the value of *lock* a " "process-safe synchronization wrapper may be returned instead of a raw ctypes " "object." msgstr "" +"Identique à :func:`RawValue` à l'exception que suivant la valeur de *lock* " +"un *wrapper* de synchronisation *process-safe* pourra être renvoyé à la " +"place d'un objet *ctypes* brut." -#: ../Doc/library/multiprocessing.rst:1496 +#: ../Doc/library/multiprocessing.rst:1503 msgid "" "Return a ctypes object allocated from shared memory which is a copy of the " "ctypes object *obj*." msgstr "" +"Renvoie un objet *ctypes* alloué depuis la mémoire partagée, qui est une " +"copie de l'objet *ctypes* *obj*." -#: ../Doc/library/multiprocessing.rst:1501 +#: ../Doc/library/multiprocessing.rst:1508 msgid "" "Return a process-safe wrapper object for a ctypes object which uses *lock* " "to synchronize access. If *lock* is ``None`` (the default) then a :class:" "`multiprocessing.RLock` object is created automatically." msgstr "" +"Renvoie un *wrapper* *process-safe* autour de l'objet *ctypes* qui utilise " +"*lock* pour synchroniser l'accès. Si *lock* est ``None`` (par défaut), un " +"objet :class:`multiprocessing.RLock` est créé automatiquement." -#: ../Doc/library/multiprocessing.rst:1505 +#: ../Doc/library/multiprocessing.rst:1512 msgid "" "A synchronized wrapper will have two methods in addition to those of the " "object it wraps: :meth:`get_obj` returns the wrapped object and :meth:" "`get_lock` returns the lock object used for synchronization." msgstr "" +"Un *wrapper* synchronisé aura deux méthodes en plus de celles de l'objet " +"qu'il enveloppe : :meth:`get_obj` renvoie l'objet *wrappé* et :meth:" +"`get_lock` renvoie le verrou utilisé pour la synchronisation." -#: ../Doc/library/multiprocessing.rst:1509 +#: ../Doc/library/multiprocessing.rst:1516 msgid "" "Note that accessing the ctypes object through the wrapper can be a lot " "slower than accessing the raw ctypes object." msgstr "" +"Notez qu'accéder à l'objet *ctypes* à travers le *wrapper* peut s'avérer " +"beaucoup plus lent qu'accéder directement à l'objet *ctypes* brut." -#: ../Doc/library/multiprocessing.rst:1512 +#: ../Doc/library/multiprocessing.rst:1519 msgid "Synchronized objects support the :term:`context manager` protocol." msgstr "" +"Les objets synchronisés supportent le protocole :term:`context manager`." -#: ../Doc/library/multiprocessing.rst:1516 +#: ../Doc/library/multiprocessing.rst:1523 msgid "" "The table below compares the syntax for creating shared ctypes objects from " "shared memory with the normal ctypes syntax. (In the table ``MyStruct`` is " "some subclass of :class:`ctypes.Structure`.)" msgstr "" +"Le tableau ci-dessous compare la syntaxe de création des objets *ctypes* " +"partagés depuis une mémoire partagée avec la syntaxe normale *ctypes*. (Dans " +"le tableau, ``MyStruct`` est une sous-classe quelconque de :class:`ctypes." +"Structure`.)" -#: ../Doc/library/multiprocessing.rst:1521 +#: ../Doc/library/multiprocessing.rst:1528 msgid "ctypes" msgstr "ctypes" -#: ../Doc/library/multiprocessing.rst:1521 +#: ../Doc/library/multiprocessing.rst:1528 msgid "sharedctypes using type" -msgstr "" +msgstr "*sharedctypes* utilisant un type" -#: ../Doc/library/multiprocessing.rst:1521 +#: ../Doc/library/multiprocessing.rst:1528 msgid "sharedctypes using typecode" -msgstr "" +msgstr "*sharedctypes* utilisant un *typecode*" -#: ../Doc/library/multiprocessing.rst:1523 +#: ../Doc/library/multiprocessing.rst:1530 msgid "c_double(2.4)" msgstr "c_double(2.4)" -#: ../Doc/library/multiprocessing.rst:1523 +#: ../Doc/library/multiprocessing.rst:1530 msgid "RawValue(c_double, 2.4)" msgstr "RawValue(c_double, 2.4)" -#: ../Doc/library/multiprocessing.rst:1523 +#: ../Doc/library/multiprocessing.rst:1530 msgid "RawValue('d', 2.4)" msgstr "RawValue('d', 2.4)" -#: ../Doc/library/multiprocessing.rst:1524 +#: ../Doc/library/multiprocessing.rst:1531 msgid "MyStruct(4, 6)" msgstr "MyStruct(4, 6)" -#: ../Doc/library/multiprocessing.rst:1524 +#: ../Doc/library/multiprocessing.rst:1531 msgid "RawValue(MyStruct, 4, 6)" msgstr "RawValue(MyStruct, 4, 6)" -#: ../Doc/library/multiprocessing.rst:1525 +#: ../Doc/library/multiprocessing.rst:1532 msgid "(c_short * 7)()" msgstr "(c_short * 7)()" -#: ../Doc/library/multiprocessing.rst:1525 +#: ../Doc/library/multiprocessing.rst:1532 msgid "RawArray(c_short, 7)" msgstr "RawArray(c_short, 7)" -#: ../Doc/library/multiprocessing.rst:1525 +#: ../Doc/library/multiprocessing.rst:1532 msgid "RawArray('h', 7)" msgstr "RawArray('h', 7)" -#: ../Doc/library/multiprocessing.rst:1526 +#: ../Doc/library/multiprocessing.rst:1533 msgid "(c_int * 3)(9, 2, 8)" msgstr "(c_int * 3)(9, 2, 8)" -#: ../Doc/library/multiprocessing.rst:1526 +#: ../Doc/library/multiprocessing.rst:1533 msgid "RawArray(c_int, (9, 2, 8))" msgstr "RawArray(c_int, (9, 2, 8))" -#: ../Doc/library/multiprocessing.rst:1526 +#: ../Doc/library/multiprocessing.rst:1533 msgid "RawArray('i', (9, 2, 8))" msgstr "RawArray('i', (9, 2, 8))" -#: ../Doc/library/multiprocessing.rst:1530 +#: ../Doc/library/multiprocessing.rst:1537 msgid "" "Below is an example where a number of ctypes objects are modified by a child " "process::" msgstr "" +"Ci-dessous un exemple où des objets *ctypes* sont modifiés par un processus " +"fils ::" -#: ../Doc/library/multiprocessing.rst:1568 +#: ../Doc/library/multiprocessing.rst:1575 msgid "The results printed are ::" -msgstr "" +msgstr "Les résultats affichés sont ::" -#: ../Doc/library/multiprocessing.rst:1581 +#: ../Doc/library/multiprocessing.rst:1588 msgid "Managers" -msgstr "" +msgstr "Gestionnaires" -#: ../Doc/library/multiprocessing.rst:1583 +#: ../Doc/library/multiprocessing.rst:1590 msgid "" "Managers provide a way to create data which can be shared between different " "processes, including sharing over a network between processes running on " @@ -1773,106 +2473,152 @@ msgid "" "*shared objects*. Other processes can access the shared objects by using " "proxies." msgstr "" +"Les gestionnaires fournissent un moyen de créer des données qui peuvent être " +"partagées entre les différents processus, incluant le partage à travers le " +"réseau entre des processus tournant sur des machines différentes. Un objet " +"gestionnaire contrôle un processus serveur qui gère les *shared objects*. " +"Les autres processus peuvent accéder aux objets partagés à l'aide de " +"mandataires." -#: ../Doc/library/multiprocessing.rst:1591 +#: ../Doc/library/multiprocessing.rst:1598 msgid "" "Returns a started :class:`~multiprocessing.managers.SyncManager` object " "which can be used for sharing objects between processes. The returned " "manager object corresponds to a spawned child process and has methods which " "will create shared objects and return corresponding proxies." msgstr "" +"Renvoie un objet :class:`~multiprocessing.managers.SyncManager` démarré qui " +"peut être utilisé pour partager des objets entre les processus. L'objet " +"gestionnaire renvoyé correspond à un processus enfant instancié et possède " +"des méthodes pour créer des objets partagés et renvoyer les mandataires " +"correspondants." -#: ../Doc/library/multiprocessing.rst:1599 +#: ../Doc/library/multiprocessing.rst:1606 msgid "" "Manager processes will be shutdown as soon as they are garbage collected or " "their parent process exits. The manager classes are defined in the :mod:" "`multiprocessing.managers` module:" msgstr "" +"Les processus gestionnaires seront arrêtés dès qu'ils seront collectés par " +"le ramasse-miettes ou que leur processus parent se terminera. Les classes " +"gestionnaires sont définies dans le module :mod:`multiprocessing.managers` :" -#: ../Doc/library/multiprocessing.rst:1605 +#: ../Doc/library/multiprocessing.rst:1612 msgid "Create a BaseManager object." -msgstr "" +msgstr "Crée un objet *BaseManager*." -#: ../Doc/library/multiprocessing.rst:1607 +#: ../Doc/library/multiprocessing.rst:1614 msgid "" "Once created one should call :meth:`start` or ``get_server()." "serve_forever()`` to ensure that the manager object refers to a started " "manager process." msgstr "" +"Une fois créé il faut appeler :meth:`start` ou ``get_server()." +"serve_forever()`` pour assurer que l'objet gestionnaire référence un " +"processus gestionnaire démarré." -#: ../Doc/library/multiprocessing.rst:1610 +#: ../Doc/library/multiprocessing.rst:1617 msgid "" "*address* is the address on which the manager process listens for new " "connections. If *address* is ``None`` then an arbitrary one is chosen." msgstr "" +"*address* est l'adresse sur laquelle le processus gestionnaire écoute pour " +"de nouvelles connexions. Si *address* est ``None``, une adresse arbitraire " +"est choisie." -#: ../Doc/library/multiprocessing.rst:1613 +#: ../Doc/library/multiprocessing.rst:1620 msgid "" "*authkey* is the authentication key which will be used to check the validity " "of incoming connections to the server process. If *authkey* is ``None`` " "then ``current_process().authkey`` is used. Otherwise *authkey* is used and " "it must be a byte string." msgstr "" +"*authkey* est la clé d'authentification qui sera utilisée pour vérifier la " +"validité des connexions entrantes sur le processus serveur. Si *authkey* est " +"``None`` alors ``current_process().authkey`` est utilisée. Autrement " +"*authkey* est utilisée et doit être une chaîne d'octets." -#: ../Doc/library/multiprocessing.rst:1620 +#: ../Doc/library/multiprocessing.rst:1627 msgid "" "Start a subprocess to start the manager. If *initializer* is not ``None`` " "then the subprocess will call ``initializer(*initargs)`` when it starts." msgstr "" +"Démarre un sous-processus pour démarrer le gestionnaire. Si *initializer* " +"n'est pas ``None`` alors le sous-processus appellera " +"``initializer(*initargs)`` quand il démarrera." -#: ../Doc/library/multiprocessing.rst:1625 +#: ../Doc/library/multiprocessing.rst:1632 msgid "" "Returns a :class:`Server` object which represents the actual server under " "the control of the Manager. The :class:`Server` object supports the :meth:" "`serve_forever` method::" msgstr "" +"Renvoie un objet :class:`Server` qui représente le serveur sous le contrôle " +"du gestionnaire. L'objet :class:`Server` supporte la méthode :meth:" +"`serve_forever` ::" -#: ../Doc/library/multiprocessing.rst:1634 +#: ../Doc/library/multiprocessing.rst:1641 msgid ":class:`Server` additionally has an :attr:`address` attribute." -msgstr "" +msgstr ":class:`Server` possède en plus un attribut :attr:`address`." -#: ../Doc/library/multiprocessing.rst:1638 +#: ../Doc/library/multiprocessing.rst:1645 msgid "Connect a local manager object to a remote manager process::" msgstr "" +"Connecte un objet gestionnaire local au processus gestionnaire distant ::" -#: ../Doc/library/multiprocessing.rst:1646 +#: ../Doc/library/multiprocessing.rst:1653 msgid "" "Stop the process used by the manager. This is only available if :meth:" "`start` has been used to start the server process." msgstr "" +"Stoppe le processus utilisé par le gestionnaire. Cela est disponible " +"uniquement si :meth:`start` a été utilisée pour démarrer le processus " +"serveur." -#: ../Doc/library/multiprocessing.rst:1649 +#: ../Doc/library/multiprocessing.rst:1656 msgid "This can be called multiple times." -msgstr "" +msgstr "Cette méthode peut être appelée plusieurs fois." -#: ../Doc/library/multiprocessing.rst:1653 +#: ../Doc/library/multiprocessing.rst:1660 msgid "" "A classmethod which can be used for registering a type or callable with the " "manager class." msgstr "" +"Une méthode de classe qui peut être utilisée pour enregistrer un type ou un " +"appelable avec la classe gestionnaire." -#: ../Doc/library/multiprocessing.rst:1656 +#: ../Doc/library/multiprocessing.rst:1663 msgid "" "*typeid* is a \"type identifier\" which is used to identify a particular " "type of shared object. This must be a string." msgstr "" +"*typeif* est un « *type identifier* » qui est utilisé pour identifier un " +"type particulier d'objet partagé. Cela doit être une chaîne de caractères." -#: ../Doc/library/multiprocessing.rst:1659 +#: ../Doc/library/multiprocessing.rst:1666 msgid "" "*callable* is a callable used for creating objects for this type " "identifier. If a manager instance will be connected to the server using " "the :meth:`connect` method, or if the *create_method* argument is ``False`` " "then this can be left as ``None``." msgstr "" +"*callable* est un objet appelable utilisé pour créer les objets avec cet " +"identifiant de type. Si une instance de gestionnaire prévoit de se connecter " +"au serveur en utilisant sa méthode :meth:`connect` ou si l'argument " +"*create_method* vaut ``False`` alors cet argument peut être laissé à " +"``None``." -#: ../Doc/library/multiprocessing.rst:1665 +#: ../Doc/library/multiprocessing.rst:1672 msgid "" "*proxytype* is a subclass of :class:`BaseProxy` which is used to create " "proxies for shared objects with this *typeid*. If ``None`` then a proxy " "class is created automatically." msgstr "" +"*proxytype* est une sous-classe de :class:`BaseProxy` utilisée pour créer " +"des mandataires autour des objets partagés avec ce *typeid*. S'il est " +"``None``, une classe mandataire sera créée automatiquement." -#: ../Doc/library/multiprocessing.rst:1669 +#: ../Doc/library/multiprocessing.rst:1676 msgid "" "*exposed* is used to specify a sequence of method names which proxies for " "this typeid should be allowed to access using :meth:`BaseProxy." @@ -1882,8 +2628,16 @@ msgid "" "\"public method\" means any attribute which has a :meth:`~object.__call__` " "method and whose name does not begin with ``'_'``.)" msgstr "" +"*exposed* est utilisé pour préciser une séquence de noms de méthodes dont " +"les mandataires pour ce *typeid* doivent être autorisés à accéder via :meth:" +"`BaseProxy._callmethod`. (Si *exposed* est ``None`` alors :attr:`proxytype." +"_exposed_` est utilisé à la place s'il existe.) Dans le cas où aucune liste " +"*exposed* n'est précisée, toutes les « méthodes publiques » de l'objet " +"partagé seront accessibles. (Ici une « méthode publique » signifie n'importe " +"quel attribut qui possède une méthode :meth:`~object.__call__` et dont le " +"nom ne commence pas par un ``'_'``.)" -#: ../Doc/library/multiprocessing.rst:1678 +#: ../Doc/library/multiprocessing.rst:1685 msgid "" "*method_to_typeid* is a mapping used to specify the return type of those " "exposed methods which should return a proxy. It maps method names to typeid " @@ -1892,224 +2646,311 @@ msgid "" "not a key of this mapping or if the mapping is ``None`` then the object " "returned by the method will be copied by value." msgstr "" +"*method_to_typeid* est un tableau associatif utilisé pour préciser le type " +"de retour de ces méthodes exposées qui doivent renvoyer un mandataire. Il " +"associé un nom de méthode à une chaîne de caractères *typeid*. (Si " +"*method_to_typeid* est ``None``, :attr:`proxytype._method_to_typeid_` est " +"utilisé à la place s'il existe). Si le nom d'une méthode n'est pas une clé " +"de ce tableau associatif ou si la valeur associée est ``None``, l'objet " +"renvoyé par la méthode sera une copie de la valeur." -#: ../Doc/library/multiprocessing.rst:1685 +#: ../Doc/library/multiprocessing.rst:1692 msgid "" "*create_method* determines whether a method should be created with name " "*typeid* which can be used to tell the server process to create a new shared " "object and return a proxy for it. By default it is ``True``." msgstr "" +"*create_method* détermine si une méthode devrait être créée avec le nom " +"*typeid*, qui peut être utilisée pour indiquer au processus serveur de créer " +"un nouvel objet partagé et d'en renvoyer un mandataire. a valeur par défaut " +"est ``True``." -#: ../Doc/library/multiprocessing.rst:1689 +#: ../Doc/library/multiprocessing.rst:1696 msgid ":class:`BaseManager` instances also have one read-only property:" msgstr "" +"Les instances de :class:`BaseManager` ont aussi une propriété en lecture " +"seule :" -#: ../Doc/library/multiprocessing.rst:1693 +#: ../Doc/library/multiprocessing.rst:1700 msgid "The address used by the manager." -msgstr "" +msgstr "L'adresse utilisée par le gestionnaire." -#: ../Doc/library/multiprocessing.rst:1695 +#: ../Doc/library/multiprocessing.rst:1702 msgid "" "Manager objects support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` starts the server " "process (if it has not already started) and then returns the manager " "object. :meth:`~contextmanager.__exit__` calls :meth:`shutdown`." msgstr "" +"Les objets gestionnaires supportent le protocole des gestionnaires de " +"contexte -- voir :ref:`typecontextmanager`. :meth:`~contextmanager." +"__enter__` démarre le processus serveur (s'il n'a pas déjà été démarré) et " +"renvoie l'objet gestionnaire. :meth:`~contextmanager.__exit__` appelle :meth:" +"`shutdown`." -#: ../Doc/library/multiprocessing.rst:1701 +#: ../Doc/library/multiprocessing.rst:1708 msgid "" "In previous versions :meth:`~contextmanager.__enter__` did not start the " "manager's server process if it was not already started." msgstr "" +"Dans les versions précédentes :meth:`~contextmanager.__enter__` ne démarrait " +"pas le processus serveur du gestionnaire s'il n'était pas déjà démarré." -#: ../Doc/library/multiprocessing.rst:1706 +#: ../Doc/library/multiprocessing.rst:1713 msgid "" "A subclass of :class:`BaseManager` which can be used for the synchronization " "of processes. Objects of this type are returned by :func:`multiprocessing." "Manager`." msgstr "" +"Une sous-classe de :class:`BaseManager` qui peut être utilisée pour la " +"synchronisation entre processus. Des objets de ce type sont renvoyés par :" +"func:`multiprocessing.Manager`." -#: ../Doc/library/multiprocessing.rst:1710 +#: ../Doc/library/multiprocessing.rst:1717 msgid "" "Its methods create and return :ref:`multiprocessing-proxy_objects` for a " "number of commonly used data types to be synchronized across processes. This " "notably includes shared lists and dictionaries." msgstr "" +"Ces méthodes créent et renvoient des :ref:`multiprocessing-proxy_objects` " +"pour un certain nombre de types de données communément utilisés pour être " +"synchronisés entre les processus. Elles incluent notamment des listes et " +"dictionnaires partagés." -#: ../Doc/library/multiprocessing.rst:1716 +#: ../Doc/library/multiprocessing.rst:1723 msgid "" "Create a shared :class:`threading.Barrier` object and return a proxy for it." msgstr "" +"Crée un objet :class:`threading.Barrier` partagé et renvoie un mandataire " +"pour cet objet." -#: ../Doc/library/multiprocessing.rst:1723 +#: ../Doc/library/multiprocessing.rst:1730 msgid "" "Create a shared :class:`threading.BoundedSemaphore` object and return a " "proxy for it." msgstr "" +"Crée un objet :class:`threading.BoundedSemaphore` partagé et renvoie un " +"mandataire pour cet objet." -#: ../Doc/library/multiprocessing.rst:1728 +#: ../Doc/library/multiprocessing.rst:1735 msgid "" "Create a shared :class:`threading.Condition` object and return a proxy for " "it." msgstr "" +"Crée un objet :class:`threading.Condition` partagé et renvoie un mandataire " +"pour cet objet." -#: ../Doc/library/multiprocessing.rst:1731 +#: ../Doc/library/multiprocessing.rst:1738 msgid "" "If *lock* is supplied then it should be a proxy for a :class:`threading." "Lock` or :class:`threading.RLock` object." msgstr "" +"Si *lock* est fourni alors il doit être un mandataire pour un objet :class:" +"`threading.Lock` ou :class:`threading.RLock`." -#: ../Doc/library/multiprocessing.rst:1739 +#: ../Doc/library/multiprocessing.rst:1746 msgid "" "Create a shared :class:`threading.Event` object and return a proxy for it." msgstr "" +"Crée un objet :class:`threading.Event` partagé et renvoie un mandataire pour " +"cet objet." -#: ../Doc/library/multiprocessing.rst:1743 +#: ../Doc/library/multiprocessing.rst:1750 msgid "" "Create a shared :class:`threading.Lock` object and return a proxy for it." msgstr "" +"Crée un objet :class:`threading.Lock` partagé et renvoie un mandataire pour " +"cet objet." -#: ../Doc/library/multiprocessing.rst:1747 +#: ../Doc/library/multiprocessing.rst:1754 msgid "Create a shared :class:`Namespace` object and return a proxy for it." msgstr "" +"Crée un objet :class:`Namespace` partagé et renvoie un mandataire pour cet " +"objet." -#: ../Doc/library/multiprocessing.rst:1751 +#: ../Doc/library/multiprocessing.rst:1758 msgid "Create a shared :class:`queue.Queue` object and return a proxy for it." msgstr "" +"Crée un objet :class:`queue.Queue` partagé et renvoie un mandataire pour cet " +"objet." -#: ../Doc/library/multiprocessing.rst:1755 +#: ../Doc/library/multiprocessing.rst:1762 msgid "" "Create a shared :class:`threading.RLock` object and return a proxy for it." msgstr "" +"Crée un objet :class:`threading.RLock` partagé et renvoie un mandataire pour " +"cet objet." -#: ../Doc/library/multiprocessing.rst:1759 +#: ../Doc/library/multiprocessing.rst:1766 msgid "" "Create a shared :class:`threading.Semaphore` object and return a proxy for " "it." msgstr "" +"Crée un objet :class:`threading.Semaphore` partagé et renvoie un mandataire " +"pour cet objet." -#: ../Doc/library/multiprocessing.rst:1764 +#: ../Doc/library/multiprocessing.rst:1771 msgid "Create an array and return a proxy for it." -msgstr "" +msgstr "Crée un tableau et renvoie un mandataire pour cet objet." -#: ../Doc/library/multiprocessing.rst:1768 +#: ../Doc/library/multiprocessing.rst:1775 msgid "" "Create an object with a writable ``value`` attribute and return a proxy for " "it." msgstr "" +"Crée un objet avec un attribut ``value`` accessible en écriture et renvoie " +"un mandataire pour cet objet." -#: ../Doc/library/multiprocessing.rst:1775 +#: ../Doc/library/multiprocessing.rst:1782 msgid "Create a shared :class:`dict` object and return a proxy for it." msgstr "" +"Crée un objet :class:`dict` partagé et renvoie un mandataire pour cet objet." -#: ../Doc/library/multiprocessing.rst:1780 +#: ../Doc/library/multiprocessing.rst:1787 msgid "Create a shared :class:`list` object and return a proxy for it." msgstr "" +"Crée un objet :class:`list` partagé et renvoie un mandataire pour cet objet." -#: ../Doc/library/multiprocessing.rst:1782 +#: ../Doc/library/multiprocessing.rst:1789 msgid "" "Shared objects are capable of being nested. For example, a shared container " "object such as a shared list can contain other shared objects which will all " "be managed and synchronized by the :class:`SyncManager`." msgstr "" +"Les objets partagés peuvent être imbriqués. Par exemple, un conteneur " +"partagé tel qu'une liste partagée peu contenir d'autres objets partagés qui " +"seront aussi gérés et synchronisés par le :class:`SyncManager`." -#: ../Doc/library/multiprocessing.rst:1789 +#: ../Doc/library/multiprocessing.rst:1796 msgid "A type that can register with :class:`SyncManager`." -msgstr "" +msgstr "Un type qui peut être enregistré avec :class:`SyncManager`." -#: ../Doc/library/multiprocessing.rst:1791 +#: ../Doc/library/multiprocessing.rst:1798 msgid "" "A namespace object has no public methods, but does have writable attributes. " "Its representation shows the values of its attributes." msgstr "" +"Un espace de nommage n'a pas de méthodes publiques, mais possède des " +"attributs accessibles en écriture. Sa représentation montre les valeurs de " +"ses attributs." -#: ../Doc/library/multiprocessing.rst:1794 +#: ../Doc/library/multiprocessing.rst:1801 msgid "" "However, when using a proxy for a namespace object, an attribute beginning " "with ``'_'`` will be an attribute of the proxy and not an attribute of the " "referent:" msgstr "" +"Cependant, en utilisant un mandataire pour un espace de nommage, un attribut " +"débutant par ``'_'`` est un attribut du mandataire et non de l'objet cible :" -#: ../Doc/library/multiprocessing.rst:1810 +#: ../Doc/library/multiprocessing.rst:1817 msgid "Customized managers" -msgstr "" +msgstr "Gestionnaires personnalisés" -#: ../Doc/library/multiprocessing.rst:1812 +#: ../Doc/library/multiprocessing.rst:1819 msgid "" "To create one's own manager, one creates a subclass of :class:`BaseManager` " "and uses the :meth:`~BaseManager.register` classmethod to register new types " "or callables with the manager class. For example::" msgstr "" +"Pour créer son propre gestionnaire, il faut créer une sous-classe de :class:" +"`BaseManager` et utiliser la méthode de classe :meth:`~BaseManager.register` " +"pour enregistrer de nouveaux types ou *callables* au gestionnaire. Par " +"exemple ::" -#: ../Doc/library/multiprocessing.rst:1837 +#: ../Doc/library/multiprocessing.rst:1844 msgid "Using a remote manager" -msgstr "" +msgstr "Utiliser un gestionnaire distant" -#: ../Doc/library/multiprocessing.rst:1839 +#: ../Doc/library/multiprocessing.rst:1846 msgid "" "It is possible to run a manager server on one machine and have clients use " "it from other machines (assuming that the firewalls involved allow it)." msgstr "" +"Il est possible de lancer un serveur gestionnaire sur une machine et d'avoir " +"des clients l'utilisant sur d'autres machines (en supposant que les pare-" +"feus impliqués l'autorisent)." -#: ../Doc/library/multiprocessing.rst:1842 +#: ../Doc/library/multiprocessing.rst:1849 msgid "" "Running the following commands creates a server for a single shared queue " "which remote clients can access::" msgstr "" +"Exécuter les commandes suivantes crée un serveur pour une simple queue " +"partagée à laquelle des clients distants peuvent accéder ::" -#: ../Doc/library/multiprocessing.rst:1854 +#: ../Doc/library/multiprocessing.rst:1861 msgid "One client can access the server as follows::" -msgstr "" +msgstr "Un client peut accéder au serveur comme suit ::" -#: ../Doc/library/multiprocessing.rst:1864 +#: ../Doc/library/multiprocessing.rst:1871 msgid "Another client can also use it::" -msgstr "" +msgstr "Un autre client peut aussi l'utiliser ::" -#: ../Doc/library/multiprocessing.rst:1875 +#: ../Doc/library/multiprocessing.rst:1882 msgid "" "Local processes can also access that queue, using the code from above on the " "client to access it remotely::" msgstr "" +"Les processus locaux peuvent aussi accéder à cette queue, utilisant le code " +"précédent sur le client pour y accéder à distance ::" -#: ../Doc/library/multiprocessing.rst:1900 +#: ../Doc/library/multiprocessing.rst:1907 msgid "Proxy Objects" -msgstr "" +msgstr "Objets mandataires" -#: ../Doc/library/multiprocessing.rst:1902 +#: ../Doc/library/multiprocessing.rst:1909 msgid "" "A proxy is an object which *refers* to a shared object which lives " "(presumably) in a different process. The shared object is said to be the " "*referent* of the proxy. Multiple proxy objects may have the same referent." msgstr "" +"Un mandataire est un objet qui *référence* un objet partagé appartenant " +"(supposément) à un processus différent. L'objet partagé est appelé le " +"*référent* du mandataire. Plusieurs mandataires peuvent avoir un même " +"référent." -#: ../Doc/library/multiprocessing.rst:1906 +#: ../Doc/library/multiprocessing.rst:1913 msgid "" "A proxy object has methods which invoke corresponding methods of its " "referent (although not every method of the referent will necessarily be " "available through the proxy). In this way, a proxy can be used just like " "its referent can:" msgstr "" +"Un mandataire possède des méthodes qui appellent les méthodes " +"correspondantes du référent (bien que toutes les méthodes du référent ne " +"soient pas nécessairement accessibles à travers le mandataire). De cette " +"manière, un mandataire peut être utilisé comme le serait sont référent :" -#: ../Doc/library/multiprocessing.rst:1924 +#: ../Doc/library/multiprocessing.rst:1931 msgid "" "Notice that applying :func:`str` to a proxy will return the representation " "of the referent, whereas applying :func:`repr` will return the " "representation of the proxy." msgstr "" +"Notez qu'appliquer :func:`str` à un mandataire renvoie la représentation du " +"référent, alors que :func:`repr` renvoie celle du mandataire." -#: ../Doc/library/multiprocessing.rst:1928 +#: ../Doc/library/multiprocessing.rst:1935 msgid "" "An important feature of proxy objects is that they are picklable so they can " "be passed between processes. As such, a referent can contain :ref:" "`multiprocessing-proxy_objects`. This permits nesting of these managed " "lists, dicts, and other :ref:`multiprocessing-proxy_objects`:" msgstr "" +"Une fonctionnalité importantes des objets mandataires est qu'ils sont " +"sérialisables et peuvent donc être échangés entre les processus. Ainsi, un " +"référent peut contenir des :ref:`multiprocessing-proxy_objects`. Cela permet " +"d'imbriquer des listes et dictionnaires gérés ainsi que d'autres :ref:" +"`multiprocessing-proxy_objects` :" -#: ../Doc/library/multiprocessing.rst:1944 +#: ../Doc/library/multiprocessing.rst:1951 msgid "Similarly, dict and list proxies may be nested inside one another::" msgstr "" +"De même, les mandataires de listes et dictionnaires peuvent être imbriqués " +"dans d'autres ::" -#: ../Doc/library/multiprocessing.rst:1957 +#: ../Doc/library/multiprocessing.rst:1964 msgid "" "If standard (non-proxy) :class:`list` or :class:`dict` objects are contained " "in a referent, modifications to those mutable values will not be propagated " @@ -2119,163 +2960,219 @@ msgid "" "through the manager and so to effectively modify such an item, one could re-" "assign the modified value to the container proxy::" msgstr "" +"Si des objets standards (non *proxyfiés*) :class:`list` ou :class:`dict` " +"sont contenus dans un référent, les modifications sur ces valeurs mutables " +"ne seront pas propagées à travers le gestionnaire parce que le mandataire " +"n'a aucun moyen de savoir quand les valeurs contenues sont modifiées. " +"Cependant, stocker une valeur dans un conteneur mandataire (qui déclenche un " +"appel à ``__setitem__`` sur le mandataire) propage bien la modification à " +"travers le gestionnaire et modifie effectivement l'élément, il est ainsi " +"possible de réassigner la valeur modifiée au conteneur mandataire ::" -#: ../Doc/library/multiprocessing.rst:1976 +#: ../Doc/library/multiprocessing.rst:1983 msgid "" "This approach is perhaps less convenient than employing nested :ref:" "`multiprocessing-proxy_objects` for most use cases but also demonstrates a " "level of control over the synchronization." msgstr "" +"Cette approche est peut-être moins pratique que d'utiliser des :ref:" +"`multiprocessing-proxy_objects` imbriqués pour la majorité des cas " +"d'utilisation, mais démontre aussi un certain niveau de contrôle sur la " +"synchronisation." -#: ../Doc/library/multiprocessing.rst:1982 +#: ../Doc/library/multiprocessing.rst:1989 msgid "" "The proxy types in :mod:`multiprocessing` do nothing to support comparisons " "by value. So, for instance, we have:" msgstr "" +"Les types de mandataires de :mod:`multiprocessing` n'implémentent rien pour " +"la comparaison par valeurs. Par exemple, on a :" -#: ../Doc/library/multiprocessing.rst:1990 +#: ../Doc/library/multiprocessing.rst:1997 msgid "" "One should just use a copy of the referent instead when making comparisons." msgstr "" +"Il faut à la place simplement utiliser une copie du référent pour faire les " +"comparaisons." -#: ../Doc/library/multiprocessing.rst:1994 +#: ../Doc/library/multiprocessing.rst:2001 msgid "Proxy objects are instances of subclasses of :class:`BaseProxy`." msgstr "" +"Les objets mandataires sont des instances de sous-classes de :class:" +"`BaseProxy`." -#: ../Doc/library/multiprocessing.rst:1998 +#: ../Doc/library/multiprocessing.rst:2005 msgid "Call and return the result of a method of the proxy's referent." msgstr "" +"Appelle et renvoie le résultat d'une méthode du référent du mandataire." -#: ../Doc/library/multiprocessing.rst:2000 +#: ../Doc/library/multiprocessing.rst:2007 msgid "" "If ``proxy`` is a proxy whose referent is ``obj`` then the expression ::" msgstr "" +"Si ``proxy`` est un mandataire sont le référent est ``obj``, alors " +"l'expression ::" -#: ../Doc/library/multiprocessing.rst:2004 +#: ../Doc/library/multiprocessing.rst:2011 msgid "will evaluate the expression ::" -msgstr "" +msgstr "s'évalue comme ::" -#: ../Doc/library/multiprocessing.rst:2008 +#: ../Doc/library/multiprocessing.rst:2015 msgid "in the manager's process." -msgstr "" +msgstr "dans le processus du gestionnaire." -#: ../Doc/library/multiprocessing.rst:2010 +#: ../Doc/library/multiprocessing.rst:2017 msgid "" "The returned value will be a copy of the result of the call or a proxy to a " "new shared object -- see documentation for the *method_to_typeid* argument " "of :meth:`BaseManager.register`." msgstr "" +"La valeur renvoyée sera une copie du résultat de l'appel ou un mandataire " +"sur un nouvel objet partagé -- voir l'a documentation de l'argument " +"*method_to_typeid* de :meth:`BaseManager.register`." -#: ../Doc/library/multiprocessing.rst:2014 +#: ../Doc/library/multiprocessing.rst:2021 msgid "" "If an exception is raised by the call, then is re-raised by :meth:" "`_callmethod`. If some other exception is raised in the manager's process " "then this is converted into a :exc:`RemoteError` exception and is raised by :" "meth:`_callmethod`." msgstr "" +"Si une exception est levée par l'appel, elle est relayée par :meth:" +"`_callmethod`. Si une autre exception est levée par le processus du " +"gestionnaire, elle est convertie en une :exc:`RemoteError` et est levée par :" +"meth:`_callmethod`." -#: ../Doc/library/multiprocessing.rst:2019 +#: ../Doc/library/multiprocessing.rst:2026 msgid "" "Note in particular that an exception will be raised if *methodname* has not " "been *exposed*." msgstr "" +"Notez en particulier qu'une exception est levée si *methodname* n'est pas " +"*exposée*." -#: ../Doc/library/multiprocessing.rst:2022 +#: ../Doc/library/multiprocessing.rst:2029 msgid "An example of the usage of :meth:`_callmethod`:" -msgstr "" +msgstr "Un exemple d'utilisation de :meth:`_callmethod` :" -#: ../Doc/library/multiprocessing.rst:2038 +#: ../Doc/library/multiprocessing.rst:2045 msgid "Return a copy of the referent." -msgstr "" +msgstr "Renvoie une copie du référent." -#: ../Doc/library/multiprocessing.rst:2040 +#: ../Doc/library/multiprocessing.rst:2047 msgid "If the referent is unpicklable then this will raise an exception." -msgstr "" +msgstr "Si le référent n'est pas sérialisable, une exception est levée." -#: ../Doc/library/multiprocessing.rst:2044 +#: ../Doc/library/multiprocessing.rst:2051 msgid "Return a representation of the proxy object." -msgstr "" +msgstr "Renvoie la représentation de l'objet mandataire." -#: ../Doc/library/multiprocessing.rst:2048 +#: ../Doc/library/multiprocessing.rst:2055 msgid "Return the representation of the referent." -msgstr "" +msgstr "Renvoie la représentation du référent." -#: ../Doc/library/multiprocessing.rst:2052 +#: ../Doc/library/multiprocessing.rst:2059 msgid "Cleanup" -msgstr "" +msgstr "Nettoyage" -#: ../Doc/library/multiprocessing.rst:2054 +#: ../Doc/library/multiprocessing.rst:2061 msgid "" "A proxy object uses a weakref callback so that when it gets garbage " "collected it deregisters itself from the manager which owns its referent." msgstr "" +"Un mandataire utilise un *callback* sous une référence faible de façon à ce " +"que quand il est collecté par le ramasse-miettes, il se désenregistre auprès " +"du gestionnaire qui possède le référent." -#: ../Doc/library/multiprocessing.rst:2057 +#: ../Doc/library/multiprocessing.rst:2064 msgid "" "A shared object gets deleted from the manager process when there are no " "longer any proxies referring to it." msgstr "" +"Un objet partagé est supprimé par le processus gestionnaire quand plus aucun " +"mandataire ne le référence." -#: ../Doc/library/multiprocessing.rst:2062 +#: ../Doc/library/multiprocessing.rst:2069 msgid "Process Pools" -msgstr "" +msgstr "Bassins de processus" -#: ../Doc/library/multiprocessing.rst:2067 +#: ../Doc/library/multiprocessing.rst:2074 msgid "" "One can create a pool of processes which will carry out tasks submitted to " "it with the :class:`Pool` class." msgstr "" +"On peut créer un bassin de processus qui exécuteront les tâches qui lui " +"seront soumises avec la classe :class:`Pool`." -#: ../Doc/library/multiprocessing.rst:2072 +#: ../Doc/library/multiprocessing.rst:2079 msgid "" "A process pool object which controls a pool of worker processes to which " "jobs can be submitted. It supports asynchronous results with timeouts and " "callbacks and has a parallel map implementation." msgstr "" +"Un objet *process pool* qui contrôle un bassin de processus *workers* auquel " +"sont soumises des tâches. Il supporte les résultats asynchrones avec des " +"*timeouts* et des *callabacks* et possède une implémentation parallèle de " +"*map*." -#: ../Doc/library/multiprocessing.rst:2076 +#: ../Doc/library/multiprocessing.rst:2083 msgid "" "*processes* is the number of worker processes to use. If *processes* is " "``None`` then the number returned by :func:`os.cpu_count` is used." msgstr "" +"*processes* est le nombre de processus *workers* à utiliser. Si *processes* " +"est ``None``, le nombre renvoyé par :func:`os.cpu_count` est utilisé." -#: ../Doc/library/multiprocessing.rst:2079 +#: ../Doc/library/multiprocessing.rst:2086 msgid "" "If *initializer* is not ``None`` then each worker process will call " "``initializer(*initargs)`` when it starts." msgstr "" +"Si *initializer* n'est pas ``None``, chaque processus *worker* appellera " +"``initializer(*initargs)`` en démarrant." -#: ../Doc/library/multiprocessing.rst:2082 +#: ../Doc/library/multiprocessing.rst:2089 msgid "" "*maxtasksperchild* is the number of tasks a worker process can complete " "before it will exit and be replaced with a fresh worker process, to enable " "unused resources to be freed. The default *maxtasksperchild* is ``None``, " "which means worker processes will live as long as the pool." msgstr "" +"*maxtasksperchild* est le nombre de tâches qu'un processus *worker* peut " +"accomplir avant de se fermer et d'être remplacé par un *worker* frais, pour " +"permettre aux ressources inutilisées d'être libérées. Par défaut " +"*maxtasksperchild* est ``None``, ce qui signifie que le *worker* vit aussi " +"longtemps que le bassin." -#: ../Doc/library/multiprocessing.rst:2087 +#: ../Doc/library/multiprocessing.rst:2094 msgid "" "*context* can be used to specify the context used for starting the worker " "processes. Usually a pool is created using the function :func:" "`multiprocessing.Pool` or the :meth:`Pool` method of a context object. In " "both cases *context* is set appropriately." msgstr "" +"*context* peut être utilisé pour préciser le contexte utilisé pour démarrer " +"les processus *workers*. Habituellement un bassin est créé à l'aide de la " +"fonction :func:`multiprocessing.Pool` ou de la méthode :meth:`Pool` d'un " +"objet de contexte. Dans les deux cas *context* est réglé de façon appropriée." -#: ../Doc/library/multiprocessing.rst:2093 +#: ../Doc/library/multiprocessing.rst:2100 msgid "" "Note that the methods of the pool object should only be called by the " "process which created the pool." msgstr "" +"Notez que les méthodes de l'objet *pool* ne doivent être appelées que par le " +"processus qui l'a créé." -#: ../Doc/library/multiprocessing.rst:2096 +#: ../Doc/library/multiprocessing.rst:2103 msgid "*maxtasksperchild*" -msgstr "" +msgstr "*maxtasksperchild*" -#: ../Doc/library/multiprocessing.rst:2099 +#: ../Doc/library/multiprocessing.rst:2106 msgid "*context*" msgstr "*context*" -#: ../Doc/library/multiprocessing.rst:2104 +#: ../Doc/library/multiprocessing.rst:2111 msgid "" "Worker processes within a :class:`Pool` typically live for the complete " "duration of the Pool's work queue. A frequent pattern found in other systems " @@ -2285,174 +3182,255 @@ msgid "" "one. The *maxtasksperchild* argument to the :class:`Pool` exposes this " "ability to the end user." msgstr "" +"Les processus *workers* à l'intérieur d'une :class:`Pool` vivent par défaut " +"aussi longtemps que la queue de travail du bassin. Un modèle fréquent chez " +"d'autres systèmes (tels qu'Apache, *mod_wsgi*, etc.) pour libérer les " +"ressources détenues par les *workers* est d'autoriser un *worker* dans le " +"bassin à accomplir seulement une certaine charge de travail avant de se " +"fermer, se retrouvant nettoyé et remplacé par un nouvelle processus " +"fraîchement lancé. L'argument *maxtasksperchild* de :class:`Pool` expose " +"cette fonctionnalité à l'utilisateur final." -#: ../Doc/library/multiprocessing.rst:2114 +#: ../Doc/library/multiprocessing.rst:2121 msgid "" "Call *func* with arguments *args* and keyword arguments *kwds*. It blocks " "until the result is ready. Given this blocks, :meth:`apply_async` is better " "suited for performing work in parallel. Additionally, *func* is only " "executed in one of the workers of the pool." msgstr "" +"Appelle *func* avec les arguments *args* et les arguments nommés *kwds*. " +"Bloque jusqu'à ce que que le résultat soit prêt. En raison de ce blocage, :" +"meth:`apply_async` est préférable pour exécuter du travail en parallèle. De " +"plus, *func* est exécutée sur un seul des *workers* du bassin." -#: ../Doc/library/multiprocessing.rst:2121 +#: ../Doc/library/multiprocessing.rst:2128 msgid "A variant of the :meth:`apply` method which returns a result object." msgstr "" +"Une variante de la méthode :meth:`apply` qui renvoie un objet résultat." -#: ../Doc/library/multiprocessing.rst:2123 -#: ../Doc/library/multiprocessing.rst:2148 +#: ../Doc/library/multiprocessing.rst:2130 +#: ../Doc/library/multiprocessing.rst:2159 msgid "" "If *callback* is specified then it should be a callable which accepts a " "single argument. When the result becomes ready *callback* is applied to it, " "that is unless the call failed, in which case the *error_callback* is " "applied instead." msgstr "" +"Si *callback* est précisé alors ce doit être un objet appelable qui accepte " +"un seul argument. Quand le résultat est prêt, *callback* est appelé avec ce " +"résultat, si l'appel n'échoue pas auquel cas *error_callback* est appelé à " +"la place." -#: ../Doc/library/multiprocessing.rst:2128 -#: ../Doc/library/multiprocessing.rst:2153 +#: ../Doc/library/multiprocessing.rst:2135 +#: ../Doc/library/multiprocessing.rst:2164 msgid "" "If *error_callback* is specified then it should be a callable which accepts " "a single argument. If the target function fails, then the *error_callback* " "is called with the exception instance." msgstr "" +"Si *error_callback* est précisé alors ce doit être un objet appelable qui " +"accepte un seul argument. Si la fonction cible échoue, alors " +"*error_callback* est appelé avec l'instance de l'exception." -#: ../Doc/library/multiprocessing.rst:2132 -#: ../Doc/library/multiprocessing.rst:2157 +#: ../Doc/library/multiprocessing.rst:2139 +#: ../Doc/library/multiprocessing.rst:2168 msgid "" "Callbacks should complete immediately since otherwise the thread which " "handles the results will get blocked." msgstr "" +"Les *callbacks* doivent se terminer immédiatement, autrement le fil " +"d'exécution qui gère les résultats se retrouverait bloqué." -#: ../Doc/library/multiprocessing.rst:2137 +#: ../Doc/library/multiprocessing.rst:2144 msgid "" "A parallel equivalent of the :func:`map` built-in function (it supports only " "one *iterable* argument though). It blocks until the result is ready." msgstr "" +"Un équivalent parallèle à la fonction *built-in* :func:`map` (qui ne " +"supporte cependant qu'un *itérable* en argument). Elle bloque jusqu'à ce que " +"le résultat soit prêt." -#: ../Doc/library/multiprocessing.rst:2140 +#: ../Doc/library/multiprocessing.rst:2147 msgid "" "This method chops the iterable into a number of chunks which it submits to " "the process pool as separate tasks. The (approximate) size of these chunks " "can be specified by setting *chunksize* to a positive integer." msgstr "" +"La méthode découpe l'itérable en un nombre de morceaux qu'elle envoie au " +"bassin de processus comme des tâches séparées. La taille (approximative) de " +"ces morceaux peut être précisée en passant à *chunksize* un entier positif." -#: ../Doc/library/multiprocessing.rst:2146 -msgid "A variant of the :meth:`.map` method which returns a result object." +#: ../Doc/library/multiprocessing.rst:2151 +msgid "" +"Note that it may cause high memory usage for very long iterables. Consider " +"using :meth:`imap` or :meth:`imap_unordered` with explicit *chunksize* " +"option for better efficiency." msgstr "" +"Notez que cela peut entraîner une grosse consommation de mémoire pour les " +"itérables très longs. Envisagez d'utiliser :meth:`imap` ou :meth:" +"`imap_unordered` avec l'option *chunksize* explicite pour une meilleure " +"efficacité." -#: ../Doc/library/multiprocessing.rst:2162 -msgid "A lazier version of :meth:`map`." -msgstr "" +#: ../Doc/library/multiprocessing.rst:2157 +msgid "A variant of the :meth:`.map` method which returns a result object." +msgstr "Une variante de la méthode :meth:`.map` qui renvoie un objet résultat." -#: ../Doc/library/multiprocessing.rst:2164 +#: ../Doc/library/multiprocessing.rst:2173 +msgid "A lazier version of :meth:`.map`." +msgstr "Une version paresseuse de :meth:`map`." + +#: ../Doc/library/multiprocessing.rst:2175 msgid "" "The *chunksize* argument is the same as the one used by the :meth:`.map` " "method. For very long iterables using a large value for *chunksize* can " "make the job complete **much** faster than using the default value of ``1``." msgstr "" +"L'argument *chunksize* est le même que celui utilisé par la méthode :meth:`." +"map`. Pour de très longs itérables, utiliser une grande valeur pour " +"*chunksize* peut faire s'exécuter la tâche **beaucoup** plus rapidement " +"qu'en utilisant la valeur par défaut de ``1``." -#: ../Doc/library/multiprocessing.rst:2169 +#: ../Doc/library/multiprocessing.rst:2180 msgid "" "Also if *chunksize* is ``1`` then the :meth:`!next` method of the iterator " "returned by the :meth:`imap` method has an optional *timeout* parameter: " "``next(timeout)`` will raise :exc:`multiprocessing.TimeoutError` if the " "result cannot be returned within *timeout* seconds." msgstr "" +"Aussi, si *chucksize* vaut ``1`` alors la méthode :meth:`!next` de " +"l'itérateur renvoyé par :meth:`imap` prend un paramètre optionnel " +"*timeout* : ``next(timeout)`` lève une :exc:`multiprocessing.TimeoutError` " +"si le résultat ne peut pas être renvoyé avant *timeout* secondes." -#: ../Doc/library/multiprocessing.rst:2176 +#: ../Doc/library/multiprocessing.rst:2187 msgid "" "The same as :meth:`imap` except that the ordering of the results from the " "returned iterator should be considered arbitrary. (Only when there is only " "one worker process is the order guaranteed to be \"correct\".)" msgstr "" +"Identique à :meth:`imap` si ce n'est que l'ordre des résultats de " +"l'itérateur renvoyé doit être considéré comme arbitraire. (L'ordre n'est " +"garanti que quand il n'y a qu'un *worker*.)" -#: ../Doc/library/multiprocessing.rst:2182 +#: ../Doc/library/multiprocessing.rst:2193 msgid "" "Like :meth:`map` except that the elements of the *iterable* are expected to " "be iterables that are unpacked as arguments." msgstr "" +"Semblable à :meth:`map` à l'exception que les éléments d'*iterable* doivent " +"être des itérables qui seront dépaquetés comme arguments pour la fonction." -#: ../Doc/library/multiprocessing.rst:2185 +#: ../Doc/library/multiprocessing.rst:2196 msgid "" "Hence an *iterable* of ``[(1,2), (3, 4)]`` results in ``[func(1,2), " "func(3,4)]``." msgstr "" +"Par conséquent un *iterable* ``[(1,2), (3, 4)]`` donnera pour résultat " +"``[func(1,2), func(3,4)]``." -#: ../Doc/library/multiprocessing.rst:2192 +#: ../Doc/library/multiprocessing.rst:2203 msgid "" "A combination of :meth:`starmap` and :meth:`map_async` that iterates over " "*iterable* of iterables and calls *func* with the iterables unpacked. " "Returns a result object." msgstr "" +"Une combinaison de :meth:`starmap` et :meth:`map_async` qui itère sur " +"*iterable* (composé d'itérables) et appelle *func* pour chaque itérable " +"dépaqueté. Renvoie l'objet résultat." -#: ../Doc/library/multiprocessing.rst:2200 +#: ../Doc/library/multiprocessing.rst:2211 msgid "" "Prevents any more tasks from being submitted to the pool. Once all the " "tasks have been completed the worker processes will exit." msgstr "" +"Empêche de nouvelles tâches d'être envoyées à la *pool*. Les processus " +"*workers* se terminent une fois que toutes les tâches ont été complétées." -#: ../Doc/library/multiprocessing.rst:2205 +#: ../Doc/library/multiprocessing.rst:2216 msgid "" "Stops the worker processes immediately without completing outstanding work. " "When the pool object is garbage collected :meth:`terminate` will be called " "immediately." msgstr "" +"Stoppe immédiatement les processus *workers* sans finaliser les travaux " +"courants. Quand l'objet *pool* est collecté par le ramasse-miettes, sa " +"méthode :meth:`terminate` est appelée immédiatement." -#: ../Doc/library/multiprocessing.rst:2211 +#: ../Doc/library/multiprocessing.rst:2222 msgid "" "Wait for the worker processes to exit. One must call :meth:`close` or :meth:" "`terminate` before using :meth:`join`." msgstr "" +"Attend que les processus *workers* se terminent. Il est nécessaire " +"d'appeler :meth:`close` ou :meth:`terminate` avant d'utiliser :meth:`join`." -#: ../Doc/library/multiprocessing.rst:2214 +#: ../Doc/library/multiprocessing.rst:2225 msgid "" "Pool objects now support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the pool " "object, and :meth:`~contextmanager.__exit__` calls :meth:`terminate`." msgstr "" +"Les bassins de *workers* supportent maintenant le protocole des " +"gestionnaires de contexte -- voir :ref:`typecontextmanager`. :meth:" +"`~contextmanager.__enter__` renvoie l'objet *pool* et :meth:`~contextmanager." +"__exit__` appelle :meth:`terminate`." -#: ../Doc/library/multiprocessing.rst:2222 +#: ../Doc/library/multiprocessing.rst:2233 msgid "" "The class of the result returned by :meth:`Pool.apply_async` and :meth:`Pool." "map_async`." msgstr "" +"La classe des résultats renvoyés par :meth:`Pool.apply_async` et :meth:`Pool." +"map_async`." -#: ../Doc/library/multiprocessing.rst:2227 +#: ../Doc/library/multiprocessing.rst:2238 msgid "" "Return the result when it arrives. If *timeout* is not ``None`` and the " "result does not arrive within *timeout* seconds then :exc:`multiprocessing." "TimeoutError` is raised. If the remote call raised an exception then that " "exception will be reraised by :meth:`get`." msgstr "" +"Renvoie le résultat quand il arrive. Si *timeout* n'est pas ``None`` et que " +"le résultat n'arrive pas avant *timeout* secondes, une :exc:`multiprocessing." +"TimeoutError` est levée. Si l'appel distance lève une exception, alors elle " +"est relayée par :meth:`get`." -#: ../Doc/library/multiprocessing.rst:2234 +#: ../Doc/library/multiprocessing.rst:2245 msgid "Wait until the result is available or until *timeout* seconds pass." msgstr "" +"Attend que le résultat soit disponible ou que *timeout* secondes s'écoulent." -#: ../Doc/library/multiprocessing.rst:2238 +#: ../Doc/library/multiprocessing.rst:2249 msgid "Return whether the call has completed." -msgstr "" +msgstr "Renvoie ``True`` ou ``False`` suivant si la tâche est accomplie." -#: ../Doc/library/multiprocessing.rst:2242 +#: ../Doc/library/multiprocessing.rst:2253 msgid "" "Return whether the call completed without raising an exception. Will raise :" "exc:`AssertionError` if the result is not ready." msgstr "" +"Renvoie ``True`` ou ``False`` suivant si la tâche est accomplie sans lever " +"d'exception. Lève une :exc:`AssertionError` si le résultat n'est pas prêt." -#: ../Doc/library/multiprocessing.rst:2245 +#: ../Doc/library/multiprocessing.rst:2256 msgid "The following example demonstrates the use of a pool::" msgstr "" +"Les exemples suivants présentent l'utilisation d'un bassin de *workers* ::" -#: ../Doc/library/multiprocessing.rst:2272 +#: ../Doc/library/multiprocessing.rst:2283 msgid "Listeners and Clients" -msgstr "" +msgstr "Auditeurs et Clients" -#: ../Doc/library/multiprocessing.rst:2277 +#: ../Doc/library/multiprocessing.rst:2288 msgid "" "Usually message passing between processes is done using queues or by using :" "class:`~Connection` objects returned by :func:`~multiprocessing.Pipe`." msgstr "" +"Habituellement l'échange de messages entre processus est réalisé en " +"utilisant des queues ou des objets :class:`~Connection` renvoyés par :func:" +"`~multiprocessing.Pipe`." -#: ../Doc/library/multiprocessing.rst:2281 +#: ../Doc/library/multiprocessing.rst:2292 msgid "" "However, the :mod:`multiprocessing.connection` module allows some extra " "flexibility. It basically gives a high level message oriented API for " @@ -2460,47 +3438,67 @@ msgid "" "*digest authentication* using the :mod:`hmac` module, and for polling " "multiple connections at the same time." msgstr "" +"Cependant, le module :mod:`multiprocessing.connection` permet un peu plus de " +"flexibilité. Il fournit un message de plus haut-niveau orienté API pour " +"gérer des connecteurs ou des tubes nommés sous Windows. Il gère aussi " +"l'authentification par condensat (*digest authentication* en anglais) en " +"utilisant le module :mod:`hmac`, et pour interroger de multiples connexions " +"en même temps." -#: ../Doc/library/multiprocessing.rst:2290 +#: ../Doc/library/multiprocessing.rst:2301 msgid "" "Send a randomly generated message to the other end of the connection and " "wait for a reply." msgstr "" +"Envoie un message généré aléatoirement à l'autre bout de la connexion et " +"attend une réponse." -#: ../Doc/library/multiprocessing.rst:2293 +#: ../Doc/library/multiprocessing.rst:2304 msgid "" "If the reply matches the digest of the message using *authkey* as the key " "then a welcome message is sent to the other end of the connection. " "Otherwise :exc:`~multiprocessing.AuthenticationError` is raised." msgstr "" +"Si la réponse correspond au condensat du message avec la clé *authkey*, " +"alors un message de bienvenue est envoyé à l'autre bout de la connexion. " +"Autrement, une :exc:`~multiprocessing.AuthenticationError` est levée." -#: ../Doc/library/multiprocessing.rst:2299 +#: ../Doc/library/multiprocessing.rst:2310 msgid "" "Receive a message, calculate the digest of the message using *authkey* as " "the key, and then send the digest back." msgstr "" +"Reçoit un message, calcule le condensat du message en utilisant la clé " +"*authkey*, et envoie le condensat en réponse." -#: ../Doc/library/multiprocessing.rst:2302 +#: ../Doc/library/multiprocessing.rst:2313 msgid "" "If a welcome message is not received, then :exc:`~multiprocessing." "AuthenticationError` is raised." msgstr "" +"Si un message de bienvenue n'est pas reçu, une :exc:`~multiprocessing." +"AuthenticationError` est levée." -#: ../Doc/library/multiprocessing.rst:2307 +#: ../Doc/library/multiprocessing.rst:2318 msgid "" "Attempt to set up a connection to the listener which is using address " "*address*, returning a :class:`~Connection`." msgstr "" +"Essaie d'établir une connexion avec l'auditeur qui utilise l'adresse " +"*address*, renvoie une :class:`~Connection`." -#: ../Doc/library/multiprocessing.rst:2310 +#: ../Doc/library/multiprocessing.rst:2321 msgid "" "The type of the connection is determined by *family* argument, but this can " "generally be omitted since it can usually be inferred from the format of " "*address*. (See :ref:`multiprocessing-address-formats`)" msgstr "" +"Le type de la connexion est déterminé par l'argument *family*, mais il peut " +"généralement être omis puisqu'il peut être inféré depuis le format " +"d'*address*. (Voir :ref:`multiprocessing-address-formats`)" -#: ../Doc/library/multiprocessing.rst:2314 -#: ../Doc/library/multiprocessing.rst:2349 +#: ../Doc/library/multiprocessing.rst:2325 +#: ../Doc/library/multiprocessing.rst:2360 msgid "" "If *authkey* is given and not None, it should be a byte string and will be " "used as the secret key for an HMAC-based authentication challenge. No " @@ -2508,27 +3506,39 @@ msgid "" "AuthenticationError` is raised if authentication fails. See :ref:" "`multiprocessing-auth-keys`." msgstr "" +"Si *authkey* est passée et n'est pas ``None``, elle doit être une chaîne " +"d'octets et sera utilisée comme clé secrète pour le défi d'authentification " +"basé sur HMAC. Aucune authentification n'est réalisée si *authkey* est " +"``None``. Une :exc:`~multiprocessing.AuthenticationError` est levée si " +"l'authentification échoue. Voir :ref:`multiprocessing-auth-keys`." -#: ../Doc/library/multiprocessing.rst:2322 +#: ../Doc/library/multiprocessing.rst:2333 msgid "" "A wrapper for a bound socket or Windows named pipe which is 'listening' for " "connections." msgstr "" +"Une enveloppe autour d'un connecteur lié ou un tube nommé sous Windows qui " +"écoute pour des connexions." -#: ../Doc/library/multiprocessing.rst:2325 +#: ../Doc/library/multiprocessing.rst:2336 msgid "" "*address* is the address to be used by the bound socket or named pipe of the " "listener object." msgstr "" +"*address* est l'adresse à utiliser par le connecteur lié ou le tube nommé de " +"l'objet auditeur." -#: ../Doc/library/multiprocessing.rst:2330 +#: ../Doc/library/multiprocessing.rst:2341 msgid "" "If an address of '0.0.0.0' is used, the address will not be a connectable " "end point on Windows. If you require a connectable end-point, you should use " "'127.0.0.1'." msgstr "" +"Si une adresse '0.0.0.0' est utilisée, l'adresse ne sera pas un point " +"d'accès connectable sous Windows. Si vous avez besoin d'un point d'accès " +"connectable, utilisez '127.0.0.1'." -#: ../Doc/library/multiprocessing.rst:2334 +#: ../Doc/library/multiprocessing.rst:2345 msgid "" "*family* is the type of socket (or named pipe) to use. This can be one of " "the strings ``'AF_INET'`` (for a TCP socket), ``'AF_UNIX'`` (for a Unix " @@ -2541,50 +3551,77 @@ msgid "" "then the socket will be created in a private temporary directory created " "using :func:`tempfile.mkstemp`." msgstr "" +"*family* est le type de connecteur (ou tube nommé) à utiliser. Cela peut " +"être l'une des chaînes ``'AF_INET'`` (pour un connecteur TCP), ``'AF_UNIX'`` " +"(pour un connecteur Unix) ou ``'AF_PIPE'`` (pour un tube nommé sous " +"Windows). Seulement le premier d'entre eux est garanti d'être disponible. Si " +"*family* est ``None``, la famille est inférée depuis le format d'*address*. " +"Si *address* est aussi ``None``, la famille par défaut est utilisée. La " +"famille par défaut est supposée être la plus rapide disponible. Voir :ref:" +"`multiprocessing-address-formats`. Notez que si la *family* est " +"``'AF_UNIX'`` et qu'*address* est ``None``, le connecteur est créé dans un " +"répertoire temporaire privé créé avec :func:`tempfile.mkstemp`." -#: ../Doc/library/multiprocessing.rst:2345 +#: ../Doc/library/multiprocessing.rst:2356 msgid "" "If the listener object uses a socket then *backlog* (1 by default) is passed " "to the :meth:`~socket.socket.listen` method of the socket once it has been " "bound." msgstr "" +"Si l'objet auditeur utilise un connecteur alors *backlog* (1 par défaut) est " +"passé à la méthode :meth:`~socket.socket.listen` du connecteur une fois " +"qu'il a été lié." -#: ../Doc/library/multiprocessing.rst:2357 +#: ../Doc/library/multiprocessing.rst:2368 msgid "" "Accept a connection on the bound socket or named pipe of the listener object " "and return a :class:`~Connection` object. If authentication is attempted and " "fails, then :exc:`~multiprocessing.AuthenticationError` is raised." msgstr "" +"Accepte une connexion sur le connecteur lié ou le tube nommé de l'objet " +"auditeur et renvoie un objet :class:`~Connection`. Si la tentative " +"d'authentification échoue, une :exc:`~multiprocessing.AuthenticationError` " +"est levée." -#: ../Doc/library/multiprocessing.rst:2364 +#: ../Doc/library/multiprocessing.rst:2375 msgid "" "Close the bound socket or named pipe of the listener object. This is called " "automatically when the listener is garbage collected. However it is " "advisable to call it explicitly." msgstr "" +"Ferme le connecteur lié ou le tube nommé de l'objet auditeur. La méthode est " +"appelée automatiquement quand l'auditeur est collecté par le ramasse-" +"miettes. Il est cependant conseillé de l'appeler explicitement." -#: ../Doc/library/multiprocessing.rst:2368 +#: ../Doc/library/multiprocessing.rst:2379 msgid "Listener objects have the following read-only properties:" msgstr "" +"Les objets auditeurs ont aussi les propriétés en lecture seule suivantes :" -#: ../Doc/library/multiprocessing.rst:2372 +#: ../Doc/library/multiprocessing.rst:2383 msgid "The address which is being used by the Listener object." -msgstr "" +msgstr "L'adresse utilisée par l'objet auditeur." -#: ../Doc/library/multiprocessing.rst:2376 +#: ../Doc/library/multiprocessing.rst:2387 msgid "" "The address from which the last accepted connection came. If this is " "unavailable then it is ``None``." msgstr "" +"L'adresse depuis laquelle a été établie la dernière connexion. ``None`` si " +"aucune n'est disponible." -#: ../Doc/library/multiprocessing.rst:2379 +#: ../Doc/library/multiprocessing.rst:2390 msgid "" "Listener objects now support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " "listener object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." msgstr "" +"Les objets auditeurs supportent maintenant le protocole des gestionnaires de " +"contexte -- voir :ref:`typecontextmanager`. :meth:`~contextmanager." +"__enter__` renvoie l'objet auditeur, et :meth:`~contextmanager.__exit__` " +"appelle :meth:`close`." -#: ../Doc/library/multiprocessing.rst:2386 +#: ../Doc/library/multiprocessing.rst:2397 msgid "" "Wait till an object in *object_list* is ready. Returns the list of those " "objects in *object_list* which are ready. If *timeout* is a float then the " @@ -2592,41 +3629,58 @@ msgid "" "will block for an unlimited period. A negative timeout is equivalent to a " "zero timeout." msgstr "" +"Attend qu'un objet d'*object_list* soit prêt. Renvoie la liste de ces objets " +"d'*object_list* qui sont prêts. Si *timeout* est un nombre flottant, l'appel " +"bloquera au maximum ce nombre de secondes. Si *timeout* est ``None``, " +"l'appelle bloquera pour une durée non limitée. Un *timeout* négatif est " +"équivalent à un *timeout* nul." -#: ../Doc/library/multiprocessing.rst:2392 +#: ../Doc/library/multiprocessing.rst:2403 msgid "" "For both Unix and Windows, an object can appear in *object_list* if it is" msgstr "" +"Pour Unix et Windows, un objet peut apparaître dans *object_list* s'il est" -#: ../Doc/library/multiprocessing.rst:2395 +#: ../Doc/library/multiprocessing.rst:2406 msgid "a readable :class:`~multiprocessing.connection.Connection` object;" msgstr "" +"un objet :class:`~multiprocessing.connection.Connection` accessible en " +"lecture ;" -#: ../Doc/library/multiprocessing.rst:2396 +#: ../Doc/library/multiprocessing.rst:2407 msgid "a connected and readable :class:`socket.socket` object; or" -msgstr "" +msgstr "un objet :class:`socket.socket` connecté et accessible en lecture ; ou" -#: ../Doc/library/multiprocessing.rst:2397 +#: ../Doc/library/multiprocessing.rst:2408 msgid "" "the :attr:`~multiprocessing.Process.sentinel` attribute of a :class:" "`~multiprocessing.Process` object." msgstr "" +"l'attribut :attr:`~multiprocessing.Process.sentinel` d'un objet :class:" +"`~multiprocessing.Process`." -#: ../Doc/library/multiprocessing.rst:2400 +#: ../Doc/library/multiprocessing.rst:2411 msgid "" "A connection or socket object is ready when there is data available to be " "read from it, or the other end has been closed." msgstr "" +"Une connexion (*socket* en anglais) est prête quand il y a des données " +"disponibles en lecture dessus, ou que l'autre bout a été fermé." -#: ../Doc/library/multiprocessing.rst:2403 +#: ../Doc/library/multiprocessing.rst:2414 msgid "" "**Unix**: ``wait(object_list, timeout)`` almost equivalent ``select." "select(object_list, [], [], timeout)``. The difference is that, if :func:" "`select.select` is interrupted by a signal, it can raise :exc:`OSError` with " "an error number of ``EINTR``, whereas :func:`wait` will not." msgstr "" +"**Unix**: ``wait(object_list, timeout)`` est en grande partie équivalente à " +"``select.select(object_list, [], [], timeout)``. La différence est que, si :" +"func:`select.select` est interrompue par un signal, elle peut lever une :exc:" +"`OSError` avec un numéro d'erreur ``EINTR``, alors que :func:`wait` ne le " +"fera pas." -#: ../Doc/library/multiprocessing.rst:2409 +#: ../Doc/library/multiprocessing.rst:2420 msgid "" "**Windows**: An item in *object_list* must either be an integer handle which " "is waitable (according to the definition used by the documentation of the " @@ -2634,85 +3688,117 @@ msgid "" "meth:`fileno` method which returns a socket handle or pipe handle. (Note " "that pipe handles and socket handles are **not** waitable handles.)" msgstr "" +"**Windows** : un élément d'*object_list* doit être soit un identifiant " +"*waitable* (en accord avec la définition utilisée par la documentation de la " +"fonction Win32 ``WaitForMultipleObjects()``), soit un objet avec une " +"méthode :meth:`fileno` qui renvoie un identifiant de connecteur ou de tube " +"(notez que les identifiants de tubes et de connecteurs **ne sont pas** des " +"identifiants *waitables*)." -#: ../Doc/library/multiprocessing.rst:2419 +#: ../Doc/library/multiprocessing.rst:2430 msgid "**Examples**" -msgstr "" +msgstr "**Exemples**" -#: ../Doc/library/multiprocessing.rst:2421 +#: ../Doc/library/multiprocessing.rst:2432 msgid "" "The following server code creates a listener which uses ``'secret " "password'`` as an authentication key. It then waits for a connection and " "sends some data to the client::" msgstr "" +"Le code serveur suivant crée un auditeur qui utilise ``'secret password'`` " +"comme clé d'authentification. Il attend ensuite une connexion et envoie les " +"données au client ::" -#: ../Doc/library/multiprocessing.rst:2440 +#: ../Doc/library/multiprocessing.rst:2451 msgid "" "The following code connects to the server and receives some data from the " "server::" -msgstr "" +msgstr "Le code suivant se connecte au serveur et en reçoit des données ::" -#: ../Doc/library/multiprocessing.rst:2457 +#: ../Doc/library/multiprocessing.rst:2468 msgid "" "The following code uses :func:`~multiprocessing.connection.wait` to wait for " "messages from multiple processes at once::" msgstr "" +"Le code suivant utilise :func:`~multiprocessing.connection.wait` pour " +"attendre des messages depuis plusieurs processus à la fois ::" -#: ../Doc/library/multiprocessing.rst:2496 +#: ../Doc/library/multiprocessing.rst:2507 msgid "Address Formats" -msgstr "" +msgstr "Formats d'adresses" -#: ../Doc/library/multiprocessing.rst:2498 +#: ../Doc/library/multiprocessing.rst:2509 msgid "" "An ``'AF_INET'`` address is a tuple of the form ``(hostname, port)`` where " "*hostname* is a string and *port* is an integer." msgstr "" +"Une adresse ``'AF_INET'`` est un *tuple* de la forme ``(hostname, port)`` où " +"*hostname* est une chaîne et *port* un entier." -#: ../Doc/library/multiprocessing.rst:2501 +#: ../Doc/library/multiprocessing.rst:2512 msgid "" "An ``'AF_UNIX'`` address is a string representing a filename on the " "filesystem." msgstr "" +"Une adresse ``'AF_UNIX'`` est une chaîne représentant un nom de fichier sur " +"le système de fichiers." -#: ../Doc/library/multiprocessing.rst:2507 +#: ../Doc/library/multiprocessing.rst:2518 msgid "An ``'AF_PIPE'`` address is a string of the form" -msgstr "" +msgstr "Une adresse ``'AF_PIPE'`` est une chaîne de la forme" -#: ../Doc/library/multiprocessing.rst:2505 +#: ../Doc/library/multiprocessing.rst:2516 msgid "" ":samp:`r'\\\\\\\\.\\\\pipe\\\\{PipeName}'`. To use :func:`Client` to " "connect to a named pipe on a remote computer called *ServerName* one should " "use an address of the form :samp:`r'\\\\\\\\{ServerName}\\\\pipe\\" "\\{PipeName}'` instead." msgstr "" +":samp:`r'\\\\\\\\.\\\\pipe\\\\{PipeName}'`. Pour utiliser un :func:`Client` " +"pour se connecter à un tube nommé sur une machine distante appelée " +"*ServerName*, il faut plutôt utiliser une adresse de la forme :samp:`r'\\\\\\" +"\\{ServerName}\\\\pipe\\\\{PipeName}'`." -#: ../Doc/library/multiprocessing.rst:2509 +#: ../Doc/library/multiprocessing.rst:2520 msgid "" "Note that any string beginning with two backslashes is assumed by default to " "be an ``'AF_PIPE'`` address rather than an ``'AF_UNIX'`` address." msgstr "" +"Notez que toute chaîne commençant par deux antislashs est considérée par " +"défaut comme l'adresse d'un ``'AF_PIPE'`` plutôt qu'une adresse " +"``'AF_UNIX'``." -#: ../Doc/library/multiprocessing.rst:2516 +#: ../Doc/library/multiprocessing.rst:2527 msgid "Authentication keys" -msgstr "" +msgstr "Clés d'authentification" -#: ../Doc/library/multiprocessing.rst:2518 +#: ../Doc/library/multiprocessing.rst:2529 msgid "" "When one uses :meth:`Connection.recv `, the data received " "is automatically unpickled. Unfortunately unpickling data from an untrusted " "source is a security risk. Therefore :class:`Listener` and :func:`Client` " "use the :mod:`hmac` module to provide digest authentication." msgstr "" +"Quand :meth:`Connection.recv ` est utilisée, les données " +"reçues sont automatiquement désérialisées par *pickle*. Malheureusement " +"désérialiser des données depuis une source non sûre constitue un risque de " +"sécurité. Par conséquent :class:`Listener` et :func:`Client` utilisent le " +"module :mod:`hmac` pour fournir une authentification par condensat." -#: ../Doc/library/multiprocessing.rst:2524 +#: ../Doc/library/multiprocessing.rst:2535 msgid "" "An authentication key is a byte string which can be thought of as a " "password: once a connection is established both ends will demand proof that " "the other knows the authentication key. (Demonstrating that both ends are " "using the same key does **not** involve sending the key over the connection.)" msgstr "" +"Une clé d'authentification est une chaîne d'octets qui peut être vue comme " +"un mot de passe : quand une connexion est établie, les deux interlocuteurs " +"vont demander à l'autre une preuve qu'il connaît la clé d'authentification. " +"(Démontrer que les deux utilisent la même clé n'implique **pas** d'échanger " +"la clé sur la connexion.)" -#: ../Doc/library/multiprocessing.rst:2530 +#: ../Doc/library/multiprocessing.rst:2541 msgid "" "If authentication is requested but no authentication key is specified then " "the return value of ``current_process().authkey`` is used (see :class:" @@ -2722,134 +3808,177 @@ msgid "" "program will share a single authentication key which can be used when " "setting up connections between themselves." msgstr "" +"Si l'authentification est requise et qu'aucune clé n'est spécifiée alors la " +"valeur de retour de ``current_process().authkey`` est utilisée (voir :class:" +"`~multiprocessing.Process`). Celle valeur est automatiquement héritée par " +"tout objet :class:`~multiprocessing.Process` créé par le processus courant. " +"Cela signifie que (par défaut) tous les processus d'un programme multi-" +"processus partageront une clé d'authentification unique qui peut être " +"utilisée pour mettre en place des connexions entre-eux." -#: ../Doc/library/multiprocessing.rst:2538 +#: ../Doc/library/multiprocessing.rst:2549 msgid "" "Suitable authentication keys can also be generated by using :func:`os." "urandom`." msgstr "" +"Des clés d'authentification adaptées peuvent aussi être générées par :func:" +"`os.urandom`." -#: ../Doc/library/multiprocessing.rst:2542 +#: ../Doc/library/multiprocessing.rst:2553 msgid "Logging" msgstr "Journalisation" -#: ../Doc/library/multiprocessing.rst:2544 +#: ../Doc/library/multiprocessing.rst:2555 msgid "" "Some support for logging is available. Note, however, that the :mod:" "`logging` package does not use process shared locks so it is possible " "(depending on the handler type) for messages from different processes to get " "mixed up." msgstr "" +"Un certain support de la journalisation est disponible. Notez cependant que " +"le le paquet :mod:`logging` n'utilise pas de verrous partagés entre les " +"processus et il est donc possible (dépendant du type de gestionnaire) que " +"les messages de différents processus soient mélangés." -#: ../Doc/library/multiprocessing.rst:2551 +#: ../Doc/library/multiprocessing.rst:2562 msgid "" "Returns the logger used by :mod:`multiprocessing`. If necessary, a new one " "will be created." msgstr "" +"Renvoie le journaliseur utilisé par :mod:`multiprocessing`. Si nécessaire, " +"un nouveau sera créé." -#: ../Doc/library/multiprocessing.rst:2554 +#: ../Doc/library/multiprocessing.rst:2565 msgid "" "When first created the logger has level :data:`logging.NOTSET` and no " "default handler. Messages sent to this logger will not by default propagate " "to the root logger." msgstr "" +"À sa première création le journaliseur a pour niveau :data:`logging.NOTSET` " +"et pas de gestionnaire par défaut. Les messages envoyés à ce journaliseur ne " +"seront pas propagés par défaut au journaliseur principal." -#: ../Doc/library/multiprocessing.rst:2558 +#: ../Doc/library/multiprocessing.rst:2569 msgid "" "Note that on Windows child processes will only inherit the level of the " "parent process's logger -- any other customization of the logger will not be " "inherited." msgstr "" +"Notez que sous Windows les processus fils n'hériteront que du niveau du " +"journaliseur du processus parent -- toute autre personnalisation du " +"journaliseur ne sera pas héritée." -#: ../Doc/library/multiprocessing.rst:2565 +#: ../Doc/library/multiprocessing.rst:2576 msgid "" "This function performs a call to :func:`get_logger` but in addition to " "returning the logger created by get_logger, it adds a handler which sends " "output to :data:`sys.stderr` using format ``'[%(levelname)s/%(processName)s] " "%(message)s'``." msgstr "" +"Cette fonction effectue un appel à :func:`get_logger` mais en plus de " +"renvoyer le journaliseur créé par *get_logger*, elle ajoute un gestionnaire " +"qui envoie la sortie sur :data:`sys.stderr` en utilisant le format " +"``'[%(levelname)s/%(processName)s] %(message)s'``." -#: ../Doc/library/multiprocessing.rst:2570 +#: ../Doc/library/multiprocessing.rst:2581 msgid "Below is an example session with logging turned on::" msgstr "" +"L'exemple ci-dessous présente une session avec la journalisation activée ::" -#: ../Doc/library/multiprocessing.rst:2585 +#: ../Doc/library/multiprocessing.rst:2596 msgid "For a full table of logging levels, see the :mod:`logging` module." msgstr "" +"Pour un tableau complet des niveaux de journalisation, voir le module :mod:" +"`logging`." -#: ../Doc/library/multiprocessing.rst:2589 +#: ../Doc/library/multiprocessing.rst:2600 msgid "The :mod:`multiprocessing.dummy` module" -msgstr "" +msgstr "Le module :mod:`multiprocessing.dummy`" -#: ../Doc/library/multiprocessing.rst:2594 +#: ../Doc/library/multiprocessing.rst:2605 msgid "" ":mod:`multiprocessing.dummy` replicates the API of :mod:`multiprocessing` " "but is no more than a wrapper around the :mod:`threading` module." msgstr "" +":mod:`multiprocessing.dummy` réplique toute l'API de :mod:`multiprocessing` " +"mais n'est rien de plus qu'un *wrapper* autour du module :mod:`threading`." -#: ../Doc/library/multiprocessing.rst:2601 +#: ../Doc/library/multiprocessing.rst:2612 msgid "Programming guidelines" -msgstr "" +msgstr "Lignes directrices de programmation" -#: ../Doc/library/multiprocessing.rst:2603 +#: ../Doc/library/multiprocessing.rst:2614 msgid "" "There are certain guidelines and idioms which should be adhered to when " "using :mod:`multiprocessing`." msgstr "" +"Il y a certaines lignes directrices et idiomes auxquels il faut adhérer en " +"utilisant :mod:`multiprocessing`." -#: ../Doc/library/multiprocessing.rst:2608 +#: ../Doc/library/multiprocessing.rst:2619 msgid "All start methods" -msgstr "" +msgstr "Toutes les méthodes de démarrage" -#: ../Doc/library/multiprocessing.rst:2610 +#: ../Doc/library/multiprocessing.rst:2621 msgid "The following applies to all start methods." -msgstr "" +msgstr "Les règles suivantes s'appliquent aux méthodes de démarrage." -#: ../Doc/library/multiprocessing.rst:2612 +#: ../Doc/library/multiprocessing.rst:2623 msgid "Avoid shared state" -msgstr "" +msgstr "Éviter les états partagés" -#: ../Doc/library/multiprocessing.rst:2614 +#: ../Doc/library/multiprocessing.rst:2625 msgid "" "As far as possible one should try to avoid shifting large amounts of data " "between processes." msgstr "" +"Autant que possible, vous devriez éviter de déplacer de larges données entre " +"les processus." -#: ../Doc/library/multiprocessing.rst:2617 +#: ../Doc/library/multiprocessing.rst:2628 msgid "" "It is probably best to stick to using queues or pipes for communication " "between processes rather than using the lower level synchronization " "primitives." msgstr "" +"Il est probablement meilleur de s'en tenir à l'utilisation de queues et " +"tubes pour la communication entre processus plutôt que d'utiliser des " +"primitives de synchronisation plus bas-niveau." -#: ../Doc/library/multiprocessing.rst:2621 +#: ../Doc/library/multiprocessing.rst:2632 msgid "Picklability" -msgstr "" +msgstr "Sérialisation" -#: ../Doc/library/multiprocessing.rst:2623 +#: ../Doc/library/multiprocessing.rst:2634 msgid "Ensure that the arguments to the methods of proxies are picklable." msgstr "" +"Assurez-vous que les arguments passés aux méthodes des mandataires soient " +"sérialisables (*pickables*)." -#: ../Doc/library/multiprocessing.rst:2625 +#: ../Doc/library/multiprocessing.rst:2636 msgid "Thread safety of proxies" -msgstr "" +msgstr "Sûreté des mandataires à travers les fils d'exécution" -#: ../Doc/library/multiprocessing.rst:2627 +#: ../Doc/library/multiprocessing.rst:2638 msgid "" "Do not use a proxy object from more than one thread unless you protect it " "with a lock." msgstr "" +"N'utilisez pas d'objet mandataire depuis plus d'un fil d'exécution à moins " +"que vous ne le protégiez avec un verrou." -#: ../Doc/library/multiprocessing.rst:2630 +#: ../Doc/library/multiprocessing.rst:2641 msgid "" "(There is never a problem with different processes using the *same* proxy.)" msgstr "" +"(Il n'y a jamais de problème avec plusieurs processus utilisant un *même* " +"mandataire.)" -#: ../Doc/library/multiprocessing.rst:2632 +#: ../Doc/library/multiprocessing.rst:2643 msgid "Joining zombie processes" -msgstr "" +msgstr "Attendre les processus zombies" -#: ../Doc/library/multiprocessing.rst:2634 +#: ../Doc/library/multiprocessing.rst:2645 msgid "" "On Unix when a process finishes but has not been joined it becomes a zombie. " "There should never be very many because each time a new process starts (or :" @@ -2859,12 +3988,20 @@ msgid "" "join the process. Even so it is probably good practice to explicitly join " "all the processes that you start." msgstr "" +"Sous Unix quand un processus se termine mais n'est pas attendu, il devient " +"un zombie. Il ne devrait jamais y en avoir beaucoup parce que chaque fois " +"qu'un nouveau processus démarre (ou que :func:`~multiprocessing." +"active_children` est appelée) tous les processus complétés qui n'ont pas été " +"attendus le seront. Aussi appeler la méthode :meth:`Process.is_alive " +"` d'un processus terminé attendra le " +"processus. Toutefois il est probablement une bonne pratique d'attendre " +"explicitement tous les processus que vous démarrez." -#: ../Doc/library/multiprocessing.rst:2642 +#: ../Doc/library/multiprocessing.rst:2653 msgid "Better to inherit than pickle/unpickle" -msgstr "" +msgstr "Préférez hériter que sérialiser/désérialiser" -#: ../Doc/library/multiprocessing.rst:2644 +#: ../Doc/library/multiprocessing.rst:2655 msgid "" "When using the *spawn* or *forkserver* start methods many types from :mod:" "`multiprocessing` need to be picklable so that child processes can use " @@ -2873,31 +4010,45 @@ msgid "" "that a process which needs access to a shared resource created elsewhere can " "inherit it from an ancestor process." msgstr "" +"Quand vous utilisez les méthodes de démarrage *spawn* ou *forkserver*, de " +"nombreux types de :mod:`multiprocessing` nécessitent d'être sérialisées pour " +"que les processus enfants puissent les utiliser. Cependant, il faut " +"généralement éviter d'envoyer des objets partagés aux autres processus en " +"utilisant des tubes ou des queues. Vous devriez plutôt vous arranger pour " +"qu'un processus qui nécessite l'accès à une ressource partagée créée autre " +"part qu'il en hérite depuis un de ses processus ancêtres." -#: ../Doc/library/multiprocessing.rst:2652 +#: ../Doc/library/multiprocessing.rst:2663 msgid "Avoid terminating processes" -msgstr "" +msgstr "Éviter de terminer les processus" -#: ../Doc/library/multiprocessing.rst:2654 +#: ../Doc/library/multiprocessing.rst:2665 msgid "" "Using the :meth:`Process.terminate ` " "method to stop a process is liable to cause any shared resources (such as " "locks, semaphores, pipes and queues) currently being used by the process to " "become broken or unavailable to other processes." msgstr "" +"Utiliser la méthode :meth:`Process.terminate ` pour stopper un processus risque de casser ou de rendre " +"indisponible aux autres processus des ressources partagées (comme des " +"verrous, sémaphores, tubes et queues) actuellement utilisée par le processus." -#: ../Doc/library/multiprocessing.rst:2660 +#: ../Doc/library/multiprocessing.rst:2671 msgid "" "Therefore it is probably best to only consider using :meth:`Process." "terminate ` on processes which never use " "any shared resources." msgstr "" +"Il est donc probablement préférable de n'utiliser :meth:`Process.terminate " +"` que sur les processus qui n'utilisent " +"jamais de ressources partagées." -#: ../Doc/library/multiprocessing.rst:2664 +#: ../Doc/library/multiprocessing.rst:2675 msgid "Joining processes that use queues" -msgstr "" +msgstr "Attendre les processus qui utilisent des queues" -#: ../Doc/library/multiprocessing.rst:2666 +#: ../Doc/library/multiprocessing.rst:2677 msgid "" "Bear in mind that a process that has put items in a queue will wait before " "terminating until all the buffered items are fed by the \"feeder\" thread to " @@ -2905,8 +4056,14 @@ msgid "" "cancel_join_thread ` method of the " "queue to avoid this behaviour.)" msgstr "" +"Gardez à l'esprit qu'un processus qui a placé des éléments dans une queue " +"attendra que tous les éléments mis en tampon soient consommés par le fil " +"d'exécution « consommateur » du tube sous-jacent avant de se terminer. (Le " +"processus enfant peut appeler la méthode :meth:`Queue.cancel_join_thread " +"` de la queue pour éviter ce " +"comportement.)" -#: ../Doc/library/multiprocessing.rst:2672 +#: ../Doc/library/multiprocessing.rst:2683 msgid "" "This means that whenever you use a queue you need to make sure that all " "items which have been put on the queue will eventually be removed before the " @@ -2914,30 +4071,42 @@ msgid "" "put items on the queue will terminate. Remember also that non-daemonic " "processes will be joined automatically." msgstr "" +"Cela signifie que chaque fois que vous utilisez une queue vous devez vous " +"assurer que tous les éléments qui y ont été placés seront effectivement " +"supprimés avant que le processus ne soit attendu. Autrement vous ne pouvez " +"pas être sûr que les processus qui ont placé des éléments dans la queue se " +"termineront. Souvenez-vous aussi que tous les processus non *daemons* seront " +"attendus automatiquement." -#: ../Doc/library/multiprocessing.rst:2678 +#: ../Doc/library/multiprocessing.rst:2689 msgid "An example which will deadlock is the following::" -msgstr "" +msgstr "L'exemple suivant provoquera un interblocage ::" -#: ../Doc/library/multiprocessing.rst:2692 +#: ../Doc/library/multiprocessing.rst:2703 msgid "" "A fix here would be to swap the last two lines (or simply remove the ``p." "join()`` line)." msgstr "" +"Une solution ici serait d'intervertir les deux dernières lignes (ou " +"simplement supprimer la ligne ``p.join()``)." -#: ../Doc/library/multiprocessing.rst:2695 +#: ../Doc/library/multiprocessing.rst:2706 msgid "Explicitly pass resources to child processes" -msgstr "" +msgstr "Passer explicitement les ressources aux processus fils" -#: ../Doc/library/multiprocessing.rst:2697 +#: ../Doc/library/multiprocessing.rst:2708 msgid "" "On Unix using the *fork* start method, a child process can make use of a " "shared resource created in a parent process using a global resource. " "However, it is better to pass the object as an argument to the constructor " "for the child process." msgstr "" +"Sous Unix en utilisant la méthode de démarrage *fork*, un processus fils " +"peut utiliser une ressource partagée créée par un processus parent en " +"utilisant une ressource globale. Cependant, il est préférable de passer " +"l'objet en argument au constructeur du processus fils." -#: ../Doc/library/multiprocessing.rst:2702 +#: ../Doc/library/multiprocessing.rst:2713 msgid "" "Apart from making the code (potentially) compatible with Windows and the " "other start methods this also ensures that as long as the child process is " @@ -2945,30 +4114,40 @@ msgid "" "This might be important if some resource is freed when the object is garbage " "collected in the parent process." msgstr "" +"En plus de rendre le code (potentiellement) compatible avec Windows et les " +"autres méthodes de démarrage, cela assure aussi que tant que le processus " +"fils est en vie, l'objet ne sera pas collecté par le ramasse-miettes du " +"processus parent. Cela peut être important si certaines ressources sont " +"libérées quand l'objet est collecté par le ramasse-miettes du processus " +"parent." -#: ../Doc/library/multiprocessing.rst:2709 +#: ../Doc/library/multiprocessing.rst:2720 msgid "So for instance ::" -msgstr "" +msgstr "Donc par exemple ::" -#: ../Doc/library/multiprocessing.rst:2721 +#: ../Doc/library/multiprocessing.rst:2732 msgid "should be rewritten as ::" -msgstr "" +msgstr "devrait être réécrit comme ::" -#: ../Doc/library/multiprocessing.rst:2733 +#: ../Doc/library/multiprocessing.rst:2744 msgid "Beware of replacing :data:`sys.stdin` with a \"file like object\"" msgstr "" +"Faire attention à remplacer :data:`sys.stdin` par un objet « *file-like* »" -#: ../Doc/library/multiprocessing.rst:2735 +#: ../Doc/library/multiprocessing.rst:2746 msgid ":mod:`multiprocessing` originally unconditionally called::" -msgstr "" +msgstr "À l'origine, :mod:`multiprocessing` appelait inconditionnellement ::" -#: ../Doc/library/multiprocessing.rst:2739 +#: ../Doc/library/multiprocessing.rst:2750 msgid "" "in the :meth:`multiprocessing.Process._bootstrap` method --- this resulted " "in issues with processes-in-processes. This has been changed to::" msgstr "" +"dans la méthode :meth:`multiprocessing.Process._bootstrap` --- cela " +"provoquait des problèmes avec les processus imbriqués. Cela peut être changé " +"en ::" -#: ../Doc/library/multiprocessing.rst:2745 +#: ../Doc/library/multiprocessing.rst:2756 msgid "" "Which solves the fundamental issue of processes colliding with each other " "resulting in a bad file descriptor error, but introduces a potential danger " @@ -2977,114 +4156,156 @@ msgid "" "`~io.IOBase.close()` on this file-like object, it could result in the same " "data being flushed to the object multiple times, resulting in corruption." msgstr "" +"Qui résout le problème fondamental des collisions entre processus provoquant " +"des erreurs de mauvais descripteurs de fichiers, mais introduit un potentiel " +"danger pour les applications qui remplacent :func:`sys.stdin` avec un " +"« *file-like object* » ayant une sortie *bufferisée*. Ce danger est que si " +"plusieurs processus appellent :meth:`~io.IOBase.close()` sur cet objet *file-" +"like*, cela peut amener les données à être transmises à l'objet à plusieurs " +"reprises, résultant en une corruption." -#: ../Doc/library/multiprocessing.rst:2752 +#: ../Doc/library/multiprocessing.rst:2763 msgid "" "If you write a file-like object and implement your own caching, you can make " "it fork-safe by storing the pid whenever you append to the cache, and " "discarding the cache when the pid changes. For example::" msgstr "" +"Si vous écrivez un objet *file-like* et implémentez votre propre cache, vous " +"pouvez le rendre sûr pour les *forks* en stockant le *pid* chaque fois que " +"vous ajoutez des données au cache, et annulez le cache quand le *pip* " +"change. Par exemple ::" -#: ../Doc/library/multiprocessing.rst:2764 +#: ../Doc/library/multiprocessing.rst:2775 msgid "" "For more information, see :issue:`5155`, :issue:`5313` and :issue:`5331`" msgstr "" +"Pour plus d'informations, voir :issue:`5155`, :issue:`5313` et :issue:`5331`" -#: ../Doc/library/multiprocessing.rst:2767 +#: ../Doc/library/multiprocessing.rst:2778 msgid "The *spawn* and *forkserver* start methods" -msgstr "" +msgstr "Les méthodes de démarrage *spawn* et *forkserver*" -#: ../Doc/library/multiprocessing.rst:2769 +#: ../Doc/library/multiprocessing.rst:2780 msgid "" "There are a few extra restriction which don't apply to the *fork* start " "method." msgstr "" +"Certaines restrictions ne s'appliquent pas à la méthode de démarrage *fork*." -#: ../Doc/library/multiprocessing.rst:2772 +#: ../Doc/library/multiprocessing.rst:2783 msgid "More picklability" -msgstr "" +msgstr "Plus de sérialisation" -#: ../Doc/library/multiprocessing.rst:2774 +#: ../Doc/library/multiprocessing.rst:2785 msgid "" "Ensure that all arguments to :meth:`Process.__init__` are picklable. Also, " "if you subclass :class:`~multiprocessing.Process` then make sure that " "instances will be picklable when the :meth:`Process.start ` method is called." msgstr "" +"Assurez-vous que tous les argument de :meth:`Process.__init__` sont " +"sérialisables avec *pickle*. Aussi, si vous héritez de :class:" +"`~multiprocessing.Process`, assurez-vous que toutes les instances sont " +"sérialisables quand la méthode :meth:`Process.start ` est appelée." -#: ../Doc/library/multiprocessing.rst:2779 +#: ../Doc/library/multiprocessing.rst:2790 msgid "Global variables" -msgstr "" +msgstr "Variables globales" -#: ../Doc/library/multiprocessing.rst:2781 +#: ../Doc/library/multiprocessing.rst:2792 msgid "" "Bear in mind that if code run in a child process tries to access a global " "variable, then the value it sees (if any) may not be the same as the value " "in the parent process at the time that :meth:`Process.start ` was called." msgstr "" +"Gardez en tête que si le code exécuté dans un processus fils essaie " +"d'accéder à une variable globale, alors la valeur qu'il voit (s'il y en a " +"une) pourrait ne pas être la même que la valeur du processus parent au " +"moment même où :meth:`Process.start ` est " +"appelée." -#: ../Doc/library/multiprocessing.rst:2786 +#: ../Doc/library/multiprocessing.rst:2797 msgid "" "However, global variables which are just module level constants cause no " "problems." msgstr "" +"Cependant, les variables globales qui sont juste des constantes de modules " +"ne posent pas de problèmes." -#: ../Doc/library/multiprocessing.rst:2789 +#: ../Doc/library/multiprocessing.rst:2800 msgid "Safe importing of main module" -msgstr "" +msgstr "Importation sûre du module principal" -#: ../Doc/library/multiprocessing.rst:2791 +#: ../Doc/library/multiprocessing.rst:2802 msgid "" "Make sure that the main module can be safely imported by a new Python " "interpreter without causing unintended side effects (such a starting a new " "process)." msgstr "" +"Assurez-vous que le module principal peut être importé en toute sécurité par " +"un nouvel interpréteur Python sans causer d'effets de bord inattendus (comme " +"le démarrage d'un nouveau processus)." -#: ../Doc/library/multiprocessing.rst:2795 +#: ../Doc/library/multiprocessing.rst:2806 msgid "" "For example, using the *spawn* or *forkserver* start method running the " "following module would fail with a :exc:`RuntimeError`::" msgstr "" +"Par exemple, utiliser la méthode de démarrage *spawn* ou *forkserver* pour " +"lancer le module suivant échouerait avec une :exc:`RuntimeError` ::" -#: ../Doc/library/multiprocessing.rst:2807 +#: ../Doc/library/multiprocessing.rst:2818 msgid "" "Instead one should protect the \"entry point\" of the program by using ``if " "__name__ == '__main__':`` as follows::" msgstr "" +"Vous devriez plutôt protéger le « point d'entrée » du programme en utilisant " +"``if __name__ == '__main__':`` comme suit ::" -#: ../Doc/library/multiprocessing.rst:2821 +#: ../Doc/library/multiprocessing.rst:2832 msgid "" "(The ``freeze_support()`` line can be omitted if the program will be run " "normally instead of frozen.)" msgstr "" +"(La ligne ``freeze_support()`` peut être omise si le programme est " +"uniquement lancé normalement et pas gelé.)" -#: ../Doc/library/multiprocessing.rst:2824 +#: ../Doc/library/multiprocessing.rst:2835 msgid "" "This allows the newly spawned Python interpreter to safely import the module " "and then run the module's ``foo()`` function." msgstr "" +"Cela permet aux interpréteurs Python fraîchement instanciés d'importer en " +"toute sécurité le module et d'exécution ensuite la fonction ``foo()``." -#: ../Doc/library/multiprocessing.rst:2827 +#: ../Doc/library/multiprocessing.rst:2838 msgid "" "Similar restrictions apply if a pool or manager is created in the main " "module." msgstr "" +"Des restrictions similaires s'appliquent si une *pool* ou un gestionnaire " +"est créé dans le module principal." -#: ../Doc/library/multiprocessing.rst:2834 +#: ../Doc/library/multiprocessing.rst:2845 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/multiprocessing.rst:2836 +#: ../Doc/library/multiprocessing.rst:2847 msgid "Demonstration of how to create and use customized managers and proxies:" msgstr "" +"Démonstration de comment créer et utiliser des gestionnaires et mandataires " +"personnalisés :" -#: ../Doc/library/multiprocessing.rst:2842 +#: ../Doc/library/multiprocessing.rst:2853 msgid "Using :class:`~multiprocessing.pool.Pool`:" -msgstr "" +msgstr "En utilisant :class:`~multiprocessing.pool.Pool` :" -#: ../Doc/library/multiprocessing.rst:2848 +#: ../Doc/library/multiprocessing.rst:2859 msgid "" "An example showing how to use queues to feed tasks to a collection of worker " "processes and collect the results:" msgstr "" +"Un exemple montrant comment utiliser des queues pour alimenter en tâches une " +"collection de processus *workers* et collecter les résultats :" diff --git a/library/netrc.po b/library/netrc.po index ead894eb2..192e3990e 100644 --- a/library/netrc.po +++ b/library/netrc.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-04-11 18:12+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" #: ../Doc/library/netrc.rst:3 msgid ":mod:`netrc` --- netrc file processing" -msgstr "" +msgstr ":mod:`netrc` — traitement de fichier *netrc*" #: ../Doc/library/netrc.rst:11 msgid "**Source code:** :source:`Lib/netrc.py`" @@ -27,6 +28,8 @@ msgid "" "The :class:`~netrc.netrc` class parses and encapsulates the netrc file " "format used by the Unix :program:`ftp` program and other FTP clients." msgstr "" +"La classe :class:`netrc` analyse et encapsule le format de fichier *netrc* " +"utilisé par le programme Unix :program:`ftp` et d'autres clients FTP." #: ../Doc/library/netrc.rst:21 msgid "" @@ -44,16 +47,33 @@ msgid "" "security behavior equivalent to that of ftp and other programs that use :" "file:`.netrc`." msgstr "" +"Une instance de :class:`~netrc.netrc` ou une instance de sous-classe " +"encapsule les données à partir d'un fichier *netrc*. L'argument " +"d'initialisation, s'il est présent, précise le fichier à analyser. Si aucun " +"argument n'est donné, le fichier :file:`.netrc` dans le répertoire d’accueil " +"de l'utilisateur -- déterminé par :func:`os.path.expanduser` -- est lu. " +"Sinon, l'exception :exc:`FileNotFoundError` sera levée. Les erreurs " +"d'analyse lèveront :exc:`NetrcParseError` avec les informations de " +"diagnostic, y compris le nom de fichier, le numéro de ligne, et le lexème. " +"Si aucun argument n'est spécifié dans un système POSIX, la présence de mots " +"de passe dans le fichier :file:`.netrc` lèvera :exc:`NetrcParseError` si la " +"propriété du fichier ou les permissions ne sont pas sécurisées (propriété " +"d'un utilisateur autre que l'utilisateur exécutant le processus ou " +"accessible en lecture ou en écriture par n'importe quel autre utilisateur). " +"Le niveau de sécurité offert est ainsi équivalent à celui de ftp et d'autres " +"programmes utilisant :file:`netrc`." #: ../Doc/library/netrc.rst:35 msgid "Added the POSIX permission check." -msgstr "" +msgstr "Ajout de la vérification d'autorisations POSIX." #: ../Doc/library/netrc.rst:37 msgid "" ":func:`os.path.expanduser` is used to find the location of the :file:`." "netrc` file when *file* is not passed as argument." msgstr "" +":func:`os.path.expanduser` est utilisée pour trouver l'emplacement du " +"fichier :file:`netrc` lorsque *file* n'est pas passé en tant qu'argument." #: ../Doc/library/netrc.rst:44 msgid "" @@ -63,14 +83,20 @@ msgid "" "attr:`filename` is the name of the source file, and :attr:`lineno` gives the " "line number on which the error was found." msgstr "" +"Exception levée par la classe :class:`~netrc.netrc` lorsque des erreurs " +"syntaxiques sont rencontrées dans le texte source. Les instances de cette " +"exception fournissent trois attributs intéressants : :attr:`msg` est une " +"explication textuelle de l'erreur, :attr:`filename` est le nom du fichier " +"source et :attr:`lineno` donne le numéro de la ligne sur laquelle l'erreur a " +"été trouvée." #: ../Doc/library/netrc.rst:54 msgid "netrc Objects" -msgstr "" +msgstr "Objets *netrc*" #: ../Doc/library/netrc.rst:56 msgid "A :class:`~netrc.netrc` instance has the following methods:" -msgstr "" +msgstr "Une instance :class:`~netrc.netrc` a les méthodes suivantes :" #: ../Doc/library/netrc.rst:61 msgid "" @@ -79,26 +105,39 @@ msgid "" "return the tuple associated with the 'default' entry. If neither matching " "host nor default entry is available, return ``None``." msgstr "" +"Renvoie un triplet ``(login, account, password)`` pour s'authentifier auprès " +"de l'hôte *host*. Si le fichier *netrc* ne contient pas d'entrée pour l'hôte " +"donné, renvoie le tuple associé à l'entrée par défaut. Si aucun hôte " +"correspondant ni aucune entrée par défaut n'est disponible, renvoie ``None``." #: ../Doc/library/netrc.rst:69 msgid "" "Dump the class data as a string in the format of a netrc file. (This " "discards comments and may reorder the entries.)" msgstr "" +"Déverse les données de la classe sous forme de chaîne dans le format d'un " +"fichier *netrc*. (Ceci ignore les commentaires et peut réorganiser les " +"entrées)." #: ../Doc/library/netrc.rst:72 msgid "Instances of :class:`~netrc.netrc` have public instance variables:" msgstr "" +"Les instances de :class:`~netrc.netrc` ont des variables d'instance " +"publiques :" #: ../Doc/library/netrc.rst:77 msgid "" "Dictionary mapping host names to ``(login, account, password)`` tuples. The " "'default' entry, if any, is represented as a pseudo-host by that name." msgstr "" +"Dictionnaire faisant correspondre les noms d'hôtes dans des tuples ``(login, " +"account, password)``. L'entrée par défaut, le cas échéant, est représentée " +"en tant que pseudo-hôte par ce nom." #: ../Doc/library/netrc.rst:83 msgid "Dictionary mapping macro names to string lists." msgstr "" +"Dictionnaire faisant correspondre les noms de macro en listes de chaînes." #: ../Doc/library/netrc.rst:87 msgid "" @@ -107,3 +146,8 @@ msgid "" "printable characters are not allowed in passwords. This is a limitation of " "the way the .netrc file is parsed and may be removed in the future." msgstr "" +"Les mots de passe sont limités à un sous-ensemble du jeu de caractères " +"ASCII. Toute ponctuation ASCII est autorisée dans les mots de passe, " +"cependant notez que les espaces et les caractères non imprimables ne sont " +"pas autorisés dans les mots de passe. C'est une limitation de la façon dont " +"le fichier *.netrc* est analysé et pourra être supprimée à l'avenir." diff --git a/library/nis.po b/library/nis.po index 94bfaaa06..827d76d8a 100644 --- a/library/nis.po +++ b/library/nis.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/nis.rst:3 msgid ":mod:`nis` --- Interface to Sun's NIS (Yellow Pages)" -msgstr ":mod:`nis` --- Interface à Sun's NIS (pages jaunes)" +msgstr ":mod:`nis` — Interface à Sun's NIS (pages jaunes)" #: ../Doc/library/nis.rst:14 msgid "" diff --git a/library/nntplib.po b/library/nntplib.po index bd2d277ec..600b8fbd9 100644 --- a/library/nntplib.po +++ b/library/nntplib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -70,7 +70,7 @@ msgstr "" #: ../Doc/library/nntplib.rst:86 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/nntplib.rst:91 msgid "" @@ -224,8 +224,8 @@ msgstr "" #: ../Doc/library/nntplib.rst:237 msgid "" "Send a ``STARTTLS`` command. This will enable encryption on the NNTP " -"connection. The *ssl_context* argument is optional and should be a :class:" -"`ssl.SSLContext` object. Please read :ref:`ssl-security` for best practices." +"connection. The *context* argument is optional and should be a :class:`ssl." +"SSLContext` object. Please read :ref:`ssl-security` for best practices." msgstr "" #: ../Doc/library/nntplib.rst:242 @@ -524,7 +524,7 @@ msgstr "" #: ../Doc/library/nntplib.rst:550 msgid "Utility functions" -msgstr "" +msgstr "Fonctions utilitaires" #: ../Doc/library/nntplib.rst:552 msgid "The module also defines the following utility function:" diff --git a/library/numbers.po b/library/numbers.po index 7fa9da8ca..6d57f351c 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -3,11 +3,11 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3.7\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" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-05-30 23:41+0200\n" +"Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -16,11 +16,11 @@ msgstr "" #: ../Doc/library/numbers.rst:2 msgid ":mod:`numbers` --- Numeric abstract base classes" -msgstr "" +msgstr ":mod:`numbers` — Classes de base abstraites numériques" #: ../Doc/library/numbers.rst:7 msgid "**Source code:** :source:`Lib/numbers.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/numbers.py`" #: ../Doc/library/numbers.rst:11 msgid "" @@ -29,16 +29,23 @@ msgid "" "more operations. None of the types defined in this module can be " "instantiated." msgstr "" +"Le module :mod:`numbers` (:pep:`3141`) définit une hiérarchie de :term:" +"`classes de base abstraites` numériques qui définissent " +"progressivement plus d'opérations. Aucun des types définis dans ce module ne " +"peut être instancié." #: ../Doc/library/numbers.rst:18 msgid "" "The root of the numeric hierarchy. If you just want to check if an argument " "*x* is a number, without caring what kind, use ``isinstance(x, Number)``." msgstr "" +"La base de la hiérarchie numérique. Si vous voulez juste vérifier qu'un " +"argument *x* est un nombre, peu importe le type, utilisez ``isinstance(x, " +"Number)``." #: ../Doc/library/numbers.rst:23 msgid "The numeric tower" -msgstr "" +msgstr "La tour numérique" #: ../Doc/library/numbers.rst:27 msgid "" @@ -48,26 +55,35 @@ msgid "" "``, ``*``, ``/``, :func:`abs`, :meth:`conjugate`, ``==``, and ``!=``. All " "except ``-`` and ``!=`` are abstract." msgstr "" +"Les sous-classes de ce type décrivent des nombres complexes et incluent les " +"opérations qui fonctionnent sur le type natif :class:`complex`. Ce sont : " +"les conversions vers :class:`complex` et :class:`bool`, :attr:`.real`, :attr:" +"`.imag`, ``+``, ``-``, ``*``, ``/``, :func:`abs`, :meth:`conjugate`, ``==`` " +"et ``!=``. Toutes sauf ``-`` et ``!=`` sont abstraites." #: ../Doc/library/numbers.rst:35 msgid "Abstract. Retrieves the real component of this number." -msgstr "" +msgstr "Abstrait. Récupère la partie réelle de ce nombre." #: ../Doc/library/numbers.rst:39 msgid "Abstract. Retrieves the imaginary component of this number." -msgstr "" +msgstr "Abstrait. Retrouve la partie imaginaire de ce nombre." #: ../Doc/library/numbers.rst:43 msgid "" "Abstract. Returns the complex conjugate. For example, ``(1+3j).conjugate() " "== (1-3j)``." msgstr "" +"Abstrait. Renvoie le complexe conjugué. Par exemple, ``(1+3j).conjugate() == " +"(1-3j)``." #: ../Doc/library/numbers.rst:48 msgid "" "To :class:`Complex`, :class:`Real` adds the operations that work on real " "numbers." msgstr "" +":class:`Real` ajoute les opérations qui fonctionnent sur les nombres réels " +"à :class:`Complex`." #: ../Doc/library/numbers.rst:51 msgid "" @@ -75,12 +91,17 @@ msgid "" "func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:`divmod`, ``//``, " "``%``, ``<``, ``<=``, ``>``, and ``>=``." msgstr "" +"En bref, celles-ci sont : une conversion vers :class:`float`, :func:`math." +"trunc`, :func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:" +"`divmod`, ``//``, ``%``, ``<``, ``<=``, ``>`` et ``>=``." #: ../Doc/library/numbers.rst:55 msgid "" "Real also provides defaults for :func:`complex`, :attr:`~Complex.real`, :" "attr:`~Complex.imag`, and :meth:`~Complex.conjugate`." msgstr "" +"*Real* fournit également des valeurs par défaut pour :func:`complex`, :attr:" +"`~Complex.real`, :attr:`~Complex.imag` et :meth:`~Complex.conjugate`." #: ../Doc/library/numbers.rst:61 msgid "" @@ -88,10 +109,13 @@ msgid "" "`~Rational.denominator` properties, which should be in lowest terms. With " "these, it provides a default for :func:`float`." msgstr "" +"Dérive :class:`Real` et ajoute les propriétés :attr:`~Rational.numerator` " +"et :attr:`~Rational.denominator` qui doivent être les plus petits possible. " +"Avec celles-ci, il fournit une valeur par défaut pour :func:`float`." #: ../Doc/library/numbers.rst:68 ../Doc/library/numbers.rst:72 msgid "Abstract." -msgstr "Résumé." +msgstr "Abstrait." #: ../Doc/library/numbers.rst:77 msgid "" @@ -100,10 +124,15 @@ msgid "" "`~Rational.denominator`. Adds abstract methods for ``**`` and bit-string " "operations: ``<<``, ``>>``, ``&``, ``^``, ``|``, ``~``." msgstr "" +"Dérive :class:`Rational` et ajoute une conversion en :class:`int`. Fournit " +"des valeurs par défaut pour :func:`float`, :attr:`~Rational.numerator` et :" +"attr:`~Rational.denominator`. Ajoute des méthodes abstraites pour ``**`` et " +"les opérations au niveau des bits: ``<<``, ``>>``, ``&``, ``^``, ``|``, " +"``~``." #: ../Doc/library/numbers.rst:84 msgid "Notes for type implementors" -msgstr "" +msgstr "Notes pour implémenter des types" #: ../Doc/library/numbers.rst:86 msgid "" @@ -112,10 +141,15 @@ msgid "" "the real numbers. For example, :class:`fractions.Fraction` implements :func:" "`hash` as follows::" msgstr "" +"Les développeurs doivent veiller à ce que des nombres égaux soient bien " +"égaux lors de comparaisons et à ce qu'ils soient hachés aux mêmes valeurs. " +"Cela peut être subtil s'il y a deux dérivations différentes des nombres " +"réels. Par exemple, :class:`fractions.Fraction` implémente :func:`hash` " +"comme suit ::" #: ../Doc/library/numbers.rst:105 msgid "Adding More Numeric ABCs" -msgstr "" +msgstr "Ajouter plus d'ABC numériques" #: ../Doc/library/numbers.rst:107 msgid "" @@ -123,10 +157,14 @@ msgid "" "poor hierarchy if it precluded the possibility of adding those. You can add " "``MyFoo`` between :class:`Complex` and :class:`Real` with::" msgstr "" +"Il est bien entendu possible de créer davantage d’ABC pour les nombres et " +"cette hiérarchie serait médiocre si elle excluait la possibilité d'en " +"ajouter. Vous pouvez ajouter ``MyFoo`` entre :class:`Complex` et :class:" +"`Real` ainsi ::" #: ../Doc/library/numbers.rst:119 msgid "Implementing the arithmetic operations" -msgstr "" +msgstr "Implémentation des opérations arithmétiques" #: ../Doc/library/numbers.rst:121 msgid "" @@ -136,6 +174,12 @@ msgid "" "there. For subtypes of :class:`Integral`, this means that :meth:`__add__` " "and :meth:`__radd__` should be defined as::" msgstr "" +"Nous voulons implémenter les opérations arithmétiques de sorte que les " +"opérations en mode mixte appellent une implémentation dont l'auteur connaît " +"les types des deux arguments, ou convertissent chacun dans le type natif le " +"plus proche et effectuent l'opération sur ces types. Pour les sous-types de :" +"class:`Integral`, cela signifie que :meth:`__add__` et :meth:`__radd__` " +"devraient être définis comme suit ::" #: ../Doc/library/numbers.rst:152 msgid "" @@ -145,10 +189,16 @@ msgid "" "an instance of ``A``, which is a subtype of :class:`Complex` (``a : A <: " "Complex``), and ``b : B <: Complex``. I'll consider ``a + b``:" msgstr "" +"Il existe 5 cas différents pour une opération de type mixte sur des sous-" +"classes de :class:`Complex`. Nous nous référerons à tout le code ci-dessus " +"qui ne se réfère pas à ``MyIntegral`` et ``OtherTypeIKnowAbout`` comme " +"\"expression générique\". ``a`` est une instance de ``A``, qui est un sous-" +"type de :class:`Complex` (``a : A <: Complex``) et ``b : B <: Complex``. " +"Considérons ``a + b``:" #: ../Doc/library/numbers.rst:159 msgid "If ``A`` defines an :meth:`__add__` which accepts ``b``, all is well." -msgstr "" +msgstr "Si ``A`` définit une :meth:`__add__` qui accepte ``b``, tout va bien." #: ../Doc/library/numbers.rst:161 msgid "" @@ -158,18 +208,27 @@ msgid "" "`NotImplemented` from :meth:`__add__`. (Or ``A`` may not implement :meth:" "`__add__` at all.)" msgstr "" +"Si ``A`` fait appel au code générique et que celui-ci renvoie une valeur de :" +"meth:`__add__`, nous manquons la possibilité que ``B`` définisse une :meth:" +"`__radd__` plus intelligent, donc le code générique devrait retourner :const:" +"`NotImplemented` dans :meth:`__add__` (ou alors ``A`` ne doit pas " +"implémenter :meth:`__add__` du tout.)" #: ../Doc/library/numbers.rst:167 msgid "" "Then ``B``'s :meth:`__radd__` gets a chance. If it accepts ``a``, all is " "well." msgstr "" +"Alors :meth:`__radd__` de ``B`` a une chance. si elle accepte ``a``, tout va " +"bien." #: ../Doc/library/numbers.rst:169 msgid "" "If it falls back to the boilerplate, there are no more possible methods to " "try, so this is where the default implementation should live." msgstr "" +"Si elle fait appel au code générique, il n'y a plus de méthode possible à " +"essayer, c'est donc ici que l'implémentation par défaut intervient." #: ../Doc/library/numbers.rst:172 msgid "" @@ -177,6 +236,9 @@ msgid "" "because it was implemented with knowledge of ``A``, so it can handle those " "instances before delegating to :class:`Complex`." msgstr "" +"Si ``B < : A```, Python essaie ``B.__radd__`` avant ``A.__add__``. C'est " +"valable parce qu'elle est implémentée avec la connaissance de ``A``, donc " +"elle peut gérer ces instances avant de déléguer à :class:`Complex`." #: ../Doc/library/numbers.rst:177 msgid "" @@ -184,6 +246,9 @@ msgid "" "then the appropriate shared operation is the one involving the built in :" "class:`complex`, and both :meth:`__radd__` s land there, so ``a+b == b+a``." msgstr "" +"Si ``A <: Complex`` et ``B <: Real`` sans autre information, alors " +"l'opération commune appropriée est celle impliquant :class:`complex` et les " +"deux :meth:`__radd__` atterrissent à cet endroit, donc ``a+b == b+a``." #: ../Doc/library/numbers.rst:182 msgid "" @@ -192,3 +257,7 @@ msgid "" "reverse instances of any given operator. For example, :class:`fractions." "Fraction` uses::" msgstr "" +"Comme la plupart des opérations sur un type donné seront très similaires, il " +"peut être utile de définir une fonction accessoire qui génère les instances " +"résultantes et inverses d'un opérateur donné. Par exemple, :class:`fractions." +"Fraction` utilise ::" diff --git a/library/operator.po b/library/operator.po index 56ba25047..ff24b8e55 100644 --- a/library/operator.po +++ b/library/operator.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2018-12-11 22:46+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" #: ../Doc/library/operator.rst:2 msgid ":mod:`operator` --- Standard operators as functions" -msgstr "" +msgstr ":mod:`operator` — Opérateurs standards en tant que fonctions" #: ../Doc/library/operator.rst:9 msgid "**Source code:** :source:`Lib/operator.py`" @@ -32,18 +33,30 @@ msgid "" "underscores kept. The variants without the double underscores are preferred " "for clarity." msgstr "" +"Le module :mod:`operator` fournit un ensemble de fonctions correspondant aux " +"opérateurs natifs de Python. Par exemple, ``operator.add(x, y)`` correspond " +"à l'expression ``x+y``. Les noms de la plupart de ces fonctions sont ceux " +"utilisés par les méthodes spéciales, sans les doubles tirets bas. Pour " +"assurer la rétrocompatibilité, la plupart de ces noms ont une variante " +"*avec* les doubles tirets bas ; la forme simple est cependant à privilégier " +"pour des raisons de clarté." #: ../Doc/library/operator.rst:25 msgid "" "The functions fall into categories that perform object comparisons, logical " "operations, mathematical operations and sequence operations." msgstr "" +"Les fonctions sont divisées en différentes catégories selon l'opération " +"effectuée : comparaison entre objets, opérations logiques, opérations " +"mathématiques ou opérations sur séquences." #: ../Doc/library/operator.rst:28 msgid "" "The object comparison functions are useful for all objects, and are named " "after the rich comparison operators they support:" msgstr "" +"Les fonctions de comparaison s'appliquent à tous les objets, et leur nom " +"vient des opérateurs de comparaison qu'elles implémentent :" #: ../Doc/library/operator.rst:45 msgid "" @@ -55,12 +68,21 @@ msgid "" "which may or may not be interpretable as a Boolean value. See :ref:" "`comparisons` for more information about rich comparisons." msgstr "" +"Effectue une « comparaison riche » entre *a* et *b*. Plus précisément, " +"``lt(a, b)`` équivaut à ``a < b``, ``le(a, b)`` équivaut à ``a <= b``, " +"``eq(a, b)`` équivaut à ``a == b``, ``ne(a, b)`` équivaut à ``a != b``, " +"``gt(a, b)`` équivaut à ``a > b`` et ``ge(a, b)`` équivaut à ``a >= b``. " +"Notez que ces fonctions peuvent renvoyer n'importe quelle valeur, " +"convertible ou non en booléen. Voir :ref:`comparisons` pour plus " +"d'informations sur les méthodes de comparaison riches." #: ../Doc/library/operator.rst:54 msgid "" "The logical operations are also generally applicable to all objects, and " "support truth tests, identity tests, and boolean operations:" msgstr "" +"En général, les opérations logiques s'appliquent aussi à tous les objets et " +"implémentent les tests de vérité, d'identité et les opérations booléennes :" #: ../Doc/library/operator.rst:61 msgid "" @@ -69,24 +91,33 @@ msgid "" "this operation. The result is affected by the :meth:`__bool__` and :meth:" "`__len__` methods.)" msgstr "" +"Renvoie le résultat de :keyword:`not` *obj*. (Notez qu'il n'existe pas de " +"méthode :meth:`__not__` pour les instances d'objet; seul le cœur de " +"l'interpréteur définit cette opération. Le résultat dépend des méthodes :" +"meth:`__bool__` et :meth:`__len__`.)" #: ../Doc/library/operator.rst:69 msgid "" "Return :const:`True` if *obj* is true, and :const:`False` otherwise. This " "is equivalent to using the :class:`bool` constructor." msgstr "" +"Renvoie :const:`True` si *obj* est vrai, et :const:`False` dans le cas " +"contraire. Équivaut à utiliser le constructeur de :class:`bool`." #: ../Doc/library/operator.rst:75 msgid "Return ``a is b``. Tests object identity." msgstr "" +"Renvoie ``a is b``. Vérifie si les deux paramètres sont le même objet." #: ../Doc/library/operator.rst:80 msgid "Return ``a is not b``. Tests object identity." msgstr "" +"Renvoie ``a is not b``. Vérifie si les deux paramètres sont deux objets " +"distincts." #: ../Doc/library/operator.rst:83 msgid "The mathematical and bitwise operations are the most numerous:" -msgstr "" +msgstr "Les opérations mathématiques ou bit à bit sont les plus nombreuses :" #: ../Doc/library/operator.rst:89 msgid "Return the absolute value of *obj*." @@ -94,109 +125,114 @@ msgstr "Renvoie la valeur absolue de *obj*." #: ../Doc/library/operator.rst:95 msgid "Return ``a + b``, for *a* and *b* numbers." -msgstr "" +msgstr "Renvoie ``a + b`` où *a* et *b* sont des nombres." #: ../Doc/library/operator.rst:101 msgid "Return the bitwise and of *a* and *b*." -msgstr "" +msgstr "Renvoie le *et* bit à bit de *a* et *b*." #: ../Doc/library/operator.rst:107 msgid "Return ``a // b``." -msgstr "" +msgstr "Renvoie ``a // b``." #: ../Doc/library/operator.rst:113 msgid "Return *a* converted to an integer. Equivalent to ``a.__index__()``." -msgstr "" +msgstr "Renvoie *a* converti en entier. Équivaut à ``a.__index__()``." #: ../Doc/library/operator.rst:121 msgid "" "Return the bitwise inverse of the number *obj*. This is equivalent to " "``~obj``." -msgstr "" +msgstr "Renvoie l'inverse bit à bit du nombre *obj*. Équivaut à ``~obj``." #: ../Doc/library/operator.rst:127 msgid "Return *a* shifted left by *b*." -msgstr "" +msgstr "Renvoie le décalage de *b* bits vers la gauche de *a*." #: ../Doc/library/operator.rst:133 msgid "Return ``a % b``." -msgstr "" +msgstr "Renvoie``a % b``." #: ../Doc/library/operator.rst:139 msgid "Return ``a * b``, for *a* and *b* numbers." -msgstr "" +msgstr "Renvoie ``a * b`` où *a* et *b* sont des nombres." #: ../Doc/library/operator.rst:145 msgid "Return ``a @ b``." -msgstr "" +msgstr "Renvoie ``a @ b``." #: ../Doc/library/operator.rst:153 msgid "Return *obj* negated (``-obj``)." -msgstr "" +msgstr "Renvoie l'opposé de *obj* (``-obj``)." #: ../Doc/library/operator.rst:159 msgid "Return the bitwise or of *a* and *b*." -msgstr "" +msgstr "Renvoie le *ou* bit à bit de *a* et *b*." #: ../Doc/library/operator.rst:165 msgid "Return *obj* positive (``+obj``)." -msgstr "" +msgstr "Renvoie la valeur positive de *obj* (``+obj``)." #: ../Doc/library/operator.rst:171 msgid "Return ``a ** b``, for *a* and *b* numbers." -msgstr "" +msgstr "Renvoie ``a ** b`` où *a* et *b* sont des nombres." #: ../Doc/library/operator.rst:177 msgid "Return *a* shifted right by *b*." -msgstr "" +msgstr "Renvoie le décalage de *b* bits vers la droite de *a*." #: ../Doc/library/operator.rst:183 msgid "Return ``a - b``." -msgstr "" +msgstr "Renvoie ``a - b``." #: ../Doc/library/operator.rst:189 msgid "" "Return ``a / b`` where 2/3 is .66 rather than 0. This is also known as " "\"true\" division." msgstr "" +"Renvoie ``a / b`` où 2/3 est 0.66 et non 0. Appelée aussi division « réelle " +"»." #: ../Doc/library/operator.rst:196 msgid "Return the bitwise exclusive or of *a* and *b*." -msgstr "" +msgstr "Renvoie le ou exclusif bit à bit de *a* et *b*." #: ../Doc/library/operator.rst:199 msgid "" "Operations which work with sequences (some of them with mappings too) " "include:" msgstr "" +"Les opérations sur séquences (et pour certaines, sur correspondances) sont :" #: ../Doc/library/operator.rst:204 msgid "Return ``a + b`` for *a* and *b* sequences." -msgstr "" +msgstr "Renvoie ``a + b`` où *a* et *b* sont des séquences." #: ../Doc/library/operator.rst:210 msgid "Return the outcome of the test ``b in a``. Note the reversed operands." msgstr "" +"Renvoie le résultat du test ``b in a``. Notez que les opérandes sont " +"inversées." #: ../Doc/library/operator.rst:215 msgid "Return the number of occurrences of *b* in *a*." -msgstr "" +msgstr "Renvoie le nombre d’occurrences de *b* dans *a*." #: ../Doc/library/operator.rst:221 msgid "Remove the value of *a* at index *b*." -msgstr "" +msgstr "Renvoie la valeur de *a* à l'indice *b*." #: ../Doc/library/operator.rst:227 msgid "Return the value of *a* at index *b*." -msgstr "" +msgstr "Renvoie la valeur de *a* à l'indice *b*." #: ../Doc/library/operator.rst:232 msgid "Return the index of the first of occurrence of *b* in *a*." -msgstr "" +msgstr "Renvoie l'indice de la première occurrence de *b* dans *a*." #: ../Doc/library/operator.rst:238 msgid "Set the value of *a* at index *b* to *c*." -msgstr "" +msgstr "Affecte *c* dans *a* à l'indice *b*." #: ../Doc/library/operator.rst:243 msgid "" @@ -204,6 +240,9 @@ msgid "" "actual length, then an estimate using :meth:`object.__length_hint__`, and " "finally return the default value." msgstr "" +"Renvoie une estimation de la taille de l'objet *o*. Tente d'abord de " +"renvoyer la taille réelle, puis une estimation en appelant :meth:`object." +"__length_hint__`, ou sinon la valeur par défaut." #: ../Doc/library/operator.rst:249 msgid "" @@ -212,6 +251,11 @@ msgid "" "arguments for :func:`map`, :func:`sorted`, :meth:`itertools.groupby`, or " "other functions that expect a function argument." msgstr "" +"Le module :mod:`operator` définit aussi des fonctions pour la recherche " +"générique d'attributs ou d'objets. Elles sont particulièrement utiles pour " +"construire rapidement des accesseurs d'attributs à passer en paramètre à :" +"func:`map`, :func:`sorted`, :meth:`itertools.groupby` ou à toute autre " +"fonction prenant une fonction en paramètre." #: ../Doc/library/operator.rst:258 msgid "" @@ -219,27 +263,34 @@ msgid "" "one attribute is requested, returns a tuple of attributes. The attribute " "names can also contain dots. For example:" msgstr "" +"Renvoie un objet appelable qui récupère *attr* de son opérande. Si plus d'un " +"attribut est demandé, renvoie un n-uplet d'attributs. Les noms des attributs " +"peuvent aussi comporter des points. Par exemple :" #: ../Doc/library/operator.rst:262 msgid "After ``f = attrgetter('name')``, the call ``f(b)`` returns ``b.name``." -msgstr "" +msgstr "Avec ``f = attrgetter('name')``, l'appel ``f(b)`` renvoie ``b.name``." #: ../Doc/library/operator.rst:264 msgid "" "After ``f = attrgetter('name', 'date')``, the call ``f(b)`` returns ``(b." "name, b.date)``." msgstr "" +"Avec ``f = attrgetter('name', 'date')``, l'appel ``f(b)`` renvoie ``(b.name, " +"b.date)``." #: ../Doc/library/operator.rst:267 msgid "" "After ``f = attrgetter('name.first', 'name.last')``, the call ``f(b)`` " "returns ``(b.name.first, b.name.last)``." msgstr "" +"Après ``f = attrgetter('name.first', 'name.last')``, l'appel ``f(b)`` " +"renvoie ``(b.name.first, b.name.last)``." #: ../Doc/library/operator.rst:270 ../Doc/library/operator.rst:302 #: ../Doc/library/operator.rst:351 msgid "Equivalent to::" -msgstr "Équivalent à : ::" +msgstr "Équivalent à ::" #: ../Doc/library/operator.rst:293 msgid "" @@ -247,16 +298,20 @@ msgid "" "operand's :meth:`__getitem__` method. If multiple items are specified, " "returns a tuple of lookup values. For example:" msgstr "" +"Renvoie un objet appelable qui récupère *item* de l'opérande en utilisant la " +"méthode :meth:`__getitem__`. Si plusieurs *item* sont passés en paramètre, " +"renvoie un n-uplet des valeurs récupérées. Par exemple :" #: ../Doc/library/operator.rst:297 msgid "After ``f = itemgetter(2)``, the call ``f(r)`` returns ``r[2]``." -msgstr "" +msgstr "Avec ``f = itemgetter(2)``, ``f(r)`` renvoie ``r[2]``." #: ../Doc/library/operator.rst:299 msgid "" "After ``g = itemgetter(2, 5, 3)``, the call ``g(r)`` returns ``(r[2], r[5], " "r[3])``." msgstr "" +"Avec ``g = itemgetter(2, 5, 3)``, ``g(r)`` renvoie ``(r[2], r[5], r[3])``." #: ../Doc/library/operator.rst:314 msgid "" @@ -264,12 +319,18 @@ msgid "" "method. Dictionaries accept any hashable value. Lists, tuples, and strings " "accept an index or a slice:" msgstr "" +"Les *items* en entrée peuvent être de n'importe quel type tant que celui-ci " +"est géré par la méthode :meth:`__getitem__` de l'opérande. Les dictionnaires " +"acceptent toute valeur hachable. Les listes, n-uplets et chaînes de " +"caractères acceptent un index ou une tranche :" #: ../Doc/library/operator.rst:329 msgid "" "Example of using :func:`itemgetter` to retrieve specific fields from a tuple " "record:" msgstr "" +"Exemple d'utilisation de :func:`itemgetter` pour récupérer des champs " +"spécifiques d'un n-uplet :" #: ../Doc/library/operator.rst:342 msgid "" @@ -277,27 +338,34 @@ msgid "" "additional arguments and/or keyword arguments are given, they will be given " "to the method as well. For example:" msgstr "" +"Renvoie un objet appelable qui appelle la méthode *name* de son opérande. Si " +"des paramètres supplémentaires et/ou des paramètres nommés sont donnés, ils " +"seront aussi passés à la méthode. Par exemple :" #: ../Doc/library/operator.rst:346 msgid "" "After ``f = methodcaller('name')``, the call ``f(b)`` returns ``b.name()``." -msgstr "" +msgstr "Avec ``f = methodcaller('name')``, ``f(b)`` renvoie ``b.name()``." #: ../Doc/library/operator.rst:348 msgid "" "After ``f = methodcaller('name', 'foo', bar=1)``, the call ``f(b)`` returns " "``b.name('foo', bar=1)``." msgstr "" +"Avec ``f = methodcaller('name', 'foo', bar=1)``, ``f(b)`` renvoie ``b." +"name('foo', bar=1)``." #: ../Doc/library/operator.rst:362 msgid "Mapping Operators to Functions" -msgstr "" +msgstr "Correspondances entre opérateurs et fonctions" #: ../Doc/library/operator.rst:364 msgid "" "This table shows how abstract operations correspond to operator symbols in " "the Python syntax and the functions in the :mod:`operator` module." msgstr "" +"Le tableau montre la correspondance entre les symboles des opérateurs Python " +"et les fonctions du module :mod:`operator`." #: ../Doc/library/operator.rst:368 msgid "Operation" @@ -305,7 +373,7 @@ msgstr "Opération" #: ../Doc/library/operator.rst:368 msgid "Syntax" -msgstr "" +msgstr "Syntaxe" #: ../Doc/library/operator.rst:368 msgid "Function" @@ -313,7 +381,7 @@ msgstr "Fonction" #: ../Doc/library/operator.rst:370 msgid "Addition" -msgstr "" +msgstr "Addition" #: ../Doc/library/operator.rst:370 msgid "``a + b``" @@ -325,7 +393,7 @@ msgstr "``add(a, b)``" #: ../Doc/library/operator.rst:372 msgid "Concatenation" -msgstr "" +msgstr "Concaténation" #: ../Doc/library/operator.rst:372 msgid "``seq1 + seq2``" @@ -337,7 +405,7 @@ msgstr "``concat(seq1, seq2)``" #: ../Doc/library/operator.rst:374 msgid "Containment Test" -msgstr "" +msgstr "Test d'inclusion" #: ../Doc/library/operator.rst:374 msgid "``obj in seq``" @@ -349,7 +417,7 @@ msgstr "``contains(seq, obj)``" #: ../Doc/library/operator.rst:376 ../Doc/library/operator.rst:378 msgid "Division" -msgstr "" +msgstr "Division" #: ../Doc/library/operator.rst:376 msgid "``a / b``" @@ -369,7 +437,7 @@ msgstr "``floordiv(a, b)``" #: ../Doc/library/operator.rst:380 msgid "Bitwise And" -msgstr "" +msgstr "*Et* bit à bit" #: ../Doc/library/operator.rst:380 msgid "``a & b``" @@ -381,7 +449,7 @@ msgstr "``and_(a, b)``" #: ../Doc/library/operator.rst:382 msgid "Bitwise Exclusive Or" -msgstr "" +msgstr "*Ou exclusif* bit à bit" #: ../Doc/library/operator.rst:382 msgid "``a ^ b``" @@ -393,7 +461,7 @@ msgstr "``xor(a, b)``" #: ../Doc/library/operator.rst:384 msgid "Bitwise Inversion" -msgstr "" +msgstr "Inversion bit à bit" #: ../Doc/library/operator.rst:384 msgid "``~ a``" @@ -405,7 +473,7 @@ msgstr "``invert(a)``" #: ../Doc/library/operator.rst:386 msgid "Bitwise Or" -msgstr "" +msgstr "*Ou* bit à bit" #: ../Doc/library/operator.rst:386 msgid "``a | b``" @@ -417,7 +485,7 @@ msgstr "``or_(a, b)``" #: ../Doc/library/operator.rst:388 msgid "Exponentiation" -msgstr "" +msgstr "Exponentiation" #: ../Doc/library/operator.rst:388 msgid "``a ** b``" @@ -429,7 +497,7 @@ msgstr "``pow(a, b)``" #: ../Doc/library/operator.rst:390 ../Doc/library/operator.rst:392 msgid "Identity" -msgstr "" +msgstr "Identité" #: ../Doc/library/operator.rst:390 msgid "``a is b``" @@ -449,7 +517,7 @@ msgstr "``is_not(a, b)``" #: ../Doc/library/operator.rst:394 msgid "Indexed Assignment" -msgstr "" +msgstr "Affectation par index" #: ../Doc/library/operator.rst:394 msgid "``obj[k] = v``" @@ -461,7 +529,7 @@ msgstr "``setitem(obj, k, v)``" #: ../Doc/library/operator.rst:396 msgid "Indexed Deletion" -msgstr "" +msgstr "Suppression par index" #: ../Doc/library/operator.rst:396 msgid "``del obj[k]``" @@ -473,7 +541,7 @@ msgstr "``delitem(obj, k)``" #: ../Doc/library/operator.rst:398 msgid "Indexing" -msgstr "" +msgstr "Indexation" #: ../Doc/library/operator.rst:398 msgid "``obj[k]``" @@ -485,7 +553,7 @@ msgstr "``getitem(obj, k)``" #: ../Doc/library/operator.rst:400 msgid "Left Shift" -msgstr "" +msgstr "Décalage bit à bit gauche" #: ../Doc/library/operator.rst:400 msgid "``a << b``" @@ -497,7 +565,7 @@ msgstr "``lshift(a, b)``" #: ../Doc/library/operator.rst:402 msgid "Modulo" -msgstr "" +msgstr "Modulo" #: ../Doc/library/operator.rst:402 msgid "``a % b``" @@ -509,7 +577,7 @@ msgstr "``mod(a, b)``" #: ../Doc/library/operator.rst:404 msgid "Multiplication" -msgstr "" +msgstr "Multiplication" #: ../Doc/library/operator.rst:404 msgid "``a * b``" @@ -521,7 +589,7 @@ msgstr "``mul(a, b)``" #: ../Doc/library/operator.rst:406 msgid "Matrix Multiplication" -msgstr "" +msgstr "Multiplication matricielle" #: ../Doc/library/operator.rst:406 msgid "``a @ b``" @@ -533,7 +601,7 @@ msgstr "``matmul(a, b)``" #: ../Doc/library/operator.rst:408 msgid "Negation (Arithmetic)" -msgstr "" +msgstr "Opposé" #: ../Doc/library/operator.rst:408 msgid "``- a``" @@ -545,7 +613,7 @@ msgstr "``neg(a)``" #: ../Doc/library/operator.rst:410 msgid "Negation (Logical)" -msgstr "" +msgstr "Négation (logique)" #: ../Doc/library/operator.rst:410 msgid "``not a``" @@ -557,7 +625,7 @@ msgstr "``not_(a)``" #: ../Doc/library/operator.rst:412 msgid "Positive" -msgstr "" +msgstr "Valeur positive" #: ../Doc/library/operator.rst:412 msgid "``+ a``" @@ -569,7 +637,7 @@ msgstr "``pos(a)``" #: ../Doc/library/operator.rst:414 msgid "Right Shift" -msgstr "" +msgstr "Décalage bit à bit droite" #: ../Doc/library/operator.rst:414 msgid "``a >> b``" @@ -581,7 +649,7 @@ msgstr "``rshift(a, b)``" #: ../Doc/library/operator.rst:416 msgid "Slice Assignment" -msgstr "" +msgstr "Affectation par tranche" #: ../Doc/library/operator.rst:416 msgid "``seq[i:j] = values``" @@ -593,7 +661,7 @@ msgstr "``setitem(seq, slice(i, j), values)``" #: ../Doc/library/operator.rst:418 msgid "Slice Deletion" -msgstr "" +msgstr "Suppression par tranche" #: ../Doc/library/operator.rst:418 msgid "``del seq[i:j]``" @@ -605,7 +673,7 @@ msgstr "``delitem(seq, slice(i, j))``" #: ../Doc/library/operator.rst:420 msgid "Slicing" -msgstr "" +msgstr "Tranche" #: ../Doc/library/operator.rst:420 msgid "``seq[i:j]``" @@ -617,7 +685,7 @@ msgstr "``getitem(seq, slice(i, j))``" #: ../Doc/library/operator.rst:422 msgid "String Formatting" -msgstr "" +msgstr "Formatage de chaînes de caractères" #: ../Doc/library/operator.rst:422 msgid "``s % obj``" @@ -629,7 +697,7 @@ msgstr "``mod(s, obj)``" #: ../Doc/library/operator.rst:424 msgid "Subtraction" -msgstr "" +msgstr "Soustraction" #: ../Doc/library/operator.rst:424 msgid "``a - b``" @@ -641,7 +709,7 @@ msgstr "``sub(a, b)``" #: ../Doc/library/operator.rst:426 msgid "Truth Test" -msgstr "" +msgstr "Test de véracité" #: ../Doc/library/operator.rst:426 msgid "``obj``" @@ -654,7 +722,7 @@ msgstr "``truth(obj)``" #: ../Doc/library/operator.rst:428 ../Doc/library/operator.rst:430 #: ../Doc/library/operator.rst:436 ../Doc/library/operator.rst:438 msgid "Ordering" -msgstr "" +msgstr "Ordre" #: ../Doc/library/operator.rst:428 msgid "``a < b``" @@ -674,7 +742,7 @@ msgstr "``le(a, b)``" #: ../Doc/library/operator.rst:432 msgid "Equality" -msgstr "" +msgstr "Égalité" #: ../Doc/library/operator.rst:432 msgid "``a == b``" @@ -686,7 +754,7 @@ msgstr "``eq(a, b)``" #: ../Doc/library/operator.rst:434 msgid "Difference" -msgstr "Différence" +msgstr "Inégalité" #: ../Doc/library/operator.rst:434 msgid "``a != b``" @@ -713,8 +781,8 @@ msgid "``gt(a, b)``" msgstr "``gt(a, b)``" #: ../Doc/library/operator.rst:442 -msgid "Inplace Operators" -msgstr "" +msgid "In-place Operators" +msgstr "Opérateurs en-place" #: ../Doc/library/operator.rst:444 msgid "" @@ -725,6 +793,12 @@ msgid "" "operator.iadd(x, y)`` is equivalent to the compound statement ``z = x; z += " "y``." msgstr "" +"Beaucoup d'opérations ont une version travaillant « en-place ». Les " +"fonctions listées ci-dessous fournissent un accès plus direct aux opérateurs " +"en-place que la syntaxe Python habituelle ; par exemple, l'expression :term:" +"`statement` ``x += y`` équivaut à ``x = operator.iadd(x, y)``. Autrement " +"dit, l'expression ``z = operator.iadd(x, y)`` équivaut à l'expression " +"composée ``z = x; z += y``." #: ../Doc/library/operator.rst:451 msgid "" @@ -733,73 +807,84 @@ msgid "" "place functions listed below only do the first step, calling the in-place " "method. The second step, assignment, is not handled." msgstr "" +"Dans ces exemples, notez que lorsqu'une méthode en-place est appelée, le " +"calcul et l'affectation sont effectués en deux étapes distinctes. Les " +"fonctions en-place de la liste ci-dessous ne font que la première, en " +"appelant la méthode en-place. La seconde étape, l'affectation, n'est pas " +"effectuée." #: ../Doc/library/operator.rst:456 msgid "" "For immutable targets such as strings, numbers, and tuples, the updated " "value is computed, but not assigned back to the input variable:" msgstr "" +"Pour des paramètres non-mutables comme les chaînes de caractères, les " +"nombres et les n-uplets, la nouvelle valeur est calculée, mais pas affectée " +"à la variable d'entrée:" #: ../Doc/library/operator.rst:465 msgid "" -"For mutable targets such as lists and dictionaries, the inplace method will " +"For mutable targets such as lists and dictionaries, the in-place method will " "perform the update, so no subsequent assignment is necessary:" msgstr "" +"Pour des paramètres mutables comme les listes et les dictionnaires, la " +"méthode en-place modifiera la valeur, aucune affectation ultérieure n'est " +"nécessaire :" #: ../Doc/library/operator.rst:477 msgid "``a = iadd(a, b)`` is equivalent to ``a += b``." -msgstr "``a = iadd(a, b)`` is equivalent to ``a += b``." +msgstr "``a = iadd(a, b)`` équivaut à ``a += b``." #: ../Doc/library/operator.rst:483 msgid "``a = iand(a, b)`` is equivalent to ``a &= b``." -msgstr "``a = iand(a, b)`` is equivalent to ``a &= b``." +msgstr "``a = iand(a, b)`` équivaut à ``a &= b``." #: ../Doc/library/operator.rst:489 msgid "" "``a = iconcat(a, b)`` is equivalent to ``a += b`` for *a* and *b* sequences." msgstr "" -"``a = iconcat(a, b)`` is equivalent to ``a += b`` for *a* and *b* sequences." +"``a = iconcat(a, b)`` équivaut à ``a += b`` où *a* et *b* sont des séquences." #: ../Doc/library/operator.rst:495 msgid "``a = ifloordiv(a, b)`` is equivalent to ``a //= b``." -msgstr "``a = ifloordiv(a, b)`` is equivalent to ``a //= b``." +msgstr "``a = ifloordiv(a, b)``équivaut à ``a //= b``." #: ../Doc/library/operator.rst:501 msgid "``a = ilshift(a, b)`` is equivalent to ``a <<= b``." -msgstr "``a = ilshift(a, b)`` is equivalent to ``a <<= b``." +msgstr "``a = ilshift(a, b)`` équivaut à ``a <<= b``." #: ../Doc/library/operator.rst:507 msgid "``a = imod(a, b)`` is equivalent to ``a %= b``." -msgstr "``a = imod(a, b)`` is equivalent to ``a %= b``." +msgstr "``a = imod(a, b)`` équivaut à ``a %= b``." #: ../Doc/library/operator.rst:513 msgid "``a = imul(a, b)`` is equivalent to ``a *= b``." -msgstr "``a = imul(a, b)`` is equivalent to ``a *= b``." +msgstr "``a = imul(a, b)`` équivaut à ``a *= b``." #: ../Doc/library/operator.rst:519 msgid "``a = imatmul(a, b)`` is equivalent to ``a @= b``." -msgstr "``a = imatmul(a, b)`` is equivalent to ``a @= b``." +msgstr "``a = imatmul(a, b)`` équivaut à ``a @= b``." #: ../Doc/library/operator.rst:527 msgid "``a = ior(a, b)`` is equivalent to ``a |= b``." -msgstr "``a = ior(a, b)`` is equivalent to ``a |= b``." +msgstr "``a = ior(a, b)`` équivaut à ``a |= b``." #: ../Doc/library/operator.rst:533 msgid "``a = ipow(a, b)`` is equivalent to ``a **= b``." -msgstr "``a = ipow(a, b)`` is equivalent to ``a **= b``." +msgstr "``a = ipow(a, b)`` équivaut à ``a **= b``." #: ../Doc/library/operator.rst:539 msgid "``a = irshift(a, b)`` is equivalent to ``a >>= b``." -msgstr "``a = irshift(a, b)`` is equivalent to ``a >>= b``." +msgstr "``a = irshift(a, b)`` équivaut à ``a >>= b``." #: ../Doc/library/operator.rst:545 msgid "``a = isub(a, b)`` is equivalent to ``a -= b``." -msgstr "``a = isub(a, b)`` is equivalent to ``a -= b``." +msgstr "``a = isub(a, b)`` équivaut à ``a -= b``." #: ../Doc/library/operator.rst:551 msgid "``a = itruediv(a, b)`` is equivalent to ``a /= b``." -msgstr "``a = itruediv(a, b)`` is equivalent to ``a /= b``." +msgstr "``a = itruediv(a, b)`` équivaut à ``a /= b``." #: ../Doc/library/operator.rst:557 msgid "``a = ixor(a, b)`` is equivalent to ``a ^= b``." -msgstr "``a = ixor(a, b)`` is equivalent to ``a ^= b``." +msgstr "``a = ixor(a, b)`` équivaut à ``a ^= b``." diff --git a/library/optparse.po b/library/optparse.po index 00e0443ad..7a7c0f15d 100644 --- a/library/optparse.po +++ b/library/optparse.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-07-03 10:48+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -489,7 +489,7 @@ msgstr "" #: ../Doc/library/optparse.rst:382 msgid "" "Flag options---set a variable to true or false when a particular option is " -"seen ---are quite common. :mod:`optparse` supports them with two separate " +"seen---are quite common. :mod:`optparse` supports them with two separate " "actions, ``store_true`` and ``store_false``. For example, you might have a " "``verbose`` flag that is turned on with ``-v`` and off with ``-q``::" msgstr "" @@ -498,7 +498,7 @@ msgstr "" msgid "" "Here we have two different options with the same destination, which is " "perfectly OK. (It just means you have to be a bit careful when setting " -"default values--- see below.)" +"default values---see below.)" msgstr "" #: ../Doc/library/optparse.rst:394 @@ -657,9 +657,9 @@ msgstr "" #: ../Doc/library/optparse.rst:528 msgid "" -"every option defines a help string, and doesn't worry about line-" -"wrapping--- :mod:`optparse` takes care of wrapping lines and making the help " -"output look good." +"every option defines a help string, and doesn't worry about line-wrapping---" +"\\ :mod:`optparse` takes care of wrapping lines and making the help output " +"look good." msgstr "" #: ../Doc/library/optparse.rst:532 @@ -1782,7 +1782,7 @@ msgstr "" #: ../Doc/library/optparse.rst:1483 msgid "Cleanup" -msgstr "" +msgstr "Nettoyage" #: ../Doc/library/optparse.rst:1485 msgid "" diff --git a/library/os.path.po b/library/os.path.po index 5952fcadd..462c69265 100644 --- a/library/os.path.po +++ b/library/os.path.po @@ -5,24 +5,27 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-30 22:25+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:40+0200\n" +"Last-Translator: Paul Bourhis \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/os.path.rst:2 msgid ":mod:`os.path` --- Common pathname manipulations" -msgstr "" +msgstr ":mod:`os.path` — manipulation courante des chemins" #: ../Doc/library/os.path.rst:7 msgid "" "**Source code:** :source:`Lib/posixpath.py` (for POSIX), :source:`Lib/ntpath." "py` (for Windows NT), and :source:`Lib/macpath.py` (for Macintosh)" msgstr "" +"**Code source :** :source:`Lib/posixpath.py` (pour POSIX), :source:`Lib/" +"ntpath.py` (pour Windows NT), et :source:`Lib/macpath.py` (pour Macintosh)" #: ../Doc/library/os.path.rst:15 msgid "" @@ -37,6 +40,20 @@ msgid "" "encoding), hence Windows applications should use string objects to access " "all files." msgstr "" +"Ce module implémente certaines fonctions utiles sur le nom des chemins. Pour " +"lire ou écrire des fichiers, voir :func:`open`, et pour accéder au système " +"de fichier, voir le module :mod:`os`. Les paramètres de chemin d’accès " +"peuvent être passés sous forme de chaînes de caractères ou de chaîne " +"d'octets. Les programmes sont encouragés à représenter les noms de fichiers " +"en tant que chaînes de caractères Unicode. Malheureusement, certains noms de " +"fichiers peuvent ne pas être représentés sous forme de chaînes de caractères " +"sous UNIX, ainsi, les programmes qui doivent prendre en charge les noms de " +"fichiers arbitraires sur UNIX doivent utiliser des chaînes d'octets pour " +"représenter leurs chemins d’accès. Inversement, l’utilisation de chaîne " +"d'octets ne peut pas représenter tous les noms de fichiers sous Windows " +"(dans le codage ``mbcs`` standard), par conséquent les applications Windows " +"doivent utiliser des chaînes de caractères Unicode pour accéder à tous les " +"fichiers." #: ../Doc/library/os.path.rst:26 msgid "" @@ -45,6 +62,11 @@ msgid "" "explicitly when an application desires shell-like path expansion. (See also " "the :mod:`glob` module.)" msgstr "" +"Contrairement à une invite de commandes Unix, Python ne fait aucune " +"extension de chemin *automatique*. Des fonctions telles que :func:" +"`expanduser` et :func:`expandvars` peuvent être appelées explicitement " +"lorsqu'une application souhaite une extension de chemin semblable à celui " +"d'une invite de commande (voir aussi le module :mod:`glob`)." #: ../Doc/library/os.path.rst:33 msgid "The :mod:`pathlib` module offers high-level path objects." @@ -58,6 +80,9 @@ msgid "" "their parameters. The result is an object of the same type, if a path or " "file name is returned." msgstr "" +"Toutes ces fonctions n'acceptent que des chaînes d'octets ou des chaînes de " +"caractères en tant que paramètres. Le résultat est un objet du même type si " +"un chemin ou un nom de fichier est renvoyé." #: ../Doc/library/os.path.rst:45 msgid "" @@ -69,18 +94,25 @@ msgid "" "path that is *always* in one of the different formats. They all have the " "same interface:" msgstr "" +"Comme les différents systèmes d'exploitation ont des conventions de noms de " +"chemins différentes, il existe plusieurs versions de ce module dans la " +"bibliothèque standard. Le module :mod:`os.path` est toujours le module de " +"chemin adapté au système d'exploitation sur lequel Python tourne, et donc " +"adapté pour les chemins locaux. Cependant, vous pouvez également importer et " +"utiliser les modules individuels si vous voulez manipuler un chemin qui est " +"*toujours* dans l'un des différents formats. Ils ont tous la même interface :" #: ../Doc/library/os.path.rst:53 msgid ":mod:`posixpath` for UNIX-style paths" -msgstr "" +msgstr ":mod:`posixpath` pour les chemins de type UNIX" #: ../Doc/library/os.path.rst:54 msgid ":mod:`ntpath` for Windows paths" -msgstr "" +msgstr ":mod:`ntpath` pour les chemins Windows" #: ../Doc/library/os.path.rst:55 msgid ":mod:`macpath` for old-style MacOS paths" -msgstr "" +msgstr ":mod:`macpath` pour l'ancienne forme des chemins MacOS" #: ../Doc/library/os.path.rst:60 msgid "" @@ -88,20 +120,23 @@ msgid "" "platforms, this is equivalent to calling the function :func:`normpath` as " "follows: ``normpath(join(os.getcwd(), path))``." msgstr "" +"Renvoie une version absolue et normalisée du chemin d'accès *path*. Sur la " +"plupart des plates-formes, cela équivaut à appeler la fonction :func:" +"`normpath` comme suit : ``normpath(join(os.getcwd(), chemin))```." #: ../Doc/library/os.path.rst:64 ../Doc/library/os.path.rst:77 #: ../Doc/library/os.path.rst:116 ../Doc/library/os.path.rst:125 #: ../Doc/library/os.path.rst:141 ../Doc/library/os.path.rst:151 -#: ../Doc/library/os.path.rst:175 ../Doc/library/os.path.rst:189 -#: ../Doc/library/os.path.rst:206 ../Doc/library/os.path.rst:218 -#: ../Doc/library/os.path.rst:227 ../Doc/library/os.path.rst:237 -#: ../Doc/library/os.path.rst:247 ../Doc/library/os.path.rst:257 -#: ../Doc/library/os.path.rst:267 ../Doc/library/os.path.rst:285 -#: ../Doc/library/os.path.rst:318 ../Doc/library/os.path.rst:330 -#: ../Doc/library/os.path.rst:339 ../Doc/library/os.path.rst:354 -#: ../Doc/library/os.path.rst:372 ../Doc/library/os.path.rst:385 -#: ../Doc/library/os.path.rst:401 ../Doc/library/os.path.rst:417 -#: ../Doc/library/os.path.rst:438 ../Doc/library/os.path.rst:449 +#: ../Doc/library/os.path.rst:177 ../Doc/library/os.path.rst:194 +#: ../Doc/library/os.path.rst:211 ../Doc/library/os.path.rst:223 +#: ../Doc/library/os.path.rst:232 ../Doc/library/os.path.rst:242 +#: ../Doc/library/os.path.rst:252 ../Doc/library/os.path.rst:262 +#: ../Doc/library/os.path.rst:272 ../Doc/library/os.path.rst:291 +#: ../Doc/library/os.path.rst:324 ../Doc/library/os.path.rst:336 +#: ../Doc/library/os.path.rst:345 ../Doc/library/os.path.rst:360 +#: ../Doc/library/os.path.rst:378 ../Doc/library/os.path.rst:391 +#: ../Doc/library/os.path.rst:407 ../Doc/library/os.path.rst:423 +#: ../Doc/library/os.path.rst:444 ../Doc/library/os.path.rst:455 msgid "Accepts a :term:`path-like object`." msgstr "Accepte un :term:`path-like object`." @@ -113,18 +148,25 @@ msgid "" "program; where :program:`basename` for ``'/foo/bar/'`` returns ``'bar'``, " "the :func:`basename` function returns an empty string (``''``)." msgstr "" +"Renvoie le nom de base du chemin d'accès *path*. C'est le second élément de " +"la paire renvoyée en passant *path* à la fonction :func:`split`. Notez que " +"le résultat de cette fonction est différent de celui du programme Unix :" +"program:`basename` ; là où :program:`basename` pour ``'/foo/bar/'`` renvoie " +"``'bar'``, la fonction :func:`basename` renvoie une chaîne vide (``''``)." #: ../Doc/library/os.path.rst:83 msgid "" "Return the longest common sub-path of each pathname in the sequence " -"*paths*. Raise ValueError if *paths* contains both absolute and relative " -"pathnames, or if *paths* is empty. Unlike :func:`commonprefix`, this " -"returns a valid path." +"*paths*. Raise :exc:`ValueError` if *paths* contains both absolute and " +"relative pathnames, or if *paths* is empty. Unlike :func:`commonprefix`, " +"this returns a valid path." msgstr "" -#: ../Doc/library/os.path.rst:88 -msgid "Availability: Unix, Windows" -msgstr "Disponibilité Unix, Windows" +#: ../Doc/library/os.path.rst:89 ../Doc/library/os.path.rst:359 +#: ../Doc/library/os.path.rst:371 ../Doc/library/os.path.rst:387 +#: ../Doc/library/os.path.rst:403 +msgid ":ref:`Availability `: Unix, Windows." +msgstr ":ref:`Disponibilité ` : Unix, Windows." #: ../Doc/library/os.path.rst:92 msgid "Accepts a sequence of :term:`path-like objects `." @@ -171,13 +213,13 @@ msgid "" "func:`os.lstat`." msgstr "" -#: ../Doc/library/os.path.rst:157 +#: ../Doc/library/os.path.rst:159 msgid "" "On Unix and Windows, return the argument with an initial component of ``~`` " "or ``~user`` replaced by that *user*'s home directory." msgstr "" -#: ../Doc/library/os.path.rst:162 +#: ../Doc/library/os.path.rst:164 msgid "" "On Unix, an initial ``~`` is replaced by the environment variable :envvar:" "`HOME` if it is set; otherwise the current user's home directory is looked " @@ -185,7 +227,7 @@ msgid "" "initial ``~user`` is looked up directly in the password directory." msgstr "" -#: ../Doc/library/os.path.rst:167 +#: ../Doc/library/os.path.rst:169 msgid "" "On Windows, :envvar:`HOME` and :envvar:`USERPROFILE` will be used if set, " "otherwise a combination of :envvar:`HOMEPATH` and :envvar:`HOMEDRIVE` will " @@ -193,13 +235,13 @@ msgid "" "component from the created user path derived above." msgstr "" -#: ../Doc/library/os.path.rst:172 +#: ../Doc/library/os.path.rst:174 msgid "" "If the expansion fails or if the path does not begin with a tilde, the path " "is returned unchanged." msgstr "" -#: ../Doc/library/os.path.rst:181 +#: ../Doc/library/os.path.rst:186 msgid "" "Return the argument with environment variables expanded. Substrings of the " "form ``$name`` or ``${name}`` are replaced by the value of environment " @@ -207,13 +249,13 @@ msgid "" "variables are left unchanged." msgstr "" -#: ../Doc/library/os.path.rst:186 +#: ../Doc/library/os.path.rst:191 msgid "" "On Windows, ``%name%`` expansions are supported in addition to ``$name`` and " "``${name}``." msgstr "" -#: ../Doc/library/os.path.rst:195 +#: ../Doc/library/os.path.rst:200 msgid "" "Return the time of last access of *path*. The return value is a floating " "point number giving the number of seconds since the epoch (see the :mod:" @@ -221,7 +263,7 @@ msgid "" "inaccessible." msgstr "" -#: ../Doc/library/os.path.rst:202 +#: ../Doc/library/os.path.rst:207 msgid "" "Return the time of last modification of *path*. The return value is a " "floating point number giving the number of seconds since the epoch (see " @@ -229,7 +271,7 @@ msgid "" "is inaccessible." msgstr "" -#: ../Doc/library/os.path.rst:212 +#: ../Doc/library/os.path.rst:217 msgid "" "Return the system's ctime which, on some systems (like Unix) is the time of " "the last metadata change, and, on others (like Windows), is the creation " @@ -238,57 +280,58 @@ msgid "" "file does not exist or is inaccessible." msgstr "" -#: ../Doc/library/os.path.rst:224 +#: ../Doc/library/os.path.rst:229 msgid "" "Return the size, in bytes, of *path*. Raise :exc:`OSError` if the file does " "not exist or is inaccessible." msgstr "" -#: ../Doc/library/os.path.rst:233 +#: ../Doc/library/os.path.rst:238 msgid "" "Return ``True`` if *path* is an absolute pathname. On Unix, that means it " "begins with a slash, on Windows that it begins with a (back)slash after " "chopping off a potential drive letter." msgstr "" -#: ../Doc/library/os.path.rst:243 +#: ../Doc/library/os.path.rst:248 msgid "" "Return ``True`` if *path* is an :func:`existing ` regular file. This " "follows symbolic links, so both :func:`islink` and :func:`isfile` can be " "true for the same path." msgstr "" -#: ../Doc/library/os.path.rst:253 +#: ../Doc/library/os.path.rst:258 msgid "" "Return ``True`` if *path* is an :func:`existing ` directory. This " "follows symbolic links, so both :func:`islink` and :func:`isdir` can be true " "for the same path." msgstr "" -#: ../Doc/library/os.path.rst:263 +#: ../Doc/library/os.path.rst:268 msgid "" "Return ``True`` if *path* refers to an :func:`existing ` directory " "entry that is a symbolic link. Always ``False`` if symbolic links are not " "supported by the Python runtime." msgstr "" -#: ../Doc/library/os.path.rst:273 +#: ../Doc/library/os.path.rst:278 msgid "" "Return ``True`` if pathname *path* is a :dfn:`mount point`: a point in a " "file system where a different file system has been mounted. On POSIX, the " -"function checks whether *path*'s parent, :file:`path/..`, is on a different " -"device than *path*, or whether :file:`path/..` and *path* point to the same " -"i-node on the same device --- this should detect mount points for all Unix " -"and POSIX variants. On Windows, a drive letter root and a share UNC are " -"always mount points, and for any other path ``GetVolumePathName`` is called " -"to see if it is different from the input path." +"function checks whether *path*'s parent, :file:`{path}/..`, is on a " +"different device than *path*, or whether :file:`{path}/..` and *path* point " +"to the same i-node on the same device --- this should detect mount points " +"for all Unix and POSIX variants. It is not able to reliably detect bind " +"mounts on the same filesystem. On Windows, a drive letter root and a share " +"UNC are always mount points, and for any other path ``GetVolumePathName`` is " +"called to see if it is different from the input path." msgstr "" -#: ../Doc/library/os.path.rst:282 +#: ../Doc/library/os.path.rst:288 msgid "Support for detecting non-root mount points on Windows." msgstr "" -#: ../Doc/library/os.path.rst:291 +#: ../Doc/library/os.path.rst:297 msgid "" "Join one or more path components intelligently. The return value is the " "concatenation of *path* and any members of *\\*paths* with exactly one " @@ -298,7 +341,7 @@ msgid "" "thrown away and joining continues from the absolute path component." msgstr "" -#: ../Doc/library/os.path.rst:299 +#: ../Doc/library/os.path.rst:305 msgid "" "On Windows, the drive letter is not reset when an absolute path component (e." "g., ``r'\\foo'``) is encountered. If a component contains a drive letter, " @@ -308,20 +351,20 @@ msgid "" "file:`C:` (:file:`c:foo`), not :file:`c:\\\\foo`." msgstr "" -#: ../Doc/library/os.path.rst:306 +#: ../Doc/library/os.path.rst:312 msgid "Accepts a :term:`path-like object` for *path* and *paths*." msgstr "" -#: ../Doc/library/os.path.rst:312 +#: ../Doc/library/os.path.rst:318 msgid "" -"Normalize the case of a pathname. On Unix and Mac OS X, this returns the " -"path unchanged; on case-insensitive filesystems, it converts the path to " -"lowercase. On Windows, it also converts forward slashes to backward " -"slashes. Raise a TypeError if the type of *path* is not ``str`` or ``bytes`` " -"(directly or indirectly through the :class:`os.PathLike` interface)." +"Normalize the case of a pathname. On Windows, convert all characters in the " +"pathname to lowercase, and also convert forward slashes to backward slashes. " +"On other operating systems, return the path unchanged. Raise a :exc:" +"`TypeError` if the type of *path* is not ``str`` or ``bytes`` (directly or " +"indirectly through the :class:`os.PathLike` interface)." msgstr "" -#: ../Doc/library/os.path.rst:324 +#: ../Doc/library/os.path.rst:330 msgid "" "Normalize a pathname by collapsing redundant separators and up-level " "references so that ``A//B``, ``A/B/``, ``A/./B`` and ``A/foo/../B`` all " @@ -330,14 +373,14 @@ msgid "" "backward slashes. To normalize case, use :func:`normcase`." msgstr "" -#: ../Doc/library/os.path.rst:336 +#: ../Doc/library/os.path.rst:342 msgid "" "Return the canonical path of the specified filename, eliminating any " "symbolic links encountered in the path (if they are supported by the " "operating system)." msgstr "" -#: ../Doc/library/os.path.rst:345 +#: ../Doc/library/os.path.rst:351 msgid "" "Return a relative filepath to *path* either from the current directory or " "from an optional *start* directory. This is a path computation: the " @@ -345,38 +388,33 @@ msgid "" "*start*." msgstr "" -#: ../Doc/library/os.path.rst:350 +#: ../Doc/library/os.path.rst:356 msgid "*start* defaults to :attr:`os.curdir`." msgstr "" -#: ../Doc/library/os.path.rst:352 ../Doc/library/os.path.rst:364 -#: ../Doc/library/os.path.rst:380 ../Doc/library/os.path.rst:396 -msgid "Availability: Unix, Windows." -msgstr "Disponibilité : Unix, Windows." - -#: ../Doc/library/os.path.rst:360 +#: ../Doc/library/os.path.rst:366 msgid "" "Return ``True`` if both pathname arguments refer to the same file or " "directory. This is determined by the device number and i-node number and " "raises an exception if an :func:`os.stat` call on either pathname fails." msgstr "" -#: ../Doc/library/os.path.rst:366 ../Doc/library/os.path.rst:382 -#: ../Doc/library/os.path.rst:398 +#: ../Doc/library/os.path.rst:372 ../Doc/library/os.path.rst:388 +#: ../Doc/library/os.path.rst:404 msgid "Added Windows support." -msgstr "Support Windows ajouté." +msgstr "Prise en charge de Windows." -#: ../Doc/library/os.path.rst:369 +#: ../Doc/library/os.path.rst:375 msgid "Windows now uses the same implementation as all other platforms." msgstr "" -#: ../Doc/library/os.path.rst:378 +#: ../Doc/library/os.path.rst:384 msgid "" "Return ``True`` if the file descriptors *fp1* and *fp2* refer to the same " "file." msgstr "" -#: ../Doc/library/os.path.rst:391 +#: ../Doc/library/os.path.rst:397 msgid "" "Return ``True`` if the stat tuples *stat1* and *stat2* refer to the same " "file. These structures may have been returned by :func:`os.fstat`, :func:`os." @@ -384,7 +422,7 @@ msgid "" "comparison used by :func:`samefile` and :func:`sameopenfile`." msgstr "" -#: ../Doc/library/os.path.rst:407 +#: ../Doc/library/os.path.rst:413 msgid "" "Split the pathname *path* into a pair, ``(head, tail)`` where *tail* is the " "last pathname component and *head* is everything leading up to that. The " @@ -397,7 +435,7 @@ msgid "" "and :func:`basename`." msgstr "" -#: ../Doc/library/os.path.rst:423 +#: ../Doc/library/os.path.rst:429 msgid "" "Split the pathname *path* into a pair ``(drive, tail)`` where *drive* is " "either a mount point or the empty string. On systems which do not use drive " @@ -405,26 +443,26 @@ msgid "" "``drive + tail`` will be the same as *path*." msgstr "" -#: ../Doc/library/os.path.rst:428 +#: ../Doc/library/os.path.rst:434 msgid "" "On Windows, splits a pathname into drive/UNC sharepoint and relative path." msgstr "" -#: ../Doc/library/os.path.rst:430 +#: ../Doc/library/os.path.rst:436 msgid "" "If the path contains a drive letter, drive will contain everything up to and " "including the colon. e.g. ``splitdrive(\"c:/dir\")`` returns ``(\"c:\", \"/" "dir\")``" msgstr "" -#: ../Doc/library/os.path.rst:434 +#: ../Doc/library/os.path.rst:440 msgid "" "If the path contains a UNC path, drive will contain the host name and share, " "up to but not including the fourth separator. e.g. ``splitdrive(\"//host/" "computer/dir\")`` returns ``(\"//host/computer\", \"/dir\")``" msgstr "" -#: ../Doc/library/os.path.rst:444 +#: ../Doc/library/os.path.rst:450 msgid "" "Split the pathname *path* into a pair ``(root, ext)`` such that ``root + " "ext == path``, and *ext* is empty or begins with a period and contains at " @@ -432,11 +470,14 @@ msgid "" "cshrc')`` returns ``('.cshrc', '')``." msgstr "" -#: ../Doc/library/os.path.rst:455 +#: ../Doc/library/os.path.rst:461 msgid "" "``True`` if arbitrary Unicode strings can be used as file names (within " "limitations imposed by the file system)." msgstr "" +#~ msgid "Availability: Unix, Windows" +#~ msgstr "Disponibilité Unix, Windows" + #~ msgid "Availability: Windows." #~ msgstr "Disponibilité : Windows." diff --git a/library/os.po b/library/os.po index fc76dcdbd..7d159a392 100644 --- a/library/os.po +++ b/library/os.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-29 15:10+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-06-18 22:02+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/os.rst:2 msgid ":mod:`os` --- Miscellaneous operating system interfaces" -msgstr ":mod:`os` --- Diverses interfaces pour le système d'exploitation" +msgstr ":mod:`os` — Diverses interfaces pour le système d'exploitation" #: ../Doc/library/os.rst:7 msgid "**Source code:** :source:`Lib/os.py`" @@ -79,25 +79,7 @@ msgstr "" "aussi bien des *bytes* que des *string*, et si un chemin ou un nom de " "fichier est renvoyé, il sera du même type." -#: ../Doc/library/os.rst:35 -msgid "" -"An \"Availability: Unix\" note means that this function is commonly found on " -"Unix systems. It does not make any claims about its existence on a specific " -"operating system." -msgstr "" -"Une note \"Disponibilité : Unix \" signifie que cette fonction est " -"communément implémentée dans les systèmes Unix. Une telle note ne prétend " -"pas l'existence de la fonction sur un système d'exploitation particulier." - -#: ../Doc/library/os.rst:39 -msgid "" -"If not separately noted, all functions that claim \"Availability: Unix\" are " -"supported on Mac OS X, which builds on a Unix core." -msgstr "" -"Si ce n'est pas mentionné séparément, toutes les fonctions se réclamant " -"\"Disponibilité : Unix\" sont gérées sur Mac OS X, qui est basé sur Unix." - -#: ../Doc/library/os.rst:47 +#: ../Doc/library/os.rst:38 msgid "" "All functions in this module raise :exc:`OSError` in the case of invalid or " "inaccessible file names and paths, or other arguments that have the correct " @@ -107,11 +89,11 @@ msgstr "" "chemin ou nom de fichier invalide ou inaccessible, ou si d'autres arguments " "sont de type correct mais non géré par le système d'exploitation." -#: ../Doc/library/os.rst:53 +#: ../Doc/library/os.rst:44 msgid "An alias for the built-in :exc:`OSError` exception." msgstr "Un alias pour les exceptions natives :exc:`OSError`." -#: ../Doc/library/os.rst:58 +#: ../Doc/library/os.rst:49 msgid "" "The name of the operating system dependent module imported. The following " "names have currently been registered: ``'posix'``, ``'nt'``, ``'java'``." @@ -120,7 +102,7 @@ msgstr "" "suivants ont actuellement été enregistrés : ``'posix'``, ``'nt'``, " "``'java'``." -#: ../Doc/library/os.rst:63 +#: ../Doc/library/os.rst:54 msgid "" ":attr:`sys.platform` has a finer granularity. :func:`os.uname` gives system-" "dependent version information." @@ -128,7 +110,7 @@ msgstr "" ":attr:`sys.platform` a une granularité plus fine. :func:`os.uname` donne des " "informations de version dépendantes de système." -#: ../Doc/library/os.rst:66 +#: ../Doc/library/os.rst:57 msgid "" "The :mod:`platform` module provides detailed checks for the system's " "identity." @@ -136,13 +118,13 @@ msgstr "" "Le module :mod:`platform` fournit des vérifications détaillées pour " "l'identité du système." -#: ../Doc/library/os.rst:74 +#: ../Doc/library/os.rst:65 msgid "File Names, Command Line Arguments, and Environment Variables" msgstr "" "Noms de fichiers, arguments en ligne de commande, et variables " "d'environnement" -#: ../Doc/library/os.rst:76 +#: ../Doc/library/os.rst:67 msgid "" "In Python, file names, command line arguments, and environment variables are " "represented using the string type. On some systems, decoding these strings " @@ -157,7 +139,7 @@ msgstr "" "utilise l'encodage du système de fichiers pour réaliser ces conversions " "(voir :func:`sys.getfilesystemencoding`)." -#: ../Doc/library/os.rst:82 +#: ../Doc/library/os.rst:73 msgid "" "On some systems, conversion using the file system encoding may fail. In this " "case, Python uses the :ref:`surrogateescape encoding error handler " @@ -172,7 +154,7 @@ msgstr "" "sont replacés par un caractère Unicode U+DCxx au décodage, et ceux-ci sont " "retraduits en le bon octet à l'encodage." -#: ../Doc/library/os.rst:90 +#: ../Doc/library/os.rst:81 msgid "" "The file system encoding must guarantee to successfully decode all bytes " "below 128. If the file system encoding fails to provide this guarantee, API " @@ -183,11 +165,11 @@ msgstr "" "fichiers ne peut garantir cela, les fonctions de l'API peuvent lever une " "UnicodeError." -#: ../Doc/library/os.rst:98 +#: ../Doc/library/os.rst:89 msgid "Process Parameters" msgstr "Paramètres de processus" -#: ../Doc/library/os.rst:100 +#: ../Doc/library/os.rst:91 msgid "" "These functions and data items provide information and operate on the " "current process and user." @@ -195,80 +177,80 @@ msgstr "" "Ces fonctions et valeurs fournissent des informations et agissent sur le " "processus actuel et sur l'utilisateur." -#: ../Doc/library/os.rst:106 +#: ../Doc/library/os.rst:97 msgid "" "Return the filename corresponding to the controlling terminal of the process." msgstr "" "Renvoie l'identifiant de fichier correspondant au terminal contrôlant le " "processus." -#: ../Doc/library/os.rst:108 ../Doc/library/os.rst:270 -#: ../Doc/library/os.rst:279 ../Doc/library/os.rst:288 -#: ../Doc/library/os.rst:297 ../Doc/library/os.rst:306 -#: ../Doc/library/os.rst:342 ../Doc/library/os.rst:350 -#: ../Doc/library/os.rst:386 ../Doc/library/os.rst:397 -#: ../Doc/library/os.rst:407 ../Doc/library/os.rst:417 -#: ../Doc/library/os.rst:428 ../Doc/library/os.rst:437 -#: ../Doc/library/os.rst:467 ../Doc/library/os.rst:474 -#: ../Doc/library/os.rst:481 ../Doc/library/os.rst:490 -#: ../Doc/library/os.rst:502 ../Doc/library/os.rst:511 -#: ../Doc/library/os.rst:537 ../Doc/library/os.rst:544 -#: ../Doc/library/os.rst:553 ../Doc/library/os.rst:562 -#: ../Doc/library/os.rst:569 ../Doc/library/os.rst:576 -#: ../Doc/library/os.rst:585 ../Doc/library/os.rst:757 -#: ../Doc/library/os.rst:767 ../Doc/library/os.rst:775 -#: ../Doc/library/os.rst:798 ../Doc/library/os.rst:819 -#: ../Doc/library/os.rst:852 ../Doc/library/os.rst:870 -#: ../Doc/library/os.rst:882 ../Doc/library/os.rst:1050 -#: ../Doc/library/os.rst:1065 ../Doc/library/os.rst:1080 -#: ../Doc/library/os.rst:1093 ../Doc/library/os.rst:1161 -#: ../Doc/library/os.rst:1260 ../Doc/library/os.rst:1277 -#: ../Doc/library/os.rst:1289 ../Doc/library/os.rst:1307 -#: ../Doc/library/os.rst:1317 ../Doc/library/os.rst:1325 -#: ../Doc/library/os.rst:1334 ../Doc/library/os.rst:1369 -#: ../Doc/library/os.rst:1606 ../Doc/library/os.rst:1671 -#: ../Doc/library/os.rst:1685 ../Doc/library/os.rst:1697 -#: ../Doc/library/os.rst:1716 ../Doc/library/os.rst:1729 -#: ../Doc/library/os.rst:1740 ../Doc/library/os.rst:1912 -#: ../Doc/library/os.rst:1934 ../Doc/library/os.rst:1978 -#: ../Doc/library/os.rst:1990 ../Doc/library/os.rst:2597 -#: ../Doc/library/os.rst:2744 ../Doc/library/os.rst:2965 -#: ../Doc/library/os.rst:3176 ../Doc/library/os.rst:3184 -#: ../Doc/library/os.rst:3191 ../Doc/library/os.rst:3198 -#: ../Doc/library/os.rst:3205 ../Doc/library/os.rst:3212 -#: ../Doc/library/os.rst:3219 ../Doc/library/os.rst:3226 -#: ../Doc/library/os.rst:3234 ../Doc/library/os.rst:3242 -#: ../Doc/library/os.rst:3249 ../Doc/library/os.rst:3256 -#: ../Doc/library/os.rst:3265 ../Doc/library/os.rst:3273 -#: ../Doc/library/os.rst:3281 ../Doc/library/os.rst:3288 -#: ../Doc/library/os.rst:3295 ../Doc/library/os.rst:3310 -#: ../Doc/library/os.rst:3355 ../Doc/library/os.rst:3362 -#: ../Doc/library/os.rst:3370 ../Doc/library/os.rst:3425 -#: ../Doc/library/os.rst:3623 ../Doc/library/os.rst:3638 -#: ../Doc/library/os.rst:3649 ../Doc/library/os.rst:3660 -#: ../Doc/library/os.rst:3673 ../Doc/library/os.rst:3720 -#: ../Doc/library/os.rst:3731 ../Doc/library/os.rst:3739 -#: ../Doc/library/os.rst:3755 ../Doc/library/os.rst:3767 -#: ../Doc/library/os.rst:3775 ../Doc/library/os.rst:3783 -#: ../Doc/library/os.rst:3791 ../Doc/library/os.rst:3799 -#: ../Doc/library/os.rst:3807 ../Doc/library/os.rst:3814 -#: ../Doc/library/os.rst:3821 ../Doc/library/os.rst:3967 -#: ../Doc/library/os.rst:3976 ../Doc/library/os.rst:3997 -#: ../Doc/library/os.rst:4007 ../Doc/library/os.rst:4016 -msgid "Availability: Unix." -msgstr "Disponibilité : Unix." - -#: ../Doc/library/os.rst:113 +#: ../Doc/library/os.rst:99 ../Doc/library/os.rst:261 ../Doc/library/os.rst:270 +#: ../Doc/library/os.rst:279 ../Doc/library/os.rst:289 +#: ../Doc/library/os.rst:298 ../Doc/library/os.rst:333 +#: ../Doc/library/os.rst:341 ../Doc/library/os.rst:378 +#: ../Doc/library/os.rst:389 ../Doc/library/os.rst:399 +#: ../Doc/library/os.rst:409 ../Doc/library/os.rst:419 +#: ../Doc/library/os.rst:429 ../Doc/library/os.rst:458 +#: ../Doc/library/os.rst:465 ../Doc/library/os.rst:472 +#: ../Doc/library/os.rst:482 ../Doc/library/os.rst:493 +#: ../Doc/library/os.rst:502 ../Doc/library/os.rst:520 +#: ../Doc/library/os.rst:528 ../Doc/library/os.rst:536 +#: ../Doc/library/os.rst:545 ../Doc/library/os.rst:553 +#: ../Doc/library/os.rst:560 ../Doc/library/os.rst:567 +#: ../Doc/library/os.rst:576 ../Doc/library/os.rst:748 +#: ../Doc/library/os.rst:758 ../Doc/library/os.rst:767 +#: ../Doc/library/os.rst:789 ../Doc/library/os.rst:810 +#: ../Doc/library/os.rst:844 ../Doc/library/os.rst:862 +#: ../Doc/library/os.rst:874 ../Doc/library/os.rst:1042 +#: ../Doc/library/os.rst:1057 ../Doc/library/os.rst:1072 +#: ../Doc/library/os.rst:1085 ../Doc/library/os.rst:1153 +#: ../Doc/library/os.rst:1252 ../Doc/library/os.rst:1269 +#: ../Doc/library/os.rst:1281 ../Doc/library/os.rst:1299 +#: ../Doc/library/os.rst:1308 ../Doc/library/os.rst:1316 +#: ../Doc/library/os.rst:1325 ../Doc/library/os.rst:1361 +#: ../Doc/library/os.rst:1598 ../Doc/library/os.rst:1663 +#: ../Doc/library/os.rst:1677 ../Doc/library/os.rst:1688 +#: ../Doc/library/os.rst:1708 ../Doc/library/os.rst:1721 +#: ../Doc/library/os.rst:1732 ../Doc/library/os.rst:1904 +#: ../Doc/library/os.rst:1926 ../Doc/library/os.rst:1970 +#: ../Doc/library/os.rst:1981 ../Doc/library/os.rst:2589 +#: ../Doc/library/os.rst:2736 ../Doc/library/os.rst:2957 +#: ../Doc/library/os.rst:3167 ../Doc/library/os.rst:3175 +#: ../Doc/library/os.rst:3182 ../Doc/library/os.rst:3189 +#: ../Doc/library/os.rst:3196 ../Doc/library/os.rst:3203 +#: ../Doc/library/os.rst:3210 ../Doc/library/os.rst:3217 +#: ../Doc/library/os.rst:3225 ../Doc/library/os.rst:3233 +#: ../Doc/library/os.rst:3240 ../Doc/library/os.rst:3247 +#: ../Doc/library/os.rst:3256 ../Doc/library/os.rst:3264 +#: ../Doc/library/os.rst:3272 ../Doc/library/os.rst:3279 +#: ../Doc/library/os.rst:3286 ../Doc/library/os.rst:3301 +#: ../Doc/library/os.rst:3346 ../Doc/library/os.rst:3353 +#: ../Doc/library/os.rst:3361 ../Doc/library/os.rst:3417 +#: ../Doc/library/os.rst:3614 ../Doc/library/os.rst:3630 +#: ../Doc/library/os.rst:3641 ../Doc/library/os.rst:3652 +#: ../Doc/library/os.rst:3665 ../Doc/library/os.rst:3711 +#: ../Doc/library/os.rst:3722 ../Doc/library/os.rst:3730 +#: ../Doc/library/os.rst:3746 ../Doc/library/os.rst:3758 +#: ../Doc/library/os.rst:3766 ../Doc/library/os.rst:3774 +#: ../Doc/library/os.rst:3782 ../Doc/library/os.rst:3790 +#: ../Doc/library/os.rst:3798 ../Doc/library/os.rst:3805 +#: ../Doc/library/os.rst:3812 ../Doc/library/os.rst:3958 +#: ../Doc/library/os.rst:3967 ../Doc/library/os.rst:3988 +#: ../Doc/library/os.rst:3998 ../Doc/library/os.rst:4007 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/os.rst:104 msgid "" "A :term:`mapping` object representing the string environment. For example, " "``environ['HOME']`` is the pathname of your home directory (on some " "platforms), and is equivalent to ``getenv(\"HOME\")`` in C." msgstr "" -"Un objet :term:`mapping` représentant la variable d'environnement. Par " -"exemple ``environ['HOME']`` est le chemin vers votre répertoire personnel " +"Un objet :term:`mapping` représentant les variables d'environnement. Par " +"exemple ``environ['HOME']`` est le chemin vers votre répertoire d’accueil " "(sur certaines plate-formes), et est équivalent à ``getenv(\"HOME\")`` en C." -#: ../Doc/library/os.rst:117 +#: ../Doc/library/os.rst:108 msgid "" "This mapping is captured the first time the :mod:`os` module is imported, " "typically during Python startup as part of processing :file:`site.py`. " @@ -281,7 +263,7 @@ msgstr "" "capture ne sont pas répercutés dans ``os.environ``, à part les modifications " "directes de ``os.environ``." -#: ../Doc/library/os.rst:122 +#: ../Doc/library/os.rst:113 msgid "" "If the platform supports the :func:`putenv` function, this mapping may be " "used to modify the environment as well as query the environment. :func:" @@ -292,7 +274,7 @@ msgstr "" "l'interroger. :func:`putenv` sera appelée automatiquement quand le *mapping* " "sera modifié." -#: ../Doc/library/os.rst:126 +#: ../Doc/library/os.rst:117 msgid "" "On Unix, keys and values use :func:`sys.getfilesystemencoding` and " "``'surrogateescape'`` error handler. Use :data:`environb` if you would like " @@ -302,7 +284,7 @@ msgstr "" "getfilesystemencoding` et le gestionnaire d'erreurs ``surrogateescape``. " "Utilisez :data:`environb` si vous désirez utiliser un encodage différent." -#: ../Doc/library/os.rst:132 +#: ../Doc/library/os.rst:123 msgid "" "Calling :func:`putenv` directly does not change ``os.environ``, so it's " "better to modify ``os.environ``." @@ -310,7 +292,7 @@ msgstr "" "Appeler :func:`putenv` ne change pas directement ``os.environ``, donc il est " "préférable de modifier ``os.environ``." -#: ../Doc/library/os.rst:137 +#: ../Doc/library/os.rst:128 msgid "" "On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may " "cause memory leaks. Refer to the system documentation for :c:func:`putenv`." @@ -319,7 +301,7 @@ msgstr "" "assignations sur ``environ`` peut causer des fuites de mémoire. Referez-vous " "à la documentation système de :func:`putenv`." -#: ../Doc/library/os.rst:141 +#: ../Doc/library/os.rst:132 msgid "" "If :func:`putenv` is not provided, a modified copy of this mapping may be " "passed to the appropriate process-creation functions to cause child " @@ -329,7 +311,7 @@ msgstr "" "peut être passé aux fonctions appropriées de création de processus pour " "forcer l'utilisation d'un environnement modifié pour le processus fils." -#: ../Doc/library/os.rst:145 +#: ../Doc/library/os.rst:136 msgid "" "If the platform supports the :func:`unsetenv` function, you can delete items " "in this mapping to unset environment variables. :func:`unsetenv` will be " @@ -342,7 +324,7 @@ msgstr "" "quand un élément est supprimé de ``os.environ``, ou quand l'une des " "méthodes :meth:`pop` ou :meth:`clear` est appelée." -#: ../Doc/library/os.rst:153 +#: ../Doc/library/os.rst:144 msgid "" "Bytes version of :data:`environ`: a :term:`mapping` object representing the " "environment as byte strings. :data:`environ` and :data:`environb` are " @@ -354,18 +336,18 @@ msgstr "" "data:`environb` sont synchronisés (modifier :data:`environ` modifie :data:" "`environb`, et vice-versa)." -#: ../Doc/library/os.rst:158 +#: ../Doc/library/os.rst:149 msgid "" ":data:`environb` is only available if :data:`supports_bytes_environ` is True." msgstr "" ":data:`environb` n'est disponible que si :data:`supports_byte_environ` vaut " "``True``." -#: ../Doc/library/os.rst:169 +#: ../Doc/library/os.rst:160 msgid "These functions are described in :ref:`os-file-dir`." msgstr "Ces fonctions sont décrites dans :ref:`os-file-dir`." -#: ../Doc/library/os.rst:174 +#: ../Doc/library/os.rst:165 msgid "" "Encode :term:`path-like ` *filename* to the filesystem " "encoding with ``'surrogateescape'`` error handler, or ``'strict'`` on " @@ -376,11 +358,11 @@ msgstr "" "``'surrogateescape'``, ou ``'strict'`` sous Windows ; renvoie un objet :" "class:`bytes` inchangé." -#: ../Doc/library/os.rst:178 +#: ../Doc/library/os.rst:169 msgid ":func:`fsdecode` is the reverse function." msgstr ":func:`fsdecode` est la fonction inverse." -#: ../Doc/library/os.rst:182 ../Doc/library/os.rst:197 +#: ../Doc/library/os.rst:173 ../Doc/library/os.rst:188 msgid "" "Support added to accept objects implementing the :class:`os.PathLike` " "interface." @@ -388,7 +370,7 @@ msgstr "" "Ajout de la prise en charge des objets implémentant l'interface :class:`os." "PathLike`." -#: ../Doc/library/os.rst:189 +#: ../Doc/library/os.rst:180 msgid "" "Decode the :term:`path-like ` *filename* from the " "filesystem encoding with ``'surrogateescape'`` error handler, or " @@ -399,15 +381,15 @@ msgstr "" "``'surrogateescape'``, ou ``'strict'`` sous Windows ; renvoie un objet :" "class:`str` inchangé." -#: ../Doc/library/os.rst:193 +#: ../Doc/library/os.rst:184 msgid ":func:`fsencode` is the reverse function." msgstr ":func:`fsencode` est la fonction inverse." -#: ../Doc/library/os.rst:204 +#: ../Doc/library/os.rst:195 msgid "Return the file system representation of the path." msgstr "Renvoie la représentation par le système de fichiers du chemin." -#: ../Doc/library/os.rst:206 +#: ../Doc/library/os.rst:197 msgid "" "If :class:`str` or :class:`bytes` is passed in, it is returned unchanged. " "Otherwise :meth:`~os.PathLike.__fspath__` is called and its value is " @@ -419,7 +401,7 @@ msgstr "" "valeur renvoyée tant qu'elle est un objet :class:`str` ou :class:`bytes`. " "Dans tous les autres cas, une :exc:`TypeError` est levée." -#: ../Doc/library/os.rst:216 +#: ../Doc/library/os.rst:207 msgid "" "An :term:`abstract base class` for objects representing a file system path, " "e.g. :class:`pathlib.PurePath`." @@ -427,11 +409,11 @@ msgstr "" "Une :term:`abstract base class` pour les objets représentant un chemin du " "système de fichiers, comme :class:`pathlib.PurePath`." -#: ../Doc/library/os.rst:223 +#: ../Doc/library/os.rst:214 msgid "Return the file system path representation of the object." msgstr "Renvoie la représentation du chemin du système de fichiers de l'objet." -#: ../Doc/library/os.rst:225 +#: ../Doc/library/os.rst:216 msgid "" "The method should only return a :class:`str` or :class:`bytes` object, with " "the preference being for :class:`str`." @@ -439,7 +421,7 @@ msgstr "" "La méthode ne devrait renvoyer que des objets :class:`str` ou :class:" "`bytes`, avec une préférence pour les :class:`str`." -#: ../Doc/library/os.rst:231 +#: ../Doc/library/os.rst:222 msgid "" "Return the value of the environment variable *key* if it exists, or " "*default* if it doesn't. *key*, *default* and the result are str." @@ -448,7 +430,7 @@ msgstr "" "*default* si elle n'existe pas. *key*, *default*, et la valeur de retour " "sont des *str*." -#: ../Doc/library/os.rst:234 +#: ../Doc/library/os.rst:225 msgid "" "On Unix, keys and values are decoded with :func:`sys.getfilesystemencoding` " "and ``'surrogateescape'`` error handler. Use :func:`os.getenvb` if you would " @@ -458,12 +440,13 @@ msgstr "" "getfilesystemencoding` et le gestionnaire d'erreurs ``surrogateescape``. " "Utilisez :func:`os.getenvb` si vous voulez utiliser un encodage différent." -#: ../Doc/library/os.rst:238 ../Doc/library/os.rst:450 -#: ../Doc/library/os.rst:654 -msgid "Availability: most flavors of Unix, Windows." -msgstr "Disponibilité : la plupart des dérivés Unix, Windows." +#: ../Doc/library/os.rst:229 ../Doc/library/os.rst:442 +#: ../Doc/library/os.rst:645 +msgid ":ref:`Availability `: most flavors of Unix, Windows." +msgstr "" +":ref:`Disponibilité ` : la plupart des dérivés Unix, Windows." -#: ../Doc/library/os.rst:243 +#: ../Doc/library/os.rst:234 msgid "" "Return the value of the environment variable *key* if it exists, or " "*default* if it doesn't. *key*, *default* and the result are bytes." @@ -472,18 +455,18 @@ msgstr "" "*default* si elle n'existe pas. *key*, *default*, et la valeur de retour " "sont des *bytes*." -#: ../Doc/library/os.rst:246 +#: ../Doc/library/os.rst:237 msgid "" ":func:`getenvb` is only available if :data:`supports_bytes_environ` is True." msgstr "" ":func:`getenvb` n'est disponible que si :data:`supports_byte_environ` vaut " "``True``." -#: ../Doc/library/os.rst:249 -msgid "Availability: most flavors of Unix." -msgstr "Disponibilité : la plupart des dérivés Unix." +#: ../Doc/library/os.rst:241 +msgid ":ref:`Availability `: most flavors of Unix." +msgstr ":ref:`Disponibilité ` : la plupart des dérivés Unix." -#: ../Doc/library/os.rst:256 +#: ../Doc/library/os.rst:247 msgid "" "Returns the list of directories that will be searched for a named " "executable, similar to a shell, when launching a process. *env*, when " @@ -495,7 +478,7 @@ msgstr "" "doit être un dictionnaire de variable d'environnement afin d'y rechercher " "le PATH. Par défaut quand *env* est ``None``, :data:`environ` est utilisé." -#: ../Doc/library/os.rst:267 +#: ../Doc/library/os.rst:258 msgid "" "Return the effective group id of the current process. This corresponds to " "the \"set id\" bit on the file being executed in the current process." @@ -503,15 +486,15 @@ msgstr "" "Renvoie l'identifiant du groupe effectif du processus actuel. Ça correspond " "au bit \"*set id*\" du fichier qui s'exécute dans le processus actuel." -#: ../Doc/library/os.rst:277 +#: ../Doc/library/os.rst:268 msgid "Return the current process's effective user id." msgstr "Renvoie l'identifiant de l'utilisateur effectif du processus actuel." -#: ../Doc/library/os.rst:286 +#: ../Doc/library/os.rst:277 msgid "Return the real group id of the current process." msgstr "Renvoie l'identifiant de groupe réel du processus actuel." -#: ../Doc/library/os.rst:293 +#: ../Doc/library/os.rst:284 msgid "" "Return list of group ids that *user* belongs to. If *group* is not in the " "list, it is included; typically, *group* is specified as the group ID field " @@ -521,14 +504,14 @@ msgstr "" "*group* n'est pas dans la liste, il y est inclus. Typiquement, *group* vaut " "le *group ID* de l'enregistrement *passwd* de *user*." -#: ../Doc/library/os.rst:304 +#: ../Doc/library/os.rst:295 msgid "" "Return list of supplemental group ids associated with the current process." msgstr "" "Renvoie une liste d'identifiants de groupes additionnels associés au " "processus actuel." -#: ../Doc/library/os.rst:310 +#: ../Doc/library/os.rst:301 msgid "" "On Mac OS X, :func:`getgroups` behavior differs somewhat from other Unix " "platforms. If the Python interpreter was built with a deployment target of :" @@ -559,7 +542,7 @@ msgstr "" "valeur de la cible de déploiement, :const:`MACOSX_DEPLOYMENT_TARGET`, peut " "être obtenue par la fonction :func:`sysconfig.get_config_var`." -#: ../Doc/library/os.rst:327 +#: ../Doc/library/os.rst:318 msgid "" "Return the name of the user logged in on the controlling terminal of the " "process. For most purposes, it is more useful to use :func:`getpass." @@ -574,17 +557,18 @@ msgstr "" "l'utilisateur, et se replie finalement sur ``pwd.getpwduid(os.getuid())[0]`` " "pour avoir le nom de connexion lié à l'identifiant de l'utilisateur courant." -#: ../Doc/library/os.rst:334 ../Doc/library/os.rst:368 -#: ../Doc/library/os.rst:831 ../Doc/library/os.rst:840 -#: ../Doc/library/os.rst:1026 ../Doc/library/os.rst:1396 -#: ../Doc/library/os.rst:1754 ../Doc/library/os.rst:2727 -#: ../Doc/library/os.rst:2756 ../Doc/library/os.rst:3142 -#: ../Doc/library/os.rst:3506 ../Doc/library/os.rst:3517 -#: ../Doc/library/os.rst:3585 ../Doc/library/os.rst:3608 -msgid "Availability: Unix, Windows." -msgstr "Disponibilité : Unix, Windows." +#: ../Doc/library/os.rst:325 ../Doc/library/os.rst:360 +#: ../Doc/library/os.rst:822 ../Doc/library/os.rst:832 +#: ../Doc/library/os.rst:1018 ../Doc/library/os.rst:1387 +#: ../Doc/library/os.rst:1746 ../Doc/library/os.rst:2000 +#: ../Doc/library/os.rst:2719 ../Doc/library/os.rst:2748 +#: ../Doc/library/os.rst:3134 ../Doc/library/os.rst:3497 +#: ../Doc/library/os.rst:3508 ../Doc/library/os.rst:3576 +#: ../Doc/library/os.rst:3600 +msgid ":ref:`Availability `: Unix, Windows." +msgstr ":ref:`Disponibilité ` : Unix, Windows." -#: ../Doc/library/os.rst:339 +#: ../Doc/library/os.rst:330 msgid "" "Return the process group id of the process with process id *pid*. If *pid* " "is 0, the process group id of the current process is returned." @@ -593,15 +577,15 @@ msgstr "" "*pid* vaut 0, l'identifiant de groupe de processus du processus actuel est " "renvoyé." -#: ../Doc/library/os.rst:348 +#: ../Doc/library/os.rst:339 msgid "Return the id of the current process group." msgstr "Renvoie l'identifiant du groupe de processus actuel." -#: ../Doc/library/os.rst:357 +#: ../Doc/library/os.rst:348 msgid "Return the current process id." msgstr "Renvoie l'identifiant du processus actuel." -#: ../Doc/library/os.rst:364 +#: ../Doc/library/os.rst:355 msgid "" "Return the parent's process id. When the parent process has exited, on Unix " "the id returned is the one of the init process (1), on Windows it is still " @@ -612,11 +596,11 @@ msgstr "" "Windows, c'est toujours le même id, qui peut déjà avoir été réutilisé par un " "autre processus." -#: ../Doc/library/os.rst:370 +#: ../Doc/library/os.rst:361 msgid "Added support for Windows." msgstr "Prise en charge sur Windows." -#: ../Doc/library/os.rst:378 +#: ../Doc/library/os.rst:369 msgid "" "Get program scheduling priority. The value *which* is one of :const:" "`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and *who* is " @@ -635,13 +619,13 @@ msgstr "" "processus appelant, le groupe de processus du processus appelant, ou " "l'identifiant d'utilisateur réel du processus appelant." -#: ../Doc/library/os.rst:395 +#: ../Doc/library/os.rst:386 msgid "" "Parameters for the :func:`getpriority` and :func:`setpriority` functions." msgstr "" "Paramètres pour les fonctions :func:`getpriority` et :func:`setpriority`." -#: ../Doc/library/os.rst:404 +#: ../Doc/library/os.rst:395 msgid "" "Return a tuple (ruid, euid, suid) denoting the current process's real, " "effective, and saved user ids." @@ -649,7 +633,7 @@ msgstr "" "Renvoie un *tuple* (*ruid*, *euid*, *suid*) dénotant les identifiants de " "l'utilisateur réel, effectif et sauvé du processus actuel." -#: ../Doc/library/os.rst:414 +#: ../Doc/library/os.rst:405 msgid "" "Return a tuple (rgid, egid, sgid) denoting the current process's real, " "effective, and saved group ids." @@ -657,11 +641,11 @@ msgstr "" "Renvoie un *tuple* (*rgid*, *egid*, *sgid*) dénotant les identifiants des " "groupes de processus réel effectif, et sauvé du processus actuel." -#: ../Doc/library/os.rst:426 +#: ../Doc/library/os.rst:417 msgid "Return the current process's real user id." msgstr "Renvoie l'identifiant réel du processus actuel." -#: ../Doc/library/os.rst:433 +#: ../Doc/library/os.rst:424 msgid "" "Call the system initgroups() to initialize the group access list with all of " "the groups of which the specified username is a member, plus the specified " @@ -671,7 +655,7 @@ msgstr "" "groupes d'accès des groupes dont *username* est membre, plus le groupe " "spécifié par *gid*." -#: ../Doc/library/os.rst:446 +#: ../Doc/library/os.rst:437 msgid "" "Set the environment variable named *key* to the string *value*. Such " "changes to the environment affect subprocesses started with :func:`os." @@ -681,7 +665,7 @@ msgstr "" "De tels changements à l'environnement affectent les sous-processus lancés " "par :func:`os.system`, :func:`popen` ou :func:`fork` et :func:`execv`." -#: ../Doc/library/os.rst:454 +#: ../Doc/library/os.rst:445 msgid "" "On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may " "cause memory leaks. Refer to the system documentation for putenv." @@ -690,7 +674,7 @@ msgstr "" "``environ`` peut causer des fuites de mémoire. Referez-vous à la " "documentation système de *putenv*." -#: ../Doc/library/os.rst:457 +#: ../Doc/library/os.rst:448 msgid "" "When :func:`putenv` is supported, assignments to items in ``os.environ`` are " "automatically translated into corresponding calls to :func:`putenv`; " @@ -703,20 +687,20 @@ msgstr "" "environ`` à jour. Il est donc préférable d'assigner les éléments de ``os." "environ``." -#: ../Doc/library/os.rst:465 +#: ../Doc/library/os.rst:456 msgid "Set the current process's effective group id." msgstr "" "Définit l'identifiant du groupe de processus effectif du processus actuel." -#: ../Doc/library/os.rst:472 +#: ../Doc/library/os.rst:463 msgid "Set the current process's effective user id." msgstr "Définit l'identifiant de l'utilisateur effectif du processus actuel." -#: ../Doc/library/os.rst:479 +#: ../Doc/library/os.rst:470 msgid "Set the current process' group id." msgstr "Définit l'identifiant du groupe de processus actuel." -#: ../Doc/library/os.rst:486 +#: ../Doc/library/os.rst:477 msgid "" "Set the list of supplemental group ids associated with the current process " "to *groups*. *groups* must be a sequence, and each element must be an " @@ -728,7 +712,7 @@ msgstr "" "nombre entier identifiant un groupe. Cette opération est typiquement " "disponible uniquement pour le super utilisateur." -#: ../Doc/library/os.rst:492 +#: ../Doc/library/os.rst:483 msgid "" "On Mac OS X, the length of *groups* may not exceed the system-defined " "maximum number of effective group ids, typically 16. See the documentation " @@ -741,7 +725,7 @@ msgstr "" "renvoie pas la même liste de groupes que celle définie par l'appel à " "*setgroups*." -#: ../Doc/library/os.rst:499 +#: ../Doc/library/os.rst:490 msgid "" "Call the system call :c:func:`setpgrp` or ``setpgrp(0, 0)`` depending on " "which version is implemented (if any). See the Unix manual for the " @@ -751,7 +735,7 @@ msgstr "" "version implémentée (s'il y en a une). Voir le manuel Unix pour la " "sémantique de l'opération." -#: ../Doc/library/os.rst:507 +#: ../Doc/library/os.rst:498 msgid "" "Call the system call :c:func:`setpgid` to set the process group id of the " "process with id *pid* to the process group with id *pgrp*. See the Unix " @@ -762,7 +746,7 @@ msgstr "" "groupe de processus d'identifiant *pgrp*. Voir le manuel Unix pour la " "sémantique." -#: ../Doc/library/os.rst:518 +#: ../Doc/library/os.rst:509 msgid "" "Set program scheduling priority. The value *which* is one of :const:" "`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and *who* is " @@ -785,33 +769,29 @@ msgstr "" "entre ``-20`` et ``19``. La priorité par défaut est 0 ; les priorités plus " "faibles amènent à un ordonnancement plus favorable." -#: ../Doc/library/os.rst:528 -msgid "Availability: Unix" -msgstr "Disponibilité : Unix" - -#: ../Doc/library/os.rst:535 +#: ../Doc/library/os.rst:526 msgid "Set the current process's real and effective group ids." msgstr "" "Définit l'identifiant des groupes réel et effectif du processus actuel." -#: ../Doc/library/os.rst:542 +#: ../Doc/library/os.rst:533 msgid "Set the current process's real, effective, and saved group ids." msgstr "" "Définit l'identifiant des groupes réel, effectif et sauvé du processus " "actuel." -#: ../Doc/library/os.rst:551 +#: ../Doc/library/os.rst:542 msgid "Set the current process's real, effective, and saved user ids." msgstr "" "Définit l'identifiant des utilisateurs réel, effectif et sauvé du processus " "actuel." -#: ../Doc/library/os.rst:560 +#: ../Doc/library/os.rst:551 msgid "Set the current process's real and effective user ids." msgstr "" "Définit l'identifiant des utilisateurs réel et effectif du processus actuel." -#: ../Doc/library/os.rst:567 +#: ../Doc/library/os.rst:558 msgid "" "Call the system call :c:func:`getsid`. See the Unix manual for the " "semantics." @@ -819,7 +799,7 @@ msgstr "" "Produit l'appel système :c:func:`getsid`. Voir le manuel Unix pour la " "sémantique." -#: ../Doc/library/os.rst:574 +#: ../Doc/library/os.rst:565 msgid "" "Call the system call :c:func:`setsid`. See the Unix manual for the " "semantics." @@ -827,11 +807,11 @@ msgstr "" "Produit l'appel système :c:func:`setsid`. Voir le manuel Unix pour la " "sémantique." -#: ../Doc/library/os.rst:583 +#: ../Doc/library/os.rst:574 msgid "Set the current process's user id." msgstr "Définit l'identifiant de l'utilisateur du processus actuel." -#: ../Doc/library/os.rst:591 +#: ../Doc/library/os.rst:582 msgid "" "Return the error message corresponding to the error code in *code*. On " "platforms where :c:func:`strerror` returns ``NULL`` when given an unknown " @@ -841,7 +821,7 @@ msgstr "" "plate-formes où :c:func:`strerror` renvoie ``NULL`` quand un numéro d'erreur " "inconnu est donné, une :exc:`ValueError` est levée." -#: ../Doc/library/os.rst:598 +#: ../Doc/library/os.rst:589 msgid "" "``True`` if the native OS type of the environment is bytes (eg. ``False`` on " "Windows)." @@ -849,11 +829,11 @@ msgstr "" "``True`` si le type natif de l'environnement du système d'exploitation est " "*bytes* (par exemple : ``False`` sur Windows)." -#: ../Doc/library/os.rst:606 +#: ../Doc/library/os.rst:597 msgid "Set the current numeric umask and return the previous umask." msgstr "Définit le *umask* actuel et renvoie la valeur précédente." -#: ../Doc/library/os.rst:615 +#: ../Doc/library/os.rst:606 msgid "" "Returns information identifying the current operating system. The return " "value is an object with five attributes:" @@ -861,29 +841,29 @@ msgstr "" "Renvoie des informations identifiant le système d'exploitation actuel. La " "valeur de retour est un objet à cinq attributs :" -#: ../Doc/library/os.rst:618 +#: ../Doc/library/os.rst:609 msgid ":attr:`sysname` - operating system name" -msgstr ":attr:`sysname` --- nom du système d'exploitation" +msgstr ":attr:`sysname` — nom du système d'exploitation" -#: ../Doc/library/os.rst:619 +#: ../Doc/library/os.rst:610 msgid ":attr:`nodename` - name of machine on network (implementation-defined)" msgstr "" -":attr:`noedname` --- nom de la machine sur le réseau (dépendant de " +":attr:`noedname` — nom de la machine sur le réseau (dépendant de " "l'implémentation)" -#: ../Doc/library/os.rst:620 +#: ../Doc/library/os.rst:611 msgid ":attr:`release` - operating system release" -msgstr ":attr:`release` --- *release* du système d'exploitation" +msgstr ":attr:`release` — *release* du système d'exploitation" -#: ../Doc/library/os.rst:621 +#: ../Doc/library/os.rst:612 msgid ":attr:`version` - operating system version" -msgstr ":attr:`version` --- version du système d'exploitation" +msgstr ":attr:`version` — version du système d'exploitation" -#: ../Doc/library/os.rst:622 +#: ../Doc/library/os.rst:613 msgid ":attr:`machine` - hardware identifier" -msgstr ":attr:`machine` --- identifiant du matériel" +msgstr ":attr:`machine` — identifiant du matériel" -#: ../Doc/library/os.rst:624 +#: ../Doc/library/os.rst:615 msgid "" "For backwards compatibility, this object is also iterable, behaving like a " "five-tuple containing :attr:`sysname`, :attr:`nodename`, :attr:`release`, :" @@ -893,7 +873,7 @@ msgstr "" "comme un quintuplet contenant :attr:`sysname`, :attr:`nodename`, :attr:" "`release`, :attr:`version`, et :attr:`machine` dans cet ordre." -#: ../Doc/library/os.rst:629 +#: ../Doc/library/os.rst:620 msgid "" "Some systems truncate :attr:`nodename` to 8 characters or to the leading " "component; a better way to get the hostname is :func:`socket.gethostname` " @@ -904,11 +884,11 @@ msgstr "" "func:`socket.gethostname` ou encore ``socket.gethostbyaddre(socket." "gethostname())``." -#: ../Doc/library/os.rst:634 -msgid "Availability: recent flavors of Unix." -msgstr "Disponibilité : dérivés récents de Unix." +#: ../Doc/library/os.rst:626 +msgid ":ref:`Availability `: recent flavors of Unix." +msgstr ":ref:`Disponibilité ` : dérivés récents de Unix." -#: ../Doc/library/os.rst:636 ../Doc/library/os.rst:3610 +#: ../Doc/library/os.rst:627 ../Doc/library/os.rst:3601 msgid "" "Return type changed from a tuple to a tuple-like object with named " "attributes." @@ -916,7 +896,7 @@ msgstr "" "Type de retour changé d'un *tuple* en un objet compatible avec le type " "*tuple*, avec des attributs nommés." -#: ../Doc/library/os.rst:645 +#: ../Doc/library/os.rst:636 msgid "" "Unset (delete) the environment variable named *key*. Such changes to the " "environment affect subprocesses started with :func:`os.system`, :func:" @@ -926,7 +906,7 @@ msgstr "" "l'environnement affectent les sous-processus lancés avec :func:`os.system`, :" "func:`popen` ou :func:`fork` et :func:`execv`." -#: ../Doc/library/os.rst:649 +#: ../Doc/library/os.rst:640 msgid "" "When :func:`unsetenv` is supported, deletion of items in ``os.environ`` is " "automatically translated into a corresponding call to :func:`unsetenv`; " @@ -938,11 +918,11 @@ msgstr "" "`unsetenv`, mais les appels à :func:`unsetenv` ne mettent pas ``os.environ`` " "à jour. Donc il est préférable de supprimer les éléments de ``os.environ``." -#: ../Doc/library/os.rst:660 +#: ../Doc/library/os.rst:651 msgid "File Object Creation" msgstr "Création de fichiers objets" -#: ../Doc/library/os.rst:662 +#: ../Doc/library/os.rst:653 msgid "" "This function creates new :term:`file objects `. (See also :" "func:`~os.open` for opening file descriptors.)" @@ -950,7 +930,7 @@ msgstr "" "Cette fonction crée de nouveaux :term:`fichiers objets `. (Voir " "aussi :func:`~os.open` pour ouvrir des descripteurs de fichiers)." -#: ../Doc/library/os.rst:668 +#: ../Doc/library/os.rst:659 msgid "" "Return an open file object connected to the file descriptor *fd*. This is " "an alias of the :func:`open` built-in function and accepts the same " @@ -962,18 +942,18 @@ msgstr "" "La seule différence est que le premier argument de :func:`fdopen` doit " "toujours être un entier." -#: ../Doc/library/os.rst:677 +#: ../Doc/library/os.rst:668 msgid "File Descriptor Operations" msgstr "Opérations sur les descripteurs de fichiers" -#: ../Doc/library/os.rst:679 +#: ../Doc/library/os.rst:670 msgid "" "These functions operate on I/O streams referenced using file descriptors." msgstr "" "Ces fonctions opèrent sur des flux d'entrées/sorties référencés par des " "descripteurs de fichiers." -#: ../Doc/library/os.rst:681 +#: ../Doc/library/os.rst:672 msgid "" "File descriptors are small integers corresponding to a file that has been " "opened by the current process. For example, standard input is usually file " @@ -987,10 +967,11 @@ msgstr "" "standard est habituellement le descripteur de fichier 0, la sortie standard " "est 1, et le flux standard d'erreur est 2. Les autres fichiers ouverts par " "un processus vont se voir assigner 3, 4, 5, etc. Le nom \"descripteur de " -"fichier\" est légèrement trompeur : sur les plate-formes Unix, les *sockets* " -"et les *pipes* sont également référencés par des descripteurs." +"fichier\" est légèrement trompeur : sur les plate-formes Unix, les " +"connecteurs (*socket* en anglais) et les tubes (*pipe* en anglais) sont " +"également référencés par des descripteurs." -#: ../Doc/library/os.rst:688 +#: ../Doc/library/os.rst:679 msgid "" "The :meth:`~io.IOBase.fileno` method can be used to obtain the file " "descriptor associated with a :term:`file object` when required. Note that " @@ -1003,11 +984,11 @@ msgstr "" "fichier objet, ignorant donc des aspects tels que la mise en tampon interne " "des données." -#: ../Doc/library/os.rst:696 +#: ../Doc/library/os.rst:687 msgid "Close file descriptor *fd*." msgstr "Ferme le descripteur de fichier *fd*." -#: ../Doc/library/os.rst:700 +#: ../Doc/library/os.rst:691 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To close a " @@ -1020,16 +1001,16 @@ msgstr "" "la primitive :func:`open`, :func:`popen` ou :func:`fdopen`, il faut utiliser " "sa méthode :meth:`~io.IOBase.close`." -#: ../Doc/library/os.rst:708 +#: ../Doc/library/os.rst:699 msgid "" "Close all file descriptors from *fd_low* (inclusive) to *fd_high* " "(exclusive), ignoring errors. Equivalent to (but much faster than)::" msgstr "" "Ferme tous les descripteurs de fichiers entre *fd_low* (inclus) jusque " "*fd_high* (exclus), en ignorant les erreurs. Équivalent (mais beaucoup plus " -"rapide) à : ::" +"rapide) à ::" -#: ../Doc/library/os.rst:720 +#: ../Doc/library/os.rst:711 msgid "" "Return a string describing the encoding of the device associated with *fd* " "if it is connected to a terminal; else return :const:`None`." @@ -1037,7 +1018,7 @@ msgstr "" "Renvoie une chaîne de caractères décrivant l'encodage du périphérique " "associé à *fd* s'il est connecté à un terminal, sinon renvoie :const:`None`." -#: ../Doc/library/os.rst:726 +#: ../Doc/library/os.rst:717 msgid "" "Return a duplicate of file descriptor *fd*. The new file descriptor is :ref:" "`non-inheritable `." @@ -1045,7 +1026,7 @@ msgstr "" "Renvoie une copie du descripteur de fichier *fd*. Le nouveau descripteur de " "fichier est :ref:`non-héritable `." -#: ../Doc/library/os.rst:729 +#: ../Doc/library/os.rst:720 msgid "" "On Windows, when duplicating a standard stream (0: stdin, 1: stdout, 2: " "stderr), the new file descriptor is :ref:`inheritable `." @@ -1054,11 +1035,11 @@ msgstr "" "2 : *stderr*), le nouveau descripteur de fichier est :ref:`héritable " "`." -#: ../Doc/library/os.rst:733 ../Doc/library/os.rst:923 +#: ../Doc/library/os.rst:724 ../Doc/library/os.rst:914 msgid "The new file descriptor is now non-inheritable." msgstr "Le nouveau descripteur de fichier est maintenant non-héritable." -#: ../Doc/library/os.rst:739 +#: ../Doc/library/os.rst:730 msgid "" "Duplicate file descriptor *fd* to *fd2*, closing the latter first if " "necessary. Return *fd2*. The new file descriptor is :ref:`inheritable " @@ -1070,16 +1051,16 @@ msgstr "" "ref:`héritable ` par défaut, ou non-héritable si " "*inheritable* vaut ``False``." -#: ../Doc/library/os.rst:744 +#: ../Doc/library/os.rst:735 msgid "Add the optional *inheritable* parameter." msgstr "Ajout du paramètre optionnel *inheritable*." -#: ../Doc/library/os.rst:747 +#: ../Doc/library/os.rst:738 msgid "Return *fd2* on success. Previously, ``None`` was always returned." msgstr "" -"renvoie *fd2* en cas de succès. Auparavant, ``None`` était toujours renvoyé." +"Renvoie *fd2* en cas de succès. Auparavant, ``None`` était toujours renvoyé." -#: ../Doc/library/os.rst:753 +#: ../Doc/library/os.rst:744 msgid "" "Change the mode of the file given by *fd* to the numeric *mode*. See the " "docs for :func:`chmod` for possible values of *mode*. As of Python 3.3, " @@ -1089,7 +1070,7 @@ msgstr "" "la documentation de :func:`chmod` pour les valeurs possibles de *mode*. " "Depuis Python 3.3, c'est équivalent à ``os.chmod(fd, mode)``." -#: ../Doc/library/os.rst:762 +#: ../Doc/library/os.rst:753 msgid "" "Change the owner and group id of the file given by *fd* to the numeric *uid* " "and *gid*. To leave one of the ids unchanged, set it to -1. See :func:" @@ -1100,7 +1081,7 @@ msgstr "" "inchangés, mettez-le à ``-1``. Voir :func:`chown`. Depuis Python 3.3, c'est " "équivalent à ``os.chown(fd, uid, gid)``." -#: ../Doc/library/os.rst:772 +#: ../Doc/library/os.rst:763 msgid "" "Force write of file with filedescriptor *fd* to disk. Does not force update " "of metadata." @@ -1108,11 +1089,11 @@ msgstr "" "Force l'écriture du fichier ayant le descripteur *fd* sur le disque. Ne " "force pas la mise à jour des méta-données." -#: ../Doc/library/os.rst:778 +#: ../Doc/library/os.rst:769 msgid "This function is not available on MacOS." msgstr "Cette fonction n'est pas disponible sur MacOS." -#: ../Doc/library/os.rst:783 +#: ../Doc/library/os.rst:774 msgid "" "Return system configuration information relevant to an open file. *name* " "specifies the configuration value to retrieve; it may be a string which is " @@ -1132,7 +1113,7 @@ msgstr "" "sont pas inclues dans ce *mapping*, passer un entier pour *name* est " "également accepté." -#: ../Doc/library/os.rst:791 ../Doc/library/os.rst:1970 +#: ../Doc/library/os.rst:782 ../Doc/library/os.rst:1961 msgid "" "If *name* is a string and is not known, :exc:`ValueError` is raised. If a " "specific value for *name* is not supported by the host system, even if it is " @@ -1144,11 +1125,11 @@ msgstr "" "par le système hôte, même si elle est incluse dans ``pathconf_names``, une :" "exc:`OSError` est levée avec :const:`errno.EINVAL` pour code d'erreur." -#: ../Doc/library/os.rst:796 +#: ../Doc/library/os.rst:787 msgid "As of Python 3.3, this is equivalent to ``os.pathconf(fd, name)``." msgstr "Depuis Python 3.3, c'est équivalent à ``os.pathconf(fd, name)``." -#: ../Doc/library/os.rst:803 +#: ../Doc/library/os.rst:794 msgid "" "Get the status of the file descriptor *fd*. Return a :class:`stat_result` " "object." @@ -1156,15 +1137,15 @@ msgstr "" "Récupère le statut du descripteur de fichier *fd*. Renvoie un objet :class:" "`stat_result`." -#: ../Doc/library/os.rst:806 +#: ../Doc/library/os.rst:797 msgid "As of Python 3.3, this is equivalent to ``os.stat(fd)``." msgstr "Depuis Python 3.3, c'est équivalent à ``os.stat(fd)``." -#: ../Doc/library/os.rst:810 ../Doc/library/os.rst:1816 +#: ../Doc/library/os.rst:801 ../Doc/library/os.rst:1807 msgid "The :func:`.stat` function." msgstr "La fonction :func:`.stat`." -#: ../Doc/library/os.rst:815 +#: ../Doc/library/os.rst:806 msgid "" "Return information about the filesystem containing the file associated with " "file descriptor *fd*, like :func:`statvfs`. As of Python 3.3, this is " @@ -1174,7 +1155,7 @@ msgstr "" "associé au descripteur *fd*, comme :func:`statvfs`. Depuis Python 3.3, c'est " "équivalent à ``os.statvfs(fd)``." -#: ../Doc/library/os.rst:824 +#: ../Doc/library/os.rst:815 msgid "" "Force write of file with filedescriptor *fd* to disk. On Unix, this calls " "the native :c:func:`fsync` function; on Windows, the MS :c:func:`_commit` " @@ -1184,7 +1165,7 @@ msgstr "" "Unix, cet appel appel la fonction native :c:func:`fsync`, sur Windows, la " "fonction MS :c:func:`_commit`." -#: ../Doc/library/os.rst:827 +#: ../Doc/library/os.rst:818 msgid "" "If you're starting with a buffered Python :term:`file object` *f*, first do " "``f.flush()``, and then do ``os.fsync(f.fileno())``, to ensure that all " @@ -1195,7 +1176,7 @@ msgstr "" "fileno())`` pour être sûr que tous les tampons internes associés à *f* " "soient écrits sur le disque." -#: ../Doc/library/os.rst:836 +#: ../Doc/library/os.rst:827 msgid "" "Truncate the file corresponding to file descriptor *fd*, so that it is at " "most *length* bytes in size. As of Python 3.3, this is equivalent to ``os." @@ -1205,11 +1186,11 @@ msgstr "" "long de *length* *bytes*. Depuis Python 3.3, c'est équivalent à ``os." "truncate(fd, length)``." -#: ../Doc/library/os.rst:842 ../Doc/library/os.rst:2760 +#: ../Doc/library/os.rst:833 ../Doc/library/os.rst:2751 msgid "Added support for Windows" msgstr "Prise en charge de Windows" -#: ../Doc/library/os.rst:847 +#: ../Doc/library/os.rst:838 msgid "" "Get the blocking mode of the file descriptor: ``False`` if the :data:" "`O_NONBLOCK` flag is set, ``True`` if the flag is cleared." @@ -1218,12 +1199,12 @@ msgstr "" "l'indicateur :data:`O_NONBLOCK` est mis, et ``True`` si l'indicateur est " "effacé." -#: ../Doc/library/os.rst:850 +#: ../Doc/library/os.rst:841 msgid "See also :func:`set_blocking` and :meth:`socket.socket.setblocking`." msgstr "" "Voir également :func:`set_blocking` et :meth:`socket.socket.setblocking`." -#: ../Doc/library/os.rst:858 +#: ../Doc/library/os.rst:849 msgid "" "Return ``True`` if the file descriptor *fd* is open and connected to a tty(-" "like) device, else ``False``." @@ -1231,7 +1212,7 @@ msgstr "" "Renvoie ``True`` si le descripteur de fichier *fd* est ouvert et connecté à " "un périphérique TTY (ou compatible), sinon ``False``." -#: ../Doc/library/os.rst:864 +#: ../Doc/library/os.rst:855 msgid "" "Apply, test or remove a POSIX lock on an open file descriptor. *fd* is an " "open file descriptor. *cmd* specifies the command to use - one of :data:" @@ -1244,11 +1225,11 @@ msgstr "" "`F_TLOCK`, :data:`F_ULOCK`, ou :data:`F_TEST`). *len* spécifie la section du " "fichier à verrouiller." -#: ../Doc/library/os.rst:880 +#: ../Doc/library/os.rst:871 msgid "Flags that specify what action :func:`lockf` will take." msgstr "Indicateurs spécifiant quelle action :func:`lockf` va prendre." -#: ../Doc/library/os.rst:889 +#: ../Doc/library/os.rst:880 msgid "" "Set the current position of file descriptor *fd* to position *pos*, modified " "by *how*: :const:`SEEK_SET` or ``0`` to set the position relative to the " @@ -1264,7 +1245,7 @@ msgstr "" "la placer par rapport à la fin du fichier. Renvoie la nouvelle position du " "curseur en bytes, à partir du début." -#: ../Doc/library/os.rst:900 +#: ../Doc/library/os.rst:891 msgid "" "Parameters to the :func:`lseek` function. Their values are 0, 1, and 2, " "respectively." @@ -1272,7 +1253,7 @@ msgstr "" "Paramètres de la fonction :func:`lseek`. Leur valeur est respectivement 0, " "1, et 2." -#: ../Doc/library/os.rst:903 +#: ../Doc/library/os.rst:894 msgid "" "Some operating systems could support additional values, like :data:`os." "SEEK_HOLE` or :data:`os.SEEK_DATA`." @@ -1280,7 +1261,7 @@ msgstr "" "Certains systèmes d'exploitation pourraient gérer des valeurs additionnelles " "telles que :data:`os.SEEK_HOLE` ou :data:`os.SEEK_DATA`." -#: ../Doc/library/os.rst:910 +#: ../Doc/library/os.rst:901 msgid "" "Open the file *path* and set various flags according to *flags* and possibly " "its mode according to *mode*. When computing *mode*, the current umask " @@ -1293,7 +1274,7 @@ msgstr "" "fichier nouvellement ouvert. Le nouveau descripteur de fichier est :ref:`non-" "héritable `." -#: ../Doc/library/os.rst:915 +#: ../Doc/library/os.rst:906 msgid "" "For a description of the flag and mode values, see the C run-time " "documentation; flag constants (like :const:`O_RDONLY` and :const:`O_WRONLY`) " @@ -1306,7 +1287,7 @@ msgstr "" "module :mod:`os`. En particulier, sur Windows, ajouter :const:`O_BINARY` est " "nécessaire pour ouvrir des fichiers en binaire." -#: ../Doc/library/os.rst:920 +#: ../Doc/library/os.rst:911 msgid "" "This function can support :ref:`paths relative to directory descriptors " "` with the *dir_fd* parameter." @@ -1314,7 +1295,7 @@ msgstr "" "Cette fonction prend en charge des :ref:`chemins relatifs à des descripteurs " "de répertoires ` avec le paramètre *dir_fd*." -#: ../Doc/library/os.rst:928 +#: ../Doc/library/os.rst:919 msgid "" "This function is intended for low-level I/O. For normal usage, use the " "built-in function :func:`open`, which returns a :term:`file object` with :" @@ -1327,14 +1308,14 @@ msgstr "" "Pour envelopper un descripteur de fichier dans un fichier objet, utilisez :" "func:`fdopen`." -#: ../Doc/library/os.rst:933 ../Doc/library/os.rst:1848 -#: ../Doc/library/os.rst:1914 ../Doc/library/os.rst:1936 -#: ../Doc/library/os.rst:2013 ../Doc/library/os.rst:2034 +#: ../Doc/library/os.rst:924 ../Doc/library/os.rst:1839 +#: ../Doc/library/os.rst:1905 ../Doc/library/os.rst:1927 +#: ../Doc/library/os.rst:2004 ../Doc/library/os.rst:2025 msgid "The *dir_fd* argument." msgstr "L'argument *dir_fd*." -#: ../Doc/library/os.rst:936 ../Doc/library/os.rst:1228 -#: ../Doc/library/os.rst:1351 ../Doc/library/os.rst:3705 +#: ../Doc/library/os.rst:927 ../Doc/library/os.rst:1219 +#: ../Doc/library/os.rst:1342 ../Doc/library/os.rst:3696 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 :" @@ -1344,25 +1325,25 @@ 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/os.rst:941 ../Doc/library/os.rst:1555 -#: ../Doc/library/os.rst:1582 ../Doc/library/os.rst:1611 -#: ../Doc/library/os.rst:1655 ../Doc/library/os.rst:1687 -#: ../Doc/library/os.rst:1718 ../Doc/library/os.rst:1731 -#: ../Doc/library/os.rst:1742 ../Doc/library/os.rst:1795 -#: ../Doc/library/os.rst:1851 ../Doc/library/os.rst:1890 -#: ../Doc/library/os.rst:1917 ../Doc/library/os.rst:1939 -#: ../Doc/library/os.rst:1980 ../Doc/library/os.rst:2016 -#: ../Doc/library/os.rst:2037 ../Doc/library/os.rst:2054 -#: ../Doc/library/os.rst:2125 ../Doc/library/os.rst:2382 -#: ../Doc/library/os.rst:2611 ../Doc/library/os.rst:2763 -#: ../Doc/library/os.rst:2777 ../Doc/library/os.rst:2817 -#: ../Doc/library/os.rst:2910 ../Doc/library/os.rst:2969 -#: ../Doc/library/os.rst:3007 ../Doc/library/os.rst:3148 -#: ../Doc/library/os.rst:3494 +#: ../Doc/library/os.rst:932 ../Doc/library/os.rst:1546 +#: ../Doc/library/os.rst:1573 ../Doc/library/os.rst:1602 +#: ../Doc/library/os.rst:1646 ../Doc/library/os.rst:1678 +#: ../Doc/library/os.rst:1709 ../Doc/library/os.rst:1722 +#: ../Doc/library/os.rst:1733 ../Doc/library/os.rst:1786 +#: ../Doc/library/os.rst:1842 ../Doc/library/os.rst:1881 +#: ../Doc/library/os.rst:1908 ../Doc/library/os.rst:1930 +#: ../Doc/library/os.rst:1971 ../Doc/library/os.rst:2007 +#: ../Doc/library/os.rst:2028 ../Doc/library/os.rst:2045 +#: ../Doc/library/os.rst:2116 ../Doc/library/os.rst:2373 +#: ../Doc/library/os.rst:2602 ../Doc/library/os.rst:2754 +#: ../Doc/library/os.rst:2768 ../Doc/library/os.rst:2808 +#: ../Doc/library/os.rst:2901 ../Doc/library/os.rst:2960 +#: ../Doc/library/os.rst:2998 ../Doc/library/os.rst:3139 +#: ../Doc/library/os.rst:3485 msgid "Accepts a :term:`path-like object`." msgstr "Accepte un :term:`path-like object`." -#: ../Doc/library/os.rst:944 +#: ../Doc/library/os.rst:935 msgid "" "The following constants are options for the *flags* parameter to the :func:" "`~os.open` function. They can be combined using the bitwise OR operator ``|" @@ -1378,23 +1359,23 @@ msgstr "" "consultez la page de manuel Unix :manpage:`open(2)` ou la `MSDN `_ sur Windows." -#: ../Doc/library/os.rst:959 +#: ../Doc/library/os.rst:950 msgid "The above constants are available on Unix and Windows." msgstr "Les constantes ci-dessus sont disponibles sur Unix et Windows." -#: ../Doc/library/os.rst:970 +#: ../Doc/library/os.rst:961 msgid "The above constants are only available on Unix." msgstr "Les constantes ci-dessus sont uniquement disponibles sur Unix." -#: ../Doc/library/os.rst:972 +#: ../Doc/library/os.rst:963 msgid "Add :data:`O_CLOEXEC` constant." msgstr "Ajout de la constante :data:`O_CLOCEXEC`." -#: ../Doc/library/os.rst:983 +#: ../Doc/library/os.rst:974 msgid "The above constants are only available on Windows." msgstr "Les constantes ci-dessus sont uniquement disponibles sur Windows." -#: ../Doc/library/os.rst:996 +#: ../Doc/library/os.rst:987 msgid "" "The above constants are extensions and not present if they are not defined " "by the C library." @@ -1402,7 +1383,7 @@ msgstr "" "Les constantes ci-dessus sont des extensions et ne sont pas présentes si " "elles ne sont pas définies par la bibliothèque C." -#: ../Doc/library/os.rst:999 +#: ../Doc/library/os.rst:990 msgid "" "Add :data:`O_PATH` on systems that support it. Add :data:`O_TMPFILE`, only " "available on Linux Kernel 3.11 or newer." @@ -1410,7 +1391,7 @@ msgstr "" "Ajout de :data:`O_PATH` sur les systèmes qui le gèrent. Ajout de :data:" "`O_TMPFILE`, uniquement disponible sur Linux Kernel 3.11 ou plus récent." -#: ../Doc/library/os.rst:1009 +#: ../Doc/library/os.rst:1000 msgid "" "Open a new pseudo-terminal pair. Return a pair of file descriptors " "``(master, slave)`` for the pty and the tty, respectively. The new file " @@ -1423,16 +1404,16 @@ msgstr "" "`. Pour une approche (légèrement) plus portable, utilisez le " "module :mod:`pty`." -#: ../Doc/library/os.rst:1014 ../Doc/library/os.rst:1040 -#: ../Doc/library/os.rst:3321 -msgid "Availability: some flavors of Unix." -msgstr "Disponibilité : certains dérivés Unix." +#: ../Doc/library/os.rst:1006 ../Doc/library/os.rst:1032 +#: ../Doc/library/os.rst:3312 +msgid ":ref:`Availability `: some flavors of Unix." +msgstr ":ref:`Disponibilité ` : certains dérivés Unix." -#: ../Doc/library/os.rst:1016 ../Doc/library/os.rst:1028 +#: ../Doc/library/os.rst:1007 ../Doc/library/os.rst:1019 msgid "The new file descriptors are now non-inheritable." msgstr "Les nouveaux descripteurs de fichiers sont maintenant non-héritables." -#: ../Doc/library/os.rst:1022 +#: ../Doc/library/os.rst:1013 msgid "" "Create a pipe. Return a pair of file descriptors ``(r, w)`` usable for " "reading and writing, respectively. The new file descriptor is :ref:`non-" @@ -1442,7 +1423,7 @@ msgstr "" "``(r, w)`` utilisables respectivement pour lire et pour écrire. Les nouveaux " "descripteurs de fichiers sont :ref:`non-héritables `." -#: ../Doc/library/os.rst:1034 +#: ../Doc/library/os.rst:1025 msgid "" "Create a pipe with *flags* set atomically. *flags* can be constructed by " "ORing together one or more of these values: :data:`O_NONBLOCK`, :data:" @@ -1454,7 +1435,7 @@ msgstr "" "`O_NONBLOCK`, :data:`O_CLOEXEC`. Renvoie une paire de descripteurs de " "fichiers ``(r, w)`` utilisables respectivement pour lire et pour écrire." -#: ../Doc/library/os.rst:1047 +#: ../Doc/library/os.rst:1038 msgid "" "Ensures that enough disk space is allocated for the file specified by *fd* " "starting from *offset* and continuing for *len* bytes." @@ -1462,7 +1443,7 @@ msgstr "" "Assure que suffisamment d'espace sur le disque est alloué pour le fichier " "spécifié par *fd* partant de *offset* et continuant sur *len* bytes." -#: ../Doc/library/os.rst:1057 +#: ../Doc/library/os.rst:1048 msgid "" "Announces an intention to access data in a specific pattern thus allowing " "the kernel to make optimizations. The advice applies to the region of the " @@ -1480,7 +1461,7 @@ msgstr "" "`POSIX_FADV_RANDOM`, :data:`POSIX_FADV_NOREUSE`, :data:" "`POSIX_FADV_WILLNEED`, ou :data:`POSIX_FADV_DONTNEED`." -#: ../Doc/library/os.rst:1077 +#: ../Doc/library/os.rst:1068 msgid "" "Flags that can be used in *advice* in :func:`posix_fadvise` that specify the " "access pattern that is likely to be used." @@ -1489,7 +1470,7 @@ msgstr "" "`posix_fadvise` et qui spécifient le motif d'accès qui est censé être " "utilisé." -#: ../Doc/library/os.rst:1087 +#: ../Doc/library/os.rst:1078 msgid "" "Read at most *n* bytes from file descriptor *fd* at a position of *offset*, " "leaving the file offset unchanged." @@ -1497,7 +1478,7 @@ msgstr "" "Lit au maximum *n* octets depuis le descripteur de fichier *fd* à la " "position *offset* sans modifier cette position." -#: ../Doc/library/os.rst:1090 ../Doc/library/os.rst:1217 +#: ../Doc/library/os.rst:1081 ../Doc/library/os.rst:1208 msgid "" "Return a bytestring containing the bytes read. If the end of the file " "referred to by *fd* has been reached, an empty bytes object is returned." @@ -1505,7 +1486,7 @@ msgstr "" "Renvoie une chaîne d'octets contenant les octets lus, ou une chaîne d'octets " "vide si la fin du fichier pointé par *fd* est atteinte." -#: ../Doc/library/os.rst:1100 +#: ../Doc/library/os.rst:1091 msgid "" "Read from a file descriptor *fd* at a position of *offset* into mutable :" "term:`bytes-like objects ` *buffers*, leaving the file " @@ -1517,7 +1498,7 @@ msgstr "" "modifier la position dans le fichier. Les données sont transférées dans " "chaque tampon, jusqu'à ce qu'il soit plein, tour à tour." -#: ../Doc/library/os.rst:1105 ../Doc/library/os.rst:1174 +#: ../Doc/library/os.rst:1096 ../Doc/library/os.rst:1165 msgid "" "The flags argument contains a bitwise OR of zero or more of the following " "flags:" @@ -1525,15 +1506,15 @@ msgstr "" "L'argument *flags* contient un OU logique bit-à-bit de zéro ou plusieurs des " "indicateurs suivants :" -#: ../Doc/library/os.rst:1108 +#: ../Doc/library/os.rst:1099 msgid ":data:`RWF_HIPRI`" msgstr ":data:`RWF_HIPRI`" -#: ../Doc/library/os.rst:1109 +#: ../Doc/library/os.rst:1100 msgid ":data:`RWF_NOWAIT`" msgstr ":data:`RWF_NOWAIT`" -#: ../Doc/library/os.rst:1111 ../Doc/library/os.rst:1301 +#: ../Doc/library/os.rst:1102 ../Doc/library/os.rst:1292 msgid "" "Return the total number of bytes actually read which can be less than the " "total capacity of all the objects." @@ -1541,8 +1522,8 @@ msgstr "" "Renvoie le nombre total d'octets réellement lus, qui peut être inférieur à " "la capacité totale de tous les objets." -#: ../Doc/library/os.rst:1114 ../Doc/library/os.rst:1182 -#: ../Doc/library/os.rst:1304 ../Doc/library/os.rst:1366 +#: ../Doc/library/os.rst:1105 ../Doc/library/os.rst:1173 +#: ../Doc/library/os.rst:1295 ../Doc/library/os.rst:1357 msgid "" "The operating system may set a limit (:func:`sysconf` value " "``'SC_IOV_MAX'``) on the number of buffers that can be used." @@ -1550,30 +1531,30 @@ msgstr "" "Le système d'exploitation peut définir une limite (valeur :func:`sysconf` " "``'SC_IOV_MAX'``) sur le nombre de mémoires tampons pouvant être utilisées." -#: ../Doc/library/os.rst:1117 +#: ../Doc/library/os.rst:1108 msgid "Combine the functionality of :func:`os.readv` and :func:`os.pread`." msgstr "Combine les fonctionnalités de :func:`os.readv` et :func:`os.pread`." -#: ../Doc/library/os.rst:1119 +#: ../Doc/library/os.rst:1112 msgid "" -"Availability: Linux 2.6.30 and newer, FreeBSD 6.0 and newer, OpenBSD 2.7 and " -"newer. Using flags requires Linux 4.6 or newer." +":ref:`Availability `: Linux 2.6.30 and newer, FreeBSD 6.0 and " +"newer, OpenBSD 2.7 and newer. Using flags requires Linux 4.6 or newer." msgstr "" -"Disponibilité : Linux 2.6.30 et plus récent, FreeBSD 6.0 et plus récent, " -"OpenBSD 2.7 et plus récent. L'utilisation de *flags* requiert Linux 4.6 ou " -"plus récent." +":ref:`Disponibilité ` : Linux 2.6.30 et plus récent, FreeBSD " +"6.0 et plus récent, OpenBSD 2.7 et plus récent. L'utilisation de *flags* " +"requiert Linux 4.6 ou plus récent." -#: ../Doc/library/os.rst:1127 +#: ../Doc/library/os.rst:1118 msgid "" "Do not wait for data which is not immediately available. If this flag is " "specified, the system call will return instantly if it would have to read " "data from the backing storage or wait for a lock." msgstr "" "Ne pas attendre pour des données qui ne sont pas immédiatement disponibles. " -"Si cette option est spécifiée, l'appel système retournera instantanément " -"s'il doit lire les données du stockage sous-jacent ou attendre un verrou." +"Si cette option est spécifiée, l'appel système retourne instantanément s'il " +"doit lire les données du stockage sous-jacent ou attendre un verrou." -#: ../Doc/library/os.rst:1131 +#: ../Doc/library/os.rst:1122 msgid "" "If some data was successfully read, it will return the number of bytes read. " "If no bytes were read, it will return ``-1`` and set errno to :data:`errno." @@ -1583,11 +1564,11 @@ msgstr "" "renvoyé. Si aucun octet n'a été lu, renvoie ``-1`` et affecte à *errno* la " "valeur :data:`errno.EAGAIN`." -#: ../Doc/library/os.rst:1135 -msgid "Availability: Linux 4.14 and newer." -msgstr "Disponibilité : Linux 4.14 et ultérieures." +#: ../Doc/library/os.rst:1127 +msgid ":ref:`Availability `: Linux 4.14 and newer." +msgstr ":ref:`Disponibilité ` : Linux 4.14 et ultérieures." -#: ../Doc/library/os.rst:1142 +#: ../Doc/library/os.rst:1133 msgid "" "High priority read/write. Allows block-based filesystems to use polling of " "the device, which provides lower latency, but may use additional resources." @@ -1596,7 +1577,7 @@ msgstr "" "bloc d'utiliser le *polling* du périphérique, qui fournit une latence " "inférieure, mais peut utiliser des ressources supplémentaires." -#: ../Doc/library/os.rst:1146 +#: ../Doc/library/os.rst:1137 msgid "" "Currently, on Linux, this feature is usable only on a file descriptor opened " "using the :data:`O_DIRECT` flag." @@ -1604,11 +1585,11 @@ msgstr "" "Actuellement, sous Linux, cette fonctionnalité est utilisable uniquement sur " "un descripteur de fichier ouvert à l'aide de l'option :data:`O_DIRECT`." -#: ../Doc/library/os.rst:1149 -msgid "Availability: Linux 4.6 and newer." -msgstr "Disponibilité : Linux 4.6 et ultérieures." +#: ../Doc/library/os.rst:1141 +msgid ":ref:`Availability `: Linux 4.6 and newer." +msgstr ":ref:`Disponibilité ` : Linux 4.6 et ultérieures." -#: ../Doc/library/os.rst:1156 +#: ../Doc/library/os.rst:1147 msgid "" "Write the bytestring in *str* to file descriptor *fd* at position of " "*offset*, leaving the file offset unchanged." @@ -1616,11 +1597,11 @@ msgstr "" "Écrit la chaîne d'octets de *str* dans le descripteur de fichier *fd* à la " "position *offset* en laissant la position dans le fichier inchangée." -#: ../Doc/library/os.rst:1159 ../Doc/library/os.rst:1341 +#: ../Doc/library/os.rst:1150 ../Doc/library/os.rst:1332 msgid "Return the number of bytes actually written." msgstr "Renvoie le nombre d'octets effectivement écrits." -#: ../Doc/library/os.rst:1168 +#: ../Doc/library/os.rst:1159 msgid "" "Write the *buffers* contents to file descriptor *fd* at a offset *offset*, " "leaving the file offset unchanged. *buffers* must be a sequence of :term:" @@ -1630,36 +1611,37 @@ msgid "" msgstr "" "Écrit le contenu de *buffers* vers le descripteur de fichier *fd* à la " "position *offset*, en laissant la position du fichier inchangée. *buffers* " -"doit être une séquence de :term:`objets bytes-compatibles`. Les tampons sont traités dans l'ordre du tableau. Le contenu " "entier du premier tampon est écrit avant le traitement du second, etc." -#: ../Doc/library/os.rst:1177 +#: ../Doc/library/os.rst:1168 msgid ":data:`RWF_DSYNC`" msgstr ":data:`RWF_DSYNC`" -#: ../Doc/library/os.rst:1178 +#: ../Doc/library/os.rst:1169 msgid ":data:`RWF_SYNC`" msgstr ":data:`RWF_SYNC`" -#: ../Doc/library/os.rst:1180 +#: ../Doc/library/os.rst:1171 msgid "Return the total number of bytes actually written." msgstr "Renvoie le nombre total d'octets effectivement écrits." -#: ../Doc/library/os.rst:1185 +#: ../Doc/library/os.rst:1176 msgid "Combine the functionality of :func:`os.writev` and :func:`os.pwrite`." -msgstr "Combine les fonctionnalités de :func:`os.writev` et :func:`os.pwrite`." +msgstr "" +"Combine les fonctionnalités de :func:`os. writev` et :func:`os. pwrite`." -#: ../Doc/library/os.rst:1187 +#: ../Doc/library/os.rst:1180 msgid "" -"Availability: Linux 2.6.30 and newer, FreeBSD 6.0 and newer, OpenBSD 2.7 and " -"newer. Using flags requires Linux 4.7 or newer." +":ref:`Availability `: Linux 2.6.30 and newer, FreeBSD 6.0 and " +"newer, OpenBSD 2.7 and newer. Using flags requires Linux 4.7 or newer." msgstr "" -"Disponibilité: Linux 2.6.30 et plus récent, FreeBSD 6.0 et plus récent, " -"OpenBSD 2.7 et plus récent. L'utilisation de *flags* requiert Linux 4.6 ou " -"plus récent." +":ref:`Disponibilité ` : Linux 2.6.30 et plus récent, FreeBSD " +"6.0 et plus récent, OpenBSD 2.7 et plus récent. L'utilisation de *flags* " +"requiert Linux 4.6 ou plus récent." -#: ../Doc/library/os.rst:1195 +#: ../Doc/library/os.rst:1186 msgid "" "Provide a per-write equivalent of the :data:`O_DSYNC` ``open(2)`` flag. This " "flag effect applies only to the data range written by the system call." @@ -1668,11 +1650,11 @@ msgstr "" "``open(2)``. L' effet de cette option s'applique uniquement à la plage de " "données écrite par l'appel système." -#: ../Doc/library/os.rst:1198 ../Doc/library/os.rst:1208 -msgid "Availability: Linux 4.7 and newer." -msgstr "Disponibilité : Linux 4.7 et ultérieures." +#: ../Doc/library/os.rst:1190 ../Doc/library/os.rst:1200 +msgid ":ref:`Availability `: Linux 4.7 and newer." +msgstr ":ref:`Disponibilité ` : Linux 4.7 et ultérieures." -#: ../Doc/library/os.rst:1205 +#: ../Doc/library/os.rst:1196 msgid "" "Provide a per-write equivalent of the :data:`O_SYNC` ``open(2)`` flag. This " "flag effect applies only to the data range written by the system call." @@ -1681,11 +1663,11 @@ msgstr "" "``open(2)``. L'effet de cette option s'applique uniquement à la plage de " "données écrite par l'appel système." -#: ../Doc/library/os.rst:1215 +#: ../Doc/library/os.rst:1206 msgid "Read at most *n* bytes from file descriptor *fd*." msgstr "Lit au maximum *n* octets du descripteur de fichier *fd*." -#: ../Doc/library/os.rst:1222 +#: ../Doc/library/os.rst:1213 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To read a \"file " @@ -1699,7 +1681,7 @@ msgstr "" "func:`popen` ou :func:`fdopen`, ou par :data:`stdin`, utilisez sa méthode :" "meth:`~file.read` ou :meth:`~file.readline`." -#: ../Doc/library/os.rst:1237 +#: ../Doc/library/os.rst:1228 msgid "" "Copy *count* bytes from file descriptor *in* to file descriptor *out* " "starting at *offset*. Return the number of bytes sent. When EOF is reached " @@ -1709,7 +1691,7 @@ msgstr "" "descripteur de fichier *out* en démarrant à *offset*. Renvoie le nombre de " "bytes envoyés. Quand EOF est atteint, renvoie 0." -#: ../Doc/library/os.rst:1241 +#: ../Doc/library/os.rst:1232 msgid "" "The first function notation is supported by all platforms that define :func:" "`sendfile`." @@ -1717,7 +1699,7 @@ msgstr "" "La première notation de fonction est prise en charge par toutes les plate-" "formes qui définissent :func:`sendfile`." -#: ../Doc/library/os.rst:1244 +#: ../Doc/library/os.rst:1235 msgid "" "On Linux, if *offset* is given as ``None``, the bytes are read from the " "current position of *in* and the position of *in* is updated." @@ -1725,7 +1707,7 @@ msgstr "" "Sur Linux, si *offset* est donné par ``None``, les bytes sont lus depuis la " "position actuelle de *in* et la position de *in* est mise à jour." -#: ../Doc/library/os.rst:1247 +#: ../Doc/library/os.rst:1238 msgid "" "The second case may be used on Mac OS X and FreeBSD where *headers* and " "*trailers* are arbitrary sequences of buffers that are written before and " @@ -1736,7 +1718,7 @@ msgstr "" "et après que les données de *in* ne soient écrites. Renvoie la même chose " "que le premier cas." -#: ../Doc/library/os.rst:1251 +#: ../Doc/library/os.rst:1242 msgid "" "On Mac OS X and FreeBSD, a value of 0 for *count* specifies to send until " "the end of *in* is reached." @@ -1744,16 +1726,16 @@ msgstr "" "Sur Mac OS X et FreeBSD, une valeur de 0 pour *count* spécifié d'envoyer " "jusqu'à ce que la fin de *in* ne soit atteinte." -#: ../Doc/library/os.rst:1254 +#: ../Doc/library/os.rst:1245 msgid "" "All platforms support sockets as *out* file descriptor, and some platforms " "allow other types (e.g. regular file, pipe) as well." msgstr "" -"Toutes les plate-formes gèrent des *sockets* comme descripteur de fichier " -"*out*, et certaines plate-formes autorisent d'autres types (par exemple, un " -"fichier normal ou un *pipe*) également." +"Toutes les plate-formes gèrent les connecteurs comme des descripteurs de " +"fichier *out*, et certaines plate-formes autorisent d'autres types (par " +"exemple, un fichier normal ou un tube) également." -#: ../Doc/library/os.rst:1257 +#: ../Doc/library/os.rst:1248 msgid "" "Cross-platform applications should not use *headers*, *trailers* and *flags* " "arguments." @@ -1761,7 +1743,7 @@ msgstr "" "Les applications multiplate-formes ne devraient pas utiliser les arguments " "*headers*, *trailers*, et *flags*." -#: ../Doc/library/os.rst:1264 +#: ../Doc/library/os.rst:1255 msgid "" "For a higher-level wrapper of :func:`sendfile`, see :meth:`socket.socket." "sendfile`." @@ -1769,7 +1751,7 @@ msgstr "" "Pour une interface de plus haut niveau de :func:`sendfile`, voir :meth:" "`socket.socket.setfile`." -#: ../Doc/library/os.rst:1272 +#: ../Doc/library/os.rst:1263 msgid "" "Set the blocking mode of the specified file descriptor. Set the :data:" "`O_NONBLOCK` flag if blocking is ``False``, clear the flag otherwise." @@ -1778,18 +1760,18 @@ msgstr "" "l'indicateur :data:`O_NONBLOCK` si *blocking* vaut ``False``, efface " "l'indicateur sinon." -#: ../Doc/library/os.rst:1275 +#: ../Doc/library/os.rst:1266 msgid "See also :func:`get_blocking` and :meth:`socket.socket.setblocking`." msgstr "Voir aussi :func:`get_blocking` et :meth:`socket;socket.setblocking`." -#: ../Doc/library/os.rst:1286 +#: ../Doc/library/os.rst:1277 msgid "" "Parameters to the :func:`sendfile` function, if the implementation supports " "them." msgstr "" -"paramètres de la fonction :func:`sendfile`, si l'implémentation les gèrent." +"Paramètres de la fonction :func:`sendfile`, si l'implémentation les gère." -#: ../Doc/library/os.rst:1296 +#: ../Doc/library/os.rst:1287 msgid "" "Read from a file descriptor *fd* into a number of mutable :term:`bytes-like " "objects ` *buffers*. Transfer data into each buffer until " @@ -1800,7 +1782,7 @@ msgstr "" "bytes-compatibles ` muables : *buffers*. Les données sont " "transférées dans chaque tampon, jusqu'à ce qu'il soit plein, tour à tour." -#: ../Doc/library/os.rst:1314 +#: ../Doc/library/os.rst:1305 msgid "" "Return the process group associated with the terminal given by *fd* (an open " "file descriptor as returned by :func:`os.open`)." @@ -1808,7 +1790,7 @@ msgstr "" "Renvoie le groupe de processus associé au terminal donné par *fd* (un " "descripteur de fichier ouvert comme renvoyé par :func:`os.open`)." -#: ../Doc/library/os.rst:1322 +#: ../Doc/library/os.rst:1313 msgid "" "Set the process group associated with the terminal given by *fd* (an open " "file descriptor as returned by :func:`os.open`) to *pg*." @@ -1816,7 +1798,7 @@ msgstr "" "Place *pg* dans le groupe de processus associé au terminal donné par *fd* " "(un descripteur de fichier ouvert comme renvoyé par :func:`os.open`)." -#: ../Doc/library/os.rst:1330 +#: ../Doc/library/os.rst:1321 msgid "" "Return a string which specifies the terminal device associated with file " "descriptor *fd*. If *fd* is not associated with a terminal device, an " @@ -1826,11 +1808,11 @@ msgstr "" "au descripteur de fichier *fd*. Si *fd* n'est pas associé à un périphérique " "terminal, une exception est levée." -#: ../Doc/library/os.rst:1339 +#: ../Doc/library/os.rst:1330 msgid "Write the bytestring in *str* to file descriptor *fd*." msgstr "Écrit la chaîne d'octets de *str* vers le descripteur de fichier *fd*." -#: ../Doc/library/os.rst:1345 +#: ../Doc/library/os.rst:1336 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To write a " @@ -1838,13 +1820,13 @@ msgid "" "`popen` or :func:`fdopen`, or :data:`sys.stdout` or :data:`sys.stderr`, use " "its :meth:`~file.write` method." msgstr "" -"cette fonction est destinée aux E/S bas niveau et doit être appliquée à un " -"descripteur de fichier comme renvoyé par :func:`os.open` ou :func:`pipe`. " -"Pour écrire dans un \"fichier objet\" renvoyé par la primitive :func:" -"`open`, :func:`popen`, ou par :func:`fdopen`, ou par :data:`sys.stdout` ou :" -"data:`sys.stderr`, utilisez sa méthode :meth:`~file.write`." +"Cette fonction est destinée aux entrées-sorties bas niveau et doit être " +"appliquée à un descripteur de fichier comme renvoyé par :func:`os.open` ou :" +"func:`pipe`. Pour écrire dans un \"fichier objet\" renvoyé par la primitive :" +"func:`open`, :func:`popen`, ou par :func:`fdopen`, ou par :data:`sys.stdout` " +"ou :data:`sys.stderr`, utilisez sa méthode :meth:`~file.write`." -#: ../Doc/library/os.rst:1359 +#: ../Doc/library/os.rst:1350 msgid "" "Write the contents of *buffers* to file descriptor *fd*. *buffers* must be a " "sequence of :term:`bytes-like objects `. Buffers are " @@ -1856,15 +1838,15 @@ msgstr "" "object>`. Les tampons sont traités dans l'ordre du tableau. Le contenu " "entier du premier tampon est écrit avant le traitement du second, etc." -#: ../Doc/library/os.rst:1364 +#: ../Doc/library/os.rst:1355 msgid "Returns the total number of bytes actually written." msgstr "Renvoie le nombre total d'octets effectivement écrits." -#: ../Doc/library/os.rst:1377 +#: ../Doc/library/os.rst:1368 msgid "Querying the size of a terminal" msgstr "Demander la taille d'un terminal" -#: ../Doc/library/os.rst:1383 +#: ../Doc/library/os.rst:1374 msgid "" "Return the size of the terminal window as ``(columns, lines)``, tuple of " "type :class:`terminal_size`." @@ -1872,7 +1854,7 @@ msgstr "" "Renvoie la taille du terminal comme un couple ``(columns, lines)`` de type :" "class:`terminal_size`." -#: ../Doc/library/os.rst:1386 +#: ../Doc/library/os.rst:1377 msgid "" "The optional argument ``fd`` (default ``STDOUT_FILENO``, or standard output) " "specifies which file descriptor should be queried." @@ -1881,7 +1863,7 @@ msgstr "" "standard) spécifie le descripteur de fichier auquel la requête doit être " "envoyée." -#: ../Doc/library/os.rst:1389 +#: ../Doc/library/os.rst:1380 msgid "" "If the file descriptor is not connected to a terminal, an :exc:`OSError` is " "raised." @@ -1889,7 +1871,7 @@ msgstr "" "Si le descripteur de fichier n'est pas connecté à un terminal, une :exc:" "`OSError` est levée." -#: ../Doc/library/os.rst:1392 +#: ../Doc/library/os.rst:1383 msgid "" ":func:`shutil.get_terminal_size` is the high-level function which should " "normally be used, ``os.get_terminal_size`` is the low-level implementation." @@ -1898,7 +1880,7 @@ msgstr "" "normalement être utilisée, ``os.get_terminal_size`` en est l'implémentation " "bas-niveau." -#: ../Doc/library/os.rst:1400 +#: ../Doc/library/os.rst:1391 msgid "" "A subclass of tuple, holding ``(columns, lines)`` of the terminal window " "size." @@ -1906,19 +1888,19 @@ msgstr "" "Une sous-classe de *tuple*, contenant ``(columns, lines)``, la taille du " "terminal." -#: ../Doc/library/os.rst:1404 +#: ../Doc/library/os.rst:1395 msgid "Width of the terminal window in characters." msgstr "Longueur du terminal en caractères." -#: ../Doc/library/os.rst:1408 +#: ../Doc/library/os.rst:1399 msgid "Height of the terminal window in characters." msgstr "Hauteur du terminal en caractères." -#: ../Doc/library/os.rst:1414 +#: ../Doc/library/os.rst:1405 msgid "Inheritance of File Descriptors" msgstr "Héritage de descripteurs de fichiers" -#: ../Doc/library/os.rst:1418 +#: ../Doc/library/os.rst:1409 msgid "" "A file descriptor has an \"inheritable\" flag which indicates if the file " "descriptor can be inherited by child processes. Since Python 3.4, file " @@ -1928,7 +1910,7 @@ msgstr "" "par les processus-fils. Depuis Python 3.4, les descripteurs de fichiers " "créés par Python ne sont pas héritable par défaut." -#: ../Doc/library/os.rst:1422 +#: ../Doc/library/os.rst:1413 msgid "" "On UNIX, non-inheritable file descriptors are closed in child processes at " "the execution of a new program, other file descriptors are inherited." @@ -1936,7 +1918,7 @@ msgstr "" "Sur UNIX, les descripteurs de fichiers non-héritables sont fermés dans les " "processus-fils à l'exécution, les autres descripteurs sont hérités." -#: ../Doc/library/os.rst:1425 +#: ../Doc/library/os.rst:1416 msgid "" "On Windows, non-inheritable handles and file descriptors are closed in child " "processes, except for standard streams (file descriptors 0, 1 and 2: stdin, " @@ -1955,36 +1937,36 @@ msgstr "" "standards) sont fermés, et les identificateurs héritables sont hérités " "seulement si le paramètre *close_fds* vaut ``False``." -#: ../Doc/library/os.rst:1435 +#: ../Doc/library/os.rst:1426 msgid "" "Get the \"inheritable\" flag of the specified file descriptor (a boolean)." msgstr "" "Récupère le marqueur \"héritable\" (booléen) du descripteur de fichier " "spécifié." -#: ../Doc/library/os.rst:1439 +#: ../Doc/library/os.rst:1430 msgid "Set the \"inheritable\" flag of the specified file descriptor." msgstr "Définit le marqueur \"héritable\" du descripteur de fichier spécifié." -#: ../Doc/library/os.rst:1443 +#: ../Doc/library/os.rst:1434 msgid "Get the \"inheritable\" flag of the specified handle (a boolean)." msgstr "" "Récupère le marqueur \"héritable\" (booléen) de l'identificateur spécifié." -#: ../Doc/library/os.rst:1445 ../Doc/library/os.rst:1451 -#: ../Doc/library/os.rst:3529 ../Doc/library/os.rst:3558 -msgid "Availability: Windows." -msgstr "Disponibilité : Windows." +#: ../Doc/library/os.rst:1436 ../Doc/library/os.rst:1442 +#: ../Doc/library/os.rst:3520 ../Doc/library/os.rst:3549 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/library/os.rst:1449 +#: ../Doc/library/os.rst:1440 msgid "Set the \"inheritable\" flag of the specified handle." msgstr "Définit le marqueur \"héritable\" de l'identificateur spécifié." -#: ../Doc/library/os.rst:1457 +#: ../Doc/library/os.rst:1448 msgid "Files and Directories" msgstr "Fichiers et répertoires" -#: ../Doc/library/os.rst:1459 +#: ../Doc/library/os.rst:1450 msgid "" "On some Unix platforms, many of these functions support one or more of these " "features:" @@ -1992,20 +1974,20 @@ msgstr "" "Sur certaines plate-formes Unix, beaucoup de ces fonctions gèrent une ou " "plusieurs des fonctionnalités suivantes :" -#: ../Doc/library/os.rst:1464 +#: ../Doc/library/os.rst:1455 msgid "" "**specifying a file descriptor:** For some functions, the *path* argument " "can be not only a string giving a path name, but also a file descriptor. " "The function will then operate on the file referred to by the descriptor. " "(For POSIX systems, Python will call the ``f...`` version of the function.)" msgstr "" -"**la spécification un descripteur de fichier :** pour certaines fonctions, " +"**spécifier un descripteur de fichier :** pour certaines fonctions, " "l'argument *path* peut être non seulement une chaîne de caractères donnant " "le chemin vers le fichier, mais également un descripteur de fichier. La " -"fonction opérera alors sur le fichier référencé par de descripteur. (Pour " +"fonction opérera alors sur le fichier référencé par le descripteur. (Pour " "les systèmes POSIX, Python appellera la version ``f...`` de la fonction.)" -#: ../Doc/library/os.rst:1470 +#: ../Doc/library/os.rst:1461 msgid "" "You can check whether or not *path* can be specified as a file descriptor on " "your platform using :data:`os.supports_fd`. If it is unavailable, using it " @@ -2015,16 +1997,16 @@ msgstr "" "sur votre plate-forme en utilisant :data:`os.supports_fd`. Si c'est " "indisponible, l'utiliser lèvera une :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:1474 +#: ../Doc/library/os.rst:1465 msgid "" "If the function also supports *dir_fd* or *follow_symlinks* arguments, it is " "an error to specify one of those when supplying *path* as a file descriptor." msgstr "" "Si la fonction gère également les arguments *dir_fd* ou *follow_symlinks*, " -"en spécifier l'un est une erreur quand *path* est donné par un descripteur " -"de fichier." +"spécifier l'un de ces arguments est une erreur quand *path* est donné en " +"tant que descripteur de fichier." -#: ../Doc/library/os.rst:1479 +#: ../Doc/library/os.rst:1470 msgid "" "**paths relative to directory descriptors:** If *dir_fd* is not ``None``, it " "should be a file descriptor referring to a directory, and the path to " @@ -2040,7 +2022,7 @@ msgstr "" "ignoré. (Pour les systèmes POSIX, Python appellera la version ``...at`` ou " "``f...at`` de la fonction.)" -#: ../Doc/library/os.rst:1485 +#: ../Doc/library/os.rst:1476 msgid "" "You can check whether or not *dir_fd* is supported on your platform using :" "data:`os.supports_dir_fd`. If it is unavailable, using it will raise a :exc:" @@ -2050,7 +2032,7 @@ msgstr "" "utilisant :data:`os.supports_dir_fd`. Si c'est indisponible, l'utiliser " "lèvera une :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:1491 +#: ../Doc/library/os.rst:1482 msgid "" "**not following symlinks:** If *follow_symlinks* is ``False``, and the last " "element of the path to operate on is a symbolic link, the function will " @@ -2063,7 +2045,7 @@ msgstr "" "pointé par le lien. (Pour les systèmes POSIX, Python appellera la version " "``l...`` de la fonction.)" -#: ../Doc/library/os.rst:1497 +#: ../Doc/library/os.rst:1488 msgid "" "You can check whether or not *follow_symlinks* is supported on your platform " "using :data:`os.supports_follow_symlinks`. If it is unavailable, using it " @@ -2073,7 +2055,7 @@ msgstr "" "utilisant :data:`os.supports_follow_symlinks`. Si c'est indisponible, " "l'utiliser lèvera une :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:1505 +#: ../Doc/library/os.rst:1496 msgid "" "Use the real uid/gid to test for access to *path*. Note that most " "operations will use the effective uid/gid, therefore this routine can be " @@ -2095,7 +2077,7 @@ msgstr "" "pas. Voir la page de manuel Unix :manpage:`access(2)` pour plus " "d'informations." -#: ../Doc/library/os.rst:1514 +#: ../Doc/library/os.rst:1505 msgid "" "This function can support specifying :ref:`paths relative to directory " "descriptors ` and :ref:`not following symlinks `." @@ -2104,7 +2086,7 @@ msgstr "" "des descripteurs de fichiers ` et :ref:`le suivi des liens " "symboliques `." -#: ../Doc/library/os.rst:1517 +#: ../Doc/library/os.rst:1508 msgid "" "If *effective_ids* is ``True``, :func:`access` will perform its access " "checks using the effective uid/gid instead of the real uid/gid. " @@ -2119,7 +2101,7 @@ msgstr "" "supports_effective_ids`. S'il est indisponible, l'utiliser lèvera une :exc:" "`NotImplementedError`." -#: ../Doc/library/os.rst:1525 +#: ../Doc/library/os.rst:1516 msgid "" "Using :func:`access` to check if a user is authorized to e.g. open a file " "before actually doing so using :func:`open` creates a security hole, because " @@ -2132,13 +2114,13 @@ msgstr "" "func:`open` crée une faille de sécurité : l'utilisateur peut exploiter le " "court intervalle de temps entre la vérification et l'ouverture du fichier " "pour le manipuler. Il est préférable d'utiliser les techniques :term:`EAFP`. " -"Par exemple : ::" +"Par exemple ::" -#: ../Doc/library/os.rst:1536 +#: ../Doc/library/os.rst:1527 msgid "is better written as::" -msgstr "est mieux écrit comme suit : ::" +msgstr "est mieux écrit comme suit ::" -#: ../Doc/library/os.rst:1548 +#: ../Doc/library/os.rst:1539 msgid "" "I/O operations may fail even when :func:`access` indicates that they would " "succeed, particularly for operations on network filesystems which may have " @@ -2149,11 +2131,11 @@ msgstr "" "les systèmes de fichiers réseaux qui peuvent avoir une sémantique de " "permissions au-delà du modèle de bits de permission usuel POSIX." -#: ../Doc/library/os.rst:1552 +#: ../Doc/library/os.rst:1543 msgid "Added the *dir_fd*, *effective_ids*, and *follow_symlinks* parameters." msgstr "Paramètres *dir_fd*, *effective_ids*, et *follow_symlinks* ajoutés." -#: ../Doc/library/os.rst:1564 +#: ../Doc/library/os.rst:1555 msgid "" "Values to pass as the *mode* parameter of :func:`access` to test the " "existence, readability, writability and executability of *path*, " @@ -2162,11 +2144,11 @@ msgstr "" "Valeurs à passer au paramètre *mode* de :func:`access` pour tester " "respectivement l'existence, les droits de lecture, d'écriture et d'exécution." -#: ../Doc/library/os.rst:1573 +#: ../Doc/library/os.rst:1564 msgid "Change the current working directory to *path*." msgstr "Change le répertoire de travail actuel par *path*." -#: ../Doc/library/os.rst:1575 +#: ../Doc/library/os.rst:1566 msgid "" "This function can support :ref:`specifying a file descriptor `. " "The descriptor must refer to an opened directory, not an open file." @@ -2175,14 +2157,14 @@ msgstr "" "fichier `. Le descripteur doit référencer un répertoire ouvert, pas " "un fichier ouvert." -#: ../Doc/library/os.rst:1578 +#: ../Doc/library/os.rst:1569 msgid "" "Added support for specifying *path* as a file descriptor on some platforms." msgstr "" "Prise en charge de la spécification de *path* par un descripteur de fichier " "sur certaines plate-formes." -#: ../Doc/library/os.rst:1588 +#: ../Doc/library/os.rst:1579 msgid "" "Set the flags of *path* to the numeric *flags*. *flags* may take a " "combination (bitwise OR) of the following values (as defined in the :mod:" @@ -2192,66 +2174,66 @@ msgstr "" "peut prendre une combinaison (OU bit-à-bit) des valeurs suivantes (comme " "défini dans le module :mod:`stat`) :" -#: ../Doc/library/os.rst:1591 +#: ../Doc/library/os.rst:1582 msgid ":data:`stat.UF_NODUMP`" msgstr ":data:`stat.UF_NODUMP`" -#: ../Doc/library/os.rst:1592 +#: ../Doc/library/os.rst:1583 msgid ":data:`stat.UF_IMMUTABLE`" msgstr ":data:`stat.UF_IMMUTABLE`" -#: ../Doc/library/os.rst:1593 +#: ../Doc/library/os.rst:1584 msgid ":data:`stat.UF_APPEND`" msgstr ":data:`stat.UF_APPEND`" -#: ../Doc/library/os.rst:1594 +#: ../Doc/library/os.rst:1585 msgid ":data:`stat.UF_OPAQUE`" msgstr ":data:`stat.UF_OPAQUE`" -#: ../Doc/library/os.rst:1595 +#: ../Doc/library/os.rst:1586 msgid ":data:`stat.UF_NOUNLINK`" msgstr ":data:`stat.UF_NOUNLINK`" -#: ../Doc/library/os.rst:1596 +#: ../Doc/library/os.rst:1587 msgid ":data:`stat.UF_COMPRESSED`" msgstr ":data:`stat.UF_COMPRESSED`" -#: ../Doc/library/os.rst:1597 +#: ../Doc/library/os.rst:1588 msgid ":data:`stat.UF_HIDDEN`" msgstr ":data:`stat.UF_HIDDEN`" -#: ../Doc/library/os.rst:1598 +#: ../Doc/library/os.rst:1589 msgid ":data:`stat.SF_ARCHIVED`" msgstr ":data:`stat.SF_ARCHIVED`" -#: ../Doc/library/os.rst:1599 +#: ../Doc/library/os.rst:1590 msgid ":data:`stat.SF_IMMUTABLE`" msgstr ":data:`stat.SF_IMMUTABLE`" -#: ../Doc/library/os.rst:1600 +#: ../Doc/library/os.rst:1591 msgid ":data:`stat.SF_APPEND`" msgstr ":data:`stat.SF_APPEND`" -#: ../Doc/library/os.rst:1601 +#: ../Doc/library/os.rst:1592 msgid ":data:`stat.SF_NOUNLINK`" msgstr ":data:`stat.SF_NOUNLINK`" -#: ../Doc/library/os.rst:1602 +#: ../Doc/library/os.rst:1593 msgid ":data:`stat.SF_SNAPSHOT`" msgstr ":data:`stat.SF_SNAPSHOT`" -#: ../Doc/library/os.rst:1604 +#: ../Doc/library/os.rst:1595 msgid "" "This function can support :ref:`not following symlinks `." msgstr "" "Cette fonction prend en charge :ref:`le suivi des liens symboliques " "`." -#: ../Doc/library/os.rst:1608 +#: ../Doc/library/os.rst:1599 msgid "The *follow_symlinks* argument." msgstr "L'argument *follow_symlinks*." -#: ../Doc/library/os.rst:1617 +#: ../Doc/library/os.rst:1608 msgid "" "Change the mode of *path* to the numeric *mode*. *mode* may take one of the " "following values (as defined in the :mod:`stat` module) or bitwise ORed " @@ -2261,84 +2243,84 @@ msgstr "" "une des valeurs suivantes (comme défini dans le module :mod:`stat`) ou une " "combinaison (OU bit-à-bit) de ces valeurs :" -#: ../Doc/library/os.rst:1621 +#: ../Doc/library/os.rst:1612 msgid ":data:`stat.S_ISUID`" msgstr ":data:`stat.S_ISUID`" -#: ../Doc/library/os.rst:1622 +#: ../Doc/library/os.rst:1613 msgid ":data:`stat.S_ISGID`" msgstr ":data:`stat.S_ISGID`" -#: ../Doc/library/os.rst:1623 +#: ../Doc/library/os.rst:1614 msgid ":data:`stat.S_ENFMT`" msgstr ":data:`stat.S_ENFMT`" -#: ../Doc/library/os.rst:1624 +#: ../Doc/library/os.rst:1615 msgid ":data:`stat.S_ISVTX`" msgstr ":data:`stat.S_ISVTX`" -#: ../Doc/library/os.rst:1625 +#: ../Doc/library/os.rst:1616 msgid ":data:`stat.S_IREAD`" msgstr ":data:`stat.S_IREAD`" -#: ../Doc/library/os.rst:1626 +#: ../Doc/library/os.rst:1617 msgid ":data:`stat.S_IWRITE`" msgstr ":data:`stat.S_IWRITE`" -#: ../Doc/library/os.rst:1627 +#: ../Doc/library/os.rst:1618 msgid ":data:`stat.S_IEXEC`" msgstr ":data:`stat.S_IEXEC`" -#: ../Doc/library/os.rst:1628 +#: ../Doc/library/os.rst:1619 msgid ":data:`stat.S_IRWXU`" msgstr ":data:`stat.S_IRWXU`" -#: ../Doc/library/os.rst:1629 +#: ../Doc/library/os.rst:1620 msgid ":data:`stat.S_IRUSR`" msgstr ":data:`stat.S_IRUSR`" -#: ../Doc/library/os.rst:1630 +#: ../Doc/library/os.rst:1621 msgid ":data:`stat.S_IWUSR`" msgstr ":data:`stat.S_IWUSR`" -#: ../Doc/library/os.rst:1631 +#: ../Doc/library/os.rst:1622 msgid ":data:`stat.S_IXUSR`" msgstr ":data:`stat.S_IXUSR`" -#: ../Doc/library/os.rst:1632 +#: ../Doc/library/os.rst:1623 msgid ":data:`stat.S_IRWXG`" msgstr ":data:`stat.S_IRWXG`" -#: ../Doc/library/os.rst:1633 +#: ../Doc/library/os.rst:1624 msgid ":data:`stat.S_IRGRP`" msgstr ":data:`stat.S_IRGRP`" -#: ../Doc/library/os.rst:1634 +#: ../Doc/library/os.rst:1625 msgid ":data:`stat.S_IWGRP`" msgstr ":data:`stat.S_IWGRP`" -#: ../Doc/library/os.rst:1635 +#: ../Doc/library/os.rst:1626 msgid ":data:`stat.S_IXGRP`" msgstr ":data:`stat.S_IXGRP`" -#: ../Doc/library/os.rst:1636 +#: ../Doc/library/os.rst:1627 msgid ":data:`stat.S_IRWXO`" msgstr ":data:`stat.S_IRWXO`" -#: ../Doc/library/os.rst:1637 +#: ../Doc/library/os.rst:1628 msgid ":data:`stat.S_IROTH`" msgstr ":data:`stat.S_IROTH`" -#: ../Doc/library/os.rst:1638 +#: ../Doc/library/os.rst:1629 msgid ":data:`stat.S_IWOTH`" msgstr ":data:`stat.S_IWOTH`" -#: ../Doc/library/os.rst:1639 +#: ../Doc/library/os.rst:1630 msgid ":data:`stat.S_IXOTH`" msgstr ":data:`stat.S_IXOTH`" -#: ../Doc/library/os.rst:1641 ../Doc/library/os.rst:1664 -#: ../Doc/library/os.rst:2809 +#: ../Doc/library/os.rst:1632 ../Doc/library/os.rst:1655 +#: ../Doc/library/os.rst:2800 msgid "" "This function can support :ref:`specifying a file descriptor `, :" "ref:`paths relative to directory descriptors ` and :ref:`not " @@ -2349,7 +2331,7 @@ msgstr "" "répertoires `, et :ref:`le non-suivi des liens symboliques " "`." -#: ../Doc/library/os.rst:1647 +#: ../Doc/library/os.rst:1638 msgid "" "Although Windows supports :func:`chmod`, you can only set the file's read-" "only flag with it (via the ``stat.S_IWRITE`` and ``stat.S_IREAD`` constants " @@ -2360,7 +2342,7 @@ msgstr "" "et ``stat.S_IREAD`` ou une constante entière correspondante). Tous les " "autres bits sont ignorés." -#: ../Doc/library/os.rst:1651 +#: ../Doc/library/os.rst:1642 msgid "" "Added support for specifying *path* as an open file descriptor, and the " "*dir_fd* and *follow_symlinks* arguments." @@ -2368,7 +2350,7 @@ msgstr "" "Prise en charge de la spécification de *path* par un répertoire ouvert et " "des arguments *dir_fd* et *follow_symlinks* ajoutés." -#: ../Doc/library/os.rst:1661 +#: ../Doc/library/os.rst:1652 msgid "" "Change the owner and group id of *path* to the numeric *uid* and *gid*. To " "leave one of the ids unchanged, set it to -1." @@ -2377,7 +2359,7 @@ msgstr "" "numériques *uid* et *gid*. Pour laisser l'un de ces identifiants inchangé, " "le définir à ``-1``." -#: ../Doc/library/os.rst:1668 +#: ../Doc/library/os.rst:1659 msgid "" "See :func:`shutil.chown` for a higher-level function that accepts names in " "addition to numeric ids." @@ -2385,7 +2367,7 @@ msgstr "" "Voir :func:`shutil.chown` pour une fonction de plus haut-niveau qui accepte " "des noms en plus des identifiants numériques." -#: ../Doc/library/os.rst:1673 +#: ../Doc/library/os.rst:1664 msgid "" "Added support for specifying an open file descriptor for *path*, and the " "*dir_fd* and *follow_symlinks* arguments." @@ -2393,15 +2375,15 @@ msgstr "" "Prise en charge de la spécification de *path* par un descripteur de fichier " "ouvert et des arguments *dir_fd* et *follow_symlinks* ajoutés." -#: ../Doc/library/os.rst:1677 +#: ../Doc/library/os.rst:1668 msgid "Supports a :term:`path-like object`." msgstr "Accepte un :term:`path-like object`." -#: ../Doc/library/os.rst:1683 +#: ../Doc/library/os.rst:1674 msgid "Change the root directory of the current process to *path*." msgstr "Change le répertoire racine du processus actuel par *path*." -#: ../Doc/library/os.rst:1693 +#: ../Doc/library/os.rst:1684 msgid "" "Change the current working directory to the directory represented by the " "file descriptor *fd*. The descriptor must refer to an opened directory, not " @@ -2412,18 +2394,18 @@ msgstr "" "ouvert, pas un fichier ouvert. Depuis Python 3.3, c'est équivalent à ``os." "chdir(fd)``." -#: ../Doc/library/os.rst:1702 +#: ../Doc/library/os.rst:1693 msgid "Return a string representing the current working directory." msgstr "" "Renvoie une chaîne de caractères représentant le répertoire de travail " "actuel." -#: ../Doc/library/os.rst:1707 +#: ../Doc/library/os.rst:1698 msgid "Return a bytestring representing the current working directory." msgstr "" "Renvoie une chaîne de *bytes* représentant le répertoire de travail actuel." -#: ../Doc/library/os.rst:1712 +#: ../Doc/library/os.rst:1703 msgid "" "Set the flags of *path* to the numeric *flags*, like :func:`chflags`, but do " "not follow symbolic links. As of Python 3.3, this is equivalent to ``os." @@ -2433,7 +2415,7 @@ msgstr "" "`chflags`, mais ne suit pas les liens symboliques. Depuis Python 3.3, c'est " "équivalent à ``os.chflags(path, flags, follow_symlinks=False)``." -#: ../Doc/library/os.rst:1724 +#: ../Doc/library/os.rst:1715 msgid "" "Change the mode of *path* to the numeric *mode*. If path is a symlink, this " "affects the symlink rather than the target. See the docs for :func:`chmod` " @@ -2446,7 +2428,7 @@ msgstr "" "Depuis Python 3.3, c'est équivalent à ``os.chmod(path, mode, " "follow_symlinks=False)``." -#: ../Doc/library/os.rst:1736 +#: ../Doc/library/os.rst:1727 msgid "" "Change the owner and group id of *path* to the numeric *uid* and *gid*. " "This function will not follow symbolic links. As of Python 3.3, this is " @@ -2456,11 +2438,11 @@ msgstr "" "*gid*. Cette fonction ne suivra pas les liens symboliques. Depuis Python " "3.3, c'est équivalent à ``os.chown(path, uid, gid, follow_symlinks=False)``." -#: ../Doc/library/os.rst:1748 +#: ../Doc/library/os.rst:1739 msgid "Create a hard link pointing to *src* named *dst*." msgstr "Crée un lien matériel appelé *dst* pointant sur *src*." -#: ../Doc/library/os.rst:1750 +#: ../Doc/library/os.rst:1741 msgid "" "This function can support specifying *src_dir_fd* and/or *dst_dir_fd* to " "supply :ref:`paths relative to directory descriptors `, and :ref:" @@ -2471,21 +2453,21 @@ msgstr "" "répertoires `, et :ref:`le non-suivi des liens symboliques " "`." -#: ../Doc/library/os.rst:1756 +#: ../Doc/library/os.rst:1747 msgid "Added Windows support." msgstr "Prise en charge de Windows." -#: ../Doc/library/os.rst:1759 +#: ../Doc/library/os.rst:1750 msgid "Added the *src_dir_fd*, *dst_dir_fd*, and *follow_symlinks* arguments." msgstr "Arguments *src_dir_fd*, *dst_dir_fd*, et *follow_symlinks* ajoutés." -#: ../Doc/library/os.rst:1762 ../Doc/library/os.rst:1824 -#: ../Doc/library/os.rst:2076 ../Doc/library/os.rst:2109 -#: ../Doc/library/os.rst:2736 +#: ../Doc/library/os.rst:1753 ../Doc/library/os.rst:1815 +#: ../Doc/library/os.rst:2067 ../Doc/library/os.rst:2100 +#: ../Doc/library/os.rst:2727 msgid "Accepts a :term:`path-like object` for *src* and *dst*." msgstr "Accepte un :term:`path-like object` pour *src* et *dst*." -#: ../Doc/library/os.rst:1768 +#: ../Doc/library/os.rst:1759 msgid "" "Return a list containing the names of the entries in the directory given by " "*path*. The list is in arbitrary order, and does not include the special " @@ -2496,7 +2478,7 @@ msgstr "" "spéciales ``'.'`` et ``'..'`` même si elles sont présentes dans le " "répertoire." -#: ../Doc/library/os.rst:1772 +#: ../Doc/library/os.rst:1763 msgid "" "*path* may be a :term:`path-like object`. If *path* is of type ``bytes`` " "(directly or indirectly through the :class:`PathLike` interface), the " @@ -2508,7 +2490,7 @@ msgstr "" "`PathLike`), les noms de fichiers renvoyés seront aussi de type ``bytes`` ; " "dans toutes les autres circonstances, ils seront de type ``str``." -#: ../Doc/library/os.rst:1777 ../Doc/library/os.rst:2152 +#: ../Doc/library/os.rst:1768 ../Doc/library/os.rst:2143 msgid "" "This function can also support :ref:`specifying a file descriptor " "`; the file descriptor must refer to a directory." @@ -2516,13 +2498,13 @@ msgstr "" "Cette fonction peut également gérer :ref:`la spécification de descripteurs " "de fichiers`. Le descripteur doit référencer un répertoire." -#: ../Doc/library/os.rst:1781 +#: ../Doc/library/os.rst:1772 msgid "To encode ``str`` filenames to ``bytes``, use :func:`~os.fsencode`." msgstr "" "Pour encoder des noms de fichiers de type ``str`` en ``bytes``, utilisez la " "fonction :func:`~os.encode`." -#: ../Doc/library/os.rst:1785 +#: ../Doc/library/os.rst:1776 msgid "" "The :func:`scandir` function returns directory entries along with file " "attribute information, giving better performance for many common use cases." @@ -2531,17 +2513,17 @@ msgstr "" "leurs attributs , offrant une meilleure performance pour beaucoup de cas " "utilisés fréquemment." -#: ../Doc/library/os.rst:1789 +#: ../Doc/library/os.rst:1780 msgid "The *path* parameter became optional." msgstr "Le paramètre *path* est devenu optionnel." -#: ../Doc/library/os.rst:1792 ../Doc/library/os.rst:2602 +#: ../Doc/library/os.rst:1783 ../Doc/library/os.rst:2593 msgid "Added support for specifying an open file descriptor for *path*." msgstr "" "Prise en charge de la spécification d'un descripteur de répertoire pour " "*path* ajouté." -#: ../Doc/library/os.rst:1801 +#: ../Doc/library/os.rst:1792 msgid "" "Perform the equivalent of an :c:func:`lstat` system call on the given path. " "Similar to :func:`~os.stat`, but does not follow symbolic links. Return a :" @@ -2551,7 +2533,7 @@ msgstr "" "donné. Similaire à :func:`~os.stat` mais ne suit pas les liens symboliques. " "Renvoie un objet de type :class:`stat_result`." -#: ../Doc/library/os.rst:1805 +#: ../Doc/library/os.rst:1796 msgid "" "On platforms that do not support symbolic links, this is an alias for :func:" "`~os.stat`." @@ -2559,7 +2541,7 @@ msgstr "" "Sur les plate-formes qui ne gérant pas les liens symboliques, c'est un alias " "pour :func:`~os.stat`." -#: ../Doc/library/os.rst:1808 +#: ../Doc/library/os.rst:1799 msgid "" "As of Python 3.3, this is equivalent to ``os.stat(path, dir_fd=dir_fd, " "follow_symlinks=False)``." @@ -2567,9 +2549,9 @@ msgstr "" "Depuis Python 3.3, c'est équivalent à ``os.stat(path, dir_fd=dir_fd, " "follow_symlinks=False)``." -#: ../Doc/library/os.rst:1811 ../Doc/library/os.rst:1842 -#: ../Doc/library/os.rst:1903 ../Doc/library/os.rst:1931 -#: ../Doc/library/os.rst:2005 +#: ../Doc/library/os.rst:1802 ../Doc/library/os.rst:1833 +#: ../Doc/library/os.rst:1894 ../Doc/library/os.rst:1922 +#: ../Doc/library/os.rst:1996 msgid "" "This function can also support :ref:`paths relative to directory descriptors " "`." @@ -2577,25 +2559,25 @@ msgstr "" "Cette fonction peut également gérer :ref:`des chemins relatifs à des " "descripteurs de répertoires `." -#: ../Doc/library/os.rst:1818 ../Doc/library/os.rst:2010 -#: ../Doc/library/os.rst:2729 +#: ../Doc/library/os.rst:1809 ../Doc/library/os.rst:2001 +#: ../Doc/library/os.rst:2720 msgid "Added support for Windows 6.0 (Vista) symbolic links." msgstr "Prise en charge des les liens symboliques sur Windows 6.0 (Vista)." -#: ../Doc/library/os.rst:1821 +#: ../Doc/library/os.rst:1812 msgid "Added the *dir_fd* parameter." msgstr "Paramètre *dir_fd* ajouté." -#: ../Doc/library/os.rst:1830 +#: ../Doc/library/os.rst:1821 msgid "Create a directory named *path* with numeric mode *mode*." msgstr "" "Crée un répertoire appelé *path* avec pour mode, la valeur numérique *mode*." -#: ../Doc/library/os.rst:1832 +#: ../Doc/library/os.rst:1823 msgid "If the directory already exists, :exc:`FileExistsError` is raised." msgstr "Si le répertoire existe déjà, :exc:`FileExistsError` est levée." -#: ../Doc/library/os.rst:1836 +#: ../Doc/library/os.rst:1827 msgid "" "On some systems, *mode* is ignored. Where it is used, the current umask " "value is first masked out. If bits other than the last 9 (i.e. the last 3 " @@ -2610,7 +2592,7 @@ msgstr "" "Sous certaines plate-formes, ils seront ignorés et vous devrez appeler " "explicitement :func:`chmod` pour les modifier." -#: ../Doc/library/os.rst:1845 +#: ../Doc/library/os.rst:1836 msgid "" "It is also possible to create temporary directories; see the :mod:`tempfile` " "module's :func:`tempfile.mkdtemp` function." @@ -2618,7 +2600,7 @@ msgstr "" "Il est également possible de créer des répertoires temporaires, voir la " "fonction :func:`tempfile.mkdtemp` du module :mod:`tempfile`." -#: ../Doc/library/os.rst:1861 +#: ../Doc/library/os.rst:1852 msgid "" "Recursive directory creation function. Like :func:`mkdir`, but makes all " "intermediate-level directories needed to contain the leaf directory." @@ -2627,7 +2609,7 @@ msgstr "" "tous les répertoires de niveau intermédiaire nécessaires pour contenir le " "répertoire \"feuille\"." -#: ../Doc/library/os.rst:1864 +#: ../Doc/library/os.rst:1855 msgid "" "The *mode* parameter is passed to :func:`mkdir` for creating the leaf " "directory; see :ref:`the mkdir() description ` for how it is " @@ -2642,7 +2624,7 @@ msgstr "" "valeur de *umask* avant d'invoquer :func:`makedirs`. Les bits de permissions " "des répertoires intermédiaires déjà existants ne sont pas modifiés." -#: ../Doc/library/os.rst:1870 +#: ../Doc/library/os.rst:1861 msgid "" "If *exist_ok* is ``False`` (the default), an :exc:`OSError` is raised if the " "target directory already exists." @@ -2650,7 +2632,7 @@ msgstr "" "Si *exist_ok* vaut ``False`` (valeur par défaut), une :exc:`OSError` est " "levée si le répertoire cible existe déjà." -#: ../Doc/library/os.rst:1875 +#: ../Doc/library/os.rst:1866 msgid "" ":func:`makedirs` will become confused if the path elements to create " "include :data:`pardir` (eg. \"..\" on UNIX systems)." @@ -2658,15 +2640,15 @@ msgstr "" "Un appel à :func:`makedirs` est confus si les éléments du chemin à créer " "contiennent :data:`pardir` (par exemple, \"..\" sur les systèmes UNIX)." -#: ../Doc/library/os.rst:1878 +#: ../Doc/library/os.rst:1869 msgid "This function handles UNC paths correctly." msgstr "Cette fonction gère les chemins UNC correctement." -#: ../Doc/library/os.rst:1880 +#: ../Doc/library/os.rst:1871 msgid "The *exist_ok* parameter." msgstr "Le paramètre *exist_ok*." -#: ../Doc/library/os.rst:1885 +#: ../Doc/library/os.rst:1876 msgid "" "Before Python 3.4.1, if *exist_ok* was ``True`` and the directory existed, :" "func:`makedirs` would still raise an error if *mode* did not match the mode " @@ -2679,15 +2661,15 @@ msgstr "" "pas possible ) implémenter de manière sécurisée, il a été retiré pour Python " "3.4.1. Voir :issue:`21082`." -#: ../Doc/library/os.rst:1893 +#: ../Doc/library/os.rst:1884 msgid "" "The *mode* argument no longer affects the file permission bits of newly-" "created intermediate-level directories." msgstr "" "L'argument *mode* n'affecte plus les bits d'autorisation de fichier des " -"répertoires intermédiaire créés." +"répertoires intermédiaires créés." -#: ../Doc/library/os.rst:1900 +#: ../Doc/library/os.rst:1891 msgid "" "Create a FIFO (a named pipe) named *path* with numeric mode *mode*. The " "current umask value is first masked out from the mode." @@ -2696,7 +2678,7 @@ msgstr "" "appelé *path* avec le mode numérique *mode*. La valeur actuelle de *umask* " "est d'abord masquée du mode." -#: ../Doc/library/os.rst:1906 +#: ../Doc/library/os.rst:1897 msgid "" "FIFOs are pipes that can be accessed like regular files. FIFOs exist until " "they are deleted (for example with :func:`os.unlink`). Generally, FIFOs are " @@ -2710,10 +2692,10 @@ msgstr "" "l'aide de :func:`os.unlink`). Généralement, les FIFOs sont utilisé comme " "communication entre des processus de type \"client\" et \"serveur\" : le " "serveur ouvre le FIFO pour le lire, et le client l'ouvre pour écrire dedans. " -"Notez que :func:`mkfifo` n'ouvre pas le FIFO --- il crée juste un point de " +"Notez que :func:`mkfifo` n'ouvre pas le FIFO — il crée juste un point de " "rendez-vous." -#: ../Doc/library/os.rst:1923 +#: ../Doc/library/os.rst:1914 msgid "" "Create a filesystem node (file, device special file or named pipe) named " "*path*. *mode* specifies both the permissions to use and the type of node to " @@ -2732,7 +2714,7 @@ msgstr "" "définit le fichier spécial de périphérique tout juste créé (probablement en " "utilisant :func:`os.makedev`), sinon, cet argument est ignoré." -#: ../Doc/library/os.rst:1945 +#: ../Doc/library/os.rst:1936 msgid "" "Extract the device major number from a raw device number (usually the :attr:" "`st_dev` or :attr:`st_rdev` field from :c:type:`stat`)." @@ -2741,7 +2723,7 @@ msgstr "" "(habituellement le champ :attr:`st_dev` ou :attr:`st_rdev` de :c:type:" "`stat`)." -#: ../Doc/library/os.rst:1951 +#: ../Doc/library/os.rst:1942 msgid "" "Extract the device minor number from a raw device number (usually the :attr:" "`st_dev` or :attr:`st_rdev` field from :c:type:`stat`)." @@ -2750,13 +2732,13 @@ msgstr "" "(habituellement le champ :attr:`st_dev` ou :attr:`st_rdev` de :c:type:" "`stat`)." -#: ../Doc/library/os.rst:1957 +#: ../Doc/library/os.rst:1948 msgid "Compose a raw device number from the major and minor device numbers." msgstr "" "Compose un nombre de périphérique brut à partir des nombres de périphérique " "mineur et majeur." -#: ../Doc/library/os.rst:1962 +#: ../Doc/library/os.rst:1953 msgid "" "Return system configuration information relevant to a named file. *name* " "specifies the configuration value to retrieve; it may be a string which is " @@ -2776,15 +2758,15 @@ msgstr "" "configuration non incluses dans ce *mapping*, passer un entier pour *name* " "est également accepté." -#: ../Doc/library/os.rst:1975 ../Doc/library/os.rst:2595 -#: ../Doc/library/os.rst:2754 +#: ../Doc/library/os.rst:1966 ../Doc/library/os.rst:2586 +#: ../Doc/library/os.rst:2745 msgid "" "This function can support :ref:`specifying a file descriptor `." msgstr "" "Cette fonction prend en charge :ref:`la spécification d'un descripteur de " "fichier `." -#: ../Doc/library/os.rst:1986 +#: ../Doc/library/os.rst:1977 msgid "" "Dictionary mapping names accepted by :func:`pathconf` and :func:`fpathconf` " "to the integer values defined for those names by the host operating system. " @@ -2795,7 +2777,7 @@ msgstr "" "d'exploitation hôte. Cette variable peut être utilisée pour déterminer " "l'ensemble des noms connus du système d'exploitation." -#: ../Doc/library/os.rst:1995 +#: ../Doc/library/os.rst:1986 msgid "" "Return a string representing the path to which the symbolic link points. " "The result may be either an absolute or relative pathname; if it is " @@ -2807,7 +2789,7 @@ msgstr "" "chemin absolu. S'il est relatif, il peut être converti en chemin absolu en " "utilisant ``os.path.join(os.path.dirname(path), result)``." -#: ../Doc/library/os.rst:2000 +#: ../Doc/library/os.rst:1991 msgid "" "If the *path* is a string object (directly or indirectly through a :class:" "`PathLike` interface), the result will also be a string object, and the call " @@ -2820,11 +2802,7 @@ msgstr "" "une chaîne d'octets (directement ou indirectement), le résultat sera une " "chaîne d'octets." -#: ../Doc/library/os.rst:2008 -msgid "Availability: Unix, Windows" -msgstr "Disponibilité Unix, Windows" - -#: ../Doc/library/os.rst:2022 +#: ../Doc/library/os.rst:2013 msgid "" "Remove (delete) the file *path*. If *path* is a directory, :exc:`OSError` " "is raised. Use :func:`rmdir` to remove directories." @@ -2833,8 +2811,8 @@ msgstr "" "répertoire, une :exc:`OSError` est levée. Utilisez la fonction :func:`rmdir` " "pour supprimer un répertoire." -#: ../Doc/library/os.rst:2025 ../Doc/library/os.rst:2119 -#: ../Doc/library/os.rst:2712 +#: ../Doc/library/os.rst:2016 ../Doc/library/os.rst:2110 +#: ../Doc/library/os.rst:2703 msgid "" "This function can support :ref:`paths relative to directory descriptors " "`." @@ -2842,7 +2820,7 @@ msgstr "" "Cette fonction prend en charge :ref:`des chemins relatifs à des descripteurs " "de répertories `." -#: ../Doc/library/os.rst:2028 +#: ../Doc/library/os.rst:2019 msgid "" "On Windows, attempting to remove a file that is in use causes an exception " "to be raised; on Unix, the directory entry is removed but the storage " @@ -2854,11 +2832,11 @@ msgstr "" "l'espace de stockage alloué au fichier ne sera pas disponible avant que le " "fichier original ne soit plus utilisé." -#: ../Doc/library/os.rst:2032 +#: ../Doc/library/os.rst:2023 msgid "This function is semantically identical to :func:`unlink`." msgstr "La fonction est sémantiquement identique à :func:`unlink`." -#: ../Doc/library/os.rst:2045 +#: ../Doc/library/os.rst:2036 msgid "" "Remove directories recursively. Works like :func:`rmdir` except that, if " "the leaf directory is successfully removed, :func:`removedirs` tries to " @@ -2879,7 +2857,7 @@ msgstr "" "``'foo'`` s'ils sont vides. Lève une :exc:`OSError` si le répertoire feuille " "n'a pas pu être supprimé avec succès." -#: ../Doc/library/os.rst:2060 +#: ../Doc/library/os.rst:2051 msgid "" "Rename the file or directory *src* to *dst*. If *dst* is a directory, :exc:" "`OSError` will be raised. On Unix, if *dst* exists and is a file, it will " @@ -2897,7 +2875,7 @@ msgstr "" "est une opération atomique (nécessité POSIX). Sur Window, si *dst* existe " "déjà, une :exc:`OSError` est levée même s'il est un fichier." -#: ../Doc/library/os.rst:2068 ../Doc/library/os.rst:2104 +#: ../Doc/library/os.rst:2059 ../Doc/library/os.rst:2095 msgid "" "This function can support specifying *src_dir_fd* and/or *dst_dir_fd* to " "supply :ref:`paths relative to directory descriptors `." @@ -2906,7 +2884,7 @@ msgstr "" "*dst_dir_fd* pour fournir :ref:`des chemins relatifs à des descripteurs de " "fichiers `." -#: ../Doc/library/os.rst:2071 +#: ../Doc/library/os.rst:2062 msgid "" "If you want cross-platform overwriting of the destination, use :func:" "`replace`." @@ -2914,11 +2892,11 @@ msgstr "" "Si cous désirez un écrasement multiplate-forme de la destination, utilisez " "la fonction :func:`replace`." -#: ../Doc/library/os.rst:2073 +#: ../Doc/library/os.rst:2064 msgid "The *src_dir_fd* and *dst_dir_fd* arguments." msgstr "Les arguments *src_dir_fd* et *dst_dir_fd*." -#: ../Doc/library/os.rst:2082 +#: ../Doc/library/os.rst:2073 msgid "" "Recursive directory or file renaming function. Works like :func:`rename`, " "except creation of any intermediate directories needed to make the new " @@ -2933,7 +2911,7 @@ msgstr "" "chemin les plus à droite de l'ancien nom seront élagués en utilisant :func:" "`removedirs`." -#: ../Doc/library/os.rst:2089 +#: ../Doc/library/os.rst:2080 msgid "" "This function can fail with the new directory structure made if you lack " "permissions needed to remove the leaf directory or file." @@ -2942,11 +2920,11 @@ msgstr "" "définie si vous n'avez pas les permissions nécessaires pour supprimer le " "répertoire ou fichier feuille." -#: ../Doc/library/os.rst:2092 +#: ../Doc/library/os.rst:2083 msgid "Accepts a :term:`path-like object` for *old* and *new*." msgstr "Accepte un :term:`path-like object` pour *old* et *new*." -#: ../Doc/library/os.rst:2098 +#: ../Doc/library/os.rst:2089 msgid "" "Rename the file or directory *src* to *dst*. If *dst* is a directory, :exc:" "`OSError` will be raised. If *dst* exists and is a file, it will be " @@ -2961,7 +2939,7 @@ msgstr "" "différent. Si le renommage est effectué avec succès, il est une opération " "atomique (nécessité POSIX)." -#: ../Doc/library/os.rst:2115 +#: ../Doc/library/os.rst:2106 msgid "" "Remove (delete) the directory *path*. Only works when the directory is " "empty, otherwise, :exc:`OSError` is raised. In order to remove whole " @@ -2972,11 +2950,11 @@ msgstr "" "toute la hiérarchie de dossier, la fonction :func:`shutil.rmtree` peut être " "utilisée." -#: ../Doc/library/os.rst:2122 ../Doc/library/os.rst:2774 +#: ../Doc/library/os.rst:2113 ../Doc/library/os.rst:2765 msgid "The *dir_fd* parameter." msgstr "Le paramètre *dir_fd*." -#: ../Doc/library/os.rst:2131 +#: ../Doc/library/os.rst:2122 msgid "" "Return an iterator of :class:`os.DirEntry` objects corresponding to the " "entries in the directory given by *path*. The entries are yielded in " @@ -2988,7 +2966,7 @@ msgstr "" "ordre arbitraire, et les entrées spéciales ``'.'`` et ``'..'`` ne sont pas " "incluses." -#: ../Doc/library/os.rst:2136 +#: ../Doc/library/os.rst:2127 msgid "" "Using :func:`scandir` instead of :func:`listdir` can significantly increase " "the performance of code that also needs file type or file attribute " @@ -3009,7 +2987,7 @@ msgstr "" "symboliques ; :func:`os.DirEntry.stat` nécessite toujours un appel système " "sous Unix, mais seulement pour les liens symboliques sous Windows." -#: ../Doc/library/os.rst:2146 +#: ../Doc/library/os.rst:2137 msgid "" "*path* may be a :term:`path-like object`. If *path* is of type ``bytes`` " "(directly or indirectly through the :class:`PathLike` interface), the type " @@ -3023,7 +3001,7 @@ msgstr "" "DirEntry.path` de chaque :class:`os.DirEntry` sera ``bytes`` ; dans toutes " "les autres circonstances, ils seront de type ``str``." -#: ../Doc/library/os.rst:2155 +#: ../Doc/library/os.rst:2146 msgid "" "The :func:`scandir` iterator supports the :term:`context manager` protocol " "and has the following method:" @@ -3031,11 +3009,11 @@ msgstr "" "L'itérateur :func:`scandir` gère le protocole :term:`context manager` et " "possède la méthode suivante :" -#: ../Doc/library/os.rst:2160 +#: ../Doc/library/os.rst:2151 msgid "Close the iterator and free acquired resources." msgstr "Ferme l'itérateur et libère les ressources acquises." -#: ../Doc/library/os.rst:2162 +#: ../Doc/library/os.rst:2153 msgid "" "This is called automatically when the iterator is exhausted or garbage " "collected, or when an error happens during iterating. However it is " @@ -3046,7 +3024,7 @@ msgstr "" "l'itération. Il est cependant conseillé de l'appeler explicitement ou " "d'utiliser l'instruction :keyword:`with`." -#: ../Doc/library/os.rst:2169 +#: ../Doc/library/os.rst:2160 msgid "" "The following example shows a simple use of :func:`scandir` to display all " "the files (excluding directories) in the given *path* that don't start with " @@ -3056,9 +3034,9 @@ msgstr "" "L'exemple suivant montre une utilisation simple de :func:`scandir` pour " "afficher tous les fichiers (à part les répertoires) dans le chemin donné par " "*path* et ne débutant pas par ``'.'``. L'appel ``entry.is_file()`` ne va " -"généralement pas faire d'appel système supplémentaire : ::" +"généralement pas faire d'appel système supplémentaire ::" -#: ../Doc/library/os.rst:2181 +#: ../Doc/library/os.rst:2172 msgid "" "On Unix-based systems, :func:`scandir` uses the system's `opendir() `_ and " @@ -3077,7 +3055,7 @@ msgstr "" "`_." -#: ../Doc/library/os.rst:2193 +#: ../Doc/library/os.rst:2184 msgid "" "Added support for the :term:`context manager` protocol and the :func:" "`~scandir.close()` method. If a :func:`scandir` iterator is neither " @@ -3089,16 +3067,16 @@ msgstr "" "entièrement consommé ni explicitement fermé, un :exc:`ResourceWarning` sera " "émis dans son destructeur." -#: ../Doc/library/os.rst:2199 +#: ../Doc/library/os.rst:2190 msgid "The function accepts a :term:`path-like object`." msgstr "La fonction accepte un :term:`path-like object`." -#: ../Doc/library/os.rst:2201 +#: ../Doc/library/os.rst:2192 msgid "Added support for :ref:`file descriptors ` on Unix." msgstr "" "Ajout de la gestion des :ref:`descripteurs de fichiers ` sur Unix." -#: ../Doc/library/os.rst:2207 +#: ../Doc/library/os.rst:2198 msgid "" "Object yielded by :func:`scandir` to expose the file path and other file " "attributes of a directory entry." @@ -3106,7 +3084,7 @@ msgstr "" "Objet donné par :func:`scandir` pour exposer le chemin du fichier et " "d'autres attributs de fichier d'une entrée du répertoire." -#: ../Doc/library/os.rst:2210 +#: ../Doc/library/os.rst:2201 msgid "" ":func:`scandir` will provide as much of this information as possible without " "making additional system calls. When a ``stat()`` or ``lstat()`` system call " @@ -3116,7 +3094,7 @@ msgstr "" "d'appels système additionnels. Quand un appel système ``stat()`` ou " "``lstat()`` est réalisé, l'objet ``os.DirEntry`` mettra le résultat en cache." -#: ../Doc/library/os.rst:2214 +#: ../Doc/library/os.rst:2205 msgid "" "``os.DirEntry`` instances are not intended to be stored in long-lived data " "structures; if you know the file metadata has changed or if a long time has " @@ -3129,7 +3107,7 @@ msgstr "" "l'appel à :func:`scandir`, appelez ``os.stat(entry.path)`` pour mettre à " "jour ces informations." -#: ../Doc/library/os.rst:2219 +#: ../Doc/library/os.rst:2210 msgid "" "Because the ``os.DirEntry`` methods can make operating system calls, they " "may also raise :exc:`OSError`. If you need very fine-grained control over " @@ -3141,7 +3119,7 @@ msgstr "" "contrôle fin des erreurs, vous pouvez attraper les :exc:`OSError` en " "appelant les méthodes de ``os.DirEntry`` et les traiter comme il vous semble." -#: ../Doc/library/os.rst:2224 +#: ../Doc/library/os.rst:2215 msgid "" "To be directly usable as a :term:`path-like object`, ``os.DirEntry`` " "implements the :class:`PathLike` interface." @@ -3149,20 +3127,20 @@ msgstr "" "Pour être directement utilisable comme un :term:`path-like object`, ``os." "DirEntry`` implémente l'interface :class:`PathLike`." -#: ../Doc/library/os.rst:2227 +#: ../Doc/library/os.rst:2218 msgid "Attributes and methods on a ``os.DirEntry`` instance are as follows:" msgstr "" "Les attributs et méthodes des instances de ``os.DirEntry`` sont les " "suivants :" -#: ../Doc/library/os.rst:2231 +#: ../Doc/library/os.rst:2222 msgid "" "The entry's base filename, relative to the :func:`scandir` *path* argument." msgstr "" "Le nom de fichier de base de l'entrée, relatif à l'argument *path* de :func:" "`scandir`." -#: ../Doc/library/os.rst:2234 +#: ../Doc/library/os.rst:2225 msgid "" "The :attr:`name` attribute will be ``bytes`` if the :func:`scandir` *path* " "argument is of type ``bytes`` and ``str`` otherwise. Use :func:`~os." @@ -3172,7 +3150,7 @@ msgstr "" "`scandir` est de type ``bytes``, sinon il sera de type ``str``. Utilisez :" "func:`~os.fsdecode` pour décoder des noms de fichiers de types *byte*." -#: ../Doc/library/os.rst:2240 +#: ../Doc/library/os.rst:2231 msgid "" "The entry's full path name: equivalent to ``os.path.join(scandir_path, entry." "name)`` where *scandir_path* is the :func:`scandir` *path* argument. The " @@ -3188,7 +3166,7 @@ msgstr "" "`descripteur de fichier ` l'attribut :attr:`path` sera égal à " "l'attribut :attr:`name`." -#: ../Doc/library/os.rst:2247 +#: ../Doc/library/os.rst:2238 msgid "" "The :attr:`path` attribute will be ``bytes`` if the :func:`scandir` *path* " "argument is of type ``bytes`` and ``str`` otherwise. Use :func:`~os." @@ -3199,11 +3177,11 @@ msgstr "" "``str``. Utilisez :func:`~os.fsdecode` pour décoder des noms de fichiers de " "type *bytes*." -#: ../Doc/library/os.rst:2253 +#: ../Doc/library/os.rst:2244 msgid "Return the inode number of the entry." msgstr "Renvoie le numéro d'*inode* de l'entrée." -#: ../Doc/library/os.rst:2255 +#: ../Doc/library/os.rst:2246 msgid "" "The result is cached on the ``os.DirEntry`` object. Use ``os.stat(entry." "path, follow_symlinks=False).st_ino`` to fetch up-to-date information." @@ -3212,7 +3190,7 @@ msgstr "" "stat(entry.path, follow_symlinks=False).st_ino`` pour obtenir l'information " "à jour." -#: ../Doc/library/os.rst:2259 +#: ../Doc/library/os.rst:2250 msgid "" "On the first, uncached call, a system call is required on Windows but not on " "Unix." @@ -3220,7 +3198,7 @@ msgstr "" "Au premier appel non mis en cache, un appel système est requis sur Windows, " "mais pas sur Unix." -#: ../Doc/library/os.rst:2264 +#: ../Doc/library/os.rst:2255 msgid "" "Return ``True`` if this entry is a directory or a symbolic link pointing to " "a directory; return ``False`` if the entry is or points to any other kind of " @@ -3230,7 +3208,7 @@ msgstr "" "pointant vers un répertoire ; renvoie ``False`` si l'entrée est (ou pointe " "vers) un autre type de fichier, ou s'il n'existe plus." -#: ../Doc/library/os.rst:2268 +#: ../Doc/library/os.rst:2259 msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if this entry is a " "directory (without following symlinks); return ``False`` if the entry is any " @@ -3240,7 +3218,7 @@ msgstr "" "est un répertoire (sans suivre les liens symboliques) ; renvoie ``False`` si " "l'entrée est n'importe quel autre type de fichier ou s'il n'existe plus." -#: ../Doc/library/os.rst:2272 +#: ../Doc/library/os.rst:2263 msgid "" "The result is cached on the ``os.DirEntry`` object, with a separate cache " "for *follow_symlinks* ``True`` and ``False``. Call :func:`os.stat` along " @@ -3250,7 +3228,7 @@ msgstr "" "séparé pour les valeurs ``True`` ou ``False`` de *follow_symlinks*. Appelez :" "func:`os.stat` avec :func:`stat.S_ISDIR` pour obtenir l'information à jour." -#: ../Doc/library/os.rst:2276 +#: ../Doc/library/os.rst:2267 msgid "" "On the first, uncached call, no system call is required in most cases. " "Specifically, for non-symlinks, neither Windows or Unix require a system " @@ -3267,7 +3245,7 @@ msgstr "" "requis pour suivre le lien symbolique, à moins que *follow_symlinks* vaille " "``False``." -#: ../Doc/library/os.rst:2283 ../Doc/library/os.rst:2313 +#: ../Doc/library/os.rst:2274 ../Doc/library/os.rst:2304 msgid "" "This method can raise :exc:`OSError`, such as :exc:`PermissionError`, but :" "exc:`FileNotFoundError` is caught and not raised." @@ -3275,7 +3253,7 @@ msgstr "" "Cette méthode peut lever une :exc:`OSError` tout comme une :exc:" "`PermissionError`, mais :exc:`FileNotFoundError` est attrapé et pas levé." -#: ../Doc/library/os.rst:2288 +#: ../Doc/library/os.rst:2279 msgid "" "Return ``True`` if this entry is a file or a symbolic link pointing to a " "file; return ``False`` if the entry is or points to a directory or other non-" @@ -3286,7 +3264,7 @@ msgstr "" "sur un dossier ou sur un répertoire ou autre entrée non-fichier, ou s'il " "n'existe plus." -#: ../Doc/library/os.rst:2292 +#: ../Doc/library/os.rst:2283 msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if this entry is a " "file (without following symlinks); return ``False`` if the entry is a " @@ -3297,7 +3275,7 @@ msgstr "" "si l'entrée est un répertoire ou une autre entrée non-fichier, ou s'il " "n'existe plus." -#: ../Doc/library/os.rst:2296 +#: ../Doc/library/os.rst:2287 msgid "" "The result is cached on the ``os.DirEntry`` object. Caching, system calls " "made, and exceptions raised are as per :func:`~os.DirEntry.is_dir`." @@ -3306,7 +3284,7 @@ msgstr "" "les appels système réalisés, et les exceptions levées sont les mêmes que " "pour :func:`~os.DirEntry.is_dir`." -#: ../Doc/library/os.rst:2301 +#: ../Doc/library/os.rst:2292 msgid "" "Return ``True`` if this entry is a symbolic link (even if broken); return " "``False`` if the entry points to a directory or any kind of file, or if it " @@ -3316,7 +3294,7 @@ msgstr "" "``False`` si l'entrée pinte vers un répertoire ou tout autre type de " "fichier, ou s'il n'existe plus." -#: ../Doc/library/os.rst:2305 +#: ../Doc/library/os.rst:2296 msgid "" "The result is cached on the ``os.DirEntry`` object. Call :func:`os.path." "islink` to fetch up-to-date information." @@ -3324,7 +3302,7 @@ msgstr "" "Le résultat est mis en cache dans l'objet ``os.DirEntry``. Appelez :func:`os." "path.islink` pour obtenir l'information à jour." -#: ../Doc/library/os.rst:2308 +#: ../Doc/library/os.rst:2299 msgid "" "On the first, uncached call, no system call is required in most cases. " "Specifically, neither Windows or Unix require a system call, except on " @@ -3336,7 +3314,7 @@ msgstr "" "certains systèmes de fichiers Unix qui renvoient ``dirent.d_type == " "DT_UNKNOWN``." -#: ../Doc/library/os.rst:2318 +#: ../Doc/library/os.rst:2309 msgid "" "Return a :class:`stat_result` object for this entry. This method follows " "symbolic links by default; to stat a symbolic link add the " @@ -3346,7 +3324,7 @@ msgstr "" "méthode suit les liens symboliques par défaut. Pour avoir les statistiques " "sur un lien symbolique, ajouter l'argument ``follow_symlinks=False``." -#: ../Doc/library/os.rst:2322 +#: ../Doc/library/os.rst:2313 msgid "" "On Unix, this method always requires a system call. On Windows, it only " "requires a system call if *follow_symlinks* is ``True`` and the entry is a " @@ -3356,7 +3334,7 @@ msgstr "" "cela requiert uniquement un appel système si *follow_symlinks* vaut ``True`` " "et l'entrée n'est pas un lien symbolique." -#: ../Doc/library/os.rst:2326 +#: ../Doc/library/os.rst:2317 msgid "" "On Windows, the ``st_ino``, ``st_dev`` and ``st_nlink`` attributes of the :" "class:`stat_result` are always set to zero. Call :func:`os.stat` to get " @@ -3366,7 +3344,7 @@ msgstr "" "classe :class:`stat_result` sont toujours définis à 0. Appelez la fonction :" "func:`os.stat` pour avoir ces attributs." -#: ../Doc/library/os.rst:2330 +#: ../Doc/library/os.rst:2321 msgid "" "The result is cached on the ``os.DirEntry`` object, with a separate cache " "for *follow_symlinks* ``True`` and ``False``. Call :func:`os.stat` to fetch " @@ -3376,7 +3354,7 @@ msgstr "" "séparé pour les valeurs ``True`` ou ``False`` de *follow_symlinks*. Appelez :" "func:`os.stat` pour obtenir l'information à jour." -#: ../Doc/library/os.rst:2334 +#: ../Doc/library/os.rst:2325 msgid "" "Note that there is a nice correspondence between several attributes and " "methods of ``os.DirEntry`` and of :class:`pathlib.Path`. In particular, the " @@ -3388,7 +3366,7 @@ msgstr "" "``name`` a la même signification, ainsi que les méthodes ``is_dir()``, " "``is_file()``, ``is_symlink()`` et ``stat()``." -#: ../Doc/library/os.rst:2342 +#: ../Doc/library/os.rst:2333 msgid "" "Added support for the :class:`~os.PathLike` interface. Added support for :" "class:`bytes` paths on Windows." @@ -3396,7 +3374,7 @@ msgstr "" "Prise en charge de l'interface :class:`~os.PathLike`. Ajout du support des " "chemins :class:`bytes` sous Windows." -#: ../Doc/library/os.rst:2349 +#: ../Doc/library/os.rst:2340 msgid "" "Get the status of a file or a file descriptor. Perform the equivalent of a :" "c:func:`stat` system call on the given path. *path* may be specified as " @@ -3410,7 +3388,7 @@ msgstr "" "ou indirectement à travers une interface :class:`PathLike` -- ou comme un " "descripteur de fichier ouvert. Renvoie un objet :class:`stat_result`." -#: ../Doc/library/os.rst:2355 +#: ../Doc/library/os.rst:2346 msgid "" "This function normally follows symlinks; to stat a symlink add the argument " "``follow_symlinks=False``, or use :func:`lstat`." @@ -3419,9 +3397,9 @@ msgstr "" "informations d'un lien symbolique, ajoutez l'argument " "``follow_symlinks=False`` ou utilisez la fonction :func:`lstat`." -#: ../Doc/library/os.rst:2358 ../Doc/library/os.rst:2990 -#: ../Doc/library/os.rst:3004 ../Doc/library/os.rst:3018 -#: ../Doc/library/os.rst:3036 +#: ../Doc/library/os.rst:2349 ../Doc/library/os.rst:2981 +#: ../Doc/library/os.rst:2995 ../Doc/library/os.rst:3009 +#: ../Doc/library/os.rst:3027 msgid "" "This function can support :ref:`specifying a file descriptor ` and :" "ref:`not following symlinks `." @@ -3430,15 +3408,15 @@ msgstr "" "fichier ` et :ref:`le non-suivi des liens symboliques " "`." -#: ../Doc/library/os.rst:2363 +#: ../Doc/library/os.rst:2354 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/os.rst:2376 +#: ../Doc/library/os.rst:2367 msgid ":func:`fstat` and :func:`lstat` functions." msgstr "les fonctions :func:`fstat` et :func:`lstat`." -#: ../Doc/library/os.rst:2378 +#: ../Doc/library/os.rst:2369 msgid "" "Added the *dir_fd* and *follow_symlinks* arguments, specifying a file " "descriptor instead of a path." @@ -3446,7 +3424,7 @@ msgstr "" "Les arguments *dir_fd* et *follow_symlinks* ont été ajoutés, spécification " "d'un descripteur de fichier à la place d'un chemin ajoutée également." -#: ../Doc/library/os.rst:2388 +#: ../Doc/library/os.rst:2379 msgid "" "Object whose attributes correspond roughly to the members of the :c:type:" "`stat` structure. It is used for the result of :func:`os.stat`, :func:`os." @@ -3456,16 +3434,16 @@ msgstr "" "structure :c:func:`stat`. Utilisé pour le résultat des fonctions :func:`os." "stat`, :func:`os.fstat`, et :func:`os.lstat`." -#: ../Doc/library/os.rst:2392 +#: ../Doc/library/os.rst:2383 msgid "Attributes:" msgstr "Attributs :" -#: ../Doc/library/os.rst:2396 +#: ../Doc/library/os.rst:2387 msgid "File mode: file type and file mode bits (permissions)." msgstr "" "Mode du fichier : type du fichier et bits de mode du fichier (permissions)." -#: ../Doc/library/os.rst:2400 +#: ../Doc/library/os.rst:2391 msgid "" "Platform dependent, but if non-zero, uniquely identifies the file for a " "given value of ``st_dev``. Typically:" @@ -3474,35 +3452,35 @@ msgstr "" "manière unique le fichier pour une certaine valeur de ``st_dev``. " "Typiquement :" -#: ../Doc/library/os.rst:2403 +#: ../Doc/library/os.rst:2394 msgid "the inode number on Unix," msgstr "le numéro d'*inode* sur Unix," -#: ../Doc/library/os.rst:2404 +#: ../Doc/library/os.rst:2395 msgid "" "the `file index `_ on " "Windows" msgstr "" -"L'`index de fichier `_ " +"l’`index de fichier `_ " "sur Windows" -#: ../Doc/library/os.rst:2410 +#: ../Doc/library/os.rst:2401 msgid "Identifier of the device on which this file resides." msgstr "Identifiant du périphérique sur lequel ce fichier se trouve." -#: ../Doc/library/os.rst:2414 +#: ../Doc/library/os.rst:2405 msgid "Number of hard links." msgstr "Nombre de liens matériels." -#: ../Doc/library/os.rst:2418 +#: ../Doc/library/os.rst:2409 msgid "User identifier of the file owner." msgstr "Identifiant d'utilisateur du propriétaire du fichier." -#: ../Doc/library/os.rst:2422 +#: ../Doc/library/os.rst:2413 msgid "Group identifier of the file owner." msgstr "Identifiant de groupe du propriétaire du fichier." -#: ../Doc/library/os.rst:2426 +#: ../Doc/library/os.rst:2417 msgid "" "Size of the file in bytes, if it is a regular file or a symbolic link. The " "size of a symbolic link is the length of the pathname it contains, without a " @@ -3512,37 +3490,37 @@ msgstr "" "symbolique. La taille d'un lien symbolique est la longueur du nom de chemin " "qu'il contient sans le byte nul final." -#: ../Doc/library/os.rst:2430 +#: ../Doc/library/os.rst:2421 msgid "Timestamps:" msgstr "Horodatages :" -#: ../Doc/library/os.rst:2434 +#: ../Doc/library/os.rst:2425 msgid "Time of most recent access expressed in seconds." msgstr "Moment de l'accès le plus récent, exprimé en secondes." -#: ../Doc/library/os.rst:2438 +#: ../Doc/library/os.rst:2429 msgid "Time of most recent content modification expressed in seconds." msgstr "" "Moment de la modification de contenu la plus récente, exprimé en secondes." -#: ../Doc/library/os.rst:2442 ../Doc/library/os.rst:2458 +#: ../Doc/library/os.rst:2433 ../Doc/library/os.rst:2449 msgid "Platform dependent:" msgstr "Dépendant de la plate-forme :" -#: ../Doc/library/os.rst:2444 ../Doc/library/os.rst:2460 +#: ../Doc/library/os.rst:2435 ../Doc/library/os.rst:2451 msgid "the time of most recent metadata change on Unix," -msgstr "le moment du changement de méta-données le plus récent sur Unix." +msgstr "le moment du changement de méta-données le plus récent sur Unix," -#: ../Doc/library/os.rst:2445 +#: ../Doc/library/os.rst:2436 msgid "the time of creation on Windows, expressed in seconds." msgstr "le moment de création sur Windows, exprimé en secondes." -#: ../Doc/library/os.rst:2449 +#: ../Doc/library/os.rst:2440 msgid "Time of most recent access expressed in nanoseconds as an integer." msgstr "" "Moment de l'accès le plus récent, exprimé en nanosecondes, par un entier." -#: ../Doc/library/os.rst:2453 +#: ../Doc/library/os.rst:2444 msgid "" "Time of most recent content modification expressed in nanoseconds as an " "integer." @@ -3550,13 +3528,13 @@ msgstr "" "Moment de la modification de contenu la plus récente, exprimé en " "nanosecondes, par un entier." -#: ../Doc/library/os.rst:2461 +#: ../Doc/library/os.rst:2452 msgid "" "the time of creation on Windows, expressed in nanoseconds as an integer." msgstr "" "le moment de création sur Windows, exprimé en nanosecondes, par un entier." -#: ../Doc/library/os.rst:2466 +#: ../Doc/library/os.rst:2457 msgid "" "The exact meaning and resolution of the :attr:`st_atime`, :attr:`st_mtime`, " "and :attr:`st_ctime` attributes depend on the operating system and the file " @@ -3571,7 +3549,7 @@ msgstr "" "secondes, et :attr:`st_atime` a une précision de 1 jour. Regardez la " "documentation de votre système d'exploitation pour plus de détails." -#: ../Doc/library/os.rst:2473 +#: ../Doc/library/os.rst:2464 msgid "" "Similarly, although :attr:`st_atime_ns`, :attr:`st_mtime_ns`, and :attr:" "`st_ctime_ns` are always expressed in nanoseconds, many systems do not " @@ -3590,7 +3568,7 @@ msgstr "" "avez besoin d'horodatages exacts, vous devriez toujours utiliser :attr:" "`st_atime_ns`, :attr:`st_mtime_ns`, et :attr:`st_ctime_ns`." -#: ../Doc/library/os.rst:2482 +#: ../Doc/library/os.rst:2473 msgid "" "On some Unix systems (such as Linux), the following attributes may also be " "available:" @@ -3598,7 +3576,7 @@ msgstr "" "Sur certains systèmes Unix (tels que Linux), les attributs suivants peuvent " "également être disponibles :" -#: ../Doc/library/os.rst:2487 +#: ../Doc/library/os.rst:2478 msgid "" "Number of 512-byte blocks allocated for file. This may be smaller than :attr:" "`st_size`/512 when the file has holes." @@ -3606,7 +3584,7 @@ msgstr "" "Nombre de blocs de 512 *bytes* alloués pour le fichier. Cette valeur peut " "être inférieure à :attr:`st_size`/512 quand le fichier a des trous." -#: ../Doc/library/os.rst:2492 +#: ../Doc/library/os.rst:2483 msgid "" "\"Preferred\" blocksize for efficient file system I/O. Writing to a file in " "smaller chunks may cause an inefficient read-modify-rewrite." @@ -3615,39 +3593,39 @@ msgstr "" "fichiers. Écrire dans un fichier avec des blocs plus petits peut causer des " "modifications (lecture-écriture-réécriture) inefficaces." -#: ../Doc/library/os.rst:2497 +#: ../Doc/library/os.rst:2488 msgid "Type of device if an inode device." msgstr "Type de périphérique si l'*inode* représente un périphérique." -#: ../Doc/library/os.rst:2501 +#: ../Doc/library/os.rst:2492 msgid "User defined flags for file." msgstr "Marqueurs définis par l'utilisateur pour le fichier." -#: ../Doc/library/os.rst:2503 +#: ../Doc/library/os.rst:2494 msgid "" "On other Unix systems (such as FreeBSD), the following attributes may be " "available (but may be only filled out if root tries to use them):" msgstr "" "Sur d'autres systèmes Unix (tels que FreeBSD), les attributs suivants " "peuvent être disponibles (mais peuvent être complétés uniquement lorsque le " -"super-utilisateur *root* tente de les utiliser)." +"super-utilisateur *root* tente de les utiliser) :" -#: ../Doc/library/os.rst:2508 +#: ../Doc/library/os.rst:2499 msgid "File generation number." msgstr "Nombre de génération de fichier." -#: ../Doc/library/os.rst:2512 +#: ../Doc/library/os.rst:2503 msgid "Time of file creation." msgstr "Moment de la création du fichier." -#: ../Doc/library/os.rst:2514 +#: ../Doc/library/os.rst:2505 msgid "" "On Solaris and derivatives, the following attributes may also be available:" msgstr "" "Sur les systèmes Solaris et dérivés, les attributs suivants peuvent " "également être disponibles :" -#: ../Doc/library/os.rst:2519 +#: ../Doc/library/os.rst:2510 msgid "" "String that uniquely identifies the type of the filesystem that contains the " "file." @@ -3655,30 +3633,30 @@ msgstr "" "Chaîne qui identifie de manière unique le type du système de fichiers qui " "contient le fichier." -#: ../Doc/library/os.rst:2522 +#: ../Doc/library/os.rst:2513 msgid "On Mac OS systems, the following attributes may also be available:" msgstr "" "Sur les systèmes Mac OS, les attributs suivants peuvent également être " "disponibles :" -#: ../Doc/library/os.rst:2526 +#: ../Doc/library/os.rst:2517 msgid "Real size of the file." msgstr "Taillé réelle du fichier." -#: ../Doc/library/os.rst:2530 +#: ../Doc/library/os.rst:2521 msgid "Creator of the file." msgstr "Créateur du fichier." -#: ../Doc/library/os.rst:2534 +#: ../Doc/library/os.rst:2525 msgid "File type." msgstr "Type du fichier." -#: ../Doc/library/os.rst:2536 +#: ../Doc/library/os.rst:2527 msgid "On Windows systems, the following attribute is also available:" msgstr "" -"Sur les systèmes Windows, les attributs suivants sont également disponibles." +"Sur les systèmes Windows, les attributs suivants sont également disponibles :" -#: ../Doc/library/os.rst:2540 +#: ../Doc/library/os.rst:2531 msgid "" "Windows file attributes: ``dwFileAttributes`` member of the " "``BY_HANDLE_FILE_INFORMATION`` structure returned by :c:func:" @@ -3690,7 +3668,7 @@ msgstr "" "`GetileInformationByHandle`. Soir les constantes ``FILE_ATTRIBUTE_*`` du " "module :mod:`stat`." -#: ../Doc/library/os.rst:2545 +#: ../Doc/library/os.rst:2536 msgid "" "The standard module :mod:`stat` defines functions and constants that are " "useful for extracting information from a :c:type:`stat` structure. (On " @@ -3700,7 +3678,7 @@ msgstr "" "sont utiles pour l'extraction d'informations d'une structure :c:type:`stat`. " "(Sur Windows, certains éléments sont remplis avec des valeurs factices.)" -#: ../Doc/library/os.rst:2549 +#: ../Doc/library/os.rst:2540 msgid "" "For backward compatibility, a :class:`stat_result` instance is also " "accessible as a tuple of at least 10 integers giving the most important (and " @@ -3722,7 +3700,7 @@ msgstr "" "élément de type :class:`stat_result` comme un tuple donne toujours des " "entiers." -#: ../Doc/library/os.rst:2558 +#: ../Doc/library/os.rst:2549 msgid "" "Added the :attr:`st_atime_ns`, :attr:`st_mtime_ns`, and :attr:`st_ctime_ns` " "members." @@ -3730,21 +3708,21 @@ msgstr "" "Les attributs :attr:`st_atime_ns`, :attr:`st_mtime_ns`, et :attr:" "`st_ctime_ns` ont été ajoutés." -#: ../Doc/library/os.rst:2562 +#: ../Doc/library/os.rst:2553 msgid "Added the :attr:`st_file_attributes` member on Windows." msgstr "L'attribut :attr:`st_file_attributes` a été ajouté sur Windows." -#: ../Doc/library/os.rst:2565 +#: ../Doc/library/os.rst:2556 msgid "Windows now returns the file index as :attr:`st_ino` when available." msgstr "" "Windows renvoie maintenant l'index du fichier dans l'attribut :attr:" "`st_ino`, lorsqu'il est disponible." -#: ../Doc/library/os.rst:2569 +#: ../Doc/library/os.rst:2560 msgid "Added the :attr:`st_fstype` member to Solaris/derivatives." msgstr "Ajout de l'attribut :attr:`st_fstype` sur Solaris et dérivés." -#: ../Doc/library/os.rst:2574 +#: ../Doc/library/os.rst:2565 msgid "" "Perform a :c:func:`statvfs` system call on the given path. The return value " "is an object whose attributes describe the filesystem on the given path, and " @@ -3761,7 +3739,7 @@ msgstr "" "`f_ffree`, :attr:`f_favail`, :attr:`f_flag`, :attr:`f_namemax`, :attr:" "`f_fsid`." -#: ../Doc/library/os.rst:2581 +#: ../Doc/library/os.rst:2572 msgid "" "Two module-level constants are defined for the :attr:`f_flag` attribute's " "bit-flags: if :const:`ST_RDONLY` is set, the filesystem is mounted read-" @@ -3773,7 +3751,7 @@ msgstr "" "monté en lecture-seule, et si :const:`ST_NOSUID` est activé, la sémantique " "des bits de *setuid* / *getuid* est désactivée ou non gérée." -#: ../Doc/library/os.rst:2586 +#: ../Doc/library/os.rst:2577 msgid "" "Additional module-level constants are defined for GNU/glibc based systems. " "These are :const:`ST_NODEV` (disallow access to device special files), :" @@ -3797,11 +3775,11 @@ msgstr "" "à jour les moments d'accès aux répertoires), :const:`ST_REALTIME` (Met " "*atime* à jour relativement à *mtime* / *ctime*)." -#: ../Doc/library/os.rst:2599 +#: ../Doc/library/os.rst:2590 msgid "The :const:`ST_RDONLY` and :const:`ST_NOSUID` constants were added." msgstr "Ajout des constantes :const:`ST_RDONLY` et :const:`ST_NOSUID`." -#: ../Doc/library/os.rst:2605 +#: ../Doc/library/os.rst:2596 msgid "" "The :const:`ST_NODEV`, :const:`ST_NOEXEC`, :const:`ST_SYNCHRONOUS`, :const:" "`ST_MANDLOCK`, :const:`ST_WRITE`, :const:`ST_APPEND`, :const:" @@ -3813,11 +3791,11 @@ msgstr "" "`ST_APPEND`, :const:`ST_IMMUTABLE`, :const:`ST_NOATIME`, :const:" "`ST_NODIRATIME`, et :const:`ST_RELATIME`." -#: ../Doc/library/os.rst:2614 +#: ../Doc/library/os.rst:2605 msgid "Added :attr:`f_fsid`." msgstr "Ajout de :attr:`f_fsid`." -#: ../Doc/library/os.rst:2620 +#: ../Doc/library/os.rst:2611 msgid "" "A :class:`~collections.abc.Set` object indicating which functions in the :" "mod:`os` module permit use of their *dir_fd* parameter. Different platforms " @@ -3834,7 +3812,7 @@ msgstr "" "toujours de spécifier le paramètre, mais lèvent une exception si la " "fonctionnalité n'est pas réellement accessible." -#: ../Doc/library/os.rst:2627 +#: ../Doc/library/os.rst:2618 msgid "" "To check whether a particular function permits use of its *dir_fd* " "parameter, use the ``in`` operator on ``supports_dir_fd``. As an example, " @@ -3844,9 +3822,9 @@ msgstr "" "Pour vérifier si une fonction en particulier permet de l'utilisation de son " "paramètre *dir_fd*, utilisez l'opérateur ``in`` sur ``supports_dir_fd``. Par " "exemple, l'expression détermine si le paramètre *dir_fd* de la fonction :" -"func:`os.stat` est disponible : ::" +"func:`os.stat` est disponible ::" -#: ../Doc/library/os.rst:2634 +#: ../Doc/library/os.rst:2625 msgid "" "Currently *dir_fd* parameters only work on Unix platforms; none of them work " "on Windows." @@ -3854,7 +3832,7 @@ msgstr "" "Actuellement, le paramètre *dir_fd* ne fonctionne que sur les plate-formes " "Unix. Il ne fonctionne jamais sur Windows." -#: ../Doc/library/os.rst:2642 +#: ../Doc/library/os.rst:2633 msgid "" "A :class:`~collections.abc.Set` object indicating which functions in the :" "mod:`os` module permit use of the *effective_ids* parameter for :func:`os." @@ -3866,16 +3844,16 @@ msgstr "" "func:`os.access`. Si la plate-forme le gère, la collection contiendra :func:" "`os.access`, sinon elle sera vide." -#: ../Doc/library/os.rst:2647 +#: ../Doc/library/os.rst:2638 msgid "" "To check whether you can use the *effective_ids* parameter for :func:`os." "access`, use the ``in`` operator on ``supports_effective_ids``, like so::" msgstr "" "Pour vérifier si vous pouvez utiliser le paramètre *effective_ids* pour :" "func:`os.access`, utilisez l'opérateur ``in`` sur " -"``supports_effective_ids``, comme tel : ::" +"``supports_effective_ids``, comme tel ::" -#: ../Doc/library/os.rst:2653 +#: ../Doc/library/os.rst:2644 msgid "" "Currently *effective_ids* only works on Unix platforms; it does not work on " "Windows." @@ -3883,7 +3861,7 @@ msgstr "" "Actuellement, *effective_ids* ne fonctionne que sur les plate-formes Unix, " "ça ne fonctionne pas sur Windows." -#: ../Doc/library/os.rst:2661 +#: ../Doc/library/os.rst:2652 msgid "" "A :class:`~collections.abc.Set` object indicating which functions in the :" "mod:`os` module permit specifying their *path* parameter as an open file " @@ -3902,7 +3880,7 @@ msgstr "" "mais elles lèveront une exception si la fonctionnalité n'est pas réellement " "disponible." -#: ../Doc/library/os.rst:2669 +#: ../Doc/library/os.rst:2660 msgid "" "To check whether a particular function permits specifying an open file " "descriptor for its *path* parameter, use the ``in`` operator on " @@ -3915,7 +3893,7 @@ msgstr "" "détermine si :func:`os.chdir` accepte un descripteur de fichier ouvert quand " "appelée sur votre plate-forme actuelle ::" -#: ../Doc/library/os.rst:2682 +#: ../Doc/library/os.rst:2673 msgid "" "A :class:`~collections.abc.Set` object indicating which functions in the :" "mod:`os` module permit use of their *follow_symlinks* parameter. Different " @@ -3932,7 +3910,7 @@ msgstr "" "permettent toujours de spécifier le paramètre, mais lèvent une exception si " "la fonctionnalité n'est pas réellement disponible." -#: ../Doc/library/os.rst:2689 +#: ../Doc/library/os.rst:2680 msgid "" "To check whether a particular function permits use of its *follow_symlinks* " "parameter, use the ``in`` operator on ``supports_follow_symlinks``. As an " @@ -3942,29 +3920,29 @@ msgstr "" "Pour vérifier s une fonction en particulier permet l'utilisation du " "paramètre *follow_symlinks*, utilisez l'opérateur ``in`` sur " "``supports_follow_symlinks``. Par exemple, cette expression détermine si le " -"paramètre *follow_symlink* de :func:`os.stat` est disponible : ::" +"paramètre *follow_symlink* de :func:`os.stat` est disponible ::" -#: ../Doc/library/os.rst:2701 +#: ../Doc/library/os.rst:2692 msgid "Create a symbolic link pointing to *src* named *dst*." msgstr "Crée un lien symbolique pointant vers *src* et appelé *dst*." -#: ../Doc/library/os.rst:2703 +#: ../Doc/library/os.rst:2694 msgid "" "On Windows, a symlink represents either a file or a directory, and does not " "morph to the target dynamically. If the target is present, the type of the " "symlink will be created to match. Otherwise, the symlink will be created as " "a directory if *target_is_directory* is ``True`` or a file symlink (the " -"default) otherwise. On non-Window platforms, *target_is_directory* is " +"default) otherwise. On non-Windows platforms, *target_is_directory* is " "ignored." msgstr "" -"Sur Windows, un lien symbolique représente soit un fichier, soit un " -"répertoire et ne se transforme pas dynamiquement en sa cible. Le type d'un " -"lien symbolique sera créé pour aller de paire. Sinon, le lien symbolique " -"sera créé comme un répertoire si *target_is_directory* vaut ``True`` ou un " -"lien symbolique (par défaut). Sur les plateformes non Windows, " -"*target_id_directory* est ignoré." +"Sur Windows, un lien symbolique représente soit lien vers un fichier, soit " +"lien vers un répertoire mais ne s'adapte pas dynamiquement au type de la " +"cible. Si la cible existe le lien sera crée du même type que sa cible. Dans " +"le cas où cible n'existe pas, si *target_is_directory* vaut ``True`` le lien " +"symbolique sera créé comme un répertoire, sinon comme un fichier (par " +"défaut). Sur les autres plateformes, *target_id_directory* est ignoré." -#: ../Doc/library/os.rst:2709 +#: ../Doc/library/os.rst:2700 msgid "" "Symbolic link support was introduced in Windows 6.0 (Vista). :func:" "`symlink` will raise a :exc:`NotImplementedError` on Windows versions " @@ -3974,7 +3952,7 @@ msgstr "" "(Vista). :func:`symlink` lèvera une exception :exc:`NotImplementedError` sur " "les versions de Windows inférieures à 6.0." -#: ../Doc/library/os.rst:2717 +#: ../Doc/library/os.rst:2708 msgid "" "On Windows, the *SeCreateSymbolicLinkPrivilege* is required in order to " "successfully create symlinks. This privilege is not typically granted to " @@ -3989,14 +3967,14 @@ msgstr "" "privilège que lancer votre application en administrateur sont des moyens de " "créer des liens symboliques avec succès." -#: ../Doc/library/os.rst:2724 +#: ../Doc/library/os.rst:2715 msgid "" ":exc:`OSError` is raised when the function is called by an unprivileged user." msgstr "" ":exc:`OSError` est levée quand la fonction est appelée par un utilisateur " "sans privilèges." -#: ../Doc/library/os.rst:2732 +#: ../Doc/library/os.rst:2723 msgid "" "Added the *dir_fd* argument, and now allow *target_is_directory* on non-" "Windows platforms." @@ -4004,11 +3982,11 @@ msgstr "" "Ajout de l'argument *dir_fd* et maintenant, permission de " "*target_is_directory* sur les plate-formes non Windows." -#: ../Doc/library/os.rst:2742 +#: ../Doc/library/os.rst:2733 msgid "Force write of everything to disk." msgstr "Force l'écriture de tout sur le disque." -#: ../Doc/library/os.rst:2751 +#: ../Doc/library/os.rst:2742 msgid "" "Truncate the file corresponding to *path*, so that it is at most *length* " "bytes in size." @@ -4016,23 +3994,23 @@ msgstr "" "Tronque le fichier correspondant à *path*, afin qu'il soit au maximum long " "de *length* bytes." -#: ../Doc/library/os.rst:2769 +#: ../Doc/library/os.rst:2760 msgid "" "Remove (delete) the file *path*. This function is semantically identical " "to :func:`remove`; the ``unlink`` name is its traditional Unix name. Please " "see the documentation for :func:`remove` for further information." msgstr "" -"Supprime (retire) le fichier *âth*. Cette fonction est sémantiquement " +"Supprime (retire) le fichier *path*. Cette fonction est sémantiquement " "identique à :func:`remove`. Le nom ``unlink`` est un nom Unix traditionnel. " "Veuillez voir la documentation de :func:`remove` pour plus d'informations." -#: ../Doc/library/os.rst:2783 +#: ../Doc/library/os.rst:2774 msgid "Set the access and modified times of the file specified by *path*." msgstr "" "Voir les derniers moments d'accès et de modification du fichier spécifiés " "par *path*." -#: ../Doc/library/os.rst:2785 +#: ../Doc/library/os.rst:2776 msgid "" ":func:`utime` takes two optional parameters, *times* and *ns*. These specify " "the times set on *path* and are used as follows:" @@ -4040,7 +4018,7 @@ msgstr "" "La fonction :func:`utime` prend deux paramètres optionnels, *times* et *ns*. " "Ils spécifient le temps mis pour *path* et est utilisé comme suit :" -#: ../Doc/library/os.rst:2788 +#: ../Doc/library/os.rst:2779 msgid "" "If *ns* is specified, it must be a 2-tuple of the form ``(atime_ns, " "mtime_ns)`` where each member is an int expressing nanoseconds." @@ -4048,7 +4026,7 @@ msgstr "" "Si *ns* est spécifié, ce doit être un couple de la forme ``(atime_ns, " "mtime_ns)`` où chaque membre est un entier qui exprime des nanosecondes." -#: ../Doc/library/os.rst:2791 +#: ../Doc/library/os.rst:2782 msgid "" "If *times* is not ``None``, it must be a 2-tuple of the form ``(atime, " "mtime)`` where each member is an int or float expressing seconds." @@ -4057,7 +4035,7 @@ msgstr "" "``(atime, mtime)`` où chaque membre est un entier ou une expression à " "virgule flottante." -#: ../Doc/library/os.rst:2794 +#: ../Doc/library/os.rst:2785 msgid "" "If *times* is ``None`` and *ns* is unspecified, this is equivalent to " "specifying ``ns=(atime_ns, mtime_ns)`` where both times are the current time." @@ -4066,11 +4044,11 @@ msgstr "" "spécifier ``ns = (atime_ns, mtime_ns)`` où les deux moments sont le moment " "actuel." -#: ../Doc/library/os.rst:2798 +#: ../Doc/library/os.rst:2789 msgid "It is an error to specify tuples for both *times* and *ns*." msgstr "Il est erroné de spécifier des tuples pour *times* et *ns* à la fois." -#: ../Doc/library/os.rst:2800 +#: ../Doc/library/os.rst:2791 msgid "" "Whether a directory can be given for *path* depends on whether the operating " "system implements directories as files (for example, Windows does not). " @@ -4091,7 +4069,7 @@ msgstr "" "*st_atime_ns* et *st_mtime_ns* de l'objet résultat de la fonction :func:`os." "stat` avec le paramètre *ns* valant `utime`." -#: ../Doc/library/os.rst:2813 +#: ../Doc/library/os.rst:2804 msgid "" "Added support for specifying an open file descriptor for *path*, and the " "*dir_fd*, *follow_symlinks*, and *ns* parameters." @@ -4099,7 +4077,7 @@ msgstr "" "Prise en charge de la spécification d'un descripteur de fichier pour *path* " "et les paramètres *dir_fd*, *follow_symlinks*, et *ns* ajoutés." -#: ../Doc/library/os.rst:2827 +#: ../Doc/library/os.rst:2818 msgid "" "Generate the file names in a directory tree by walking the tree either top-" "down or bottom-up. For each directory in the tree rooted at directory *top* " @@ -4111,7 +4089,7 @@ msgstr "" "l'arbre enraciné en le répertoire *rop* (incluant ledit répertoire *top*), " "fournit un triplet ``(dirpath, dirnames, filenames)``." -#: ../Doc/library/os.rst:2832 +#: ../Doc/library/os.rst:2823 msgid "" "*dirpath* is a string, the path to the directory. *dirnames* is a list of " "the names of the subdirectories in *dirpath* (excluding ``'.'`` and " @@ -4128,7 +4106,7 @@ msgstr "" "(qui commence à *top*) vers un répertoire dans *dirpath*, faites ``os.path." "join(dirpath, name)``." -#: ../Doc/library/os.rst:2839 +#: ../Doc/library/os.rst:2830 msgid "" "If optional argument *topdown* is ``True`` or not specified, the triple for " "a directory is generated before the triples for any of its subdirectories " @@ -4147,7 +4125,7 @@ msgstr "" "avant que les tuples pour le répertoires et ses sous-répertoires ne soient " "générés." -#: ../Doc/library/os.rst:2847 +#: ../Doc/library/os.rst:2838 msgid "" "When *topdown* is ``True``, the caller can modify the *dirnames* list in-" "place (perhaps using :keyword:`del` or slice assignment), and :func:`walk` " @@ -4170,7 +4148,7 @@ msgstr "" "parce qu'en mode bas-en-haut, les répertoires dans *dirnames* sont générés " "avant que *dirpath* ne soit lui-même généré." -#: ../Doc/library/os.rst:2856 +#: ../Doc/library/os.rst:2847 msgid "" "By default, errors from the :func:`scandir` call are ignored. If optional " "argument *onerror* is specified, it should be a function; it will be called " @@ -4186,7 +4164,7 @@ msgstr "" "avorter le parcours. Notez que le nom de fichier est disponible dans " "l'attribut ``filename`` de l'objet exception." -#: ../Doc/library/os.rst:2862 +#: ../Doc/library/os.rst:2853 msgid "" "By default, :func:`walk` will not walk down into symbolic links that resolve " "to directories. Set *followlinks* to ``True`` to visit directories pointed " @@ -4196,7 +4174,7 @@ msgstr "" "un répertoire. Définissez *followlinks* avec ``True`` pour visiter les " "répertoires pointés par des liens symboliques sur les systèmes qui le gère." -#: ../Doc/library/os.rst:2868 +#: ../Doc/library/os.rst:2859 msgid "" "Be aware that setting *followlinks* to ``True`` can lead to infinite " "recursion if a link points to a parent directory of itself. :func:`walk` " @@ -4206,7 +4184,7 @@ msgstr "" "récursion infinie si un lien pointe vers un répertoire parent de lui-même. :" "func:`walk` ne garde pas de trace des répertoires qu'il a déjà visité." -#: ../Doc/library/os.rst:2874 +#: ../Doc/library/os.rst:2865 msgid "" "If you pass a relative pathname, don't change the current working directory " "between resumptions of :func:`walk`. :func:`walk` never changes the current " @@ -4216,7 +4194,7 @@ msgstr "" "actuel entre deux exécutions de :func:`walk`. :func:`walk` ne change jamais " "le répertoire actuel, et suppose que l'appelant ne le fait pas non plus." -#: ../Doc/library/os.rst:2878 ../Doc/library/os.rst:2937 +#: ../Doc/library/os.rst:2869 ../Doc/library/os.rst:2928 msgid "" "This example displays the number of bytes taken by non-directory files in " "each directory under the starting directory, except that it doesn't look " @@ -4224,9 +4202,9 @@ msgid "" msgstr "" "Cet exemple affiche le nombre de bytes pris par des fichiers non-répertoires " "dans chaque répertoire à partir du répertoire de départ, si ce n'est qu'il " -"ne cherche pas après un sous-répertoire CSV : ::" +"ne cherche pas après un sous-répertoire CSV ::" -#: ../Doc/library/os.rst:2891 +#: ../Doc/library/os.rst:2882 msgid "" "In the next example (simple implementation of :func:`shutil.rmtree`), " "walking the tree bottom-up is essential, :func:`rmdir` doesn't allow " @@ -4234,9 +4212,9 @@ msgid "" msgstr "" "Dans l'exemple suivant (simple implémentation d'un :func:`shutil.rmtree`), " "parcourir l'arbre de bas-en-haut est essentiel : :func:`rmdir` ne permet pas " -"de supprimer un répertoire avant qu'un ne soit vide : ::" +"de supprimer un répertoire avant qu'un ne soit vide ::" -#: ../Doc/library/os.rst:2906 +#: ../Doc/library/os.rst:2897 msgid "" "This function now calls :func:`os.scandir` instead of :func:`os.listdir`, " "making it faster by reducing the number of calls to :func:`os.stat`." @@ -4245,7 +4223,7 @@ msgstr "" "listdir`, ce qui la rend plus rapide en réduisant le nombre d'appels à :func:" "`os.stat`." -#: ../Doc/library/os.rst:2920 +#: ../Doc/library/os.rst:2911 msgid "" "This behaves exactly like :func:`walk`, except that it yields a 4-tuple " "``(dirpath, dirnames, filenames, dirfd)``, and it supports ``dir_fd``." @@ -4253,7 +4231,7 @@ msgstr "" "Se comporte exactement comme :func:`walk`, si ce n'est qu'il fournit un " "quadruplet ``(dirpath, dirnames, filenames, dirfd)``, et gère ``dir_fd``." -#: ../Doc/library/os.rst:2923 +#: ../Doc/library/os.rst:2914 msgid "" "*dirpath*, *dirnames* and *filenames* are identical to :func:`walk` output, " "and *dirfd* is a file descriptor referring to the directory *dirpath*." @@ -4262,7 +4240,7 @@ msgstr "" "`walk` et *dirfd* est un descripteur de fichier faisant référence au " "répertoire *dirpath*." -#: ../Doc/library/os.rst:2926 +#: ../Doc/library/os.rst:2917 msgid "" "This function always supports :ref:`paths relative to directory descriptors " "` and :ref:`not following symlinks `. Note however " @@ -4275,7 +4253,7 @@ msgstr "" "fonctions, la valeur par défaut de *follow_symlinks* pour :func:`walk` est " "``False``." -#: ../Doc/library/os.rst:2933 +#: ../Doc/library/os.rst:2924 msgid "" "Since :func:`fwalk` yields file descriptors, those are only valid until the " "next iteration step, so you should duplicate them (e.g. with :func:`dup`) if " @@ -4285,28 +4263,28 @@ msgstr "" "valides que jusque la prochaine itération. Donc vous devriez les dupliquer " "(par exemple avec :func:`dup`) si vous désirez les garder plus longtemps." -#: ../Doc/library/os.rst:2950 +#: ../Doc/library/os.rst:2941 msgid "" "In the next example, walking the tree bottom-up is essential: :func:`rmdir` " "doesn't allow deleting a directory before the directory is empty::" msgstr "" "Dans le prochain exemple, parcourir l'arbre de bas-en-haut est essentiel : :" "func:`rmdir` ne permet pas de supprimer un répertoire avant qu'il ne soit " -"vide : ::" +"vide ::" -#: ../Doc/library/os.rst:2972 +#: ../Doc/library/os.rst:2963 msgid "Added support for :class:`bytes` paths." msgstr "Ajout de la gestion des chemins de type :class:`bytes`." -#: ../Doc/library/os.rst:2977 +#: ../Doc/library/os.rst:2968 msgid "Linux extended attributes" msgstr "Attributs étendus pour Linux" -#: ../Doc/library/os.rst:2981 +#: ../Doc/library/os.rst:2972 msgid "These functions are all available on Linux only." msgstr "Toutes ces fonctions ne sont disponibles que sur Linux." -#: ../Doc/library/os.rst:2985 +#: ../Doc/library/os.rst:2976 msgid "" "Return the value of the extended filesystem attribute *attribute* for " "*path*. *attribute* can be bytes or str (directly or indirectly through the :" @@ -4319,12 +4297,12 @@ msgstr "" "`PathLike`). Si c'est une chaîne de caractères, elle est encodée avec " "l'encodage du système de fichiers." -#: ../Doc/library/os.rst:2993 ../Doc/library/os.rst:3021 -#: ../Doc/library/os.rst:3044 +#: ../Doc/library/os.rst:2984 ../Doc/library/os.rst:3012 +#: ../Doc/library/os.rst:3035 msgid "Accepts a :term:`path-like object` for *path* and *attribute*." msgstr "Accepte un :term:`path-like object` pour *path* et *attribute*." -#: ../Doc/library/os.rst:2999 +#: ../Doc/library/os.rst:2990 msgid "" "Return a list of the extended filesystem attributes on *path*. The " "attributes in the list are represented as strings decoded with the " @@ -4336,7 +4314,7 @@ msgstr "" "sont décodés avec l'encodage du système de fichier. Si *path* vaut " "``None``, :func:`listxattr` examinera le répertoire actuel." -#: ../Doc/library/os.rst:3013 +#: ../Doc/library/os.rst:3004 msgid "" "Removes the extended filesystem attribute *attribute* from *path*. " "*attribute* should be bytes or str (directly or indirectly through the :" @@ -4349,7 +4327,7 @@ msgstr "" "c'est une chaîne de caractères, elle est encodée avec l'encodage du système " "de fichiers." -#: ../Doc/library/os.rst:3027 +#: ../Doc/library/os.rst:3018 msgid "" "Set the extended filesystem attribute *attribute* on *path* to *value*. " "*attribute* must be a bytes or str with no embedded NULs (directly or " @@ -4370,7 +4348,7 @@ msgstr "" "donné et que l'attribut existe déjà, l'attribut ne sera pas créé et " "``ENODATA`` sera levée." -#: ../Doc/library/os.rst:3041 +#: ../Doc/library/os.rst:3032 msgid "" "A bug in Linux kernel versions less than 2.6.39 caused the flags argument to " "be ignored on some filesystems." @@ -4378,7 +4356,7 @@ msgstr "" "Un bug des versions inférieures à 2.6.39 du noyau Linux faisait que les " "marqueurs de *flags* étaient ignorés sur certains systèmes." -#: ../Doc/library/os.rst:3050 +#: ../Doc/library/os.rst:3041 msgid "" "The maximum size the value of an extended attribute can be. Currently, this " "is 64 KiB on Linux." @@ -4386,7 +4364,7 @@ msgstr "" "La taille maximum que peut faire la valeur d'un attribut étendu. " "Actuellement, c'est 64 KiB sur Lniux." -#: ../Doc/library/os.rst:3056 +#: ../Doc/library/os.rst:3047 msgid "" "This is a possible value for the flags argument in :func:`setxattr`. It " "indicates the operation must create an attribute." @@ -4394,7 +4372,7 @@ msgstr "" "C'est une valeur possible pour l'argument *flags* de :func:`setxattr`. Elle " "indique que l'opération doit créer un attribut." -#: ../Doc/library/os.rst:3062 +#: ../Doc/library/os.rst:3053 msgid "" "This is a possible value for the flags argument in :func:`setxattr`. It " "indicates the operation must replace an existing attribute." @@ -4402,16 +4380,16 @@ msgstr "" "C'est une valeur possible pour l'argument *flags* de :func:`setxattr`.Elle " "indique que l'opération doit remplacer un attribut existant." -#: ../Doc/library/os.rst:3069 +#: ../Doc/library/os.rst:3060 msgid "Process Management" msgstr "Gestion des processus" -#: ../Doc/library/os.rst:3071 +#: ../Doc/library/os.rst:3062 msgid "These functions may be used to create and manage processes." msgstr "" "Ces fonctions peuvent être utilisées pour créer et gérer des processus." -#: ../Doc/library/os.rst:3073 +#: ../Doc/library/os.rst:3064 msgid "" "The various :func:`exec\\* ` functions take a list of arguments for " "the new program loaded into the process. In each case, the first of these " @@ -4430,7 +4408,7 @@ msgstr "" "exemple, ``os.execv('/bin/echo/', ['foo', 'bar'])`` affichera uniquement " "``bar`` sur la sortie standard ; ``foo`` semblera être ignoré." -#: ../Doc/library/os.rst:3084 +#: ../Doc/library/os.rst:3075 msgid "" "Generate a :const:`SIGABRT` signal to the current process. On Unix, the " "default behavior is to produce a core dump; on Windows, the process " @@ -4444,7 +4422,7 @@ msgstr "" "Attention : appeler cette fonction n'appellera pas le gestionnaire de signal " "Python enregistré par :const:`SIGABRT` à l'aide de :func:`signal.signal`." -#: ../Doc/library/os.rst:3100 +#: ../Doc/library/os.rst:3091 msgid "" "These functions all execute a new program, replacing the current process; " "they do not return. On Unix, the new executable is loaded into the current " @@ -4456,7 +4434,7 @@ msgstr "" "dans le processus actuel, et aura le même identifiant de processus (PID) que " "l'appelant. Les erreurs seront reportées par des exceptions :exc:`OSError`." -#: ../Doc/library/os.rst:3105 +#: ../Doc/library/os.rst:3096 msgid "" "The current process is replaced immediately. Open file objects and " "descriptors are not flushed, so if there may be data buffered on these open " @@ -4469,7 +4447,7 @@ msgstr "" "manuellement en utilisant :func:`sys.stdout.flush` ou :func:`os.fsync` avant " "d'appeler une fonction :func:`exec\\* `." -#: ../Doc/library/os.rst:3111 +#: ../Doc/library/os.rst:3102 msgid "" "The \"l\" and \"v\" variants of the :func:`exec\\* ` functions differ " "in how command-line arguments are passed. The \"l\" variants are perhaps " @@ -4492,7 +4470,7 @@ msgstr "" "devraient commencer avec le nom de la commande à lancer, mais ce n'est pas " "obligatoire." -#: ../Doc/library/os.rst:3120 +#: ../Doc/library/os.rst:3111 msgid "" "The variants which include a \"p\" near the end (:func:`execlp`, :func:" "`execlpe`, :func:`execvp`, and :func:`execvpe`) will use the :envvar:`PATH` " @@ -4515,7 +4493,7 @@ msgstr "" "localiser l'exécutable. *path* doit contenir un chemin absolue ou relatif " "approprié." -#: ../Doc/library/os.rst:3130 +#: ../Doc/library/os.rst:3121 msgid "" "For :func:`execle`, :func:`execlpe`, :func:`execve`, and :func:`execvpe` " "(note that these all end in \"e\"), the *env* parameter must be a mapping " @@ -4532,7 +4510,7 @@ msgstr "" "`execlp`, :func:`execv`, et :func:`execvp` causent toutes un héritage de " "l'environnement du processus actuel par le processus fils." -#: ../Doc/library/os.rst:3137 +#: ../Doc/library/os.rst:3128 msgid "" "For :func:`execve` on some platforms, *path* may also be specified as an " "open file descriptor. This functionality may not be supported on your " @@ -4546,7 +4524,7 @@ msgstr "" "disponible en utilisant :data:`os._supports_fd`. Si c'est indisponible, " "l'utiliser lèvera une :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:3144 +#: ../Doc/library/os.rst:3135 msgid "" "Added support for specifying an open file descriptor for *path* for :func:" "`execve`." @@ -4554,7 +4532,7 @@ msgstr "" "Prise en charge de la spécification d'un descripteur de fichier ouvert pour " "*path* pour :func:`execve`." -#: ../Doc/library/os.rst:3153 +#: ../Doc/library/os.rst:3144 msgid "" "Exit the process with status *n*, without calling cleanup handlers, flushing " "stdio buffers, etc." @@ -4562,7 +4540,7 @@ msgstr "" "Quitte le processus avec le statut *n*, sans appeler les gestionnaires de " "nettoyage, sans purger les tampons des fichiers, etc." -#: ../Doc/library/os.rst:3158 +#: ../Doc/library/os.rst:3149 msgid "" "The standard way to exit is ``sys.exit(n)``. :func:`_exit` should normally " "only be used in the child process after a :func:`fork`." @@ -4571,7 +4549,7 @@ msgstr "" "normalement être utilisé uniquement par le processus fils après un :func:" "`fork`." -#: ../Doc/library/os.rst:3161 +#: ../Doc/library/os.rst:3152 msgid "" "The following exit codes are defined and can be used with :func:`_exit`, " "although they are not required. These are typically used for system " @@ -4583,7 +4561,7 @@ msgstr "" "utilisés pour les programmes systèmes écrits en Python, comme un programme " "de gestion de l'exécution des commandes d'un serveur de mails." -#: ../Doc/library/os.rst:3167 +#: ../Doc/library/os.rst:3158 msgid "" "Some of these may not be available on all Unix platforms, since there is " "some variation. These constants are defined where they are defined by the " @@ -4593,11 +4571,11 @@ msgstr "" "plate-formes Unix étant donné qu'il en existe des variations. Ces constantes " "sont définies là où elles sont définies par la plate-forme sous-jacente." -#: ../Doc/library/os.rst:3174 +#: ../Doc/library/os.rst:3165 msgid "Exit code that means no error occurred." msgstr "Code de sortie signifiant qu'aucune erreur n'est arrivée." -#: ../Doc/library/os.rst:3181 +#: ../Doc/library/os.rst:3172 msgid "" "Exit code that means the command was used incorrectly, such as when the " "wrong number of arguments are given." @@ -4605,36 +4583,36 @@ msgstr "" "Code de sortie signifiant que les commandes n'ont pas été utilisées " "correctement, comme quand le mauvais nombre d'arguments a été donné." -#: ../Doc/library/os.rst:3189 +#: ../Doc/library/os.rst:3180 msgid "Exit code that means the input data was incorrect." msgstr "" "Code de sortie signifiant que les données en entrées étaient incorrectes." -#: ../Doc/library/os.rst:3196 +#: ../Doc/library/os.rst:3187 msgid "Exit code that means an input file did not exist or was not readable." msgstr "" "Code de sortie signifiant qu'un des fichiers d'entrée n'existe pas ou n'est " "pas lisible." -#: ../Doc/library/os.rst:3203 +#: ../Doc/library/os.rst:3194 msgid "Exit code that means a specified user did not exist." msgstr "Code de sortie signifiant qu'un utilisateur spécifié n'existe pas." -#: ../Doc/library/os.rst:3210 +#: ../Doc/library/os.rst:3201 msgid "Exit code that means a specified host did not exist." msgstr "Code de sortie signifiant qu'un hôte spécifié n'existe pas." -#: ../Doc/library/os.rst:3217 +#: ../Doc/library/os.rst:3208 msgid "Exit code that means that a required service is unavailable." msgstr "Code de sortie signifiant qu'un service requis n'est pas disponible." -#: ../Doc/library/os.rst:3224 +#: ../Doc/library/os.rst:3215 msgid "Exit code that means an internal software error was detected." msgstr "" "Code de sortie signifiant qu'une erreur interne d'un programme a été " "détectée." -#: ../Doc/library/os.rst:3231 +#: ../Doc/library/os.rst:3222 msgid "" "Exit code that means an operating system error was detected, such as the " "inability to fork or create a pipe." @@ -4643,7 +4621,7 @@ msgstr "" "détectée, comme l'incapacité à réaliser un *fork* ou à créer un tuyau " "(*pipe*)." -#: ../Doc/library/os.rst:3239 +#: ../Doc/library/os.rst:3230 msgid "" "Exit code that means some system file did not exist, could not be opened, or " "had some other kind of error." @@ -4651,20 +4629,20 @@ msgstr "" "Code de sortie signifiant qu'un fichier n'existe pas, n'a pas pu être " "ouvert, ou avait une autre erreur." -#: ../Doc/library/os.rst:3247 +#: ../Doc/library/os.rst:3238 msgid "Exit code that means a user specified output file could not be created." msgstr "" "Code de sortie signifiant qu'un fichier spécifié par l'utilisateur n'a pas " "pu être créé." -#: ../Doc/library/os.rst:3254 +#: ../Doc/library/os.rst:3245 msgid "" "Exit code that means that an error occurred while doing I/O on some file." msgstr "" "Code de sortie signifiant qu'une erreur est apparue pendant une E/S sur un " "fichier." -#: ../Doc/library/os.rst:3261 +#: ../Doc/library/os.rst:3252 msgid "" "Exit code that means a temporary failure occurred. This indicates something " "that may not really be an error, such as a network connection that couldn't " @@ -4674,7 +4652,7 @@ msgstr "" "quelque chose qui pourrait ne pas être une erreur, comme une connexion au " "réseau qui n'a pas pu être établie pendant une opération réessayable." -#: ../Doc/library/os.rst:3270 +#: ../Doc/library/os.rst:3261 msgid "" "Exit code that means that a protocol exchange was illegal, invalid, or not " "understood." @@ -4682,7 +4660,7 @@ msgstr "" "Code de sortie signifiant qu'un protocole d'échange est illégal, invalide, " "ou non-compris." -#: ../Doc/library/os.rst:3278 +#: ../Doc/library/os.rst:3269 msgid "" "Exit code that means that there were insufficient permissions to perform the " "operation (but not intended for file system problems)." @@ -4690,17 +4668,17 @@ msgstr "" "Code de sortie signifiant qu'il manque certaines permissions pour réaliser " "une opération (mais n'est pas destiné au problèmes de système de fichiers)." -#: ../Doc/library/os.rst:3286 +#: ../Doc/library/os.rst:3277 msgid "Exit code that means that some kind of configuration error occurred." msgstr "Code de sortie signifiant qu'une erreur de configuration est apparue." -#: ../Doc/library/os.rst:3293 +#: ../Doc/library/os.rst:3284 msgid "Exit code that means something like \"an entry was not found\"." msgstr "" "Code de sortie signifiant quelque chose comme \"une entrée n'a pas été " "trouvée\"." -#: ../Doc/library/os.rst:3300 +#: ../Doc/library/os.rst:3291 msgid "" "Fork a child process. Return ``0`` in the child and the child's process id " "in the parent. If an error occurs :exc:`OSError` is raised." @@ -4709,7 +4687,7 @@ msgstr "" "processus fils dans le processus père. Si une erreur apparaît, une :exc:" "`OSError` est levée." -#: ../Doc/library/os.rst:3303 +#: ../Doc/library/os.rst:3294 msgid "" "Note that some platforms including FreeBSD <= 6.3 and Cygwin have known " "issues when using fork() from a thread." @@ -4717,13 +4695,13 @@ msgstr "" "Notez que certaines plate-formes (dont FreeBSD <= 6.3 et Cygwin) ont des " "problèmes connus lors d'utilisation de *fork()* depuis un fil d'exécution." -#: ../Doc/library/os.rst:3308 +#: ../Doc/library/os.rst:3299 msgid "See :mod:`ssl` for applications that use the SSL module with fork()." msgstr "" "Voit :mod:`ssl` pour les application qui utilisent le module SSL avec " "*fork()*." -#: ../Doc/library/os.rst:3315 +#: ../Doc/library/os.rst:3306 msgid "" "Fork a child process, using a new pseudo-terminal as the child's controlling " "terminal. Return a pair of ``(pid, fd)``, where *pid* is ``0`` in the child, " @@ -4738,7 +4716,7 @@ msgstr "" "approche plus portable, utilisez le module :mod:`pty`. Si une erreur " "apparaît, une :exc:`OSError` est levée." -#: ../Doc/library/os.rst:3330 +#: ../Doc/library/os.rst:3321 msgid "" "Send signal *sig* to the process *pid*. Constants for the specific signals " "available on the host platform are defined in the :mod:`signal` module." @@ -4746,7 +4724,7 @@ msgstr "" "Envoie le signal *sig* au processus *pid*. Les constantes pour les signaux " "spécifiques à la plate-forme hôte sont définies dans le module :mod:`signal`." -#: ../Doc/library/os.rst:3333 +#: ../Doc/library/os.rst:3324 msgid "" "Windows: The :data:`signal.CTRL_C_EVENT` and :data:`signal.CTRL_BREAK_EVENT` " "signals are special signals which can only be sent to console processes " @@ -4763,25 +4741,25 @@ msgstr "" "sera mis à *sig*. La version Windows de :func:`kill` prend en plus les " "identificateurs de processus à tuer." -#: ../Doc/library/os.rst:3341 +#: ../Doc/library/os.rst:3332 msgid "See also :func:`signal.pthread_kill`." msgstr "Voir également :func:`signal.pthread_kill`." -#: ../Doc/library/os.rst:3343 +#: ../Doc/library/os.rst:3334 msgid "Windows support." msgstr "Prise en charge de Windows." -#: ../Doc/library/os.rst:3353 +#: ../Doc/library/os.rst:3344 msgid "Send the signal *sig* to the process group *pgid*." msgstr "Envoie le signal *sig* au groupe de processus *pgid*." -#: ../Doc/library/os.rst:3360 +#: ../Doc/library/os.rst:3351 msgid "" "Add *increment* to the process's \"niceness\". Return the new niceness." msgstr "" "Ajoute *increment* à la priorité du processus. Renvoie la nouvelle priorité." -#: ../Doc/library/os.rst:3367 +#: ../Doc/library/os.rst:3358 msgid "" "Lock program segments into memory. The value of *op* (defined in ````) determines which segments are locked." @@ -4789,7 +4767,7 @@ msgstr "" "Verrouille les segments du programme en mémoire. La valeur de *op* (définie " "dans ````) détermine quels segments sont verrouillés." -#: ../Doc/library/os.rst:3375 +#: ../Doc/library/os.rst:3366 msgid "" "Open a pipe to or from command *cmd*. The return value is an open file " "object connected to the pipe, which can be read or written depending on " @@ -4805,7 +4783,7 @@ msgstr "" "`open`. L'objet fichier renvoyé écrit (ou lit) des chaînes de caractères et " "non de bytes." -#: ../Doc/library/os.rst:3382 +#: ../Doc/library/os.rst:3373 msgid "" "The ``close`` method returns :const:`None` if the subprocess exited " "successfully, or the subprocess's return code if there was an error. On " @@ -4826,7 +4804,7 @@ msgstr "" "été tué). Sur les systèmes Windows, la valeur de retour contient le code de " "retour du processus fils dans un entier signé ." -#: ../Doc/library/os.rst:3392 +#: ../Doc/library/os.rst:3383 msgid "" "This is implemented using :class:`subprocess.Popen`; see that class's " "documentation for more powerful ways to manage and communicate with " @@ -4836,23 +4814,23 @@ msgstr "" "documentation de cette classe pour des méthodes plus puissantes pour gérer " "et communiquer avec des sous-processus." -#: ../Doc/library/os.rst:3400 +#: ../Doc/library/os.rst:3391 msgid "" "Register callables to be executed when a new child process is forked using :" "func:`os.fork` or similar process cloning APIs. The parameters are optional " "and keyword-only. Each specifies a different call point." msgstr "" "Enregistre des appelables (*callables*) à exécuter quand un nouveau " -"processus enfant est *forké* avec :func:`os.fork` ou des APIs similaires de " +"processus enfant est crée avec :func:`os.fork` ou des APIs similaires de " "clonage de processus. Les paramètres sont optionnels et par mots-clé " "uniquement. Chacun spécifie un point d'appel différent." -#: ../Doc/library/os.rst:3405 +#: ../Doc/library/os.rst:3396 msgid "*before* is a function called before forking a child process." msgstr "" "*before* est une fonction appelée avant de *forker* un processus enfant." -#: ../Doc/library/os.rst:3406 +#: ../Doc/library/os.rst:3397 msgid "" "*after_in_parent* is a function called from the parent process after forking " "a child process." @@ -4860,11 +4838,11 @@ msgstr "" "*after_in_parent* est une fonction appelée depuis le processus parent après " "avoir *forké* un processus enfant." -#: ../Doc/library/os.rst:3408 +#: ../Doc/library/os.rst:3399 msgid "*after_in_child* is a function called from the child process." msgstr "*after_in_child* est une fonction appelée depuis le processus enfant." -#: ../Doc/library/os.rst:3410 +#: ../Doc/library/os.rst:3401 msgid "" "These calls are only made if control is expected to return to the Python " "interpreter. A typical :mod:`subprocess` launch will not trigger them as " @@ -4872,9 +4850,9 @@ msgid "" msgstr "" "Ces appels ne sont effectués que si le contrôle est censé retourner à " "l'interpréteur Python. Un lancement de :mod:`subprocess` typique ne les " -"déclenchera pas, car l'enfant ne va pas ré-entrer dans l'interpréteur." +"déclenchera pas, car l'enfant ne ré-entre pas dans l'interpréteur." -#: ../Doc/library/os.rst:3414 +#: ../Doc/library/os.rst:3405 msgid "" "Functions registered for execution before forking are called in reverse " "registration order. Functions registered for execution after forking " @@ -4885,7 +4863,7 @@ msgstr "" "l'exécution après le *fork* (soit dans le parent ou dans l'enfant) sont " "appelées dans l'ordre de leur enregistrement." -#: ../Doc/library/os.rst:3419 +#: ../Doc/library/os.rst:3410 msgid "" "Note that :c:func:`fork` calls made by third-party C code may not call those " "functions, unless it explicitly calls :c:func:`PyOS_BeforeFork`, :c:func:" @@ -4896,15 +4874,15 @@ msgstr "" "explicitement :c:func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` et :" "c:func:`PyOS_AfterFork_Child`." -#: ../Doc/library/os.rst:3423 +#: ../Doc/library/os.rst:3414 msgid "There is no way to unregister a function." -msgstr "Il n'y a aucun moyen de dés-enregistrer une fonction." +msgstr "Il n'y a aucun moyen d'annuler l'enregistrement d'une fonction." -#: ../Doc/library/os.rst:3439 +#: ../Doc/library/os.rst:3430 msgid "Execute the program *path* in a new process." msgstr "Exécute le programme *path* dans un nouveau processus." -#: ../Doc/library/os.rst:3441 +#: ../Doc/library/os.rst:3432 msgid "" "(Note that the :mod:`subprocess` module provides more powerful facilities " "for spawning new processes and retrieving their results; using that module " @@ -4916,7 +4894,7 @@ msgstr "" "est préférable d'utiliser ce module que ces fonctions. Voyez surtout la " "section :ref:`subprocess-replacements`.)" -#: ../Doc/library/os.rst:3446 +#: ../Doc/library/os.rst:3437 msgid "" "If *mode* is :const:`P_NOWAIT`, this function returns the process id of the " "new process; if *mode* is :const:`P_WAIT`, returns the process's exit code " @@ -4931,7 +4909,7 @@ msgstr "" "en fait l'identificateur du processus (*process handle*) et peut donc être " "utilisé avec la fonction :func:`waitpid`." -#: ../Doc/library/os.rst:3452 +#: ../Doc/library/os.rst:3443 msgid "" "The \"l\" and \"v\" variants of the :func:`spawn\\* ` functions " "differ in how command-line arguments are passed. The \"l\" variants are " @@ -4953,7 +4931,7 @@ msgstr "" "fils devraient commencer avec le nom de la commande à lancer, mais ce n'est " "pas obligatoire." -#: ../Doc/library/os.rst:3461 +#: ../Doc/library/os.rst:3452 msgid "" "The variants which include a second \"p\" near the end (:func:`spawnlp`, :" "func:`spawnlpe`, :func:`spawnvp`, and :func:`spawnvpe`) will use the :envvar:" @@ -4976,7 +4954,7 @@ msgstr "" "envvar:`PATH` pour localiser l'exécutable. *path* doit contenir un chemin " "absolue ou relatif approprié." -#: ../Doc/library/os.rst:3471 +#: ../Doc/library/os.rst:3462 msgid "" "For :func:`spawnle`, :func:`spawnlpe`, :func:`spawnve`, and :func:`spawnvpe` " "(note that these all end in \"e\"), the *env* parameter must be a mapping " @@ -4998,28 +4976,28 @@ msgstr "" "caractères. Des valeurs invalides pour les clefs ou les valeurs met la " "fonction en échec et renvoie ``127``." -#: ../Doc/library/os.rst:3480 +#: ../Doc/library/os.rst:3471 msgid "" "As an example, the following calls to :func:`spawnlp` and :func:`spawnvpe` " "are equivalent::" msgstr "" "Par exemple, les appels suivants à :func:`spawnlp` et :func:`spawnvpe` sont " -"équivalents : ::" +"équivalents ::" -#: ../Doc/library/os.rst:3489 +#: ../Doc/library/os.rst:3484 msgid "" -"Availability: Unix, Windows. :func:`spawnlp`, :func:`spawnlpe`, :func:" -"`spawnvp` and :func:`spawnvpe` are not available on Windows. :func:" -"`spawnle` and :func:`spawnve` are not thread-safe on Windows; we advise you " -"to use the :mod:`subprocess` module instead." +":ref:`Availability `: Unix, Windows. :func:`spawnlp`, :func:" +"`spawnlpe`, :func:`spawnvp` and :func:`spawnvpe` are not available on " +"Windows. :func:`spawnle` and :func:`spawnve` are not thread-safe on " +"Windows; we advise you to use the :mod:`subprocess` module instead." msgstr "" -"Disponibilité : Unix, Windows. :func:`spawnlp`, :func:`spawnlpe`, :func:" -"`spawnvp`, et :func:`spawnvpe` ne sont pas disponibles sur Windows. :func:" -"`spawnle` et :func:`spawnve` ne sont pas sécurisés pour les appels " -"concurrents (*thread-safe*) sur Windows, il est conseillé d'utiliser le " -"module :mod:`subprocess` à la place." +":ref:`Disponibilité ` : Unix, Windows. :func:`spawnlp`, :func:" +"`spawnlpe`, :func:`spawnvp`, et :func:`spawnvpe` ne sont pas disponibles sur " +"Windows. :func:`spawnle` et :func:`spawnve` ne sont pas sécurisés pour les " +"appels concurrents (*thread-safe*) sur Windows, il est conseillé d'utiliser " +"le module :mod:`subprocess` à la place." -#: ../Doc/library/os.rst:3501 +#: ../Doc/library/os.rst:3492 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If either of these values is given, the :func:`spawn" @@ -5031,7 +5009,7 @@ msgstr "" "`spawn\\*` sortiront dès que le nouveau processus est créé, avec le PID du " "processus comme valeur de retour." -#: ../Doc/library/os.rst:3511 +#: ../Doc/library/os.rst:3502 msgid "" "Possible value for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If this is given as *mode*, the :func:`spawn\\*` " @@ -5046,7 +5024,7 @@ msgstr "" "l'exécution est effectuée avec succès, ou ``-signal`` si un signal tue le " "processus." -#: ../Doc/library/os.rst:3523 +#: ../Doc/library/os.rst:3514 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. These are less portable than those listed above. :" @@ -5062,11 +5040,11 @@ msgstr "" "`P_OVERLAY` est utilisé, le processus actuel sera remplacé. La fonction :" "func:`spawn\\* ` ne sort jamais." -#: ../Doc/library/os.rst:3534 +#: ../Doc/library/os.rst:3525 msgid "Start a file with its associated application." -msgstr "lance un fichier avec son application associée." +msgstr "Lance un fichier avec son application associée." -#: ../Doc/library/os.rst:3536 +#: ../Doc/library/os.rst:3527 msgid "" "When *operation* is not specified or ``'open'``, this acts like double-" "clicking the file in Windows Explorer, or giving the file name as an " @@ -5080,7 +5058,7 @@ msgstr "" "commande interactif : le fichier est ouvert avec l'application associée à " "l'extension (s'il y en a une)." -#: ../Doc/library/os.rst:3541 +#: ../Doc/library/os.rst:3532 msgid "" "When another *operation* is given, it must be a \"command verb\" that " "specifies what should be done with the file. Common verbs documented by " @@ -5093,7 +5071,7 @@ msgstr "" "utilisés sur des fichiers) ainsi que ``'explore'`` et ``'find'`` (qui " "doivent être utilisés sur des répertoires)." -#: ../Doc/library/os.rst:3546 +#: ../Doc/library/os.rst:3537 msgid "" ":func:`startfile` returns as soon as the associated application is launched. " "There is no option to wait for the application to close, and no way to " @@ -5112,7 +5090,7 @@ msgstr "" "Utilisez la fonction :func:`os.path.normpath` pour vous assurer que le " "chemin est encodé correctement pour Win32." -#: ../Doc/library/os.rst:3554 +#: ../Doc/library/os.rst:3545 msgid "" "To reduce interpreter startup overhead, the Win32 :c:func:`ShellExecute` " "function is not resolved until this function is first called. If the " @@ -5123,7 +5101,7 @@ msgstr "" "fonction na pas été appelée. Si la fonction ne peut être interprétée, une :" "exc:`NotImplementedError` est levée." -#: ../Doc/library/os.rst:3563 +#: ../Doc/library/os.rst:3554 msgid "" "Execute the command (a string) in a subshell. This is implemented by " "calling the Standard C function :c:func:`system`, and has the same " @@ -5138,7 +5116,7 @@ msgstr "" "*command* génère une sortie, elle sera envoyée à l'interpréteur standard de " "flux." -#: ../Doc/library/os.rst:3569 +#: ../Doc/library/os.rst:3560 msgid "" "On Unix, the return value is the exit status of the process encoded in the " "format specified for :func:`wait`. Note that POSIX does not specify the " @@ -5150,7 +5128,7 @@ msgstr "" "le sens de la valeur de retour de la fonction C :c:func:`system`, donc la " "valeur de retour de la fonction Python est dépendante du système." -#: ../Doc/library/os.rst:3574 +#: ../Doc/library/os.rst:3565 msgid "" "On Windows, the return value is that returned by the system shell after " "running *command*. The shell is given by the Windows environment variable :" @@ -5165,7 +5143,7 @@ msgstr "" "commande lancée. Sur les systèmes qui utilisent un invite de commande non-" "natif, consultez la documentation propre à l'invite." -#: ../Doc/library/os.rst:3580 +#: ../Doc/library/os.rst:3571 msgid "" "The :mod:`subprocess` module provides more powerful facilities for spawning " "new processes and retrieving their results; using that module is preferable " @@ -5178,7 +5156,7 @@ msgstr "" "ref:`subprocess-replacements` de la documentation du module :mod:" "`subprocess` pour des informations plus précises et utiles." -#: ../Doc/library/os.rst:3590 +#: ../Doc/library/os.rst:3581 msgid "" "Returns the current global process times. The return value is an object with " "five attributes:" @@ -5186,30 +5164,27 @@ msgstr "" "Renvoie les temps globaux actuels d'exécution du processus. La valeur de " "retour est un objet avec cinq attributs :" -#: ../Doc/library/os.rst:3593 +#: ../Doc/library/os.rst:3584 msgid ":attr:`user` - user time" -msgstr ":attr:`user` --- le temps utilisateur ;" +msgstr ":attr:`user` — le temps utilisateur" -#: ../Doc/library/os.rst:3594 +#: ../Doc/library/os.rst:3585 msgid ":attr:`system` - system time" -msgstr ":attr:`system` -- le temps système ;" +msgstr ":attr:`system` — le temps système" -#: ../Doc/library/os.rst:3595 +#: ../Doc/library/os.rst:3586 msgid ":attr:`children_user` - user time of all child processes" -msgstr "" -":attr:`children_user` --- temps utilisateur de tous les processus fils ;" +msgstr ":attr:`children_user` — temps utilisateur de tous les processus fils" -#: ../Doc/library/os.rst:3596 +#: ../Doc/library/os.rst:3587 msgid ":attr:`children_system` - system time of all child processes" -msgstr "" -":attr:`children_system` --- le temps système de tous les processus fils ;" +msgstr ":attr:`children_system` — le temps système de tous les processus fils" -#: ../Doc/library/os.rst:3597 +#: ../Doc/library/os.rst:3588 msgid ":attr:`elapsed` - elapsed real time since a fixed point in the past" -msgstr "" -":attr:`elapsed` --- temps écoulé réel depuis un point fixé dans le passé." +msgstr ":attr:`elapsed` — temps écoulé réel depuis un point fixé dans le passé" -#: ../Doc/library/os.rst:3599 +#: ../Doc/library/os.rst:3590 msgid "" "For backwards compatibility, this object also behaves like a five-tuple " "containing :attr:`user`, :attr:`system`, :attr:`children_user`, :attr:" @@ -5219,7 +5194,7 @@ msgstr "" "comme un *tuple* contenant :attr:`user`, :attr:`system`, :attr:" "`children_user`, :attr:`children_system`, et :attr:`elapsed` dans cet ordre." -#: ../Doc/library/os.rst:3603 +#: ../Doc/library/os.rst:3594 msgid "" "See the Unix manual page :manpage:`times(2)` or the corresponding Windows " "Platform API documentation. On Windows, only :attr:`user` and :attr:`system` " @@ -5229,7 +5204,7 @@ msgstr "" "Windows correspondante. Sur Windows, seuls :attr:`user` et :attr:`system` " "sont connus. Les autres attributs sont nuls." -#: ../Doc/library/os.rst:3617 +#: ../Doc/library/os.rst:3608 msgid "" "Wait for completion of a child process, and return a tuple containing its " "pid and exit status indication: a 16-bit number, whose low byte is the " @@ -5244,7 +5219,7 @@ msgstr "" "Le bit de poids fort du *byte* de poids faible est mis à 1 si un (fichier " "système) *core file* a été produit." -#: ../Doc/library/os.rst:3627 +#: ../Doc/library/os.rst:3618 msgid "" "Wait for the completion of one or more child processes. *idtype* can be :" "data:`P_PID`, :data:`P_PGID` or :data:`P_ALL`. *id* specifies the pid to " @@ -5267,7 +5242,7 @@ msgstr "" "`si_code` ou ``None`` si :data:`WNOHANG` est spécifié et qu'il n'y a pas " "d'enfant dans un état que l'on peut attendre." -#: ../Doc/library/os.rst:3646 +#: ../Doc/library/os.rst:3637 msgid "" "These are the possible values for *idtype* in :func:`waitid`. They affect " "how *id* is interpreted." @@ -5275,7 +5250,7 @@ msgstr "" "Les valeurs possibles pour *idtypes* pour la fonction :func:`waitid`. Elles " "affectent l'interprétation de *id*." -#: ../Doc/library/os.rst:3657 +#: ../Doc/library/os.rst:3648 msgid "" "Flags that can be used in *options* in :func:`waitid` that specify what " "child signal to wait for." @@ -5283,7 +5258,7 @@ msgstr "" "Marqueurs qui peuvent être utilisés pour la fonction :func:`waitid` qui " "spécifient quel signal attendre du fils." -#: ../Doc/library/os.rst:3670 +#: ../Doc/library/os.rst:3661 msgid "" "These are the possible values for :attr:`si_code` in the result returned by :" "func:`waitid`." @@ -5291,11 +5266,11 @@ msgstr "" "Les valeurs possibles pour :attr:`si_code` dans le résultat renvoyé par :" "func:`waitid`." -#: ../Doc/library/os.rst:3680 +#: ../Doc/library/os.rst:3671 msgid "The details of this function differ on Unix and Windows." msgstr "Les détails de cette fonction diffèrent sur Unix et Windows." -#: ../Doc/library/os.rst:3682 +#: ../Doc/library/os.rst:3673 msgid "" "On Unix: Wait for completion of a child process given by process id *pid*, " "and return a tuple containing its process id and exit status indication " @@ -5309,7 +5284,7 @@ msgstr "" "affecté par la valeur de l'argument entier *options*, qui devrait valoir " "``0`` pour les opérations normales." -#: ../Doc/library/os.rst:3687 +#: ../Doc/library/os.rst:3678 msgid "" "If *pid* is greater than ``0``, :func:`waitpid` requests status information " "for that specific process. If *pid* is ``0``, the request is for the status " @@ -5326,7 +5301,7 @@ msgstr "" "``-1``, une requête est faite pour le statut de chaque processus du groupe " "de processus donné par ``-pid`` (la valeur absolue de *pid*)." -#: ../Doc/library/os.rst:3694 +#: ../Doc/library/os.rst:3685 msgid "" "An :exc:`OSError` is raised with the value of errno when the syscall returns " "-1." @@ -5334,7 +5309,7 @@ msgstr "" "Une :exc:`OSError` est levée avec la valeur de *errno* quand l'appel système " "renvoie ``-1``." -#: ../Doc/library/os.rst:3697 +#: ../Doc/library/os.rst:3688 msgid "" "On Windows: Wait for completion of a process given by process handle *pid*, " "and return a tuple containing *pid*, and its exit status shifted left by 8 " @@ -5356,7 +5331,7 @@ msgstr "" "appelées avec :const:`P_NOWAIT` renvoient des identificateurs de processus " "appropriés." -#: ../Doc/library/os.rst:3713 +#: ../Doc/library/os.rst:3704 msgid "" "Similar to :func:`waitpid`, except no process id argument is given and a 3-" "element tuple containing the child's process id, exit status indication, and " @@ -5372,7 +5347,7 @@ msgstr "" "ressources. L'argument *options* est le même que celui fourni à :func:" "`waitpid` et :func:`wait4`." -#: ../Doc/library/os.rst:3725 +#: ../Doc/library/os.rst:3716 msgid "" "Similar to :func:`waitpid`, except a 3-element tuple, containing the child's " "process id, exit status indication, and resource usage information is " @@ -5387,7 +5362,7 @@ msgstr "" "d'utilisation des ressources. Les arguments de :func:`wait4` sont les mêmes " "que ceux fournis à :func:`waitpid`." -#: ../Doc/library/os.rst:3736 +#: ../Doc/library/os.rst:3727 msgid "" "The option for :func:`waitpid` to return immediately if no child process " "status is available immediately. The function returns ``(0, 0)`` in this " @@ -5397,7 +5372,7 @@ msgstr "" "processus fils n'est disponible dans l'immédiat. La fonction renvoie ``(0, " "0)`` dans ce cas." -#: ../Doc/library/os.rst:3744 +#: ../Doc/library/os.rst:3735 msgid "" "This option causes child processes to be reported if they have been " "continued from a job control stop since their status was last reported." @@ -5406,11 +5381,11 @@ msgstr "" "continués après un arrêt du *job control* depuis leurs derniers reports de " "statuts." -#: ../Doc/library/os.rst:3747 -msgid "Availability: some Unix systems." -msgstr "Disponibilité : certains systèmes Unix." +#: ../Doc/library/os.rst:3738 +msgid ":ref:`Availability `: some Unix systems." +msgstr ":ref:`Disponibilité ` : certains systèmes Unix." -#: ../Doc/library/os.rst:3752 +#: ../Doc/library/os.rst:3743 msgid "" "This option causes child processes to be reported if they have been stopped " "but their current state has not been reported since they were stopped." @@ -5418,7 +5393,7 @@ msgstr "" "Cette option cause les processus fils à être reportés s'ils ont été stoppés " "mais que leur état actuel n'a pas été reporté depuis qu'ils ont été stoppés." -#: ../Doc/library/os.rst:3758 +#: ../Doc/library/os.rst:3749 msgid "" "The following functions take a process status code as returned by :func:" "`system`, :func:`wait`, or :func:`waitpid` as a parameter. They may be used " @@ -5428,7 +5403,7 @@ msgstr "" "`system`, :func:`wait`, ou :func:`waitpid` en paramètre. Ils peuvent être " "utilisés pour déterminer la disposition d'un processus." -#: ../Doc/library/os.rst:3764 +#: ../Doc/library/os.rst:3755 msgid "" "Return ``True`` if a core dump was generated for the process, otherwise " "return ``False``." @@ -5436,7 +5411,7 @@ msgstr "" "Renvoie ``True`` si un vidage système (*core dump*) a été généré pour le " "processus, sinon, renvoie ``False``." -#: ../Doc/library/os.rst:3772 +#: ../Doc/library/os.rst:3763 msgid "" "Return ``True`` if the process has been continued from a job control stop, " "otherwise return ``False``." @@ -5444,13 +5419,13 @@ msgstr "" "Renvoie ``True`` si le processus a été continué après un arrêt du *job " "control*, renvoie ``False`` autrement." -#: ../Doc/library/os.rst:3780 +#: ../Doc/library/os.rst:3771 msgid "" "Return ``True`` if the process has been stopped, otherwise return ``False``." msgstr "" "Renvoie ``True`` si le processus a été arrête, sinon renvoie ``False``." -#: ../Doc/library/os.rst:3788 +#: ../Doc/library/os.rst:3779 msgid "" "Return ``True`` if the process exited due to a signal, otherwise return " "``False``." @@ -5458,7 +5433,7 @@ msgstr "" "Renvoie ``True`` si le processus s'est terminé à cause d'un signal, sinon, " "renvoie ``False``." -#: ../Doc/library/os.rst:3796 +#: ../Doc/library/os.rst:3787 msgid "" "Return ``True`` if the process exited using the :manpage:`exit(2)` system " "call, otherwise return ``False``." @@ -5466,7 +5441,7 @@ msgstr "" "Renvoie ``True`` si le processus s'est terminé en faisant un appel système :" "manpage:`exit(2)`, sinon, renvoie ``False``." -#: ../Doc/library/os.rst:3804 +#: ../Doc/library/os.rst:3795 msgid "" "If ``WIFEXITED(status)`` is true, return the integer parameter to the :" "manpage:`exit(2)` system call. Otherwise, the return value is meaningless." @@ -5475,19 +5450,19 @@ msgstr "" "l'appel système :manpage:`exit(2)`. Sinon, la valeur de retour n'a pas de " "signification." -#: ../Doc/library/os.rst:3812 +#: ../Doc/library/os.rst:3803 msgid "Return the signal which caused the process to stop." msgstr "Renvoie le signal qui a causé l'arrêt du processus." -#: ../Doc/library/os.rst:3819 +#: ../Doc/library/os.rst:3810 msgid "Return the signal which caused the process to exit." msgstr "Renvoie le signal qui a amené le processus à quitter." -#: ../Doc/library/os.rst:3825 +#: ../Doc/library/os.rst:3816 msgid "Interface to the scheduler" msgstr "Interface pour l'ordonnanceur" -#: ../Doc/library/os.rst:3827 +#: ../Doc/library/os.rst:3818 msgid "" "These functions control how a process is allocated CPU time by the operating " "system. They are only available on some Unix platforms. For more detailed " @@ -5498,7 +5473,7 @@ msgstr "" "plate-formes Unix. Pour des informations plus détaillées, consultez les " "pages de manuels Unix." -#: ../Doc/library/os.rst:3833 +#: ../Doc/library/os.rst:3824 msgid "" "The following scheduling policies are exposed if they are supported by the " "operating system." @@ -5506,11 +5481,11 @@ msgstr "" "Les polices d'ordonnancement suivantes sont exposées si elles sont gérées " "par le système d'exploitation." -#: ../Doc/library/os.rst:3838 +#: ../Doc/library/os.rst:3829 msgid "The default scheduling policy." msgstr "La police d'ordonnancement par défaut." -#: ../Doc/library/os.rst:3842 +#: ../Doc/library/os.rst:3833 msgid "" "Scheduling policy for CPU-intensive processes that tries to preserve " "interactivity on the rest of the computer." @@ -5519,25 +5494,25 @@ msgstr "" "processeur. Cette police essaye de préserver l'interactivité pour le reste " "de l'ordinateur." -#: ../Doc/library/os.rst:3847 +#: ../Doc/library/os.rst:3838 msgid "Scheduling policy for extremely low priority background tasks." msgstr "" "Police d'ordonnancement pour les tâches de fond avec une priorité " "extrêmement faible." -#: ../Doc/library/os.rst:3851 +#: ../Doc/library/os.rst:3842 msgid "Scheduling policy for sporadic server programs." msgstr "Police d'ordonnancement pour des programmes serveurs sporadiques." -#: ../Doc/library/os.rst:3855 +#: ../Doc/library/os.rst:3846 msgid "A First In First Out scheduling policy." msgstr "Une police d'ordonnancement *FIFO* (dernier arrivé, premier servi)." -#: ../Doc/library/os.rst:3859 +#: ../Doc/library/os.rst:3850 msgid "A round-robin scheduling policy." msgstr "Une police d'ordonnancement *round-robin* (tourniquet)." -#: ../Doc/library/os.rst:3863 +#: ../Doc/library/os.rst:3854 msgid "" "This flag can be OR'ed with any other scheduling policy. When a process with " "this flag set forks, its child's scheduling policy and priority are reset to " @@ -5548,7 +5523,7 @@ msgstr "" "d'ordonnancement et la priorité du processus fils sont remises aux valeurs " "par défaut." -#: ../Doc/library/os.rst:3870 +#: ../Doc/library/os.rst:3861 msgid "" "This class represents tunable scheduling parameters used in :func:" "`sched_setparam`, :func:`sched_setscheduler`, and :func:`sched_getparam`. It " @@ -5558,15 +5533,15 @@ msgstr "" "pour :func:`sched_setparam`, :func:`sched_setscheduler`, et :func:" "`sched_getparam`. Un objet de ce type est immuable." -#: ../Doc/library/os.rst:3874 +#: ../Doc/library/os.rst:3865 msgid "At the moment, there is only one possible parameter:" msgstr "Pour le moment, il n'y a qu'un seul paramètre possible :" -#: ../Doc/library/os.rst:3878 +#: ../Doc/library/os.rst:3869 msgid "The scheduling priority for a scheduling policy." msgstr "La priorité d'ordonnancement pour une police d'ordonnancement." -#: ../Doc/library/os.rst:3883 +#: ../Doc/library/os.rst:3874 msgid "" "Get the minimum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." @@ -5574,7 +5549,7 @@ msgstr "" "Récupère la valeur minimum pour une priorité pour la police *policy*. " "*policy* est une des constantes de police définies ci-dessus." -#: ../Doc/library/os.rst:3889 +#: ../Doc/library/os.rst:3880 msgid "" "Get the maximum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." @@ -5582,7 +5557,7 @@ msgstr "" "Récupère la valeur maximum pour une priorité pour la police *policy*. " "*policy* est une des constantes de police définies ci-dessus." -#: ../Doc/library/os.rst:3895 +#: ../Doc/library/os.rst:3886 msgid "" "Set the scheduling policy for the process with PID *pid*. A *pid* of 0 means " "the calling process. *policy* is one of the scheduling policy constants " @@ -5593,7 +5568,7 @@ msgstr "" "police définies ci-dessus. *param* est une instance de la classe :class:" "`sched_param`." -#: ../Doc/library/os.rst:3902 +#: ../Doc/library/os.rst:3893 msgid "" "Return the scheduling policy for the process with PID *pid*. A *pid* of 0 " "means the calling process. The result is one of the scheduling policy " @@ -5603,7 +5578,7 @@ msgstr "" "de 0 signifie le processus appelant. Le résultat est une des constantes de " "police définies ci-dessus." -#: ../Doc/library/os.rst:3909 +#: ../Doc/library/os.rst:3900 msgid "" "Set a scheduling parameters for the process with PID *pid*. A *pid* of 0 " "means the calling process. *param* is a :class:`sched_param` instance." @@ -5612,7 +5587,7 @@ msgstr "" "*pid* de ``0`` signifie le processus appelant. *param* est une instance de :" "class:`sched_param`." -#: ../Doc/library/os.rst:3915 +#: ../Doc/library/os.rst:3906 msgid "" "Return the scheduling parameters as a :class:`sched_param` instance for the " "process with PID *pid*. A *pid* of 0 means the calling process." @@ -5621,7 +5596,7 @@ msgstr "" "pour le processus de PID *pid*. Un *pid* de ``0`` signifie le processus " "appelant." -#: ../Doc/library/os.rst:3921 +#: ../Doc/library/os.rst:3912 msgid "" "Return the round-robin quantum in seconds for the process with PID *pid*. A " "*pid* of 0 means the calling process." @@ -5629,11 +5604,11 @@ msgstr "" "Renvoie le quantum de temps du *round-robin* (en secondes) pour le processus " "de PID *pid*. Un *pid* de ``0`` signifie le processus appelant." -#: ../Doc/library/os.rst:3927 +#: ../Doc/library/os.rst:3918 msgid "Voluntarily relinquish the CPU." msgstr "Abandonne volontairement le processeur." -#: ../Doc/library/os.rst:3932 +#: ../Doc/library/os.rst:3923 msgid "" "Restrict the process with PID *pid* (or the current process if zero) to a " "set of CPUs. *mask* is an iterable of integers representing the set of CPUs " @@ -5643,7 +5618,7 @@ msgstr "" "``0``) à un ensemble de CPUs. *mask* est un itérable d'entiers représentant " "l'ensemble de CPUs auquel le processus doit être restreint." -#: ../Doc/library/os.rst:3939 +#: ../Doc/library/os.rst:3930 msgid "" "Return the set of CPUs the process with PID *pid* (or the current process if " "zero) is restricted to." @@ -5651,11 +5626,11 @@ msgstr "" "Renvoie l'ensemble de CPUs auquel le processus de PID *pid* (ou le processus " "actuel si *pid* vaut ``0``) est restreint." -#: ../Doc/library/os.rst:3946 +#: ../Doc/library/os.rst:3937 msgid "Miscellaneous System Information" msgstr "Diverses informations sur le système" -#: ../Doc/library/os.rst:3951 +#: ../Doc/library/os.rst:3942 msgid "" "Return string-valued system configuration values. *name* specifies the " "configuration value to retrieve; it may be a string which is the name of a " @@ -5675,7 +5650,7 @@ msgstr "" "incluses dans ce *mapping*, passer un entier pour *name* est également " "accepté." -#: ../Doc/library/os.rst:3959 +#: ../Doc/library/os.rst:3950 msgid "" "If the configuration value specified by *name* isn't defined, ``None`` is " "returned." @@ -5683,7 +5658,7 @@ msgstr "" "Si la valeur de configuration spécifiée par *name* n'est pas définie, " "``None`` est renvoyé." -#: ../Doc/library/os.rst:3962 +#: ../Doc/library/os.rst:3953 msgid "" "If *name* is a string and is not known, :exc:`ValueError` is raised. If a " "specific value for *name* is not supported by the host system, even if it is " @@ -5695,7 +5670,7 @@ msgstr "" "par le système hôte, même si elle est incluse dans ``confstr_names``, une :" "exc:`OSError` est levée avec :const:`errno.EINVAL` pour numéro d'erreur." -#: ../Doc/library/os.rst:3972 +#: ../Doc/library/os.rst:3963 msgid "" "Dictionary mapping names accepted by :func:`confstr` to the integer values " "defined for those names by the host operating system. This can be used to " @@ -5705,13 +5680,13 @@ msgstr "" "entières définies pour ces noms par le système d'exploitation hôte. Cela " "peut être utilisé pour déterminer l'ensemble des noms connus du système." -#: ../Doc/library/os.rst:3981 +#: ../Doc/library/os.rst:3972 msgid "" "Return the number of CPUs in the system. Returns ``None`` if undetermined." msgstr "" "Renvoie le nombre de CPUs dans le système. Renvoie ``None`` si indéterminé." -#: ../Doc/library/os.rst:3983 +#: ../Doc/library/os.rst:3974 msgid "" "This number is not equivalent to the number of CPUs the current process can " "use. The number of usable CPUs can be obtained with ``len(os." @@ -5721,7 +5696,7 @@ msgstr "" "peut utiliser. Le nombre de CPUs utilisables peut être obtenu avec ``len(os." "sched_getaffinity(0))``" -#: ../Doc/library/os.rst:3993 +#: ../Doc/library/os.rst:3984 msgid "" "Return the number of processes in the system run queue averaged over the " "last 1, 5, and 15 minutes or raises :exc:`OSError` if the load average was " @@ -5731,7 +5706,7 @@ msgstr "" "moyenne dans les dernières 1, 5, et 15 minutes, ou lève une :exc:`OSError` " "si la charge moyenne est impossible à récupérer." -#: ../Doc/library/os.rst:4002 +#: ../Doc/library/os.rst:3993 msgid "" "Return integer-valued system configuration values. If the configuration " "value specified by *name* isn't defined, ``-1`` is returned. The comments " @@ -5745,7 +5720,7 @@ msgstr "" "s'appliquent également ici, le dictionnaire qui fournit les informations sur " "les noms connus est donné par ``sysconf_names``." -#: ../Doc/library/os.rst:4012 +#: ../Doc/library/os.rst:4003 msgid "" "Dictionary mapping names accepted by :func:`sysconf` to the integer values " "defined for those names by the host operating system. This can be used to " @@ -5755,7 +5730,7 @@ msgstr "" "entières définies pour ces noms par le système d'exploitation hôte. Cela " "peut être utilisé pour déterminer l'ensemble des noms connus du système." -#: ../Doc/library/os.rst:4018 +#: ../Doc/library/os.rst:4009 msgid "" "The following data values are used to support path manipulation operations. " "These are defined for all platforms." @@ -5763,7 +5738,7 @@ msgstr "" "Les valeurs suivantes sont utilisées pour gérer les opérations de " "manipulations de chemins. Elles sont définies pour toutes les plate-formes." -#: ../Doc/library/os.rst:4021 +#: ../Doc/library/os.rst:4012 msgid "" "Higher-level operations on pathnames are defined in the :mod:`os.path` " "module." @@ -5771,7 +5746,7 @@ msgstr "" "Des opérations de plus haut niveau sur les chemins sont définies dans le " "module :mod:`os.path`." -#: ../Doc/library/os.rst:4026 +#: ../Doc/library/os.rst:4018 msgid "" "The constant string used by the operating system to refer to the current " "directory. This is ``'.'`` for Windows and POSIX. Also available via :mod:" @@ -5781,7 +5756,7 @@ msgstr "" "référencer le répertoire actuel. Ça vaut ``'.'`` pour Windows et POSIX. " "Également disponible par :mod:`os.path`." -#: ../Doc/library/os.rst:4033 +#: ../Doc/library/os.rst:4026 msgid "" "The constant string used by the operating system to refer to the parent " "directory. This is ``'..'`` for Windows and POSIX. Also available via :mod:" @@ -5791,7 +5766,7 @@ msgstr "" "référencer le répertoire parent. Ça vaut ``'..'`` pour Windows et POSIX. " "Également disponible par :mod:`os.path`." -#: ../Doc/library/os.rst:4040 +#: ../Doc/library/os.rst:4035 msgid "" "The character used by the operating system to separate pathname components. " "This is ``'/'`` for POSIX and ``'\\\\'`` for Windows. Note that knowing " @@ -5806,7 +5781,7 @@ msgstr "" "et :func:`os.path.join`), mais ça peut s'avérer utile occasionnellement. " "Également disponible par :mod:`os.path`." -#: ../Doc/library/os.rst:4049 +#: ../Doc/library/os.rst:4045 msgid "" "An alternative character used by the operating system to separate pathname " "components, or ``None`` if only one separator character exists. This is set " @@ -5818,7 +5793,7 @@ msgstr "" "vaut ``'/'`` sur Windows où ``sep`` est un antislash ``'\\'``. Également " "disponible par :mod:`os.path`." -#: ../Doc/library/os.rst:4057 +#: ../Doc/library/os.rst:4054 msgid "" "The character which separates the base filename from the extension; for " "example, the ``'.'`` in :file:`os.py`. Also available via :mod:`os.path`." @@ -5827,7 +5802,7 @@ msgstr "" "exemple, le ``'.'`` de :file:`os.py`. Également disponible par :mod:`os." "path`." -#: ../Doc/library/os.rst:4063 +#: ../Doc/library/os.rst:4062 msgid "" "The character conventionally used by the operating system to separate search " "path components (as in :envvar:`PATH`), such as ``':'`` for POSIX or ``';'`` " @@ -5838,7 +5813,7 @@ msgstr "" "d'environnement :envvar:`PATH`). Cela vaut ``':'`` pour POSIX, ou ``';'`` " "pour Windows. Également disponible par :mod:`os.path`." -#: ../Doc/library/os.rst:4070 +#: ../Doc/library/os.rst:4069 msgid "" "The default search path used by :func:`exec\\*p\\* ` and :func:`spawn" "\\*p\\* ` if the environment doesn't have a ``'PATH'`` key. Also " @@ -5848,7 +5823,7 @@ msgstr "" "func:`spawn\\* ` si l'environnement n'a pas une clef ``'PATH'``. " "Également disponible par :mod:`os.path`." -#: ../Doc/library/os.rst:4077 +#: ../Doc/library/os.rst:4076 msgid "" "The string used to separate (or, rather, terminate) lines on the current " "platform. This may be a single character, such as ``'\\n'`` for POSIX, or " @@ -5863,7 +5838,7 @@ msgstr "" "écrivez dans un fichier ouvert en mode *texte* (par défaut). Utilisez un " "unique ``'\\n'`` à la place, sur toutes les plate-formes." -#: ../Doc/library/os.rst:4086 +#: ../Doc/library/os.rst:4085 msgid "" "The file path of the null device. For example: ``'/dev/null'`` for POSIX, " "``'nul'`` for Windows. Also available via :mod:`os.path`." @@ -5871,7 +5846,7 @@ msgstr "" "Le chemin de fichier du périphérique *null*. Par exemple : ``'/dev/null'`` " "pour POSIX, ``'nul'`` pour Windows. Également disponible par :mod:`os.path`." -#: ../Doc/library/os.rst:4097 +#: ../Doc/library/os.rst:4096 msgid "" "Flags for use with the :func:`~sys.setdlopenflags` and :func:`~sys." "getdlopenflags` functions. See the Unix manual page :manpage:`dlopen(3)` " @@ -5881,11 +5856,11 @@ msgstr "" "`~sys.getdlopenflags`. Voir les pages de manuel Unix :manpage:`dlopen(3)` " "pour les différences de significations entre les marqueurs." -#: ../Doc/library/os.rst:4105 +#: ../Doc/library/os.rst:4104 msgid "Random numbers" msgstr "Nombres aléatoires" -#: ../Doc/library/os.rst:4110 +#: ../Doc/library/os.rst:4109 msgid "" "Get up to *size* random bytes. The function can return less bytes than " "requested." @@ -5893,7 +5868,7 @@ msgstr "" "Obtient *size* octets aléatoires. La fonction renvoie éventuellement moins " "d'octets que demandé." -#: ../Doc/library/os.rst:4113 +#: ../Doc/library/os.rst:4112 msgid "" "These bytes can be used to seed user-space random number generators or for " "cryptographic purposes." @@ -5901,7 +5876,7 @@ msgstr "" "Ces octets peuvent être utilisés pour initialiser un générateur de nombres " "aléatoires dans l'espace utilisateur ou pour des raisons cryptographiques." -#: ../Doc/library/os.rst:4116 +#: ../Doc/library/os.rst:4115 msgid "" "``getrandom()`` relies on entropy gathered from device drivers and other " "sources of environmental noise. Unnecessarily reading large quantities of " @@ -5913,7 +5888,7 @@ msgstr "" "grosses quantités de données aura un impact négatif sur les autres " "utilisateurs des périphériques ``/dev/random`` et ``/dev/urandom``." -#: ../Doc/library/os.rst:4121 +#: ../Doc/library/os.rst:4120 msgid "" "The flags argument is a bit mask that can contain zero or more of the " "following values ORed together: :py:data:`os.GRND_RANDOM` and :py:data:" @@ -5923,7 +5898,7 @@ msgstr "" "valeurs suivantes combinées avec un OU bit-à-bit : :py:data:`os.GRND_RANDOM` " "et :py:data:`GRND_NONBLOCK`." -#: ../Doc/library/os.rst:4125 +#: ../Doc/library/os.rst:4124 msgid "" "See also the `Linux getrandom() manual page `_." @@ -5932,16 +5907,16 @@ msgstr "" "man-pages/man2/getrandom.2.html>`_." #: ../Doc/library/os.rst:4128 -msgid "Availability: Linux 3.17 and newer." -msgstr "Disponibilité : Linux 3.17 et ultérieures." +msgid ":ref:`Availability `: Linux 3.17 and newer." +msgstr ":ref:`Disponibilité ` : Linux 3.17 et ultérieures." -#: ../Doc/library/os.rst:4134 +#: ../Doc/library/os.rst:4133 msgid "Return a string of *size* random bytes suitable for cryptographic use." msgstr "" "Renvoie une chaîne de *size* octets aléatoires utilisable dans un cadre " "cryptographique." -#: ../Doc/library/os.rst:4136 +#: ../Doc/library/os.rst:4135 msgid "" "This function returns random bytes from an OS-specific randomness source. " "The returned data should be unpredictable enough for cryptographic " @@ -5952,7 +5927,7 @@ msgstr "" "pour les applications cryptographiques, bien que la qualité dépende de " "l'implémentation du système." -#: ../Doc/library/os.rst:4140 +#: ../Doc/library/os.rst:4139 msgid "" "On Linux, if the ``getrandom()`` syscall is available, it is used in " "blocking mode: block until the system urandom entropy pool is initialized " @@ -5969,7 +5944,7 @@ msgstr "" "aléatoires en mode non-bloquant (avec l'option :data:`GRND_NONBLOCK`) ou " "attendre jusqu'à ce que la réserve d'entropie d'*urandom* soit initialisée." -#: ../Doc/library/os.rst:4147 +#: ../Doc/library/os.rst:4146 msgid "" "On a Unix-like system, random bytes are read from the ``/dev/urandom`` " "device. If the ``/dev/urandom`` device is not available or not readable, " @@ -5980,11 +5955,11 @@ msgstr "" "disponible ou n'est pas lisible, l'exception :exc:`NotImplementedError` est " "levée." -#: ../Doc/library/os.rst:4151 +#: ../Doc/library/os.rst:4150 msgid "On Windows, it will use ``CryptGenRandom()``." msgstr "Sous Windows, ``CryptGenRandom()`` est utilisée." -#: ../Doc/library/os.rst:4154 +#: ../Doc/library/os.rst:4153 msgid "" "The :mod:`secrets` module provides higher level functions. For an easy-to-" "use interface to the random number generator provided by your platform, " @@ -5994,7 +5969,7 @@ msgstr "" "interface facile à utiliser du générateur de nombres aléatoires fourni par " "votre plate-forme, veuillez regarder :class:`random.SystemRandom`." -#: ../Doc/library/os.rst:4158 +#: ../Doc/library/os.rst:4157 msgid "" "On Linux, ``getrandom()`` is now used in blocking mode to increase the " "security." @@ -6002,7 +5977,7 @@ msgstr "" "Sous Linux, ``getrandom()`` est maintenant utilisé en mode bloquant pour " "renforcer la sécurité." -#: ../Doc/library/os.rst:4162 +#: ../Doc/library/os.rst:4161 msgid "" "On Linux, if the ``getrandom()`` syscall blocks (the urandom entropy pool is " "not initialized yet), fall back on reading ``/dev/urandom``." @@ -6011,7 +5986,7 @@ msgstr "" "d'*urandom* n'est pas encore initialisée), réalise à la place une lecture de " "``/dev/urandom``." -#: ../Doc/library/os.rst:4166 +#: ../Doc/library/os.rst:4165 msgid "" "On Linux 3.17 and newer, the ``getrandom()`` syscall is now used when " "available. On OpenBSD 5.6 and newer, the C ``getentropy()`` function is now " @@ -6022,7 +5997,7 @@ msgstr "" "la fonction C ``getentropy()`` est utilisée. Ces fonctions évitent " "l'utilisation interne d'un descripteur de fichier." -#: ../Doc/library/os.rst:4174 +#: ../Doc/library/os.rst:4173 msgid "" "By default, when reading from ``/dev/random``, :func:`getrandom` blocks if " "no random bytes are available, and when reading from ``/dev/urandom``, it " @@ -6033,7 +6008,7 @@ msgstr "" "urandom``, elle bloque si la réserve d'entropie n'a pas encore été " "initialisée." -#: ../Doc/library/os.rst:4178 +#: ../Doc/library/os.rst:4177 msgid "" "If the :py:data:`GRND_NONBLOCK` flag is set, then :func:`getrandom` does not " "block in these cases, but instead immediately raises :exc:`BlockingIOError`." @@ -6041,10 +6016,32 @@ msgstr "" "Si l'option :py:data:`GRND_NONBLOCK` est activée, :func:`getrandom` ne " "bloque pas dans ces cas, mais lève immédiatement une :exc:`BlockingIOError`." -#: ../Doc/library/os.rst:4185 +#: ../Doc/library/os.rst:4184 msgid "" "If this bit is set, then random bytes are drawn from the ``/dev/" "random`` pool instead of the ``/dev/urandom`` pool." msgstr "" "Si ce bit est activé, les octets aléatoires sont puisés depuis ``/dev/" "random`` plutôt que ``/dev/urandom``." + +#~ msgid "" +#~ "An \"Availability: Unix\" note means that this function is commonly found " +#~ "on Unix systems. It does not make any claims about its existence on a " +#~ "specific operating system." +#~ msgstr "" +#~ "Une note \"Disponibilité : Unix \" signifie que cette fonction est " +#~ "communément implémentée dans les systèmes Unix. Une telle note ne prétend " +#~ "pas l'existence de la fonction sur un système d'exploitation particulier." + +#~ msgid "" +#~ "If not separately noted, all functions that claim \"Availability: Unix\" " +#~ "are supported on Mac OS X, which builds on a Unix core." +#~ msgstr "" +#~ "Si ce n'est pas mentionné séparément, toutes les fonctions se réclamant " +#~ "\"Disponibilité : Unix\" sont gérées sur Mac OS X, qui est basé sur Unix." + +#~ msgid "Availability: Unix" +#~ msgstr "Disponibilité : Unix" + +#~ msgid "Availability: Unix, Windows" +#~ msgstr "Disponibilité Unix, Windows" diff --git a/library/ossaudiodev.po b/library/ossaudiodev.po index e3922cfa7..4065b3f66 100644 --- a/library/ossaudiodev.po +++ b/library/ossaudiodev.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -174,14 +174,14 @@ msgid "" "number of bytes written. If the audio device is in blocking mode (the " "default), the entire data is always written (again, this is different from " "usual Unix device semantics). If the device is in non-blocking mode, some " -"data may not be written ---see :meth:`writeall`." +"data may not be written---see :meth:`writeall`." msgstr "" -#: ../Doc/library/ossaudiodev.rst:159 ../Doc/library/ossaudiodev.rst:173 +#: ../Doc/library/ossaudiodev.rst:158 ../Doc/library/ossaudiodev.rst:172 msgid "Writable :term:`bytes-like object` is now accepted." msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." -#: ../Doc/library/ossaudiodev.rst:165 +#: ../Doc/library/ossaudiodev.rst:164 msgid "" "Write a :term:`bytes-like object` *data* to the audio device: waits until " "the audio device is able to accept data, writes as much data as it will " @@ -192,13 +192,13 @@ msgid "" "of data supplied." msgstr "" -#: ../Doc/library/ossaudiodev.rst:177 +#: ../Doc/library/ossaudiodev.rst:176 msgid "" "Audio device objects also support the context management protocol, i.e. they " "can be used in a :keyword:`with` statement." msgstr "" -#: ../Doc/library/ossaudiodev.rst:182 +#: ../Doc/library/ossaudiodev.rst:181 msgid "" "The following methods each map to exactly one :c:func:`ioctl` system call. " "The correspondence is obvious: for example, :meth:`setfmt` corresponds to " @@ -207,103 +207,103 @@ msgid "" "underlying :c:func:`ioctl` fails, they all raise :exc:`OSError`." msgstr "" -#: ../Doc/library/ossaudiodev.rst:191 +#: ../Doc/library/ossaudiodev.rst:190 msgid "" "Put the device into non-blocking mode. Once in non-blocking mode, there is " "no way to return it to blocking mode." msgstr "" -#: ../Doc/library/ossaudiodev.rst:197 +#: ../Doc/library/ossaudiodev.rst:196 msgid "" "Return a bitmask of the audio output formats supported by the soundcard. " "Some of the formats supported by OSS are:" msgstr "" -#: ../Doc/library/ossaudiodev.rst:201 +#: ../Doc/library/ossaudiodev.rst:200 msgid "Format" msgstr "Format" -#: ../Doc/library/ossaudiodev.rst:201 ../Doc/library/ossaudiodev.rst:255 +#: ../Doc/library/ossaudiodev.rst:200 ../Doc/library/ossaudiodev.rst:254 msgid "Description" msgstr "Description" -#: ../Doc/library/ossaudiodev.rst:203 +#: ../Doc/library/ossaudiodev.rst:202 msgid ":const:`AFMT_MU_LAW`" msgstr ":const:`AFMT_MU_LAW`" -#: ../Doc/library/ossaudiodev.rst:203 +#: ../Doc/library/ossaudiodev.rst:202 msgid "" "a logarithmic encoding (used by Sun ``.au`` files and :file:`/dev/audio`)" msgstr "" -#: ../Doc/library/ossaudiodev.rst:206 +#: ../Doc/library/ossaudiodev.rst:205 msgid ":const:`AFMT_A_LAW`" msgstr ":const:`AFMT_A_LAW`" -#: ../Doc/library/ossaudiodev.rst:206 +#: ../Doc/library/ossaudiodev.rst:205 msgid "a logarithmic encoding" msgstr "" -#: ../Doc/library/ossaudiodev.rst:208 +#: ../Doc/library/ossaudiodev.rst:207 msgid ":const:`AFMT_IMA_ADPCM`" msgstr ":const:`AFMT_IMA_ADPCM`" -#: ../Doc/library/ossaudiodev.rst:208 +#: ../Doc/library/ossaudiodev.rst:207 msgid "" "a 4:1 compressed format defined by the Interactive Multimedia Association" msgstr "" -#: ../Doc/library/ossaudiodev.rst:211 +#: ../Doc/library/ossaudiodev.rst:210 msgid ":const:`AFMT_U8`" msgstr ":const:`AFMT_U8`" -#: ../Doc/library/ossaudiodev.rst:211 +#: ../Doc/library/ossaudiodev.rst:210 msgid "Unsigned, 8-bit audio" msgstr "" -#: ../Doc/library/ossaudiodev.rst:213 +#: ../Doc/library/ossaudiodev.rst:212 msgid ":const:`AFMT_S16_LE`" msgstr ":const:`AFMT_S16_LE`" -#: ../Doc/library/ossaudiodev.rst:213 +#: ../Doc/library/ossaudiodev.rst:212 msgid "" "Signed, 16-bit audio, little-endian byte order (as used by Intel processors)" msgstr "" -#: ../Doc/library/ossaudiodev.rst:216 +#: ../Doc/library/ossaudiodev.rst:215 msgid ":const:`AFMT_S16_BE`" msgstr ":const:`AFMT_S16_BE`" -#: ../Doc/library/ossaudiodev.rst:216 +#: ../Doc/library/ossaudiodev.rst:215 msgid "" "Signed, 16-bit audio, big-endian byte order (as used by 68k, PowerPC, Sparc)" msgstr "" -#: ../Doc/library/ossaudiodev.rst:219 +#: ../Doc/library/ossaudiodev.rst:218 msgid ":const:`AFMT_S8`" msgstr ":const:`AFMT_S8`" -#: ../Doc/library/ossaudiodev.rst:219 +#: ../Doc/library/ossaudiodev.rst:218 msgid "Signed, 8 bit audio" msgstr "" -#: ../Doc/library/ossaudiodev.rst:221 +#: ../Doc/library/ossaudiodev.rst:220 msgid ":const:`AFMT_U16_LE`" msgstr ":const:`AFMT_U16_LE`" -#: ../Doc/library/ossaudiodev.rst:221 +#: ../Doc/library/ossaudiodev.rst:220 msgid "Unsigned, 16-bit little-endian audio" msgstr "" -#: ../Doc/library/ossaudiodev.rst:223 +#: ../Doc/library/ossaudiodev.rst:222 msgid ":const:`AFMT_U16_BE`" msgstr ":const:`AFMT_U16_BE`" -#: ../Doc/library/ossaudiodev.rst:223 +#: ../Doc/library/ossaudiodev.rst:222 msgid "Unsigned, 16-bit big-endian audio" msgstr "" -#: ../Doc/library/ossaudiodev.rst:226 +#: ../Doc/library/ossaudiodev.rst:225 msgid "" "Consult the OSS documentation for a full list of audio formats, and note " "that most devices support only a subset of these formats. Some older " @@ -311,7 +311,7 @@ msgid "" "const:`AFMT_S16_LE`." msgstr "" -#: ../Doc/library/ossaudiodev.rst:234 +#: ../Doc/library/ossaudiodev.rst:233 msgid "" "Try to set the current audio format to *format*---see :meth:`getfmts` for a " "list. Returns the audio format that the device was set to, which may not be " @@ -319,7 +319,7 @@ msgid "" "do this by passing an \"audio format\" of :const:`AFMT_QUERY`." msgstr "" -#: ../Doc/library/ossaudiodev.rst:242 +#: ../Doc/library/ossaudiodev.rst:241 msgid "" "Set the number of output channels to *nchannels*. A value of 1 indicates " "monophonic sound, 2 stereophonic. Some devices may have more than 2 " @@ -327,68 +327,68 @@ msgid "" "of channels the device was set to." msgstr "" -#: ../Doc/library/ossaudiodev.rst:250 +#: ../Doc/library/ossaudiodev.rst:249 msgid "" "Try to set the audio sampling rate to *samplerate* samples per second. " "Returns the rate actually set. Most sound devices don't support arbitrary " "sampling rates. Common rates are:" msgstr "" -#: ../Doc/library/ossaudiodev.rst:255 +#: ../Doc/library/ossaudiodev.rst:254 msgid "Rate" msgstr "" -#: ../Doc/library/ossaudiodev.rst:257 +#: ../Doc/library/ossaudiodev.rst:256 msgid "8000" msgstr "8000" -#: ../Doc/library/ossaudiodev.rst:257 +#: ../Doc/library/ossaudiodev.rst:256 msgid "default rate for :file:`/dev/audio`" msgstr "" -#: ../Doc/library/ossaudiodev.rst:259 +#: ../Doc/library/ossaudiodev.rst:258 msgid "11025" msgstr "11025" -#: ../Doc/library/ossaudiodev.rst:259 +#: ../Doc/library/ossaudiodev.rst:258 msgid "speech recording" msgstr "" -#: ../Doc/library/ossaudiodev.rst:261 +#: ../Doc/library/ossaudiodev.rst:260 msgid "22050" msgstr "22050" -#: ../Doc/library/ossaudiodev.rst:263 +#: ../Doc/library/ossaudiodev.rst:262 msgid "44100" msgstr "44100" -#: ../Doc/library/ossaudiodev.rst:263 +#: ../Doc/library/ossaudiodev.rst:262 msgid "CD quality audio (at 16 bits/sample and 2 channels)" msgstr "" -#: ../Doc/library/ossaudiodev.rst:266 +#: ../Doc/library/ossaudiodev.rst:265 msgid "96000" msgstr "96000" -#: ../Doc/library/ossaudiodev.rst:266 +#: ../Doc/library/ossaudiodev.rst:265 msgid "DVD quality audio (at 24 bits/sample)" msgstr "" -#: ../Doc/library/ossaudiodev.rst:272 +#: ../Doc/library/ossaudiodev.rst:271 msgid "" "Wait until the sound device has played every byte in its buffer. (This " "happens implicitly when the device is closed.) The OSS documentation " "recommends closing and re-opening the device rather than using :meth:`sync`." msgstr "" -#: ../Doc/library/ossaudiodev.rst:279 +#: ../Doc/library/ossaudiodev.rst:278 msgid "" "Immediately stop playing or recording and return the device to a state where " "it can accept commands. The OSS documentation recommends closing and re-" "opening the device after calling :meth:`reset`." msgstr "" -#: ../Doc/library/ossaudiodev.rst:286 +#: ../Doc/library/ossaudiodev.rst:285 msgid "" "Tell the driver that there is likely to be a pause in the output, making it " "possible for the device to handle the pause more intelligently. You might " @@ -396,13 +396,13 @@ msgid "" "or before doing disk I/O." msgstr "" -#: ../Doc/library/ossaudiodev.rst:291 +#: ../Doc/library/ossaudiodev.rst:290 msgid "" "The following convenience methods combine several ioctls, or one ioctl and " "some simple calculations." msgstr "" -#: ../Doc/library/ossaudiodev.rst:297 +#: ../Doc/library/ossaudiodev.rst:296 msgid "" "Set the key audio sampling parameters---sample format, number of channels, " "and sampling rate---in one method call. *format*, *nchannels*, and " @@ -415,73 +415,73 @@ msgid "" "`channels`, and :meth:`speed`)." msgstr "" -#: ../Doc/library/ossaudiodev.rst:307 +#: ../Doc/library/ossaudiodev.rst:306 msgid "For example, ::" msgstr "" -#: ../Doc/library/ossaudiodev.rst:311 +#: ../Doc/library/ossaudiodev.rst:310 msgid "is equivalent to ::" msgstr "" -#: ../Doc/library/ossaudiodev.rst:320 +#: ../Doc/library/ossaudiodev.rst:319 msgid "Returns the size of the hardware buffer, in samples." msgstr "" -#: ../Doc/library/ossaudiodev.rst:325 +#: ../Doc/library/ossaudiodev.rst:324 msgid "" "Returns the number of samples that are in the hardware buffer yet to be " "played." msgstr "" -#: ../Doc/library/ossaudiodev.rst:330 +#: ../Doc/library/ossaudiodev.rst:329 msgid "" "Returns the number of samples that could be queued into the hardware buffer " "to be played without blocking." msgstr "" -#: ../Doc/library/ossaudiodev.rst:333 +#: ../Doc/library/ossaudiodev.rst:332 msgid "Audio device objects also support several read-only attributes:" msgstr "" -#: ../Doc/library/ossaudiodev.rst:338 +#: ../Doc/library/ossaudiodev.rst:337 msgid "Boolean indicating whether the device has been closed." msgstr "" -#: ../Doc/library/ossaudiodev.rst:343 +#: ../Doc/library/ossaudiodev.rst:342 msgid "String containing the name of the device file." msgstr "" -#: ../Doc/library/ossaudiodev.rst:348 +#: ../Doc/library/ossaudiodev.rst:347 msgid "The I/O mode for the file, either ``\"r\"``, ``\"rw\"``, or ``\"w\"``." msgstr "" -#: ../Doc/library/ossaudiodev.rst:354 +#: ../Doc/library/ossaudiodev.rst:353 msgid "Mixer Device Objects" msgstr "" -#: ../Doc/library/ossaudiodev.rst:356 +#: ../Doc/library/ossaudiodev.rst:355 msgid "The mixer object provides two file-like methods:" msgstr "" -#: ../Doc/library/ossaudiodev.rst:361 +#: ../Doc/library/ossaudiodev.rst:360 msgid "" "This method closes the open mixer device file. Any further attempts to use " "the mixer after this file is closed will raise an :exc:`OSError`." msgstr "" -#: ../Doc/library/ossaudiodev.rst:367 +#: ../Doc/library/ossaudiodev.rst:366 msgid "Returns the file handle number of the open mixer device file." msgstr "" -#: ../Doc/library/ossaudiodev.rst:369 +#: ../Doc/library/ossaudiodev.rst:368 msgid "Mixer objects also support the context management protocol." msgstr "" -#: ../Doc/library/ossaudiodev.rst:373 +#: ../Doc/library/ossaudiodev.rst:372 msgid "The remaining methods are specific to audio mixing:" msgstr "" -#: ../Doc/library/ossaudiodev.rst:378 +#: ../Doc/library/ossaudiodev.rst:377 msgid "" "This method returns a bitmask specifying the available mixer controls " "(\"Control\" being a specific mixable \"channel\", such as :const:" @@ -491,7 +491,7 @@ msgid "" "mixer object supports a PCM mixer, use the following Python code::" msgstr "" -#: ../Doc/library/ossaudiodev.rst:390 +#: ../Doc/library/ossaudiodev.rst:389 msgid "" "For most purposes, the :const:`SOUND_MIXER_VOLUME` (master volume) and :" "const:`SOUND_MIXER_PCM` controls should suffice---but code that uses the " @@ -499,7 +499,7 @@ msgid "" "Gravis Ultrasound, for example, :const:`SOUND_MIXER_VOLUME` does not exist." msgstr "" -#: ../Doc/library/ossaudiodev.rst:398 +#: ../Doc/library/ossaudiodev.rst:397 msgid "" "Returns a bitmask indicating stereo mixer controls. If a bit is set, the " "corresponding control is stereo; if it is unset, the control is either " @@ -507,20 +507,20 @@ msgid "" "`controls` to determine which)." msgstr "" -#: ../Doc/library/ossaudiodev.rst:403 +#: ../Doc/library/ossaudiodev.rst:402 msgid "" "See the code example for the :meth:`controls` function for an example of " "getting data from a bitmask." msgstr "" -#: ../Doc/library/ossaudiodev.rst:409 +#: ../Doc/library/ossaudiodev.rst:408 msgid "" "Returns a bitmask specifying the mixer controls that may be used to record. " "See the code example for :meth:`controls` for an example of reading from a " "bitmask." msgstr "" -#: ../Doc/library/ossaudiodev.rst:415 +#: ../Doc/library/ossaudiodev.rst:414 msgid "" "Returns the volume of a given mixer control. The returned volume is a 2-" "tuple ``(left_volume,right_volume)``. Volumes are specified as numbers from " @@ -528,13 +528,13 @@ msgid "" "still returned, but both volumes are the same." msgstr "" -#: ../Doc/library/ossaudiodev.rst:420 +#: ../Doc/library/ossaudiodev.rst:419 msgid "" "Raises :exc:`OSSAudioError` if an invalid control is specified, or :exc:" "`OSError` if an unsupported control is specified." msgstr "" -#: ../Doc/library/ossaudiodev.rst:426 +#: ../Doc/library/ossaudiodev.rst:425 msgid "" "Sets the volume for a given mixer control to ``(left,right)``. ``left`` and " "``right`` must be ints and between 0 (silent) and 100 (full volume). On " @@ -543,19 +543,19 @@ msgid "" "of some soundcard's mixers." msgstr "" -#: ../Doc/library/ossaudiodev.rst:432 +#: ../Doc/library/ossaudiodev.rst:431 msgid "" "Raises :exc:`OSSAudioError` if an invalid mixer control was specified, or if " "the specified volumes were out-of-range." msgstr "" -#: ../Doc/library/ossaudiodev.rst:438 +#: ../Doc/library/ossaudiodev.rst:437 msgid "" "This method returns a bitmask indicating which control(s) are currently " "being used as a recording source." msgstr "" -#: ../Doc/library/ossaudiodev.rst:444 +#: ../Doc/library/ossaudiodev.rst:443 msgid "" "Call this function to specify a recording source. Returns a bitmask " "indicating the new recording source (or sources) if successful; raises :exc:" diff --git a/library/othergui.po b/library/othergui.po index 0c8a14bc8..728d1bf41 100644 --- a/library/othergui.po +++ b/library/othergui.po @@ -5,28 +5,31 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-13 17:51+0200\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.0.6\n" #: ../Doc/library/othergui.rst:4 msgid "Other Graphical User Interface Packages" -msgstr "" +msgstr "Autres paquets d'interface graphique utilisateur" #: ../Doc/library/othergui.rst:6 msgid "" "Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are " "available for Python:" msgstr "" +"Des boîtes à outils multiplateformes (Windows, Mac OS X ou Unix et assimilé) " +"majeures sont disponibles pour Python :" #: ../Doc/library/othergui.rst:17 msgid "`PyGObject `_" -msgstr "" +msgstr "`PyGObject `_" #: ../Doc/library/othergui.rst:12 msgid "" @@ -36,10 +39,14 @@ msgid "" "widgets than Tkinter provides. An online `Python GTK+ 3 Tutorial `_ is available." msgstr "" +"*PyGObject* fournit une surcouche introspective pour les bibliothèques C " +"utilisant `GObject `_. Une de " +"ces bibliothèques est la collection de composants graphiques `GTK+ 3 " +"`_" #: ../Doc/library/othergui.rst:24 msgid "`PyGTK `_" -msgstr "" +msgstr "`PyGTK `_" #: ../Doc/library/othergui.rst:20 msgid "" @@ -49,10 +56,15 @@ msgid "" "online `tutorial `_ is " "available." msgstr "" +"*PyGTK* fournit une surcouche pour une version plus ancienne de la " +"bibliothèque, GTK+ 2. Cette dernière fournit une interface orientée objet " +"qui est légèrement plus haut niveau que son équivalent C. Il y a également " +"une surcouche pour `GNOME `_. Un `tutoriel `_ en ligne est disponible." #: ../Doc/library/othergui.rst:31 msgid "`PyQt `_" -msgstr "" +msgstr "`PyQt `_" #: ../Doc/library/othergui.rst:27 msgid "" @@ -61,20 +73,28 @@ msgid "" "Unix, Windows and Mac OS X. :program:`sip` is a tool for generating bindings " "for C++ libraries as Python classes, and is specifically designed for Python." msgstr "" +"*PyQt* est une surcouche de la boite à outils *Qt* basée sur :program:`sip`. " +"*Qt* est un *framework* complet de développement d'interface graphique en C+" +"+ , disponible pour Unix, Windows et Mac OS X. :program:`sip` est un outil " +"pour générer une surcouche de classes Python au dessus de bibliothèques C++, " +"et est spécifiquement conçu pour Python." #: ../Doc/library/othergui.rst:36 msgid "`PySide `_" -msgstr "" +msgstr "`PySide `_" #: ../Doc/library/othergui.rst:34 msgid "" "PySide is a newer binding to the Qt toolkit, provided by Nokia. Compared to " "PyQt, its licensing scheme is friendlier to non-open source applications." msgstr "" +"*PySide* est une nouvelle surcouche de la boîte à outils *Qt*, fournie par " +"Nokia. Comparée à *PyQT*, son système de licence est plus accommodant pour " +"les application non open source." #: ../Doc/library/othergui.rst:47 msgid "`wxPython `_" -msgstr "" +msgstr "`wxPython `_" #: ../Doc/library/othergui.rst:39 msgid "" @@ -88,6 +108,18 @@ msgid "" "drag and drop, system clipboard access, an XML-based resource format and " "more, including an ever growing library of user-contributed modules." msgstr "" +"*wxPython* est une boîte à outils d'interface graphique multiplateforme pour " +"Python qui est construite autour de la populaire boîte à outils `wxWidgets " +"`_ (anciennement *wxWindows*). En plus d'un " +"ensemble de composants graphiques complet, *wxPython* fournit des classes " +"pour de la documentation en ligne, de l'aide contextuelle, de l'impression, " +"de la consultation de HTML, du rendu graphique bas niveau, du glisser-" +"déposer, l'accès au système de presse-papier, un DSL de description de " +"ressources en XML et même plus, y compris une collection de modules " +"contribués par la communauté qui grandit sans cesse. Elle fournit un aspect " +"et une expérience native pour les applications sur Windows, Mac OS X et " +"systèmes Unix en utilisant les composants natifs de chaque plateforme quand " +"cela est possible (GTK+ sur les systèmes Unix et assimilés). " #: ../Doc/library/othergui.rst:50 msgid "" @@ -98,3 +130,11 @@ msgid "" "a much more complete list, and also for links to documents where the " "different GUI toolkits are compared." msgstr "" +"*PyGTK*, *PyQt*, et *wxPython* fournissent tous un aspect et une expérience " +"moderne ainsi que plus de composants graphiques que Tkinter. De plus, il y a " +"de nombreuses autres boîtes à outils pour Python, que ce soit " +"multiplateformes ou spécifiques à une plateforme. Consultez la page sur la " +"`programmation d'interface graphique `_ du Wiki Python pour une liste bien plus complète, ainsi " +"que des liens vers des documents où les différentes boîtes à outils " +"graphiques sont comparées." diff --git a/library/parser.po b/library/parser.po index 90658325d..eecbd1e10 100644 --- a/library/parser.po +++ b/library/parser.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-06-20 14:07+0200\n" +"Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/parser.rst:2 msgid ":mod:`parser` --- Access Python parse trees" -msgstr "" +msgstr ":mod:`parser` — Accès aux arbres syntaxiques" #: ../Doc/library/parser.rst:21 msgid "" @@ -28,6 +28,13 @@ msgid "" "in a manner identical to the code forming the application. It is also " "faster." msgstr "" +"Le module :mod:`parser` expose une interface à l'analyseur et au compilateur " +"de byte-code internes de Python. Son objectif principal est de permettre à " +"du code Python de modifier l'arbre syntaxique d'une expression Python puis " +"de la rendre exécutable. Cette approche est plus fiable que celle consistant " +"à manipuler des chaines de caractères, puisque l'analyse est faite avec le " +"même analyseur que celui utilisé pour le code de l'application. C'est aussi " +"plus rapide." #: ../Doc/library/parser.rst:30 msgid "" @@ -35,6 +42,9 @@ msgid "" "Syntax Tree (AST) generation and compilation stage, using the :mod:`ast` " "module." msgstr "" +"À partir de Python 2.5, il est plus pratique de faire ces manipulations " +"entre la génération de l'AST (*Abstract Syntax Tree*) et la compilation, en " +"utilisant le module :mod:`ast`." #: ../Doc/library/parser.rst:34 msgid "" @@ -43,6 +53,10 @@ msgid "" "editing the parse trees for Python code, but some examples of using the :mod:" "`parser` module are presented." msgstr "" +"Certaines particularités de ce module sont importantes à retenir pour en " +"faire un bon usage. Ce n'est pas un tutoriel sur la modification d'arbres " +"syntaxiques Python, mais certains exemples d'utilisation du module :mod:" +"`parser` sont présentés." #: ../Doc/library/parser.rst:39 msgid "" @@ -64,6 +78,22 @@ msgid "" "from one version to another, whereas source code has always been forward-" "compatible." msgstr "" +"Le prérequis le plus important est une bonne compréhension de la grammaire " +"Python utilisée par l'analyseur interne dont la syntaxe est documentée " +"exhaustivement dans :ref:`reference-index`. L'analyseur lui-même est généré " +"à partir d'une grammaire spécifiée dans le fichier :file:`Grammar/Grammar` " +"dans la distribution standard de Python. Les arbres syntaxiques stockés dans " +"les objets ST créés par les fonctions :func:`expr` ou :func:`suite` de ce " +"module sont directement le résultat de l'analyseur interne, alors que les " +"objets ST créés par :func:`sequence2st` simulent ces structures. N'oubliez " +"pas qu'une séquence considérée « correcte » dans une version de Python peut " +"ne pas l'être dans une autre, la grammaire de Python pouvant évoluer. " +"Cependant, déplacer du code source d'une version de Python à une autre sous " +"forme textuelle donnera toujours des arbres syntaxique corrects, à " +"l'exception qu'une version plus ancienne de l'interpréteur ne pourra pas " +"analyser les constructions récentes du langage. Les arbres syntaxiques quant " +"à eux ne sont généralement pas compatibles d'une version à l'autre, alors " +"que le code source a toujours conservé la compatibilité ascendante." #: ../Doc/library/parser.rst:56 msgid "" @@ -78,13 +108,30 @@ msgid "" "important aspect of this structure which should be noted is that keywords " "used to identify the parent node type, such as the keyword :keyword:`if` in " "an :const:`if_stmt`, are included in the node tree without any special " -"treatment. For example, the :keyword:`if` keyword is represented by the " +"treatment. For example, the :keyword:`!if` keyword is represented by the " "tuple ``(1, 'if')``, where ``1`` is the numeric value associated with all :" "const:`NAME` tokens, including variable and function names defined by the " "user. In an alternate form returned when line number information is " "requested, the same token might be represented as ``(1, 'if', 12)``, where " "the ``12`` represents the line number at which the terminal symbol was found." msgstr "" +"Chaque élément des séquences renvoyé par les fonctions :func:`st2list` ou :" +"func:`st2tuple` possède une forme simple. Les séquences représentant des " +"éléments non terminaux de la grammaire ont toujours une taille supérieure à " +"un. Le premier élément est un nombre entier représentant un élément de la " +"grammaire. Le fichier d'en-têtes C :file:`Include/graminit.h` et le module " +"Python :mod:`symbol` attribuent des noms symboliques à ces nombres. Les " +"éléments suivants représentent les composants, tels que reconnus dans la " +"chaîne analysée, de cet élément grammatical : ces séquences ont toujours la " +"même forme que leur parent. Notez que les mots clés utilisés pour identifier " +"le type du nœud parent, tel que :keyword:`if` dans un :const:`if_stmt` sont " +"inclus dans l'arbre du nœud sans traitement particulier. Par exemple, le mot " +"clé :keyword:`!if` est représenté par la paire ``(1, 'if')``, où ``1`` est " +"la valeur numérique pour les lexèmes :const:`NAME`, ce qui inclut les noms " +"de variables et de fonctions définis par l'utilisateur. Dans sa forme " +"alternative, renvoyée lorsque le numéro de la ligne est requis, le même " +"lexème peut être représenté : ``(1, 'if', 12)``, où ``12`` est le numéro de " +"la ligne sur laquelle le dernier symbole se trouve." #: ../Doc/library/parser.rst:73 msgid "" diff --git a/library/pathlib.po b/library/pathlib.po index 389bc2820..fe4967d43 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-13 15:13+0200\n" -"PO-Revision-Date: 2018-09-28 19:19+0200\n" -"Last-Translator: Vincent Poulailleau \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-18 21:54+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 1.8.7.1\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/pathlib.rst:3 msgid ":mod:`pathlib` --- Object-oriented filesystem paths" -msgstr ":mod:`pathlib` --- Chemins de système de fichiers orientés objet" +msgstr ":mod:`pathlib` — Chemins de système de fichiers orientés objet" #: ../Doc/library/pathlib.rst:10 msgid "**Source code:** :source:`Lib/pathlib.py`" @@ -74,12 +74,12 @@ msgstr "" "Vous voulez être sûr que votre code manipule des chemins sans réellement " "accéder au système d'exploitation. Dans ce cas, instancier une de ces " "classes pures peut être utile puisqu'elle ne possède tout simplement aucune " -"opérations permettant d'accéder au système d'exploitation." +"opération permettant d'accéder au système d'exploitation." #: ../Doc/library/pathlib.rst:39 msgid ":pep:`428`: The pathlib module -- object-oriented filesystem paths." msgstr "" -":pep:`428`: Le module *pathlib* -- chemins de système de fichiers orientés " +":pep:`428` : Le module *pathlib* -- chemins de système de fichiers orientés " "objet." #: ../Doc/library/pathlib.rst:42 @@ -203,7 +203,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:153 msgid "Added support for the :class:`os.PathLike` interface." -msgstr "Ajout du support de l'interface :class:`os.PathLike`" +msgstr "Ajout de la gestion de l'interface :class:`os.PathLike`." #: ../Doc/library/pathlib.rst:158 msgid "" @@ -233,7 +233,7 @@ msgid "" "classes, since they don't provide any operation that does system calls." msgstr "" "Sans tenir compte du système sur lequel vous êtes, vous pouvez instancier " -"toutes ces classes, puisqu'elle en fournissent aucune opération qui appelle " +"toutes ces classes, puisqu'elles ne fournissent aucune opération qui appelle " "le système d'exploitation." #: ../Doc/library/pathlib.rst:181 @@ -324,7 +324,7 @@ msgstr "Un tuple donnant accès aux différentes composantes du chemin ::" #: ../Doc/library/pathlib.rst:268 msgid "(note how the drive and local root are regrouped in a single part)" msgstr "" -"(notez comme le lecteur et la racine locale sont regroupée en une seule " +"(notez comme le lecteur et la racine locale sont regroupés en une seule " "partie)" #: ../Doc/library/pathlib.rst:272 @@ -440,7 +440,7 @@ msgid "" "``False`` is always returned." msgstr "" "Avec :class:`PureWindowsPath`, renvoie ``True`` si le chemin est considéré " -"réservé sous Windows, ``False`` sinon. Avec :class:`PurePosixPath`, " +"réservé sous Windows, ``False`` sinon. Avec :class:`PurePosixPath`, " "``False`` est systématiquement renvoyé." #: ../Doc/library/pathlib.rst:476 @@ -492,7 +492,7 @@ msgid "" "Compute a version of this path relative to the path represented by *other*. " "If it's impossible, ValueError is raised::" msgstr "" -"Calcule une version du chemin en relatif au chemin représenté par *other*. " +"Calcule une version du chemin en relatif au chemin représenté par *other*. " "Si c'est impossible, ValueError est levée ::" #: ../Doc/library/pathlib.rst:544 @@ -543,7 +543,7 @@ msgid "" "A subclass of :class:`Path` and :class:`PurePosixPath`, this class " "represents concrete non-Windows filesystem paths::" msgstr "" -"Une sous classe de :class:`Path` et :class:`PurePosixPath`, cette classe " +"Une sous-classe de :class:`Path` et :class:`PurePosixPath`, cette classe " "représente les chemins concrets de systèmes de fichiers non Windows ::" #: ../Doc/library/pathlib.rst:609 @@ -551,7 +551,7 @@ msgid "" "A subclass of :class:`Path` and :class:`PureWindowsPath`, this class " "represents concrete Windows filesystem paths::" msgstr "" -"Une sous classe de :class:`Path` et :class:`PureWindowsPath`, cette classe " +"Une sous-classe de :class:`Path` et :class:`PureWindowsPath`, cette classe " "représente les chemins concrets de systèmes de fichiers Windows ::" #: ../Doc/library/pathlib.rst:617 @@ -592,9 +592,8 @@ msgid "" "Return a new path object representing the user's home directory (as returned " "by :func:`os.path.expanduser` with ``~`` construct)::" msgstr "" -"Renvoie un nouveau chemin représentant le dossier *home* de l'utilisateur " -"(comme retourné par :func:`os.path.expanduser` avec la construction " -"``~`` ) ::" +"Renvoie un nouveau chemin représentant le dossier d’accueil de l'utilisateur " +"(comme renvoyé par :func:`os.path.expanduser` avec la construction ``~`` ) ::" #: ../Doc/library/pathlib.rst:665 msgid "" @@ -607,7 +606,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:679 msgid "Change the file mode and permissions, like :func:`os.chmod`::" msgstr "" -"Change le mode et les permissions du fichiers, comme :func:`os.chmod` ::" +"Change le mode et les permissions du fichier, comme :func:`os.chmod` ::" #: ../Doc/library/pathlib.rst:691 msgid "Whether the path points to an existing file or directory::" @@ -631,11 +630,12 @@ msgstr "" #: ../Doc/library/pathlib.rst:721 msgid "" -"Glob the given *pattern* in the directory represented by this path, yielding " -"all matching files (of any kind)::" +"Glob the given relative *pattern* in the directory represented by this path, " +"yielding all matching files (of any kind)::" msgstr "" -"Globalise le *pattern* fourni dans le dossier représenté par ce chemin, " -"donnant tous les fichiers correspondants (de n'importe quelle sorte) ::" +"Globalise le *pattern* relatif fourni dans le dossier représenté par ce " +"chemin, donnant tous les fichiers correspondants (de n'importe quelle " +"sorte) ::" #: ../Doc/library/pathlib.rst:729 msgid "" @@ -669,7 +669,7 @@ msgid "" "pointing to a directory), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un dossier (ou un lien symbolique " -"pointant vers un dossier), ``False`` si il pointe vers une autre sorte de " +"pointant vers un dossier), ``False`` s'il pointe vers une autre sorte de " "fichier." #: ../Doc/library/pathlib.rst:755 ../Doc/library/pathlib.rst:764 @@ -689,7 +689,7 @@ msgid "" "pointing to a regular file), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un fichier normal (ou un lien " -"symbolique pointe vers un fichier normal), ``False`` si il pointe vers une " +"symbolique pointe vers un fichier normal), ``False`` s'il pointe vers une " "autre sorte de fichier." #: ../Doc/library/pathlib.rst:770 @@ -728,8 +728,8 @@ msgid "" "Return ``True`` if the path points to a Unix socket (or a symbolic link " "pointing to a Unix socket), ``False`` if it points to another kind of file." msgstr "" -"Renvoie ``True`` si le chemin pointe vers une *socket* Unix (ou un lien " -"symbolique pointant vers une *socket* Unix), ``False`` si il pointe vers une " +"Renvoie ``True`` si le chemin pointe vers un connecteur Unix (ou un lien " +"symbolique pointant vers un connecteur Unix), ``False`` s'il pointe vers une " "autre sorte de fichier." #: ../Doc/library/pathlib.rst:799 @@ -738,7 +738,7 @@ msgid "" "a FIFO), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers une FIFO (ou un lien symbolique " -"pointant vers une FIFO), ``False`` si il pointe vers une autre sorte de " +"pointant vers une FIFO), ``False`` s'il pointe vers une autre sorte de " "fichier." #: ../Doc/library/pathlib.rst:808 @@ -747,7 +747,7 @@ msgid "" "pointing to a block device), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un périphérique (ou un lien " -"symbolique pointant vers un périphérique), ``False`` si il pointe vers une " +"symbolique pointant vers un périphérique), ``False`` s'il pointe vers une " "autre sorte de fichier." #: ../Doc/library/pathlib.rst:817 @@ -757,8 +757,8 @@ msgid "" "file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un périphérique à caractères (ou " -"un lien symbolique pointant vers un périphérique à caractères), ``False`` si " -"il pointe vers une autre sorte de fichier." +"un lien symbolique pointant vers un périphérique à caractères), ``False`` " +"s'il pointe vers une autre sorte de fichier." #: ../Doc/library/pathlib.rst:826 msgid "" @@ -801,7 +801,7 @@ msgid "" "needed; they are created with the default permissions without taking *mode* " "into account (mimicking the POSIX ``mkdir -p`` command)." msgstr "" -"Si *parents* est vrai, chaque parents de ce chemin est créé si besoin ; il " +"Si *parents* est vrai, chaque parent de ce chemin est créé si besoin ; ils " "sont créés avec les permissions par défaut sans prendre en compte *mode* " "(reproduisant la commande POSIX ``mkdir -p``)." @@ -827,8 +827,8 @@ msgid "" "(same behavior as the POSIX ``mkdir -p`` command), but only if the last path " "component is not an existing non-directory file." msgstr "" -"If *exist_ok* est vrai, les exceptions :exc:`FileExistsError` seront " -"ignorée (même comportement que la commande POSIX ``mkdir -p``), mais " +"If *exist_ok* est vrai, les exceptions :exc:`FileExistsError` seront " +"ignorées (même comportement que la commande POSIX ``mkdir -p``), mais " "seulement si le dernier segment de chemin existe et n'est pas un dossier." #: ../Doc/library/pathlib.rst:873 @@ -848,7 +848,7 @@ msgid "" "Return the name of the user owning the file. :exc:`KeyError` is raised if " "the file's uid isn't found in the system database." msgstr "" -"Renvoie le nom de l'utilisateur auquel appartient le fichier. :exc:" +"Renvoie le nom de l'utilisateur auquel appartient le fichier. :exc:" "`KeyError` est levée si l'identifiant utilisateur du fichier n'est pas " "trouvé dans la base de données du système." @@ -868,7 +868,7 @@ msgid "" "meaning as in :func:`open`." msgstr "" "Le fichier est ouvert, puis fermé. Les paramètres optionnels ont la même " -"signification que dans :func:`open`." +"signification que dans :func:`open`." #: ../Doc/library/pathlib.rst:926 msgid "" @@ -921,16 +921,16 @@ msgstr "" "résolution du chemin, :exc:`RuntimeError` est levée." #: ../Doc/library/pathlib.rst:968 -msgid "The *strict* argument." -msgstr "L'argument *strict*." +msgid "The *strict* argument (pre-3.6 behavior is strict)." +msgstr "L'argument *strict* (le comportement *pré-3.6* est strict)." #: ../Doc/library/pathlib.rst:973 msgid "" -"This is like calling :meth:`Path.glob` with \"``**``\" added in front of the " -"given *pattern*::" +"This is like calling :func:`Path.glob` with \"``**/``\" added in front of " +"the given relative *pattern*::" msgstr "" -"C'est similaire à appeler :meth:`Path.glob` avec \"``**``\" ajouté au début " -"de *pattern* ::" +"C'est similaire à appeler :func:`Path.glob` avec \"``**/``\" ajouté au début " +"du *pattern* relatif ::" #: ../Doc/library/pathlib.rst:986 msgid "Remove this directory. The directory must be empty." @@ -951,7 +951,7 @@ msgid "" "An :exc:`OSError` can be raised if either file cannot be accessed for some " "reason." msgstr "" -":exc:`OSError` peut être levée si l'un des fichier ne peut être accédé pour " +":exc:`OSError` peut être levée si l'un des fichiers ne peut être accédé pour " "quelque raison." #: ../Doc/library/pathlib.rst:1012 @@ -1004,7 +1004,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:1058 msgid "An existing file of the same name is overwritten." -msgstr "Un fichier existant au même nom est écrasé." +msgstr "Le fichier du même nom, s'il existe, est écrasé." #: ../Doc/library/pathlib.rst:1065 msgid "" @@ -1042,108 +1042,164 @@ msgstr "*os* et *os.path*" #: ../Doc/library/pathlib.rst:1089 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/library/pathlib.rst:1091 msgid ":func:`os.path.abspath`" -msgstr "" +msgstr ":func:`os.path.abspath`" #: ../Doc/library/pathlib.rst:1091 msgid ":meth:`Path.resolve`" -msgstr "" +msgstr ":meth:`Path.resolve`" #: ../Doc/library/pathlib.rst:1092 -msgid ":func:`os.getcwd`" -msgstr "" +msgid ":func:`os.chmod`" +msgstr ":func:`os.chmod`" #: ../Doc/library/pathlib.rst:1092 -msgid ":func:`Path.cwd`" -msgstr "" +msgid ":meth:`Path.chmod`" +msgstr ":meth:`Path.chmod`" #: ../Doc/library/pathlib.rst:1093 -msgid ":func:`os.path.exists`" -msgstr "" +msgid ":func:`os.mkdir`" +msgstr ":func:`os.mkdir`" #: ../Doc/library/pathlib.rst:1093 -msgid ":meth:`Path.exists`" -msgstr "" +msgid ":meth:`Path.mkdir`" +msgstr ":meth:`Path.mkdir`" #: ../Doc/library/pathlib.rst:1094 -msgid ":func:`os.path.expanduser`" -msgstr "" +msgid ":func:`os.rename`" +msgstr ":func:`os.rename`" #: ../Doc/library/pathlib.rst:1094 +msgid ":meth:`Path.rename`" +msgstr ":meth:`Path.rename`" + +#: ../Doc/library/pathlib.rst:1095 +msgid ":func:`os.replace`" +msgstr ":func:`os.replace`" + +#: ../Doc/library/pathlib.rst:1095 +msgid ":meth:`Path.replace`" +msgstr ":meth:`Path.replace`" + +#: ../Doc/library/pathlib.rst:1096 +msgid ":func:`os.rmdir`" +msgstr ":func:`os.rmdir`" + +#: ../Doc/library/pathlib.rst:1096 +msgid ":meth:`Path.rmdir`" +msgstr ":meth:`Path.rmdir`" + +#: ../Doc/library/pathlib.rst:1097 +msgid ":func:`os.remove`, :func:`os.unlink`" +msgstr ":func:`os.remove`, :func:`os.unlink`" + +#: ../Doc/library/pathlib.rst:1097 +msgid ":meth:`Path.unlink`" +msgstr ":meth:`Path.unlink`" + +#: ../Doc/library/pathlib.rst:1098 +msgid ":func:`os.getcwd`" +msgstr ":func:`os.getcwd`" + +#: ../Doc/library/pathlib.rst:1098 +msgid ":func:`Path.cwd`" +msgstr ":func:`Path.cwd`" + +#: ../Doc/library/pathlib.rst:1099 +msgid ":func:`os.path.exists`" +msgstr ":func:`os.path.exists`" + +#: ../Doc/library/pathlib.rst:1099 +msgid ":meth:`Path.exists`" +msgstr ":meth:`Path.exists`" + +#: ../Doc/library/pathlib.rst:1100 +msgid ":func:`os.path.expanduser`" +msgstr ":func:`os.path.expanduser`" + +#: ../Doc/library/pathlib.rst:1100 msgid ":meth:`Path.expanduser` and :meth:`Path.home`" msgstr ":meth:`Path.expanduser` et :meth:`Path.home`" -#: ../Doc/library/pathlib.rst:1096 +#: ../Doc/library/pathlib.rst:1102 msgid ":func:`os.path.isdir`" -msgstr "" +msgstr ":func:`os.path.isdir`" -#: ../Doc/library/pathlib.rst:1096 +#: ../Doc/library/pathlib.rst:1102 msgid ":meth:`Path.is_dir`" -msgstr "" +msgstr ":meth:`Path.is_dir`" -#: ../Doc/library/pathlib.rst:1097 +#: ../Doc/library/pathlib.rst:1103 msgid ":func:`os.path.isfile`" -msgstr "" +msgstr ":func:`os.path.isfile`" -#: ../Doc/library/pathlib.rst:1097 +#: ../Doc/library/pathlib.rst:1103 msgid ":meth:`Path.is_file`" -msgstr "" +msgstr ":meth:`Path.is_file`" -#: ../Doc/library/pathlib.rst:1098 +#: ../Doc/library/pathlib.rst:1104 msgid ":func:`os.path.islink`" -msgstr "" +msgstr ":func:`os.path.islink`" -#: ../Doc/library/pathlib.rst:1098 +#: ../Doc/library/pathlib.rst:1104 msgid ":meth:`Path.is_symlink`" -msgstr "" +msgstr ":meth:`Path.is_symlink`" -#: ../Doc/library/pathlib.rst:1099 +#: ../Doc/library/pathlib.rst:1105 msgid ":func:`os.stat`" -msgstr "" +msgstr ":func:`os.stat`" -#: ../Doc/library/pathlib.rst:1099 +#: ../Doc/library/pathlib.rst:1105 msgid ":meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group`" -msgstr "" +msgstr ":meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group`" -#: ../Doc/library/pathlib.rst:1102 +#: ../Doc/library/pathlib.rst:1108 msgid ":func:`os.path.isabs`" -msgstr "" +msgstr ":func:`os.path.isabs`" -#: ../Doc/library/pathlib.rst:1102 +#: ../Doc/library/pathlib.rst:1108 msgid ":meth:`PurePath.is_absolute`" -msgstr "" +msgstr ":meth:`PurePath.is_absolute`" -#: ../Doc/library/pathlib.rst:1103 +#: ../Doc/library/pathlib.rst:1109 msgid ":func:`os.path.join`" -msgstr "" +msgstr ":func:`os.path.join`" -#: ../Doc/library/pathlib.rst:1103 +#: ../Doc/library/pathlib.rst:1109 msgid ":func:`PurePath.joinpath`" -msgstr "" +msgstr ":func:`PurePath.joinpath`" -#: ../Doc/library/pathlib.rst:1104 +#: ../Doc/library/pathlib.rst:1110 msgid ":func:`os.path.basename`" -msgstr "" +msgstr ":func:`os.path.basename`" -#: ../Doc/library/pathlib.rst:1104 +#: ../Doc/library/pathlib.rst:1110 msgid ":data:`PurePath.name`" -msgstr "" +msgstr ":data:`PurePath.name`" -#: ../Doc/library/pathlib.rst:1105 +#: ../Doc/library/pathlib.rst:1111 msgid ":func:`os.path.dirname`" -msgstr "" +msgstr ":func:`os.path.dirname`" -#: ../Doc/library/pathlib.rst:1105 +#: ../Doc/library/pathlib.rst:1111 msgid ":data:`PurePath.parent`" -msgstr "" +msgstr ":data:`PurePath.parent`" + +#: ../Doc/library/pathlib.rst:1112 +msgid ":func:`os.path.samefile`" +msgstr ":func:`os.path.samefile`" + +#: ../Doc/library/pathlib.rst:1112 +msgid ":meth:`Path.samefile`" +msgstr ":meth:`Path.samefile`" -#: ../Doc/library/pathlib.rst:1106 +#: ../Doc/library/pathlib.rst:1113 msgid ":func:`os.path.splitext`" -msgstr "" +msgstr ":func:`os.path.splitext`" -#: ../Doc/library/pathlib.rst:1106 +#: ../Doc/library/pathlib.rst:1113 msgid ":data:`PurePath.suffix`" -msgstr "" +msgstr ":data:`PurePath.suffix`" diff --git a/library/pdb.po b/library/pdb.po index 64f1b1f85..502b1d369 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-09-28 19:18+0200\n" -"Last-Translator: Stéphane Wirtel \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-06-08 15:18+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.0.9\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/pdb.rst:4 msgid ":mod:`pdb` --- The Python Debugger" -msgstr ":mod:`pdb` --- Le débogueur Python" +msgstr ":mod:`pdb` — Le débogueur Python" #: ../Doc/library/pdb.rst:9 msgid "**Source code:** :source:`Lib/pdb.py`" @@ -117,7 +117,7 @@ msgid "" "insert ::" msgstr "" "L'usage typique pour forcer le débogueur depuis un programme s'exécutant est " -"d'insérer ::" +"d'insérer ::" #: ../Doc/library/pdb.rst:75 msgid "" @@ -130,10 +130,19 @@ msgstr "" "débogueur en utilisant la commande :pdbcmd:`continue`." #: ../Doc/library/pdb.rst:79 +msgid "" +"The built-in :func:`breakpoint()`, when called with defaults, can be used " +"instead of ``import pdb; pdb.set_trace()``." +msgstr "" +"La fonction standard :func:`breakpoint()`, quand elle est appelée avec les " +"valeurs par défaut, peut être utilisée en lieu et place de ``import pdb; pdb." +"set_trace()``." + +#: ../Doc/library/pdb.rst:83 msgid "The typical usage to inspect a crashed program is::" msgstr "L'usage typique pour inspecter un programme planté ::" -#: ../Doc/library/pdb.rst:97 +#: ../Doc/library/pdb.rst:101 msgid "" "The module defines the following functions; each enters the debugger in a " "slightly different way:" @@ -141,7 +150,7 @@ msgstr "" "Le module définit les fonctions suivantes; chacune entre dans le débogueur " "d'une manière légèrement différente:" -#: ../Doc/library/pdb.rst:102 +#: ../Doc/library/pdb.rst:106 msgid "" "Execute the *statement* (given as a string or a code object) under debugger " "control. The debugger prompt appears before any code is executed; you can " @@ -160,9 +169,9 @@ msgstr "" "expliquées ci-dessous). Les arguments *globals* et *locals* optionnels " "spécifient l'environnement dans lequel le code est exécuté; par défaut le " "dictionnaire du module :mod:`__main__` est utilisé. (Voir l'explication des " -"fonctions intégrées :func:`exec` ou :func:`eval`.)" +"fonctions natives :func:`exec` ou :func:`eval`.)" -#: ../Doc/library/pdb.rst:114 +#: ../Doc/library/pdb.rst:118 msgid "" "Evaluate the *expression* (given as a string or a code object) under " "debugger control. When :func:`runeval` returns, it returns the value of the " @@ -173,7 +182,7 @@ msgstr "" "retourne, elle renvoie la valeur de l'expression. Autrement cette fonction " "est similaire à la fonction :func:`run`." -#: ../Doc/library/pdb.rst:121 +#: ../Doc/library/pdb.rst:125 msgid "" "Call the *function* (a function or method object, not a string) with the " "given arguments. When :func:`runcall` returns, it returns whatever the " @@ -185,7 +194,7 @@ msgstr "" "retourne ce que l'appel de fonctionne a renvoyé. L'invite de débogage " "apparaît dès que la fonction est entrée." -#: ../Doc/library/pdb.rst:129 +#: ../Doc/library/pdb.rst:133 msgid "" "Enter the debugger at the calling stack frame. This is useful to hard-code " "a breakpoint at a given point in a program, even if the code is not " @@ -197,11 +206,11 @@ msgstr "" "autrement débogué (par exemple, quand une assertion échoue). S'il est donné, " "*header* est affiché sur la console juste avant que le débogage commence." -#: ../Doc/library/pdb.rst:134 +#: ../Doc/library/pdb.rst:138 msgid "The keyword-only argument *header*." msgstr "L’argument *keyword-only* *header*." -#: ../Doc/library/pdb.rst:140 +#: ../Doc/library/pdb.rst:144 msgid "" "Enter post-mortem debugging of the given *traceback* object. If no " "*traceback* is given, it uses the one of the exception that is currently " @@ -213,7 +222,7 @@ msgstr "" "traitement (une exception doit être gérée si la valeur par défaut doit être " "utilisée)." -#: ../Doc/library/pdb.rst:148 +#: ../Doc/library/pdb.rst:152 msgid "" "Enter post-mortem debugging of the traceback found in :data:`sys." "last_traceback`." @@ -221,7 +230,7 @@ msgstr "" "Entre le débogage post-mortem de la trace trouvé dans :data:`sys. " "last_traceback`." -#: ../Doc/library/pdb.rst:152 +#: ../Doc/library/pdb.rst:156 msgid "" "The ``run*`` functions and :func:`set_trace` are aliases for instantiating " "the :class:`Pdb` class and calling the method of the same name. If you want " @@ -231,11 +240,11 @@ msgstr "" "la classe :class:`Pdb` et appeler la méthode du même nom. Si vous souhaitez " "accéder à d'autres fonctionnalités, vous devez le faire vous-même ::" -#: ../Doc/library/pdb.rst:159 +#: ../Doc/library/pdb.rst:163 msgid ":class:`Pdb` is the debugger class." msgstr "Le classe du débogueur est la classe :class:`Pdb`." -#: ../Doc/library/pdb.rst:161 +#: ../Doc/library/pdb.rst:165 msgid "" "The *completekey*, *stdin* and *stdout* arguments are passed to the " "underlying :class:`cmd.Cmd` class; see the description there." @@ -243,7 +252,7 @@ msgstr "" "Les arguments *completekey*, *stdin* et *stdout* sont transmis à la classe " "sous-jacente :class:`cmd.Cmd`; voir la description ici." -#: ../Doc/library/pdb.rst:164 +#: ../Doc/library/pdb.rst:168 msgid "" "The *skip* argument, if given, must be an iterable of glob-style module name " "patterns. The debugger will not step into frames that originate in a module " @@ -253,7 +262,7 @@ msgstr "" "de style *glob*. Le débogueur n'entrera pas dans les *frames* qui " "proviennent d'un module qui correspond à l'un de ces motifs. [1]_" -#: ../Doc/library/pdb.rst:168 +#: ../Doc/library/pdb.rst:172 msgid "" "By default, Pdb sets a handler for the SIGINT signal (which is sent when the " "user presses :kbd:`Ctrl-C` on the console) when you give a ``continue`` " @@ -267,7 +276,7 @@ msgstr "" "à nouveau dans le débogueur en appuyant sur :kbd:`Ctrl-C`. Si vous voulez " "que Pdb ne touche pas le gestionnaire SIGINT, assignez *nosigint* à *True*." -#: ../Doc/library/pdb.rst:173 +#: ../Doc/library/pdb.rst:177 msgid "" "The *readrc* argument defaults to true and controls whether Pdb will load ." "pdbrc files from the filesystem." @@ -275,34 +284,34 @@ msgstr "" "L'argument *readrc* vaut *True* par défaut et contrôle si Pdb chargera les " "fichiers *.pdbrc* depuis le système de fichiers." -#: ../Doc/library/pdb.rst:176 +#: ../Doc/library/pdb.rst:180 msgid "Example call to enable tracing with *skip*::" msgstr "Exemple d'appel pour activer le traçage avec *skip* ::" -#: ../Doc/library/pdb.rst:180 +#: ../Doc/library/pdb.rst:184 msgid "The *skip* argument." msgstr "L'argument *skip*." -#: ../Doc/library/pdb.rst:183 +#: ../Doc/library/pdb.rst:187 msgid "" "The *nosigint* argument. Previously, a SIGINT handler was never set by Pdb." msgstr "" "L'argument *nosigint*. Auparavant, un gestionnaire SIGINT n'était jamais " "configuré par Pdb." -#: ../Doc/library/pdb.rst:187 +#: ../Doc/library/pdb.rst:191 msgid "The *readrc* argument." msgstr "L'argument *readrc*." -#: ../Doc/library/pdb.rst:195 +#: ../Doc/library/pdb.rst:199 msgid "See the documentation for the functions explained above." msgstr "Voir la documentation pour les fonctions expliquées ci-dessus." -#: ../Doc/library/pdb.rst:201 +#: ../Doc/library/pdb.rst:205 msgid "Debugger Commands" msgstr "Commande du débogueur" -#: ../Doc/library/pdb.rst:203 +#: ../Doc/library/pdb.rst:207 msgid "" "The commands recognized by the debugger are listed below. Most commands can " "be abbreviated to one or two letters as indicated; e.g. ``h(elp)`` means " @@ -323,7 +332,7 @@ msgstr "" "pas être insérés. Les alternatives dans la syntaxe de la commande sont " "séparés par une barre verticale (``|``)." -#: ../Doc/library/pdb.rst:212 +#: ../Doc/library/pdb.rst:216 msgid "" "Entering a blank line repeats the last command entered. Exception: if the " "last command was a :pdbcmd:`list` command, the next 11 lines are listed." @@ -332,7 +341,7 @@ msgstr "" "dernière commande était la commande :pdbcmd:`list`, les 11 prochaines lignes " "sont affichées." -#: ../Doc/library/pdb.rst:215 +#: ../Doc/library/pdb.rst:219 msgid "" "Commands that the debugger doesn't recognize are assumed to be Python " "statements and are executed in the context of the program being debugged. " @@ -351,7 +360,7 @@ msgstr "" "instruction, le nom de l'exception est affiché mais l'état du débogueur " "n'est pas modifié." -#: ../Doc/library/pdb.rst:223 +#: ../Doc/library/pdb.rst:227 msgid "" "The debugger supports :ref:`aliases `. Aliases can have " "parameters which allows one a certain level of adaptability to the context " @@ -361,7 +370,7 @@ msgstr "" "avoir des paramètres qui permettent un certain niveau d'adaptabilité au " "contexte étudié." -#: ../Doc/library/pdb.rst:227 +#: ../Doc/library/pdb.rst:231 msgid "" "Multiple commands may be entered on a single line, separated by ``;;``. (A " "single ``;`` is not used as it is the separator for multiple commands in a " @@ -376,7 +385,7 @@ msgstr "" "divisée à la première paire de ``;;`` paire, même si il est au milieu d'une " "chaîne de caractères." -#: ../Doc/library/pdb.rst:237 +#: ../Doc/library/pdb.rst:241 msgid "" "If a file :file:`.pdbrc` exists in the user's home directory or in the " "current directory, it is read in and executed as if it had been typed at the " @@ -384,14 +393,14 @@ msgid "" "exist, the one in the home directory is read first and aliases defined there " "can be overridden by the local file." msgstr "" -"Si un fichier :file:`.pdbrc` existe dans le répertoire de l'utilisateur ou " -"dans le répertoire courant, il est lu et exécuté comme si il avait été écrit " -"dans l'invite du débogueur. C'est particulièrement utile pour les alias. Si " -"les deux fichiers existent, celui dans le répertoire de l'utilisateur est lu " -"en premier et les alias définit là peuvent être surchargés par le fichier " -"local." +"Si un fichier :file:`.pdbrc` existe dans le répertoire d'accueil de " +"l'utilisateur ou dans le répertoire courant, il est lu et exécuté comme si " +"il avait été écrit dans l'invite du débogueur. C'est particulièrement utile " +"pour les alias. Si les deux fichiers existent, celui dans le répertoire " +"d’accueil de l’utilisateur est lu en premier et les alias définis dedans " +"peuvent être surchargés par le fichier local." -#: ../Doc/library/pdb.rst:243 +#: ../Doc/library/pdb.rst:247 msgid "" ":file:`.pdbrc` can now contain commands that continue debugging, such as :" "pdbcmd:`continue` or :pdbcmd:`next`. Previously, these commands had no " @@ -401,7 +410,7 @@ msgstr "" "continue le débogage, comme :pdbcmd:`continue` ou :pdbcmd:`next`. " "Précédemment, ces commandes n'avaient aucun effet." -#: ../Doc/library/pdb.rst:251 +#: ../Doc/library/pdb.rst:255 msgid "" "Without argument, print the list of available commands. With a *command* as " "argument, print help about that command. ``help pdb`` displays the full " @@ -415,7 +424,7 @@ msgstr "" "Puisque l'argument *command* doit être un identificateur, ``help exec`` doit " "être entré pour obtenir de l'aide sur la commande ``!``." -#: ../Doc/library/pdb.rst:259 +#: ../Doc/library/pdb.rst:263 msgid "" "Print a stack trace, with the most recent frame at the bottom. An arrow " "indicates the current frame, which determines the context of most commands." @@ -424,7 +433,7 @@ msgstr "" "indique le *frame* courant, qui détermine le contexte de la plupart des " "commandes." -#: ../Doc/library/pdb.rst:264 +#: ../Doc/library/pdb.rst:268 msgid "" "Move the current frame *count* (default one) levels down in the stack trace " "(to a newer frame)." @@ -432,7 +441,7 @@ msgstr "" "Déplace le niveau de la *frame* courante *count* (par défaut un) vers le bas " "dans la trace de pile (vers une *frame* plus récente)." -#: ../Doc/library/pdb.rst:269 +#: ../Doc/library/pdb.rst:273 msgid "" "Move the current frame *count* (default one) levels up in the stack trace " "(to an older frame)." @@ -440,7 +449,7 @@ msgstr "" "Déplace le niveau de la *frame* courante *count* (par défaut un) vers le " "haut dans la trace de pile (vers une *frame* plus ancienne)." -#: ../Doc/library/pdb.rst:274 +#: ../Doc/library/pdb.rst:278 msgid "" "With a *lineno* argument, set a break there in the current file. With a " "*function* argument, set a break at the first executable statement within " @@ -458,7 +467,7 @@ msgstr "" "est recherché sur :data:`sys.path`. Notez que chaque point d'arrêt reçoit un " "numéro auquel se réfèrent toutes les autres commandes de point d'arrêt." -#: ../Doc/library/pdb.rst:281 +#: ../Doc/library/pdb.rst:285 msgid "" "If a second argument is present, it is an expression which must evaluate to " "true before the breakpoint is honored." @@ -466,7 +475,7 @@ msgstr "" "Si un second argument est présent, c'est une expression qui doit évaluer à " "*True* avant que le point d'arrêt ne soit honoré." -#: ../Doc/library/pdb.rst:284 +#: ../Doc/library/pdb.rst:288 msgid "" "Without argument, list all breaks, including for each breakpoint, the number " "of times that breakpoint has been hit, the current ignore count, and the " @@ -476,7 +485,7 @@ msgstr "" "nombre de fois qu'un point d'arrêt a été atteint, le nombre de ignore, et la " "condition associée le cas échéant." -#: ../Doc/library/pdb.rst:290 +#: ../Doc/library/pdb.rst:294 msgid "" "Temporary breakpoint, which is removed automatically when it is first hit. " "The arguments are the same as for :pdbcmd:`break`." @@ -484,7 +493,7 @@ msgstr "" "Point d'arrêt temporaire, qui est enlevé automatiquement au premier passage. " "Les arguments sont les mêmes que pour :pdbcmd:`break`." -#: ../Doc/library/pdb.rst:295 +#: ../Doc/library/pdb.rst:299 msgid "" "With a *filename:lineno* argument, clear all the breakpoints at this line. " "With a space separated list of breakpoint numbers, clear those breakpoints. " @@ -495,7 +504,7 @@ msgstr "" "efface ces points d'arrêt. Sans argument, efface tous les points d'arrêt " "(mais demande d'abord confirmation)." -#: ../Doc/library/pdb.rst:301 +#: ../Doc/library/pdb.rst:305 msgid "" "Disable the breakpoints given as a space separated list of breakpoint " "numbers. Disabling a breakpoint means it cannot cause the program to stop " @@ -508,11 +517,11 @@ msgstr "" "différence d'effacer un point d'arrêt, il reste dans la liste des points " "d'arrêt et peut être (ré)activé." -#: ../Doc/library/pdb.rst:308 +#: ../Doc/library/pdb.rst:312 msgid "Enable the breakpoints specified." msgstr "Active les points d'arrêt spécifiés." -#: ../Doc/library/pdb.rst:312 +#: ../Doc/library/pdb.rst:316 msgid "" "Set the ignore count for the given breakpoint number. If count is omitted, " "the ignore count is set to 0. A breakpoint becomes active when the ignore " @@ -526,7 +535,7 @@ msgstr "" "fois que le point d'arrêt est atteint et que le point d'arrêt n'est pas " "désactivé et que toute condition associée est évaluée comme vraie." -#: ../Doc/library/pdb.rst:320 +#: ../Doc/library/pdb.rst:324 msgid "" "Set a new *condition* for the breakpoint, an expression which must evaluate " "to true before the breakpoint is honored. If *condition* is absent, any " @@ -537,7 +546,7 @@ msgstr "" "*condition* est absente, toute condition existante est supprimée, c'est-à-" "dire que le point d'arrêt est rendu inconditionnel." -#: ../Doc/library/pdb.rst:326 +#: ../Doc/library/pdb.rst:330 msgid "" "Specify a list of commands for breakpoint number *bpnumber*. The commands " "themselves appear on the following lines. Type a line containing just " @@ -547,7 +556,7 @@ msgstr "" "Les commandes elles-mêmes apparaissent sur les lignes suivantes. Tapez une " "ligne contenant juste ``end`` pour terminer les commandes. Un exemple ::" -#: ../Doc/library/pdb.rst:335 +#: ../Doc/library/pdb.rst:339 msgid "" "To remove all commands from a breakpoint, type ``commands`` and follow it " "immediately with ``end``; that is, give no commands." @@ -555,14 +564,14 @@ msgstr "" "Pour supprimer toutes les commandes depuis un point d'arrêt, écrivez " "``commands`` suivi immédiatement de ``end`` ; ceci supprime les commandes." -#: ../Doc/library/pdb.rst:338 +#: ../Doc/library/pdb.rst:342 msgid "" "With no *bpnumber* argument, ``commands`` refers to the last breakpoint set." msgstr "" "Sans argument *bpnumber*, ``commands`` se réfère au dernier point d'arrêt " "défini." -#: ../Doc/library/pdb.rst:340 +#: ../Doc/library/pdb.rst:344 msgid "" "You can use breakpoint commands to start your program up again. Simply use " "the :pdbcmd:`continue` command, or :pdbcmd:`step`, or any other command that " @@ -572,7 +581,7 @@ msgstr "" "programme. Utilisez simplement la commande :pdbcmd:`continue`, ou :pdbcmd:" "`step`, ou toute autre commande qui reprend l'exécution." -#: ../Doc/library/pdb.rst:344 +#: ../Doc/library/pdb.rst:348 msgid "" "Specifying any command resuming execution (currently :pdbcmd:`continue`, :" "pdbcmd:`step`, :pdbcmd:`next`, :pdbcmd:`return`, :pdbcmd:`jump`, :pdbcmd:" @@ -591,7 +600,7 @@ msgstr "" "sa propre liste de commandes, conduisant à des ambiguïtés sur la liste à " "exécuter." -#: ../Doc/library/pdb.rst:353 +#: ../Doc/library/pdb.rst:357 msgid "" "If you use the 'silent' command in the command list, the usual message about " "stopping at a breakpoint is not printed. This may be desirable for " @@ -606,7 +615,7 @@ msgstr "" "n'affiche quoi que ce soit, vous ne voyez aucun signe indiquant que le point " "de rupture a été atteint." -#: ../Doc/library/pdb.rst:360 +#: ../Doc/library/pdb.rst:364 msgid "" "Execute the current line, stop at the first possible occasion (either in a " "function that is called or on the next line in the current function)." @@ -615,7 +624,7 @@ msgstr "" "dans une fonction qui est appelée, soit sur la ligne suivante de la fonction " "courante)." -#: ../Doc/library/pdb.rst:365 +#: ../Doc/library/pdb.rst:369 msgid "" "Continue execution until the next line in the current function is reached or " "it returns. (The difference between :pdbcmd:`next` and :pdbcmd:`step` is " @@ -629,7 +638,7 @@ msgstr "" "tandis que :pdbcmd:`next` exécute les fonctions appelées à (presque) pleine " "vitesse, ne s'arrêtant qu'à la ligne suivante dans la fonction courante.)" -#: ../Doc/library/pdb.rst:373 +#: ../Doc/library/pdb.rst:377 msgid "" "Without argument, continue execution until the line with a number greater " "than the current one is reached." @@ -637,7 +646,7 @@ msgstr "" "Sans argument, continue l'exécution jusqu'à ce que la ligne avec un nombre " "supérieur au nombre actuel soit atteinte." -#: ../Doc/library/pdb.rst:376 +#: ../Doc/library/pdb.rst:380 msgid "" "With a line number, continue execution until a line with a number greater or " "equal to that is reached. In both cases, also stop when the current frame " @@ -647,21 +656,21 @@ msgstr "" "un numéro supérieur ou égal à celui-ci soit atteinte. Dans les deux cas, " "arrête également lorsque la *frame* courante revient." -#: ../Doc/library/pdb.rst:380 +#: ../Doc/library/pdb.rst:384 msgid "Allow giving an explicit line number." msgstr "Permet de donner un numéro de ligne explicite." -#: ../Doc/library/pdb.rst:385 +#: ../Doc/library/pdb.rst:389 msgid "Continue execution until the current function returns." msgstr "Continue l'exécution jusqu'au retour de la fonction courante." -#: ../Doc/library/pdb.rst:389 +#: ../Doc/library/pdb.rst:393 msgid "Continue execution, only stop when a breakpoint is encountered." msgstr "" "Continue l'exécution, seulement s'arrête quand un point d'arrêt est " "rencontré." -#: ../Doc/library/pdb.rst:393 +#: ../Doc/library/pdb.rst:397 msgid "" "Set the next line that will be executed. Only available in the bottom-most " "frame. This lets you jump back and execute code again, or jump forward to " @@ -672,7 +681,7 @@ msgstr "" "nouveau le code, ou de passer en avant pour sauter le code que vous ne " "voulez pas exécuter." -#: ../Doc/library/pdb.rst:397 +#: ../Doc/library/pdb.rst:401 msgid "" "It should be noted that not all jumps are allowed -- for instance it is not " "possible to jump into the middle of a :keyword:`for` loop or out of a :" @@ -682,7 +691,7 @@ msgstr "" "n'est pas possible de sauter au milieu d'une boucle :keyword:`for` ou en " "dehors d'une clause :keyword:`finally`." -#: ../Doc/library/pdb.rst:403 +#: ../Doc/library/pdb.rst:407 msgid "" "List source code for the current file. Without arguments, list 11 lines " "around the current line or continue the previous listing. With ``.`` as " @@ -697,7 +706,7 @@ msgstr "" "liste la plage donnée; si le second argument est inférieur au premier, il " "est interprété comme un compte." -#: ../Doc/library/pdb.rst:409 +#: ../Doc/library/pdb.rst:413 msgid "" "The current line in the current frame is indicated by ``->``. If an " "exception is being debugged, the line where the exception was originally " @@ -709,11 +718,11 @@ msgstr "" "initialement levée ou propagée est indiquée par ``>>``, si elle diffère de " "la ligne courante." -#: ../Doc/library/pdb.rst:414 +#: ../Doc/library/pdb.rst:418 msgid "The ``>>`` marker." msgstr "Le marqueur ``>>``." -#: ../Doc/library/pdb.rst:419 +#: ../Doc/library/pdb.rst:423 msgid "" "List all source code for the current function or frame. Interesting lines " "are marked as for :pdbcmd:`list`." @@ -721,15 +730,15 @@ msgstr "" "Liste le code source de la fonction ou du bloc courant. Les lignes " "intéressantes sont marquées comme pour :pdbcmd:`list`." -#: ../Doc/library/pdb.rst:426 +#: ../Doc/library/pdb.rst:430 msgid "Print the argument list of the current function." msgstr "Affiche la liste d'arguments de la fonction courante." -#: ../Doc/library/pdb.rst:430 +#: ../Doc/library/pdb.rst:434 msgid "Evaluate the *expression* in the current context and print its value." msgstr "Évalue l'*expression* dans le contexte courant et affiche sa valeur." -#: ../Doc/library/pdb.rst:434 +#: ../Doc/library/pdb.rst:438 msgid "" "``print()`` can also be used, but is not a debugger command --- this " "executes the Python :func:`print` function." @@ -737,7 +746,7 @@ msgstr "" "``print()`` peut aussi être utilisée, mais n'est pas une commande du " "débogueur --- il exécute la fonction Python :func:`print`." -#: ../Doc/library/pdb.rst:440 +#: ../Doc/library/pdb.rst:444 msgid "" "Like the :pdbcmd:`p` command, except the value of the expression is pretty-" "printed using the :mod:`pprint` module." @@ -745,15 +754,15 @@ msgstr "" "Comme la commande :pdbcmd:`p`, sauf que la valeur de l'expression est " "joliment affiché en utilisant le module :mod:`pprint`." -#: ../Doc/library/pdb.rst:445 +#: ../Doc/library/pdb.rst:449 msgid "Print the type of the *expression*." msgstr "Affiche le type de l'*expression*." -#: ../Doc/library/pdb.rst:449 +#: ../Doc/library/pdb.rst:453 msgid "Try to get source code for the given object and display it." msgstr "Essaie d'obtenir le code source pour l'objet donné et l'affiche." -#: ../Doc/library/pdb.rst:455 +#: ../Doc/library/pdb.rst:459 msgid "" "Display the value of the expression if it changed, each time execution stops " "in the current frame." @@ -761,12 +770,12 @@ msgstr "" "Affiche la valeur de l'expression si elle a changée, chaque fois que " "l'exécution s'arrête dans la *frame* courante." -#: ../Doc/library/pdb.rst:458 +#: ../Doc/library/pdb.rst:462 msgid "Without expression, list all display expressions for the current frame." msgstr "" "Sans expression, liste toutes les expressions pour la *frame* courante." -#: ../Doc/library/pdb.rst:464 +#: ../Doc/library/pdb.rst:468 msgid "" "Do not display the expression any more in the current frame. Without " "expression, clear all display expressions for the current frame." @@ -774,7 +783,7 @@ msgstr "" "N'affiche plus l'expression dans la *frame* courante. Sans expression, " "efface toutes les expressions d'affichage de la *frame* courante." -#: ../Doc/library/pdb.rst:471 +#: ../Doc/library/pdb.rst:475 msgid "" "Start an interactive interpreter (using the :mod:`code` module) whose global " "namespace contains all the (global and local) names found in the current " @@ -784,7 +793,7 @@ msgstr "" "l'espace de nommage global contient tous les noms (*global* et *local*) " "trouvés dans la portée courante." -#: ../Doc/library/pdb.rst:481 +#: ../Doc/library/pdb.rst:485 msgid "" "Create an alias called *name* that executes *command*. The command must " "*not* be enclosed in quotes. Replaceable parameters can be indicated by ``" @@ -799,7 +808,7 @@ msgstr "" "courant pour *name* est affiché. Si aucun argument n'est donné, tous les " "alias sont listés." -#: ../Doc/library/pdb.rst:487 +#: ../Doc/library/pdb.rst:491 msgid "" "Aliases may be nested and can contain anything that can be legally typed at " "the pdb prompt. Note that internal pdb commands *can* be overridden by " @@ -814,7 +823,7 @@ msgstr "" "récursivement au premier mot de la ligne de commande; tous les autres mots " "de la ligne sont laissés seuls." -#: ../Doc/library/pdb.rst:493 +#: ../Doc/library/pdb.rst:497 msgid "" "As an example, here are two useful aliases (especially when placed in the :" "file:`.pdbrc` file)::" @@ -822,11 +831,11 @@ msgstr "" "Comme un exemple, voici deux alias utiles (spécialement quand il est placé " "dans le fichier :file:`.pdbrc`) ::" -#: ../Doc/library/pdb.rst:503 +#: ../Doc/library/pdb.rst:507 msgid "Delete the specified alias." msgstr "Supprime l'alias spécifié." -#: ../Doc/library/pdb.rst:507 +#: ../Doc/library/pdb.rst:511 msgid "" "Execute the (one-line) *statement* in the context of the current stack " "frame. The exclamation point can be omitted unless the first word of the " @@ -840,7 +849,7 @@ msgstr "" "définir une variable globale, vous pouvez préfixer la commande d'assignation " "avec une instruction :keyword:`global` sur la même ligne, par exemple ::" -#: ../Doc/library/pdb.rst:519 +#: ../Doc/library/pdb.rst:523 msgid "" "Restart the debugged Python program. If an argument is supplied, it is " "split with :mod:`shlex` and the result is used as the new :data:`sys.argv`. " @@ -852,15 +861,15 @@ msgstr "" "`sys.argv`. L'historique, les points d'arrêt, les actions et les options du " "débogueur sont préservés. :pdbcmd:`restart` est un alias pour :pdbcmd:`run`." -#: ../Doc/library/pdb.rst:526 +#: ../Doc/library/pdb.rst:530 msgid "Quit from the debugger. The program being executed is aborted." msgstr "Quitte le débogueur. Le programme exécuté est arrêté." -#: ../Doc/library/pdb.rst:530 +#: ../Doc/library/pdb.rst:534 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/pdb.rst:531 +#: ../Doc/library/pdb.rst:535 msgid "" "Whether a frame is considered to originate in a certain module is determined " "by the ``__name__`` in the frame globals." diff --git a/library/pickle.po b/library/pickle.po index b10ac9d10..9afa57065 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-02-26 12:09+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.0.6\n" #: ../Doc/library/pickle.rst:2 msgid ":mod:`pickle` --- Python object serialization" -msgstr "" +msgstr ":mod:`pickle` --- Module de sérialisation d'objets Python" #: ../Doc/library/pickle.rst:10 msgid "**Source code:** :source:`Lib/pickle.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/pickle.py`" #: ../Doc/library/pickle.rst:22 msgid "" @@ -33,6 +34,15 @@ msgid "" "\"serialization\", \"marshalling,\" [#]_ or \"flattening\"; however, to " "avoid confusion, the terms used here are \"pickling\" and \"unpickling\"." msgstr "" +"Le module :mod:`pickle` implémente des protocoles binaires de sérialisation " +"et dé-sérialisation d'objets Python. Le *pickling* est le procédé par lequel " +"une hiérarchie d'objets Python est convertie en flux d'octets. *unpickling* " +"est l'opération inverse, par laquelle un flux d'octets (à partir d'un :term:" +"`binary file` ou :term:`bytes-like object`) est converti en hiérarchie " +"d'objets. *Pickling* (et *unpickling*) sont alternativement connus sous les " +"termes de \"sérialisation\", de \"*marshalling*\" [#]_ ou encore de " +"\"*flattening*\". Cependant pour éviter la confusion les termes utilisés ici " +"sont *pickling* et *unpickling*." #: ../Doc/library/pickle.rst:33 msgid "" @@ -40,14 +50,17 @@ msgid "" "constructed data. Never unpickle data received from an untrusted or " "unauthenticated source." msgstr "" +"Le module :mod:`pickle` n'est pas sécurisé contre les données erronées et " +"malicieusement construites. Ne jamais *unpickle* la donnée reçue à partir " +"d'une source non fiable ou non authentifiée." #: ../Doc/library/pickle.rst:39 msgid "Relationship to other Python modules" -msgstr "" +msgstr "Relations aux autres modules python" #: ../Doc/library/pickle.rst:42 msgid "Comparison with ``marshal``" -msgstr "" +msgstr "Comparaison avec ``marshal``" #: ../Doc/library/pickle.rst:44 msgid "" @@ -56,12 +69,18 @@ msgid "" "Python objects. :mod:`marshal` exists primarily to support Python's :file:`." "pyc` files." msgstr "" +"Python possède un module de bas niveau en sérialisation appelé :mod:" +"`marshal`, mais en général il est préférable d'utiliser :mod:`pickle` pour " +"sérialiser des objets Python. :mod:`marshal` existe principalement pour " +"gérer les fichiers Python en :file:`.pyc`." #: ../Doc/library/pickle.rst:49 msgid "" "The :mod:`pickle` module differs from :mod:`marshal` in several significant " "ways:" msgstr "" +"Le module :mod:`pickle` diffère du module :mod:`marshal` sur plusieurs " +"aspects :" #: ../Doc/library/pickle.rst:51 msgid "" @@ -69,6 +88,9 @@ msgid "" "serialized, so that later references to the same object won't be serialized " "again. :mod:`marshal` doesn't do this." msgstr "" +"Le module :mod:`pickle` garde la trace des objets qu'il a déjà sérialisés, " +"pour faire en sorte que les prochaines références à cet objet ne soient pas " +"sérialisées à nouveau. :mod:`marshal` ne le fait pas." #: ../Doc/library/pickle.rst:55 msgid "" @@ -82,6 +104,14 @@ msgid "" "Shared objects remain shared, which can be very important for mutable " "objects." msgstr "" +"Ça a des implications sur les objets partagés et les objets récursifs. Les " +"objets récursifs sont des objets qui contiennent des références à eux-mêmes. " +"Ceux-ci ne sont pas gérées par marshal : lui donner un objet récursif va le " +"faire planter. Un objet est partagé lorsque que plusieurs références " +"pointent dessus, depuis différents endroits dans la hiérarchie sérialisée. " +"Le module :mod:`pickle` repère ces partages et ne stocke ces objets qu'une " +"seule fois. Les objets partagés restent ainsi partagés, ce qui peut être " +"très important pour les objets muables." #: ../Doc/library/pickle.rst:64 msgid "" @@ -90,6 +120,11 @@ msgid "" "transparently, however the class definition must be importable and live in " "the same module as when the object was stored." msgstr "" +":mod:`marshal` ne peut être utilisé pour la sérialisation et l'instanciation " +"de classes définies par les utilisateurs. :mod:`pickle` peut sauvegarder et " +"restaurer les instances de classes de manière transparente. Cependant la " +"définition de classe doit être importable et lancée dans le même module et " +"de la même manière que lors de son importation." #: ../Doc/library/pickle.rst:69 msgid "" @@ -98,37 +133,40 @@ msgid "" "`.pyc` files, the Python implementers reserve the right to change the " "serialization format in non-backwards compatible ways should the need arise. " "The :mod:`pickle` serialization format is guaranteed to be backwards " -"compatible across Python releases." +"compatible across Python releases provided a compatible pickle protocol is " +"chosen and pickling and unpickling code deals with Python 2 to Python 3 type " +"differences if your data is crossing that unique breaking change language " +"boundary." msgstr "" -#: ../Doc/library/pickle.rst:77 +#: ../Doc/library/pickle.rst:79 msgid "Comparison with ``json``" msgstr "" -#: ../Doc/library/pickle.rst:79 +#: ../Doc/library/pickle.rst:81 msgid "" "There are fundamental differences between the pickle protocols and `JSON " "(JavaScript Object Notation) `_:" msgstr "" -#: ../Doc/library/pickle.rst:82 +#: ../Doc/library/pickle.rst:84 msgid "" "JSON is a text serialization format (it outputs unicode text, although most " "of the time it is then encoded to ``utf-8``), while pickle is a binary " "serialization format;" msgstr "" -#: ../Doc/library/pickle.rst:86 +#: ../Doc/library/pickle.rst:88 msgid "JSON is human-readable, while pickle is not;" msgstr "" -#: ../Doc/library/pickle.rst:88 +#: ../Doc/library/pickle.rst:90 msgid "" "JSON is interoperable and widely used outside of the Python ecosystem, while " "pickle is Python-specific;" msgstr "" -#: ../Doc/library/pickle.rst:91 +#: ../Doc/library/pickle.rst:93 msgid "" "JSON, by default, can only represent a subset of the Python built-in types, " "and no custom classes; pickle can represent an extremely large number of " @@ -137,17 +175,17 @@ msgid "" "`specific object APIs `)." msgstr "" -#: ../Doc/library/pickle.rst:98 +#: ../Doc/library/pickle.rst:100 msgid "" "The :mod:`json` module: a standard library module allowing JSON " "serialization and deserialization." msgstr "" -#: ../Doc/library/pickle.rst:105 +#: ../Doc/library/pickle.rst:107 msgid "Data stream format" msgstr "" -#: ../Doc/library/pickle.rst:110 +#: ../Doc/library/pickle.rst:112 msgid "" "The data format used by :mod:`pickle` is Python-specific. This has the " "advantage that there are no restrictions imposed by external standards such " @@ -156,47 +194,47 @@ msgid "" "objects." msgstr "" -#: ../Doc/library/pickle.rst:115 +#: ../Doc/library/pickle.rst:117 msgid "" "By default, the :mod:`pickle` data format uses a relatively compact binary " "representation. If you need optimal size characteristics, you can " "efficiently :doc:`compress ` pickled data." msgstr "" -#: ../Doc/library/pickle.rst:119 +#: ../Doc/library/pickle.rst:121 msgid "" "The module :mod:`pickletools` contains tools for analyzing data streams " "generated by :mod:`pickle`. :mod:`pickletools` source code has extensive " "comments about opcodes used by pickle protocols." msgstr "" -#: ../Doc/library/pickle.rst:123 +#: ../Doc/library/pickle.rst:125 msgid "" "There are currently 5 different protocols which can be used for pickling. " "The higher the protocol used, the more recent the version of Python needed " "to read the pickle produced." msgstr "" -#: ../Doc/library/pickle.rst:127 +#: ../Doc/library/pickle.rst:129 msgid "" "Protocol version 0 is the original \"human-readable\" protocol and is " "backwards compatible with earlier versions of Python." msgstr "" -#: ../Doc/library/pickle.rst:130 +#: ../Doc/library/pickle.rst:132 msgid "" "Protocol version 1 is an old binary format which is also compatible with " "earlier versions of Python." msgstr "" -#: ../Doc/library/pickle.rst:133 +#: ../Doc/library/pickle.rst:135 msgid "" "Protocol version 2 was introduced in Python 2.3. It provides much more " "efficient pickling of :term:`new-style class`\\es. Refer to :pep:`307` for " "information about improvements brought by protocol 2." msgstr "" -#: ../Doc/library/pickle.rst:137 +#: ../Doc/library/pickle.rst:139 msgid "" "Protocol version 3 was added in Python 3.0. It has explicit support for :" "class:`bytes` objects and cannot be unpickled by Python 2.x. This is the " @@ -204,7 +242,7 @@ msgid "" "Python 3 versions is required." msgstr "" -#: ../Doc/library/pickle.rst:142 +#: ../Doc/library/pickle.rst:144 msgid "" "Protocol version 4 was added in Python 3.4. It adds support for very large " "objects, pickling more kinds of objects, and some data format " @@ -212,7 +250,7 @@ msgid "" "brought by protocol 4." msgstr "" -#: ../Doc/library/pickle.rst:148 +#: ../Doc/library/pickle.rst:150 msgid "" "Serialization is a more primitive notion than persistence; although :mod:" "`pickle` reads and writes file objects, it does not handle the issue of " @@ -226,11 +264,11 @@ msgid "" "and unpickle objects on DBM-style database files." msgstr "" -#: ../Doc/library/pickle.rst:161 +#: ../Doc/library/pickle.rst:163 msgid "Module Interface" msgstr "" -#: ../Doc/library/pickle.rst:163 +#: ../Doc/library/pickle.rst:165 msgid "" "To serialize an object hierarchy, you simply call the :func:`dumps` " "function. Similarly, to de-serialize a data stream, you call the :func:" @@ -239,37 +277,37 @@ msgid "" "object, respectively." msgstr "" -#: ../Doc/library/pickle.rst:168 +#: ../Doc/library/pickle.rst:170 msgid "The :mod:`pickle` module provides the following constants:" msgstr "" -#: ../Doc/library/pickle.rst:173 +#: ../Doc/library/pickle.rst:175 msgid "" "An integer, the highest :ref:`protocol version ` " "available. This value can be passed as a *protocol* value to functions :" "func:`dump` and :func:`dumps` as well as the :class:`Pickler` constructor." msgstr "" -#: ../Doc/library/pickle.rst:180 +#: ../Doc/library/pickle.rst:182 msgid "" "An integer, the default :ref:`protocol version ` used for " "pickling. May be less than :data:`HIGHEST_PROTOCOL`. Currently the default " "protocol is 3, a new protocol designed for Python 3." msgstr "" -#: ../Doc/library/pickle.rst:185 +#: ../Doc/library/pickle.rst:187 msgid "" "The :mod:`pickle` module provides the following functions to make the " "pickling process more convenient:" msgstr "" -#: ../Doc/library/pickle.rst:190 +#: ../Doc/library/pickle.rst:192 msgid "" "Write a pickled representation of *obj* to the open :term:`file object` " "*file*. This is equivalent to ``Pickler(file, protocol).dump(obj)``." msgstr "" -#: ../Doc/library/pickle.rst:193 ../Doc/library/pickle.rst:289 +#: ../Doc/library/pickle.rst:195 ../Doc/library/pickle.rst:297 msgid "" "The optional *protocol* argument, an integer, tells the pickler to use the " "given protocol; supported protocols are 0 to :data:`HIGHEST_PROTOCOL`. If " @@ -277,7 +315,7 @@ msgid "" "number is specified, :data:`HIGHEST_PROTOCOL` is selected." msgstr "" -#: ../Doc/library/pickle.rst:198 ../Doc/library/pickle.rst:294 +#: ../Doc/library/pickle.rst:200 ../Doc/library/pickle.rst:302 msgid "" "The *file* argument must have a write() method that accepts a single bytes " "argument. It can thus be an on-disk file opened for binary writing, an :" @@ -285,40 +323,40 @@ msgid "" "interface." msgstr "" -#: ../Doc/library/pickle.rst:203 ../Doc/library/pickle.rst:299 +#: ../Doc/library/pickle.rst:205 ../Doc/library/pickle.rst:307 msgid "" "If *fix_imports* is true and *protocol* is less than 3, pickle will try to " "map the new Python 3 names to the old module names used in Python 2, so that " "the pickle data stream is readable with Python 2." msgstr "" -#: ../Doc/library/pickle.rst:209 +#: ../Doc/library/pickle.rst:211 msgid "" "Return the pickled representation of the object as a :class:`bytes` object, " "instead of writing it to a file." msgstr "" -#: ../Doc/library/pickle.rst:212 +#: ../Doc/library/pickle.rst:214 msgid "" "Arguments *protocol* and *fix_imports* have the same meaning as in :func:" "`dump`." msgstr "" -#: ../Doc/library/pickle.rst:217 +#: ../Doc/library/pickle.rst:219 msgid "" "Read a pickled object representation from the open :term:`file object` " "*file* and return the reconstituted object hierarchy specified therein. This " "is equivalent to ``Unpickler(file).load()``." msgstr "" -#: ../Doc/library/pickle.rst:221 ../Doc/library/pickle.rst:244 +#: ../Doc/library/pickle.rst:223 ../Doc/library/pickle.rst:249 msgid "" "The protocol version of the pickle is detected automatically, so no protocol " "argument is needed. Bytes past the pickled object's representation are " "ignored." msgstr "" -#: ../Doc/library/pickle.rst:225 +#: ../Doc/library/pickle.rst:227 msgid "" "The argument *file* must have two methods, a read() method that takes an " "integer argument, and a readline() method that requires no arguments. Both " @@ -327,8 +365,7 @@ msgid "" "that meets this interface." msgstr "" -#: ../Doc/library/pickle.rst:231 ../Doc/library/pickle.rst:248 -#: ../Doc/library/pickle.rst:367 +#: ../Doc/library/pickle.rst:233 ../Doc/library/pickle.rst:253 msgid "" "Optional keyword arguments are *fix_imports*, *encoding* and *errors*, which " "are used to control compatibility support for pickle stream generated by " @@ -336,71 +373,74 @@ msgid "" "names to the new names used in Python 3. The *encoding* and *errors* tell " "pickle how to decode 8-bit string instances pickled by Python 2; these " "default to 'ASCII' and 'strict', respectively. The *encoding* can be " -"'bytes' to read these 8-bit string instances as bytes objects." +"'bytes' to read these 8-bit string instances as bytes objects. Using " +"``encoding='latin1'`` is required for unpickling NumPy arrays and instances " +"of :class:`~datetime.datetime`, :class:`~datetime.date` and :class:" +"`~datetime.time` pickled by Python 2." msgstr "" -#: ../Doc/library/pickle.rst:241 +#: ../Doc/library/pickle.rst:246 msgid "" "Read a pickled object hierarchy from a :class:`bytes` object and return the " "reconstituted object hierarchy specified therein." msgstr "" -#: ../Doc/library/pickle.rst:257 +#: ../Doc/library/pickle.rst:265 msgid "The :mod:`pickle` module defines three exceptions:" msgstr "" -#: ../Doc/library/pickle.rst:261 +#: ../Doc/library/pickle.rst:269 msgid "" "Common base class for the other pickling exceptions. It inherits :exc:" "`Exception`." msgstr "" -#: ../Doc/library/pickle.rst:266 +#: ../Doc/library/pickle.rst:274 msgid "" "Error raised when an unpicklable object is encountered by :class:`Pickler`. " "It inherits :exc:`PickleError`." msgstr "" -#: ../Doc/library/pickle.rst:269 +#: ../Doc/library/pickle.rst:277 msgid "" "Refer to :ref:`pickle-picklable` to learn what kinds of objects can be " "pickled." msgstr "" -#: ../Doc/library/pickle.rst:274 +#: ../Doc/library/pickle.rst:282 msgid "" "Error raised when there is a problem unpickling an object, such as a data " "corruption or a security violation. It inherits :exc:`PickleError`." msgstr "" -#: ../Doc/library/pickle.rst:277 +#: ../Doc/library/pickle.rst:285 msgid "" "Note that other exceptions may also be raised during unpickling, including " "(but not necessarily limited to) AttributeError, EOFError, ImportError, and " "IndexError." msgstr "" -#: ../Doc/library/pickle.rst:282 +#: ../Doc/library/pickle.rst:290 msgid "" "The :mod:`pickle` module exports two classes, :class:`Pickler` and :class:" "`Unpickler`:" msgstr "" -#: ../Doc/library/pickle.rst:287 +#: ../Doc/library/pickle.rst:295 msgid "This takes a binary file for writing a pickle data stream." msgstr "" -#: ../Doc/library/pickle.rst:305 +#: ../Doc/library/pickle.rst:313 msgid "" "Write a pickled representation of *obj* to the open file object given in the " "constructor." msgstr "" -#: ../Doc/library/pickle.rst:310 +#: ../Doc/library/pickle.rst:318 msgid "Do nothing by default. This exists so a subclass can override it." msgstr "" -#: ../Doc/library/pickle.rst:312 +#: ../Doc/library/pickle.rst:320 msgid "" "If :meth:`persistent_id` returns ``None``, *obj* is pickled as usual. Any " "other value causes :class:`Pickler` to emit the returned value as a " @@ -409,11 +449,11 @@ msgid "" "by :meth:`persistent_id` cannot itself have a persistent ID." msgstr "" -#: ../Doc/library/pickle.rst:318 ../Doc/library/pickle.rst:389 +#: ../Doc/library/pickle.rst:326 ../Doc/library/pickle.rst:397 msgid "See :ref:`pickle-persistent` for details and examples of uses." msgstr "" -#: ../Doc/library/pickle.rst:322 +#: ../Doc/library/pickle.rst:330 msgid "" "A pickler object's dispatch table is a registry of *reduction functions* of " "the kind which can be declared using :func:`copyreg.pickle`. It is a " @@ -422,7 +462,7 @@ msgid "" "should conform to the same interface as a :meth:`__reduce__` method." msgstr "" -#: ../Doc/library/pickle.rst:330 +#: ../Doc/library/pickle.rst:338 msgid "" "By default, a pickler object will not have a :attr:`dispatch_table` " "attribute, and it will instead use the global dispatch table managed by the :" @@ -433,11 +473,11 @@ msgid "" "table for instances of that class." msgstr "" -#: ../Doc/library/pickle.rst:339 +#: ../Doc/library/pickle.rst:347 msgid "See :ref:`pickle-dispatch` for usage examples." msgstr "" -#: ../Doc/library/pickle.rst:345 +#: ../Doc/library/pickle.rst:353 msgid "" "Deprecated. Enable fast mode if set to a true value. The fast mode disables " "the usage of memo, therefore speeding the pickling process by not generating " @@ -445,21 +485,21 @@ msgid "" "objects, doing otherwise will cause :class:`Pickler` to recurse infinitely." msgstr "" -#: ../Doc/library/pickle.rst:351 +#: ../Doc/library/pickle.rst:359 msgid "Use :func:`pickletools.optimize` if you need more compact pickles." msgstr "" -#: ../Doc/library/pickle.rst:356 +#: ../Doc/library/pickle.rst:364 msgid "This takes a binary file for reading a pickle data stream." msgstr "" -#: ../Doc/library/pickle.rst:358 +#: ../Doc/library/pickle.rst:366 msgid "" "The protocol version of the pickle is detected automatically, so no protocol " "argument is needed." msgstr "" -#: ../Doc/library/pickle.rst:361 +#: ../Doc/library/pickle.rst:369 msgid "" "The argument *file* must have two methods, a read() method that takes an " "integer argument, and a readline() method that requires no arguments. Both " @@ -468,25 +508,36 @@ msgid "" "custom object that meets this interface." msgstr "" -#: ../Doc/library/pickle.rst:377 +#: ../Doc/library/pickle.rst:375 +msgid "" +"Optional keyword arguments are *fix_imports*, *encoding* and *errors*, which " +"are used to control compatibility support for pickle stream generated by " +"Python 2. If *fix_imports* is true, pickle will try to map the old Python 2 " +"names to the new names used in Python 3. The *encoding* and *errors* tell " +"pickle how to decode 8-bit string instances pickled by Python 2; these " +"default to 'ASCII' and 'strict', respectively. The *encoding* can be " +"'bytes' to read these 8-bit string instances as bytes objects." +msgstr "" + +#: ../Doc/library/pickle.rst:385 msgid "" "Read a pickled object representation from the open file object given in the " "constructor, and return the reconstituted object hierarchy specified " "therein. Bytes past the pickled object's representation are ignored." msgstr "" -#: ../Doc/library/pickle.rst:383 +#: ../Doc/library/pickle.rst:391 msgid "Raise an :exc:`UnpicklingError` by default." msgstr "" -#: ../Doc/library/pickle.rst:385 +#: ../Doc/library/pickle.rst:393 msgid "" "If defined, :meth:`persistent_load` should return the object specified by " "the persistent ID *pid*. If an invalid persistent ID is encountered, an :" "exc:`UnpicklingError` should be raised." msgstr "" -#: ../Doc/library/pickle.rst:393 +#: ../Doc/library/pickle.rst:401 msgid "" "Import *module* if necessary and return the object called *name* from it, " "where the *module* and *name* arguments are :class:`str` objects. Note, " @@ -494,59 +545,59 @@ msgid "" "functions." msgstr "" -#: ../Doc/library/pickle.rst:398 +#: ../Doc/library/pickle.rst:406 msgid "" "Subclasses may override this to gain control over what type of objects and " "how they can be loaded, potentially reducing security risks. Refer to :ref:" "`pickle-restrict` for details." msgstr "" -#: ../Doc/library/pickle.rst:406 +#: ../Doc/library/pickle.rst:414 msgid "What can be pickled and unpickled?" msgstr "" -#: ../Doc/library/pickle.rst:408 +#: ../Doc/library/pickle.rst:416 msgid "The following types can be pickled:" msgstr "" -#: ../Doc/library/pickle.rst:410 +#: ../Doc/library/pickle.rst:418 msgid "``None``, ``True``, and ``False``" msgstr "``None``, ``True``, and ``False``" -#: ../Doc/library/pickle.rst:412 +#: ../Doc/library/pickle.rst:420 msgid "integers, floating point numbers, complex numbers" msgstr "" -#: ../Doc/library/pickle.rst:414 +#: ../Doc/library/pickle.rst:422 msgid "strings, bytes, bytearrays" msgstr "" -#: ../Doc/library/pickle.rst:416 +#: ../Doc/library/pickle.rst:424 msgid "tuples, lists, sets, and dictionaries containing only picklable objects" msgstr "" -#: ../Doc/library/pickle.rst:418 +#: ../Doc/library/pickle.rst:426 msgid "" "functions defined at the top level of a module (using :keyword:`def`, not :" "keyword:`lambda`)" msgstr "" -#: ../Doc/library/pickle.rst:421 +#: ../Doc/library/pickle.rst:429 msgid "built-in functions defined at the top level of a module" msgstr "" -#: ../Doc/library/pickle.rst:423 +#: ../Doc/library/pickle.rst:431 msgid "classes that are defined at the top level of a module" msgstr "" -#: ../Doc/library/pickle.rst:425 +#: ../Doc/library/pickle.rst:433 msgid "" "instances of such classes whose :attr:`~object.__dict__` or the result of " "calling :meth:`__getstate__` is picklable (see section :ref:`pickle-inst` " "for details)." msgstr "" -#: ../Doc/library/pickle.rst:429 +#: ../Doc/library/pickle.rst:437 msgid "" "Attempts to pickle unpicklable objects will raise the :exc:`PicklingError` " "exception; when this happens, an unspecified number of bytes may have " @@ -556,7 +607,7 @@ msgid "" "limit with :func:`sys.setrecursionlimit`." msgstr "" -#: ../Doc/library/pickle.rst:436 +#: ../Doc/library/pickle.rst:444 msgid "" "Note that functions (built-in and user-defined) are pickled by \"fully " "qualified\" name reference, not by value. [#]_ This means that only the " @@ -567,7 +618,7 @@ msgid "" "exception will be raised. [#]_" msgstr "" -#: ../Doc/library/pickle.rst:443 +#: ../Doc/library/pickle.rst:451 msgid "" "Similarly, classes are pickled by named reference, so the same restrictions " "in the unpickling environment apply. Note that none of the class's code or " @@ -575,13 +626,13 @@ msgid "" "not restored in the unpickling environment::" msgstr "" -#: ../Doc/library/pickle.rst:453 +#: ../Doc/library/pickle.rst:461 msgid "" "These restrictions are why picklable functions and classes must be defined " "in the top level of a module." msgstr "" -#: ../Doc/library/pickle.rst:456 +#: ../Doc/library/pickle.rst:464 msgid "" "Similarly, when class instances are pickled, their class's code and data are " "not pickled along with them. Only the instance data are pickled. This is " @@ -593,17 +644,17 @@ msgid "" "method." msgstr "" -#: ../Doc/library/pickle.rst:468 +#: ../Doc/library/pickle.rst:476 msgid "Pickling Class Instances" msgstr "" -#: ../Doc/library/pickle.rst:472 +#: ../Doc/library/pickle.rst:480 msgid "" "In this section, we describe the general mechanisms available to you to " "define, customize, and control how class instances are pickled and unpickled." msgstr "" -#: ../Doc/library/pickle.rst:475 +#: ../Doc/library/pickle.rst:483 msgid "" "In most cases, no additional code is needed to make instances picklable. By " "default, pickle will retrieve the class and the attributes of an instance " @@ -613,13 +664,13 @@ msgid "" "following code shows an implementation of this behaviour::" msgstr "" -#: ../Doc/library/pickle.rst:490 +#: ../Doc/library/pickle.rst:498 msgid "" "Classes can alter the default behaviour by providing one or several special " "methods:" msgstr "" -#: ../Doc/library/pickle.rst:495 +#: ../Doc/library/pickle.rst:503 msgid "" "In protocols 2 and newer, classes that implements the :meth:" "`__getnewargs_ex__` method can dictate the values passed to the :meth:" @@ -629,37 +680,37 @@ msgid "" "passed to the :meth:`__new__` method upon unpickling." msgstr "" -#: ../Doc/library/pickle.rst:503 +#: ../Doc/library/pickle.rst:511 msgid "" "You should implement this method if the :meth:`__new__` method of your class " "requires keyword-only arguments. Otherwise, it is recommended for " "compatibility to implement :meth:`__getnewargs__`." msgstr "" -#: ../Doc/library/pickle.rst:507 +#: ../Doc/library/pickle.rst:515 msgid ":meth:`__getnewargs_ex__` is now used in protocols 2 and 3." msgstr "" -#: ../Doc/library/pickle.rst:513 +#: ../Doc/library/pickle.rst:521 msgid "" "This method serves a similar purpose as :meth:`__getnewargs_ex__`, but " "supports only positional arguments. It must return a tuple of arguments " "``args`` which will be passed to the :meth:`__new__` method upon unpickling." msgstr "" -#: ../Doc/library/pickle.rst:517 +#: ../Doc/library/pickle.rst:525 msgid "" ":meth:`__getnewargs__` will not be called if :meth:`__getnewargs_ex__` is " "defined." msgstr "" -#: ../Doc/library/pickle.rst:520 +#: ../Doc/library/pickle.rst:528 msgid "" "Before Python 3.6, :meth:`__getnewargs__` was called instead of :meth:" "`__getnewargs_ex__` in protocols 2 and 3." msgstr "" -#: ../Doc/library/pickle.rst:527 +#: ../Doc/library/pickle.rst:535 msgid "" "Classes can further influence how their instances are pickled; if the class " "defines the method :meth:`__getstate__`, it is called and the returned " @@ -668,7 +719,7 @@ msgid "" "the instance's :attr:`~object.__dict__` is pickled as usual." msgstr "" -#: ../Doc/library/pickle.rst:536 +#: ../Doc/library/pickle.rst:544 msgid "" "Upon unpickling, if the class defines :meth:`__setstate__`, it is called " "with the unpickled state. In that case, there is no requirement for the " @@ -676,19 +727,19 @@ msgid "" "dictionary and its items are assigned to the new instance's dictionary." msgstr "" -#: ../Doc/library/pickle.rst:543 +#: ../Doc/library/pickle.rst:551 msgid "" "If :meth:`__getstate__` returns a false value, the :meth:`__setstate__` " "method will not be called upon unpickling." msgstr "" -#: ../Doc/library/pickle.rst:547 +#: ../Doc/library/pickle.rst:555 msgid "" "Refer to the section :ref:`pickle-state` for more information about how to " "use the methods :meth:`__getstate__` and :meth:`__setstate__`." msgstr "" -#: ../Doc/library/pickle.rst:552 +#: ../Doc/library/pickle.rst:560 msgid "" "At unpickling time, some methods like :meth:`__getattr__`, :meth:" "`__getattribute__`, or :meth:`__setattr__` may be called upon the instance. " @@ -698,7 +749,7 @@ msgid "" "`__init__` will be called." msgstr "" -#: ../Doc/library/pickle.rst:561 +#: ../Doc/library/pickle.rst:569 msgid "" "As we shall see, pickle does not use directly the methods described above. " "In fact, these methods are part of the copy protocol which implements the :" @@ -707,7 +758,7 @@ msgid "" "objects. [#]_" msgstr "" -#: ../Doc/library/pickle.rst:567 +#: ../Doc/library/pickle.rst:575 msgid "" "Although powerful, implementing :meth:`__reduce__` directly in your classes " "is error prone. For this reason, class designers should use the high-level " @@ -717,14 +768,14 @@ msgid "" "pickling or both." msgstr "" -#: ../Doc/library/pickle.rst:576 +#: ../Doc/library/pickle.rst:584 msgid "" "The interface is currently defined as follows. The :meth:`__reduce__` " "method takes no argument and shall return either a string or preferably a " "tuple (the returned object is often referred to as the \"reduce value\")." msgstr "" -#: ../Doc/library/pickle.rst:580 +#: ../Doc/library/pickle.rst:588 msgid "" "If a string is returned, the string should be interpreted as the name of a " "global variable. It should be the object's local name relative to its " @@ -732,26 +783,26 @@ msgid "" "object's module. This behaviour is typically useful for singletons." msgstr "" -#: ../Doc/library/pickle.rst:585 +#: ../Doc/library/pickle.rst:593 msgid "" "When a tuple is returned, it must be between two and five items long. " "Optional items can either be omitted, or ``None`` can be provided as their " "value. The semantics of each item are in order:" msgstr "" -#: ../Doc/library/pickle.rst:591 +#: ../Doc/library/pickle.rst:599 msgid "" "A callable object that will be called to create the initial version of the " "object." msgstr "" -#: ../Doc/library/pickle.rst:594 +#: ../Doc/library/pickle.rst:602 msgid "" "A tuple of arguments for the callable object. An empty tuple must be given " "if the callable does not accept any argument." msgstr "" -#: ../Doc/library/pickle.rst:597 +#: ../Doc/library/pickle.rst:605 msgid "" "Optionally, the object's state, which will be passed to the object's :meth:" "`__setstate__` method as previously described. If the object has no such " @@ -759,7 +810,7 @@ msgid "" "object's :attr:`~object.__dict__` attribute." msgstr "" -#: ../Doc/library/pickle.rst:602 +#: ../Doc/library/pickle.rst:610 msgid "" "Optionally, an iterator (and not a sequence) yielding successive items. " "These items will be appended to the object either using ``obj.append(item)`` " @@ -771,7 +822,7 @@ msgid "" "must be supported.)" msgstr "" -#: ../Doc/library/pickle.rst:611 +#: ../Doc/library/pickle.rst:619 msgid "" "Optionally, an iterator (not a sequence) yielding successive key-value " "pairs. These items will be stored to the object using ``obj[key] = " @@ -779,7 +830,7 @@ msgid "" "by other classes as long as they implement :meth:`__setitem__`." msgstr "" -#: ../Doc/library/pickle.rst:619 +#: ../Doc/library/pickle.rst:627 msgid "" "Alternatively, a :meth:`__reduce_ex__` method may be defined. The only " "difference is this method should take a single integer argument, the " @@ -789,11 +840,11 @@ msgid "" "provide backwards-compatible reduce values for older Python releases." msgstr "" -#: ../Doc/library/pickle.rst:631 +#: ../Doc/library/pickle.rst:639 msgid "Persistence of External Objects" msgstr "" -#: ../Doc/library/pickle.rst:637 +#: ../Doc/library/pickle.rst:645 msgid "" "For the benefit of object persistence, the :mod:`pickle` module supports the " "notion of a reference to an object outside the pickled data stream. Such " @@ -802,7 +853,7 @@ msgid "" "(for any newer protocol)." msgstr "" -#: ../Doc/library/pickle.rst:643 +#: ../Doc/library/pickle.rst:651 msgid "" "The resolution of such persistent IDs is not defined by the :mod:`pickle` " "module; it will delegate this resolution to the user defined methods on the " @@ -810,7 +861,7 @@ msgid "" "persistent_load` respectively." msgstr "" -#: ../Doc/library/pickle.rst:648 +#: ../Doc/library/pickle.rst:656 msgid "" "To pickle objects that have an external persistent id, the pickler must have " "a custom :meth:`~Pickler.persistent_id` method that takes an object as an " @@ -821,59 +872,59 @@ msgid "" "persistent ID." msgstr "" -#: ../Doc/library/pickle.rst:655 +#: ../Doc/library/pickle.rst:663 msgid "" "To unpickle external objects, the unpickler must have a custom :meth:" "`~Unpickler.persistent_load` method that takes a persistent ID object and " "returns the referenced object." msgstr "" -#: ../Doc/library/pickle.rst:659 +#: ../Doc/library/pickle.rst:667 msgid "" "Here is a comprehensive example presenting how persistent ID can be used to " "pickle external objects by reference." msgstr "" -#: ../Doc/library/pickle.rst:667 +#: ../Doc/library/pickle.rst:675 msgid "Dispatch Tables" msgstr "" -#: ../Doc/library/pickle.rst:669 +#: ../Doc/library/pickle.rst:677 msgid "" "If one wants to customize pickling of some classes without disturbing any " "other code which depends on pickling, then one can create a pickler with a " "private dispatch table." msgstr "" -#: ../Doc/library/pickle.rst:673 +#: ../Doc/library/pickle.rst:681 msgid "" "The global dispatch table managed by the :mod:`copyreg` module is available " "as :data:`copyreg.dispatch_table`. Therefore, one may choose to use a " "modified copy of :data:`copyreg.dispatch_table` as a private dispatch table." msgstr "" -#: ../Doc/library/pickle.rst:678 +#: ../Doc/library/pickle.rst:686 msgid "For example ::" -msgstr "Par exemple ::" +msgstr "Par exemple ::" -#: ../Doc/library/pickle.rst:685 +#: ../Doc/library/pickle.rst:693 msgid "" "creates an instance of :class:`pickle.Pickler` with a private dispatch table " "which handles the ``SomeClass`` class specially. Alternatively, the code ::" msgstr "" -#: ../Doc/library/pickle.rst:695 +#: ../Doc/library/pickle.rst:703 msgid "" "does the same, but all instances of ``MyPickler`` will by default share the " "same dispatch table. The equivalent code using the :mod:`copyreg` module " "is ::" msgstr "" -#: ../Doc/library/pickle.rst:706 +#: ../Doc/library/pickle.rst:714 msgid "Handling Stateful Objects" msgstr "" -#: ../Doc/library/pickle.rst:712 +#: ../Doc/library/pickle.rst:720 msgid "" "Here's an example that shows how to modify pickling behavior for a class. " "The :class:`TextReader` class opens a text file, and returns the line number " @@ -885,15 +936,15 @@ msgid "" "behavior. ::" msgstr "" -#: ../Doc/library/pickle.rst:758 +#: ../Doc/library/pickle.rst:766 msgid "A sample usage might be something like this::" msgstr "" -#: ../Doc/library/pickle.rst:773 +#: ../Doc/library/pickle.rst:781 msgid "Restricting Globals" msgstr "" -#: ../Doc/library/pickle.rst:778 +#: ../Doc/library/pickle.rst:786 msgid "" "By default, unpickling will import any class or function that it finds in " "the pickle data. For many applications, this behaviour is unacceptable as " @@ -901,7 +952,7 @@ msgid "" "what this hand-crafted pickle data stream does when loaded::" msgstr "" -#: ../Doc/library/pickle.rst:788 +#: ../Doc/library/pickle.rst:796 msgid "" "In this example, the unpickler imports the :func:`os.system` function and " "then apply the string argument \"echo hello world\". Although this example " @@ -909,7 +960,7 @@ msgid "" "system." msgstr "" -#: ../Doc/library/pickle.rst:792 +#: ../Doc/library/pickle.rst:800 msgid "" "For this reason, you may want to control what gets unpickled by customizing :" "meth:`Unpickler.find_class`. Unlike its name suggests, :meth:`Unpickler." @@ -918,17 +969,17 @@ msgid "" "restrict them to a safe subset." msgstr "" -#: ../Doc/library/pickle.rst:798 +#: ../Doc/library/pickle.rst:806 msgid "" "Here is an example of an unpickler allowing only few safe classes from the :" "mod:`builtins` module to be loaded::" msgstr "" -#: ../Doc/library/pickle.rst:827 +#: ../Doc/library/pickle.rst:835 msgid "A sample usage of our unpickler working has intended::" msgstr "" -#: ../Doc/library/pickle.rst:846 +#: ../Doc/library/pickle.rst:854 msgid "" "As our examples shows, you have to be careful with what you allow to be " "unpickled. Therefore if security is a concern, you may want to consider " @@ -936,97 +987,97 @@ msgid "" "party solutions." msgstr "" -#: ../Doc/library/pickle.rst:853 +#: ../Doc/library/pickle.rst:861 msgid "Performance" -msgstr "" +msgstr "Performances" -#: ../Doc/library/pickle.rst:855 +#: ../Doc/library/pickle.rst:863 msgid "" "Recent versions of the pickle protocol (from protocol 2 and upwards) feature " "efficient binary encodings for several common features and built-in types. " "Also, the :mod:`pickle` module has a transparent optimizer written in C." msgstr "" -#: ../Doc/library/pickle.rst:863 +#: ../Doc/library/pickle.rst:871 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/pickle.rst:865 +#: ../Doc/library/pickle.rst:873 msgid "" "For the simplest code, use the :func:`dump` and :func:`load` functions. ::" msgstr "" -#: ../Doc/library/pickle.rst:881 +#: ../Doc/library/pickle.rst:889 msgid "The following example reads the resulting pickled data. ::" msgstr "" -#: ../Doc/library/pickle.rst:898 +#: ../Doc/library/pickle.rst:906 msgid "Module :mod:`copyreg`" msgstr "" -#: ../Doc/library/pickle.rst:898 +#: ../Doc/library/pickle.rst:906 msgid "Pickle interface constructor registration for extension types." msgstr "" -#: ../Doc/library/pickle.rst:901 +#: ../Doc/library/pickle.rst:909 msgid "Module :mod:`pickletools`" msgstr "" -#: ../Doc/library/pickle.rst:901 +#: ../Doc/library/pickle.rst:909 msgid "Tools for working with and analyzing pickled data." msgstr "" -#: ../Doc/library/pickle.rst:904 +#: ../Doc/library/pickle.rst:912 msgid "Module :mod:`shelve`" msgstr "" -#: ../Doc/library/pickle.rst:904 +#: ../Doc/library/pickle.rst:912 msgid "Indexed databases of objects; uses :mod:`pickle`." msgstr "" -#: ../Doc/library/pickle.rst:907 +#: ../Doc/library/pickle.rst:915 msgid "Module :mod:`copy`" msgstr "" -#: ../Doc/library/pickle.rst:907 +#: ../Doc/library/pickle.rst:915 msgid "Shallow and deep object copying." msgstr "" -#: ../Doc/library/pickle.rst:909 +#: ../Doc/library/pickle.rst:917 msgid "Module :mod:`marshal`" msgstr "" -#: ../Doc/library/pickle.rst:910 +#: ../Doc/library/pickle.rst:918 msgid "High-performance serialization of built-in types." msgstr "" -#: ../Doc/library/pickle.rst:914 +#: ../Doc/library/pickle.rst:922 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/pickle.rst:915 +#: ../Doc/library/pickle.rst:923 msgid "Don't confuse this with the :mod:`marshal` module" msgstr "" -#: ../Doc/library/pickle.rst:917 +#: ../Doc/library/pickle.rst:925 msgid "" -"This is why :keyword:`lambda` functions cannot be pickled: all :keyword:" -"`lambda` functions share the same name: ````." +"This is why :keyword:`lambda` functions cannot be pickled: all :keyword:`!" +"lambda` functions share the same name: ````." msgstr "" -#: ../Doc/library/pickle.rst:920 +#: ../Doc/library/pickle.rst:928 msgid "" "The exception raised will likely be an :exc:`ImportError` or an :exc:" "`AttributeError` but it could be something else." msgstr "" -#: ../Doc/library/pickle.rst:923 +#: ../Doc/library/pickle.rst:931 msgid "" "The :mod:`copy` module uses this protocol for shallow and deep copying " "operations." msgstr "" -#: ../Doc/library/pickle.rst:926 +#: ../Doc/library/pickle.rst:934 msgid "" "The limitation on alphanumeric characters is due to the fact the persistent " "IDs, in protocol 0, are delimited by the newline character. Therefore if " diff --git a/library/pickletools.po b/library/pickletools.po index a399ee987..a8213e814 100644 --- a/library/pickletools.po +++ b/library/pickletools.po @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/library/pickletools.rst:21 msgid "Command line usage" -msgstr "" +msgstr "Utilisation de la ligne de commande" #: ../Doc/library/pickletools.rst:25 msgid "" diff --git a/library/pipes.po b/library/pipes.po index e73aeaa0d..3b82b2fe7 100644 --- a/library/pipes.po +++ b/library/pipes.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/pipes.rst:2 msgid ":mod:`pipes` --- Interface to shell pipelines" -msgstr ":mod:`pipes` --- Interface au *pipelines* shell" +msgstr ":mod:`pipes` — Interface au *pipelines* shell" #: ../Doc/library/pipes.rst:10 msgid "**Source code:** :source:`Lib/pipes.py`" diff --git a/library/pkgutil.po b/library/pkgutil.po index 8f5750807..8bf71adf3 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -222,7 +222,7 @@ msgstr "" #: ../Doc/library/pkgutil.rst:185 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" #: ../Doc/library/pkgutil.rst:207 msgid "Get a resource from a package." diff --git a/library/platform.po b/library/platform.po index 2b6b1b5af..ac46c1e6f 100644 --- a/library/platform.po +++ b/library/platform.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/platform.rst:2 msgid ":mod:`platform` --- Access to underlying platform's identifying data" -msgstr "" +msgstr ":mod:`platform` — Accès aux données sous-jacentes de la plateforme" #: ../Doc/library/platform.rst:10 msgid "**Source code:** :source:`Lib/platform.py`" @@ -27,16 +27,20 @@ msgid "" "Specific platforms listed alphabetically, with Linux included in the Unix " "section." msgstr "" +"Les spécificités des plateformes sont regroupées dans des sections triées " +"par ordre alphabétique. Linux est inclus dans la section Unix." #: ../Doc/library/platform.rst:21 msgid "Cross Platform" -msgstr "" +msgstr "Multi-plateforme" #: ../Doc/library/platform.rst:26 msgid "" "Queries the given executable (defaults to the Python interpreter binary) for " "various architecture information." msgstr "" +"Interroge l'exécutable fourni (par défaut l'interpréteur Python) sur les " +"informations de l'architecture." #: ../Doc/library/platform.rst:29 msgid "" @@ -44,6 +48,9 @@ msgid "" "architecture and the linkage format used for the executable. Both values are " "returned as strings." msgstr "" +"Renvoie un *n*-uplet de ``(bits, linkage)`` qui contient de l'information " +"sur l'architecture binaire et le format de lien. Les deux valeurs sont des " +"chaînes de caractères." #: ../Doc/library/platform.rst:33 msgid "" @@ -52,6 +59,11 @@ msgid "" "``sizeof(long)`` on Python version < 1.5.2) is used as indicator for the " "supported pointer size." msgstr "" +"Lorsqu'une valeur ne peut être déterminée, la valeur passée en paramètre est " +"utilisée. Si la valeur passée à *bits* est ``''``, la valeur de " +"``sizeof(pointer)`` (ou ``sizeof(long)`` sur les versions Python antérieures " +"à 1.5.2) est utilisée comme indicateur de la taille de pointeur prise en " +"charge." #: ../Doc/library/platform.rst:38 msgid "" @@ -60,42 +72,61 @@ msgid "" "platforms and then only if the executable points to the Python interpreter. " "Reasonable defaults are used when the above needs are not met." msgstr "" +"La fonction dépend de la commande :file:`file` du système pour accomplir la " +"tâche. `file` est disponible sur quasiment toutes les plateformes Unix ainsi " +"que sur certaines plateformes hors de la famille Unix et l'exécutable doit " +"pointer vers l'interpréteur Python. Des valeurs par défaut raisonnables sont " +"utilisées lorsque les conditions précédentes ne sont pas atteintes." #: ../Doc/library/platform.rst:45 msgid "" "On Mac OS X (and perhaps other platforms), executable files may be universal " "files containing multiple architectures." msgstr "" +"Sur Mac OS X (ainsi que d'autres plateformes), les fichiers exécutables " +"peuvent être universels et contenir plusieurs architectures." #: ../Doc/library/platform.rst:48 msgid "" "To get at the \"64-bitness\" of the current interpreter, it is more reliable " "to query the :attr:`sys.maxsize` attribute::" msgstr "" +"Afin de déterminer si l'interpréteur courant est 64-bit, une méthode plus " +"fiable est d'interroger l'attribut :attr:`sys.maxsize` ::" #: ../Doc/library/platform.rst:56 msgid "" "Returns the machine type, e.g. ``'i386'``. An empty string is returned if " "the value cannot be determined." msgstr "" +"Renvoie le type de machine. Par exemple, ``'i386'``. Une chaîne de " +"caractères vide est renvoyée si la valeur ne peut être déterminée." #: ../Doc/library/platform.rst:62 msgid "" "Returns the computer's network name (may not be fully qualified!). An empty " "string is returned if the value cannot be determined." msgstr "" +"Renvoie le nom de l'ordinateur sur le réseau (pas forcément pleinement " +"qualifié). Une chaîne de caractères vide est renvoyée s'il ne peut pas être " +"déterminé." #: ../Doc/library/platform.rst:68 msgid "" "Returns a single string identifying the underlying platform with as much " "useful information as possible." msgstr "" +"Renvoie une chaîne de caractère identifiant la plateforme avec le plus " +"d'informations possible." #: ../Doc/library/platform.rst:71 msgid "" "The output is intended to be *human readable* rather than machine parseable. " "It may look different on different platforms and this is intended." msgstr "" +"La valeur renvoyée est destinée à la *lecture humaine* plutôt que " +"l'interprétation machine. Il est possible qu'elle soit différente selon la " +"plateforme et c'est voulu." #: ../Doc/library/platform.rst:74 msgid "" @@ -104,16 +135,22 @@ msgid "" "SunOS will be reported as Solaris. The :func:`system_alias` function is " "used to implement this." msgstr "" +"Si *aliased* est vrai, la fonction utilisera des alias pour certaines " +"plateformes qui utilisent des noms de système qui diffèrent de leurs noms " +"communs. Par exemple, SunOS sera reconnu comme Solaris. La fonction :func:" +"`system_alias` est utilisée pour l'implémentation." #: ../Doc/library/platform.rst:79 msgid "" "Setting *terse* to true causes the function to return only the absolute " "minimum information needed to identify the platform." msgstr "" +"Si *terse* est vrai, la fonction ne renverra que l'information nécessaire à " +"l'identification de la plateforme." #: ../Doc/library/platform.rst:85 msgid "Returns the (real) processor name, e.g. ``'amdk6'``." -msgstr "" +msgstr "Renvoie le (vrai) nom du processeur. Par exemple : ``'amdk6'``." #: ../Doc/library/platform.rst:87 msgid "" @@ -121,58 +158,83 @@ msgid "" "many platforms do not provide this information or simply return the same " "value as for :func:`machine`. NetBSD does this." msgstr "" +"Une chaîne de caractères vide est renvoyée si la valeur ne peut être " +"déterminée. Prenez note que plusieurs plateformes ne fournissent pas cette " +"information ou renvoient la même valeur que la fonction :func:`machine`. " +"NetBSD agit ainsi." #: ../Doc/library/platform.rst:94 msgid "" "Returns a tuple ``(buildno, builddate)`` stating the Python build number and " "date as strings." msgstr "" +"Renvoie une paire ``(buildno, builddate)`` de chaîne de caractères " +"identifiant la version et la date de compilation de Python." #: ../Doc/library/platform.rst:100 msgid "Returns a string identifying the compiler used for compiling Python." msgstr "" +"Renvoie une chaîne de caractères identifiant le compilateur utilisé pour " +"compiler Python." #: ../Doc/library/platform.rst:105 msgid "Returns a string identifying the Python implementation SCM branch." msgstr "" +"Renvoie la chaîne de caractères identifiant la branche du gestionnaire de " +"versions de l'implémentation Python." #: ../Doc/library/platform.rst:110 msgid "" "Returns a string identifying the Python implementation. Possible return " "values are: 'CPython', 'IronPython', 'Jython', 'PyPy'." msgstr "" +"Renvoie une chaîne de caractères identifiant l'implémentation de Python. Des " +"valeurs possibles sont : ``CPython``, ``IronPython``, ``Jython``, ``Pypy``." #: ../Doc/library/platform.rst:116 msgid "Returns a string identifying the Python implementation SCM revision." msgstr "" +"Renvoie la chaîne de caractères identifiant la révision du gestionnaire de " +"versions de l'implémentation Python." #: ../Doc/library/platform.rst:121 msgid "Returns the Python version as string ``'major.minor.patchlevel'``." msgstr "" +"Renvoie la version de Python comme une chaîne de caractères ``'major.minor." +"patchlevel'``." #: ../Doc/library/platform.rst:123 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to 0)." msgstr "" +"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur " +"par défaut de 0) à la différence de ``sys.version``." #: ../Doc/library/platform.rst:129 msgid "" "Returns the Python version as tuple ``(major, minor, patchlevel)`` of " "strings." msgstr "" +"Renvoie la version de Python comme un triplet de chaînes de caractères " +"``(major, minor, patchlevel)``." #: ../Doc/library/platform.rst:131 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to ``'0'``)." msgstr "" +"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur " +"par défaut de ``'0'``) à la différence de ``sys.version``." #: ../Doc/library/platform.rst:137 msgid "" "Returns the system's release, e.g. ``'2.2.0'`` or ``'NT'`` An empty string " "is returned if the value cannot be determined." msgstr "" +"Renvoie la version de déploiement du système, par exemple, ``'2.2.0'`` ou " +"``'NT'``. Une chaîne de caractères vide signifie qu'aucune valeur ne peut " +"être déterminée." #: ../Doc/library/platform.rst:143 msgid "" @@ -186,12 +248,18 @@ msgid "" "used for some systems. It also does some reordering of the information in " "some cases where it would otherwise cause confusion." msgstr "" +"Renvoie ``(system, release, version)`` avec des alias pour les noms communs " +"de certains systèmes. Modifie aussi l'ordre de l'information pour éviter la " +"confusion." #: ../Doc/library/platform.rst:156 msgid "" "Returns the system's release version, e.g. ``'#3 on degas'``. An empty " "string is returned if the value cannot be determined." msgstr "" +"Renvoie la version de déploiement du système. Par exemple, ``'#3 on " +"degas'``. Une chaîne de caractères vide est renvoyée si aucune valeur ne " +"peut être déterminée." #: ../Doc/library/platform.rst:162 msgid "" @@ -199,6 +267,9 @@ msgid "" "containing six attributes: :attr:`system`, :attr:`node`, :attr:`release`, :" "attr:`version`, :attr:`machine`, and :attr:`processor`." msgstr "" +"Interface de *uname* relativement portable. Renvoie un :func:`~collections." +"namedtuple` contenant six attributs : :attr:`system`, :attr:`node`, :attr:" +"`release`, :attr:`version`, :attr:`machine` et :attr:`processor`." #: ../Doc/library/platform.rst:166 msgid "" @@ -207,10 +278,14 @@ msgid "" "the first two attributes; :func:`os.uname` names them :attr:`sysname` and :" "attr:`nodename`." msgstr "" +"Prenez note qu'il y a un attribut supplémentaire (:attr:`processor`) par " +"rapport à la valeur de retour de :func:`os.uname`. De plus, les deux " +"premiers attributs changent de nom ; ils s'appellent :attr:`sysname` et :" +"attr:`nodename` pour la fonction :func:`os.uname`." #: ../Doc/library/platform.rst:171 msgid "Entries which cannot be determined are set to ``''``." -msgstr "" +msgstr "Les entrées qui ne peuvent pas être identifiées ont la valeur ``''``." #: ../Doc/library/platform.rst:173 msgid "Result changed from a tuple to a namedtuple." @@ -218,11 +293,11 @@ msgstr "Le type renvoyé passe d'un *tuple* à un *namedtuple*." #: ../Doc/library/platform.rst:178 msgid "Java Platform" -msgstr "" +msgstr "Plateforme Java" #: ../Doc/library/platform.rst:183 msgid "Version interface for Jython." -msgstr "" +msgstr "Version de l'interface pour Jython." #: ../Doc/library/platform.rst:185 msgid "" @@ -231,10 +306,15 @@ msgid "" "``(os_name, os_version, os_arch)``. Values which cannot be determined are " "set to the defaults given as parameters (which all default to ``''``)." msgstr "" +"Renvoie un *n*-uplet ``(release, vendor, vminfo, osinfo)``. *vminfo* est un " +"triplet de valeur ``(vm_name, vm_release, vm_vendor)`` et *osinfo* est un " +"triplet de valeur ``(os_name, os_version, os_arch)``. Les valeurs " +"indéterminables ont la valeur des paramètres par défaut (valeur de ``''`` " +"par défaut)." #: ../Doc/library/platform.rst:192 msgid "Windows Platform" -msgstr "" +msgstr "Plateforme Windows" #: ../Doc/library/platform.rst:197 msgid "" @@ -242,6 +322,10 @@ msgid "" "tuple ``(release, version, csd, ptype)`` referring to OS release, version " "number, CSD level (service pack) and OS type (multi/single processor)." msgstr "" +"Interroge le registre Windows pour de l'information supplémentaire et " +"renvoie un triplet de ``(release, version, csd, ptype)`` faisant référence " +"au numéro de version du SE, le numéro de version, le niveau de CSD (Service " +"Pack) et le type de SE (monoprocesseur ou multiprocesseur)." #: ../Doc/library/platform.rst:201 msgid "" @@ -251,6 +335,11 @@ msgid "" "also state *'Checked'* which means the OS version uses debugging code, i.e. " "code that checks arguments, ranges, etc." msgstr "" +"Astuce : *ptype* est ``'Uniprocessor Free'`` sur des machines NT ayant qu'un " +"seul processeur et ``'Multiprocessor Free'`` sur des machines ayant " +"plusieurs processeurs. La composante *'Free'* fait référence à l'absence de " +"code de débogage dans le SE. Au contraire, *'Checked'* indique que le SE " +"utilise du code de débogage pour valider les paramètres, etc." #: ../Doc/library/platform.rst:209 msgid "" @@ -278,7 +367,7 @@ msgstr "" #: ../Doc/library/platform.rst:230 msgid "Mac OS Platform" -msgstr "" +msgstr "Plateforme Mac OS" #: ../Doc/library/platform.rst:235 msgid "" @@ -286,16 +375,21 @@ msgid "" "versioninfo, machine)`` with *versioninfo* being a tuple ``(version, " "dev_stage, non_release_version)``." msgstr "" +"Renvoie les informations de version de Mac OS avec un triplet de ``(release, " +"versioninfo, machine)``. *versioninfo* est un triplet de ``(version, " +"dev_stage, non_release_version)``." #: ../Doc/library/platform.rst:239 msgid "" "Entries which cannot be determined are set to ``''``. All tuple entries are " "strings." msgstr "" +"Les entrées qui ne peuvent pas être identifiées auront la valeur ``''``. Les " +"membres du *n*-uplet sont tous des chaînes de caractères." #: ../Doc/library/platform.rst:244 msgid "Unix Platforms" -msgstr "" +msgstr "Plateformes Unix" #: ../Doc/library/platform.rst:249 msgid "This is another name for :func:`linux_distribution`." @@ -338,6 +432,10 @@ msgid "" "``(lib, version)`` which default to the given parameters in case the lookup " "fails." msgstr "" +"Tente d'identifier la version de la bibliothèque standard C à laquelle le " +"fichier exécutable (par défaut l'interpréteur Python) est lié. Renvoie une " +"paire de chaînes de caractères ``(lib, version)``. Les valeurs passées en " +"paramètre seront retournées si la recherche échoue." #: ../Doc/library/platform.rst:279 msgid "" @@ -345,7 +443,11 @@ msgid "" "versions add symbols to the executable is probably only usable for " "executables compiled using :program:`gcc`." msgstr "" +"Prenez note que cette fonction a une connaissance profonde des méthodes " +"utilisées par les versions de la bibliothèque standard C pour ajouter des " +"symboles au fichier exécutable. Elle n'est probablement utilisable qu'avec " +"des exécutables compilés avec :program:`gcc`." #: ../Doc/library/platform.rst:283 msgid "The file is read and scanned in chunks of *chunksize* bytes." -msgstr "" +msgstr "Le fichier est lu en blocs de *chunksize* octets." diff --git a/library/plistlib.po b/library/plistlib.po index fc5cc8cdc..c70aee3bf 100644 --- a/library/plistlib.po +++ b/library/plistlib.po @@ -71,7 +71,7 @@ msgstr "" #: ../Doc/library/plistlib.rst:45 msgid "This module defines the following functions:" -msgstr "" +msgstr "Ce module définit les fonctions suivantes :" #: ../Doc/library/plistlib.rst:49 msgid "" diff --git a/library/poplib.po b/library/poplib.po index 1e33738a5..6755595e7 100644 --- a/library/poplib.po +++ b/library/poplib.po @@ -108,7 +108,7 @@ msgstr "" #: ../Doc/library/poplib.rst:85 msgid "Module :mod:`imaplib`" -msgstr "" +msgstr "Module :mod:`imaplib`" #: ../Doc/library/poplib.rst:85 msgid "The standard Python IMAP module." diff --git a/library/posix.po b/library/posix.po index df03a8f5c..52fe8823d 100644 --- a/library/posix.po +++ b/library/posix.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-04-11 18:10+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" #: ../Doc/library/posix.rst:2 msgid ":mod:`posix` --- The most common POSIX system calls" -msgstr "" +msgstr ":mod:`posix` — Les appels système POSIX les plus courants" #: ../Doc/library/posix.rst:10 msgid "" @@ -24,6 +25,9 @@ msgid "" "standardized by the C Standard and the POSIX standard (a thinly disguised " "Unix interface)." msgstr "" +"Ce module permet d'accéder aux fonctionnalités du système d'exploitation " +"normalisés par le Standard C et le Standard POSIX (une interface Unix " +"habilement déguisée)." #: ../Doc/library/posix.rst:16 msgid "" @@ -37,16 +41,28 @@ msgid "" "such as automatically calling :func:`~os.putenv` when an entry in ``os." "environ`` is changed." msgstr "" +"**Ne pas importer ce module directement.** À la place, importer le module :" +"mod:`os`, qui fournit une version *portable* de cette interface. Sous Unix, " +"le module :mod:`os` fournit un sur-ensemble de l'interface :mod:`posix`. " +"Sous les systèmes d'exploitation non Unix le module :mod:`posix` n'est pas " +"disponible, mais un sous ensemble est toujours disponible via l'interface :" +"mod:`os`. Une fois que :mod:`os` est importé, il n'y a aucune perte de " +"performance à l'utiliser à la place de :mod:`posix`. De plus, :mod:`os` " +"fournit des fonctionnalités supplémentaires, telles que l'appel automatique " +"de :func:`~os.putenv` lorsqu'une entrée dans ``os.environ`` est modifiée." #: ../Doc/library/posix.rst:25 msgid "" "Errors are reported as exceptions; the usual exceptions are given for type " "errors, while errors reported by the system calls raise :exc:`OSError`." msgstr "" +"Les erreurs sont signalées comme des exceptions; les exceptions habituelles " +"sont données pour les erreurs de type, tandis que les erreurs signalées par " +"les appels système lèvent une erreur :exc:`OSError`." #: ../Doc/library/posix.rst:32 msgid "Large File Support" -msgstr "" +msgstr "Prise en charge de gros fichiers" #: ../Doc/library/posix.rst:40 msgid "" @@ -56,6 +72,11 @@ msgid "" "accomplished by defining the relevant size and offset types as 64-bit " "values. Such files are sometimes referred to as :dfn:`large files`." msgstr "" +"De nombreux systèmes d'exploitation (y compris AIX, HP-UX, Irix et Solaris) " +"prennent en charge les fichiers d'une taille supérieure à 2 Go malgré que le " +"compilateur C utilise des types :c:type:`int` et :c:type:`long` d'une " +"longueur de 32 bit. Ceci est généralement accompli en définissant un nouveau " +"type de 64 bit. Ces fichiers sont parfois appelés fichiers volumineux." #: ../Doc/library/posix.rst:46 msgid "" @@ -66,20 +87,31 @@ msgid "" "enable this mode. For example, it is enabled by default with recent versions " "of Irix, but with Solaris 2.6 and 2.7 you need to do something like::" msgstr "" +"La prise en charge des fichiers volumineux dans Python est activée lorsque " +"la taille de :c:type:`off_t` est supérieure à :c:type:`long` et que le type :" +"c:type:`long long` est disponible et est au moins aussi grand que :c:type:" +"`off_t`. Il peut-être nécessaire de configurer et compiler Python avec " +"certaines options pour activer ce mode. Par exemple, il est activé par " +"défaut avec les versions récentes d'Irix, mais avec Solaris 2.6 et 2.7 vous " +"avez besoin de faire quelque chose comme::" #: ../Doc/library/posix.rst:56 msgid "On large-file-capable Linux systems, this might work::" msgstr "" +"Sur les systèmes Linux capable de supporter les fichiers volumineux, cela " +"pourrait fonctionner ::" #: ../Doc/library/posix.rst:65 msgid "Notable Module Contents" -msgstr "" +msgstr "Contenu du Module" #: ../Doc/library/posix.rst:67 msgid "" "In addition to many functions described in the :mod:`os` module " "documentation, :mod:`posix` defines the following data item:" msgstr "" +"En plus des nombreuses fonctions décrites dans la documentation du module :" +"mod:`os`, :mod:`posix` possède les éléments suivants:" #: ../Doc/library/posix.rst:72 msgid "" @@ -88,6 +120,11 @@ msgid "" "example, ``environ[b'HOME']`` (``environ['HOME']`` on Windows) is the " "pathname of your home directory, equivalent to ``getenv(\"HOME\")`` in C." msgstr "" +"Un dictionnaire représentant les variables d'environnement au moment où " +"l'interpréteur à été lancé. Les clés et les valeurs sont des `bytes` sous " +"Unix et des `str` sous Windows. Par exemple, ``environ[b'HOME']`` " +"(``environ['HOME']`` dans Windows) est le chemin de votre dossier d’accueil, " +"équivalent à ``getenv(\"HOME\")`` en C." #: ../Doc/library/posix.rst:77 msgid "" @@ -97,10 +134,16 @@ msgid "" "variable assignments and export statements to the command string for :func:" "`~os.system` or :func:`~os.popen`." msgstr "" +"Modifier ce dictionnaire n'affecte pas les variables d'environnements " +"fournis par :func:`~os.execv`, :func:`~os.popen` ou :func:`~os.system`; Si " +"vous avez besoin de changer l'environnement, passer le paramètre ``environ`` " +"à :func:`~os.execve` ou ajouter les assignations de variables et les " +"*export* à la commande à exécuter via :func:`~os.system` ou :func:`~os." +"popen`." #: ../Doc/library/posix.rst:83 msgid "On Unix, keys and values are bytes." -msgstr "" +msgstr "Sous Unix, les clés et les valeurs sont des octets." #: ../Doc/library/posix.rst:88 msgid "" @@ -110,3 +153,8 @@ msgid "" "module version of this is recommended over direct access to the :mod:`posix` " "module." msgstr "" +"Le module :mod:`os` fournit une implémentation alternative à ``environ`` qui " +"met à jour l'environnement en cas de modification. Notez également que la " +"mise à jour de :data:`os.environ` rendra ce dictionnaire obsolète. Il est " +"recommandé d'utiliser le module :mod:`os` au lieu du module :mod:`posix` " +"dans ce cas-ci." diff --git a/library/pprint.po b/library/pprint.po index f8eb181a2..8bb37f277 100644 --- a/library/pprint.po +++ b/library/pprint.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2018-10-20 12:15+0200\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.1.1\n" #: ../Doc/library/pprint.rst:2 msgid ":mod:`pprint` --- Data pretty printer" -msgstr "" +msgstr ":mod:`pprint` — L’affichage élégant de données" #: ../Doc/library/pprint.rst:10 msgid "**Source code:** :source:`Lib/pprint.py`" @@ -31,6 +32,15 @@ msgid "" "be the case if objects such as files, sockets or classes are included, as " "well as many other objects which are not representable as Python literals." msgstr "" +"Le module :mod:`pprint` permet « d’afficher élégamment » des structures de " +"données Python arbitraires sous une forme qui peut être utilisée ensuite " +"comme une entrée dans l’interpréteur. Si les structures formatées incluent " +"des objets qui ne sont pas des types Python fondamentaux, leurs " +"représentations peuvent ne pas être acceptables en tant que telles par " +"l’interpréteur. Cela peut être le cas si des objets tels que des fichiers, " +"des interfaces de connexion (*sockets* en anglais) ou des classes sont " +"inclus, c’est aussi valable pour beaucoup d’autres types d’objets qui ne " +"peuvent être représentés sous forme littérale en Python." #: ../Doc/library/pprint.rst:21 msgid "" @@ -39,16 +49,22 @@ msgid "" "Construct :class:`PrettyPrinter` objects explicitly if you need to adjust " "the width constraint." msgstr "" +"L’affichage formaté affiche tant que possible les objets sur une seule " +"ligne, et les sépare sur plusieurs lignes s’ils dépassent la largeur " +"autorisée par l’interpréteur. Créez explicitement des objets :class:" +"`PrettyPrinter` si vous avez besoin de modifier les limites de largeur." #: ../Doc/library/pprint.rst:26 msgid "Dictionaries are sorted by key before the display is computed." msgstr "" +"Les dictionnaires sont classés par clés avant que l’affichage ne soit " +"calculé." #: ../Doc/library/pprint.rst:28 msgid "The :mod:`pprint` module defines one class:" -msgstr "" +msgstr "Le module :mod:`pprint` définit une seule classe : ::" -#: ../Doc/library/pprint.rst:36 +#: ../Doc/library/pprint.rst:38 msgid "" "Construct a :class:`PrettyPrinter` instance. This constructor understands " "several keyword parameters. An output stream may be set using the *stream* " @@ -67,24 +83,46 @@ msgid "" "separate line. If *compact* is true, as many items as will fit within the " "*width* will be formatted on each output line." msgstr "" +"Crée une instance de :class:`PrettyPrinter`. Ce constructeur accepte " +"plusieurs paramètres nommés. Un flux de sortie peut être défini par le mot " +"clé *stream*; la seule méthode utilisée sur l’objet *stream* est la méthode :" +"meth:`write` du protocole de fichiers. Si rien n’est spécifié, la classe :" +"class:`PrettyPrinter` utilise ``sys.stdout``. La taille de l’indentation " +"ajoutée à chaque niveau récursif est spécifiée par *indent*; la valeur par " +"défaut vaut ``1`. D’autres valeurs pourraient donner des résultats " +"surprenants, mais peuvent aider à mieux visualiser les imbrications. Le " +"nombre de niveaux qui peuvent être affichés est contrôlé par *depth*; si la " +"structure de données est trop profonde, le niveau suivant est remplacé par " +"``…``. Par défaut il n’y a pas de contraintes sur la profondeur des objets " +"formatés. Vous pouvez limiter la largeur de la sortie à l’aide du paramètre " +"*width*; la valeur par défaut est de 80 caractères. Si une structure ne peut " +"pas être formatée dans les limites de la largeur contrainte, le module fait " +"au mieux. SI *compact* est initialisé à *False* (la valeur par défaut), " +"chaque élément d’une longue séquence est formaté sur une ligne séparée. Si " +"*compact* est initialisé à *True*, tous les éléments qui peuvent tenir dans " +"la largeur définie sont formatés sur chaque ligne de sortie." -#: ../Doc/library/pprint.rst:53 ../Doc/library/pprint.rst:88 -#: ../Doc/library/pprint.rst:102 +#: ../Doc/library/pprint.rst:55 ../Doc/library/pprint.rst:90 +#: ../Doc/library/pprint.rst:104 msgid "Added the *compact* parameter." -msgstr "" +msgstr "Ajout du paramètre *compact*." -#: ../Doc/library/pprint.rst:80 +#: ../Doc/library/pprint.rst:82 msgid "The :mod:`pprint` module also provides several shortcut functions:" msgstr "" +"Le module :mod:`pprint` fournit aussi quelques fonctions de raccourcis ::" -#: ../Doc/library/pprint.rst:84 +#: ../Doc/library/pprint.rst:86 msgid "" "Return the formatted representation of *object* as a string. *indent*, " "*width*, *depth* and *compact* will be passed to the :class:`PrettyPrinter` " "constructor as formatting parameters." msgstr "" +"Renvoie une représentation formatée de *object* sous forme de chaine de " +"caractères. *indent*, *width*, *depth* et *compact* sont passés au " +"constructeur de :class:`PrettyPrinter` comme paramètres de formatage." -#: ../Doc/library/pprint.rst:95 +#: ../Doc/library/pprint.rst:97 msgid "" "Prints the formatted representation of *object* on *stream*, followed by a " "newline. If *stream* is ``None``, ``sys.stdout`` is used. This may be used " @@ -93,59 +131,84 @@ msgid "" "within a scope). *indent*, *width*, *depth* and *compact* will be passed to " "the :class:`PrettyPrinter` constructor as formatting parameters." msgstr "" +"Affiche la représentation formatée de *object* sur *stream*, suivie d’un " +"retour à la ligne. Si *stream* vaut ``None``, ``sys.stdout`` est alors " +"utilisé. Vous pouvez l’utiliser dans l’interpréteur interactif de Python au " +"lieu de la fonction :func:`print` pour inspecter les valeurs (vous pouvez " +"même réassigner ``print = pprint.pprint`` pour une utilisation au sein de sa " +"portée). *indent*, *width*, *depth* et *compact* sont passés au constructeur " +"de classe :class:`PrettyPrinter` comme paramètres de formatage." -#: ../Doc/library/pprint.rst:121 +#: ../Doc/library/pprint.rst:123 msgid "" "Determine if the formatted representation of *object* is \"readable,\" or " "can be used to reconstruct the value using :func:`eval`. This always " "returns ``False`` for recursive objects." msgstr "" +"Détermine si la représentation formatée de *object* est « lisible », ou s’il " +"peut être utilisé pour recomposer sa valeur en utilisant la fonction :func:" +"`eval`. Cela renvoie toujours ``False`` pour les objets récursifs." -#: ../Doc/library/pprint.rst:131 +#: ../Doc/library/pprint.rst:133 msgid "Determine if *object* requires a recursive representation." -msgstr "" +msgstr "Détermine si *object* requiert une représentation récursive." -#: ../Doc/library/pprint.rst:134 +#: ../Doc/library/pprint.rst:136 msgid "One more support function is also defined:" -msgstr "" +msgstr "Une dernière fonction de support est définie ainsi ::" -#: ../Doc/library/pprint.rst:138 +#: ../Doc/library/pprint.rst:140 msgid "" "Return a string representation of *object*, protected against recursive data " "structures. If the representation of *object* exposes a recursive entry, " "the recursive reference will be represented as ````. The representation is not otherwise formatted." msgstr "" +"Renvoie une représentation de *object* sous forme de chaîne de caractère, " +"celle-ci est protégée contre les structures de données récursives. Si la " +"représentation de *object* présente une entrée récursive, celle-ci sera " +"représentée telle que ````. Par " +"ailleurs, la représentation de l’objet n’est pas formatée." -#: ../Doc/library/pprint.rst:150 +#: ../Doc/library/pprint.rst:152 msgid "PrettyPrinter Objects" -msgstr "" +msgstr "Les Objets PrettyPrinter" -#: ../Doc/library/pprint.rst:152 +#: ../Doc/library/pprint.rst:154 msgid ":class:`PrettyPrinter` instances have the following methods:" msgstr "" +"Les instances de la classe :class:`PrettyPrinter` ont les méthodes " +"suivantes ::" -#: ../Doc/library/pprint.rst:157 +#: ../Doc/library/pprint.rst:159 msgid "" "Return the formatted representation of *object*. This takes into account " "the options passed to the :class:`PrettyPrinter` constructor." msgstr "" +"Renvoie la représentation formatée de *object*. Cela prend en compte les " +"options passées au constructeur de la classe :class:`PrettyPrinter`." -#: ../Doc/library/pprint.rst:163 +#: ../Doc/library/pprint.rst:165 msgid "" "Print the formatted representation of *object* on the configured stream, " "followed by a newline." msgstr "" +"Affiche sur le flux configuré la représentation formatée de *object*, suivie " +"d’une fin de ligne." -#: ../Doc/library/pprint.rst:166 +#: ../Doc/library/pprint.rst:168 msgid "" "The following methods provide the implementations for the corresponding " "functions of the same names. Using these methods on an instance is slightly " "more efficient since new :class:`PrettyPrinter` objects don't need to be " "created." msgstr "" +"Les méthodes suivantes fournissent les implémentations pour les fonctions " +"correspondantes de mêmes noms. L’utilisation de ces méthodes sur une " +"instance est légèrement plus efficace, car les nouveaux objets :class:" +"`PrettyPrinter` n’ont pas besoin d’être créés." -#: ../Doc/library/pprint.rst:176 +#: ../Doc/library/pprint.rst:178 msgid "" "Determine if the formatted representation of the object is \"readable,\" or " "can be used to reconstruct the value using :func:`eval`. Note that this " @@ -153,19 +216,28 @@ msgid "" "class:`PrettyPrinter` is set and the object is deeper than allowed, this " "returns ``False``." msgstr "" +"Détermine si la représentation formatée de *object* est « lisible », ou si " +"elle peut être utilisée pour recomposer sa valeur en utilisant la fonction :" +"func:`eval`. Cela renvoie toujours ``False`` pour les objets récursifs. Si " +"le paramètre *depth* de la classe :class:`PrettyPrinter` est initialisé et " +"que l’objet est plus « profond » que permis, cela renvoie ``False``." -#: ../Doc/library/pprint.rst:185 +#: ../Doc/library/pprint.rst:187 msgid "Determine if the object requires a recursive representation." -msgstr "" +msgstr "Détermine si l’objet nécessite une représentation récursive." -#: ../Doc/library/pprint.rst:187 +#: ../Doc/library/pprint.rst:189 msgid "" "This method is provided as a hook to allow subclasses to modify the way " "objects are converted to strings. The default implementation uses the " "internals of the :func:`saferepr` implementation." msgstr "" +"Cette méthode est fournie sous forme de point d’entrée ou méthode (à " +"déclenchement) automatique (*hook* en anglais) pour permettre aux sous-" +"classes de modifier la façon dont les objets sont convertis en chaînes. " +"L’implémentation par défaut est celle de la fonction :func:`saferepr`." -#: ../Doc/library/pprint.rst:194 +#: ../Doc/library/pprint.rst:196 msgid "" "Returns three values: the formatted version of *object* as a string, a flag " "indicating whether the result is readable, and a flag indicating whether " @@ -182,30 +254,55 @@ msgid "" "the current level; recursive calls should be passed a value less than that " "of the current call." msgstr "" +"Renvoie trois valeurs : la version formatée de *object* sous forme de chaîne " +"de caractères, une option indiquant si le résultat est « lisible », et une " +"option indiquant si une récursion a été détectée. Le premier argument est " +"l’objet à représenter. Le deuxième est un dictionnaire qui contient l'\\ :" +"func:`id` des objets (conteneurs directs ou indirects de *objet* qui " +"affectent sa représentation) qui font partie du contexte de représentation " +"courant tel que les clés; si un objet doit être représenté, mais l’a déjà " +"été dans ce contexte, le troisième argument renvoie ``True``. Des appels " +"récursifs à la méthode :meth:`.format` doivent ajouter des entrés " +"additionnelles aux conteneurs de ce dictionnaire. Le troisième argument " +"*maxlevels*, donne la limite maximale de récursivité; la valeur par défaut " +"est ``0``. Cet argument doit être passé non modifié pour des appels non " +"récursifs. Le quatrième argument, *level*, donne le niveau de récursivité " +"courant; les appels récursifs doivent être passés à une valeur inférieure à " +"celle de l’appel courant." -#: ../Doc/library/pprint.rst:212 +#: ../Doc/library/pprint.rst:214 msgid "Example" msgstr "Exemple" -#: ../Doc/library/pprint.rst:214 +#: ../Doc/library/pprint.rst:216 msgid "" "To demonstrate several uses of the :func:`pprint` function and its " "parameters, let's fetch information about a project from `PyPI `_::" msgstr "" +"Pour illustrer quelques cas pratiques de l’utilisation de la fonction :func:" +"`pprint` et de ses paramètres, allons chercher des informations sur un " +"projet `PyPI `_ ::" #: ../Doc/library/pprint.rst:225 msgid "In its basic form, :func:`pprint` shows the whole object::" msgstr "" +"Dans sa forme basique, la fonction :func:`pprint` affiche l’intégralité de " +"l’objet ::" -#: ../Doc/library/pprint.rst:279 +#: ../Doc/library/pprint.rst:281 msgid "" "The result can be limited to a certain *depth* (ellipsis is used for deeper " "contents)::" msgstr "" +"Le résultat peut être limité à une certaine profondeur en initialisant " +"*depth*. ( ``…`` est utilisé pour des contenus plus « profonds ») ::" -#: ../Doc/library/pprint.rst:313 +#: ../Doc/library/pprint.rst:327 msgid "" "Additionally, maximum character *width* can be suggested. If a long object " "cannot be split, the specified width will be exceeded::" msgstr "" +"De plus, une valeur maximale de caractères sur une ligne peut être définie " +"en initialisant le paramètre *width*. Si un long objet ne peut être scindé, " +"la valeur donnée à *width* sera outrepassée ::" diff --git a/library/pty.po b/library/pty.po index 48545ff98..99229e739 100644 --- a/library/pty.po +++ b/library/pty.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: 2018-09-28 19:18+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/pty.rst:2 msgid ":mod:`pty` --- Pseudo-terminal utilities" -msgstr ":mod:`pty` --- Outils de manipulation de pseudo-terminaux" +msgstr ":mod:`pty` — Outils de manipulation de pseudo-terminaux" #: ../Doc/library/pty.rst:11 msgid "**Source code:** :source:`Lib/pty.py`" @@ -75,23 +75,70 @@ msgstr "" msgid "" "Spawn a process, and connect its controlling terminal with the current " "process's standard io. This is often used to baffle programs which insist on " -"reading from the controlling terminal." +"reading from the controlling terminal. It is expected that the process " +"spawned behind the pty will eventually terminate, and when it does *spawn* " +"will return." msgstr "" "Crée un nouveau processus et connecte son terminal aux entrées/sorties " -"standard du processus courant. C'est typiquement utilisé pour duper les " +"standard du processus courant. C'est typiquement utilisé pour duper les " "programmes insistant sur le fait de lire depuis leur terminal." -#: ../Doc/library/pty.rst:48 +#: ../Doc/library/pty.rst:50 msgid "" -"The functions *master_read* and *stdin_read* should be functions which read " -"from a file descriptor. The defaults try to read 1024 bytes each time they " -"are called." +"The functions *master_read* and *stdin_read* are passed a file descriptor " +"which they should read from, and they should always return a byte string. In " +"order to force spawn to return before the child process exits an :exc:" +"`OSError` should be thrown." msgstr "" -"Les fonctions *master_read* et *stdin_read* doivent être des fonctions " -"lisant sur un descripteur de fichier. Par défaut elles lisent 1024 octets à " -"chaque fois qu'elles sont appelées." +"Les fonctions `master_read` et `stdin_read` reçoivent un descripteur de " +"fichier qu'elles doivent lire, et elles doivent toujours renvoyer une chaîne " +"d'octets. Afin de forcer le *spawn* à faire un renvoi avant que le processus " +"enfant ne se termine, une exception :exc:`OSError` doit être levée." -#: ../Doc/library/pty.rst:52 +#: ../Doc/library/pty.rst:55 +msgid "" +"The default implementation for both functions will read and return up to " +"1024 bytes each time the function is called. The *master_read* callback is " +"passed the pseudoterminal’s master file descriptor to read output from the " +"child process, and *stdin_read* is passed file descriptor 0, to read from " +"the parent process's standard input." +msgstr "" +"L'implémentation par défaut pour les deux fonctions lit et renvoie jusqu'à " +"1024 octets à chaque appel de la fonction. La fonction de rappel " +"`master_read` reçoit le descripteur de fichier du pseudo-terminal maître " +"pour lire la sortie du processus enfant, et `stdin_read` reçoit le " +"descripteur de fichier 0, pour lire l'entrée standard du processus parent." + +#: ../Doc/library/pty.rst:61 +msgid "" +"Returning an empty byte string from either callback is interpreted as an end-" +"of-file (EOF) condition, and that callback will not be called after that. If " +"*stdin_read* signals EOF the controlling terminal can no longer communicate " +"with the parent process OR the child process. Unless the child process will " +"quit without any input, *spawn* will then loop forever. If *master_read* " +"signals EOF the same behavior results (on linux at least)." +msgstr "" +"Le renvoi d'une chaîne d'octets vide à partir de l'un ou l'autre des rappels " +"est interprété comme une condition de fin de fichier (EOF), et ce rappel ne " +"sera pas appelé après cela. Si *stdin_read* signale EOF, le terminal de " +"contrôle ne peut plus communiquer avec le processus parent OU le processus " +"enfant. À moins que le processus enfant ne quitte sans aucune entrée, " +"*spawn* sera lancé dans une boucle infinie. Si `master_read` indique la fin " +"de fichier, on aura le même comportement (sur Linux au moins)." + +#: ../Doc/library/pty.rst:68 +msgid "" +"If both callbacks signal EOF then *spawn* will probably never return, unless " +"*select* throws an error on your platform when passed three empty lists. " +"This is a bug, documented in `issue 26228 `_." +msgstr "" +"Si les deux fonctions de rappel indiquent la fin de fichier (*EOF*), alors " +"*spawn* ne fera probablement jamais de renvoi, à moins que *select* ne lance " +"une erreur sur votre plateforme lors du passage de trois listes vides. Il " +"s'agit d'un bogue, renseigné dans ``_." + +#: ../Doc/library/pty.rst:73 msgid "" ":func:`spawn` now returns the status value from :func:`os.waitpid` on the " "child process." @@ -99,11 +146,11 @@ msgstr "" ":func:`spawn` renvoie maintenant la valeur renvoyée par :func:`os.waitpid` " "sur le processus fils." -#: ../Doc/library/pty.rst:57 +#: ../Doc/library/pty.rst:78 msgid "Example" msgstr "Exemple" -#: ../Doc/library/pty.rst:61 +#: ../Doc/library/pty.rst:82 msgid "" "The following program acts like the Unix command :manpage:`script(1)`, using " "a pseudo-terminal to record all input and output of a terminal session in a " @@ -112,3 +159,12 @@ msgstr "" "Le programme suivant se comporte comme la commande Unix :manpage:" "`script(1)`, utilisant un pseudo-terminal pour enregistrer toutes les " "entrées et sorties d'une session dans un fichier *typescript*. ::" + +#~ msgid "" +#~ "The functions *master_read* and *stdin_read* should be functions which " +#~ "read from a file descriptor. The defaults try to read 1024 bytes each " +#~ "time they are called." +#~ msgstr "" +#~ "Les fonctions *master_read* et *stdin_read* doivent être des fonctions " +#~ "lisant sur un descripteur de fichier. Par défaut elles lisent 1024 octets " +#~ "à chaque fois qu'elles sont appelées." diff --git a/library/pwd.po b/library/pwd.po index 87149cb9d..88bd5abb2 100644 --- a/library/pwd.po +++ b/library/pwd.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-04-11 18:10+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" #: ../Doc/library/pwd.rst:2 msgid ":mod:`pwd` --- The password database" @@ -33,7 +34,7 @@ msgstr "" #: ../Doc/library/pwd.rst:18 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/pwd.rst:18 msgid "Attribute" @@ -53,7 +54,7 @@ msgstr "``pw_name``" #: ../Doc/library/pwd.rst:20 msgid "Login name" -msgstr "" +msgstr "Nom d’utilisateur" #: ../Doc/library/pwd.rst:22 msgid "1" @@ -113,7 +114,7 @@ msgstr "``pw_dir``" #: ../Doc/library/pwd.rst:30 msgid "User home directory" -msgstr "" +msgstr "Répertoire d’accueil de l’utilisateur" #: ../Doc/library/pwd.rst:32 msgid "6" @@ -164,11 +165,11 @@ msgstr "" #: ../Doc/library/pwd.rst:72 msgid "Module :mod:`grp`" -msgstr "" +msgstr "Module :mod:`grp`" #: ../Doc/library/pwd.rst:72 msgid "An interface to the group database, similar to this." -msgstr "" +msgstr "Interface pour la base de données des groupes, similaire à celle-ci." #: ../Doc/library/pwd.rst:74 msgid "Module :mod:`spwd`" diff --git a/library/py_compile.po b/library/py_compile.po index b207c89ff..6c0d0af20 100644 --- a/library/py_compile.po +++ b/library/py_compile.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+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/py_compile.rst:2 msgid ":mod:`py_compile` --- Compile Python source files" -msgstr "" +msgstr ":mod:`py_compile` — Compilation de sources Python" #: ../Doc/library/py_compile.rst:10 msgid "**Source code:** :source:`Lib/py_compile.py`" @@ -28,6 +28,9 @@ msgid "" "file from a source file, and another function used when the module source " "file is invoked as a script." msgstr "" +"Le module :mod:`py_compile` définit une fonction principale qui génère un " +"fichier de code intermédiaire à partir d'un fichier source. Il exporte " +"également la fonction qu'il exécute quand il est lancé en tant que script." #: ../Doc/library/py_compile.rst:20 msgid "" @@ -35,11 +38,15 @@ msgid "" "for shared use, especially if some of the users may not have permission to " "write the byte-code cache files in the directory containing the source code." msgstr "" +"Bien que ce module ne soit pas d'usage fréquent, il peut servir lors de " +"l'installation de bibliothèques partagées, notamment dans le cas où tous les " +"utilisateurs n'ont pas les privilèges d'écriture dans l'emplacement " +"d'installation." #: ../Doc/library/py_compile.rst:27 msgid "" "Exception raised when an error occurs while attempting to compile the file." -msgstr "" +msgstr "Exception levée quand une erreur se produit à la compilation." #: ../Doc/library/py_compile.rst:32 msgid "" @@ -65,6 +72,14 @@ msgid "" "a side-effect of import using file renaming to place the final byte-compiled " "file into place to prevent concurrent file writing issues." msgstr "" +"Si le chemin de destination, explicité par *cfile* ou choisi " +"automatiquement, est un lien symbolique, ou n'est pas un véritable fichier, " +"une exception de type :exc:`FileExistsError` est levée. Ceci, dans le but de " +"vous avertir que le système d'importation changera ces chemins en fichiers " +"s'il est autorisé à y écrire des fichiers de code intermédiaire. En effet, " +"les importations passent par un renommage final du fichier de code " +"intermédiaire vers sa destination, afin d'éviter les problèmes liés à " +"l'écriture simultanée d'un même fichier par plusieurs processus." #: ../Doc/library/py_compile.rst:52 msgid "" @@ -72,15 +87,24 @@ msgid "" "func:`compile` function. The default of ``-1`` selects the optimization " "level of the current interpreter." msgstr "" +"*optimize* règle le niveau d'optimisation. Ce paramètre est passé " +"directement à la fonction native :func:`compile`. Avec la valeur par défaut " +"de ``-1``, le code intermédiaire hérite du niveau d'optimisation de " +"l'interpréteur courant." #: ../Doc/library/py_compile.rst:56 msgid "" "*invalidation_mode* should be a member of the :class:`PycInvalidationMode` " -"enum and controls how the generated ``.pyc`` files are invalidated at " -"runtime. If the :envvar:`SOURCE_DATE_EPOCH` environment variable is set, " -"*invalidation_mode* will be forced to :attr:`PycInvalidationMode." -"CHECKED_HASH`." +"enum and controls how the generated bytecode cache is invalidated at " +"runtime. The default is :attr:`PycInvalidationMode.CHECKED_HASH` if the :" +"envvar:`SOURCE_DATE_EPOCH` environment variable is set, otherwise the " +"default is :attr:`PycInvalidationMode.TIMESTAMP`." msgstr "" +"*invalidation_mode* précise la manière dont le code intermédiaire produit " +"est invalidé à son exécution. Il doit être un membre de l'énumération :class:" +"`PycInvalidationMode`. La valeur par défaut est :attr:`PycInvalidationMode." +"TIMESTAMP`. Elle passe toutefois à :attr:`PycInvalidationMode.CHECKED_HASH` " +"si la variable d'environnement :envvar:`SOURCE_DATE_EPOCH` est définie." #: ../Doc/library/py_compile.rst:62 msgid "" @@ -88,6 +112,10 @@ msgid "" "default was *file* + ``'c'`` (``'o'`` if optimization was enabled). Also " "added the *optimize* parameter." msgstr "" +"la méthode de choix de destination a changé au profit de celle décrite dans " +"la :pep:`3147`. Auparavant, le nom du fichier de code intermédiaire était " +"*file* + ``'c'`` (ou ``'o'`` lorsque les optimisations étaient actives). Le " +"paramètre *optimize* a été ajouté." #: ../Doc/library/py_compile.rst:67 msgid "" @@ -97,6 +125,12 @@ msgid "" "that :exc:`FileExistsError` is raised if *cfile* is a symlink or non-regular " "file." msgstr "" +"le code a été modifié pour faire appel à :mod:`importlib` dans les " +"opérations d'écriture du code intermédiaire. Ce module se comporte donc " +"exactement comme :mod:`importlib` en ce qui concerne, par exemple, les " +"permissions, ou le renommage final qui garantit une opération atomique. :exc:" +"`FileExistsError` est désormais levée si la destination est un lien " +"symbolique ou n'est pas un véritable fichier." #: ../Doc/library/py_compile.rst:74 msgid "" @@ -105,8 +139,22 @@ msgid "" "*invalidation_mode* will be forced to :attr:`PycInvalidationMode." "CHECKED_HASH`." msgstr "" +"le paramètre *invalidation_mode* a été ajouté comme requis par la :pep:" +"`552`. Si la variable d'environnement :envvar:`SOURCE_DATE_EPOCH` est " +"définie, *invalidation_mode* est ignoré, et :attr:`PycInvalidationMode." +"CHECKED_HASH` s'applique dans tous les cas." -#: ../Doc/library/py_compile.rst:83 +#: ../Doc/library/py_compile.rst:80 +msgid "" +"The :envvar:`SOURCE_DATE_EPOCH` environment variable no longer overrides the " +"value of the *invalidation_mode* argument, and determines its default value " +"instead." +msgstr "" +"La variable d'environnement :envvar:`SOURCE_DATE_EPOCH` n'a plus préséance " +"sur le paramètre *invalidation_mode*, mais détermine seulement le " +"comportement par défaut lorsque ce paramètre n'est pas passé." + +#: ../Doc/library/py_compile.rst:88 msgid "" "A enumeration of possible methods the interpreter can use to determine " "whether a bytecode file is up to date with a source file. The ``.pyc`` file " @@ -114,35 +162,52 @@ msgid "" "invalidation` for more information on how Python invalidates ``.pyc`` files " "at runtime." msgstr "" +"Énumération des méthodes que l'interpréteur est susceptible d'appliquer afin " +"de déterminer si un fichier de code intermédiaire est périmé par rapport à " +"sa source. Les fichiers ``.pyc`` portent le mode d'invalidation désiré dans " +"leur en-tête. Veuillez-vous référer à :ref:`pyc-invalidation` pour plus " +"d'informations sur la manière dont Python invalide les fichiers ``.pyc`` à " +"l'exécution." -#: ../Doc/library/py_compile.rst:93 +#: ../Doc/library/py_compile.rst:98 msgid "" "The ``.pyc`` file includes the timestamp and size of the source file, which " "Python will compare against the metadata of the source file at runtime to " "determine if the ``.pyc`` file needs to be regenerated." msgstr "" +"Le fichier ``.pyc`` contient l'horodatage et la taille de la source. " +"L'interpréteur inspecte les métadonnées du fichier source au moment de " +"l'exécution, et régénère le fichier ``.pyc`` si elles ont changé." -#: ../Doc/library/py_compile.rst:99 +#: ../Doc/library/py_compile.rst:104 msgid "" "The ``.pyc`` file includes a hash of the source file content, which Python " "will compare against the source at runtime to determine if the ``.pyc`` file " "needs to be regenerated." msgstr "" +"Le fichier ``.pyc`` porte une empreinte du code source. À l'exécution, elle " +"est recalculée à partir de la source éventuellement modifiée, et le fichier " +"``.pyc`` est régénéré si les deux empreintes sont différentes." -#: ../Doc/library/py_compile.rst:105 +#: ../Doc/library/py_compile.rst:110 msgid "" "Like :attr:`CHECKED_HASH`, the ``.pyc`` file includes a hash of the source " "file content. However, Python will at runtime assume the ``.pyc`` file is up " "to date and not validate the ``.pyc`` against the source file at all." msgstr "" +"Le principe est le même que :attr:`CHECKED_HASH`, mais à l'exécution, " +"l'interpréteur considère systématiquement que le fichier ``.pyc`` est à " +"jour, sans regarder la source." -#: ../Doc/library/py_compile.rst:109 +#: ../Doc/library/py_compile.rst:114 msgid "" "This option is useful when the ``.pycs`` are kept up to date by some system " "external to Python like a build system." msgstr "" +"Cette option est utile lorsque les fichiers ``.pyc`` sont maintenus par un " +"outil externe, comme un système d'intégration." -#: ../Doc/library/py_compile.rst:115 +#: ../Doc/library/py_compile.rst:120 msgid "" "Compile several source files. The files named in *args* (or on the command " "line, if *args* is ``None``) are compiled and the resulting byte-code is " @@ -151,22 +216,32 @@ msgid "" "If ``'-'`` is the only parameter in args, the list of files is taken from " "standard input." msgstr "" +"Compile et met en cache tous les fichiers de la séquence *args*, ou ceux " +"passés comme arguments en ligne de commande si *args* est ``None``. Cette " +"fonction n'effectue aucune recherche des fichiers sources dans des dossiers. " +"Elle compile simplement les fichiers nommés un par un. Si ``'-'`` est le " +"seul paramètre dans *args*, la liste des fichiers est lue sur l'entrée " +"standard." -#: ../Doc/library/py_compile.rst:122 +#: ../Doc/library/py_compile.rst:127 msgid "Added support for ``'-'``." -msgstr "" +msgstr "prise en charge de ``'-'``." -#: ../Doc/library/py_compile.rst:125 +#: ../Doc/library/py_compile.rst:130 msgid "" "When this module is run as a script, the :func:`main` is used to compile all " "the files named on the command line. The exit status is nonzero if one of " "the files could not be compiled." msgstr "" +"Lorsque ce module est exécuté en tant que script, la fonction :func:`main` " +"compile tous les fichiers passés comme arguments sur la ligne de commande. " +"Le code de retour vaut zéro si tous ont été compilés sans erreur." -#: ../Doc/library/py_compile.rst:132 +#: ../Doc/library/py_compile.rst:137 msgid "Module :mod:`compileall`" -msgstr "" +msgstr "Module :mod:`compileall`" -#: ../Doc/library/py_compile.rst:133 +#: ../Doc/library/py_compile.rst:138 msgid "Utilities to compile all Python source files in a directory tree." msgstr "" +"Utilitaires pour compiler des fichiers source Python dans une arborescence" diff --git a/library/pyclbr.po b/library/pyclbr.po index 7537f3436..cbe460127 100644 --- a/library/pyclbr.po +++ b/library/pyclbr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+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 @@ msgstr "" #: ../Doc/library/pyclbr.rst:45 msgid "" "Descriptors for nested definitions. They are accessed through the new " -"children attibute. Each has a new parent attribute." +"children attribute. Each has a new parent attribute." msgstr "" #: ../Doc/library/pyclbr.rst:49 diff --git a/library/pydoc.po b/library/pydoc.po index 273d0c8e0..78175be6d 100644 --- a/library/pydoc.po +++ b/library/pydoc.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-06-08 15:22+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.1.1\n" #: ../Doc/library/pydoc.rst:2 msgid ":mod:`pydoc` --- Documentation generator and online help system" -msgstr "" +msgstr ":mod:`pydoc` — Générateur de documentation et système d’aide en ligne" #: ../Doc/library/pydoc.rst:10 msgid "**Source code:** :source:`Lib/pydoc.py`" @@ -28,6 +29,10 @@ msgid "" "modules. The documentation can be presented as pages of text on the " "console, served to a Web browser, or saved to HTML files." msgstr "" +"Le module :mod:`pydoc` génère automatiquement de la documentation à partir " +"de modules Python. La documentation peut se présenter sous forme de pages de " +"texte dans la console, rendue dans un navigateur web, ou sauvegardée dans " +"des fichiers HTML." #: ../Doc/library/pydoc.rst:23 msgid "" @@ -39,6 +44,13 @@ msgid "" "the source file, or at the top of the module (see :func:`inspect." "getcomments`)." msgstr "" +"Pour les modules, classes, fonctions et méthodes, la documentation affichée " +"est tirée de la *docstring* (c.à.d de l’attribut :attr:`__doc__`) de l’objet " +"et ce, de manière récursive pour les membres qui peuvent être documentés. " +"S’il n’y a pas de *docstring*, :mod:`pydoc` essaie d’obtenir une description " +"à partir du bloc de commentaires juste au-dessus de la définition de la " +"classe, fonction ou méthode du fichier source, ou en haut du module (voir :" +"func:`inspect.getcomments`)." #: ../Doc/library/pydoc.rst:30 msgid "" @@ -48,6 +60,11 @@ msgid "" "be viewed from outside the Python interpreter by running :program:`pydoc` as " "a script at the operating system's command prompt. For example, running ::" msgstr "" +"La fonction native :func:`help` appelle le système d’aide en ligne dans " +"l’interpréteur Python qui utilise :mod:`pydoc` pour générer sa documentation " +"sous forme textuelle dans la console. Cette même documentation peut aussi " +"être consultée à l’extérieur de l’interpréteur Python en lançant :program:" +"`pydoc` dans le terminal du système d’exploitation. Par exemple en lançant ::" #: ../Doc/library/pydoc.rst:38 msgid "" @@ -60,6 +77,14 @@ msgid "" "system, such as a slash in Unix), and refers to an existing Python source " "file, then documentation is produced for that file." msgstr "" +"dans un terminal, cela affiche la documentation du module :mod:`sys` dans un " +"style similaire à la commande Unix :program:`man`. On peut passer comme " +"argument à :program:`pydoc` le nom d’une fonction, d’un module, d’un paquet, " +"ou une référence pointant vers une classe, une méthode, ou une fonction dans " +"un module ou dans un paquet. Si l’argument passé à :program:`pydoc` est un " +"chemin (c.à.d qu’il contient des séparateurs de chemin tels que la barre " +"oblique ``/`` dans Unix), et fait référence à un fichier source Python " +"existant, alors la documentation est générée pour ce fichier." #: ../Doc/library/pydoc.rst:49 msgid "" @@ -68,6 +93,11 @@ msgid "" "executed on that occasion. Use an ``if __name__ == '__main__':`` guard to " "only execute code when a file is invoked as a script and not just imported." msgstr "" +"Afin de trouver des objets et leur documentation, :mod:`pydoc` importe le ou " +"les modules à documenter. Par conséquent tout code au niveau du module sera " +"exécuté à cette occasion. Utiliser ``if __name__ == ‘__main__’:`` évite " +"d’exécuter du code lorsqu’un fichier est appelé directement et non pas " +"importé." #: ../Doc/library/pydoc.rst:54 msgid "" @@ -75,6 +105,10 @@ msgid "" "the output for easier reading. If the :envvar:`PAGER` environment variable " "is set, :program:`pydoc` will use its value as a pagination program." msgstr "" +"Lorsque l’on affiche une sortie sur la console, :program:`pydoc` essaye de " +"créer une pagination pour faciliter la lecture. Si la variable " +"d’environnement :envvar:`PAGER` est configurée, :program:`pydoc` utilise sa " +"valeur comme programme de pagination." #: ../Doc/library/pydoc.rst:58 msgid "" @@ -82,6 +116,9 @@ msgid "" "to be written out to a file in the current directory, instead of displaying " "text on the console." msgstr "" +"Ajouter une option ``-w`` avant l’argument entraine l’enregistrement de la " +"documentation HTML générée dans un fichier du répertoire courant au lieu de " +"l’afficher dans la console." #: ../Doc/library/pydoc.rst:62 msgid "" @@ -90,6 +127,10 @@ msgid "" "manner similar to the Unix :program:`man` command. The synopsis line of a " "module is the first line of its documentation string." msgstr "" +"Ajouter une option ``-w`` avant l’argument cherche les lignes de résumé de " +"tous les modules disponibles pour le mot clé donné comme argument, ceci à la " +"manière de la commande Unix :program:`man`. Les lignes de résumé d’un module " +"sont les premières lignes de sa *docstring*." #: ../Doc/library/pydoc.rst:67 msgid "" @@ -100,6 +141,12 @@ msgid "" "browser. Specifying ``0`` as the port number will select an arbitrary unused " "port." msgstr "" +"Vous pouvez aussi utiliser :program:`pydoc` pour lancer un serveur HTTP sur " +"votre machine locale qui rendra la documentation consultable sur votre " +"navigateur Web. :program:`pydoc -p 1234` lancera un serveur HTTP sur le port " +"1234, permettant de consulter la documentation à l’adresse ``http://" +"localhost:1234/`` dans votre navigateur web préféré. En précisant ``0`` " +"comme numéro de port, un port non utilisé sera aléatoirement alloué." #: ../Doc/library/pydoc.rst:73 msgid "" @@ -109,6 +156,12 @@ msgid "" "the server responds to. During development this is especially useful if you " "want to run pydoc from within a container." msgstr "" +":program:`pydoc -n ` démarre le serveur en écoutant sur le port " +"donné en argument. Par défaut le nom d’hôte est *localhost* mais si vous " +"voulez que le serveur soit joignable par d’autres machines, vous avez la " +"possibilité de changer le nom de l’hôte auquel le serveur répond. Dans le " +"développement, c’est particulièrement utile si vous souhaitez exécuter :" +"program:`pydoc` depuis un conteneur." #: ../Doc/library/pydoc.rst:79 msgid "" @@ -118,6 +171,11 @@ msgid "" "with a keyword in their synopsis line, and go to the *Module index*, " "*Topics* and *Keywords* pages." msgstr "" +":program:`pydoc -b` démarre le serveur et ouvrira en plus un navigateur web " +"vers une page d’index de module. Chaque page affichée a une barre de " +"navigation en haut où vous pouvez *Obtenir* de l’aide sur un élément " +"individuel, *Rechercher* tous les modules avec un mot-clé dans leur ligne de " +"résumé, et aller dans les pages *Index des modules*, *Thèmes* et *Mots clés*." #: ../Doc/library/pydoc.rst:85 msgid "" @@ -126,6 +184,11 @@ msgid "" "spam` documents precisely the version of the module you would get if you " "started the Python interpreter and typed ``import spam``." msgstr "" +"Quand :program:`pydoc` génère de la documentation, il utilise " +"l’environnement et le chemin courant pour localiser les modules. Ainsi, en " +"invoquant les documents :program:`pydoc spam` en précisant la version du " +"module, vous obtenez le même résultat qu’en lançant l’interpréteur Python et " +"en tapant la commande ``import spam``." #: ../Doc/library/pydoc.rst:90 msgid "" @@ -135,21 +198,31 @@ msgid "" "envvar:`PYTHONDOCS` environment variable to a different URL or to a local " "directory containing the Library Reference Manual pages." msgstr "" +"La documentation des modules principaux est supposée être hébergée sur " +"``https://docs.python.org/X.Y/library/`` et ``https://docs.python.org/fr/X.Y/" +"library`` pour la version française, où ``X`` et ``Y`` sont les versions " +"respectivement majeures et mineures de l’interpréteur Python. Ces valeurs " +"peuvent être redéfinies en configurant la variable d’environnement :envvar:" +"`PYTHONDOCS` sur une URL différente ou un répertoire local contenant les " +"pages du manuel de la bibliothèque de référence." #: ../Doc/library/pydoc.rst:97 msgid "Added the ``-b`` option." -msgstr "" +msgstr "Ajout de l’option ``-b``." #: ../Doc/library/pydoc.rst:100 msgid "The ``-g`` command line option was removed." -msgstr "" +msgstr "Suppression de l’option ``-g``." #: ../Doc/library/pydoc.rst:103 msgid "" ":mod:`pydoc` now uses :func:`inspect.signature` rather than :func:`inspect." "getfullargspec` to extract signature information from callables." msgstr "" +":mod:`pydoc` utilise à présent :func:`inspect.signature` plutôt que :func:" +"`inspect.getfullargspec` pour extraire les informations de signatures des " +"*callables*." #: ../Doc/library/pydoc.rst:108 msgid "Added the ``-n`` option." -msgstr "" +msgstr "Ajout de l’option ``-n``." diff --git a/library/queue.po b/library/queue.po index 5d7c1e2c4..d93252b29 100644 --- a/library/queue.po +++ b/library/queue.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-30 22:40+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-04-11 21:38+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" #: ../Doc/library/queue.rst:2 msgid ":mod:`queue` --- A synchronized queue class" -msgstr ":mod:`queue` --- File synchronisée" +msgstr ":mod:`queue` — File synchronisée" #: ../Doc/library/queue.rst:7 msgid "**Source code:** :source:`Lib/queue.py`" @@ -68,12 +69,12 @@ msgstr "" #: ../Doc/library/queue.rst:30 msgid "" "In addition, the module implements a \"simple\" :abbr:`FIFO (first-in, first-" -"out)` queue type where specific implementations can provide additional " -"guarantees in exchange for the smaller functionality." +"out)` queue type, :class:`SimpleQueue`, whose specific implementation " +"provides additional guarantees in exchange for the smaller functionality." msgstr "" -"De plus, ce module implémente une \"simple\" :abbr:`FIFO (first-in, first-" -"out)`, dont l'implémentation spécifique fournit plus de garanties au " -"détriment des fonctionnalités." +"Le module implémente aussi une :abbr:`FIFO (first-in, first-out)` basique, :" +"class:`SimpleQueue`, dont l’implémentation spécialisée fournit plus de " +"garanties au détriment des fonctionnalités." #: ../Doc/library/queue.rst:35 msgid "The :mod:`queue` module defines the following classes and exceptions:" @@ -138,12 +139,18 @@ msgid "" "If the *data* elements are not comparable, the data can be wrapped in a " "class that ignores the data item and only compares the priority number::" msgstr "" +"Si les éléments de *data* ne sont pas comparables, les données peuvent être " +"enveloppées dans une classe qui ignore l'élément de données et ne compare " +"que l'ordre de priorité ::" #: ../Doc/library/queue.rst:78 msgid "" "Constructor for an unbounded :abbr:`FIFO (first-in, first-out)` queue. " "Simple queues lack advanced functionality such as task tracking." msgstr "" +"Constructeur d'une file illimitée :abbr:`FIFO (first-in, first-out)`. Les " +"simples files d'attente ne possèdent pas de fonctionnalités avancées telles " +"que le suivi des tâches." #: ../Doc/library/queue.rst:86 msgid "" @@ -163,7 +170,7 @@ msgstr "" #: ../Doc/library/queue.rst:101 msgid "Queue Objects" -msgstr "Objets *Queue*" +msgstr "Objets ``Queue``" #: ../Doc/library/queue.rst:103 msgid "" @@ -251,11 +258,25 @@ msgstr "" "Si ce n'est pas le cas, elle lève l'exception :exc:`Empty` (*timeout* est " "ignoré dans ce cas)." -#: ../Doc/library/queue.rst:158 ../Doc/library/queue.rst:269 +#: ../Doc/library/queue.rst:155 +msgid "" +"Prior to 3.0 on POSIX systems, and for all versions on Windows, if *block* " +"is true and *timeout* is ``None``, this operation goes into an " +"uninterruptible wait on an underlying lock. This means that no exceptions " +"can occur, and in particular a SIGINT will not trigger a :exc:" +"`KeyboardInterrupt`." +msgstr "" +"Avant Python 3.0 sur les systèmes POSIX, et pour toutes les versions sur " +"Windows, si *block* est vrai et *timeout* vaut ``None``, cette opération " +"rentre dans une attente ininterruptible sous un verrou. Cela veut dire " +"qu'aucune exception ne peut arriver et, en particulier, un *SIGINT* ne " +"déclenchera pas de :exc:`KeyboardInterrupt`." + +#: ../Doc/library/queue.rst:163 ../Doc/library/queue.rst:274 msgid "Equivalent to ``get(False)``." msgstr "Équivalent à ``get(False)``." -#: ../Doc/library/queue.rst:160 +#: ../Doc/library/queue.rst:165 msgid "" "Two methods are offered to support tracking whether enqueued tasks have been " "fully processed by daemon consumer threads." @@ -263,7 +284,7 @@ msgstr "" "Deux méthodes sont proposées afin de savoir si les tâches mises dans la file " "ont été entièrement traitées par les fils d'exécution consommateurs du démon." -#: ../Doc/library/queue.rst:166 +#: ../Doc/library/queue.rst:171 msgid "" "Indicate that a formerly enqueued task is complete. Used by queue consumer " "threads. For each :meth:`get` used to fetch a task, a subsequent call to :" @@ -274,7 +295,7 @@ msgstr "" "`get` effectué afin de récupérer une tâche, un appel ultérieur à :meth:" "`task_done` informe la file que le traitement de la tâche est terminé." -#: ../Doc/library/queue.rst:170 +#: ../Doc/library/queue.rst:175 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 " @@ -284,7 +305,7 @@ msgstr "" "é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/queue.rst:174 +#: ../Doc/library/queue.rst:179 msgid "" "Raises a :exc:`ValueError` if called more times than there were items placed " "in the queue." @@ -292,13 +313,13 @@ 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/queue.rst:180 +#: ../Doc/library/queue.rst:185 msgid "Blocks until all items in the queue have been gotten and processed." msgstr "" "Bloque jusqu'à ce que tous les éléments de la file aient été obtenus et " "traités." -#: ../Doc/library/queue.rst:182 +#: ../Doc/library/queue.rst:187 msgid "" "The count of unfinished tasks goes up whenever an item is added to the " "queue. The count goes down whenever a consumer thread calls :meth:" @@ -312,49 +333,62 @@ msgstr "" "tout le travail à effectuer dessus est terminé. Lorsque le nombre de tâches " "non terminées devient nul, :meth:`join` débloque." -#: ../Doc/library/queue.rst:188 +#: ../Doc/library/queue.rst:193 msgid "Example of how to wait for enqueued tasks to be completed::" msgstr "" "Exemple montrant comment attendre que les tâches mises dans la file soient " "terminées ::" -#: ../Doc/library/queue.rst:219 +#: ../Doc/library/queue.rst:224 msgid "SimpleQueue Objects" -msgstr "" +msgstr "Objets ``SimpleQueue``" -#: ../Doc/library/queue.rst:221 +#: ../Doc/library/queue.rst:226 msgid "" ":class:`SimpleQueue` objects provide the public methods described below." msgstr "" +"Les objets :class:`SimpleQueue` fournissent les méthodes publiques décrites " +"ci-dessous." -#: ../Doc/library/queue.rst:225 +#: ../Doc/library/queue.rst:230 msgid "" "Return the approximate size of the queue. Note, qsize() > 0 doesn't " "guarantee that a subsequent get() will not block." msgstr "" +"Renvoie la taille approximative de la file. Notez que ``qsize() > 0`` ne " +"garantit pas qu'un ``get()`` ultérieur ne soit pas bloquant." -#: ../Doc/library/queue.rst:231 +#: ../Doc/library/queue.rst:236 msgid "" "Return ``True`` if the queue is empty, ``False`` otherwise. If empty() " "returns ``False`` it doesn't guarantee that a subsequent call to get() will " "not block." msgstr "" +"Renvoie ``True`` si la file est vide, ``False`` sinon. Si ``empty()`` " +"renvoie ``False``, cela ne garantit pas qu'un appel ultérieur à ``get()`` ne " +"soit pas bloquant." -#: ../Doc/library/queue.rst:238 +#: ../Doc/library/queue.rst:243 msgid "" "Put *item* into the queue. The method never blocks and always succeeds " "(except for potential low-level errors such as failure to allocate memory). " "The optional args *block* and *timeout* are ignored and only provided for " "compatibility with :meth:`Queue.put`." msgstr "" +"Met *item* dans la file. La méthode ne bloque jamais et aboutit toujours " +"(sauf en cas de potentielles erreurs de bas niveau, telles qu'un échec " +"d'allocation de mémoire). Les arguments optionnels *block* et *timeout* sont " +"ignorés et fournis uniquement pour la compatibilité avec :meth:`Queue.put`." -#: ../Doc/library/queue.rst:253 +#: ../Doc/library/queue.rst:258 msgid "" "Equivalent to ``put(item)``, provided for compatibility with :meth:`Queue." "put_nowait`." msgstr "" +"Équivalent de ``put(item)``, fourni pour la compatibilité avec :meth:`Queue." +"put_nowait`." -#: ../Doc/library/queue.rst:259 +#: ../Doc/library/queue.rst:264 msgid "" "Remove and return an item from the queue. If optional args *block* is true " "and *timeout* is ``None`` (the default), block if necessary until an item is " @@ -364,12 +398,21 @@ msgid "" "immediately available, else raise the :exc:`Empty` exception (*timeout* is " "ignored in that case)." msgstr "" +"Retire et renvoie un élément de la file. Si les arguments optionnels *block* " +"et *timeout* valent respectivement ``True`` et ``None`` (les valeurs par " +"défaut), la méthode bloque si nécessaire jusqu'à ce qu'un élément soit " +"disponible. Si *timeout* est un entier positif, elle bloque au plus " +"*timeout* secondes et lève l'exception :exc:`Empty` s'il n'y avait pas " +"d'élément disponible pendant cette période de temps. Sinon (*block* vaut " +"``False``), elle renvoie un élément s'il y en a un immédiatement disponible. " +"Si ce n'est pas le cas, elle lève l'exception :exc:`Empty` (*timeout* est " +"ignoré dans ce cas)." -#: ../Doc/library/queue.rst:276 +#: ../Doc/library/queue.rst:281 msgid "Class :class:`multiprocessing.Queue`" msgstr "Classe :class:`multiprocessing.Queue`" -#: ../Doc/library/queue.rst:275 +#: ../Doc/library/queue.rst:280 msgid "" "A queue class for use in a multi-processing (rather than multi-threading) " "context." @@ -377,7 +420,7 @@ msgstr "" "Une file à utiliser dans un contexte multi-processus (plutôt que *multi-" "thread*)." -#: ../Doc/library/queue.rst:278 +#: ../Doc/library/queue.rst:283 msgid "" ":class:`collections.deque` is an alternative implementation of unbounded " "queues with fast atomic :meth:`~collections.deque.append` and :meth:" diff --git a/library/quopri.po b/library/quopri.po index 521f25412..5516eb43c 100644 --- a/library/quopri.po +++ b/library/quopri.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/quopri.rst:2 msgid ":mod:`quopri` --- Encode and decode MIME quoted-printable data" -msgstr ":mod:`quopri` --- Encode et décode des données *MIME quoted-printable*" +msgstr ":mod:`quopri` — Encode et décode des données *MIME quoted-printable*" #: ../Doc/library/quopri.rst:7 msgid "**Source code:** :source:`Lib/quopri.py`" diff --git a/library/random.po b/library/random.po index c8ef900b4..909e6f2a2 100644 --- a/library/random.po +++ b/library/random.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: 2017-05-27 14:03+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-12-06 22:18+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\n" #: ../Doc/library/random.rst:2 msgid ":mod:`random` --- Generate pseudo-random numbers" -msgstr "" +msgstr ":mod:`random` --- Génère des nombres pseudo-aléatoires" #: ../Doc/library/random.rst:7 msgid "**Source code:** :source:`Lib/random.py`" @@ -28,6 +28,8 @@ msgid "" "This module implements pseudo-random number generators for various " "distributions." msgstr "" +"Ce module implémente des générateurs de nombres pseudo-aléatoires pour " +"différentes distributions." #: ../Doc/library/random.rst:14 msgid "" @@ -36,6 +38,10 @@ msgid "" "permutation of a list in-place, and a function for random sampling without " "replacement." msgstr "" +"Pour les entiers, il existe une sélection uniforme à partir d'une plage. " +"Pour les séquences, il existe une sélection uniforme d'un élément aléatoire, " +"une fonction pour générer une permutation aléatoire d'une liste sur place et " +"une fonction pour un échantillonnage aléatoire sans remplacement." #: ../Doc/library/random.rst:19 msgid "" @@ -43,6 +49,10 @@ msgid "" "lognormal, negative exponential, gamma, and beta distributions. For " "generating distributions of angles, the von Mises distribution is available." msgstr "" +"Pour l'ensemble des réels, il y a des fonctions pour calculer des " +"distributions uniformes, normales (gaussiennes), log-normales, " +"exponentielles négatives, gamma et bêta. Pour générer des distributions " +"d'angles, la distribution de *von Mises* est disponible." #: ../Doc/library/random.rst:23 msgid "" @@ -55,6 +65,16 @@ msgid "" "However, being completely deterministic, it is not suitable for all " "purposes, and is completely unsuitable for cryptographic purposes." msgstr "" +"Presque toutes les fonctions du module dépendent de la fonction de base :" +"func:`.random`, qui génère un nombre à virgule flottante aléatoire de façon " +"uniforme dans la plage semi-ouverte [0.0, 1.0). Python utilise l'algorithme " +"*Mersenne Twister* comme générateur de base. Il produit des flottants de " +"précision de 53 bits et a une période de 2\\*\\*\\*19937-1. L'implémentation " +"sous-jacente en C est à la fois rapide et compatible avec les programmes " +"ayant de multiples fils d'exécution. Le *Mersenne Twister* est l'un des " +"générateurs de nombres aléatoires les plus largement testés qui existent. " +"Cependant, étant complètement déterministe, il n'est pas adapté à tous les " +"usages et est totalement inadapté à des fins cryptographiques." #: ../Doc/library/random.rst:32 msgid "" @@ -62,6 +82,10 @@ msgid "" "instance of the :class:`random.Random` class. You can instantiate your own " "instances of :class:`Random` to get generators that don't share state." msgstr "" +"Les fonctions fournies par ce module dépendent en réalité de méthodes d’une " +"instance cachée de la classe :class:`random.Random`. Vous pouvez créer vos " +"propres instances de :class:`Random` pour obtenir des générateurs sans états " +"partagés." #: ../Doc/library/random.rst:36 msgid "" @@ -72,6 +96,13 @@ msgid "" "`~Random.getrandbits` method --- this allows :meth:`randrange` to produce " "selections over an arbitrarily large range." msgstr "" +"La classe :class:`Random` peut également être sous-classée si vous voulez " +"utiliser un générateur de base différent, de votre propre conception. Dans " +"ce cas, remplacez les méthodes :meth:`~Random.random`, :meth:`~Random." +"seed`, :meth:`~Random.gettsate` et :meth:`~Random.setstate`. En option, un " +"nouveau générateur peut fournir une méthode :meth:`~Random.getrandbits` --- " +"ce qui permet à :meth:`randrange` de produire des sélections sur une plage " +"de taille arbitraire." #: ../Doc/library/random.rst:42 msgid "" @@ -79,12 +110,18 @@ msgid "" "uses the system function :func:`os.urandom` to generate random numbers from " "sources provided by the operating system." msgstr "" +"Le module :mod:`random` fournit également la classe :class:`SystemRandom` " +"qui utilise la fonction système :func:`os.urandom` pour générer des nombres " +"aléatoires à partir de sources fournies par le système d'exploitation." #: ../Doc/library/random.rst:48 msgid "" "The pseudo-random generators of this module should not be used for security " "purposes. For security or cryptographic uses, see the :mod:`secrets` module." msgstr "" +"Les générateurs pseudo-aléatoires de ce module ne doivent pas être utilisés " +"à des fins de sécurité. Pour des utilisations de sécurité ou " +"cryptographiques, voir le module :mod:`secrets`." #: ../Doc/library/random.rst:54 msgid "" @@ -92,6 +129,9 @@ msgid "" "equidistributed uniform pseudorandom number generator\", ACM Transactions on " "Modeling and Computer Simulation Vol. 8, No. 1, January pp.3--30 1998." msgstr "" +"*M. Matsumoto and T. Nishimura, \"Mersenne Twister: A 623-dimensionally " +"equidistributed uniform pseudorandom number generator\", ACM Transactions on " +"Modeling and Computer Simulation Vol. 8, No. 1,* Janvier pp.3--30 1998." #: ../Doc/library/random.rst:59 msgid "" @@ -99,14 +139,17 @@ msgid "" "recipes/576707/>`_ for a compatible alternative random number generator with " "a long period and comparatively simple update operations." msgstr "" +"`Complementary-Multiply-with-Carry recipe `_ pour un autre générateur de nombres aléatoires avec une " +"longue période et des opérations de mise à jour relativement simples." #: ../Doc/library/random.rst:66 msgid "Bookkeeping functions" -msgstr "" +msgstr "Fonctions de gestion d'état" #: ../Doc/library/random.rst:70 msgid "Initialize the random number generator." -msgstr "" +msgstr "Initialise le générateur de nombres aléatoires." #: ../Doc/library/random.rst:72 msgid "" @@ -115,10 +158,14 @@ msgid "" "instead of the system time (see the :func:`os.urandom` function for details " "on availability)." msgstr "" +"Si *a* est omis ou ``None``, l'heure système actuelle est utilisée. Si des " +"sources aléatoires sont fournies par le système d'exploitation, elles sont " +"utilisées à la place de l'heure système (voir la fonction :func:`os.urandom` " +"pour les détails sur la disponibilité)." #: ../Doc/library/random.rst:77 msgid "If *a* is an int, it is used directly." -msgstr "" +msgstr "Si *a* est un entier, il est utilisé directement." #: ../Doc/library/random.rst:79 msgid "" @@ -126,6 +173,9 @@ msgid "" "`bytearray` object gets converted to an :class:`int` and all of its bits are " "used." msgstr "" +"Avec la version 2 (par défaut), un objet :class:`str`, :class:`bytes` ou :" +"class:`bytearray` est converti en :class:`int` et tous ses bits sont " +"utilisés." #: ../Doc/library/random.rst:82 msgid "" @@ -133,17 +183,24 @@ msgid "" "versions of Python), the algorithm for :class:`str` and :class:`bytes` " "generates a narrower range of seeds." msgstr "" +"Avec la version 1 (fournie pour reproduire des séquences aléatoires " +"produites par d'anciennes versions de Python), l'algorithme pour :class:" +"`str` et :class:`bytes` génère une gamme plus étroite de graines." #: ../Doc/library/random.rst:86 msgid "" "Moved to the version 2 scheme which uses all of the bits in a string seed." msgstr "" +"Passée à la version 2 du schéma qui utilise tous les bits d'une graine de " +"chaîne de caractères." #: ../Doc/library/random.rst:91 msgid "" "Return an object capturing the current internal state of the generator. " "This object can be passed to :func:`setstate` to restore the state." msgstr "" +"Renvoie un objet capturant l'état interne actuel du générateur. Cet objet " +"peut être passé à :func:`setstate` pour restaurer cet état." #: ../Doc/library/random.rst:97 msgid "" @@ -151,6 +208,9 @@ msgid "" "and :func:`setstate` restores the internal state of the generator to what it " "was at the time :func:`getstate` was called." msgstr "" +"Il convient que *state* ait été obtenu à partir d'un appel précédent à :func:" +"`getstate`, et :func:`setstate` restaure l'état interne du générateur à ce " +"qu'il était au moment où :func:`getstate` a été appelé." #: ../Doc/library/random.rst:104 msgid "" @@ -159,10 +219,15 @@ msgid "" "as an optional part of the API. When available, :meth:`getrandbits` enables :" "meth:`randrange` to handle arbitrarily large ranges." msgstr "" +"Renvoie un entier Python avec *k* bits aléatoires. Cette méthode est fournie " +"avec le générateur MersenneTwister. Quelques autres générateurs peuvent " +"également la fournir en option comme partie de l'API. Lorsqu'elle est " +"disponible, :meth:`getrandbits` permet à :meth:`randrange` de gérer des " +"gammes arbitrairement larges." #: ../Doc/library/random.rst:111 msgid "Functions for integers" -msgstr "" +msgstr "Fonctions pour les entiers" #: ../Doc/library/random.rst:116 msgid "" @@ -170,6 +235,9 @@ msgid "" "is equivalent to ``choice(range(start, stop, step))``, but doesn't actually " "build a range object." msgstr "" +"Renvoie un élément sélectionné aléatoirement à partir de ``range(start, " +"stop, step)``. C'est équivalent à ``choice(range(start, stop, step))``, " +"mais ne construit pas réellement un objet range." #: ../Doc/library/random.rst:120 msgid "" @@ -177,6 +245,9 @@ msgid "" "arguments should not be used because the function may use them in unexpected " "ways." msgstr "" +"Le motif d'argument positionnel correspond à celui de :func:`range`. " +"N'utilisez pas d'arguments nommés parce que la fonction peut les utiliser de " +"manière inattendue." #: ../Doc/library/random.rst:123 msgid "" @@ -184,28 +255,38 @@ msgid "" "values. Formerly it used a style like ``int(random()*n)`` which could " "produce slightly uneven distributions." msgstr "" +":meth:`randrange` est plus sophistiquée dans la production de valeurs " +"uniformément distribuées. Auparavant, elle utilisait un style comme " +"``int(random()*n)`` qui pouvait produire des distributions légèrement " +"inégales." #: ../Doc/library/random.rst:130 msgid "" "Return a random integer *N* such that ``a <= N <= b``. Alias for " "``randrange(a, b+1)``." msgstr "" +"Renvoie un entier aléatoire *N* tel que ``a <= N <= b``. Alias pour " +"``randrange(a, b+1)``." #: ../Doc/library/random.rst:135 msgid "Functions for sequences" -msgstr "" +msgstr "Fonctions pour les séquences" #: ../Doc/library/random.rst:139 msgid "" "Return a random element from the non-empty sequence *seq*. If *seq* is " "empty, raises :exc:`IndexError`." msgstr "" +"Renvoie un élément aléatoire de la séquence non vide *seq*. Si *seq* est " +"vide, lève :exc:`IndexError`." #: ../Doc/library/random.rst:144 msgid "" "Return a *k* sized list of elements chosen from the *population* with " "replacement. If the *population* is empty, raises :exc:`IndexError`." msgstr "" +"Renvoie une liste de taille *k* d'éléments choisis dans la *population* avec " +"remise. Si la *population* est vide, lève :exc:`IndexError`." #: ../Doc/library/random.rst:147 msgid "" @@ -217,6 +298,14 @@ msgid "" "50]``. Internally, the relative weights are converted to cumulative weights " "before making selections, so supplying the cumulative weights saves work." msgstr "" +"Si une séquence de *poids* est spécifiée, les tirages sont effectués en " +"fonction des poids relatifs. Alternativement, si une séquence *cum_weights* " +"est donnée, les tirages sont faits en fonction des poids cumulés (peut-être " +"calculés en utilisant :func:`itertools.accumulate`). Par exemple, les poids " +"relatifs ``[10, 5, 30, 5]`` sont équivalents aux poids cumulatifs ``[10, 15, " +"45, 50]``. En interne, les poids relatifs sont convertis en poids " +"cumulatifs avant d'effectuer les tirages, ce qui vous permet d'économiser du " +"travail en fournissant des pondérations cumulatives." #: ../Doc/library/random.rst:156 msgid "" @@ -225,6 +314,10 @@ msgid "" "same length as the *population* sequence. It is a :exc:`TypeError` to " "specify both *weights* and *cum_weights*." msgstr "" +"Si ni *weights* ni *cum_weights* ne sont spécifiés, les tirages sont " +"effectués avec une probabilité uniforme. Si une séquence de poids est " +"fournie, elle doit être de la même longueur que la séquence *population*. " +"Spécifier à la fois *weights* et *cum_weights* lève une :exc:`TypeError`." #: ../Doc/library/random.rst:161 msgid "" @@ -233,23 +326,46 @@ msgid "" "integers, floats, and fractions but excludes decimals)." msgstr "" -#: ../Doc/library/random.rst:170 +#: ../Doc/library/random.rst:165 +msgid "" +"For a given seed, the :func:`choices` function with equal weighting " +"typically produces a different sequence than repeated calls to :func:" +"`choice`. The algorithm used by :func:`choices` uses floating point " +"arithmetic for internal consistency and speed. The algorithm used by :func:" +"`choice` defaults to integer arithmetic with repeated selections to avoid " +"small biases from round-off error." +msgstr "" +"Pour une graine donnée, la fonction :func:`choices` avec pondération " +"uniforme produit généralement une séquence différente des appels répétés à :" +"func:`choice`. L'algorithme utilisé par :func:`choices` utilise " +"l'arithmétique à virgule flottante pour la cohérence interne et la vitesse. " +"L'algorithme utilisé par :func:`choice` utilise par défaut l'arithmétique " +"entière avec des tirages répétés pour éviter les petits biais dus aux " +"erreurs d'arrondi." + +#: ../Doc/library/random.rst:177 msgid "Shuffle the sequence *x* in place." msgstr "" +"Mélange la séquence *x* sans créer de nouvelle instance (« sur place »)." -#: ../Doc/library/random.rst:172 +#: ../Doc/library/random.rst:179 msgid "" "The optional argument *random* is a 0-argument function returning a random " "float in [0.0, 1.0); by default, this is the function :func:`.random`." msgstr "" +"L'argument optionnel *random* est une fonction sans argument renvoyant un " +"nombre aléatoire à virgule flottante dans [0.0, 1.0); par défaut, c'est la " +"fonction :func:`.random`." -#: ../Doc/library/random.rst:175 +#: ../Doc/library/random.rst:182 msgid "" "To shuffle an immutable sequence and return a new shuffled list, use " "``sample(x, k=len(x))`` instead." msgstr "" +"Pour mélanger une séquence immuable et renvoyer une nouvelle liste mélangée, " +"utilisez ``sample(x, k=len(x))`` à la place." -#: ../Doc/library/random.rst:178 +#: ../Doc/library/random.rst:185 msgid "" "Note that even for small ``len(x)``, the total number of permutations of *x* " "can quickly grow larger than the period of most random number generators. " @@ -257,14 +373,22 @@ msgid "" "generated. For example, a sequence of length 2080 is the largest that can " "fit within the period of the Mersenne Twister random number generator." msgstr "" +"Notez que même pour les petits ``len(x)``, le nombre total de permutations " +"de *x* peut rapidement devenir plus grand que la période de la plupart des " +"générateurs de nombres aléatoires. Cela implique que la plupart des " +"permutations d'une longue séquence ne peuvent jamais être générées. Par " +"exemple, une séquence de longueur 2080 est la plus grande qui puisse tenir " +"dans la période du générateur de nombres aléatoires Mersenne Twister." -#: ../Doc/library/random.rst:187 +#: ../Doc/library/random.rst:194 msgid "" "Return a *k* length list of unique elements chosen from the population " "sequence or set. Used for random sampling without replacement." msgstr "" +"Renvoie une liste de *k* éléments uniques choisis dans la séquence ou " +"l'ensemble de la population. Utilisé pour un tirage aléatoire sans remise." -#: ../Doc/library/random.rst:190 +#: ../Doc/library/random.rst:197 msgid "" "Returns a new list containing elements from the population while leaving the " "original population unchanged. The resulting list is in selection order so " @@ -272,70 +396,102 @@ msgid "" "winners (the sample) to be partitioned into grand prize and second place " "winners (the subslices)." msgstr "" +"Renvoie une nouvelle liste contenant des éléments de la population tout en " +"laissant la population originale inchangée. La liste résultante est classée " +"par ordre de sélection de sorte que toutes les sous-tranches soient " +"également des échantillons aléatoires valides. Cela permet aux gagnants du " +"tirage (l'échantillon) d'être divisés en gagnants du grand prix et en " +"gagnants de la deuxième place (les sous-tranches)." -#: ../Doc/library/random.rst:196 +#: ../Doc/library/random.rst:203 msgid "" "Members of the population need not be :term:`hashable` or unique. If the " "population contains repeats, then each occurrence is a possible selection in " "the sample." msgstr "" +"Les membres de la population n'ont pas besoin d'être :term:" +"`hachables` ou uniques. Si la population contient des répétitions, " +"alors chaque occurrence est un tirage possible dans l'échantillon." -#: ../Doc/library/random.rst:199 +#: ../Doc/library/random.rst:206 msgid "" "To choose a sample from a range of integers, use a :func:`range` object as " "an argument. This is especially fast and space efficient for sampling from " "a large population: ``sample(range(10000000), k=60)``." msgstr "" +"Pour choisir un échantillon parmi un intervalle d'entiers, utilisez un " +"objet :func:`range` comme argument. Ceci est particulièrement rapide et " +"économe en mémoire pour un tirage dans une grande population : " +"``échantillon(range(10000000), k=60)``." -#: ../Doc/library/random.rst:203 +#: ../Doc/library/random.rst:210 msgid "" "If the sample size is larger than the population size, a :exc:`ValueError` " "is raised." msgstr "" +"Si la taille de l'échantillon est supérieure à la taille de la population, " +"une :exc:`ValueError` est levée." -#: ../Doc/library/random.rst:207 +#: ../Doc/library/random.rst:214 msgid "Real-valued distributions" -msgstr "" +msgstr "Distributions pour les nombre réels" -#: ../Doc/library/random.rst:209 +#: ../Doc/library/random.rst:216 msgid "" "The following functions generate specific real-valued distributions. " "Function parameters are named after the corresponding variables in the " "distribution's equation, as used in common mathematical practice; most of " "these equations can be found in any statistics text." msgstr "" +"Les fonctions suivantes génèrent des distributions spécifiques en nombre " +"réels. Les paramètres de fonction sont nommés d'après les variables " +"correspondantes de l'équation de la distribution, telles qu'elles sont " +"utilisées dans la pratique mathématique courante ; la plupart de ces " +"équations peuvent être trouvées dans tout document traitant de statistiques." -#: ../Doc/library/random.rst:217 +#: ../Doc/library/random.rst:224 msgid "Return the next random floating point number in the range [0.0, 1.0)." msgstr "" +"Renvoie le nombre aléatoire à virgule flottante suivant dans la plage [0.0, " +"1.0)." -#: ../Doc/library/random.rst:222 +#: ../Doc/library/random.rst:229 msgid "" "Return a random floating point number *N* such that ``a <= N <= b`` for ``a " "<= b`` and ``b <= N <= a`` for ``b < a``." msgstr "" +"Renvoie un nombre aléatoire à virgule flottante *N* tel que ``a <= N <= b`` " +"pour ``a <= b`` et ``b <= N <= a`` pour ``b < a``." -#: ../Doc/library/random.rst:225 +#: ../Doc/library/random.rst:232 msgid "" "The end-point value ``b`` may or may not be included in the range depending " "on floating-point rounding in the equation ``a + (b-a) * random()``." msgstr "" +"La valeur finale ``b`` peut ou non être incluse dans la plage selon " +"l'arrondi à virgule flottante dans l'équation ``a + (b-a) * random()``." -#: ../Doc/library/random.rst:231 +#: ../Doc/library/random.rst:238 msgid "" "Return a random floating point number *N* such that ``low <= N <= high`` and " "with the specified *mode* between those bounds. The *low* and *high* bounds " "default to zero and one. The *mode* argument defaults to the midpoint " "between the bounds, giving a symmetric distribution." msgstr "" +"Renvoie un nombre aléatoire en virgule flottante *N* tel que ``low <= N <= " +"high`` et avec le *mode* spécifié entre ces bornes. Les limites *low* et " +"*high* par défaut sont zéro et un. L'argument *mode* est par défaut le " +"point médian entre les bornes, ce qui donne une distribution symétrique." -#: ../Doc/library/random.rst:239 +#: ../Doc/library/random.rst:246 msgid "" "Beta distribution. Conditions on the parameters are ``alpha > 0`` and " "``beta > 0``. Returned values range between 0 and 1." msgstr "" +"Distribution bêta. Les conditions sur les paramètres sont ``alpha > 0`` et " +"``beta > 0``. Les valeurs renvoyées varient entre 0 et 1." -#: ../Doc/library/random.rst:245 +#: ../Doc/library/random.rst:252 msgid "" "Exponential distribution. *lambd* is 1.0 divided by the desired mean. It " "should be nonzero. (The parameter would be called \"lambda\", but that is a " @@ -343,61 +499,90 @@ msgid "" "if *lambd* is positive, and from negative infinity to 0 if *lambd* is " "negative." msgstr "" +"Distribution exponentielle. *lambd* est 1,0 divisé par la moyenne désirée. " +"Ce ne doit pas être zéro. (Le paramètre aurait dû s'appeler \"lambda\", " +"mais c'est un mot réservé en Python.) Les valeurs renvoyées vont de 0 à " +"plus l'infini positif si *lambd* est positif, et de moins l'infini à 0 si " +"*lambd* est négatif." -#: ../Doc/library/random.rst:254 +#: ../Doc/library/random.rst:261 msgid "" "Gamma distribution. (*Not* the gamma function!) Conditions on the " "parameters are ``alpha > 0`` and ``beta > 0``." msgstr "" +"Distribution gamma. (*Ce n'est pas* la fonction gamma !) Les conditions sur " +"les paramètres sont ``alpha > 0`` et ``beta > 0``." -#: ../Doc/library/random.rst:257 +#: ../Doc/library/random.rst:264 msgid "The probability distribution function is::" -msgstr "" +msgstr "La fonction de distribution de probabilité est ::" -#: ../Doc/library/random.rst:266 +#: ../Doc/library/random.rst:273 msgid "" "Gaussian distribution. *mu* is the mean, and *sigma* is the standard " "deviation. This is slightly faster than the :func:`normalvariate` function " "defined below." msgstr "" +"Distribution gaussienne. *mu* est la moyenne et *sigma* est la écart type. " +"C'est légèrement plus rapide que la fonction :func:`normalvariate` définie " +"ci-dessous." -#: ../Doc/library/random.rst:273 +#: ../Doc/library/random.rst:280 msgid "" "Log normal distribution. If you take the natural logarithm of this " "distribution, you'll get a normal distribution with mean *mu* and standard " "deviation *sigma*. *mu* can have any value, and *sigma* must be greater " "than zero." msgstr "" +"Logarithme de la distribution normale. Si vous prenez le logarithme naturel " +"de cette distribution, vous obtiendrez une distribution normale avec *mu* " +"moyen et écart-type *sigma*. *mu* peut avoir n'importe quelle valeur et " +"*sigma* doit être supérieur à zéro." -#: ../Doc/library/random.rst:281 +#: ../Doc/library/random.rst:288 msgid "" "Normal distribution. *mu* is the mean, and *sigma* is the standard " "deviation." msgstr "" +"Distribution normale. *mu* est la moyenne et *sigma* est l'écart type." -#: ../Doc/library/random.rst:286 +#: ../Doc/library/random.rst:293 msgid "" "*mu* is the mean angle, expressed in radians between 0 and 2\\*\\ *pi*, and " "*kappa* is the concentration parameter, which must be greater than or equal " "to zero. If *kappa* is equal to zero, this distribution reduces to a " "uniform random angle over the range 0 to 2\\*\\ *pi*." msgstr "" +"*mu* est l'angle moyen, exprimé en radians entre 0 et 2\\*\\ *pi*, et " +"*kappa* est le paramètre de concentration, qui doit être supérieur ou égal à " +"zéro. Si *kappa* est égal à zéro, cette distribution se réduit à un angle " +"aléatoire uniforme sur la plage de 0 à 2\\*\\ *pi*." -#: ../Doc/library/random.rst:294 +#: ../Doc/library/random.rst:301 msgid "Pareto distribution. *alpha* is the shape parameter." -msgstr "" +msgstr "Distribution de Pareto. *alpha* est le paramètre de forme." -#: ../Doc/library/random.rst:299 +#: ../Doc/library/random.rst:306 msgid "" "Weibull distribution. *alpha* is the scale parameter and *beta* is the " "shape parameter." msgstr "" +"Distribution de Weibull. *alpha* est le paramètre de l'échelle et *beta* " +"est le paramètre de forme." -#: ../Doc/library/random.rst:304 +#: ../Doc/library/random.rst:311 msgid "Alternative Generator" +msgstr "Générateur alternatif" + +#: ../Doc/library/random.rst:315 +msgid "" +"Class that implements the default pseudo-random number generator used by " +"the :mod:`random` module." msgstr "" +"Classe qui implémente le générateur de nombres pseudo-aléatoires par défaut " +"utilisé par le module :mod:`random`." -#: ../Doc/library/random.rst:308 +#: ../Doc/library/random.rst:320 msgid "" "Class that uses the :func:`os.urandom` function for generating random " "numbers from sources provided by the operating system. Not available on all " @@ -406,78 +591,113 @@ msgid "" "ignored. The :meth:`getstate` and :meth:`setstate` methods raise :exc:" "`NotImplementedError` if called." msgstr "" +"Classe qui utilise la fonction :func:`os.urandom` pour générer des nombres " +"aléatoires à partir de sources fournies par le système d'exploitation. Non " +"disponible sur tous les systèmes. Ne repose pas sur un état purement " +"logiciel et les séquences ne sont pas reproductibles. Par conséquent, la " +"méthode :meth:`seed` n'a aucun effet et est ignorée. Les méthodes :meth:" +"`getstate` et :meth:`setstate` lèvent :exc:`NotImplementedError` si vous les " +"appelez." -#: ../Doc/library/random.rst:317 +#: ../Doc/library/random.rst:329 msgid "Notes on Reproducibility" -msgstr "" +msgstr "Remarques sur la reproductibilité" -#: ../Doc/library/random.rst:319 +#: ../Doc/library/random.rst:331 msgid "" "Sometimes it is useful to be able to reproduce the sequences given by a " "pseudo random number generator. By re-using a seed value, the same sequence " "should be reproducible from run to run as long as multiple threads are not " "running." msgstr "" +"Il est parfois utile de pouvoir reproduire les séquences données par un " +"générateur de nombres pseudo-aléatoires. En réutilisant la même graine, la " +"même séquence devrait être reproductible d'une exécution à l'autre tant que " +"plusieurs processus ne sont pas en cours." -#: ../Doc/library/random.rst:323 +#: ../Doc/library/random.rst:335 msgid "" "Most of the random module's algorithms and seeding functions are subject to " "change across Python versions, but two aspects are guaranteed not to change:" msgstr "" +"La plupart des algorithmes et des fonctions de génération de graine du " +"module aléatoire sont susceptibles d'être modifiés d'une version à l'autre " +"de Python, mais deux aspects sont garantis de ne pas changer ::" -#: ../Doc/library/random.rst:326 +#: ../Doc/library/random.rst:338 msgid "" "If a new seeding method is added, then a backward compatible seeder will be " "offered." msgstr "" +"Si une nouvelle méthode de génération de graine est ajoutée, une fonction " +"rétro-compatible sera offerte." -#: ../Doc/library/random.rst:329 +#: ../Doc/library/random.rst:341 msgid "" "The generator's :meth:`~Random.random` method will continue to produce the " "same sequence when the compatible seeder is given the same seed." msgstr "" +"La méthode :meth:`~Random.random` du générateur continuera à produire la " +"même séquence lorsque la fonction de génération de graine compatible recevra " +"la même semence." -#: ../Doc/library/random.rst:335 +#: ../Doc/library/random.rst:347 msgid "Examples and Recipes" -msgstr "" +msgstr "Exemples et recettes" -#: ../Doc/library/random.rst:337 +#: ../Doc/library/random.rst:349 msgid "Basic examples::" -msgstr "Utilisation basique : ::" +msgstr "Exemples de base ::" -#: ../Doc/library/random.rst:365 +#: ../Doc/library/random.rst:377 msgid "Simulations::" -msgstr "" +msgstr "Simulations : ::" -#: ../Doc/library/random.rst:390 +#: ../Doc/library/random.rst:406 msgid "" "Example of `statistical bootstrapping `_ using resampling with replacement to estimate " "a confidence interval for the mean of a sample of size five::" msgstr "" +"Exemple de `*bootstrapping* statistique `_ utilisant le ré-échantillonnage avec remise pour " +"estimer un intervalle de confiance pour la moyenne d'un échantillon de " +"taille cinq : ::" -#: ../Doc/library/random.rst:404 +#: ../Doc/library/random.rst:420 msgid "" "Example of a `resampling permutation test `_ to determine the statistical " "significance or `p-value `_ of an " "observed difference between the effects of a drug versus a placebo::" msgstr "" +"Exemple d'un `*resampling permutation test* `_ pour déterminer la " +"signification statistique ou `valeur p `_ d'une différence observée entre les effets d'un médicament et " +"ceux d'un placebo ::" -#: ../Doc/library/random.rst:431 +#: ../Doc/library/random.rst:447 msgid "" "Simulation of arrival times and service deliveries in a single server queue::" msgstr "" +"Simulation des heures d'arrivée et des livraisons de services dans une seule " +"file d'attente de serveurs ::" -#: ../Doc/library/random.rst:462 +#: ../Doc/library/random.rst:478 msgid "" "`Statistics for Hackers `_ a " "video tutorial by `Jake Vanderplas `_ on statistical analysis using just a few fundamental " "concepts including simulation, sampling, shuffling, and cross-validation." msgstr "" +"`Statistics for Hackers `_ un " +"tutoriel vidéo par `Jake Vanderplas `_ sur l'analyse statistique en utilisant seulement quelques " +"concepts fondamentaux dont la simulation, l'échantillonnage, le brassage et " +"la validation croisée." -#: ../Doc/library/random.rst:468 +#: ../Doc/library/random.rst:484 msgid "" "`Economics Simulation `_ a simulation of a marketplace by `Peter Norvig `_ simulation d'un marché par `Peter Norvig `_ qui montre l'utilisation efficace de plusieurs des outils et " +"distributions fournis par ce module (*gauss*, *uniform*, *sample*, " +"*betavariate*, *choice*, *triangular*, et *randrange*)." -#: ../Doc/library/random.rst:475 +#: ../Doc/library/random.rst:491 msgid "" "`A Concrete Introduction to Probability (using Python) `_ a tutorial by `Peter " @@ -494,3 +719,8 @@ msgid "" "theory, how to write simulations, and how to perform data analysis using " "Python." msgstr "" +"`A Concrete Introduction to Probability (using Python) `_ un tutoriel par " +"`Peter Norvig `_ couvrant les bases de la " +"théorie des probabilités, comment écrire des simulations, et comment " +"effectuer des analyses de données avec Python." diff --git a/library/re.po b/library/re.po index af00a5d78..2049bcb58 100644 --- a/library/re.po +++ b/library/re.po @@ -4,19 +4,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-29 19:30+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-03-27 15:23+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.0.4\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/library/re.rst:2 msgid ":mod:`re` --- Regular expression operations" -msgstr ":mod:`re` --- Opérations à base d'expressions rationnelles" +msgstr ":mod:`re` — Opérations à base d'expressions rationnelles" #: ../Doc/library/re.rst:10 msgid "**Source code:** :source:`Lib/re.py`" @@ -209,11 +209,11 @@ msgstr "" msgid "The special characters are:" msgstr "Les caractères spéciaux sont :" -#: ../Doc/library/re.rst:99 ../Doc/library/re.rst:1301 +#: ../Doc/library/re.rst:101 ../Doc/library/re.rst:1404 msgid "``.``" msgstr "``.``" -#: ../Doc/library/re.rst:97 +#: ../Doc/library/re.rst:99 msgid "" "(Dot.) In the default mode, this matches any character except a newline. " "If the :const:`DOTALL` flag has been specified, this matches any character " @@ -223,11 +223,11 @@ msgstr "" "saut de ligne. Si l'option :const:`DOTALL` a été spécifiée, il valide tout " "caractère, saut de ligne compris." -#: ../Doc/library/re.rst:103 +#: ../Doc/library/re.rst:107 msgid "``^``" msgstr "``^``" -#: ../Doc/library/re.rst:102 +#: ../Doc/library/re.rst:106 msgid "" "(Caret.) Matches the start of the string, and in :const:`MULTILINE` mode " "also matches immediately after each newline." @@ -235,11 +235,11 @@ msgstr "" "(Accent circonflexe.) Valide le début d'une chaîne de caractères, ainsi que " "ce qui suit chaque saut de ligne en mode :const:`MULTILINE`." -#: ../Doc/library/re.rst:112 +#: ../Doc/library/re.rst:118 msgid "``$``" -msgstr "" +msgstr "``$``" -#: ../Doc/library/re.rst:106 +#: ../Doc/library/re.rst:112 msgid "" "Matches the end of the string or just before the newline at the end of the " "string, and in :const:`MULTILINE` mode also matches before a newline. " @@ -259,11 +259,11 @@ msgstr "" "``$`` dans ``'foo\\n'`` trouvera deux correspondances (vides) : une juste " "avant le saut de ligne, et une à la fin de la chaîne." -#: ../Doc/library/re.rst:117 +#: ../Doc/library/re.rst:125 msgid "``*``" msgstr "``*``" -#: ../Doc/library/re.rst:115 +#: ../Doc/library/re.rst:123 msgid "" "Causes the resulting RE to match 0 or more repetitions of the preceding RE, " "as many repetitions as are possible. ``ab*`` will match 'a', 'ab', or 'a' " @@ -273,11 +273,11 @@ msgstr "" "l'expression qui précède, avec autant de répétitions que possible. ``ab*`` " "validera 'a', 'ab' ou 'a' suivi de n'importe quel nombre de 'b'." -#: ../Doc/library/re.rst:122 +#: ../Doc/library/re.rst:132 msgid "``+``" -msgstr "" +msgstr "``+``" -#: ../Doc/library/re.rst:120 +#: ../Doc/library/re.rst:130 msgid "" "Causes the resulting RE to match 1 or more repetitions of the preceding RE. " "``ab+`` will match 'a' followed by any non-zero number of 'b's; it will not " @@ -287,11 +287,11 @@ msgstr "" "l'expression qui précède. ``ab+`` validera 'a' suivi de n'importe quel " "nombre non nul de 'b' ; cela ne validera pas la chaîne 'a'." -#: ../Doc/library/re.rst:126 +#: ../Doc/library/re.rst:138 msgid "``?``" msgstr "``?``" -#: ../Doc/library/re.rst:125 +#: ../Doc/library/re.rst:137 msgid "" "Causes the resulting RE to match 0 or 1 repetitions of the preceding RE. " "``ab?`` will match either 'a' or 'ab'." @@ -299,11 +299,11 @@ msgstr "" "Fait valider par l'expression rationnelle résultante 0 ou 1 répétition de " "l'expression qui précède. ``ab?`` correspondra à 'a' ou 'ab'." -#: ../Doc/library/re.rst:135 +#: ../Doc/library/re.rst:152 msgid "``*?``, ``+?``, ``??``" msgstr "``*?``, ``+?``, ``??``" -#: ../Doc/library/re.rst:129 +#: ../Doc/library/re.rst:146 msgid "" "The ``'*'``, ``'+'``, and ``'?'`` qualifiers are all :dfn:`greedy`; they " "match as much text as possible. Sometimes this behaviour isn't desired; if " @@ -322,11 +322,11 @@ msgstr "" "`minimal`) ; le *moins* de caractères possibles seront validés. Utiliser " "l'expression rationnelle ``<.*?>`` validera uniquement ``''``." -#: ../Doc/library/re.rst:140 +#: ../Doc/library/re.rst:160 msgid "``{m}``" msgstr "``{m}``" -#: ../Doc/library/re.rst:138 +#: ../Doc/library/re.rst:158 msgid "" "Specifies that exactly *m* copies of the previous RE should be matched; " "fewer matches cause the entire RE not to match. For example, ``a{6}`` will " @@ -337,11 +337,11 @@ msgstr "" "l'expression entière de correspondre. Par exemple, ``a{6}`` correspondra " "exactement à six caractères ``'a'``, mais pas à cinq." -#: ../Doc/library/re.rst:149 +#: ../Doc/library/re.rst:169 msgid "``{m,n}``" msgstr "``{m,n}``" -#: ../Doc/library/re.rst:143 +#: ../Doc/library/re.rst:163 msgid "" "Causes the resulting RE to match from *m* to *n* repetitions of the " "preceding RE, attempting to match as many repetitions as possible. For " @@ -361,11 +361,11 @@ msgstr "" "``'b'``, mais pas à ``'aaab'``. La virgule ne doit pas être omise, auquel " "cas le modificateur serait confondu avec la forme décrite précédemment." -#: ../Doc/library/re.rst:156 +#: ../Doc/library/re.rst:176 msgid "``{m,n}?``" msgstr "``{m,n}?``" -#: ../Doc/library/re.rst:152 +#: ../Doc/library/re.rst:172 msgid "" "Causes the resulting RE to match from *m* to *n* repetitions of the " "preceding RE, attempting to match as *few* repetitions as possible. This is " @@ -379,11 +379,11 @@ msgstr "" "Par exemple, dans la chaîne de 6 caractères ``'aaaaaa'``, ``a{3,5}`` " "trouvera 5 caractères ``'a'``, alors que ``a{3,5}?`` n'en trouvera que 3." -#: ../Doc/library/re.rst:169 +#: ../Doc/library/re.rst:191 msgid "``\\``" -msgstr "" +msgstr "``\\``" -#: ../Doc/library/re.rst:159 +#: ../Doc/library/re.rst:181 msgid "" "Either escapes special characters (permitting you to match characters like " "``'*'``, ``'?'``, and so forth), or signals a special sequence; special " @@ -393,7 +393,7 @@ msgstr "" "comme ``'*'``, ``'?'`` et autres) ou signale une séquence spéciale ; les " "séquences spéciales sont décrites ci-dessous." -#: ../Doc/library/re.rst:163 +#: ../Doc/library/re.rst:185 msgid "" "If you're not using a raw string to express the pattern, remember that " "Python also uses the backslash as an escape sequence in string literals; if " @@ -413,15 +413,15 @@ msgstr "" "pourquoi il est hautement recommandé d'utiliser des chaînes brutes pour tout " "sauf les expressions les plus simples." -#: ../Doc/library/re.rst:215 +#: ../Doc/library/re.rst:251 msgid "``[]``" msgstr "``[]``" -#: ../Doc/library/re.rst:172 +#: ../Doc/library/re.rst:197 msgid "Used to indicate a set of characters. In a set:" msgstr "Utilisé pour indiquer un ensemble de caractères. Dans un ensemble :" -#: ../Doc/library/re.rst:174 +#: ../Doc/library/re.rst:199 msgid "" "Characters can be listed individually, e.g. ``[amk]`` will match ``'a'``, " "``'m'``, or ``'k'``." @@ -429,7 +429,7 @@ msgstr "" "Les caractères peuvent être listés individuellement, e.g. ``[amk]`` " "correspondra à ``'a'``, ``'m'`` ou ``'k'``." -#: ../Doc/library/re.rst:177 +#: ../Doc/library/re.rst:204 msgid "" "Ranges of characters can be indicated by giving two characters and " "separating them by a ``'-'``, for example ``[a-z]`` will match any lowercase " @@ -446,7 +446,7 @@ msgstr "" "s'il est placé comme premier ou dernier caractère (e.g. ``[-a]`` ou " "``[a-]``), il correspondra à un ``'-'`` littéral." -#: ../Doc/library/re.rst:184 +#: ../Doc/library/re.rst:211 msgid "" "Special characters lose their special meaning inside sets. For example, " "``[(+*)]`` will match any of the literal characters ``'('``, ``'+'``, " @@ -456,7 +456,7 @@ msgstr "" "exemple, ``[(+*)]`` validera chacun des caractères littéraux ``'('``, " "``'+'``, ``'*'`` ou ``')'``." -#: ../Doc/library/re.rst:188 +#: ../Doc/library/re.rst:217 msgid "" "Character classes such as ``\\w`` or ``\\S`` (defined below) are also " "accepted inside a set, although the characters they match depends on " @@ -467,7 +467,7 @@ msgstr "" "caractères correspondant dépendent de quel mode est actif entre :const:" "`ASCII` et :const:`LOCALE`." -#: ../Doc/library/re.rst:192 +#: ../Doc/library/re.rst:223 msgid "" "Characters that are not within a range can be matched by :dfn:" "`complementing` the set. If the first character of the set is ``'^'``, all " @@ -484,7 +484,7 @@ msgstr "" "excepté ``'^'``. ``^`` n'a pas de sens particulier s'il n'est pas le premier " "caractère de l'ensemble." -#: ../Doc/library/re.rst:199 +#: ../Doc/library/re.rst:230 msgid "" "To match a literal ``']'`` inside a set, precede it with a backslash, or " "place it at the beginning of the set. For example, both ``[()[\\]{}]`` and " @@ -495,27 +495,37 @@ msgstr "" "et ``[]()[{}]`` vont tous deux correspondre à une parenthèse, un crochet ou " "une accolade." -#: ../Doc/library/re.rst:203 +#: ../Doc/library/re.rst:239 msgid "" "Support of nested sets and set operations as in `Unicode Technical Standard " "#18`_ might be added in the future. This would change the syntax, so to " "facilitate this change a :exc:`FutureWarning` will be raised in ambiguous " -"cases for the time being. That include sets starting with a literal ``'['`` " +"cases for the time being. That includes sets starting with a literal ``'['`` " "or containing literal character sequences ``'--'``, ``'&&'``, ``'~~'``, and " "``'||'``. To avoid a warning escape them with a backslash." msgstr "" +"Le support des ensembles inclus l'un dans l'autre et les opérations " +"d'ensemble comme dans `Unicode Technical Standard #18`_ pourrait être ajouté " +"par la suite. Ceci changerait la syntaxe, donc pour faciliter ce changement, " +"une exception :exc:`FutureWarning` sera levée dans les cas ambigus pour le " +"moment. Ceci inclut les ensembles commençant avec le caractère ``'['`` ou " +"contenant les séquences de caractères ``'--'``, ``'&&'``, ``'~~'`` et " +"``'||'``. Pour éviter un message d'avertissement, échapper les séquences " +"avec le caractère antislash (``\"\\\"``)." -#: ../Doc/library/re.rst:213 +#: ../Doc/library/re.rst:249 msgid "" ":exc:`FutureWarning` is raised if a character set contains constructs that " "will change semantically in the future." msgstr "" +"L'exception :exc:`FutureWarning` est levée si un ensemble de caractères " +"contient une construction dont la sémantique changera dans le futur." -#: ../Doc/library/re.rst:226 +#: ../Doc/library/re.rst:264 msgid "``|``" msgstr "``|``" -#: ../Doc/library/re.rst:218 +#: ../Doc/library/re.rst:256 msgid "" "``A|B``, where *A* and *B* can be arbitrary REs, creates a regular " "expression that will match either *A* or *B*. An arbitrary number of REs " @@ -540,11 +550,11 @@ msgstr "" "littéral, utilisez ``\\|``, ou enveloppez-le dans une classe de caractères, " "comme ``[|]``." -#: ../Doc/library/re.rst:233 +#: ../Doc/library/re.rst:274 msgid "``(...)``" msgstr "``(...)``" -#: ../Doc/library/re.rst:229 +#: ../Doc/library/re.rst:270 msgid "" "Matches whatever regular expression is inside the parentheses, and indicates " "the start and end of a group; the contents of a group can be retrieved after " @@ -561,11 +571,11 @@ msgstr "" "``\\(`` ou ``\\)``, ou enveloppez-les dans une classe de caractères : " "``[(]``, ``[)]``." -#: ../Doc/library/re.rst:240 +#: ../Doc/library/re.rst:283 msgid "``(?...)``" msgstr "``(?...)``" -#: ../Doc/library/re.rst:236 +#: ../Doc/library/re.rst:279 msgid "" "This is an extension notation (a ``'?'`` following a ``'('`` is not " "meaningful otherwise). The first character after the ``'?'`` determines " @@ -579,11 +589,11 @@ msgstr "" "de nouveaux groupes ; ``(?P...)`` est la seule exception à la règle. " "Retrouvez ci-dessous la liste des extensions actuellement supportées." -#: ../Doc/library/re.rst:254 +#: ../Doc/library/re.rst:297 msgid "``(?aiLmsux)``" msgstr "``(?aiLmsux)``" -#: ../Doc/library/re.rst:243 +#: ../Doc/library/re.rst:286 msgid "" "(One or more letters from the set ``'a'``, ``'i'``, ``'L'``, ``'m'``, " "``'s'``, ``'u'``, ``'x'``.) The group matches the empty string; the letters " @@ -609,11 +619,11 @@ msgstr "" "Les options devraient être spécifiées en premier dans la chaîne de " "l'expression." -#: ../Doc/library/re.rst:260 +#: ../Doc/library/re.rst:305 msgid "``(?:...)``" msgstr "``(?:...)``" -#: ../Doc/library/re.rst:257 +#: ../Doc/library/re.rst:302 msgid "" "A non-capturing version of regular parentheses. Matches whatever regular " "expression is inside the parentheses, but the substring matched by the group " @@ -625,11 +635,11 @@ msgstr "" "chaîne correspondant au groupe *ne peut pas* être récupérée après l'analyse " "ou être référencée plus loin dans le motif." -#: ../Doc/library/re.rst:286 +#: ../Doc/library/re.rst:331 msgid "``(?aiLmsux-imsx:...)``" msgstr "``(?aiLmsux-imsx:...)``" -#: ../Doc/library/re.rst:263 +#: ../Doc/library/re.rst:308 msgid "" "(Zero or more letters from the set ``'a'``, ``'i'``, ``'L'``, ``'m'``, " "``'s'``, ``'u'``, ``'x'``, optionally followed by ``'-'`` followed by one or " @@ -650,7 +660,7 @@ msgstr "" "cette partie de l'expression. (Les options sont décrites dans la section :" "ref:`contents-of-module-re`.)" -#: ../Doc/library/re.rst:273 +#: ../Doc/library/re.rst:318 msgid "" "The letters ``'a'``, ``'L'`` and ``'u'`` are mutually exclusive when used as " "inline flags, so they can't be combined or follow ``'-'``. Instead, when " @@ -662,16 +672,28 @@ msgid "" "effect for the narrow inline group, and the original matching mode is " "restored outside of the group." msgstr "" - -#: ../Doc/library/re.rst:285 +"Les caractères ``'a'``, ``'L'`` et ``'u'`` sont mutuellement exclusifs quand " +"ils sont utilisés comme des options dans le motif, ils ne peuvent donc ni " +"être combinés, ni suivre le caractère ``'-'``. Quand l'un d'entre eux " +"apparaît dans un groupe, il modifie le mode pour ce groupe. Dans les motifs " +"Unicode l'option ``(?a:...)`` bascule en mode ASCII-uniquement, et ``(?" +"u:...)`` bascule en mode Unicode (le comportement par défaut). Dans les " +"motifs de `byte`, ``(?L:...)`` fait en sorte de respecter les paramètres " +"régionaux, et ``(?a:...)`` bascule en mode ASCII Uniquement (le comportement " +"par défaut). Ces modifications ne concernent que les groupes dans lesquelles " +"elles sont, le mode précédent est donc rétabli à la sortie du groupe." + +#: ../Doc/library/re.rst:330 msgid "The letters ``'a'``, ``'L'`` and ``'u'`` also can be used in a group." msgstr "" +"Les lettres ``'a'``, ``'L'`` et ``'u'`` peuvent aussi être utilisées dans un " +"groupe." -#: ../Doc/library/re.rst:311 +#: ../Doc/library/re.rst:358 msgid "``(?P...)``" msgstr "``(?P...)``" -#: ../Doc/library/re.rst:289 +#: ../Doc/library/re.rst:336 msgid "" "Similar to regular parentheses, but the substring matched by the group is " "accessible via the symbolic group name *name*. Group names must be valid " @@ -686,7 +708,7 @@ msgstr "" "rationnelle. Un groupe symbolique est aussi un groupe numéroté, de la même " "manière que si le groupe n'était pas nommé." -#: ../Doc/library/re.rst:295 +#: ../Doc/library/re.rst:342 msgid "" "Named groups can be referenced in three contexts. If the pattern is ``(?" "P['\"]).*?(?P=quote)`` (i.e. matching a string quoted with either " @@ -696,55 +718,55 @@ msgstr "" "est ``(?P['\"]).*?(?P=quote)`` (i.e. correspondant à une chaîne " "entourée de guillemets simples ou doubles) :" -#: ../Doc/library/re.rst:300 +#: ../Doc/library/re.rst:347 msgid "Context of reference to group \"quote\"" msgstr "Contexte de référence au groupe *quote*" -#: ../Doc/library/re.rst:300 +#: ../Doc/library/re.rst:347 msgid "Ways to reference it" msgstr "Manières de le référencer" -#: ../Doc/library/re.rst:302 +#: ../Doc/library/re.rst:349 msgid "in the same pattern itself" msgstr "lui-même dans le même motif" -#: ../Doc/library/re.rst:302 +#: ../Doc/library/re.rst:349 msgid "``(?P=quote)`` (as shown)" msgstr "``(?P=quote)`` (comme vu)" -#: ../Doc/library/re.rst:303 ../Doc/library/re.rst:310 +#: ../Doc/library/re.rst:350 ../Doc/library/re.rst:357 msgid "``\\1``" msgstr "``\\1``" -#: ../Doc/library/re.rst:305 +#: ../Doc/library/re.rst:352 msgid "when processing match object *m*" msgstr "en analysant l'objet résultat *m*" -#: ../Doc/library/re.rst:305 +#: ../Doc/library/re.rst:352 msgid "``m.group('quote')``" msgstr "``m.group('quote')``" -#: ../Doc/library/re.rst:306 +#: ../Doc/library/re.rst:353 msgid "``m.end('quote')`` (etc.)" msgstr "``m.end('quote')`` (etc.)" -#: ../Doc/library/re.rst:308 +#: ../Doc/library/re.rst:355 msgid "in a string passed to the *repl* argument of ``re.sub()``" msgstr "dans une chaîne passée à l'argument *repl* de ``re.sub()``" -#: ../Doc/library/re.rst:308 +#: ../Doc/library/re.rst:355 msgid "``\\g``" msgstr "``\\g``" -#: ../Doc/library/re.rst:309 +#: ../Doc/library/re.rst:356 msgid "``\\g<1>``" msgstr "``\\g<1>``" -#: ../Doc/library/re.rst:315 +#: ../Doc/library/re.rst:364 msgid "``(?P=name)``" msgstr "``(?P=name)``" -#: ../Doc/library/re.rst:314 +#: ../Doc/library/re.rst:363 msgid "" "A backreference to a named group; it matches whatever text was matched by " "the earlier group named *name*." @@ -752,19 +774,19 @@ msgstr "" "Une référence arrière à un groupe nommé ; elle correspond à n'importe quel " "texte validé plus tôt par le groupe nommé *name*." -#: ../Doc/library/re.rst:318 +#: ../Doc/library/re.rst:369 msgid "``(?#...)``" msgstr "``(?#...)``" -#: ../Doc/library/re.rst:318 +#: ../Doc/library/re.rst:369 msgid "A comment; the contents of the parentheses are simply ignored." msgstr "Un commentaire ; le contenu des parenthèses est simplement ignoré." -#: ../Doc/library/re.rst:323 +#: ../Doc/library/re.rst:376 msgid "``(?=...)``" msgstr "``(?=...)``" -#: ../Doc/library/re.rst:321 +#: ../Doc/library/re.rst:374 msgid "" "Matches if ``...`` matches next, but doesn't consume any of the string. " "This is called a :dfn:`lookahead assertion`. For example, ``Isaac (?" @@ -775,11 +797,11 @@ msgstr "" "=Asimov)`` correspondra à la chaîne ``'Isaac' `` seulement si elle est " "suivie par ``'Asimov'``." -#: ../Doc/library/re.rst:328 +#: ../Doc/library/re.rst:383 msgid "``(?!...)``" msgstr "``(?!...)``" -#: ../Doc/library/re.rst:326 +#: ../Doc/library/re.rst:381 msgid "" "Matches if ``...`` doesn't match next. This is a :dfn:`negative lookahead " "assertion`. For example, ``Isaac (?!Asimov)`` will match ``'Isaac '`` only " @@ -789,11 +811,11 @@ msgstr "" "`negative lookahead`. Par exemple, ``Isaac (?!Asimov)`` correspondra à la " "chaîne ``'Isaac '`` seulement si elle *n'est pas* suivie par ``'Asimov'``." -#: ../Doc/library/re.rst:353 +#: ../Doc/library/re.rst:410 msgid "``(?<=...)``" msgstr "``(?<=...)``" -#: ../Doc/library/re.rst:331 +#: ../Doc/library/re.rst:388 msgid "" "Matches if the current position in the string is preceded by a match for " "``...`` that ends at the current position. This is called a :dfn:`positive " @@ -818,19 +840,19 @@ msgstr "" "préférerez sûrement utiliser la fonction :func:`search` plutôt que la " "fonction :func:`match` :" -#: ../Doc/library/re.rst:346 +#: ../Doc/library/re.rst:403 msgid "This example looks for a word following a hyphen:" msgstr "Cet exemple recherche un mot suivi d'un trait d'union :" -#: ../Doc/library/re.rst:352 +#: ../Doc/library/re.rst:409 msgid "Added support for group references of fixed length." msgstr "Ajout du support des références aux groupes de taille fixe." -#: ../Doc/library/re.rst:360 +#: ../Doc/library/re.rst:419 msgid "``(?'`` ainsi que ``'user@host.com'`` " "mais pas ``''``." -#: ../Doc/library/re.rst:371 +#: ../Doc/library/re.rst:430 msgid "" "The special sequences consist of ``'\\'`` and a character from the list " "below. If the ordinary character is not an ASCII digit or an ASCII letter, " @@ -878,11 +900,11 @@ msgstr "" "second caractère de la séquence. Par exemple, ``\\$`` correspond au " "caractère ``'$'``." -#: ../Doc/library/re.rst:384 +#: ../Doc/library/re.rst:445 msgid "``\\number``" msgstr "``\\number``" -#: ../Doc/library/re.rst:377 +#: ../Doc/library/re.rst:438 msgid "" "Matches the contents of the group of the same number. Groups are numbered " "starting from 1. For example, ``(.+) \\1`` matches ``'the the'`` or ``'55 " @@ -903,19 +925,19 @@ msgstr "" "À l'intérieur des ``'['`` et ``']'`` d'une classe de caractères, tous les " "échappements numériques sont traités comme des caractères." -#: ../Doc/library/re.rst:387 +#: ../Doc/library/re.rst:450 msgid "``\\A``" msgstr "``\\A``" -#: ../Doc/library/re.rst:387 +#: ../Doc/library/re.rst:450 msgid "Matches only at the start of the string." msgstr "Correspond uniquement au début d'une chaîne de caractères." -#: ../Doc/library/re.rst:401 +#: ../Doc/library/re.rst:466 msgid "``\\b``" msgstr "``\\b``" -#: ../Doc/library/re.rst:390 +#: ../Doc/library/re.rst:455 msgid "" "Matches the empty string, but only at the beginning or end of a word. A word " "is defined as a sequence of word characters. Note that formally, ``\\b`` is " @@ -931,7 +953,7 @@ msgstr "" "que ``r'\\bfoo\\b'`` validera ``'foo'``, ``'foo.'``, ``'(foo)'`` ou ``'bar " "foo baz'`` mais pas ``'foobar'`` ou ``'foo3'``." -#: ../Doc/library/re.rst:397 +#: ../Doc/library/re.rst:462 msgid "" "By default Unicode alphanumerics are the ones used in Unicode patterns, but " "this can be changed by using the :const:`ASCII` flag. Word boundaries are " @@ -946,11 +968,11 @@ msgstr "" "caractères, ``\\b`` représente le caractère *backspace*, par compatibilité " "avec les chaînes littérales Python." -#: ../Doc/library/re.rst:410 +#: ../Doc/library/re.rst:477 msgid "``\\B``" msgstr "``\\B``" -#: ../Doc/library/re.rst:404 +#: ../Doc/library/re.rst:471 msgid "" "Matches the empty string, but only when it is *not* at the beginning or end " "of a word. This means that ``r'py\\B'`` matches ``'python'``, ``'py3'``, " @@ -968,16 +990,16 @@ msgstr "" "puisse être changé avec l'option :const:`ASCII`. Les délimitations de mots " "sont déterminées par la locale si l'option :const:`LOCALE` est utilisée." -#: ../Doc/library/re.rst:420 +#: ../Doc/library/re.rst:489 msgid "``\\d``" msgstr "``\\d``" -#: ../Doc/library/re.rst:417 ../Doc/library/re.rst:433 -#: ../Doc/library/re.rst:449 +#: ../Doc/library/re.rst:486 ../Doc/library/re.rst:506 +#: ../Doc/library/re.rst:526 msgid "For Unicode (str) patterns:" msgstr "Pour les motifs Unicode (``str``) :" -#: ../Doc/library/re.rst:414 +#: ../Doc/library/re.rst:483 msgid "" "Matches any Unicode decimal digit (that is, any character in Unicode " "character category [Nd]). This includes ``[0-9]``, and also many other " @@ -985,24 +1007,24 @@ msgid "" "matched." msgstr "" "Valide n'importe quel chiffre décimal Unicode (soit tout caractère Unicode " -"de catégorie [Nd]). Cela inclue ``[0-9]``, mais aussi bien d'autres " +"de catégorie [Nd]). Cela inclut ``[0-9]``, mais aussi bien d'autres " "caractères de chiffres. Si l'option :const:`ASCII` est utilisée, seuls les " "caractères de la classe ``[0-9]`` correspondront." -#: ../Doc/library/re.rst:420 ../Doc/library/re.rst:437 -#: ../Doc/library/re.rst:455 +#: ../Doc/library/re.rst:489 ../Doc/library/re.rst:510 +#: ../Doc/library/re.rst:532 msgid "For 8-bit (bytes) patterns:" msgstr "Pour les motifs 8-bit (bytes) :" -#: ../Doc/library/re.rst:420 +#: ../Doc/library/re.rst:489 msgid "Matches any decimal digit; this is equivalent to ``[0-9]``." msgstr "Valide n'importe quel chiffre décimal ; équivalent à ``[0-9]``." -#: ../Doc/library/re.rst:425 +#: ../Doc/library/re.rst:496 msgid "``\\D``" msgstr "``\\D``" -#: ../Doc/library/re.rst:423 +#: ../Doc/library/re.rst:494 msgid "" "Matches any character which is not a decimal digit. This is the opposite of " "``\\d``. If the :const:`ASCII` flag is used this becomes the equivalent of " @@ -1012,11 +1034,11 @@ msgstr "" "\\d``. Si l'option :const:`ASCII` est utilisée, cela devient équivalent à " "``[^0-9]``." -#: ../Doc/library/re.rst:437 +#: ../Doc/library/re.rst:510 msgid "``\\s``" msgstr "``\\s``" -#: ../Doc/library/re.rst:429 +#: ../Doc/library/re.rst:502 msgid "" "Matches Unicode whitespace characters (which includes ``[ \\t\\n\\r\\f" "\\v]``, and also many other characters, for example the non-breaking spaces " @@ -1029,7 +1051,7 @@ msgstr "" "est utilisée, seuls les caractères de la classe ``[ \\t\\n\\r\\f\\v]`` sont " "validés." -#: ../Doc/library/re.rst:436 +#: ../Doc/library/re.rst:509 msgid "" "Matches characters considered whitespace in the ASCII character set; this is " "equivalent to ``[ \\t\\n\\r\\f\\v]``." @@ -1037,11 +1059,11 @@ msgstr "" "Valide les caractères considérés comme des espacements dans la table ASCII ; " "équivalent à ``[ \\t\\n\\r\\f\\v]``." -#: ../Doc/library/re.rst:442 +#: ../Doc/library/re.rst:517 msgid "``\\S``" msgstr "``\\S``" -#: ../Doc/library/re.rst:440 +#: ../Doc/library/re.rst:515 msgid "" "Matches any character which is not a whitespace character. This is the " "opposite of ``\\s``. If the :const:`ASCII` flag is used this becomes the " @@ -1051,11 +1073,11 @@ msgstr "" "l'opposé de ``\\s``. Si l'option :const:`ASCII` est utilisée, cela devient " "équivalent à ``[^ \\t\\n\\r\\f\\v]``." -#: ../Doc/library/re.rst:455 +#: ../Doc/library/re.rst:532 msgid "``\\w``" msgstr "``\\w``" -#: ../Doc/library/re.rst:446 +#: ../Doc/library/re.rst:523 msgid "" "Matches Unicode word characters; this includes most characters that can be " "part of a word in any language, as well as numbers and the underscore. If " @@ -1066,7 +1088,7 @@ msgstr "" "les nombres et les tirets bas. Si l'option :const:`ASCII` est utilisée, " "seuls les caractères de la classe ``[a-zA-Z0-9_]`` sont validés." -#: ../Doc/library/re.rst:452 +#: ../Doc/library/re.rst:529 msgid "" "Matches characters considered alphanumeric in the ASCII character set; this " "is equivalent to ``[a-zA-Z0-9_]``. If the :const:`LOCALE` flag is used, " @@ -1077,11 +1099,11 @@ msgstr "" "zA-Z0-9_]``. Si l'option :const:`LOCALE` est utilisée, les caractères " "considérés alphanumériques dans la locale et le tiret bas seront acceptés." -#: ../Doc/library/re.rst:462 +#: ../Doc/library/re.rst:541 msgid "``\\W``" msgstr "``\\W``" -#: ../Doc/library/re.rst:458 +#: ../Doc/library/re.rst:537 msgid "" "Matches any character which is not a word character. This is the opposite of " "``\\w``. If the :const:`ASCII` flag is used this becomes the equivalent of " @@ -1093,15 +1115,15 @@ msgstr "" "``[^a-zA-Z0-9_]``. Si l'option :const:`LOCALE` est utilisée, les caractères " "considérés alphanumériques dans la locale, et le tiret bas, seront acceptés." -#: ../Doc/library/re.rst:465 +#: ../Doc/library/re.rst:546 msgid "``\\Z``" msgstr "``\\Z``" -#: ../Doc/library/re.rst:465 +#: ../Doc/library/re.rst:546 msgid "Matches only at the end of the string." msgstr "Correspond uniquement à la fin d'une chaîne de caractères." -#: ../Doc/library/re.rst:467 +#: ../Doc/library/re.rst:562 msgid "" "Most of the standard escapes supported by Python string literals are also " "accepted by the regular expression parser::" @@ -1109,7 +1131,7 @@ msgstr "" "La plupart des échappements standards supportés par les chaînes littérales " "sont aussi acceptés par l'analyseur d'expressions rationnelles ::" -#: ../Doc/library/re.rst:474 +#: ../Doc/library/re.rst:569 msgid "" "(Note that ``\\b`` is used to represent word boundaries, and means " "\"backspace\" only inside character classes.)" @@ -1118,15 +1140,18 @@ msgstr "" "signifie « *backspace* » uniquement à l'intérieur d'une classe de " "caractères.)" -#: ../Doc/library/re.rst:477 +#: ../Doc/library/re.rst:572 msgid "" "``'\\u'`` and ``'\\U'`` escape sequences are only recognized in Unicode " -"patterns. In bytes patterns they are errors." +"patterns. In bytes patterns they are errors. Unknown escapes of ASCII " +"letters are reserved for future use and treated as errors." msgstr "" "Les séquences d'échappement ``'\\u'`` et ``'\\U'`` sont seulement reconnues " -"dans les motifs Unicode. Dans les motifs de *byte*, ce sont des erreurs." +"dans les motifs Unicode. Dans les motifs de *byte*, ce sont des erreurs. " +"Les échappements inconnus de lettres ASCII sont réservés pour une " +"utilisation future et sont considérés comme des erreurs." -#: ../Doc/library/re.rst:480 +#: ../Doc/library/re.rst:576 msgid "" "Octal escapes are included in a limited form. If the first digit is a 0, or " "if there are three octal digits, it is considered an octal escape. " @@ -1139,22 +1164,22 @@ msgstr "" "vers un groupe. Comme pour les chaînes littérales, les séquences octales ne " "font jamais plus de 3 caractères de long." -#: ../Doc/library/re.rst:485 +#: ../Doc/library/re.rst:581 msgid "The ``'\\u'`` and ``'\\U'`` escape sequences have been added." msgstr "Les séquences d'échappement ``'\\u'`` et ``'\\U'`` ont été ajoutées." -#: ../Doc/library/re.rst:488 +#: ../Doc/library/re.rst:584 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter now are errors." msgstr "" "Les séquences inconnues composées de ``'\\'`` et d'une lettre ASCII sont " "maintenant des erreurs." -#: ../Doc/library/re.rst:496 +#: ../Doc/library/re.rst:592 msgid "Module Contents" msgstr "Contenu du module" -#: ../Doc/library/re.rst:498 +#: ../Doc/library/re.rst:594 msgid "" "The module defines several functions, constants, and an exception. Some of " "the functions are simplified versions of the full featured methods for " @@ -1166,7 +1191,7 @@ msgstr "" "complètes des expressions rationnelles compilées. La plupart des " "applications non triviales utilisent toujours la version compilée." -#: ../Doc/library/re.rst:503 +#: ../Doc/library/re.rst:599 msgid "" "Flag constants are now instances of :class:`RegexFlag`, which is a subclass " "of :class:`enum.IntFlag`." @@ -1174,7 +1199,7 @@ msgstr "" "Les constantes d'options sont maintenant des instances de :class:" "`RegexFlag`, sous-classe de :class:`enum.IntFlag`." -#: ../Doc/library/re.rst:509 +#: ../Doc/library/re.rst:605 msgid "" "Compile a regular expression pattern into a :ref:`regular expression object " "`, which can be used for matching using its :func:`~Pattern." @@ -1185,7 +1210,7 @@ msgstr "" "search`, décrites ci-dessous, peuvent être utilisées pour analyser des " "textes." -#: ../Doc/library/re.rst:514 +#: ../Doc/library/re.rst:610 msgid "" "The expression's behaviour can be modified by specifying a *flags* value. " "Values can be any of the following variables, combined using bitwise OR (the " @@ -1195,15 +1220,15 @@ msgstr "" "*flags*. Les valeurs sont comprises dans les variables suivantes, et peuvent " "être combinées avec un *ou* bit-à-bit (opérateur ``|``)." -#: ../Doc/library/re.rst:518 +#: ../Doc/library/re.rst:614 msgid "The sequence ::" -msgstr "La séquence : ::" +msgstr "La séquence ::" -#: ../Doc/library/re.rst:523 +#: ../Doc/library/re.rst:619 msgid "is equivalent to ::" -msgstr "est équivalente à : ::" +msgstr "est équivalente à ::" -#: ../Doc/library/re.rst:527 +#: ../Doc/library/re.rst:623 msgid "" "but using :func:`re.compile` and saving the resulting regular expression " "object for reuse is more efficient when the expression will be used several " @@ -1213,7 +1238,7 @@ msgstr "" "renvoyée pour la réutiliser est plus efficace quand l'expression est amenée " "à être utilisée plusieurs fois dans un même programme." -#: ../Doc/library/re.rst:533 +#: ../Doc/library/re.rst:629 msgid "" "The compiled versions of the most recent patterns passed to :func:`re." "compile` and the module-level matching functions are cached, so programs " @@ -1225,7 +1250,7 @@ msgstr "" "les programmes qui n'utilisent que quelques expressions rationnelles en même " "temps n'ont pas à s'inquiéter de la compilation de ces expressions." -#: ../Doc/library/re.rst:542 +#: ../Doc/library/re.rst:638 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\d``, ``\\D``, ``\\s`` and ``" "\\S`` perform ASCII-only matching instead of full Unicode matching. This is " @@ -1235,9 +1260,9 @@ msgstr "" "Fait correspondre à ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\d``, ``\\D``, ``" "\\s`` et ``\\s`` des caractères ASCII seulement, plutôt qu'Unicode. Cela " "n'a du sens que pour les motifs Unicode, et est ignoré pour les motifs 8-" -"bit. Correspond à l'option en ligne ``(?a)``." +"bit. Correspond à l'option de groupe ``(?a)``." -#: ../Doc/library/re.rst:547 +#: ../Doc/library/re.rst:643 msgid "" "Note that for backward compatibility, the :const:`re.U` flag still exists " "(as well as its synonym :const:`re.UNICODE` and its embedded counterpart ``(?" @@ -1250,15 +1275,15 @@ msgstr "" "que l'analyse est faite en Unicode par défaut pour les chaînes de caractères " "(et que l'analyse Unicode n'est pas permise pour les chaînes 8-bit)." -#: ../Doc/library/re.rst:556 +#: ../Doc/library/re.rst:652 msgid "" "Display debug information about compiled expression. No corresponding inline " "flag." msgstr "" "Affiche des informations de débogage à propos de l'expression compilée. N'a " -"pas d'option en ligne équivalente." +"pas d'option de groupe équivalente." -#: ../Doc/library/re.rst:563 +#: ../Doc/library/re.rst:659 msgid "" "Perform case-insensitive matching; expressions like ``[A-Z]`` will also " "match lowercase letters. Full Unicode matching (such as ``Ü`` matching " @@ -1272,9 +1297,9 @@ msgstr "" "que ``Ü`` correspondant à ``ü``) fonctionne aussi, tant que l'option :const:" "`re.ASCII` n'est pas utilisée. La locale n'affecte pas cette option, tant " "que l'option :const:`re.LOCALE` n'est pas utilisée. Correspond au marqueur " -"en ligne ``(?i)``." +"de groupe ``(?i)``." -#: ../Doc/library/re.rst:570 +#: ../Doc/library/re.rst:666 msgid "" "Note that when the Unicode patterns ``[a-z]`` or ``[A-Z]`` are used in " "combination with the :const:`IGNORECASE` flag, they will match the 52 ASCII " @@ -1284,8 +1309,15 @@ msgid "" "const:`ASCII` flag is used, only letters 'a' to 'z' and 'A' to 'Z' are " "matched." msgstr "" +"À noter : quand les motifs Unicode ``[a-z]`` ou ``[A-Z]`` sont utilisés en " +"combinaison avec la constante :const:`IGNORECASE`, ils correspondront aux 52 " +"caractères ASCII et aux 4 caractères non ASCII : 'İ' (*U+0130*, Latin " +"majuscule I avec un point au-dessus), 'ı' (*U+0131*, Latin minuscule sans " +"point au-dessus), 'ſ' (*U+017F*, Latin minuscule *long s*) et 'K' (*U+212A*, " +"*Kelvin sign*). Si la constante :const:`ASCII` est utilisée, seuls les " +"caractères 'a' à 'z' et 'A' à 'Z' seront concernés." -#: ../Doc/library/re.rst:581 +#: ../Doc/library/re.rst:677 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " "dependent on the current locale. This flag can be used only with bytes " @@ -1302,9 +1334,9 @@ msgstr "" "fois, et ne fonctionnant que pour les locales 8-bits. L'analyse Unicode est " "déjà activée par défaut dans Python 3 pour les motifs Unicode (*str*), et " "elle est capable de gérer plusieurs locales et langages. Correspond à " -"l'option en ligne ``(?L)``." +"l'option de groupe ``(?L)``." -#: ../Doc/library/re.rst:590 +#: ../Doc/library/re.rst:686 msgid "" ":const:`re.LOCALE` can be used only with bytes patterns and is not " "compatible with :const:`re.ASCII`." @@ -1312,14 +1344,17 @@ msgstr "" ":const:`re.LOCALE` ne peut être utilisée qu'avec les motifs 8-bit et n'est " "pas compatible avec :const:`re.ASCII`." -#: ../Doc/library/re.rst:594 +#: ../Doc/library/re.rst:690 msgid "" "Compiled regular expression objects with the :const:`re.LOCALE` flag no " "longer depend on the locale at compile time. Only the locale at matching " "time affects the result of matching." msgstr "" +"Les objets d'expressions régulières compilées avec l'indicateur :const:`re." +"LOCALE` ne dépendent plus de la *locale* au moment de la compilation. " +"Seulement la *locale* au moment de la correspondance affecte le résultat." -#: ../Doc/library/re.rst:603 +#: ../Doc/library/re.rst:699 msgid "" "When specified, the pattern character ``'^'`` matches at the beginning of " "the string and at the beginning of each line (immediately following each " @@ -1335,9 +1370,9 @@ msgstr "" "(juste avant le saut de ligne). Par défaut, ``'^'`` correspond uniquement " "au début de la chaîne, et ``'$'`` uniquement à la fin de la chaîne, ou " "immédiatement avant le saut de ligne (s'il y a) à la fin de la chaîne. " -"Correspond à l'option en ligne ``(?m)``." +"Correspond à l'option de groupe ``(?m)``." -#: ../Doc/library/re.rst:615 +#: ../Doc/library/re.rst:711 msgid "" "Make the ``'.'`` special character match any character at all, including a " "newline; without this flag, ``'.'`` will match anything *except* a newline. " @@ -1345,9 +1380,9 @@ msgid "" msgstr "" "Fait correspondre tous les caractères possibles à ``'.'``, incluant le saut " "de ligne ; sans cette option, ``'.'`` correspondrait à tout caractère à " -"l'exception du saut de ligne. Correspond à l'option en ligne ``(?s)``." +"l'exception du saut de ligne. Correspond à l'option de groupe ``(?s)``." -#: ../Doc/library/re.rst:623 +#: ../Doc/library/re.rst:721 msgid "" "This flag allows you to write regular expressions that look nicer and are " "more readable by allowing you to visually separate logical sections of the " @@ -1368,19 +1403,19 @@ msgstr "" "précédé d'un *backslash* non échappé, tous les caractères depuis le ``#`` le " "plus à gauche jusqu'à la fin de la ligne sont ignorés." -#: ../Doc/library/re.rst:632 +#: ../Doc/library/re.rst:730 msgid "" "This means that the two following regular expression objects that match a " "decimal number are functionally equal::" msgstr "" "Cela signifie que les deux expressions rationnelles suivantes qui valident " -"un nombre décimal sont fonctionnellement égales : ::" +"un nombre décimal sont fonctionnellement égales ::" -#: ../Doc/library/re.rst:640 +#: ../Doc/library/re.rst:738 msgid "Corresponds to the inline flag ``(?x)``." -msgstr "" +msgstr "Correspond à l'option de groupe ``(?x)``." -#: ../Doc/library/re.rst:645 +#: ../Doc/library/re.rst:743 msgid "" "Scan through *string* looking for the first location where the regular " "expression *pattern* produces a match, and return a corresponding :ref:" @@ -1394,7 +1429,7 @@ msgstr "" "dans la chaîne ne valide le motif ; notez que cela est différent de trouver " "une correspondance avec une chaîne vide à un certain endroit de la chaîne." -#: ../Doc/library/re.rst:654 +#: ../Doc/library/re.rst:752 msgid "" "If zero or more characters at the beginning of *string* match the regular " "expression *pattern*, return a corresponding :ref:`match object `. Return ``None`` if the " @@ -1435,7 +1470,7 @@ msgstr "" "Renvoie ``None`` si la chaîne ne correspond pas au motif ; notez que cela " "est différent d'une correspondance avec une chaîne vide." -#: ../Doc/library/re.rst:678 +#: ../Doc/library/re.rst:776 msgid "" "Split *string* by the occurrences of *pattern*. If capturing parentheses " "are used in *pattern*, then the text of all groups in the pattern are also " @@ -1447,9 +1482,9 @@ msgstr "" "capture sont utilisées dans *pattern*, alors les textes des groupes du motif " "sont aussi renvoyés comme éléments de la liste résultante. Si *maxsplit* est " "différent de zéro, il ne pourra y avoir plus de *maxsplit* séparations, et " -"le reste de la chaîne sera renvoyé comme le dernier élément de la liste. : ::" +"le reste de la chaîne sera renvoyé comme le dernier élément de la liste. ::" -#: ../Doc/library/re.rst:693 +#: ../Doc/library/re.rst:791 msgid "" "If there are capturing groups in the separator and it matches at the start " "of the string, the result will start with an empty string. The same holds " @@ -1459,7 +1494,7 @@ msgstr "" "correspondance au début de la chaîne, le résultat commencera par une chaîne " "vide. La même chose se produit pour la fin de la chaîne ::" -#: ../Doc/library/re.rst:700 +#: ../Doc/library/re.rst:798 msgid "" "That way, separator components are always found at the same relative indices " "within the result list." @@ -1467,23 +1502,28 @@ msgstr "" "De cette manière, les séparateurs sont toujours trouvés aux mêmes indices " "relatifs dans la liste résultante." -#: ../Doc/library/re.rst:703 +#: ../Doc/library/re.rst:801 msgid "" "Empty matches for the pattern split the string only when not adjacent to a " "previous empty match." msgstr "" +"Les correspondances vides pour le motif scindent la chaîne de caractères " +"seulement lorsqu'ils ne sont pas adjacents à une correspondance vide " +"précédente." -#: ../Doc/library/re.rst:713 ../Doc/library/re.rst:789 -#: ../Doc/library/re.rst:812 +#: ../Doc/library/re.rst:811 ../Doc/library/re.rst:891 +#: ../Doc/library/re.rst:915 msgid "Added the optional flags argument." msgstr "Ajout de l'argument optionnel *flags*." -#: ../Doc/library/re.rst:716 +#: ../Doc/library/re.rst:814 msgid "" "Added support of splitting on a pattern that could match an empty string." msgstr "" +"Gestion du découpage avec un motif qui pourrait correspondre à une chaine de " +"caractère vide." -#: ../Doc/library/re.rst:722 +#: ../Doc/library/re.rst:820 msgid "" "Return all non-overlapping matches of *pattern* in *string*, as a list of " "strings. The *string* is scanned left-to-right, and matches are returned in " @@ -1499,11 +1539,13 @@ msgstr "" "*tuples* si le motif a plus d'un groupe. Les correspondances vides sont " "incluses dans le résultat." -#: ../Doc/library/re.rst:728 ../Doc/library/re.rst:739 +#: ../Doc/library/re.rst:826 ../Doc/library/re.rst:837 msgid "Non-empty matches can now start just after a previous empty match." msgstr "" +"Les correspondances non vides peuvent maintenant démarrer juste après une " +"correspondance vide précédente." -#: ../Doc/library/re.rst:734 +#: ../Doc/library/re.rst:832 msgid "" "Return an :term:`iterator` yielding :ref:`match objects ` " "over all non-overlapping matches for the RE *pattern* in *string*. The " @@ -1517,16 +1559,18 @@ msgstr "" "dans l'ordre où elles sont trouvées. Les correspondances vides sont inclues " "dans le résultat." -#: ../Doc/library/re.rst:745 +#: ../Doc/library/re.rst:843 msgid "" "Return the string obtained by replacing the leftmost non-overlapping " "occurrences of *pattern* in *string* by the replacement *repl*. If the " "pattern isn't found, *string* is returned unchanged. *repl* can be a string " "or a function; if it 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 group 6 in the pattern. For example::" +"\\r`` is converted to a carriage return, and so forth. Unknown escapes of " +"ASCII letters are reserved for future use and treated as errors. Other " +"unknown escapes such as ``\\&`` are left alone. Backreferences, such as ``" +"\\6``, are replaced with the substring matched by group 6 in the pattern. " +"For example::" msgstr "" "Renvoie la chaîne obtenue en remplaçant les occurrences (sans chevauchement) " "les plus à gauche de *pattern* dans *string* par le remplacement *repl*. Si " @@ -1534,11 +1578,13 @@ msgstr "" "être une chaîne de caractères ou une fonction ; si c'est une chaîne, toutes " "les séquences d'échappement qu'elle contient sont traduites. Ainsi, ``\\n`` " "est convertie en un simple saut de ligne, ``\\r`` en un retour chariot, et " -"ainsi de suite. Les séquences inconnues telles que ``\\&`` sont laissées " -"intactes. Les références arrières, telles que ``\\6``, sont remplacées par " -"la sous-chaîne correspondant au groupe 6 dans le motif. Par exemple ::" +"ainsi de suite. Les échappements inconnus de lettres ASCII sont réservés " +"pour une utilisation future et sont considérés comme des erreurs. Les autres " +"échappements tels que ``\\&`` sont laissés intacts. Les références " +"arrières, telles que ``\\6``, sont remplacées par la sous-chaîne " +"correspondant au groupe 6 dans le motif. Par exemple ::" -#: ../Doc/library/re.rst:759 +#: ../Doc/library/re.rst:859 msgid "" "If *repl* is a function, it is called for every non-overlapping occurrence " "of *pattern*. The function takes a single :ref:`match object `, et renvoie la chaîne de remplacement. " "Par exemple ::" -#: ../Doc/library/re.rst:771 +#: ../Doc/library/re.rst:871 msgid "The pattern may be a string or a :ref:`pattern object `." msgstr "" "Le motif peut être une chaîne de caractères ou un :ref:`objet expression " "rationnelle `." -#: ../Doc/library/re.rst:773 +#: ../Doc/library/re.rst:873 msgid "" "The optional argument *count* is the maximum number of pattern occurrences " "to be replaced; *count* must be a non-negative integer. If omitted or zero, " @@ -1570,7 +1616,7 @@ msgstr "" "précédente correspondance, ainsi ``sub('x*', '-', 'abxd')`` renvoie ``'-a-b--" "d-'``." -#: ../Doc/library/re.rst:779 +#: ../Doc/library/re.rst:881 msgid "" "In string-type *repl* arguments, in addition to the character escapes and " "backreferences described above, ``\\g`` will use the substring matched " @@ -1592,12 +1638,12 @@ msgstr "" "par un caractère littéral ``'0'``. La référence arrière ``\\g<0>`` est " "remplacée par la sous-chaîne entière validée par l'expression rationnelle." -#: ../Doc/library/re.rst:792 ../Doc/library/re.rst:815 -#: ../Doc/library/re.rst:1044 +#: ../Doc/library/re.rst:894 ../Doc/library/re.rst:918 +#: ../Doc/library/re.rst:1147 msgid "Unmatched groups are replaced with an empty string." msgstr "Les groupes sans correspondance sont remplacés par une chaîne vide." -#: ../Doc/library/re.rst:795 +#: ../Doc/library/re.rst:897 msgid "" "Unknown escapes in *pattern* consisting of ``'\\'`` and an ASCII letter now " "are errors." @@ -1605,7 +1651,7 @@ msgstr "" "Les séquences d'échappement inconnues dans *pattern* formées par ``'\\'`` et " "une lettre ASCII sont maintenant des erreurs." -#: ../Doc/library/re.rst:799 +#: ../Doc/library/re.rst:901 msgid "" "Unknown escapes in *repl* consisting of ``'\\'`` and an ASCII letter now are " "errors." @@ -1613,13 +1659,15 @@ msgstr "" "Les séquences d'échappement inconnues dans *repl* formées par ``'\\'`` et " "une lettre ASCII sont maintenant des erreurs." -#: ../Doc/library/re.rst:803 +#: ../Doc/library/re.rst:905 msgid "" "Empty matches for the pattern are replaced when adjacent to a previous non-" "empty match." msgstr "" +"Les correspondances vides pour le motif sont remplacées lorsqu'elles sont " +"adjacentes à une correspondance non vide précédente." -#: ../Doc/library/re.rst:809 +#: ../Doc/library/re.rst:912 msgid "" "Perform the same operation as :func:`sub`, but return a tuple ``(new_string, " "number_of_subs_made)``." @@ -1627,7 +1675,7 @@ msgstr "" "Réalise la même opération que :func:`sub`, mais renvoie un *tuple* " "``(nouvelle_chaîne, nombre_de_substitutions_réalisées)``." -#: ../Doc/library/re.rst:821 +#: ../Doc/library/re.rst:924 msgid "" "Escape special characters in *pattern*. This is useful if you want to match " "an arbitrary literal string that may have regular expression metacharacters " @@ -1635,29 +1683,34 @@ msgid "" msgstr "" "Échappe tous les caractères spéciaux de *pattern*. Cela est utile si vous " "voulez valider une quelconque chaîne littérale qui pourrait contenir des " -"métacaractères d'expressions rationnelles. Par exemple : ::" +"métacaractères d'expressions rationnelles. Par exemple ::" -#: ../Doc/library/re.rst:836 +#: ../Doc/library/re.rst:939 msgid "" "This functions must not be used for the replacement string in :func:`sub` " "and :func:`subn`, only backslashes should be escaped. For example::" msgstr "" +"Ces fonctions ne doivent pas être utilisées pour la chaîne de remplacement " +"dans :func:`sub` et :func:`subn`, seuls les antislash devraient être " +"échappés. Par exemple ::" -#: ../Doc/library/re.rst:844 +#: ../Doc/library/re.rst:947 msgid "The ``'_'`` character is no longer escaped." msgstr "Le caractère ``'_'`` n'est plus échappé." -#: ../Doc/library/re.rst:847 +#: ../Doc/library/re.rst:950 msgid "" "Only characters that can have special meaning in a regular expression are " "escaped." msgstr "" +"Seuls les caractères qui peuvent avoir une signification spécifique dans une " +"expression régulière sont échappés." -#: ../Doc/library/re.rst:854 +#: ../Doc/library/re.rst:957 msgid "Clear the regular expression cache." msgstr "Vide le cache d'expressions rationnelles." -#: ../Doc/library/re.rst:859 +#: ../Doc/library/re.rst:962 msgid "" "Exception raised when a string passed to one of the functions here is not a " "valid regular expression (for example, it might contain unmatched " @@ -1672,36 +1725,36 @@ msgstr "" "contient aucune correspondance pour un motif. Les instances de l'erreur ont " "les attributs additionnels suivants :" -#: ../Doc/library/re.rst:867 +#: ../Doc/library/re.rst:970 msgid "The unformatted error message." msgstr "Le message d'erreur non formaté." -#: ../Doc/library/re.rst:871 +#: ../Doc/library/re.rst:974 msgid "The regular expression pattern." msgstr "Le motif d'expression rationnelle." -#: ../Doc/library/re.rst:875 +#: ../Doc/library/re.rst:978 msgid "The index in *pattern* where compilation failed (may be ``None``)." msgstr "" "L'index dans *pattern* où la compilation a échoué (peut valoir ``None``)." -#: ../Doc/library/re.rst:879 +#: ../Doc/library/re.rst:982 msgid "The line corresponding to *pos* (may be ``None``)." msgstr "La ligne correspondant à *pos* (peut valoir ``None``)." -#: ../Doc/library/re.rst:883 +#: ../Doc/library/re.rst:986 msgid "The column corresponding to *pos* (may be ``None``)." msgstr "La colonne correspondant à *pos* (peut valoir ``None``)." -#: ../Doc/library/re.rst:885 +#: ../Doc/library/re.rst:988 msgid "Added additional attributes." msgstr "Ajout des attributs additionnels." -#: ../Doc/library/re.rst:891 +#: ../Doc/library/re.rst:994 msgid "Regular Expression Objects" msgstr "Objets d'expressions rationnelles" -#: ../Doc/library/re.rst:893 +#: ../Doc/library/re.rst:996 msgid "" "Compiled regular expression objects support the following methods and " "attributes:" @@ -1709,7 +1762,7 @@ msgstr "" "Les expressions rationnelles compilées supportent les méthodes et attributs " "suivants :" -#: ../Doc/library/re.rst:898 +#: ../Doc/library/re.rst:1001 msgid "" "Scan through *string* looking for the first location where this regular " "expression produces a match, and return a corresponding :ref:`match object " @@ -1723,7 +1776,7 @@ msgstr "" "dans la chaîne ne satisfait le motif ; notez que cela est différent que de " "trouver une correspondance vide dans la chaîne." -#: ../Doc/library/re.rst:904 +#: ../Doc/library/re.rst:1007 msgid "" "The optional second parameter *pos* gives an index in the string where the " "search is to start; it defaults to ``0``. This is not completely equivalent " @@ -1737,7 +1790,7 @@ msgstr "" "``'^'`` correspond au début réel de la chaîne et aux positions juste après " "un saut de ligne, mais pas nécessairement à l'index où la recherche commence." -#: ../Doc/library/re.rst:910 +#: ../Doc/library/re.rst:1013 msgid "" "The optional parameter *endpos* limits how far the string will be searched; " "it will be as if the string is *endpos* characters long, so only the " @@ -1754,7 +1807,7 @@ msgstr "" "expression rationnelle compilée, ``rx.search(string, 0, 50)`` est équivalent " "à ``rx.search(string[:50], 0)``. ::" -#: ../Doc/library/re.rst:925 +#: ../Doc/library/re.rst:1028 msgid "" "If zero or more characters at the *beginning* of *string* match this regular " "expression, return a corresponding :ref:`match object `. " @@ -1766,7 +1819,7 @@ msgstr "" "objects>` trouvé. Renvoie ``None`` si la chaîne ne correspond pas au motif ; " "notez que cela est différent d'une correspondance vide." -#: ../Doc/library/re.rst:930 ../Doc/library/re.rst:948 +#: ../Doc/library/re.rst:1033 ../Doc/library/re.rst:1051 msgid "" "The optional *pos* and *endpos* parameters have the same meaning as for the :" "meth:`~Pattern.search` method. ::" @@ -1774,7 +1827,7 @@ msgstr "" "Les paramètres optionnels *pos* et *endpos* ont le même sens que pour la " "méthode :meth:`~Pattern.search`. ::" -#: ../Doc/library/re.rst:938 +#: ../Doc/library/re.rst:1041 msgid "" "If you want to locate a match anywhere in *string*, use :meth:`~Pattern." "search` instead (see also :ref:`search-vs-match`)." @@ -1782,7 +1835,7 @@ msgstr "" "Si vous voulez une recherche n'importe où dans *string*, utilisez plutôt :" "meth:`~Pattern.search` (voir aussi :ref:`search-vs-match`)." -#: ../Doc/library/re.rst:944 +#: ../Doc/library/re.rst:1047 msgid "" "If the whole *string* matches this regular expression, return a " "corresponding :ref:`match object `. Return ``None`` if the " @@ -1794,11 +1847,11 @@ msgstr "" "la chaîne ne correspond pas au motif ; notez que cela est différent d'une " "correspondance vide." -#: ../Doc/library/re.rst:962 +#: ../Doc/library/re.rst:1065 msgid "Identical to the :func:`split` function, using the compiled pattern." msgstr "Identique à la fonction :func:`split`, en utilisant le motif compilé." -#: ../Doc/library/re.rst:967 +#: ../Doc/library/re.rst:1070 msgid "" "Similar to the :func:`findall` function, using the compiled pattern, but " "also accepts optional *pos* and *endpos* parameters that limit the search " @@ -1808,7 +1861,7 @@ msgstr "" "accepte aussi des paramètres *pos* et *endpos* optionnels qui limitent la " "région de recherche comme pour :meth:`search`." -#: ../Doc/library/re.rst:974 +#: ../Doc/library/re.rst:1077 msgid "" "Similar to the :func:`finditer` function, using the compiled pattern, but " "also accepts optional *pos* and *endpos* parameters that limit the search " @@ -1818,15 +1871,15 @@ msgstr "" "mais accepte aussi des paramètres *pos* et *endpos* optionnels qui limitent " "la région de recherche comme pour :meth:`search`." -#: ../Doc/library/re.rst:981 +#: ../Doc/library/re.rst:1084 msgid "Identical to the :func:`sub` function, using the compiled pattern." msgstr "Identique à la fonction :func:`sub`, en utilisant le motif compilé." -#: ../Doc/library/re.rst:986 +#: ../Doc/library/re.rst:1089 msgid "Identical to the :func:`subn` function, using the compiled pattern." msgstr "Identique à la fonction :func:`subn`, en utilisant le motif compilé." -#: ../Doc/library/re.rst:991 +#: ../Doc/library/re.rst:1094 msgid "" "The regex matching flags. This is a combination of the flags given to :func:" "`.compile`, any ``(?...)`` inline flags in the pattern, and implicit flags " @@ -1837,11 +1890,11 @@ msgstr "" "``(?...)`` dans le motif, et des options implicites comme :data:`UNICODE` si " "le motif est une chaîne Unicode." -#: ../Doc/library/re.rst:998 +#: ../Doc/library/re.rst:1101 msgid "The number of capturing groups in the pattern." msgstr "Le nombre de groupes de capture dans le motif." -#: ../Doc/library/re.rst:1003 +#: ../Doc/library/re.rst:1106 msgid "" "A dictionary mapping any symbolic group names defined by ``(?P)`` to " "group numbers. The dictionary is empty if no symbolic groups were used in " @@ -1851,21 +1904,23 @@ msgstr "" "P)`` aux groupes numérotés. Le dictionnaire est vide si aucun groupe " "symbolique n'est utilisé dans le motif." -#: ../Doc/library/re.rst:1010 +#: ../Doc/library/re.rst:1113 msgid "The pattern string from which the pattern object was compiled." msgstr "La chaîne de motif depuis laquelle l'objet motif a été compilé." -#: ../Doc/library/re.rst:1013 +#: ../Doc/library/re.rst:1116 msgid "" "Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Compiled " "regular expression objects are considered atomic." msgstr "" +"Ajout du support des fonctions :func:`copy.copy` et :func:`copy.deepcopy`. " +"Les expressions régulières compilées sont considérées atomiques." -#: ../Doc/library/re.rst:1021 +#: ../Doc/library/re.rst:1124 msgid "Match Objects" msgstr "Objets de correspondance" -#: ../Doc/library/re.rst:1023 +#: ../Doc/library/re.rst:1126 msgid "" "Match objects always have a boolean value of ``True``. Since :meth:`~Pattern." "match` and :meth:`~Pattern.search` return ``None`` when there is no match, " @@ -1874,14 +1929,14 @@ msgstr "" "Les objets de correspondance ont toujours une valeur booléenne ``True``. " "Puisque :meth:`~Pattern.match` et :meth:`~Pattern.search` renvoient ``None`` " "quand il n'y a pas de correspondance, vous pouvez tester s'il y a eu " -"correspondance avec une simple instruction ``if`` : ::" +"correspondance avec une simple instruction ``if`` ::" -#: ../Doc/library/re.rst:1032 +#: ../Doc/library/re.rst:1135 msgid "Match objects support the following methods and attributes:" msgstr "" "Les objets de correspondance supportent les méthodes et attributs suivants :" -#: ../Doc/library/re.rst:1037 +#: ../Doc/library/re.rst:1140 msgid "" "Return the string obtained by doing backslash substitution on the template " "string *template*, as done by the :meth:`~Pattern.sub` method. Escapes such " @@ -1896,7 +1951,7 @@ msgstr "" "\\g<1>``, ``\\g``) sont remplacées par les contenus des groupes " "correspondant." -#: ../Doc/library/re.rst:1049 +#: ../Doc/library/re.rst:1152 msgid "" "Returns one or more subgroups of the match. If there is a single argument, " "the result is a single string; if there are multiple arguments, the result " @@ -1923,7 +1978,7 @@ msgstr "" "sera ``None``. Si un groupe est contenu dans une partie du motif qui a " "plusieurs correspondances, seule la dernière correspondance est renvoyée. ::" -#: ../Doc/library/re.rst:1071 +#: ../Doc/library/re.rst:1174 msgid "" "If the regular expression uses the ``(?P...)`` syntax, the *groupN* " "arguments may also be strings identifying groups by their group name. If a " @@ -1935,20 +1990,20 @@ msgstr "" "groupes par leurs noms. Si une chaîne donnée en argument n'est pas utilisée " "comme nom de groupe dans le motif, une exception :exc:`IndexError` est levée." -#: ../Doc/library/re.rst:1076 +#: ../Doc/library/re.rst:1179 msgid "A moderately complicated example::" msgstr "Un exemple modérément compliqué ::" -#: ../Doc/library/re.rst:1084 +#: ../Doc/library/re.rst:1187 msgid "Named groups can also be referred to by their index::" msgstr "Les groupes nommés peuvent aussi être référencés par leur index ::" -#: ../Doc/library/re.rst:1091 +#: ../Doc/library/re.rst:1194 msgid "If a group matches multiple times, only the last match is accessible::" msgstr "" "Si un groupe a plusieurs correspondances, seule la dernière est accessible ::" -#: ../Doc/library/re.rst:1100 +#: ../Doc/library/re.rst:1203 msgid "" "This is identical to ``m.group(g)``. This allows easier access to an " "individual group from a match::" @@ -1956,7 +2011,7 @@ msgstr "" "Cela est identique à ``m.group(g)``. Cela permet un accès plus facile à un " "groupe individuel depuis une correspondance ::" -#: ../Doc/library/re.rst:1116 +#: ../Doc/library/re.rst:1219 msgid "" "Return a tuple containing all the subgroups of the match, from 1 up to " "however many groups are in the pattern. The *default* argument is used for " @@ -1966,11 +2021,11 @@ msgstr "" "1 jusqu'au nombre de groupes dans le motif. L'argument *default* est " "utilisé pour les groupes sans correspondance ; il vaut ``None`` par défaut." -#: ../Doc/library/re.rst:1120 ../Doc/library/re.rst:1345 +#: ../Doc/library/re.rst:1223 ../Doc/library/re.rst:1448 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/re.rst:1126 +#: ../Doc/library/re.rst:1229 msgid "" "If we make the decimal place and everything after it optional, not all " "groups might participate in the match. These groups will default to " @@ -1981,7 +2036,7 @@ msgstr "" "correspondance vaudront ``None`` sauf si une autre valeur est donnée à " "l'argument *default* ::" -#: ../Doc/library/re.rst:1139 +#: ../Doc/library/re.rst:1242 msgid "" "Return a dictionary containing all the *named* subgroups of the match, keyed " "by the subgroup name. The *default* argument is used for groups that did " @@ -1992,7 +2047,7 @@ msgstr "" "utilisé pour les groupes qui ne figurent pas dans la correspondance ; il " "vaut ``None`` par défaut. Par exemple ::" -#: ../Doc/library/re.rst:1151 +#: ../Doc/library/re.rst:1254 msgid "" "Return the indices of the start and end of the substring matched by *group*; " "*group* defaults to zero (meaning the whole matched substring). Return " @@ -2005,9 +2060,9 @@ msgstr "" "la correspondance complète). Renvoie ``-1`` si *group* existe mais ne figure " "pas dans la correspondance. Pour un objet de correspondance *m*, et un " "groupe *g* qui y figure, la sous-chaîne correspondant au groupe *g* " -"(équivalente à ``m.group(g)``) est : ::" +"(équivalente à ``m.group(g)``) est ::" -#: ../Doc/library/re.rst:1159 +#: ../Doc/library/re.rst:1262 msgid "" "Note that ``m.start(group)`` will equal ``m.end(group)`` if *group* matched " "a null string. For example, after ``m = re.search('b(c?)', 'cba')``, ``m." @@ -2020,11 +2075,11 @@ msgstr "" "end(1)`` valent tous deux 2, et ``m.start(2)`` lève une exception :exc:" "`IndexError`." -#: ../Doc/library/re.rst:1164 +#: ../Doc/library/re.rst:1267 msgid "An example that will remove *remove_this* from email addresses::" msgstr "Un exemple qui supprimera *remove_this* d'une adresse mail ::" -#: ../Doc/library/re.rst:1174 +#: ../Doc/library/re.rst:1277 msgid "" "For a match *m*, return the 2-tuple ``(m.start(group), m.end(group))``. Note " "that if *group* did not contribute to the match, this is ``(-1, -1)``. " @@ -2035,7 +2090,7 @@ msgstr "" "``(-1, -1)`` est renvoyé. *group* vaut par défaut zéro, pour la " "correspondance entière." -#: ../Doc/library/re.rst:1181 +#: ../Doc/library/re.rst:1284 msgid "" "The value of *pos* which was passed to the :meth:`~Pattern.search` or :meth:" "`~Pattern.match` method of a :ref:`regex object `. This is the " @@ -2046,7 +2101,7 @@ msgstr "" "objects>`. C'est l'index dans la chaîne à partir duquel le moteur " "d'expressions rationnelles recherche une correspondance." -#: ../Doc/library/re.rst:1188 +#: ../Doc/library/re.rst:1291 msgid "" "The value of *endpos* which was passed to the :meth:`~Pattern.search` or :" "meth:`~Pattern.match` method of a :ref:`regex object `. This is " @@ -2057,7 +2112,7 @@ msgstr "" "objects>`. C'est l'index dans la chaîne que le moteur d'expressions " "rationnelles ne dépassera pas." -#: ../Doc/library/re.rst:1195 +#: ../Doc/library/re.rst:1298 msgid "" "The integer index of the last matched capturing group, or ``None`` if no " "group was matched at all. For example, the expressions ``(a)b``, ``((a)" @@ -2071,7 +2126,7 @@ msgstr "" "``'ab'``, alors que l'expression ``(a)(b)`` aura un ``lastindex == 2`` si " "appliquée à la même chaîne." -#: ../Doc/library/re.rst:1204 +#: ../Doc/library/re.rst:1307 msgid "" "The name of the last matched capturing group, or ``None`` if the group " "didn't have a name, or if no group was matched at all." @@ -2079,7 +2134,7 @@ msgstr "" "Le nom du dernier groupe capturant validé, ou ``None`` si le groupe n'a pas " "de nom, ou si aucun groupe ne correspondait." -#: ../Doc/library/re.rst:1210 +#: ../Doc/library/re.rst:1313 msgid "" "The :ref:`regular expression object ` whose :meth:`~Pattern." "match` or :meth:`~Pattern.search` method produced this match instance." @@ -2087,25 +2142,27 @@ msgstr "" ":ref:`L'expression rationnelle ` dont la méthode :meth:`~Pattern." "match` ou :meth:`~Pattern.search` a produit cet objet de correspondance." -#: ../Doc/library/re.rst:1216 +#: ../Doc/library/re.rst:1319 msgid "The string passed to :meth:`~Pattern.match` or :meth:`~Pattern.search`." msgstr "La chaîne passée à :meth:`~Pattern.match` ou :meth:`~Pattern.search`." -#: ../Doc/library/re.rst:1219 +#: ../Doc/library/re.rst:1322 msgid "" "Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Match objects " "are considered atomic." msgstr "" +"Ajout du support des fonctions :func:`copy.copy` et :func:`copy.deepcopy`. " +"Les objets correspondants sont considérés atomiques." -#: ../Doc/library/re.rst:1227 +#: ../Doc/library/re.rst:1330 msgid "Regular Expression Examples" msgstr "Exemples d'expressions rationnelles" -#: ../Doc/library/re.rst:1231 +#: ../Doc/library/re.rst:1334 msgid "Checking for a Pair" msgstr "Rechercher une paire" -#: ../Doc/library/re.rst:1233 +#: ../Doc/library/re.rst:1336 msgid "" "In this example, we'll use the following helper function to display match " "objects a little more gracefully:" @@ -2113,7 +2170,7 @@ msgstr "" "Dans cet exemple, nous utiliserons cette fonction de facilité pour afficher " "les objets de correspondance sous une meilleure forme :" -#: ../Doc/library/re.rst:1243 +#: ../Doc/library/re.rst:1346 msgid "" "Suppose you are writing a poker program where a player's hand is represented " "as a 5-character string with each character representing a card, \"a\" for " @@ -2127,13 +2184,13 @@ msgstr "" "(*ten*), et les caractères de \"2\" à \"9\" représentant les cartes avec ces " "valeurs." -#: ../Doc/library/re.rst:1248 +#: ../Doc/library/re.rst:1351 msgid "To see if a given string is a valid hand, one could do the following::" msgstr "" "Pour vérifier qu'une chaîne donnée est une main valide, on pourrait faire " "comme suit ::" -#: ../Doc/library/re.rst:1258 +#: ../Doc/library/re.rst:1361 msgid "" "That last hand, ``\"727ak\"``, contained a pair, or two of the same valued " "cards. To match this with a regular expression, one could use backreferences " @@ -2143,7 +2200,7 @@ msgstr "" "valeur. Pour valider cela avec une expression rationnelle, on pourrait " "utiliser des références arrière comme ::" -#: ../Doc/library/re.rst:1268 +#: ../Doc/library/re.rst:1371 msgid "" "To find out what card the pair consists of, one could use the :meth:`~Match." "group` method of the match object in the following manner:" @@ -2152,11 +2209,11 @@ msgstr "" "méthode :meth:`~Match.group` de l'objet de correspondance de la manière " "suivante :" -#: ../Doc/library/re.rst:1288 +#: ../Doc/library/re.rst:1391 msgid "Simulating scanf()" msgstr "Simuler *scanf()*" -#: ../Doc/library/re.rst:1292 +#: ../Doc/library/re.rst:1395 msgid "" "Python does not currently have an equivalent to :c:func:`scanf`. Regular " "expressions are generally more powerful, though also more verbose, than :c:" @@ -2170,100 +2227,100 @@ msgstr "" "suivant présente des expressions rationnelles plus ou moins équivalentes aux " "éléments de formats de :c:func:`scanf`." -#: ../Doc/library/re.rst:1299 +#: ../Doc/library/re.rst:1402 msgid ":c:func:`scanf` Token" msgstr "Élément de :c:func:`scanf`" -#: ../Doc/library/re.rst:1299 +#: ../Doc/library/re.rst:1402 msgid "Regular Expression" msgstr "Expression rationnelle" -#: ../Doc/library/re.rst:1301 +#: ../Doc/library/re.rst:1404 msgid "``%c``" msgstr "``%c``" -#: ../Doc/library/re.rst:1303 +#: ../Doc/library/re.rst:1406 msgid "``%5c``" msgstr "``%5c``" -#: ../Doc/library/re.rst:1303 +#: ../Doc/library/re.rst:1406 msgid "``.{5}``" msgstr "``.{5}``" -#: ../Doc/library/re.rst:1305 +#: ../Doc/library/re.rst:1408 msgid "``%d``" msgstr "``%d``" -#: ../Doc/library/re.rst:1305 +#: ../Doc/library/re.rst:1408 msgid "``[-+]?\\d+``" msgstr "``[-+]?\\d+``" -#: ../Doc/library/re.rst:1307 +#: ../Doc/library/re.rst:1410 msgid "``%e``, ``%E``, ``%f``, ``%g``" msgstr "``%e``, ``%E``, ``%f``, ``%g``" -#: ../Doc/library/re.rst:1307 +#: ../Doc/library/re.rst:1410 msgid "``[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?``" msgstr "``[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?``" -#: ../Doc/library/re.rst:1309 +#: ../Doc/library/re.rst:1412 msgid "``%i``" msgstr "``%i``" -#: ../Doc/library/re.rst:1309 +#: ../Doc/library/re.rst:1412 msgid "``[-+]?(0[xX][\\dA-Fa-f]+|0[0-7]*|\\d+)``" msgstr "``[-+]?(0[xX][\\dA-Fa-f]+|0[0-7]*|\\d+)``" -#: ../Doc/library/re.rst:1311 +#: ../Doc/library/re.rst:1414 msgid "``%o``" msgstr "``%o``" -#: ../Doc/library/re.rst:1311 +#: ../Doc/library/re.rst:1414 msgid "``[-+]?[0-7]+``" msgstr "``[-+]?[0-7]+``" -#: ../Doc/library/re.rst:1313 +#: ../Doc/library/re.rst:1416 msgid "``%s``" msgstr "``%s``" -#: ../Doc/library/re.rst:1313 +#: ../Doc/library/re.rst:1416 msgid "``\\S+``" msgstr "``\\S+``" -#: ../Doc/library/re.rst:1315 +#: ../Doc/library/re.rst:1418 msgid "``%u``" msgstr "``%u``" -#: ../Doc/library/re.rst:1315 +#: ../Doc/library/re.rst:1418 msgid "``\\d+``" msgstr "``\\d+``" -#: ../Doc/library/re.rst:1317 +#: ../Doc/library/re.rst:1420 msgid "``%x``, ``%X``" msgstr "``%x``, ``%X``" -#: ../Doc/library/re.rst:1317 +#: ../Doc/library/re.rst:1420 msgid "``[-+]?(0[xX])?[\\dA-Fa-f]+``" msgstr "``[-+]?(0[xX])?[\\dA-Fa-f]+``" -#: ../Doc/library/re.rst:1320 +#: ../Doc/library/re.rst:1423 msgid "To extract the filename and numbers from a string like ::" msgstr "" -"Pour extraire le nom de fichier et les nombres depuis une chaîne comme : ::" +"Pour extraire le nom de fichier et les nombres depuis une chaîne comme ::" -#: ../Doc/library/re.rst:1324 +#: ../Doc/library/re.rst:1427 msgid "you would use a :c:func:`scanf` format like ::" -msgstr "vous utiliseriez un format :c:func:`scanf` comme : ::" +msgstr "vous utiliseriez un format :c:func:`scanf` comme ::" -#: ../Doc/library/re.rst:1328 +#: ../Doc/library/re.rst:1431 msgid "The equivalent regular expression would be ::" -msgstr "L'expression rationnelle équivalente serait : ::" +msgstr "L'expression rationnelle équivalente serait ::" -#: ../Doc/library/re.rst:1336 +#: ../Doc/library/re.rst:1439 msgid "search() vs. match()" msgstr "search() vs. match()" -#: ../Doc/library/re.rst:1340 +#: ../Doc/library/re.rst:1443 msgid "" "Python offers two different primitive operations based on regular " "expressions: :func:`re.match` checks for a match only at the beginning of " @@ -2275,15 +2332,15 @@ msgstr "" "début de la chaîne, tandis que :func:`re.search` en recherche une n'importe " "où dans la chaîne (ce que fait Perl par défaut)." -#: ../Doc/library/re.rst:1351 +#: ../Doc/library/re.rst:1454 msgid "" "Regular expressions beginning with ``'^'`` can be used with :func:`search` " "to restrict the match at the beginning of the string::" msgstr "" "Les expressions rationnelles commençant par ``'^'`` peuvent être utilisées " -"avec :func:`search` pour restreindre la recherche au début de la chaîne : ::" +"avec :func:`search` pour restreindre la recherche au début de la chaîne ::" -#: ../Doc/library/re.rst:1359 +#: ../Doc/library/re.rst:1462 msgid "" "Note however that in :const:`MULTILINE` mode :func:`match` only matches at " "the beginning of the string, whereas using :func:`search` with a regular " @@ -2294,11 +2351,11 @@ msgstr "" "qu'au début de la chaîne, alors que :func:`search` avec une expression " "rationnelle commençant par ``'^'`` recherchera au début de chaque ligne. ::" -#: ../Doc/library/re.rst:1369 +#: ../Doc/library/re.rst:1472 msgid "Making a Phonebook" msgstr "Construire un répertoire téléphonique" -#: ../Doc/library/re.rst:1371 +#: ../Doc/library/re.rst:1474 msgid "" ":func:`split` splits a string into a list delimited by the passed pattern. " "The method is invaluable for converting textual data into data structures " @@ -2310,7 +2367,7 @@ msgstr "" "structures de données qui peuvent être lues et modifiées par Python comme " "démontré dans l'exemple suivant qui crée un répertoire téléphonique." -#: ../Doc/library/re.rst:1376 +#: ../Doc/library/re.rst:1479 msgid "" "First, here is the input. Normally it may come from a file, here we are " "using triple-quoted string syntax::" @@ -2318,7 +2375,7 @@ msgstr "" "Premièrement, voici l'entrée. Elle provient normalement d'un fichier, nous " "utilisons ici une chaîne à guillemets triples ::" -#: ../Doc/library/re.rst:1387 +#: ../Doc/library/re.rst:1490 msgid "" "The entries are separated by one or more newlines. Now we convert the string " "into a list with each nonempty line having its own entry:" @@ -2327,7 +2384,7 @@ msgstr "" "maintenant la chaîne en une liste où chaque ligne non vide aura sa propre " "entrée :" -#: ../Doc/library/re.rst:1400 +#: ../Doc/library/re.rst:1503 msgid "" "Finally, split each entry into a list with first name, last name, telephone " "number, and address. We use the ``maxsplit`` parameter of :func:`split` " @@ -2338,7 +2395,7 @@ msgstr "" "`split` parce que l'adresse contient des espaces, qui sont notre motif de " "séparation :" -#: ../Doc/library/re.rst:1413 +#: ../Doc/library/re.rst:1516 msgid "" "The ``:?`` pattern matches the colon after the last name, so that it does " "not occur in the result list. With a ``maxsplit`` of ``4``, we could " @@ -2348,11 +2405,11 @@ msgstr "" "qu'ils n'apparaissent pas dans la liste résultante. Avec un ``maxsplit`` de " "``4``, nous pourrions séparer le numéro du nom de la rue :" -#: ../Doc/library/re.rst:1428 +#: ../Doc/library/re.rst:1531 msgid "Text Munging" msgstr "Mélanger les lettres des mots" -#: ../Doc/library/re.rst:1430 +#: ../Doc/library/re.rst:1533 msgid "" ":func:`sub` replaces every occurrence of a pattern with a string or the " "result of a function. This example demonstrates using :func:`sub` with a " @@ -2362,13 +2419,13 @@ msgstr "" ":func:`sub` remplace toutes les occurrences d'un motif par une chaîne ou le " "résultat d'une fonction. Cet exemple le montre, en utilisant :func:`sub` " "avec une fonction qui mélange aléatoirement les caractères de chaque mot " -"dans une phrase (à l'exception des premiers et derniers caractères) : ::" +"dans une phrase (à l'exception des premiers et derniers caractères) ::" -#: ../Doc/library/re.rst:1447 +#: ../Doc/library/re.rst:1550 msgid "Finding all Adverbs" msgstr "Trouver tous les adverbes" -#: ../Doc/library/re.rst:1449 +#: ../Doc/library/re.rst:1552 msgid "" ":func:`findall` matches *all* occurrences of a pattern, not just the first " "one as :func:`search` does. For example, if a writer wanted to find all of " @@ -2380,11 +2437,11 @@ msgstr "" "voulait trouver tous les adverbes dans un texte, il/elle devrait utiliser :" "func:`findall` de la manière suivante ::" -#: ../Doc/library/re.rst:1460 +#: ../Doc/library/re.rst:1563 msgid "Finding all Adverbs and their Positions" msgstr "Trouver tous les adverbes et leurs positions" -#: ../Doc/library/re.rst:1462 +#: ../Doc/library/re.rst:1565 msgid "" "If one wants more information about all matches of a pattern than the " "matched text, :func:`finditer` is useful as it provides :ref:`match objects " @@ -2399,11 +2456,11 @@ msgstr "" "leurs positions* dans un texte, il/elle utiliserait :func:`finditer` de la " "manière suivante ::" -#: ../Doc/library/re.rst:1476 +#: ../Doc/library/re.rst:1579 msgid "Raw String Notation" msgstr "Notation brutes de chaînes" -#: ../Doc/library/re.rst:1478 +#: ../Doc/library/re.rst:1581 msgid "" "Raw string notation (``r\"text\"``) keeps regular expressions sane. Without " "it, every backslash (``'\\'``) in a regular expression would have to be " @@ -2416,7 +2473,7 @@ msgstr "" "Par exemple, les deux lignes de code suivantes sont fonctionnellement " "identiques ::" -#: ../Doc/library/re.rst:1488 +#: ../Doc/library/re.rst:1591 msgid "" "When one wants to match a literal backslash, it must be escaped in the " "regular expression. With raw string notation, this means ``r\"\\\\\"``. " @@ -2428,11 +2485,11 @@ msgstr "" "\"``. Sans elle, il faudrait utiliser ``\"\\\\\\\\\"``, faisant que les " "deux lignes de code suivantes sont fonctionnellement identiques ::" -#: ../Doc/library/re.rst:1500 +#: ../Doc/library/re.rst:1603 msgid "Writing a Tokenizer" msgstr "Écrire un analyseur lexical" -#: ../Doc/library/re.rst:1502 +#: ../Doc/library/re.rst:1605 msgid "" "A `tokenizer or scanner `_ " "analyzes a string to categorize groups of characters. This is a useful " @@ -2443,7 +2500,7 @@ msgstr "" "caractères. C'est une première étape utile dans l'écriture d'un compilateur " "ou d'un interpréteur." -#: ../Doc/library/re.rst:1506 +#: ../Doc/library/re.rst:1609 msgid "" "The text categories are specified with regular expressions. The technique " "is to combine those into a single master regular expression and to loop over " @@ -2451,13 +2508,13 @@ msgid "" msgstr "" "Les catégories de texte sont spécifiées par des expressions rationnelles. " "La technique est de les combiner dans une unique expression rationnelle " -"maîtresse, et de boucler sur les correspondances successives : ::" +"maîtresse, et de boucler sur les correspondances successives ::" -#: ../Doc/library/re.rst:1556 +#: ../Doc/library/re.rst:1661 msgid "The tokenizer produces the following output::" -msgstr "L'analyseur produit la sortie suivante : ::" +msgstr "L'analyseur produit la sortie suivante ::" -#: ../Doc/library/re.rst:1579 +#: ../Doc/library/re.rst:1684 msgid "" "Friedl, Jeffrey. Mastering Regular Expressions. 3rd ed., O'Reilly Media, " "2009. The third edition of the book no longer covers Python at all, but the " diff --git a/library/readline.po b/library/readline.po index 723963d7a..b1486beee 100644 --- a/library/readline.po +++ b/library/readline.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-30 23:09+0200\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-16 23:19+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" -"Last-Translator: Eric Régnier \n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/library/readline.rst:2 msgid ":mod:`readline` --- GNU readline interface" -msgstr ":mod:`readline` --- interface pour GNU *readline*" +msgstr ":mod:`readline` — interface pour GNU *readline*" #: ../Doc/library/readline.rst:12 msgid "" @@ -40,13 +41,13 @@ msgstr "" msgid "" "Readline keybindings may be configured via an initialization file, typically " "``.inputrc`` in your home directory. See `Readline Init File `_ in the GNU " -"Readline manual for information about the format and allowable constructs of " -"that file, and the capabilities of the Readline library in general." +"tiswww.cwru.edu/php/chet/readline/rluserman.html#SEC9>`_ in the GNU Readline " +"manual for information about the format and allowable constructs of that " +"file, and the capabilities of the Readline library in general." msgstr "" "L'association de touches de *readline* peut être configurée via un fichier " -"d'initialisation, typiquement nommé ``.inputrc`` dans votre répertoire " -"utilisateur. Voir `Readline Init File `_ dans le manuel GNU pour *readline* pour des " "information à propos du format et de la construction autorisée de ce " "fichier, ainsi que les possibilités de la bibliothèque *readline* en général." @@ -82,9 +83,10 @@ msgid "" "keybindings and TAB completion::" msgstr "" "Si vous utilisez l'émulation *editline*/``libedit`` sur MacOS, le fichier " -"d'initialisation situé dans votre répertoire utilisateur est appelé ``." +"d'initialisation situé dans votre répertoire d’accueil est appelé ``." "editrc``. Par exemple, le contenu suivant dans ``~/.editrc`` active " -"l'association de touches *vi* et la complétion avec la touche de tabulation." +"l'association de touches *vi* et la complétion avec la touche de " +"tabulation ::" #: ../Doc/library/readline.rst:49 msgid "Init file" @@ -443,9 +445,9 @@ msgstr "" "L'exemple suivant démontre comment utiliser les fonctions de lecture et " "d'écriture de l'historique du module :mod:`readline` pour charger ou " "sauvegarder automatiquement un fichier d'historique nommé :file:`." -"python_history` depuis le répertoire racine de l'utilisateur. Le code ci-" +"python_history` depuis le répertoire d’accueil de l’utilisateur. Le code ci-" "dessous doit normalement être exécuté automatiquement durant une session " -"interactive depuis le fichier de l'utilisateur :envvar:`PYTHONSTARTUP`. : ::" +"interactive depuis le fichier de l'utilisateur :envvar:`PYTHONSTARTUP`. ::" #: ../Doc/library/readline.rst:310 msgid "" @@ -461,7 +463,7 @@ msgid "" "interactive sessions, by only appending the new history. ::" msgstr "" "L'exemple suivant atteint le même objectif mais gère des sessions " -"interactives concurrentes, en ajoutant seulement le nouvel historique. : ::" +"interactives concurrentes, en ajoutant seulement le nouvel historique. ::" #: ../Doc/library/readline.rst:334 msgid "" @@ -469,4 +471,4 @@ msgid "" "support history save/restore. ::" msgstr "" "L'exemple suivant étend la classe :class:`code.InteractiveConsole` pour " -"gérer la sauvegarde/restauration de l'historique. : ::" +"gérer la sauvegarde/restauration de l'historique. ::" diff --git a/library/reprlib.po b/library/reprlib.po index 7889fcee3..34d71e436 100644 --- a/library/reprlib.po +++ b/library/reprlib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -62,44 +62,44 @@ msgid "" "string instead." msgstr "" -#: ../Doc/library/reprlib.rst:47 +#: ../Doc/library/reprlib.rst:50 msgid "" "Decorator for :meth:`__repr__` methods to detect recursive calls within the " "same thread. If a recursive call is made, the *fillvalue* is returned, " "otherwise, the usual :meth:`__repr__` call is made. For example:" msgstr "" -#: ../Doc/library/reprlib.rst:69 +#: ../Doc/library/reprlib.rst:72 msgid "Repr Objects" msgstr "" -#: ../Doc/library/reprlib.rst:71 +#: ../Doc/library/reprlib.rst:74 msgid "" ":class:`Repr` instances provide several attributes which can be used to " "provide size limits for the representations of different object types, and " "methods which format specific object types." msgstr "" -#: ../Doc/library/reprlib.rst:78 +#: ../Doc/library/reprlib.rst:81 msgid "" "Depth limit on the creation of recursive representations. The default is " "``6``." msgstr "" -#: ../Doc/library/reprlib.rst:89 +#: ../Doc/library/reprlib.rst:92 msgid "" "Limits on the number of entries represented for the named object type. The " "default is ``4`` for :attr:`maxdict`, ``5`` for :attr:`maxarray`, and ``6`` " "for the others." msgstr "" -#: ../Doc/library/reprlib.rst:96 +#: ../Doc/library/reprlib.rst:99 msgid "" "Maximum number of characters in the representation for an integer. Digits " "are dropped from the middle. The default is ``40``." msgstr "" -#: ../Doc/library/reprlib.rst:102 +#: ../Doc/library/reprlib.rst:105 msgid "" "Limit on the number of characters in the representation of the string. Note " "that the \"normal\" representation of the string is used as the character " @@ -107,20 +107,20 @@ msgid "" "mangled when the representation is shortened. The default is ``30``." msgstr "" -#: ../Doc/library/reprlib.rst:110 +#: ../Doc/library/reprlib.rst:113 msgid "" "This limit is used to control the size of object types for which no specific " "formatting method is available on the :class:`Repr` object. It is applied in " "a similar manner as :attr:`maxstring`. The default is ``20``." msgstr "" -#: ../Doc/library/reprlib.rst:117 +#: ../Doc/library/reprlib.rst:120 msgid "" "The equivalent to the built-in :func:`repr` that uses the formatting imposed " "by the instance." msgstr "" -#: ../Doc/library/reprlib.rst:123 +#: ../Doc/library/reprlib.rst:126 msgid "" "Recursive implementation used by :meth:`.repr`. This uses the type of *obj* " "to determine which formatting method to call, passing it *obj* and *level*. " @@ -129,7 +129,7 @@ msgid "" "call." msgstr "" -#: ../Doc/library/reprlib.rst:132 +#: ../Doc/library/reprlib.rst:135 msgid "" "Formatting methods for specific types are implemented as methods with a name " "based on the type name. In the method name, **TYPE** is replaced by ``'_'." @@ -138,11 +138,11 @@ msgid "" "should call ``self.repr1(subobj, level - 1)``." msgstr "" -#: ../Doc/library/reprlib.rst:142 +#: ../Doc/library/reprlib.rst:145 msgid "Subclassing Repr Objects" msgstr "" -#: ../Doc/library/reprlib.rst:144 +#: ../Doc/library/reprlib.rst:147 msgid "" "The use of dynamic dispatching by :meth:`Repr.repr1` allows subclasses of :" "class:`Repr` to add support for additional built-in object types or to " diff --git a/library/resource.po b/library/resource.po index 2954b8a00..404b14c3d 100644 --- a/library/resource.po +++ b/library/resource.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-29 21:18+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -125,9 +125,13 @@ msgid "" "process." msgstr "" -#: ../Doc/library/resource.rst:95 -msgid "Availability: Linux 2.6.36 or later with glibc 2.13 or later" +#: ../Doc/library/resource.rst:96 +msgid "" +":ref:`Availability `: Linux 2.6.36 or later with glibc 2.13 or " +"later." msgstr "" +":ref:`Disponibilité ` : Linux 2.6.36 et ultérieures avec " +"*glibc* 2.13 et ultérieures." #: ../Doc/library/resource.rst:100 msgid "" @@ -209,17 +213,17 @@ msgstr "" msgid "The number of bytes that can be allocated for POSIX message queues." msgstr "" -#: ../Doc/library/resource.rst:181 ../Doc/library/resource.rst:218 -msgid "Availability: Linux 2.6.8 or later." -msgstr "" +#: ../Doc/library/resource.rst:182 ../Doc/library/resource.rst:219 +msgid ":ref:`Availability `: Linux 2.6.8 or later." +msgstr ":ref:`Disponibilité ` : Linux 2.6.8 et ultérieures." #: ../Doc/library/resource.rst:188 msgid "The ceiling for the process's nice level (calculated as 20 - rlim_cur)." msgstr "" -#: ../Doc/library/resource.rst:190 ../Doc/library/resource.rst:199 -msgid "Availability: Linux 2.6.12 or later." -msgstr "" +#: ../Doc/library/resource.rst:191 ../Doc/library/resource.rst:200 +msgid ":ref:`Availability `: Linux 2.6.12 or later." +msgstr ":ref:`Disponibilité ` : Linux 2.6.12 et ultérieures." #: ../Doc/library/resource.rst:197 msgid "The ceiling of the real-time priority." @@ -231,9 +235,9 @@ msgid "" "real-time scheduling without making a blocking syscall." msgstr "" -#: ../Doc/library/resource.rst:209 -msgid "Availability: Linux 2.6.25 or later." -msgstr "" +#: ../Doc/library/resource.rst:210 +msgid ":ref:`Availability `: Linux 2.6.25 or later." +msgstr ":ref:`Disponibilité ` : Linux 2.6.25 et ultérieures." #: ../Doc/library/resource.rst:216 msgid "The number of signals which the process may queue." @@ -246,10 +250,10 @@ msgid "" "this user may hold at any time." msgstr "" -#: ../Doc/library/resource.rst:228 ../Doc/library/resource.rst:239 -#: ../Doc/library/resource.rst:247 -msgid "Availability: FreeBSD 9 or later." -msgstr "" +#: ../Doc/library/resource.rst:229 ../Doc/library/resource.rst:240 +#: ../Doc/library/resource.rst:248 +msgid ":ref:`Availability `: FreeBSD 9 or later." +msgstr ":ref:`Disponibilité ` : FreeBSD 9 et ultérieures." #: ../Doc/library/resource.rst:234 msgid "" @@ -306,11 +310,11 @@ msgstr "" #: ../Doc/library/resource.rst:279 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/resource.rst:279 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/resource.rst:279 msgid "Resource" diff --git a/library/rlcompleter.po b/library/rlcompleter.po index 250f910bc..352433fbc 100644 --- a/library/rlcompleter.po +++ b/library/rlcompleter.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2018-10-04 09:51+0200\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" -"Last-Translator: \n" "X-Generator: Poedit 1.8.11\n" #: ../Doc/library/rlcompleter.rst:2 msgid ":mod:`rlcompleter` --- Completion function for GNU readline" -msgstr ":mod:`rlcompleter` --- Fonction de complétion pour *GNU readline*" +msgstr ":mod:`rlcompleter` — Fonction de complétion pour *GNU readline*" #: ../Doc/library/rlcompleter.rst:9 msgid "**Source code:** :source:`Lib/rlcompleter.py`" diff --git a/library/sched.po b/library/sched.po index 71d1bc587..e6249b6a7 100644 --- a/library/sched.po +++ b/library/sched.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -33,36 +33,35 @@ msgid "" "The :class:`scheduler` class defines a generic interface to scheduling " "events. It needs two functions to actually deal with the \"outside world\" " "--- *timefunc* should be callable without arguments, and return a number " -"(the \"time\", in any units whatsoever). If time.monotonic is not available, " -"the *timefunc* default is time.time instead. The *delayfunc* function should " -"be callable with one argument, compatible with the output of *timefunc*, and " +"(the \"time\", in any units whatsoever). The *delayfunc* function should be " +"callable with one argument, compatible with the output of *timefunc*, and " "should delay that many time units. *delayfunc* will also be called with the " "argument ``0`` after each event is run to allow other threads an opportunity " "to run in multi-threaded applications." msgstr "" -#: ../Doc/library/sched.rst:30 +#: ../Doc/library/sched.rst:29 msgid "*timefunc* and *delayfunc* parameters are optional." msgstr "" -#: ../Doc/library/sched.rst:33 +#: ../Doc/library/sched.rst:32 msgid "" ":class:`scheduler` class can be safely used in multi-threaded environments." msgstr "" -#: ../Doc/library/sched.rst:37 +#: ../Doc/library/sched.rst:36 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/sched.rst:62 +#: ../Doc/library/sched.rst:61 msgid "Scheduler Objects" msgstr "" -#: ../Doc/library/sched.rst:64 +#: ../Doc/library/sched.rst:63 msgid ":class:`scheduler` instances have the following methods and attributes:" msgstr "" -#: ../Doc/library/sched.rst:69 +#: ../Doc/library/sched.rst:68 msgid "" "Schedule a new event. The *time* argument should be a numeric type " "compatible with the return value of the *timefunc* function passed to the " @@ -70,59 +69,59 @@ msgid "" "order of their *priority*. A lower number represents a higher priority." msgstr "" -#: ../Doc/library/sched.rst:74 +#: ../Doc/library/sched.rst:73 msgid "" "Executing the event means executing ``action(*argument, **kwargs)``. " "*argument* is a sequence holding the positional arguments for *action*. " "*kwargs* is a dictionary holding the keyword arguments for *action*." msgstr "" -#: ../Doc/library/sched.rst:78 +#: ../Doc/library/sched.rst:77 msgid "" "Return value is an event which may be used for later cancellation of the " "event (see :meth:`cancel`)." msgstr "" -#: ../Doc/library/sched.rst:81 ../Doc/library/sched.rst:94 +#: ../Doc/library/sched.rst:80 ../Doc/library/sched.rst:93 msgid "*argument* parameter is optional." msgstr "" -#: ../Doc/library/sched.rst:84 ../Doc/library/sched.rst:97 +#: ../Doc/library/sched.rst:83 ../Doc/library/sched.rst:96 msgid "*kwargs* parameter was added." msgstr "" -#: ../Doc/library/sched.rst:90 +#: ../Doc/library/sched.rst:89 msgid "" "Schedule an event for *delay* more time units. Other than the relative time, " "the other arguments, the effect and the return value are the same as those " "for :meth:`enterabs`." msgstr "" -#: ../Doc/library/sched.rst:102 +#: ../Doc/library/sched.rst:101 msgid "" "Remove the event from the queue. If *event* is not an event currently in the " "queue, this method will raise a :exc:`ValueError`." msgstr "" -#: ../Doc/library/sched.rst:108 +#: ../Doc/library/sched.rst:107 msgid "Return true if the event queue is empty." msgstr "" -#: ../Doc/library/sched.rst:113 +#: ../Doc/library/sched.rst:112 msgid "" "Run all scheduled events. This method will wait (using the :func:" "`delayfunc` function passed to the constructor) for the next event, then " "execute it and so on until there are no more scheduled events." msgstr "" -#: ../Doc/library/sched.rst:117 +#: ../Doc/library/sched.rst:116 msgid "" "If *blocking* is false executes the scheduled events due to expire soonest " "(if any) and then return the deadline of the next scheduled call in the " "scheduler (if any)." msgstr "" -#: ../Doc/library/sched.rst:121 +#: ../Doc/library/sched.rst:120 msgid "" "Either *action* or *delayfunc* can raise an exception. In either case, the " "scheduler will maintain a consistent state and propagate the exception. If " @@ -130,7 +129,7 @@ msgid "" "future calls to :meth:`run`." msgstr "" -#: ../Doc/library/sched.rst:126 +#: ../Doc/library/sched.rst:125 msgid "" "If a sequence of events takes longer to run than the time available before " "the next event, the scheduler will simply fall behind. No events will be " @@ -138,11 +137,11 @@ msgid "" "longer pertinent." msgstr "" -#: ../Doc/library/sched.rst:131 +#: ../Doc/library/sched.rst:130 msgid "*blocking* parameter was added." msgstr "" -#: ../Doc/library/sched.rst:136 +#: ../Doc/library/sched.rst:135 msgid "" "Read-only attribute returning a list of upcoming events in the order they " "will be run. Each event is shown as a :term:`named tuple` with the " diff --git a/library/secrets.po b/library/secrets.po index 062ca3459..4e6e3a0e8 100644 --- a/library/secrets.po +++ b/library/secrets.po @@ -17,10 +17,12 @@ msgstr "" #: ../Doc/library/secrets.rst:2 msgid ":mod:`secrets` --- Generate secure random numbers for managing secrets" msgstr "" +":mod:`secrets` — Générer des nombres aléatoires de façon sécurisée pour la " +"gestion des secrets" #: ../Doc/library/secrets.rst:16 msgid "**Source code:** :source:`Lib/secrets.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/secrets.py`" #: ../Doc/library/secrets.rst:20 msgid "" @@ -28,6 +30,10 @@ msgid "" "random numbers suitable for managing data such as passwords, account " "authentication, security tokens, and related secrets." msgstr "" +"Le module :mod:`secrets` permet de générer des nombres aléatoires forts au " +"sens de la cryptographie, adaptés à la gestion des mots de passe, à " +"l'authentification des comptes, à la gestion des jetons de sécurité et des " +"secrets associés." #: ../Doc/library/secrets.rst:24 msgid "" @@ -35,10 +41,13 @@ msgid "" "pseudo-random number generator in the :mod:`random` module, which is " "designed for modelling and simulation, not security or cryptography." msgstr "" +"Il faut préférer :mod:`secrets` par rapport au générateur pseudo-aléatoire " +"du module :mod:`random`, ce dernier étant conçu pour la modélisation et la " +"simulation, et non pour la sécurité ou la cryptographie." #: ../Doc/library/secrets.rst:30 msgid ":pep:`506`" -msgstr "" +msgstr ":pep:`506`" #: ../Doc/library/secrets.rst:34 msgid "Random numbers" @@ -49,6 +58,8 @@ msgid "" "The :mod:`secrets` module provides access to the most secure source of " "randomness that your operating system provides." msgstr "" +"Le module :mod:`secrets` fournit un accès à la source d'aléa la plus sûre " +"disponible sur votre système d'exploitation." #: ../Doc/library/secrets.rst:41 msgid "" @@ -56,22 +67,25 @@ msgid "" "provided by the operating system. See :class:`random.SystemRandom` for " "additional details." msgstr "" +"Classe permettant de générer des nombres aléatoires à partir des sources " +"d'aléa les plus sûres fournies par le système d'exploitation. Se référer à :" +"class:`random.SystemRandom` pour plus de détails." #: ../Doc/library/secrets.rst:47 msgid "Return a randomly-chosen element from a non-empty sequence." -msgstr "" +msgstr "Renvoie un élément choisi aléatoirement dans une séquence non-vide." #: ../Doc/library/secrets.rst:51 msgid "Return a random int in the range [0, *n*)." -msgstr "" +msgstr "Renvoie un entier aléatoire dans l'intervalle [0, *n*)." #: ../Doc/library/secrets.rst:55 msgid "Return an int with *k* random bits." -msgstr "" +msgstr "Renvoie un entier de *k* bits aléatoires." #: ../Doc/library/secrets.rst:59 msgid "Generating tokens" -msgstr "" +msgstr "Génération de jetons" #: ../Doc/library/secrets.rst:61 msgid "" @@ -79,12 +93,17 @@ msgid "" "suitable for applications such as password resets, hard-to-guess URLs, and " "similar." msgstr "" +"Le module :mod:`secrets` fournit des fonctions pour la génération sécurisée " +"de jetons adaptés à la réinitialisation de mots de passe, à la production " +"d'URLs difficiles à deviner, etc." #: ../Doc/library/secrets.rst:67 msgid "" "Return a random byte string containing *nbytes* number of bytes. If *nbytes* " "is ``None`` or not supplied, a reasonable default is used." msgstr "" +"Renvoie une chaîne d'octets aléatoire contenant *nbytes* octets. Si *nbytes* " +"est ``None`` ou omis, une valeur par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:79 msgid "" @@ -92,6 +111,10 @@ msgid "" "bytes, each byte converted to two hex digits. If *nbytes* is ``None`` or " "not supplied, a reasonable default is used." msgstr "" +"Renvoie une chaîne de caractères aléatoire en hexadécimal. La chaîne " +"comporte *nbytes* octets aléatoires, chaque octet étant écrit sous la forme " +"de deux chiffres hexadécimaux. Si *nbytes* est ``None`` ou omis, une valeur " +"par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:90 msgid "" @@ -100,10 +123,14 @@ msgid "" "characters. If *nbytes* is ``None`` or not supplied, a reasonable default " "is used." msgstr "" +"Renvoie une chaîne de caractères aléatoire adaptée au format URL, contenant " +"*nbytes* octets aléatoires. Le texte est encodé en base64, chaque octet " +"produisant en moyenne 1,3 caractères. Si *nbytes* est ``None`` ou omis, une " +"valeur par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:102 msgid "How many bytes should tokens use?" -msgstr "" +msgstr "Combien d'octets mon jeton doit-il comporter ?" #: ../Doc/library/secrets.rst:104 msgid "" @@ -115,6 +142,13 @@ msgid "" "is sufficient for the typical use-case expected for the :mod:`secrets` " "module." msgstr "" +"Afin de se prémunir des `attaques par force brute `_, les jetons doivent être suffisamment " +"aléatoires. Malheureusement, l'augmentation de la puissance de calcul des " +"ordinateurs leur permet de réaliser plus de tentatives dans le même laps de " +"temps. De ce fait, le nombre de bits recommandé pour l'aléa augmente aussi. " +"En 2015, une longueur de 32 octets (256 bits) aléatoires est généralement " +"considérée suffisante pour les usages typiques du module :mod:`secrets`." #: ../Doc/library/secrets.rst:112 msgid "" @@ -123,22 +157,31 @@ msgid "" "argument to the various ``token_*`` functions. That argument is taken as " "the number of bytes of randomness to use." msgstr "" +"Si vous souhaitez gérer la longueur des jetons par vous-même, vous pouvez " +"spécifier la quantité d'aléa à introduire dans les jetons en passant un " +"argument :class:`int` aux différentes fonctions ``token_*``. Cet argument " +"indique alors le nombre d'octets aléatoires utilisés pour la création du " +"jeton." #: ../Doc/library/secrets.rst:117 msgid "" "Otherwise, if no argument is provided, or if the argument is ``None``, the " "``token_*`` functions will use a reasonable default instead." msgstr "" +"Sinon, si aucun argument n'est passé ou si celui-ci est ``None``, les " +"fonctions ``token_*`` utilisent une valeur par défaut raisonnable à la place." #: ../Doc/library/secrets.rst:122 msgid "" "That default is subject to change at any time, including during maintenance " "releases." msgstr "" +"Cette valeur par défaut est susceptible de changer à n'importe quel moment, " +"y compris lors des mises à jour de maintenance." #: ../Doc/library/secrets.rst:127 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/secrets.rst:131 msgid "" @@ -147,20 +190,26 @@ msgid "" "lesson-in-timing-attacks/>`_. See :func:`hmac.compare_digest` for additional " "details." msgstr "" +"Renvoie ``True`` si les chaînes *a* et *b* sont égales et ``False`` sinon, " +"d'une manière permettant de réduire le risque d'`attaque temporelle `_. Se référer à :func:`hmac." +"compare_digest` pour plus de détails." #: ../Doc/library/secrets.rst:138 msgid "Recipes and best practices" -msgstr "" +msgstr "Recettes et bonnes pratiques" #: ../Doc/library/secrets.rst:140 msgid "" "This section shows recipes and best practices for using :mod:`secrets` to " "manage a basic level of security." msgstr "" +"Cette section expose les recettes et les bonnes pratiques d'utilisation de :" +"mod:`secrets` pour gérer un niveau minimal de sécurité." #: ../Doc/library/secrets.rst:143 msgid "Generate an eight-character alphanumeric password:" -msgstr "" +msgstr "Générer un mot de passe à huit caractères alphanumériques :" #: ../Doc/library/secrets.rst:154 msgid "" @@ -169,19 +218,30 @@ msgid "" "They should be salted and hashed using a cryptographically-strong one-way " "(irreversible) hash function." msgstr "" +"Les applications ne doivent jamais `stocker des mots de passe dans un format " +"permettant leur récupération `_, que ce soit en texte brut ou chiffré. Il convient que les mots de " +"passe soient salés et transformés de façon irréversible par une fonction de " +"hachage cryptographique." #: ../Doc/library/secrets.rst:160 msgid "" "Generate a ten-character alphanumeric password with at least one lowercase " "character, at least one uppercase character, and at least three digits:" msgstr "" +"Générer un mot de passe alphanumérique à dix caractères contenant au moins " +"un caractère en minuscule, au moins un caractère en majuscule et au moins " +"trois chiffres :" #: ../Doc/library/secrets.rst:176 msgid "Generate an `XKCD-style passphrase `_:" msgstr "" +"Générer une `phrase de passe dans le style xkcd `_ :" #: ../Doc/library/secrets.rst:187 msgid "" "Generate a hard-to-guess temporary URL containing a security token suitable " "for password recovery applications:" msgstr "" +"Générer une URL temporaire difficile à deviner contenant un jeton de " +"sécurité adapté à réinitialisation d'un mot de passe :" diff --git a/library/select.po b/library/select.po index ae723dafc..8630aa66c 100644 --- a/library/select.po +++ b/library/select.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\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" "Language-Team: FRENCH \n" @@ -199,9 +199,9 @@ msgid "" "and does not handle file descriptors that don't originate from WinSock." msgstr "" -#: ../Doc/library/select.rst:160 ../Doc/library/select.rst:264 -#: ../Doc/library/select.rst:358 ../Doc/library/select.rst:446 -#: ../Doc/library/select.rst:486 +#: ../Doc/library/select.rst:160 ../Doc/library/select.rst:266 +#: ../Doc/library/select.rst:363 ../Doc/library/select.rst:451 +#: ../Doc/library/select.rst:491 msgid "" "The function is now retried with a recomputed timeout when interrupted by a " "signal, except if the signal handler raises an exception (see :pep:`475` for " @@ -217,39 +217,42 @@ msgid "" msgstr "" #: ../Doc/library/select.rst:174 -msgid "" -"This value is guaranteed by POSIX to be at least 512. Availability: Unix." +msgid "This value is guaranteed by POSIX to be at least 512." msgstr "" -#: ../Doc/library/select.rst:182 +#: ../Doc/library/select.rst:177 +msgid ":ref:`Availability `: Unix" +msgstr ":ref:`Disponibilité ` : Unix" + +#: ../Doc/library/select.rst:184 msgid "``/dev/poll`` Polling Objects" msgstr "" -#: ../Doc/library/select.rst:184 +#: ../Doc/library/select.rst:186 msgid "" "Solaris and derivatives have ``/dev/poll``. While :c:func:`select` is " "O(highest file descriptor) and :c:func:`poll` is O(number of file " "descriptors), ``/dev/poll`` is O(active file descriptors)." msgstr "" -#: ../Doc/library/select.rst:188 +#: ../Doc/library/select.rst:190 msgid "" "``/dev/poll`` behaviour is very close to the standard :c:func:`poll` object." msgstr "" -#: ../Doc/library/select.rst:194 +#: ../Doc/library/select.rst:196 msgid "Close the file descriptor of the polling object." msgstr "" -#: ../Doc/library/select.rst:201 +#: ../Doc/library/select.rst:203 msgid "``True`` if the polling object is closed." msgstr "" -#: ../Doc/library/select.rst:208 +#: ../Doc/library/select.rst:210 msgid "Return the file descriptor number of the polling object." msgstr "" -#: ../Doc/library/select.rst:215 ../Doc/library/select.rst:381 +#: ../Doc/library/select.rst:217 ../Doc/library/select.rst:386 msgid "" "Register a file descriptor with the polling object. Future calls to the :" "meth:`poll` method will then check whether the file descriptor has any " @@ -258,7 +261,7 @@ msgid "" "implement :meth:`!fileno`, so they can also be used as the argument." msgstr "" -#: ../Doc/library/select.rst:221 +#: ../Doc/library/select.rst:223 msgid "" "*eventmask* is an optional bitmask describing the type of events you want to " "check for. The constants are the same that with :c:func:`poll` object. The " @@ -266,33 +269,33 @@ msgid "" "`POLLPRI`, and :const:`POLLOUT`." msgstr "" -#: ../Doc/library/select.rst:228 +#: ../Doc/library/select.rst:230 msgid "" "Registering a file descriptor that's already registered is not an error, but " "the result is undefined. The appropriate action is to unregister or modify " "it first. This is an important difference compared with :c:func:`poll`." msgstr "" -#: ../Doc/library/select.rst:236 +#: ../Doc/library/select.rst:238 msgid "" "This method does an :meth:`unregister` followed by a :meth:`register`. It is " "(a bit) more efficient that doing the same explicitly." msgstr "" -#: ../Doc/library/select.rst:243 ../Doc/library/select.rst:425 +#: ../Doc/library/select.rst:245 ../Doc/library/select.rst:430 msgid "" "Remove a file descriptor being tracked by a polling object. Just like the :" "meth:`register` method, *fd* can be an integer or an object with a :meth:" "`~io.IOBase.fileno` method that returns an integer." msgstr "" -#: ../Doc/library/select.rst:247 +#: ../Doc/library/select.rst:249 msgid "" "Attempting to remove a file descriptor that was never registered is safely " "ignored." msgstr "" -#: ../Doc/library/select.rst:253 +#: ../Doc/library/select.rst:255 msgid "" "Polls the set of registered file descriptors, and returns a possibly-empty " "list containing ``(fd, event)`` 2-tuples for the descriptors that have " @@ -306,186 +309,192 @@ msgid "" "the call will block until there is an event for this poll object." msgstr "" -#: ../Doc/library/select.rst:274 +#: ../Doc/library/select.rst:276 msgid "Edge and Level Trigger Polling (epoll) Objects" msgstr "" -#: ../Doc/library/select.rst:276 +#: ../Doc/library/select.rst:278 msgid "https://linux.die.net/man/4/epoll" msgstr "" -#: ../Doc/library/select.rst:278 +#: ../Doc/library/select.rst:280 msgid "*eventmask*" msgstr "" -#: ../Doc/library/select.rst:281 ../Doc/library/select.rst:393 -#: ../Doc/library/select.rst:512 ../Doc/library/select.rst:541 -#: ../Doc/library/select.rst:572 ../Doc/library/select.rst:580 -#: ../Doc/library/select.rst:600 ../Doc/library/select.rst:623 +#: ../Doc/library/select.rst:283 ../Doc/library/select.rst:398 +#: ../Doc/library/select.rst:517 ../Doc/library/select.rst:546 +#: ../Doc/library/select.rst:577 ../Doc/library/select.rst:585 +#: ../Doc/library/select.rst:605 ../Doc/library/select.rst:628 msgid "Constant" msgstr "Constante" -#: ../Doc/library/select.rst:281 ../Doc/library/select.rst:393 -#: ../Doc/library/select.rst:512 ../Doc/library/select.rst:541 -#: ../Doc/library/select.rst:572 ../Doc/library/select.rst:580 -#: ../Doc/library/select.rst:600 ../Doc/library/select.rst:623 +#: ../Doc/library/select.rst:283 ../Doc/library/select.rst:398 +#: ../Doc/library/select.rst:517 ../Doc/library/select.rst:546 +#: ../Doc/library/select.rst:577 ../Doc/library/select.rst:585 +#: ../Doc/library/select.rst:605 ../Doc/library/select.rst:628 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/select.rst:283 +#: ../Doc/library/select.rst:285 msgid ":const:`EPOLLIN`" msgstr ":const:`EPOLLIN`" -#: ../Doc/library/select.rst:283 +#: ../Doc/library/select.rst:285 msgid "Available for read" msgstr "" -#: ../Doc/library/select.rst:285 +#: ../Doc/library/select.rst:287 msgid ":const:`EPOLLOUT`" msgstr ":const:`EPOLLOUT`" -#: ../Doc/library/select.rst:285 +#: ../Doc/library/select.rst:287 msgid "Available for write" msgstr "" -#: ../Doc/library/select.rst:287 +#: ../Doc/library/select.rst:289 msgid ":const:`EPOLLPRI`" msgstr ":const:`EPOLLPRI`" -#: ../Doc/library/select.rst:287 +#: ../Doc/library/select.rst:289 msgid "Urgent data for read" msgstr "" -#: ../Doc/library/select.rst:289 +#: ../Doc/library/select.rst:291 msgid ":const:`EPOLLERR`" msgstr ":const:`EPOLLERR`" -#: ../Doc/library/select.rst:289 +#: ../Doc/library/select.rst:291 msgid "Error condition happened on the assoc. fd" msgstr "" -#: ../Doc/library/select.rst:291 +#: ../Doc/library/select.rst:293 msgid ":const:`EPOLLHUP`" msgstr ":const:`EPOLLHUP`" -#: ../Doc/library/select.rst:291 +#: ../Doc/library/select.rst:293 msgid "Hang up happened on the assoc. fd" msgstr "" -#: ../Doc/library/select.rst:293 +#: ../Doc/library/select.rst:295 msgid ":const:`EPOLLET`" msgstr ":const:`EPOLLET`" -#: ../Doc/library/select.rst:293 +#: ../Doc/library/select.rst:295 msgid "Set Edge Trigger behavior, the default is Level Trigger behavior" msgstr "" -#: ../Doc/library/select.rst:296 +#: ../Doc/library/select.rst:298 msgid ":const:`EPOLLONESHOT`" msgstr ":const:`EPOLLONESHOT`" -#: ../Doc/library/select.rst:296 +#: ../Doc/library/select.rst:298 msgid "" "Set one-shot behavior. After one event is pulled out, the fd is internally " "disabled" msgstr "" -#: ../Doc/library/select.rst:299 +#: ../Doc/library/select.rst:301 msgid ":const:`EPOLLEXCLUSIVE`" msgstr "" -#: ../Doc/library/select.rst:299 +#: ../Doc/library/select.rst:301 msgid "" "Wake only one epoll object when the associated fd has an event. The default " "(if this flag is not set) is to wake all epoll objects polling on a fd." msgstr "" -#: ../Doc/library/select.rst:304 +#: ../Doc/library/select.rst:306 msgid ":const:`EPOLLRDHUP`" msgstr "" -#: ../Doc/library/select.rst:304 +#: ../Doc/library/select.rst:306 msgid "" "Stream socket peer closed connection or shut down writing half of connection." msgstr "" -#: ../Doc/library/select.rst:307 +#: ../Doc/library/select.rst:309 msgid ":const:`EPOLLRDNORM`" msgstr ":const:`EPOLLRDNORM`" -#: ../Doc/library/select.rst:307 +#: ../Doc/library/select.rst:309 msgid "Equivalent to :const:`EPOLLIN`" msgstr "" -#: ../Doc/library/select.rst:309 +#: ../Doc/library/select.rst:311 msgid ":const:`EPOLLRDBAND`" msgstr ":const:`EPOLLRDBAND`" -#: ../Doc/library/select.rst:309 +#: ../Doc/library/select.rst:311 msgid "Priority data band can be read." msgstr "" -#: ../Doc/library/select.rst:311 +#: ../Doc/library/select.rst:313 msgid ":const:`EPOLLWRNORM`" msgstr ":const:`EPOLLWRNORM`" -#: ../Doc/library/select.rst:311 +#: ../Doc/library/select.rst:313 msgid "Equivalent to :const:`EPOLLOUT`" msgstr "" -#: ../Doc/library/select.rst:313 +#: ../Doc/library/select.rst:315 msgid ":const:`EPOLLWRBAND`" msgstr ":const:`EPOLLWRBAND`" -#: ../Doc/library/select.rst:313 +#: ../Doc/library/select.rst:315 msgid "Priority data may be written." msgstr "" -#: ../Doc/library/select.rst:315 +#: ../Doc/library/select.rst:317 msgid ":const:`EPOLLMSG`" msgstr ":const:`EPOLLMSG`" -#: ../Doc/library/select.rst:315 +#: ../Doc/library/select.rst:317 msgid "Ignored." msgstr "" -#: ../Doc/library/select.rst:321 -msgid "Close the control file descriptor of the epoll object." +#: ../Doc/library/select.rst:320 +msgid "" +":const:`EPOLLEXCLUSIVE` was added. It's only supported by Linux Kernel 4.5 " +"or later." msgstr "" #: ../Doc/library/select.rst:326 +msgid "Close the control file descriptor of the epoll object." +msgstr "" + +#: ../Doc/library/select.rst:331 msgid "``True`` if the epoll object is closed." msgstr "" -#: ../Doc/library/select.rst:331 ../Doc/library/select.rst:470 +#: ../Doc/library/select.rst:336 ../Doc/library/select.rst:475 msgid "Return the file descriptor number of the control fd." msgstr "" -#: ../Doc/library/select.rst:336 +#: ../Doc/library/select.rst:341 msgid "Create an epoll object from a given file descriptor." msgstr "" -#: ../Doc/library/select.rst:341 +#: ../Doc/library/select.rst:346 msgid "Register a fd descriptor with the epoll object." msgstr "" -#: ../Doc/library/select.rst:346 +#: ../Doc/library/select.rst:351 msgid "Modify a registered file descriptor." msgstr "" -#: ../Doc/library/select.rst:351 +#: ../Doc/library/select.rst:356 msgid "Remove a registered file descriptor from the epoll object." msgstr "" -#: ../Doc/library/select.rst:356 +#: ../Doc/library/select.rst:361 msgid "Wait for events. timeout in seconds (float)" msgstr "" -#: ../Doc/library/select.rst:368 +#: ../Doc/library/select.rst:373 msgid "Polling Objects" msgstr "" -#: ../Doc/library/select.rst:370 +#: ../Doc/library/select.rst:375 msgid "" "The :c:func:`poll` system call, supported on most Unix systems, provides " "better scalability for network servers that service many, many clients at " @@ -497,7 +506,7 @@ msgid "" "descriptors)." msgstr "" -#: ../Doc/library/select.rst:387 +#: ../Doc/library/select.rst:392 msgid "" "*eventmask* is an optional bitmask describing the type of events you want to " "check for, and can be a combination of the constants :const:`POLLIN`, :const:" @@ -505,70 +514,70 @@ msgid "" "specified, the default value used will check for all 3 types of events." msgstr "" -#: ../Doc/library/select.rst:395 +#: ../Doc/library/select.rst:400 msgid ":const:`POLLIN`" msgstr ":const:`POLLIN`" -#: ../Doc/library/select.rst:395 +#: ../Doc/library/select.rst:400 msgid "There is data to read" msgstr "" -#: ../Doc/library/select.rst:397 +#: ../Doc/library/select.rst:402 msgid ":const:`POLLPRI`" msgstr ":const:`POLLPRI`" -#: ../Doc/library/select.rst:397 +#: ../Doc/library/select.rst:402 msgid "There is urgent data to read" msgstr "" -#: ../Doc/library/select.rst:399 +#: ../Doc/library/select.rst:404 msgid ":const:`POLLOUT`" msgstr ":const:`POLLOUT`" -#: ../Doc/library/select.rst:399 +#: ../Doc/library/select.rst:404 msgid "Ready for output: writing will not block" msgstr "" -#: ../Doc/library/select.rst:401 +#: ../Doc/library/select.rst:406 msgid ":const:`POLLERR`" msgstr ":const:`POLLERR`" -#: ../Doc/library/select.rst:401 +#: ../Doc/library/select.rst:406 msgid "Error condition of some sort" msgstr "" -#: ../Doc/library/select.rst:403 +#: ../Doc/library/select.rst:408 msgid ":const:`POLLHUP`" msgstr ":const:`POLLHUP`" -#: ../Doc/library/select.rst:403 +#: ../Doc/library/select.rst:408 msgid "Hung up" msgstr "" -#: ../Doc/library/select.rst:405 +#: ../Doc/library/select.rst:410 msgid ":const:`POLLRDHUP`" msgstr "" -#: ../Doc/library/select.rst:405 +#: ../Doc/library/select.rst:410 msgid "" "Stream socket peer closed connection, or shut down writing half of connection" msgstr "" -#: ../Doc/library/select.rst:408 +#: ../Doc/library/select.rst:413 msgid ":const:`POLLNVAL`" msgstr ":const:`POLLNVAL`" -#: ../Doc/library/select.rst:408 +#: ../Doc/library/select.rst:413 msgid "Invalid request: descriptor not open" msgstr "" -#: ../Doc/library/select.rst:411 +#: ../Doc/library/select.rst:416 msgid "" "Registering a file descriptor that's already registered is not an error, and " "has the same effect as registering the descriptor exactly once." msgstr "" -#: ../Doc/library/select.rst:417 +#: ../Doc/library/select.rst:422 msgid "" "Modifies an already registered fd. This has the same effect as " "``register(fd, eventmask)``. Attempting to modify a file descriptor that " @@ -576,13 +585,13 @@ msgid "" "`ENOENT` to be raised." msgstr "" -#: ../Doc/library/select.rst:429 +#: ../Doc/library/select.rst:434 msgid "" "Attempting to remove a file descriptor that was never registered causes a :" "exc:`KeyError` exception to be raised." msgstr "" -#: ../Doc/library/select.rst:435 +#: ../Doc/library/select.rst:440 msgid "" "Polls the set of registered file descriptors, and returns a possibly-empty " "list containing ``(fd, event)`` 2-tuples for the descriptors that have " @@ -596,47 +605,47 @@ msgid "" "`None`, the call will block until there is an event for this poll object." msgstr "" -#: ../Doc/library/select.rst:456 +#: ../Doc/library/select.rst:461 msgid "Kqueue Objects" msgstr "" -#: ../Doc/library/select.rst:460 +#: ../Doc/library/select.rst:465 msgid "Close the control file descriptor of the kqueue object." msgstr "" -#: ../Doc/library/select.rst:465 +#: ../Doc/library/select.rst:470 msgid "``True`` if the kqueue object is closed." msgstr "" -#: ../Doc/library/select.rst:475 +#: ../Doc/library/select.rst:480 msgid "Create a kqueue object from a given file descriptor." msgstr "" -#: ../Doc/library/select.rst:480 +#: ../Doc/library/select.rst:485 msgid "Low level interface to kevent" msgstr "" -#: ../Doc/library/select.rst:482 +#: ../Doc/library/select.rst:487 msgid "changelist must be an iterable of kevent object or ``None``" msgstr "" -#: ../Doc/library/select.rst:483 +#: ../Doc/library/select.rst:488 msgid "max_events must be 0 or a positive integer" msgstr "" -#: ../Doc/library/select.rst:484 +#: ../Doc/library/select.rst:489 msgid "timeout in seconds (floats possible)" msgstr "" -#: ../Doc/library/select.rst:496 +#: ../Doc/library/select.rst:501 msgid "Kevent Objects" msgstr "" -#: ../Doc/library/select.rst:498 +#: ../Doc/library/select.rst:503 msgid "https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2" msgstr "" -#: ../Doc/library/select.rst:502 +#: ../Doc/library/select.rst:507 msgid "" "Value used to identify the event. The interpretation depends on the filter " "but it's usually the file descriptor. In the constructor ident can either be " @@ -644,328 +653,328 @@ msgid "" "the integer internally." msgstr "" -#: ../Doc/library/select.rst:509 +#: ../Doc/library/select.rst:514 msgid "Name of the kernel filter." msgstr "" -#: ../Doc/library/select.rst:514 +#: ../Doc/library/select.rst:519 msgid ":const:`KQ_FILTER_READ`" msgstr ":const:`KQ_FILTER_READ`" -#: ../Doc/library/select.rst:514 +#: ../Doc/library/select.rst:519 msgid "Takes a descriptor and returns whenever there is data available to read" msgstr "" -#: ../Doc/library/select.rst:517 +#: ../Doc/library/select.rst:522 msgid ":const:`KQ_FILTER_WRITE`" msgstr ":const:`KQ_FILTER_WRITE`" -#: ../Doc/library/select.rst:517 +#: ../Doc/library/select.rst:522 msgid "" "Takes a descriptor and returns whenever there is data available to write" msgstr "" -#: ../Doc/library/select.rst:520 +#: ../Doc/library/select.rst:525 msgid ":const:`KQ_FILTER_AIO`" msgstr ":const:`KQ_FILTER_AIO`" -#: ../Doc/library/select.rst:520 +#: ../Doc/library/select.rst:525 msgid "AIO requests" msgstr "" -#: ../Doc/library/select.rst:522 +#: ../Doc/library/select.rst:527 msgid ":const:`KQ_FILTER_VNODE`" msgstr ":const:`KQ_FILTER_VNODE`" -#: ../Doc/library/select.rst:522 +#: ../Doc/library/select.rst:527 msgid "" "Returns when one or more of the requested events watched in *fflag* occurs" msgstr "" -#: ../Doc/library/select.rst:525 +#: ../Doc/library/select.rst:530 msgid ":const:`KQ_FILTER_PROC`" msgstr ":const:`KQ_FILTER_PROC`" -#: ../Doc/library/select.rst:525 +#: ../Doc/library/select.rst:530 msgid "Watch for events on a process id" msgstr "" -#: ../Doc/library/select.rst:527 +#: ../Doc/library/select.rst:532 msgid ":const:`KQ_FILTER_NETDEV`" msgstr ":const:`KQ_FILTER_NETDEV`" -#: ../Doc/library/select.rst:527 +#: ../Doc/library/select.rst:532 msgid "Watch for events on a network device [not available on Mac OS X]" msgstr "" -#: ../Doc/library/select.rst:530 +#: ../Doc/library/select.rst:535 msgid ":const:`KQ_FILTER_SIGNAL`" msgstr ":const:`KQ_FILTER_SIGNAL`" -#: ../Doc/library/select.rst:530 +#: ../Doc/library/select.rst:535 msgid "Returns whenever the watched signal is delivered to the process" msgstr "" -#: ../Doc/library/select.rst:533 +#: ../Doc/library/select.rst:538 msgid ":const:`KQ_FILTER_TIMER`" msgstr ":const:`KQ_FILTER_TIMER`" -#: ../Doc/library/select.rst:533 +#: ../Doc/library/select.rst:538 msgid "Establishes an arbitrary timer" msgstr "" -#: ../Doc/library/select.rst:538 +#: ../Doc/library/select.rst:543 msgid "Filter action." msgstr "" -#: ../Doc/library/select.rst:543 +#: ../Doc/library/select.rst:548 msgid ":const:`KQ_EV_ADD`" msgstr ":const:`KQ_EV_ADD`" -#: ../Doc/library/select.rst:543 +#: ../Doc/library/select.rst:548 msgid "Adds or modifies an event" msgstr "" -#: ../Doc/library/select.rst:545 +#: ../Doc/library/select.rst:550 msgid ":const:`KQ_EV_DELETE`" msgstr ":const:`KQ_EV_DELETE`" -#: ../Doc/library/select.rst:545 +#: ../Doc/library/select.rst:550 msgid "Removes an event from the queue" msgstr "" -#: ../Doc/library/select.rst:547 +#: ../Doc/library/select.rst:552 msgid ":const:`KQ_EV_ENABLE`" msgstr ":const:`KQ_EV_ENABLE`" -#: ../Doc/library/select.rst:547 +#: ../Doc/library/select.rst:552 msgid "Permitscontrol() to returns the event" msgstr "" -#: ../Doc/library/select.rst:549 +#: ../Doc/library/select.rst:554 msgid ":const:`KQ_EV_DISABLE`" msgstr ":const:`KQ_EV_DISABLE`" -#: ../Doc/library/select.rst:549 +#: ../Doc/library/select.rst:554 msgid "Disablesevent" msgstr "" -#: ../Doc/library/select.rst:551 +#: ../Doc/library/select.rst:556 msgid ":const:`KQ_EV_ONESHOT`" msgstr ":const:`KQ_EV_ONESHOT`" -#: ../Doc/library/select.rst:551 +#: ../Doc/library/select.rst:556 msgid "Removes event after first occurrence" msgstr "" -#: ../Doc/library/select.rst:553 +#: ../Doc/library/select.rst:558 msgid ":const:`KQ_EV_CLEAR`" msgstr ":const:`KQ_EV_CLEAR`" -#: ../Doc/library/select.rst:553 +#: ../Doc/library/select.rst:558 msgid "Reset the state after an event is retrieved" msgstr "" -#: ../Doc/library/select.rst:555 +#: ../Doc/library/select.rst:560 msgid ":const:`KQ_EV_SYSFLAGS`" msgstr ":const:`KQ_EV_SYSFLAGS`" -#: ../Doc/library/select.rst:555 ../Doc/library/select.rst:557 +#: ../Doc/library/select.rst:560 ../Doc/library/select.rst:562 msgid "internal event" msgstr "" -#: ../Doc/library/select.rst:557 +#: ../Doc/library/select.rst:562 msgid ":const:`KQ_EV_FLAG1`" msgstr ":const:`KQ_EV_FLAG1`" -#: ../Doc/library/select.rst:559 +#: ../Doc/library/select.rst:564 msgid ":const:`KQ_EV_EOF`" msgstr ":const:`KQ_EV_EOF`" -#: ../Doc/library/select.rst:559 +#: ../Doc/library/select.rst:564 msgid "Filter specific EOF condition" msgstr "" -#: ../Doc/library/select.rst:561 +#: ../Doc/library/select.rst:566 msgid ":const:`KQ_EV_ERROR`" msgstr ":const:`KQ_EV_ERROR`" -#: ../Doc/library/select.rst:561 +#: ../Doc/library/select.rst:566 msgid "See return values" msgstr "" -#: ../Doc/library/select.rst:567 +#: ../Doc/library/select.rst:572 msgid "Filter specific flags." msgstr "" -#: ../Doc/library/select.rst:569 +#: ../Doc/library/select.rst:574 msgid ":const:`KQ_FILTER_READ` and :const:`KQ_FILTER_WRITE` filter flags:" msgstr "" -#: ../Doc/library/select.rst:574 +#: ../Doc/library/select.rst:579 msgid ":const:`KQ_NOTE_LOWAT`" msgstr ":const:`KQ_NOTE_LOWAT`" -#: ../Doc/library/select.rst:574 +#: ../Doc/library/select.rst:579 msgid "low water mark of a socket buffer" msgstr "" -#: ../Doc/library/select.rst:577 +#: ../Doc/library/select.rst:582 msgid ":const:`KQ_FILTER_VNODE` filter flags:" msgstr "" -#: ../Doc/library/select.rst:582 +#: ../Doc/library/select.rst:587 msgid ":const:`KQ_NOTE_DELETE`" msgstr ":const:`KQ_NOTE_DELETE`" -#: ../Doc/library/select.rst:582 +#: ../Doc/library/select.rst:587 msgid "*unlink()* was called" msgstr "" -#: ../Doc/library/select.rst:584 +#: ../Doc/library/select.rst:589 msgid ":const:`KQ_NOTE_WRITE`" msgstr ":const:`KQ_NOTE_WRITE`" -#: ../Doc/library/select.rst:584 +#: ../Doc/library/select.rst:589 msgid "a write occurred" msgstr "" -#: ../Doc/library/select.rst:586 +#: ../Doc/library/select.rst:591 msgid ":const:`KQ_NOTE_EXTEND`" msgstr ":const:`KQ_NOTE_EXTEND`" -#: ../Doc/library/select.rst:586 +#: ../Doc/library/select.rst:591 msgid "the file was extended" msgstr "" -#: ../Doc/library/select.rst:588 +#: ../Doc/library/select.rst:593 msgid ":const:`KQ_NOTE_ATTRIB`" msgstr ":const:`KQ_NOTE_ATTRIB`" -#: ../Doc/library/select.rst:588 +#: ../Doc/library/select.rst:593 msgid "an attribute was changed" msgstr "" -#: ../Doc/library/select.rst:590 +#: ../Doc/library/select.rst:595 msgid ":const:`KQ_NOTE_LINK`" msgstr ":const:`KQ_NOTE_LINK`" -#: ../Doc/library/select.rst:590 +#: ../Doc/library/select.rst:595 msgid "the link count has changed" msgstr "" -#: ../Doc/library/select.rst:592 +#: ../Doc/library/select.rst:597 msgid ":const:`KQ_NOTE_RENAME`" msgstr ":const:`KQ_NOTE_RENAME`" -#: ../Doc/library/select.rst:592 +#: ../Doc/library/select.rst:597 msgid "the file was renamed" msgstr "" -#: ../Doc/library/select.rst:594 +#: ../Doc/library/select.rst:599 msgid ":const:`KQ_NOTE_REVOKE`" msgstr ":const:`KQ_NOTE_REVOKE`" -#: ../Doc/library/select.rst:594 +#: ../Doc/library/select.rst:599 msgid "access to the file was revoked" msgstr "" -#: ../Doc/library/select.rst:597 +#: ../Doc/library/select.rst:602 msgid ":const:`KQ_FILTER_PROC` filter flags:" msgstr "" -#: ../Doc/library/select.rst:602 +#: ../Doc/library/select.rst:607 msgid ":const:`KQ_NOTE_EXIT`" msgstr ":const:`KQ_NOTE_EXIT`" -#: ../Doc/library/select.rst:602 +#: ../Doc/library/select.rst:607 msgid "the process has exited" msgstr "" -#: ../Doc/library/select.rst:604 +#: ../Doc/library/select.rst:609 msgid ":const:`KQ_NOTE_FORK`" msgstr ":const:`KQ_NOTE_FORK`" -#: ../Doc/library/select.rst:604 +#: ../Doc/library/select.rst:609 msgid "the process has called *fork()*" msgstr "" -#: ../Doc/library/select.rst:606 +#: ../Doc/library/select.rst:611 msgid ":const:`KQ_NOTE_EXEC`" msgstr ":const:`KQ_NOTE_EXEC`" -#: ../Doc/library/select.rst:606 +#: ../Doc/library/select.rst:611 msgid "the process has executed a new process" msgstr "" -#: ../Doc/library/select.rst:608 +#: ../Doc/library/select.rst:613 msgid ":const:`KQ_NOTE_PCTRLMASK`" msgstr ":const:`KQ_NOTE_PCTRLMASK`" -#: ../Doc/library/select.rst:608 ../Doc/library/select.rst:610 +#: ../Doc/library/select.rst:613 ../Doc/library/select.rst:615 msgid "internal filter flag" msgstr "" -#: ../Doc/library/select.rst:610 +#: ../Doc/library/select.rst:615 msgid ":const:`KQ_NOTE_PDATAMASK`" msgstr ":const:`KQ_NOTE_PDATAMASK`" -#: ../Doc/library/select.rst:612 +#: ../Doc/library/select.rst:617 msgid ":const:`KQ_NOTE_TRACK`" msgstr ":const:`KQ_NOTE_TRACK`" -#: ../Doc/library/select.rst:612 +#: ../Doc/library/select.rst:617 msgid "follow a process across *fork()*" msgstr "" -#: ../Doc/library/select.rst:614 +#: ../Doc/library/select.rst:619 msgid ":const:`KQ_NOTE_CHILD`" msgstr ":const:`KQ_NOTE_CHILD`" -#: ../Doc/library/select.rst:614 +#: ../Doc/library/select.rst:619 msgid "returned on the child process for *NOTE_TRACK*" msgstr "" -#: ../Doc/library/select.rst:617 +#: ../Doc/library/select.rst:622 msgid ":const:`KQ_NOTE_TRACKERR`" msgstr ":const:`KQ_NOTE_TRACKERR`" -#: ../Doc/library/select.rst:617 +#: ../Doc/library/select.rst:622 msgid "unable to attach to a child" msgstr "" -#: ../Doc/library/select.rst:620 +#: ../Doc/library/select.rst:625 msgid ":const:`KQ_FILTER_NETDEV` filter flags (not available on Mac OS X):" msgstr "" -#: ../Doc/library/select.rst:625 +#: ../Doc/library/select.rst:630 msgid ":const:`KQ_NOTE_LINKUP`" msgstr ":const:`KQ_NOTE_LINKUP`" -#: ../Doc/library/select.rst:625 +#: ../Doc/library/select.rst:630 msgid "link is up" msgstr "" -#: ../Doc/library/select.rst:627 +#: ../Doc/library/select.rst:632 msgid ":const:`KQ_NOTE_LINKDOWN`" msgstr ":const:`KQ_NOTE_LINKDOWN`" -#: ../Doc/library/select.rst:627 +#: ../Doc/library/select.rst:632 msgid "link is down" msgstr "" -#: ../Doc/library/select.rst:629 +#: ../Doc/library/select.rst:634 msgid ":const:`KQ_NOTE_LINKINV`" msgstr ":const:`KQ_NOTE_LINKINV`" -#: ../Doc/library/select.rst:629 +#: ../Doc/library/select.rst:634 msgid "link state is invalid" msgstr "" -#: ../Doc/library/select.rst:635 +#: ../Doc/library/select.rst:640 msgid "Filter specific data." msgstr "" -#: ../Doc/library/select.rst:640 +#: ../Doc/library/select.rst:645 msgid "User defined value." msgstr "" diff --git a/library/selectors.po b/library/selectors.po index fdf707874..4093be326 100644 --- a/library/selectors.po +++ b/library/selectors.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: 2017-08-10 00:55+0200\n" +"PO-Revision-Date: 2019-02-03 11:53+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/selectors.rst:2 msgid ":mod:`selectors` --- High-level I/O multiplexing" -msgstr ":mod:`selectors` --- High-level I/O multiplexing" +msgstr "" #: ../Doc/library/selectors.rst:9 msgid "**Source code:** :source:`Lib/selectors.py`" diff --git a/library/shelve.po b/library/shelve.po index 43da51b83..a0e75c444 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/shelve.rst:2 msgid ":mod:`shelve` --- Python object persistence" -msgstr ":mod:`shelve` --- Objet Python persistant" +msgstr ":mod:`shelve` — Objet Python persistant" #: ../Doc/library/shelve.rst:7 msgid "**Source code:** :source:`Lib/shelve.py`" @@ -99,7 +99,7 @@ msgid "" msgstr "" "Ne pas se fier à la fermeture automatique de *shelf* ; appelez toujours :" "meth:`~Shelf.close` explicitement quand vous n'en avez plus besoin, ou " -"utilisez :func:`shelve.open` comme un gestionnaire de contexte ::" +"utilisez :func:`shelve.open` comme un gestionnaire de contexte ::" #: ../Doc/library/shelve.rst:54 msgid "" @@ -254,7 +254,7 @@ msgstr "" #: ../Doc/library/shelve.rst:130 msgid "Added context manager support." -msgstr "Ajout du support des gestionnaires de contexte." +msgstr "Ajout de la gestion des gestionnaires de contexte." #: ../Doc/library/shelve.rst:136 msgid "" @@ -305,7 +305,7 @@ msgid "" "object)::" msgstr "" "Pour résumer l'interface (``key`` est une chaîne de caractère, ``data`` est " -"un objet arbitraire) ::" +"un objet arbitraire) ::" #: ../Doc/library/shelve.rst:199 msgid "Module :mod:`dbm`" diff --git a/library/shutil.po b/library/shutil.po index 64a657e46..44625f08a 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-29 18:26+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/shutil.rst:2 msgid ":mod:`shutil` --- High-level file operations" -msgstr "" +msgstr ":mod:`shutil` --- Opérations de haut niveau sur les fichiers" #: ../Doc/library/shutil.rst:10 msgid "**Source code:** :source:`Lib/shutil.py`" @@ -29,12 +29,18 @@ msgid "" "support file copying and removal. For operations on individual files, see " "also the :mod:`os` module." msgstr "" +"Le module :mod:`shutil` propose des opérations de haut niveau sur les " +"fichiers et ensembles de fichiers. En particulier, des fonctions pour copier " +"et déplacer les fichiers sont proposées. Pour les opérations individuelles " +"sur les fichiers, reportez-vous au module :mod:`os`." #: ../Doc/library/shutil.rst:25 msgid "" "Even the higher-level file copying functions (:func:`shutil.copy`, :func:" "`shutil.copy2`) cannot copy all file metadata." msgstr "" +"Même les fonctions de copie haut niveau (:func:`shutil.copy`, :func:`shutil." +"copy2`) ne peuvent copier toutes les métadonnées des fichiers." #: ../Doc/library/shutil.rst:28 msgid "" @@ -44,10 +50,16 @@ msgid "" "be correct. On Windows, file owners, ACLs and alternate data streams are not " "copied." msgstr "" +"Sur les plateformes POSIX, cela signifie que le propriétaire et le groupe du " +"fichier sont perdus, ainsi que les *ACLs*. Sur Mac OS, le clonage de " +"ressource et autres métadonnées ne sont pas utilisés. Cela signifie que les " +"ressources seront perdues et que le type de fichier et les codes créateur ne " +"seront pas corrects. Sur Windows, les propriétaires des fichiers, *ACLs* et " +"flux de données alternatifs ne sont pas copiés." #: ../Doc/library/shutil.rst:38 msgid "Directory and files operations" -msgstr "" +msgstr "Opérations sur les répertoires et les fichiers" #: ../Doc/library/shutil.rst:42 msgid "" @@ -59,6 +71,13 @@ msgid "" "the *fsrc* object is not 0, only the contents from the current file position " "to the end of the file will be copied." msgstr "" +"Copie le contenu de l'objet fichier *fsrc* dans l'objet fichier *fdst*. " +"L'entier *length*, si spécifié, est la taille du tampon. En particulier, une " +"valeur de *length* négative signifie la copie des données sans découper la " +"source en morceaux ; par défaut les données sont lues par morceaux pour " +"éviter la consommation mémoire non-contrôlée. À noter que si la position " +"courante dans l'objet *fsrc* n'est pas 0, seul le contenu depuis la position " +"courante jusqu'à la fin est copié." #: ../Doc/library/shutil.rst:53 msgid "" @@ -68,6 +87,12 @@ msgid "" "a copy that accepts a target directory path. If *src* and *dst* specify the " "same file, :exc:`SameFileError` is raised." msgstr "" +"Copie le contenu (sans métadonnées) du fichier nommé *src* dans un fichier " +"nommé *dst* et renvoie *dst*. *src* et *dst* sont des chemins sous forme de " +"chaînes de caractères. *dst* doit être le chemin complet de la cible ; voir " +"dans :func:`shutil.copy` pour une copie acceptant le chemin du dossier " +"cible. Si *src* et *dst* désignent le même fichier :exc:`SameFileError` est " +"levée." #: ../Doc/library/shutil.rst:59 msgid "" @@ -76,30 +101,42 @@ msgid "" "Special files such as character or block devices and pipes cannot be copied " "with this function." msgstr "" +"La cible doit être accessible en écriture, sinon l'exception :exc:`OSError` " +"est levée. Si *dst* existe déjà, il est remplacé. Les fichiers spéciaux " +"comme les périphériques caractères ou bloc ainsi que les tubes (*pipes*) ne " +"peuvent pas être copiés avec cette fonction." #: ../Doc/library/shutil.rst:64 msgid "" "If *follow_symlinks* is false and *src* is a symbolic link, a new symbolic " "link will be created instead of copying the file *src* points to." msgstr "" +"Si *follow_symlinks* est faux et *src* est un lien symbolique, un nouveau " +"lien symbolique est créé au lieu de copier le fichier pointé par *src*." #: ../Doc/library/shutil.rst:68 msgid "" ":exc:`IOError` used to be raised instead of :exc:`OSError`. Added " "*follow_symlinks* argument. Now returns *dst*." msgstr "" +":exc:`IOError` était levée au lieu de :exc:`OSError`. Ajout de l'argument " +"*follow_symlinks*. Maintenant renvoie *dst*." #: ../Doc/library/shutil.rst:73 msgid "" "Raise :exc:`SameFileError` instead of :exc:`Error`. Since the former is a " "subclass of the latter, this change is backward compatible." msgstr "" +"Lève :exc:`SameFileError` au lieu de :exc:`Error`. Puisque la première est " +"une sous-classe de la seconde, le changement assure la rétrocompatibilité." #: ../Doc/library/shutil.rst:80 msgid "" "This exception is raised if source and destination in :func:`copyfile` are " "the same file." msgstr "" +"Cette exception est levée si la source et la destination dans :func:" +"`copyfile` sont le même fichier." #: ../Doc/library/shutil.rst:88 msgid "" @@ -112,10 +149,18 @@ msgid "" "`copymode` cannot modify symbolic links on the local platform, and it is " "asked to do so, it will do nothing and return." msgstr "" +"Copie les octets de permission de *src* vers *dst*. Le contenu du fichier, " +"le propriétaire et le groupe ne sont pas modifiés. *src* et *dst* sont des " +"chaînes spécifiant les chemins. Si *follow_symlinks* est faux, et *src* et " +"*dst* sont des liens symboliques, :func:`copymode` tente de modifier le mode " +"de *dst* (au lieu du fichier vers lequel il pointe). Cette fonctionnalité " +"n'est pas disponible sur toutes les plateformes ; voir :func:`copystat` pour " +"plus d'informations. Si :func:`copymode` ne peut pas modifier les liens " +"symboliques sur la plateforme cible alors que c'est demandé, il ne fait rien." #: ../Doc/library/shutil.rst:97 msgid "Added *follow_symlinks* argument." -msgstr "" +msgstr "L'argument *follow_symlinks* a été ajouté." #: ../Doc/library/shutil.rst:102 msgid "" @@ -124,6 +169,12 @@ msgid "" "\"extended attributes\" where possible. The file contents, owner, and group " "are unaffected. *src* and *dst* are path names given as strings." msgstr "" +"Copie les bits définissant les droits d'accès, la date du dernier accès, de " +"la dernière modification et les drapeaux (*flags* en anglais) de *src* vers " +"*dst*. Sur Linux, :func:`copystat` copie également, si possible, les " +"\"*extended attributes*\". Le contenu du fichier, le propriétaire et le " +"groupe ne sont pas affectés. *src* et *dst* sont des chaînes spécifiant les " +"chemins." #: ../Doc/library/shutil.rst:107 msgid "" @@ -132,18 +183,27 @@ msgid "" "than the files the symbolic links refer to—reading the information from the " "*src* symbolic link, and writing the information to the *dst* symbolic link." msgstr "" +"Si *follow_symlinks* est faux et *src* et *dst* représentent des liens " +"symboliques, :func:`copystat` agit sur les liens symboliques au lieu des " +"fichiers cibles — elle lit les informations du lien symbolique de *src* et " +"les écrit vers la destination pointée par *dst*." #: ../Doc/library/shutil.rst:116 msgid "" "Not all platforms provide the ability to examine and modify symbolic links. " "Python itself can tell you what functionality is locally available." msgstr "" +"Toutes les plateformes n'offrent pas la possibilité d'examiner et modifier " +"les liens symboliques. Python peut vous informer des fonctionnalités " +"effectivement disponibles." #: ../Doc/library/shutil.rst:120 msgid "" "If ``os.chmod in os.supports_follow_symlinks`` is ``True``, :func:`copystat` " "can modify the permission bits of a symbolic link." msgstr "" +"Si ``os.chmod in os.supports_follow_symlinks`` est ``True``, :func:" +"`copystat` peut modifier les octets de droits d'accès du lien symbolique." #: ../Doc/library/shutil.rst:124 msgid "" @@ -205,7 +265,7 @@ msgstr "" #: ../Doc/library/shutil.rst:168 msgid "" "Identical to :func:`~shutil.copy` except that :func:`copy2` also attempts to " -"preserve all file metadata." +"preserve file metadata." msgstr "" #: ../Doc/library/shutil.rst:171 @@ -402,8 +462,8 @@ msgid "" msgstr "" #: ../Doc/library/shutil.rst:326 -msgid "Availability: Unix, Windows." -msgstr "Disponibilité : Unix, Windows." +msgid ":ref:`Availability `: Unix, Windows." +msgstr ":ref:`Disponibilité ` : Unix, Windows." #: ../Doc/library/shutil.rst:330 msgid "Change owner *user* and/or *group* of the given *path*." @@ -419,9 +479,9 @@ msgstr "" msgid "See also :func:`os.chown`, the underlying function." msgstr "" -#: ../Doc/library/shutil.rst:337 -msgid "Availability: Unix." -msgstr "Disponibilité : Unix." +#: ../Doc/library/shutil.rst:338 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." #: ../Doc/library/shutil.rst:344 msgid "" diff --git a/library/signal.po b/library/signal.po index 10fb78015..c988d1a3e 100644 --- a/library/signal.po +++ b/library/signal.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-11-29 18:27+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -32,10 +32,11 @@ msgid "" "executed when a signal is received. A small number of default handlers are " "installed: :const:`SIGPIPE` is ignored (so write errors on pipes and sockets " "can be reported as ordinary Python exceptions) and :const:`SIGINT` is " -"translated into a :exc:`KeyboardInterrupt` exception." +"translated into a :exc:`KeyboardInterrupt` exception if the parent process " +"has not changed it." msgstr "" -#: ../Doc/library/signal.rst:21 +#: ../Doc/library/signal.rst:22 msgid "" "A handler for a particular signal, once set, remains installed until it is " "explicitly reset (Python emulates the BSD style interface regardless of the " @@ -43,11 +44,11 @@ msgid "" "`SIGCHLD`, which follows the underlying implementation." msgstr "" -#: ../Doc/library/signal.rst:28 +#: ../Doc/library/signal.rst:29 msgid "Execution of Python signal handlers" msgstr "" -#: ../Doc/library/signal.rst:30 +#: ../Doc/library/signal.rst:31 msgid "" "A Python signal handler does not get executed inside the low-level (C) " "signal handler. Instead, the low-level signal handler sets a flag which " @@ -56,7 +57,7 @@ msgid "" "instruction). This has consequences:" msgstr "" -#: ../Doc/library/signal.rst:36 +#: ../Doc/library/signal.rst:37 msgid "" "It makes little sense to catch synchronous errors like :const:`SIGFPE` or :" "const:`SIGSEGV` that are caused by an invalid operation in C code. Python " @@ -66,7 +67,7 @@ msgid "" "errors." msgstr "" -#: ../Doc/library/signal.rst:43 +#: ../Doc/library/signal.rst:44 msgid "" "A long-running calculation implemented purely in C (such as regular " "expression matching on a large body of text) may run uninterrupted for an " @@ -74,11 +75,11 @@ msgid "" "signal handlers will be called when the calculation finishes." msgstr "" -#: ../Doc/library/signal.rst:53 +#: ../Doc/library/signal.rst:54 msgid "Signals and threads" msgstr "" -#: ../Doc/library/signal.rst:55 +#: ../Doc/library/signal.rst:56 msgid "" "Python signal handlers are always executed in the main Python thread, even " "if the signal was received in another thread. This means that signals can't " @@ -86,15 +87,15 @@ msgid "" "synchronization primitives from the :mod:`threading` module instead." msgstr "" -#: ../Doc/library/signal.rst:60 +#: ../Doc/library/signal.rst:61 msgid "Besides, only the main thread is allowed to set a new signal handler." msgstr "" -#: ../Doc/library/signal.rst:64 +#: ../Doc/library/signal.rst:65 msgid "Module contents" msgstr "" -#: ../Doc/library/signal.rst:66 +#: ../Doc/library/signal.rst:67 msgid "" "signal (SIG*), handler (:const:`SIG_DFL`, :const:`SIG_IGN`) and sigmask (:" "const:`SIG_BLOCK`, :const:`SIG_UNBLOCK`, :const:`SIG_SETMASK`) related " @@ -103,11 +104,11 @@ msgid "" "functions return human-readable :class:`enums `." msgstr "" -#: ../Doc/library/signal.rst:76 +#: ../Doc/library/signal.rst:77 msgid "The variables defined in the :mod:`signal` module are:" msgstr "" -#: ../Doc/library/signal.rst:81 +#: ../Doc/library/signal.rst:82 msgid "" "This is one of two standard signal handling options; it will simply perform " "the default function for the signal. For example, on most systems the " @@ -115,13 +116,13 @@ msgid "" "default action for :const:`SIGCHLD` is to simply ignore it." msgstr "" -#: ../Doc/library/signal.rst:89 +#: ../Doc/library/signal.rst:90 msgid "" "This is another standard signal handler, which will simply ignore the given " "signal." msgstr "" -#: ../Doc/library/signal.rst:95 +#: ../Doc/library/signal.rst:96 msgid "" "All the signal numbers are defined symbolically. For example, the hangup " "signal is defined as :const:`signal.SIGHUP`; the variable names are " @@ -132,39 +133,39 @@ msgid "" "only those names defined by the system are defined by this module." msgstr "" -#: ../Doc/library/signal.rst:106 +#: ../Doc/library/signal.rst:107 msgid "" "The signal corresponding to the :kbd:`Ctrl+C` keystroke event. This signal " "can only be used with :func:`os.kill`." msgstr "" -#: ../Doc/library/signal.rst:109 ../Doc/library/signal.rst:119 -msgid "Availability: Windows." -msgstr "Disponibilité : Windows." +#: ../Doc/library/signal.rst:111 ../Doc/library/signal.rst:121 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/library/signal.rst:116 +#: ../Doc/library/signal.rst:117 msgid "" "The signal corresponding to the :kbd:`Ctrl+Break` keystroke event. This " "signal can only be used with :func:`os.kill`." msgstr "" -#: ../Doc/library/signal.rst:126 +#: ../Doc/library/signal.rst:127 msgid "One more than the number of the highest signal number." msgstr "" -#: ../Doc/library/signal.rst:131 +#: ../Doc/library/signal.rst:132 msgid "" "Decrements interval timer in real time, and delivers :const:`SIGALRM` upon " "expiration." msgstr "" -#: ../Doc/library/signal.rst:137 +#: ../Doc/library/signal.rst:138 msgid "" "Decrements interval timer only when the process is executing, and delivers " "SIGVTALRM upon expiration." msgstr "" -#: ../Doc/library/signal.rst:143 +#: ../Doc/library/signal.rst:144 msgid "" "Decrements interval timer both when the process executes and when the system " "is executing on behalf of the process. Coupled with ITIMER_VIRTUAL, this " @@ -172,29 +173,29 @@ msgid "" "and kernel space. SIGPROF is delivered upon expiration." msgstr "" -#: ../Doc/library/signal.rst:151 +#: ../Doc/library/signal.rst:152 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be blocked." msgstr "" -#: ../Doc/library/signal.rst:158 +#: ../Doc/library/signal.rst:159 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be unblocked." msgstr "" -#: ../Doc/library/signal.rst:165 +#: ../Doc/library/signal.rst:166 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that the signal mask is to be replaced." msgstr "" -#: ../Doc/library/signal.rst:171 +#: ../Doc/library/signal.rst:172 msgid "The :mod:`signal` module defines one exception:" msgstr "" -#: ../Doc/library/signal.rst:175 +#: ../Doc/library/signal.rst:176 msgid "" "Raised to signal an error from the underlying :func:`setitimer` or :func:" "`getitimer` implementation. Expect this error if an invalid interval timer " @@ -202,17 +203,17 @@ msgid "" "of :exc:`OSError`." msgstr "" -#: ../Doc/library/signal.rst:180 +#: ../Doc/library/signal.rst:181 msgid "" "This error used to be a subtype of :exc:`IOError`, which is now an alias of :" "exc:`OSError`." msgstr "" -#: ../Doc/library/signal.rst:185 +#: ../Doc/library/signal.rst:186 msgid "The :mod:`signal` module defines the following functions:" msgstr "" -#: ../Doc/library/signal.rst:190 +#: ../Doc/library/signal.rst:191 msgid "" "If *time* is non-zero, this function requests that a :const:`SIGALRM` signal " "be sent to the process in *time* seconds. Any previously scheduled alarm is " @@ -220,10 +221,15 @@ msgid "" "is then the number of seconds before any previously set alarm was to have " "been delivered. If *time* is zero, no alarm is scheduled, and any scheduled " "alarm is canceled. If the return value is zero, no alarm is currently " -"scheduled. (See the Unix man page :manpage:`alarm(2)`.) Availability: Unix." +"scheduled. (See the Unix man page :manpage:`alarm(2)`.)" msgstr "" -#: ../Doc/library/signal.rst:201 +#: ../Doc/library/signal.rst:199 ../Doc/library/signal.rst:299 +#: ../Doc/library/signal.rst:306 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/signal.rst:204 msgid "" "Return the current signal handler for the signal *signalnum*. The returned " "value may be a callable Python object, or one of the special values :const:" @@ -234,20 +240,20 @@ msgid "" "not installed from Python." msgstr "" -#: ../Doc/library/signal.rst:212 +#: ../Doc/library/signal.rst:215 msgid "" "Cause the process to sleep until a signal is received; the appropriate " "handler will then be called. Returns nothing. Not on Windows. (See the " "Unix man page :manpage:`signal(2)`.)" msgstr "" -#: ../Doc/library/signal.rst:216 +#: ../Doc/library/signal.rst:219 msgid "" "See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` and :" "func:`sigpending`." msgstr "" -#: ../Doc/library/signal.rst:222 +#: ../Doc/library/signal.rst:225 msgid "" "Send the signal *signalnum* to the thread *thread_id*, another thread in the " "same process as the caller. The target thread can be executing any code " @@ -258,84 +264,84 @@ msgid "" "to fail with :exc:`InterruptedError`." msgstr "" -#: ../Doc/library/signal.rst:230 +#: ../Doc/library/signal.rst:233 msgid "" "Use :func:`threading.get_ident()` or the :attr:`~threading.Thread.ident` " "attribute of :class:`threading.Thread` objects to get a suitable value for " "*thread_id*." msgstr "" -#: ../Doc/library/signal.rst:234 +#: ../Doc/library/signal.rst:237 msgid "" "If *signalnum* is 0, then no signal is sent, but error checking is still " "performed; this can be used to check if the target thread is still running." msgstr "" -#: ../Doc/library/signal.rst:237 +#: ../Doc/library/signal.rst:242 msgid "" -"Availability: Unix (see the man page :manpage:`pthread_kill(3)` for further " -"information)." +":ref:`Availability `: Unix (see the man page :manpage:" +"`pthread_kill(3)` for further information)." msgstr "" -#: ../Doc/library/signal.rst:240 +#: ../Doc/library/signal.rst:243 msgid "See also :func:`os.kill`." msgstr "" -#: ../Doc/library/signal.rst:247 +#: ../Doc/library/signal.rst:250 msgid "" "Fetch and/or change the signal mask of the calling thread. The signal mask " "is the set of signals whose delivery is currently blocked for the caller. " "Return the old signal mask as a set of signals." msgstr "" -#: ../Doc/library/signal.rst:251 +#: ../Doc/library/signal.rst:254 msgid "" "The behavior of the call is dependent on the value of *how*, as follows." msgstr "" -#: ../Doc/library/signal.rst:253 +#: ../Doc/library/signal.rst:256 msgid "" ":data:`SIG_BLOCK`: The set of blocked signals is the union of the current " "set and the *mask* argument." msgstr "" -#: ../Doc/library/signal.rst:255 +#: ../Doc/library/signal.rst:258 msgid "" ":data:`SIG_UNBLOCK`: The signals in *mask* are removed from the current set " "of blocked signals. It is permissible to attempt to unblock a signal which " "is not blocked." msgstr "" -#: ../Doc/library/signal.rst:258 +#: ../Doc/library/signal.rst:261 msgid "" ":data:`SIG_SETMASK`: The set of blocked signals is set to the *mask* " "argument." msgstr "" -#: ../Doc/library/signal.rst:261 +#: ../Doc/library/signal.rst:264 msgid "" "*mask* is a set of signal numbers (e.g. {:const:`signal.SIGINT`, :const:" "`signal.SIGTERM`}). Use ``range(1, signal.NSIG)`` for a full mask including " "all signals." msgstr "" -#: ../Doc/library/signal.rst:265 +#: ../Doc/library/signal.rst:268 msgid "" "For example, ``signal.pthread_sigmask(signal.SIG_BLOCK, [])`` reads the " "signal mask of the calling thread." msgstr "" -#: ../Doc/library/signal.rst:268 +#: ../Doc/library/signal.rst:273 msgid "" -"Availability: Unix. See the man page :manpage:`sigprocmask(3)` and :manpage:" -"`pthread_sigmask(3)` for further information." +":ref:`Availability `: Unix. See the man page :manpage:" +"`sigprocmask(3)` and :manpage:`pthread_sigmask(3)` for further information." msgstr "" -#: ../Doc/library/signal.rst:271 +#: ../Doc/library/signal.rst:274 msgid "See also :func:`pause`, :func:`sigpending` and :func:`sigwait`." msgstr "" -#: ../Doc/library/signal.rst:278 +#: ../Doc/library/signal.rst:281 msgid "" "Sets given interval timer (one of :const:`signal.ITIMER_REAL`, :const:" "`signal.ITIMER_VIRTUAL` or :const:`signal.ITIMER_PROF`) specified by *which* " @@ -345,7 +351,7 @@ msgid "" "zero." msgstr "" -#: ../Doc/library/signal.rst:285 +#: ../Doc/library/signal.rst:288 msgid "" "When an interval timer fires, a signal is sent to the process. The signal " "sent is dependent on the timer being used; :const:`signal.ITIMER_REAL` will " @@ -353,23 +359,21 @@ msgid "" "`SIGVTALRM`, and :const:`signal.ITIMER_PROF` will deliver :const:`SIGPROF`." msgstr "" -#: ../Doc/library/signal.rst:291 +#: ../Doc/library/signal.rst:294 msgid "The old values are returned as a tuple: (delay, interval)." msgstr "" -#: ../Doc/library/signal.rst:293 +#: ../Doc/library/signal.rst:296 msgid "" "Attempting to pass an invalid interval timer will cause an :exc:" -"`ItimerError`. Availability: Unix." +"`ItimerError`." msgstr "" -#: ../Doc/library/signal.rst:299 -msgid "" -"Returns current value of a given interval timer specified by *which*. " -"Availability: Unix." +#: ../Doc/library/signal.rst:304 +msgid "Returns current value of a given interval timer specified by *which*." msgstr "" -#: ../Doc/library/signal.rst:305 +#: ../Doc/library/signal.rst:311 msgid "" "Set the wakeup file descriptor to *fd*. When a signal is received, the " "signal number is written as a single byte into the fd. This can be used by " @@ -377,7 +381,7 @@ msgid "" "processed." msgstr "" -#: ../Doc/library/signal.rst:310 +#: ../Doc/library/signal.rst:316 msgid "" "The old wakeup fd is returned (or -1 if file descriptor wakeup was not " "enabled). If *fd* is -1, file descriptor wakeup is disabled. If not -1, " @@ -385,21 +389,21 @@ msgid "" "*fd* before calling poll or select again." msgstr "" -#: ../Doc/library/signal.rst:315 ../Doc/library/signal.rst:366 +#: ../Doc/library/signal.rst:321 ../Doc/library/signal.rst:374 msgid "" "When threads are enabled, this function can only be called from the main " "thread; attempting to call it from other threads will cause a :exc:" "`ValueError` exception to be raised." msgstr "" -#: ../Doc/library/signal.rst:319 +#: ../Doc/library/signal.rst:325 msgid "" "There are two common ways to use this function. In both approaches, you use " "the fd to wake up when a signal arrives, but then they differ in how they " "determine *which* signal or signals have arrived." msgstr "" -#: ../Doc/library/signal.rst:324 +#: ../Doc/library/signal.rst:330 msgid "" "In the first approach, we read the data out of the fd's buffer, and the byte " "values give you the signal numbers. This is simple, but in rare cases it can " @@ -410,7 +414,7 @@ msgid "" "warning to be printed to stderr when signals are lost." msgstr "" -#: ../Doc/library/signal.rst:333 +#: ../Doc/library/signal.rst:339 msgid "" "In the second approach, we use the wakeup fd *only* for wakeups, and ignore " "the actual byte values. In this case, all we care about is whether the fd's " @@ -420,30 +424,35 @@ msgid "" "spurious warning messages." msgstr "" -#: ../Doc/library/signal.rst:340 +#: ../Doc/library/signal.rst:346 msgid "On Windows, the function now also supports socket handles." msgstr "" -#: ../Doc/library/signal.rst:343 +#: ../Doc/library/signal.rst:349 msgid "Added ``warn_on_full_buffer`` parameter." msgstr "" -#: ../Doc/library/signal.rst:348 +#: ../Doc/library/signal.rst:354 msgid "" "Change system call restart behaviour: if *flag* is :const:`False`, system " "calls will be restarted when interrupted by signal *signalnum*, otherwise " -"system calls will be interrupted. Returns nothing. Availability: Unix (see " -"the man page :manpage:`siginterrupt(3)` for further information)." +"system calls will be interrupted. Returns nothing." msgstr "" -#: ../Doc/library/signal.rst:353 +#: ../Doc/library/signal.rst:360 +msgid "" +":ref:`Availability `: Unix (see the man page :manpage:" +"`siginterrupt(3)` for further information)." +msgstr "" + +#: ../Doc/library/signal.rst:361 msgid "" "Note that installing a signal handler with :func:`signal` will reset the " "restart behaviour to interruptible by implicitly calling :c:func:" "`siginterrupt` with a true *flag* value for the given signal." msgstr "" -#: ../Doc/library/signal.rst:360 +#: ../Doc/library/signal.rst:368 msgid "" "Set the handler for signal *signalnum* to the function *handler*. *handler* " "can be a callable Python object taking two arguments (see below), or one of " @@ -452,7 +461,7 @@ msgid "" "`getsignal` above). (See the Unix man page :manpage:`signal(2)`.)" msgstr "" -#: ../Doc/library/signal.rst:370 +#: ../Doc/library/signal.rst:378 msgid "" "The *handler* is called with two arguments: the signal number and the " "current stack frame (``None`` or a frame object; for a description of frame " @@ -460,7 +469,7 @@ msgid "" "see the attribute descriptions in the :mod:`inspect` module)." msgstr "" -#: ../Doc/library/signal.rst:375 +#: ../Doc/library/signal.rst:383 msgid "" "On Windows, :func:`signal` can only be called with :const:`SIGABRT`, :const:" "`SIGFPE`, :const:`SIGILL`, :const:`SIGINT`, :const:`SIGSEGV`, :const:" @@ -470,24 +479,24 @@ msgid "" "``SIG*`` module level constant." msgstr "" -#: ../Doc/library/signal.rst:386 +#: ../Doc/library/signal.rst:394 msgid "" "Examine the set of signals that are pending for delivery to the calling " "thread (i.e., the signals which have been raised while blocked). Return the " "set of the pending signals." msgstr "" -#: ../Doc/library/signal.rst:390 +#: ../Doc/library/signal.rst:400 msgid "" -"Availability: Unix (see the man page :manpage:`sigpending(2)` for further " -"information)." +":ref:`Availability `: Unix (see the man page :manpage:" +"`sigpending(2)` for further information)." msgstr "" -#: ../Doc/library/signal.rst:393 +#: ../Doc/library/signal.rst:401 msgid "See also :func:`pause`, :func:`pthread_sigmask` and :func:`sigwait`." msgstr "" -#: ../Doc/library/signal.rst:400 +#: ../Doc/library/signal.rst:408 msgid "" "Suspend execution of the calling thread until the delivery of one of the " "signals specified in the signal set *sigset*. The function accepts the " @@ -495,19 +504,19 @@ msgid "" "number." msgstr "" -#: ../Doc/library/signal.rst:404 +#: ../Doc/library/signal.rst:414 msgid "" -"Availability: Unix (see the man page :manpage:`sigwait(3)` for further " -"information)." +":ref:`Availability `: Unix (see the man page :manpage:" +"`sigwait(3)` for further information)." msgstr "" -#: ../Doc/library/signal.rst:407 +#: ../Doc/library/signal.rst:415 msgid "" "See also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:" "`sigwaitinfo` and :func:`sigtimedwait`." msgstr "" -#: ../Doc/library/signal.rst:415 +#: ../Doc/library/signal.rst:423 msgid "" "Suspend execution of the calling thread until the delivery of one of the " "signals specified in the signal set *sigset*. The function accepts the " @@ -518,7 +527,7 @@ msgid "" "`InterruptedError` if it is interrupted by a signal that is not in *sigset*." msgstr "" -#: ../Doc/library/signal.rst:424 +#: ../Doc/library/signal.rst:432 msgid "" "The return value is an object representing the data contained in the :c:type:" "`siginfo_t` structure, namely: :attr:`si_signo`, :attr:`si_code`, :attr:" @@ -526,52 +535,52 @@ msgid "" "`si_band`." msgstr "" -#: ../Doc/library/signal.rst:429 +#: ../Doc/library/signal.rst:439 msgid "" -"Availability: Unix (see the man page :manpage:`sigwaitinfo(2)` for further " -"information)." +":ref:`Availability `: Unix (see the man page :manpage:" +"`sigwaitinfo(2)` for further information)." msgstr "" -#: ../Doc/library/signal.rst:432 +#: ../Doc/library/signal.rst:440 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigtimedwait`." msgstr "" -#: ../Doc/library/signal.rst:436 +#: ../Doc/library/signal.rst:444 msgid "" "The function is now retried if interrupted by a signal not in *sigset* and " "the signal handler does not raise an exception (see :pep:`475` for the " "rationale)." msgstr "" -#: ../Doc/library/signal.rst:444 +#: ../Doc/library/signal.rst:452 msgid "" "Like :func:`sigwaitinfo`, but takes an additional *timeout* argument " "specifying a timeout. If *timeout* is specified as :const:`0`, a poll is " "performed. Returns :const:`None` if a timeout occurs." msgstr "" -#: ../Doc/library/signal.rst:448 +#: ../Doc/library/signal.rst:458 msgid "" -"Availability: Unix (see the man page :manpage:`sigtimedwait(2)` for further " -"information)." +":ref:`Availability `: Unix (see the man page :manpage:" +"`sigtimedwait(2)` for further information)." msgstr "" -#: ../Doc/library/signal.rst:451 +#: ../Doc/library/signal.rst:459 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigwaitinfo`." msgstr "" -#: ../Doc/library/signal.rst:455 +#: ../Doc/library/signal.rst:463 msgid "" "The function is now retried with the recomputed *timeout* if interrupted by " "a signal not in *sigset* and the signal handler does not raise an exception " "(see :pep:`475` for the rationale)." msgstr "" -#: ../Doc/library/signal.rst:464 +#: ../Doc/library/signal.rst:472 msgid "Example" msgstr "Exemple" -#: ../Doc/library/signal.rst:466 +#: ../Doc/library/signal.rst:474 msgid "" "Here is a minimal example program. It uses the :func:`alarm` function to " "limit the time spent waiting to open a file; this is useful if the file is " @@ -581,11 +590,11 @@ msgid "" "signal will be sent, and the handler raises an exception. ::" msgstr "" -#: ../Doc/library/signal.rst:489 +#: ../Doc/library/signal.rst:497 msgid "Note on SIGPIPE" msgstr "" -#: ../Doc/library/signal.rst:491 +#: ../Doc/library/signal.rst:499 msgid "" "Piping output of your program to tools like :manpage:`head(1)` will cause a :" "const:`SIGPIPE` signal to be sent to your process when the receiver of its " @@ -594,7 +603,7 @@ msgid "" "entry point to catch this exception as follows::" msgstr "" -#: ../Doc/library/signal.rst:518 +#: ../Doc/library/signal.rst:526 msgid "" "Do not set :const:`SIGPIPE`'s disposition to :const:`SIG_DFL` in order to " "avoid :exc:`BrokenPipeError`. Doing that would cause your program to exit " diff --git a/library/site.po b/library/site.po index 35631bfd6..e524deb34 100644 --- a/library/site.po +++ b/library/site.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -72,7 +72,7 @@ msgid "" "otherwise they won't." msgstr "" -#: ../Doc/library/site.rst:52 +#: ../Doc/library/site.rst:56 msgid "" "A path configuration file is a file whose name has the form :file:`{name}." "pth` and exists in one of the four directories mentioned above; its contents " @@ -84,7 +84,7 @@ msgid "" "executed." msgstr "" -#: ../Doc/library/site.rst:64 +#: ../Doc/library/site.rst:68 msgid "" "For example, suppose ``sys.prefix`` and ``sys.exec_prefix`` are set to :file:" "`/usr/local`. The Python X.Y library is then installed in :file:`/usr/local/" @@ -94,17 +94,17 @@ msgid "" "and :file:`bar.pth`. Assume :file:`foo.pth` contains the following::" msgstr "" -#: ../Doc/library/site.rst:78 +#: ../Doc/library/site.rst:82 msgid "and :file:`bar.pth` contains::" msgstr "" -#: ../Doc/library/site.rst:84 +#: ../Doc/library/site.rst:88 msgid "" "Then the following version-specific directories are added to ``sys.path``, " "in this order::" msgstr "" -#: ../Doc/library/site.rst:90 +#: ../Doc/library/site.rst:94 msgid "" "Note that :file:`bletch` is omitted because it doesn't exist; the :file:" "`bar` directory precedes the :file:`foo` directory because :file:`bar.pth` " @@ -112,7 +112,7 @@ msgid "" "because it is not mentioned in either path configuration file." msgstr "" -#: ../Doc/library/site.rst:97 +#: ../Doc/library/site.rst:101 msgid "" "After these path manipulations, an attempt is made to import a module named :" "mod:`sitecustomize`, which can perform arbitrary site-specific " @@ -126,7 +126,7 @@ msgid "" "failure of the process." msgstr "" -#: ../Doc/library/site.rst:109 +#: ../Doc/library/site.rst:113 msgid "" "After this, an attempt is made to import a module named :mod:" "`usercustomize`, which can perform arbitrary user-specific customizations, " @@ -137,18 +137,18 @@ msgid "" "attribute equals to ``'usercustomize'``, it is silently ignored." msgstr "" -#: ../Doc/library/site.rst:117 +#: ../Doc/library/site.rst:121 msgid "" "Note that for some non-Unix systems, ``sys.prefix`` and ``sys.exec_prefix`` " "are empty, and the path manipulations are skipped; however the import of :" "mod:`sitecustomize` and :mod:`usercustomize` is still attempted." msgstr "" -#: ../Doc/library/site.rst:125 +#: ../Doc/library/site.rst:129 msgid "Readline configuration" msgstr "" -#: ../Doc/library/site.rst:127 +#: ../Doc/library/site.rst:131 msgid "" "On systems that support :mod:`readline`, this module will also import and " "configure the :mod:`rlcompleter` module, if Python is started in :ref:" @@ -160,19 +160,19 @@ msgid "" "`PYTHONSTARTUP` file." msgstr "" -#: ../Doc/library/site.rst:136 +#: ../Doc/library/site.rst:140 msgid "Activation of rlcompleter and history was made automatic." msgstr "" -#: ../Doc/library/site.rst:141 +#: ../Doc/library/site.rst:145 msgid "Module contents" msgstr "" -#: ../Doc/library/site.rst:145 +#: ../Doc/library/site.rst:149 msgid "A list of prefixes for site-packages directories." msgstr "" -#: ../Doc/library/site.rst:150 +#: ../Doc/library/site.rst:154 msgid "" "Flag showing the status of the user site-packages directory. ``True`` means " "that it is enabled and was added to ``sys.path``. ``False`` means that it " @@ -181,7 +181,7 @@ msgid "" "(mismatch between user or group id and effective id) or by an administrator." msgstr "" -#: ../Doc/library/site.rst:160 +#: ../Doc/library/site.rst:164 msgid "" "Path to the user site-packages for the running Python. Can be ``None`` if :" "func:`getusersitepackages` hasn't been called yet. Default value is :file:" @@ -192,7 +192,7 @@ msgid "" "file:`.pth` files in it will be processed." msgstr "" -#: ../Doc/library/site.rst:171 +#: ../Doc/library/site.rst:175 msgid "" "Path to the base directory for the user site-packages. Can be ``None`` if :" "func:`getuserbase` hasn't been called yet. Default value is :file:`~/." @@ -204,48 +204,48 @@ msgid "" "`PYTHONUSERBASE`." msgstr "" -#: ../Doc/library/site.rst:183 +#: ../Doc/library/site.rst:187 msgid "" "Adds all the standard site-specific directories to the module search path. " "This function is called automatically when this module is imported, unless " "the Python interpreter was started with the :option:`-S` flag." msgstr "" -#: ../Doc/library/site.rst:187 +#: ../Doc/library/site.rst:191 msgid "This function used to be called unconditionally." msgstr "" -#: ../Doc/library/site.rst:193 +#: ../Doc/library/site.rst:197 msgid "" "Add a directory to sys.path and process its :file:`.pth` files. Typically " "used in :mod:`sitecustomize` or :mod:`usercustomize` (see above)." msgstr "" -#: ../Doc/library/site.rst:199 +#: ../Doc/library/site.rst:203 msgid "Return a list containing all global site-packages directories." msgstr "" -#: ../Doc/library/site.rst:206 +#: ../Doc/library/site.rst:210 msgid "" "Return the path of the user base directory, :data:`USER_BASE`. If it is not " "initialized yet, this function will also set it, respecting :envvar:" "`PYTHONUSERBASE`." msgstr "" -#: ../Doc/library/site.rst:215 +#: ../Doc/library/site.rst:219 msgid "" "Return the path of the user-specific site-packages directory, :data:" "`USER_SITE`. If it is not initialized yet, this function will also set it, " "respecting :envvar:`PYTHONNOUSERSITE` and :data:`USER_BASE`." msgstr "" -#: ../Doc/library/site.rst:222 +#: ../Doc/library/site.rst:226 msgid "" "The :mod:`site` module also provides a way to get the user directories from " "the command line:" msgstr "" -#: ../Doc/library/site.rst:232 +#: ../Doc/library/site.rst:236 msgid "" "If it is called without arguments, it will print the contents of :data:`sys." "path` on the standard output, followed by the value of :data:`USER_BASE` and " @@ -253,21 +253,21 @@ msgid "" "finally the value of :data:`ENABLE_USER_SITE`." msgstr "" -#: ../Doc/library/site.rst:239 +#: ../Doc/library/site.rst:243 msgid "Print the path to the user base directory." msgstr "" -#: ../Doc/library/site.rst:243 +#: ../Doc/library/site.rst:247 msgid "Print the path to the user site-packages directory." msgstr "" -#: ../Doc/library/site.rst:245 +#: ../Doc/library/site.rst:249 msgid "" "If both options are given, user base and user site will be printed (always " "in this order), separated by :data:`os.pathsep`." msgstr "" -#: ../Doc/library/site.rst:248 +#: ../Doc/library/site.rst:252 msgid "" "If any option is given, the script will exit with one of these values: ``0`` " "if the user site-packages directory is enabled, ``1`` if it was disabled by " @@ -275,6 +275,6 @@ msgid "" "administrator, and a value greater than 2 if there is an error." msgstr "" -#: ../Doc/library/site.rst:255 +#: ../Doc/library/site.rst:259 msgid ":pep:`370` -- Per user site-packages directory" msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." diff --git a/library/smtplib.po b/library/smtplib.po index a56f11b10..b2106e3cc 100644 --- a/library/smtplib.po +++ b/library/smtplib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2017-08-10 00:55+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -54,19 +54,19 @@ msgstr "" #: ../Doc/library/smtplib.rst:43 msgid "" "For normal use, you should only require the initialization/connect, :meth:" -"`sendmail`, and :meth:`~smtplib.quit` methods. An example is included below." +"`sendmail`, and :meth:`SMTP.quit` methods. An example is included below." msgstr "" #: ../Doc/library/smtplib.rst:47 msgid "" "The :class:`SMTP` class supports the :keyword:`with` statement. When used " "like this, the SMTP ``QUIT`` command is issued automatically when the :" -"keyword:`with` statement exits. E.g.::" +"keyword:`!with` statement exits. E.g.::" msgstr "" #: ../Doc/library/smtplib.rst:58 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/smtplib.rst:61 ../Doc/library/smtplib.rst:90 msgid "source_address argument was added." diff --git a/library/sndhdr.po b/library/sndhdr.po index 8221d2df0..e659306c9 100644 --- a/library/sndhdr.po +++ b/library/sndhdr.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/sndhdr.rst:2 msgid ":mod:`sndhdr` --- Determine type of sound file" -msgstr ":mod:`sndhdr` --- Détermine le type d'un fichier audio" +msgstr ":mod:`sndhdr` — Détermine le type d'un fichier audio" #: ../Doc/library/sndhdr.rst:10 msgid "**Source code:** :source:`Lib/sndhdr.py`" diff --git a/library/socket.po b/library/socket.po index 6099ae64b..5b976c082 100644 --- a/library/socket.po +++ b/library/socket.po @@ -5,9 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-09-15 22:27+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-18 21:59+0200\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -16,11 +15,11 @@ msgstr "" #: ../Doc/library/socket.rst:2 msgid ":mod:`socket` --- Low-level networking interface" -msgstr "" +msgstr ":mod:`socket` — Gestion réseau de bas niveau" #: ../Doc/library/socket.rst:7 msgid "**Source code:** :source:`Lib/socket.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/secrets.py`" #: ../Doc/library/socket.rst:11 msgid "" @@ -263,11 +262,6 @@ msgstr "" msgid "*feat* and *mask* are unsigned 32bit integers." msgstr "" -#: ../Doc/library/socket.rst:164 -msgid "" -"Availability Linux 2.6.38, some algorithm types require more recent Kernels." -msgstr "" - #: ../Doc/library/socket.rst:168 msgid "" ":const:`AF_VSOCK` allows communication between virtual machines and their " @@ -275,11 +269,6 @@ msgid "" "context ID or CID and port are integers." msgstr "" -#: ../Doc/library/socket.rst:172 -msgid "" -"Availability: Linux >= 4.8 QEMU >= 2.8 ESX >= 4.0 ESX Workstation >= 6.5" -msgstr "" - #: ../Doc/library/socket.rst:176 msgid "" ":const:`AF_PACKET` is a low-level interface directly to network devices. The " @@ -454,9 +443,9 @@ msgid "" "html>`_ for a more thorough explanation." msgstr "" -#: ../Doc/library/socket.rst:309 -msgid "Availability: Linux >= 2.6.27." -msgstr "" +#: ../Doc/library/socket.rst:310 +msgid ":ref:`Availability `: Linux >= 2.6.27." +msgstr ":ref:`Disponibilité ` : Linux >= 2.6.27" #: ../Doc/library/socket.rst:328 msgid "" @@ -497,9 +486,10 @@ msgid "" "also defined in the socket module." msgstr "" -#: ../Doc/library/socket.rst:357 ../Doc/library/socket.rst:368 -msgid "Availability: Linux >= 2.6.25." -msgstr "" +#: ../Doc/library/socket.rst:358 ../Doc/library/socket.rst:369 +#: ../Doc/library/socket.rst:390 +msgid ":ref:`Availability `: Linux >= 2.6.25." +msgstr ":ref:`Disponibilité ` : Linux >= 2.6.25" #: ../Doc/library/socket.rst:364 msgid "" @@ -512,16 +502,16 @@ msgstr "" msgid "" "Enables CAN FD support in a CAN_RAW socket. This is disabled by default. " "This allows your application to send both CAN and CAN FD frames; however, " -"you one must accept both CAN and CAN FD frames when reading from the socket." +"you must accept both CAN and CAN FD frames when reading from the socket." msgstr "" #: ../Doc/library/socket.rst:378 msgid "This constant is documented in the Linux documentation." msgstr "" -#: ../Doc/library/socket.rst:380 -msgid "Availability: Linux >= 3.6." -msgstr "" +#: ../Doc/library/socket.rst:381 +msgid ":ref:`Availability `: Linux >= 3.6." +msgstr ":ref:`Disponibilité ` : Linux >= 3.6." #: ../Doc/library/socket.rst:386 msgid "" @@ -529,17 +519,13 @@ msgid "" "ISO-TP constants, documented in the Linux documentation." msgstr "" -#: ../Doc/library/socket.rst:389 -msgid "Availability: Linux >= 2.6.25" -msgstr "Disponibilité : Linux >= 2.6.25" - #: ../Doc/library/socket.rst:401 -msgid "Availability: Linux >= 2.2." -msgstr "Disponibilité : Linux >= 2.2" +msgid ":ref:`Availability `: Linux >= 2.2." +msgstr ":ref:`Disponibilité ` : Linux >= 2.2." -#: ../Doc/library/socket.rst:412 -msgid "Availability: Linux >= 2.6.30." -msgstr "" +#: ../Doc/library/socket.rst:413 +msgid ":ref:`Availability `: Linux >= 2.6.30." +msgstr ":ref:`Disponibilité ` : Linux >= 2.6.30." #: ../Doc/library/socket.rst:422 msgid "" @@ -561,21 +547,21 @@ msgstr "" msgid "Constants for Linux Kernel cryptography." msgstr "" -#: ../Doc/library/socket.rst:440 -msgid "Availability: Linux >= 2.6.38." -msgstr "" +#: ../Doc/library/socket.rst:441 ../Doc/library/socket.rst:1467 +msgid ":ref:`Availability `: Linux >= 2.6.38." +msgstr ":ref:`Disponibilité ` : Linux >= 2.6.38." #: ../Doc/library/socket.rst:450 msgid "Constants for Linux host/guest communication." msgstr "" -#: ../Doc/library/socket.rst:452 -msgid "Availability: Linux >= 4.8." -msgstr "Disponibilité : Linux >= 4.8.." +#: ../Doc/library/socket.rst:453 +msgid ":ref:`Availability `: Linux >= 4.8." +msgstr ":ref:`Disponibilité ` : Linux >= 4.8." -#: ../Doc/library/socket.rst:458 -msgid "Availability: BSD, OSX." -msgstr "" +#: ../Doc/library/socket.rst:459 +msgid ":ref:`Availability `: BSD, OSX." +msgstr ":ref:`Disponibilité ` : BSD, OSX." #: ../Doc/library/socket.rst:464 msgid "" @@ -637,7 +623,7 @@ msgstr "" #: ../Doc/library/socket.rst:1005 ../Doc/library/socket.rst:1088 msgid "The newly created socket is :ref:`non-inheritable `." msgstr "" -"Il n'est :ref:`pas possible d'hériter ` de la *socket* " +"Il n'est :ref:`pas possible d'hériter ` du connecteur " "nouvellement créé." #: ../Doc/library/socket.rst:515 @@ -752,9 +738,9 @@ msgid "" "method. The socket is assumed to be in blocking mode." msgstr "" -#: ../Doc/library/socket.rst:607 ../Doc/library/socket.rst:1567 -msgid "Availability: Windows." -msgstr "Disponibilité : Windows." +#: ../Doc/library/socket.rst:608 ../Doc/library/socket.rst:1568 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." #: ../Doc/library/socket.rst:614 msgid "" @@ -764,7 +750,7 @@ msgstr "" #: ../Doc/library/socket.rst:619 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/socket.rst:621 msgid "The :mod:`socket` module also offers various network-related services:" @@ -1027,13 +1013,14 @@ msgid "" "`inet_pton`." msgstr "" -#: ../Doc/library/socket.rst:854 ../Doc/library/socket.rst:874 -msgid "Availability: Unix (maybe not all platforms), Windows." +#: ../Doc/library/socket.rst:855 ../Doc/library/socket.rst:875 +msgid "" +":ref:`Availability `: Unix (maybe not all platforms), Windows." msgstr "" #: ../Doc/library/socket.rst:856 ../Doc/library/socket.rst:876 msgid "Windows support added" -msgstr "Ajout du support Windows." +msgstr "Ajout de la gestion de Windows." #: ../Doc/library/socket.rst:862 msgid "" @@ -1063,10 +1050,11 @@ msgid "" "the permissible range of values." msgstr "" -#: ../Doc/library/socket.rst:900 ../Doc/library/socket.rst:921 -#: ../Doc/library/socket.rst:1306 ../Doc/library/socket.rst:1348 -#: ../Doc/library/socket.rst:1452 -msgid "Availability: most Unix platforms, possibly others." +#: ../Doc/library/socket.rst:901 ../Doc/library/socket.rst:922 +#: ../Doc/library/socket.rst:1307 ../Doc/library/socket.rst:1349 +#: ../Doc/library/socket.rst:1453 +msgid "" +":ref:`Availability `: most Unix platforms, possibly others." msgstr "" #: ../Doc/library/socket.rst:907 @@ -1107,10 +1095,10 @@ msgid "" "you don't have enough rights." msgstr "" -#: ../Doc/library/socket.rst:946 ../Doc/library/socket.rst:957 -#: ../Doc/library/socket.rst:968 ../Doc/library/socket.rst:979 -msgid "Availability: Unix." -msgstr "Disponibilité : Unix." +#: ../Doc/library/socket.rst:947 ../Doc/library/socket.rst:958 +#: ../Doc/library/socket.rst:969 ../Doc/library/socket.rst:980 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." #: ../Doc/library/socket.rst:953 msgid "" @@ -1587,10 +1575,6 @@ msgid "" "socket." msgstr "" -#: ../Doc/library/socket.rst:1466 -msgid "Availability: Linux >= 2.6.38" -msgstr "" - #: ../Doc/library/socket.rst:1472 msgid "" "Send a file until EOF is reached by using high-performance :mod:`os." diff --git a/library/socketserver.po b/library/socketserver.po index 1d8223ce6..9046eae53 100644 --- a/library/socketserver.po +++ b/library/socketserver.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\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" "Language-Team: FRENCH \n" @@ -77,7 +77,7 @@ msgid "" "the :meth:`~BaseServer.handle_request` or :meth:`~BaseServer.serve_forever` " "method of the server object to process one or many requests. Finally, call :" "meth:`~BaseServer.server_close` to close the socket (unless you used a :" -"keyword:`with` statement)." +"keyword:`!with` statement)." msgstr "" #: ../Doc/library/socketserver.rst:62 @@ -219,7 +219,7 @@ msgstr "" #: ../Doc/library/socketserver.rst:186 msgid "Server Objects" -msgstr "" +msgstr "Objets Serveur" #: ../Doc/library/socketserver.rst:190 msgid "" diff --git a/library/spwd.po b/library/spwd.po index 3e244f6ad..7548e9421 100644 --- a/library/spwd.po +++ b/library/spwd.po @@ -5,30 +5,36 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-12-17 19:00+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" #: ../Doc/library/spwd.rst:2 msgid ":mod:`spwd` --- The shadow password database" -msgstr "" +msgstr ":mod:`spwd` — La base de données de mots de passe *shadow*" #: ../Doc/library/spwd.rst:10 msgid "" "This module provides access to the Unix shadow password database. It is " "available on various Unix versions." msgstr "" +"Ce module permet d'accéder à la base de données UNIX de mots de passe " +"*shadow*. Elle est disponible sur différentes versions d'UNIX." #: ../Doc/library/spwd.rst:13 msgid "" "You must have enough privileges to access the shadow password database (this " "usually means you have to be root)." msgstr "" +"Vous devez disposer des droits suffisants pour accéder à la base de données " +"de mots de passe *shadow* (cela signifie généralement que vous devez être " +"*root*)." #: ../Doc/library/spwd.rst:16 msgid "" @@ -36,10 +42,14 @@ msgid "" "attributes correspond to the members of the ``spwd`` structure (Attribute " "field below, see ````):" msgstr "" +"Les entrées de la base de données de mots de passe *shadow* sont renvoyées " +"comme un objet semblable à un tuple, dont les attributs correspondent aux " +"membres de la structure ``spwd`` (champ attribut ci-dessous, voir ````) :" #: ../Doc/library/spwd.rst:21 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/spwd.rst:21 msgid "Attribute" @@ -59,7 +69,7 @@ msgstr "``sp_namp``" #: ../Doc/library/spwd.rst:23 msgid "Login name" -msgstr "" +msgstr "Nom d’utilisateur" #: ../Doc/library/spwd.rst:25 msgid "1" @@ -71,7 +81,7 @@ msgstr "``sp_pwdp``" #: ../Doc/library/spwd.rst:25 msgid "Encrypted password" -msgstr "" +msgstr "Mot de passe haché" #: ../Doc/library/spwd.rst:27 msgid "2" @@ -83,7 +93,7 @@ msgstr "``sp_lstchg``" #: ../Doc/library/spwd.rst:27 msgid "Date of last change" -msgstr "" +msgstr "Date du dernier changement" #: ../Doc/library/spwd.rst:29 msgid "3" @@ -95,7 +105,7 @@ msgstr "``sp_min``" #: ../Doc/library/spwd.rst:29 msgid "Minimal number of days between changes" -msgstr "" +msgstr "Nombre minimal de jours entre les modifications" #: ../Doc/library/spwd.rst:32 msgid "4" @@ -107,7 +117,7 @@ msgstr "``sp_max``" #: ../Doc/library/spwd.rst:32 msgid "Maximum number of days between changes" -msgstr "" +msgstr "Nombre maximal de jours entre les modifications" #: ../Doc/library/spwd.rst:35 msgid "5" @@ -120,6 +130,8 @@ msgstr "``sp_warn``" #: ../Doc/library/spwd.rst:35 msgid "Number of days before password expires to warn user about it" msgstr "" +"Nombre de jours avant l'expiration du mot de passe pendant lequel " +"l'utilisateur doit être prévenu" #: ../Doc/library/spwd.rst:38 msgid "6" @@ -132,6 +144,8 @@ msgstr "``sp_inact``" #: ../Doc/library/spwd.rst:38 msgid "Number of days after password expires until account is disabled" msgstr "" +"Nombre de jours avant la désactivation du compte, suite à l'expiration du " +"mot de passe" #: ../Doc/library/spwd.rst:42 msgid "7" @@ -144,6 +158,8 @@ msgstr "``sp_expire``" #: ../Doc/library/spwd.rst:42 msgid "Number of days since 1970-01-01 when account expires" msgstr "" +"Date à laquelle le compte expire, en nombre de jours depuis le 1er janvier " +"1970" #: ../Doc/library/spwd.rst:45 msgid "8" @@ -162,39 +178,50 @@ msgid "" "The sp_namp and sp_pwdp items are strings, all others are integers. :exc:" "`KeyError` is raised if the entry asked for cannot be found." msgstr "" +"Les champs ``sp_namp`` et ``sp_pwdp`` sont des chaines de caractères, tous " +"les autres sont des entiers. :exc:`KeyError` est levée si l’entrée demandée " +"est introuvable." #: ../Doc/library/spwd.rst:51 msgid "The following functions are defined:" -msgstr "" +msgstr "Les fonctions suivantes sont définies :" #: ../Doc/library/spwd.rst:56 msgid "Return the shadow password database entry for the given user name." msgstr "" +"Renvoie l'entrée de base de données de mot de passe *shadow* pour le nom " +"d'utilisateur donné." #: ../Doc/library/spwd.rst:58 msgid "" "Raises a :exc:`PermissionError` instead of :exc:`KeyError` if the user " "doesn't have privileges." msgstr "" +"Lève une :exc:`PermissionError` au lieu d’une :exc:`KeyError` si " +"l’utilisateur n’a pas les droits suffisants." #: ../Doc/library/spwd.rst:64 msgid "" "Return a list of all available shadow password database entries, in " "arbitrary order." msgstr "" +"Renvoie une liste de toutes les entrées de la base de données de mots de " +"passe *shadow*, dans un ordre arbitraire." #: ../Doc/library/spwd.rst:71 msgid "Module :mod:`grp`" -msgstr "" +msgstr "Module :mod:`grp`" #: ../Doc/library/spwd.rst:71 msgid "An interface to the group database, similar to this." -msgstr "" +msgstr "Interface pour la base de données des groupes, similaire à celle-ci." #: ../Doc/library/spwd.rst:73 msgid "Module :mod:`pwd`" -msgstr "" +msgstr "Module :mod:`pwd`" #: ../Doc/library/spwd.rst:74 msgid "An interface to the normal password database, similar to this." msgstr "" +"Interface pour la base de données (normale) des mots de passe, semblable à " +"ceci." diff --git a/library/sqlite3.po b/library/sqlite3.po index 3cab0c71c..804886bb9 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-07-03 11:13+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-03-26 15:55+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.6\n" #: ../Doc/library/sqlite3.rst:2 msgid ":mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases" -msgstr "" +msgstr ":mod:`sqlite3` — Interface DB-API 2.0 pour bases de données SQLite" #: ../Doc/library/sqlite3.rst:9 msgid "**Source code:** :source:`Lib/sqlite3/`" -msgstr "" +msgstr "**Code source :** :source:`Lib/sqlite3/`" #: ../Doc/library/sqlite3.rst:13 msgid "" @@ -31,6 +32,13 @@ msgid "" "application using SQLite and then port the code to a larger database such as " "PostgreSQL or Oracle." msgstr "" +"SQLite est une bibliothèque C qui fournit une base de données légère sur " +"disque ne nécessitant pas de processus serveur et qui utilise une variante " +"(non standard) du langage de requête SQL pour accéder aux données. Certaines " +"applications peuvent utiliser SQLite pour le stockage de données internes. " +"Il est également possible de créer une application prototype utilisant " +"SQLite, puis de modifier le code pour utiliser une base de données plus " +"robuste telle que PostgreSQL ou Oracle." #: ../Doc/library/sqlite3.rst:20 msgid "" @@ -38,6 +46,8 @@ msgid "" "interface compliant with the DB-API 2.0 specification described by :pep:" "`249`." msgstr "" +"Le module *sqlite3* a été écrit par Gerhard Häring. Il fournit une " +"interface SQL conforme à la spécification DB-API 2.0 décrite par :pep:`249`." #: ../Doc/library/sqlite3.rst:23 msgid "" @@ -45,23 +55,33 @@ msgid "" "represents the database. Here the data will be stored in the :file:`example." "db` file::" msgstr "" +"Pour utiliser le module, vous devez d’abord créer une :class:`Connection` " +"qui représente la base de données. Dans cet exemple, les données sont " +"stockées dans le fichier :file:`example.db` ::" #: ../Doc/library/sqlite3.rst:30 msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" +"Vous pouvez également fournir le nom spécial ``:memory:`` pour créer une " +"base de données dans la mémoire vive." #: ../Doc/library/sqlite3.rst:32 msgid "" "Once you have a :class:`Connection`, you can create a :class:`Cursor` " "object and call its :meth:`~Cursor.execute` method to perform SQL commands::" msgstr "" +"Une fois que vous avez une instance de :class:`Connection`, vous pouvez " +"créer un objet :class:`Cursor` et appeler sa méthode :meth:`~Cursor.execute` " +"pour exécuter les commandes SQL ::" #: ../Doc/library/sqlite3.rst:51 msgid "" "The data you've saved is persistent and is available in subsequent sessions::" msgstr "" +"Les données que vous avez sauvegardées sont persistantes et disponibles dans " +"les sessions suivantes ::" #: ../Doc/library/sqlite3.rst:57 msgid "" @@ -70,6 +90,11 @@ msgid "" "doing so is insecure; it makes your program vulnerable to an SQL injection " "attack (see https://xkcd.com/327/ for humorous example of what can go wrong)." msgstr "" +"Habituellement, vos opérations SQL utilisent les valeurs de variables " +"Python. Vous ne devez pas assembler votre requête à l'aide des opérations " +"sur les chaînes de caractères de Python, car cela n'est pas sûr. Cela rend " +"votre programme vulnérable à une attaque par injection SQL (voir https://" +"xkcd.com/327/ pour un exemple amusant de ce qui peut mal tourner)." #: ../Doc/library/sqlite3.rst:62 msgid "" @@ -79,6 +104,11 @@ msgid "" "method. (Other database modules may use a different placeholder, such as ``" "%s`` or ``:1``.) For example::" msgstr "" +"À la place, utilisez la capacité DB-API de substitution des paramètres. " +"Placez un ``?`` comme indicateur partout où vous voulez utiliser une valeur, " +"puis fournissez un *tuple* de valeurs comme second argument de la méthode :" +"meth:`~Cursor.execute`. D'autres modules de base de données peuvent utiliser " +"un espace réservé différent, tel que ``%s`` ou ``:1``. Par exemple ::" #: ../Doc/library/sqlite3.rst:84 msgid "" @@ -87,77 +117,96 @@ msgid "" "fetchone` method to retrieve a single matching row, or call :meth:`~Cursor." "fetchall` to get a list of the matching rows." msgstr "" +"Pour récupérer des données après avoir exécuté une instruction *SELECT*, " +"vous pouvez considérer le curseur comme un :term:`itérateur `, " +"appeler la méthode du curseur :meth:`~Cursor.fetchone` pour récupérer une " +"seule ligne correspondante ou appeler :meth:`~Cursor.fetchall` pour obtenir " +"une liste des lignes correspondantes." #: ../Doc/library/sqlite3.rst:89 msgid "This example uses the iterator form::" -msgstr "" +msgstr "Cet exemple utilise la forme itérateur ::" #: ../Doc/library/sqlite3.rst:104 msgid "https://github.com/ghaering/pysqlite" -msgstr "" +msgstr "https://github.com/ghaering/pysqlite" #: ../Doc/library/sqlite3.rst:103 msgid "" "The pysqlite web page -- sqlite3 is developed externally under the name " "\"pysqlite\"." msgstr "" +"La page web de *pysqlite* — *sqlite3* est développée sur un site tiers sous " +"le nom *pysqlite*." #: ../Doc/library/sqlite3.rst:108 msgid "https://www.sqlite.org" -msgstr "" +msgstr "https://www.sqlite.org" #: ../Doc/library/sqlite3.rst:107 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" +"Dans la page Web de SQLite, la documentation décrit la syntaxe et les types " +"de données disponibles qui sont pris en charge par cette variante SQL." #: ../Doc/library/sqlite3.rst:111 msgid "https://www.w3schools.com/sql/" -msgstr "" +msgstr "https://www.w3schools.com/sql/" #: ../Doc/library/sqlite3.rst:111 msgid "Tutorial, reference and examples for learning SQL syntax." -msgstr "" +msgstr "Tutoriel, référence et exemples pour apprendre la syntaxe SQL." #: ../Doc/library/sqlite3.rst:113 msgid ":pep:`249` - Database API Specification 2.0" -msgstr "" +msgstr ":pep:`249` — Spécifications de l'API 2.0 pour la base de données" #: ../Doc/library/sqlite3.rst:114 msgid "PEP written by Marc-André Lemburg." -msgstr "" +msgstr "PEP écrite par Marc-André Lemburg." #: ../Doc/library/sqlite3.rst:120 msgid "Module functions and constants" -msgstr "" +msgstr "Fonctions et constantes du module" #: ../Doc/library/sqlite3.rst:125 msgid "" "The version number of this module, as a string. This is not the version of " "the SQLite library." msgstr "" +"Le numéro de version de ce module, sous forme de chaîne. Ce n'est pas la " +"version de la bibliothèque SQLite." #: ../Doc/library/sqlite3.rst:131 msgid "" "The version number of this module, as a tuple of integers. This is not the " "version of the SQLite library." msgstr "" +"Le numéro de version de ce module, sous forme d'un n-uplet d'entiers. Ce " +"n'est pas la version de la bibliothèque SQLite." #: ../Doc/library/sqlite3.rst:137 msgid "The version number of the run-time SQLite library, as a string." msgstr "" +"Le numéro de version de la bibliothèque d'exécution SQLite, sous forme de " +"chaîne." #: ../Doc/library/sqlite3.rst:142 msgid "" "The version number of the run-time SQLite library, as a tuple of integers." msgstr "" +"Le numéro de version de la bibliothèque d'exécution SQLite, sous forme " +"d'entier." #: ../Doc/library/sqlite3.rst:147 ../Doc/library/sqlite3.rst:160 msgid "" "This constant is meant to be used with the *detect_types* parameter of the :" "func:`connect` function." msgstr "" +"Cette constante est destinée à être utilisée avec le paramètre " +"*detect_types* de la fonction :func:`connect`." #: ../Doc/library/sqlite3.rst:150 msgid "" @@ -168,6 +217,11 @@ msgid "" "look into the converters dictionary and use the converter function " "registered for that type there." msgstr "" +"Si elle est définie, le module :mod:`sqlite3` analyse le type de donnée " +"déclarée pour chaque colonne. Il déduit le type du premier mot de la " +"déclaration, par exemple de *integer primary key* il gardera *integer*, ou " +"de *number(10)* il gardera *number*. Ensuite, pour cette colonne, il " +"utilisera une fonction de conversion du dictionnaire des convertisseurs." #: ../Doc/library/sqlite3.rst:163 msgid "" @@ -181,12 +235,23 @@ msgid "" "parse out everything until the first blank for the column name: the column " "name would simply be \"x\"." msgstr "" +"Permet à l’interface SQLite d'analyser le nom pour chaque colonne. Il y " +"cherchera une chaîne comme ``[mytype]`` indiquant que la colonne est de type " +"``mytype``. Il essaiera de trouver une entrée *mytype* dans le dictionnaire, " +"puis utilisera la fonction de conversion qui s'y trouve pour renvoyer la " +"valeur. Le nom de colonne donnée à :attr:`Cursor.description` n'est alors " +"que le premier mot du nom de la colonne, par exemple si vous utilisez ``'as " +"\\\"x [datetime]\\\"'`` dans votre code SQL, le nom de la colonne sera " +"simplement *x*." #: ../Doc/library/sqlite3.rst:175 msgid "" "Opens a connection to the SQLite database file *database*. By default " "returns a :class:`Connection` object, unless a custom *factory* is given." msgstr "" +"Ouvre une connexion à la base de données SQLite *database*. Par défaut, " +"cette commande renvoie un objet :class:`Connection`, sauf si *factory* est " +"donné." #: ../Doc/library/sqlite3.rst:178 msgid "" @@ -321,7 +386,7 @@ msgstr "" #: ../Doc/library/sqlite3.rst:276 msgid "Connection Objects" -msgstr "" +msgstr "Objets de connexions" #: ../Doc/library/sqlite3.rst:280 msgid "A SQLite database connection has the following attributes and methods:" @@ -405,7 +470,7 @@ msgid "" msgstr "" #: ../Doc/library/sqlite3.rst:351 ../Doc/library/sqlite3.rst:368 -#: ../Doc/library/sqlite3.rst:482 ../Doc/library/sqlite3.rst:632 +#: ../Doc/library/sqlite3.rst:482 ../Doc/library/sqlite3.rst:639 msgid "Example:" msgstr "Exemple :" @@ -602,7 +667,7 @@ msgstr "" msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/sqlite3.rst:537 +#: ../Doc/library/sqlite3.rst:538 msgid "" "This method makes a backup of a SQLite database even while it's being " "accessed by other clients, or concurrently by the same connection. The copy " @@ -610,14 +675,14 @@ msgid "" "class:`Connection` instance." msgstr "" -#: ../Doc/library/sqlite3.rst:542 +#: ../Doc/library/sqlite3.rst:543 msgid "" "By default, or when *pages* is either ``0`` or a negative integer, the " "entire database is copied in a single step; otherwise the method performs a " "loop copying up to *pages* pages at a time." msgstr "" -#: ../Doc/library/sqlite3.rst:546 +#: ../Doc/library/sqlite3.rst:547 msgid "" "If *progress* is specified, it must either be ``None`` or a callable object " "that will be executed at each iteration with three integer arguments, " @@ -625,7 +690,7 @@ msgid "" "pages still to be copied and the *total* number of pages." msgstr "" -#: ../Doc/library/sqlite3.rst:551 +#: ../Doc/library/sqlite3.rst:552 msgid "" "The *name* argument specifies the database name that will be copied: it must " "be a string containing either ``\"main\"``, the default, to indicate the " @@ -634,34 +699,34 @@ msgid "" "an attached database." msgstr "" -#: ../Doc/library/sqlite3.rst:557 +#: ../Doc/library/sqlite3.rst:558 msgid "" "The *sleep* argument specifies the number of seconds to sleep by between " "successive attempts to backup remaining pages, can be specified either as an " "integer or a floating point value." msgstr "" -#: ../Doc/library/sqlite3.rst:561 +#: ../Doc/library/sqlite3.rst:562 msgid "Example 1, copy an existing database into another::" msgstr "" -#: ../Doc/library/sqlite3.rst:572 +#: ../Doc/library/sqlite3.rst:576 msgid "Example 2, copy an existing database into a transient copy::" msgstr "" -#: ../Doc/library/sqlite3.rst:580 +#: ../Doc/library/sqlite3.rst:584 msgid "Availability: SQLite 3.6.11 or higher" msgstr "" -#: ../Doc/library/sqlite3.rst:588 +#: ../Doc/library/sqlite3.rst:592 msgid "Cursor Objects" msgstr "" -#: ../Doc/library/sqlite3.rst:592 +#: ../Doc/library/sqlite3.rst:596 msgid "A :class:`Cursor` instance has the following attributes and methods." msgstr "" -#: ../Doc/library/sqlite3.rst:596 +#: ../Doc/library/sqlite3.rst:603 msgid "" "Executes an SQL statement. The SQL statement may be parameterized (i. e. " "placeholders instead of SQL literals). The :mod:`sqlite3` module supports " @@ -669,11 +734,11 @@ msgid "" "placeholders (named style)." msgstr "" -#: ../Doc/library/sqlite3.rst:601 +#: ../Doc/library/sqlite3.rst:608 msgid "Here's an example of both styles:" msgstr "" -#: ../Doc/library/sqlite3.rst:605 +#: ../Doc/library/sqlite3.rst:612 msgid "" ":meth:`execute` will only execute a single SQL statement. If you try to " "execute more than one statement with it, it will raise a :exc:`.Warning`. " @@ -681,41 +746,41 @@ msgid "" "with one call." msgstr "" -#: ../Doc/library/sqlite3.rst:613 +#: ../Doc/library/sqlite3.rst:620 msgid "" "Executes an SQL command against all parameter sequences or mappings found in " "the sequence *seq_of_parameters*. The :mod:`sqlite3` module also allows " "using an :term:`iterator` yielding parameters instead of a sequence." msgstr "" -#: ../Doc/library/sqlite3.rst:619 +#: ../Doc/library/sqlite3.rst:626 msgid "Here's a shorter example using a :term:`generator`:" msgstr "" -#: ../Doc/library/sqlite3.rst:626 +#: ../Doc/library/sqlite3.rst:633 msgid "" "This is a nonstandard convenience method for executing multiple SQL " "statements at once. It issues a ``COMMIT`` statement first, then executes " "the SQL script it gets as a parameter." msgstr "" -#: ../Doc/library/sqlite3.rst:630 +#: ../Doc/library/sqlite3.rst:637 msgid "*sql_script* can be an instance of :class:`str`." msgstr "" -#: ../Doc/library/sqlite3.rst:639 +#: ../Doc/library/sqlite3.rst:646 msgid "" "Fetches the next row of a query result set, returning a single sequence, or :" "const:`None` when no more data is available." msgstr "" -#: ../Doc/library/sqlite3.rst:645 +#: ../Doc/library/sqlite3.rst:652 msgid "" "Fetches the next set of rows of a query result, returning a list. An empty " "list is returned when no more rows are available." msgstr "" -#: ../Doc/library/sqlite3.rst:648 +#: ../Doc/library/sqlite3.rst:655 msgid "" "The number of rows to fetch per call is specified by the *size* parameter. " "If it is not given, the cursor's arraysize determines the number of rows to " @@ -724,7 +789,7 @@ msgid "" "not being available, fewer rows may be returned." msgstr "" -#: ../Doc/library/sqlite3.rst:654 +#: ../Doc/library/sqlite3.rst:661 msgid "" "Note there are performance considerations involved with the *size* " "parameter. For optimal performance, it is usually best to use the arraysize " @@ -732,38 +797,38 @@ msgid "" "the same value from one :meth:`fetchmany` call to the next." msgstr "" -#: ../Doc/library/sqlite3.rst:661 +#: ../Doc/library/sqlite3.rst:668 msgid "" "Fetches all (remaining) rows of a query result, returning a list. Note that " "the cursor's arraysize attribute can affect the performance of this " "operation. An empty list is returned when no rows are available." msgstr "" -#: ../Doc/library/sqlite3.rst:667 +#: ../Doc/library/sqlite3.rst:674 msgid "Close the cursor now (rather than whenever ``__del__`` is called)." msgstr "" -#: ../Doc/library/sqlite3.rst:669 +#: ../Doc/library/sqlite3.rst:676 msgid "" "The cursor will be unusable from this point forward; a :exc:" "`ProgrammingError` exception will be raised if any operation is attempted " "with the cursor." msgstr "" -#: ../Doc/library/sqlite3.rst:674 +#: ../Doc/library/sqlite3.rst:681 msgid "" "Although the :class:`Cursor` class of the :mod:`sqlite3` module implements " "this attribute, the database engine's own support for the determination of " "\"rows affected\"/\"rows selected\" is quirky." msgstr "" -#: ../Doc/library/sqlite3.rst:678 +#: ../Doc/library/sqlite3.rst:685 msgid "" "For :meth:`executemany` statements, the number of modifications are summed " "up into :attr:`rowcount`." msgstr "" -#: ../Doc/library/sqlite3.rst:681 +#: ../Doc/library/sqlite3.rst:688 msgid "" "As required by the Python DB API Spec, the :attr:`rowcount` attribute \"is " "-1 in case no ``executeXX()`` has been performed on the cursor or the " @@ -772,13 +837,13 @@ msgid "" "rows a query produced until all rows were fetched." msgstr "" -#: ../Doc/library/sqlite3.rst:687 +#: ../Doc/library/sqlite3.rst:694 msgid "" "With SQLite versions before 3.6.5, :attr:`rowcount` is set to 0 if you make " "a ``DELETE FROM table`` without any condition." msgstr "" -#: ../Doc/library/sqlite3.rst:692 +#: ../Doc/library/sqlite3.rst:699 msgid "" "This read-only attribute provides the rowid of the last modified row. It is " "only set if you issued an ``INSERT`` or a ``REPLACE`` statement using the :" @@ -787,35 +852,35 @@ msgid "" "`None`." msgstr "" -#: ../Doc/library/sqlite3.rst:698 +#: ../Doc/library/sqlite3.rst:705 msgid "" "If the ``INSERT`` or ``REPLACE`` statement failed to insert the previous " "successful rowid is returned." msgstr "" -#: ../Doc/library/sqlite3.rst:701 +#: ../Doc/library/sqlite3.rst:708 msgid "Added support for the ``REPLACE`` statement." msgstr "" -#: ../Doc/library/sqlite3.rst:706 +#: ../Doc/library/sqlite3.rst:713 msgid "" "Read/write attribute that controls the number of rows returned by :meth:" "`fetchmany`. The default value is 1 which means a single row would be " "fetched per call." msgstr "" -#: ../Doc/library/sqlite3.rst:711 +#: ../Doc/library/sqlite3.rst:718 msgid "" "This read-only attribute provides the column names of the last query. To " "remain compatible with the Python DB API, it returns a 7-tuple for each " "column where the last six items of each tuple are :const:`None`." msgstr "" -#: ../Doc/library/sqlite3.rst:715 +#: ../Doc/library/sqlite3.rst:722 msgid "It is set for ``SELECT`` statements without any matching rows as well." msgstr "" -#: ../Doc/library/sqlite3.rst:719 +#: ../Doc/library/sqlite3.rst:726 msgid "" "This read-only attribute provides the SQLite database :class:`Connection` " "used by the :class:`Cursor` object. A :class:`Cursor` object created by " @@ -823,79 +888,79 @@ msgid "" "`connection` attribute that refers to *con*::" msgstr "" -#: ../Doc/library/sqlite3.rst:732 +#: ../Doc/library/sqlite3.rst:739 msgid "Row Objects" msgstr "" -#: ../Doc/library/sqlite3.rst:736 +#: ../Doc/library/sqlite3.rst:743 msgid "" "A :class:`Row` instance serves as a highly optimized :attr:`~Connection." "row_factory` for :class:`Connection` objects. It tries to mimic a tuple in " "most of its features." msgstr "" -#: ../Doc/library/sqlite3.rst:740 +#: ../Doc/library/sqlite3.rst:747 msgid "" "It supports mapping access by column name and index, iteration, " "representation, equality testing and :func:`len`." msgstr "" -#: ../Doc/library/sqlite3.rst:743 +#: ../Doc/library/sqlite3.rst:750 msgid "" "If two :class:`Row` objects have exactly the same columns and their members " "are equal, they compare equal." msgstr "" -#: ../Doc/library/sqlite3.rst:748 +#: ../Doc/library/sqlite3.rst:755 msgid "" "This method returns a list of column names. Immediately after a query, it is " "the first member of each tuple in :attr:`Cursor.description`." msgstr "" -#: ../Doc/library/sqlite3.rst:751 +#: ../Doc/library/sqlite3.rst:758 msgid "Added support of slicing." msgstr "" -#: ../Doc/library/sqlite3.rst:754 +#: ../Doc/library/sqlite3.rst:761 msgid "Let's assume we initialize a table as in the example given above::" msgstr "" -#: ../Doc/library/sqlite3.rst:766 +#: ../Doc/library/sqlite3.rst:773 msgid "Now we plug :class:`Row` in::" msgstr "" -#: ../Doc/library/sqlite3.rst:798 +#: ../Doc/library/sqlite3.rst:805 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/sqlite3.rst:802 +#: ../Doc/library/sqlite3.rst:809 msgid "A subclass of :exc:`Exception`." msgstr "" -#: ../Doc/library/sqlite3.rst:806 +#: ../Doc/library/sqlite3.rst:813 msgid "" "The base class of the other exceptions in this module. It is a subclass of :" "exc:`Exception`." msgstr "" -#: ../Doc/library/sqlite3.rst:811 +#: ../Doc/library/sqlite3.rst:818 msgid "Exception raised for errors that are related to the database." msgstr "" -#: ../Doc/library/sqlite3.rst:815 +#: ../Doc/library/sqlite3.rst:822 msgid "" "Exception raised when the relational integrity of the database is affected, " "e.g. a foreign key check fails. It is a subclass of :exc:`DatabaseError`." msgstr "" -#: ../Doc/library/sqlite3.rst:820 +#: ../Doc/library/sqlite3.rst:827 msgid "" "Exception raised for programming errors, e.g. table not found or already " "exists, syntax error in the SQL statement, wrong number of parameters " "specified, etc. It is a subclass of :exc:`DatabaseError`." msgstr "" -#: ../Doc/library/sqlite3.rst:826 +#: ../Doc/library/sqlite3.rst:833 msgid "" "Exception raised for errors that are related to the database's operation and " "not necessarily under the control of the programmer, e.g. an unexpected " @@ -903,7 +968,7 @@ msgid "" "not be processed, etc. It is a subclass of :exc:`DatabaseError`." msgstr "" -#: ../Doc/library/sqlite3.rst:833 +#: ../Doc/library/sqlite3.rst:840 msgid "" "Exception raised in case a method or database API was used which is not " "supported by the database, e.g. calling the :meth:`~Connection.rollback` " @@ -911,82 +976,82 @@ msgid "" "turned off. It is a subclass of :exc:`DatabaseError`." msgstr "" -#: ../Doc/library/sqlite3.rst:842 +#: ../Doc/library/sqlite3.rst:849 msgid "SQLite and Python types" msgstr "" -#: ../Doc/library/sqlite3.rst:846 +#: ../Doc/library/sqlite3.rst:853 msgid "Introduction" msgstr "Introduction" -#: ../Doc/library/sqlite3.rst:848 +#: ../Doc/library/sqlite3.rst:855 msgid "" "SQLite natively supports the following types: ``NULL``, ``INTEGER``, " "``REAL``, ``TEXT``, ``BLOB``." msgstr "" -#: ../Doc/library/sqlite3.rst:851 +#: ../Doc/library/sqlite3.rst:858 msgid "" "The following Python types can thus be sent to SQLite without any problem:" msgstr "" -#: ../Doc/library/sqlite3.rst:854 ../Doc/library/sqlite3.rst:871 +#: ../Doc/library/sqlite3.rst:861 ../Doc/library/sqlite3.rst:878 msgid "Python type" msgstr "Type Python" -#: ../Doc/library/sqlite3.rst:854 ../Doc/library/sqlite3.rst:871 +#: ../Doc/library/sqlite3.rst:861 ../Doc/library/sqlite3.rst:878 msgid "SQLite type" -msgstr "" +msgstr "SQLite type" -#: ../Doc/library/sqlite3.rst:856 ../Doc/library/sqlite3.rst:873 +#: ../Doc/library/sqlite3.rst:863 ../Doc/library/sqlite3.rst:880 msgid ":const:`None`" -msgstr "" +msgstr ":const:`None`" -#: ../Doc/library/sqlite3.rst:856 ../Doc/library/sqlite3.rst:873 +#: ../Doc/library/sqlite3.rst:863 ../Doc/library/sqlite3.rst:880 msgid "``NULL``" msgstr "``NULL``" -#: ../Doc/library/sqlite3.rst:858 ../Doc/library/sqlite3.rst:875 +#: ../Doc/library/sqlite3.rst:865 ../Doc/library/sqlite3.rst:882 msgid ":class:`int`" msgstr ":class:`int`" -#: ../Doc/library/sqlite3.rst:858 ../Doc/library/sqlite3.rst:875 +#: ../Doc/library/sqlite3.rst:865 ../Doc/library/sqlite3.rst:882 msgid "``INTEGER``" msgstr "``INTEGER``" -#: ../Doc/library/sqlite3.rst:860 ../Doc/library/sqlite3.rst:877 +#: ../Doc/library/sqlite3.rst:867 ../Doc/library/sqlite3.rst:884 msgid ":class:`float`" msgstr ":class:`float`" -#: ../Doc/library/sqlite3.rst:860 ../Doc/library/sqlite3.rst:877 +#: ../Doc/library/sqlite3.rst:867 ../Doc/library/sqlite3.rst:884 msgid "``REAL``" msgstr "``REAL``" -#: ../Doc/library/sqlite3.rst:862 +#: ../Doc/library/sqlite3.rst:869 msgid ":class:`str`" -msgstr "" +msgstr ":class:`str`" -#: ../Doc/library/sqlite3.rst:862 ../Doc/library/sqlite3.rst:879 +#: ../Doc/library/sqlite3.rst:869 ../Doc/library/sqlite3.rst:886 msgid "``TEXT``" msgstr "``TEXT``" -#: ../Doc/library/sqlite3.rst:864 ../Doc/library/sqlite3.rst:882 +#: ../Doc/library/sqlite3.rst:871 ../Doc/library/sqlite3.rst:889 msgid ":class:`bytes`" -msgstr "" +msgstr ":class:`bytes`" -#: ../Doc/library/sqlite3.rst:864 ../Doc/library/sqlite3.rst:882 +#: ../Doc/library/sqlite3.rst:871 ../Doc/library/sqlite3.rst:889 msgid "``BLOB``" msgstr "``BLOB``" -#: ../Doc/library/sqlite3.rst:868 +#: ../Doc/library/sqlite3.rst:875 msgid "This is how SQLite types are converted to Python types by default:" msgstr "" -#: ../Doc/library/sqlite3.rst:879 +#: ../Doc/library/sqlite3.rst:886 msgid "depends on :attr:`~Connection.text_factory`, :class:`str` by default" msgstr "" -#: ../Doc/library/sqlite3.rst:885 +#: ../Doc/library/sqlite3.rst:892 msgid "" "The type system of the :mod:`sqlite3` module is extensible in two ways: you " "can store additional Python types in a SQLite database via object " @@ -994,11 +1059,11 @@ msgid "" "to different Python types via converters." msgstr "" -#: ../Doc/library/sqlite3.rst:892 +#: ../Doc/library/sqlite3.rst:899 msgid "Using adapters to store additional Python types in SQLite databases" msgstr "" -#: ../Doc/library/sqlite3.rst:894 +#: ../Doc/library/sqlite3.rst:901 msgid "" "As described before, SQLite supports only a limited set of types natively. " "To use other Python types with SQLite, you must **adapt** them to one of the " @@ -1006,23 +1071,23 @@ msgid "" "str, bytes." msgstr "" -#: ../Doc/library/sqlite3.rst:899 +#: ../Doc/library/sqlite3.rst:906 msgid "" "There are two ways to enable the :mod:`sqlite3` module to adapt a custom " "Python type to one of the supported ones." msgstr "" -#: ../Doc/library/sqlite3.rst:904 +#: ../Doc/library/sqlite3.rst:911 msgid "Letting your object adapt itself" msgstr "" -#: ../Doc/library/sqlite3.rst:906 +#: ../Doc/library/sqlite3.rst:913 msgid "" "This is a good approach if you write the class yourself. Let's suppose you " "have a class like this::" msgstr "" -#: ../Doc/library/sqlite3.rst:913 +#: ../Doc/library/sqlite3.rst:920 msgid "" "Now you want to store the point in a single SQLite column. First you'll " "have to choose one of the supported types first to be used for representing " @@ -1032,18 +1097,18 @@ msgid "" "will be :class:`PrepareProtocol`." msgstr "" -#: ../Doc/library/sqlite3.rst:923 +#: ../Doc/library/sqlite3.rst:930 msgid "Registering an adapter callable" msgstr "" -#: ../Doc/library/sqlite3.rst:925 +#: ../Doc/library/sqlite3.rst:932 msgid "" "The other possibility is to create a function that converts the type to the " "string representation and register the function with :meth:" "`register_adapter`." msgstr "" -#: ../Doc/library/sqlite3.rst:930 +#: ../Doc/library/sqlite3.rst:937 msgid "" "The :mod:`sqlite3` module has two default adapters for Python's built-in :" "class:`datetime.date` and :class:`datetime.datetime` types. Now let's " @@ -1051,110 +1116,110 @@ msgid "" "representation, but as a Unix timestamp." msgstr "" -#: ../Doc/library/sqlite3.rst:939 +#: ../Doc/library/sqlite3.rst:946 msgid "Converting SQLite values to custom Python types" msgstr "" -#: ../Doc/library/sqlite3.rst:941 +#: ../Doc/library/sqlite3.rst:948 msgid "" "Writing an adapter lets you send custom Python types to SQLite. But to make " "it really useful we need to make the Python to SQLite to Python roundtrip " "work." msgstr "" -#: ../Doc/library/sqlite3.rst:944 +#: ../Doc/library/sqlite3.rst:951 msgid "Enter converters." msgstr "" -#: ../Doc/library/sqlite3.rst:946 +#: ../Doc/library/sqlite3.rst:953 msgid "" "Let's go back to the :class:`Point` class. We stored the x and y coordinates " "separated via semicolons as strings in SQLite." msgstr "" -#: ../Doc/library/sqlite3.rst:949 +#: ../Doc/library/sqlite3.rst:956 msgid "" "First, we'll define a converter function that accepts the string as a " "parameter and constructs a :class:`Point` object from it." msgstr "" -#: ../Doc/library/sqlite3.rst:954 +#: ../Doc/library/sqlite3.rst:961 msgid "" "Converter functions **always** get called with a :class:`bytes` object, no " "matter under which data type you sent the value to SQLite." msgstr "" -#: ../Doc/library/sqlite3.rst:963 +#: ../Doc/library/sqlite3.rst:970 msgid "" "Now you need to make the :mod:`sqlite3` module know that what you select " "from the database is actually a point. There are two ways of doing this:" msgstr "" -#: ../Doc/library/sqlite3.rst:966 +#: ../Doc/library/sqlite3.rst:973 msgid "Implicitly via the declared type" msgstr "" -#: ../Doc/library/sqlite3.rst:968 +#: ../Doc/library/sqlite3.rst:975 msgid "Explicitly via the column name" msgstr "" -#: ../Doc/library/sqlite3.rst:970 +#: ../Doc/library/sqlite3.rst:977 msgid "" "Both ways are described in section :ref:`sqlite3-module-contents`, in the " "entries for the constants :const:`PARSE_DECLTYPES` and :const:" "`PARSE_COLNAMES`." msgstr "" -#: ../Doc/library/sqlite3.rst:973 +#: ../Doc/library/sqlite3.rst:980 msgid "The following example illustrates both approaches." msgstr "" -#: ../Doc/library/sqlite3.rst:979 +#: ../Doc/library/sqlite3.rst:986 msgid "Default adapters and converters" msgstr "" -#: ../Doc/library/sqlite3.rst:981 +#: ../Doc/library/sqlite3.rst:988 msgid "" "There are default adapters for the date and datetime types in the datetime " "module. They will be sent as ISO dates/ISO timestamps to SQLite." msgstr "" -#: ../Doc/library/sqlite3.rst:984 +#: ../Doc/library/sqlite3.rst:991 msgid "" "The default converters are registered under the name \"date\" for :class:" "`datetime.date` and under the name \"timestamp\" for :class:`datetime." "datetime`." msgstr "" -#: ../Doc/library/sqlite3.rst:988 +#: ../Doc/library/sqlite3.rst:995 msgid "" "This way, you can use date/timestamps from Python without any additional " "fiddling in most cases. The format of the adapters is also compatible with " "the experimental SQLite date/time functions." msgstr "" -#: ../Doc/library/sqlite3.rst:992 +#: ../Doc/library/sqlite3.rst:999 msgid "The following example demonstrates this." msgstr "" -#: ../Doc/library/sqlite3.rst:996 +#: ../Doc/library/sqlite3.rst:1003 msgid "" "If a timestamp stored in SQLite has a fractional part longer than 6 numbers, " "its value will be truncated to microsecond precision by the timestamp " "converter." msgstr "" -#: ../Doc/library/sqlite3.rst:1004 +#: ../Doc/library/sqlite3.rst:1011 msgid "Controlling Transactions" msgstr "" -#: ../Doc/library/sqlite3.rst:1006 +#: ../Doc/library/sqlite3.rst:1013 msgid "" "The underlying ``sqlite3`` library operates in ``autocommit`` mode by " "default, but the Python :mod:`sqlite3` module by default does not." msgstr "" -#: ../Doc/library/sqlite3.rst:1009 +#: ../Doc/library/sqlite3.rst:1016 msgid "" "``autocommit`` mode means that statements that modify the database take " "effect immediately. A ``BEGIN`` or ``SAVEPOINT`` statement disables " @@ -1162,14 +1227,14 @@ msgid "" "ends the outermost transaction, turns ``autocommit`` mode back on." msgstr "" -#: ../Doc/library/sqlite3.rst:1014 +#: ../Doc/library/sqlite3.rst:1021 msgid "" "The Python :mod:`sqlite3` module by default issues a ``BEGIN`` statement " "implicitly before a Data Modification Language (DML) statement (i.e. " "``INSERT``/``UPDATE``/``DELETE``/``REPLACE``)." msgstr "" -#: ../Doc/library/sqlite3.rst:1018 +#: ../Doc/library/sqlite3.rst:1025 msgid "" "You can control which kind of ``BEGIN`` statements :mod:`sqlite3` implicitly " "executes via the *isolation_level* parameter to the :func:`connect` call, or " @@ -1179,7 +1244,7 @@ msgid "" "``EXCLUSIVE``." msgstr "" -#: ../Doc/library/sqlite3.rst:1025 +#: ../Doc/library/sqlite3.rst:1032 msgid "" "You can disable the :mod:`sqlite3` module's implicit transaction management " "by setting :attr:`isolation_level` to ``None``. This will leave the " @@ -1189,21 +1254,21 @@ msgid "" "code." msgstr "" -#: ../Doc/library/sqlite3.rst:1031 +#: ../Doc/library/sqlite3.rst:1038 msgid "" ":mod:`sqlite3` used to implicitly commit an open transaction before DDL " "statements. This is no longer the case." msgstr "" -#: ../Doc/library/sqlite3.rst:1037 +#: ../Doc/library/sqlite3.rst:1044 msgid "Using :mod:`sqlite3` efficiently" msgstr "" -#: ../Doc/library/sqlite3.rst:1041 +#: ../Doc/library/sqlite3.rst:1048 msgid "Using shortcut methods" msgstr "" -#: ../Doc/library/sqlite3.rst:1043 +#: ../Doc/library/sqlite3.rst:1050 msgid "" "Using the nonstandard :meth:`execute`, :meth:`executemany` and :meth:" "`executescript` methods of the :class:`Connection` object, your code can be " @@ -1215,42 +1280,42 @@ msgid "" "object." msgstr "" -#: ../Doc/library/sqlite3.rst:1055 +#: ../Doc/library/sqlite3.rst:1062 msgid "Accessing columns by name instead of by index" msgstr "" -#: ../Doc/library/sqlite3.rst:1057 +#: ../Doc/library/sqlite3.rst:1064 msgid "" "One useful feature of the :mod:`sqlite3` module is the built-in :class:" "`sqlite3.Row` class designed to be used as a row factory." msgstr "" -#: ../Doc/library/sqlite3.rst:1060 +#: ../Doc/library/sqlite3.rst:1067 msgid "" "Rows wrapped with this class can be accessed both by index (like tuples) and " "case-insensitively by name:" msgstr "" -#: ../Doc/library/sqlite3.rst:1067 +#: ../Doc/library/sqlite3.rst:1074 msgid "Using the connection as a context manager" msgstr "" -#: ../Doc/library/sqlite3.rst:1069 +#: ../Doc/library/sqlite3.rst:1076 msgid "" "Connection objects can be used as context managers that automatically commit " "or rollback transactions. In the event of an exception, the transaction is " "rolled back; otherwise, the transaction is committed:" msgstr "" -#: ../Doc/library/sqlite3.rst:1078 +#: ../Doc/library/sqlite3.rst:1085 msgid "Common issues" msgstr "" -#: ../Doc/library/sqlite3.rst:1081 +#: ../Doc/library/sqlite3.rst:1088 msgid "Multithreading" msgstr "Fils d'exécution" -#: ../Doc/library/sqlite3.rst:1083 +#: ../Doc/library/sqlite3.rst:1090 msgid "" "Older SQLite versions had issues with sharing connections between threads. " "That's why the Python module disallows sharing connections and cursors " @@ -1258,17 +1323,17 @@ msgid "" "runtime." msgstr "" -#: ../Doc/library/sqlite3.rst:1087 +#: ../Doc/library/sqlite3.rst:1094 msgid "" "The only exception is calling the :meth:`~Connection.interrupt` method, " "which only makes sense to call from a different thread." msgstr "" -#: ../Doc/library/sqlite3.rst:1091 +#: ../Doc/library/sqlite3.rst:1098 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/sqlite3.rst:1092 +#: ../Doc/library/sqlite3.rst:1099 msgid "" "The sqlite3 module is not built with loadable extension support by default, " "because some platforms (notably Mac OS X) have SQLite libraries which are " diff --git a/library/ssl.po b/library/ssl.po index 165ad96f2..1197e98ce 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-07-03 10:56+0200\n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2018-11-29 18:27+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/ssl.rst:2 msgid ":mod:`ssl` --- TLS/SSL wrapper for socket objects" -msgstr "" +msgstr ":mod:`ssl` — Emballage TLS/SSL pour les objets connecteurs" #: ../Doc/library/ssl.rst:10 msgid "**Source code:** :source:`Lib/ssl.py`" @@ -32,6 +32,13 @@ msgid "" "X, and probably additional platforms, as long as OpenSSL is installed on " "that platform." msgstr "" +"Ce module fournit un accès aux fonctions de chiffrement et " +"d'authentification entre pairs : « *Transport Layer Security* » (souvent " +"appelé « *Secure Sockets Layer* ») pour les connecteurs réseau, côté client " +"et côté serveur. Ce module utilise la bibliothèque OpenSSL. Il est " +"disponible sur tous les systèmes Unix modernes, Windows, Mac OS X et " +"probablement sur d'autres plates-formes, à condition qu'OpenSSL soit " +"installé sur cette plate-forme." #: ../Doc/library/ssl.rst:26 msgid "" @@ -40,6 +47,11 @@ msgid "" "cause variations in behavior. For example, TLSv1.1 and TLSv1.2 come with " "openssl version 1.0.1." msgstr "" +"Certains comportements peuvent dépendre de la plate-forme, car des appels " +"sont passés aux API de connexions du système d'exploitation. La version " +"installée de OpenSSL peut également entraîner des variations de " +"comportement. Par exemple, TLSv1.1 et TLSv1.2 sont livrés avec la version " +"1.0.1 de OpenSSL." #: ../Doc/library/ssl.rst:32 msgid "" @@ -47,6 +59,9 @@ msgid "" "lead to a false sense of security, as the default settings of the ssl module " "are not necessarily appropriate for your application." msgstr "" +"N’utilisez pas ce module sans lire :ref:`ssl-security`. Cela pourrait créer " +"un faux sentiment de sécurité, car les paramètres par défaut du module *ssl* " +"ne sont pas nécessairement appropriés pour votre application." #: ../Doc/library/ssl.rst:37 msgid "" @@ -54,6 +69,10 @@ msgid "" "more general information about TLS, SSL, and certificates, the reader is " "referred to the documents in the \"See Also\" section at the bottom." msgstr "" +"Cette section documente les objets et les fonctions du module ``ssl``. Pour " +"des informations plus générales sur TLS, SSL et les certificats, le lecteur " +"est prié de se référer aux documents de la section « Voir Aussi » au bas de " +"cette page." #: ../Doc/library/ssl.rst:41 msgid "" @@ -64,6 +83,13 @@ msgid "" "certificate of the other side of the connection, and :meth:`cipher`,which " "retrieves the cipher being used for the secure connection." msgstr "" +"Ce module fournit une classe :class:`ssl.SSLSocket`, dérivée du type :class:" +"`socket.socket`, ainsi qu'une enveloppe (*wrapper* en anglais) qui mime un " +"connecteur qui chiffre et déchiffre les données passant sur le connecteur " +"utilisant SSL. Il prend en charge des méthodes supplémentaires telles que :" +"meth:`getpeercert` qui récupère le certificat de l'autre coté de la " +"connexion et :meth:`cipher`, qui récupère le chiffrement utilisé pour la " +"connexion." #: ../Doc/library/ssl.rst:48 msgid "" @@ -71,24 +97,31 @@ msgid "" "manage settings and certificates, which can then be inherited by SSL sockets " "created through the :meth:`SSLContext.wrap_socket` method." msgstr "" +"Pour les applications plus sophistiquées, la classe :class:`ssl.SSLContext` " +"facilite la gestion des paramètres et des certificats, qui peuvent ensuite " +"être hérités par les connecteurs SSL créés via la méthode :meth:`SSLContext." +"wrap_socket`." #: ../Doc/library/ssl.rst:52 msgid "Updated to support linking with OpenSSL 1.1.0" -msgstr "" +msgstr "Mise à jour pour prendre en charge la liaison avec OpenSSL 1.1.0" #: ../Doc/library/ssl.rst:57 msgid "" "OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " "the future the ssl module will require at least OpenSSL 1.0.2 or 1.1.0." msgstr "" +"OpenSSL 0.9.8, 1.0.0 et 1.0.1 sont obsolètes et ne sont plus prises en " +"charge. Dans l'avenir, le module *ssl* nécessitera au minimum OpenSSL 1.0.2 " +"ou 1.1.0." #: ../Doc/library/ssl.rst:63 msgid "Functions, Constants, and Exceptions" -msgstr "" +msgstr "Fonctions, constantes et exceptions" #: ../Doc/library/ssl.rst:67 msgid "Socket creation" -msgstr "" +msgstr "Création de connecteurs" #: ../Doc/library/ssl.rst:69 msgid "" @@ -99,28 +132,39 @@ msgid "" "`wrap_socket` function is deprecated since it is both inefficient and has no " "support for server name indication (SNI) and hostname matching." msgstr "" +"Depuis Python 3.2 et 2.7.9, il est recommandé d'utiliser :meth:`SSLContext." +"wrap_socket` d'une instance :class:`SSLContext` pour encapsuler des " +"connecteurs en tant qu'objets :class:`SSLSocket`. Les fonctions auxiliaires :" +"func:`create_default_context` renvoient un nouveau contexte avec des " +"paramètres par défaut sécurisés. L'ancienne fonction :func:`wrap_socket` est " +"obsolète car elle est à la fois inefficace et ne prend pas en charge " +"l'indication de nom de serveur (SNI) et la vérification du nom de l'hôte." #: ../Doc/library/ssl.rst:77 msgid "Client socket example with default context and IPv4/IPv6 dual stack::" msgstr "" +"Exemple de connecteur client avec contexte par défaut et double pile IPv4/" +"IPv6 ::" #: ../Doc/library/ssl.rst:90 msgid "Client socket example with custom context and IPv4::" -msgstr "" +msgstr "Exemple de connecteur client avec contexte personnalisé et IPv4 ::" #: ../Doc/library/ssl.rst:102 msgid "Server socket example listening on localhost IPv4::" -msgstr "" +msgstr "Exemple de connecteur serveur à l'écoute sur IPv4 *localhost* ::" #: ../Doc/library/ssl.rst:116 msgid "Context creation" -msgstr "" +msgstr "Création de contexte" #: ../Doc/library/ssl.rst:118 msgid "" "A convenience function helps create :class:`SSLContext` objects for common " "purposes." msgstr "" +"Une fonction utilitaire permettant de créer facilement des objets :class:" +"`SSLContext` pour des usages classiques." #: ../Doc/library/ssl.rst:123 msgid "" @@ -129,6 +173,11 @@ msgid "" "represent a higher security level than when calling the :class:`SSLContext` " "constructor directly." msgstr "" +"Renvoie un nouvel objet :class:`SSLContext`. Le paramètre *purpose* permet " +"de choisir parmi un ensemble de paramètres par défaut en fonction de l'usage " +"souhaité. Les paramètres sont choisis par le module :mod:`ssl` et " +"représentent généralement un niveau de sécurité supérieur à celui utilisé " +"lorsque vous appelez directement le constructeur :class:`SSLContext`." #: ../Doc/library/ssl.rst:128 msgid "" @@ -137,6 +186,11 @@ msgid "" "If all three are :const:`None`, this function can choose to trust the " "system's default CA certificates instead." msgstr "" +"*cafile*, *capath*, *cadata* représentent des certificats d'autorité de " +"certification facultatifs approuvés pour la vérification de certificats, " +"comme dans :meth:`SSLContext.load_verify_locations`. Si les trois sont à :" +"const:`None`, cette fonction peut choisir de faire confiance aux certificats " +"d'autorité de certification par défaut du système." #: ../Doc/library/ssl.rst:134 msgid "" @@ -148,6 +202,15 @@ msgid "" "*cadata* is given) or uses :meth:`SSLContext.load_default_certs` to load " "default CA certificates." msgstr "" +"Les paramètres sont : :data:`PROTOCOL_TLS`, :data:`OP_NO_SSLv2` et :data:" +"`OP_NO_SSLv3` avec des algorithmes de chiffrement de grande robustesse, " +"n'utilisant pas RC4 et n'utilisant pas les suites cryptographiques sans " +"authentification. Passer :data:`~Purpose.SERVER_AUTH` en tant que *purpose* " +"définit :data:`~SSLContext.verify_mode` sur :data:`CERT_REQUIRED` et charge " +"les certificats de l'autorité de certification (lorsqu'au moins un des " +"paramètres *cafile*, *capath* ou *cadata* est renseigné) ou utilise :meth:" +"`SSLContext.load_default_certs` pour charger les certificats des autorités " +"de certification par défaut." #: ../Doc/library/ssl.rst:143 msgid "" @@ -155,12 +218,18 @@ msgid "" "restrictive values anytime without prior deprecation. The values represent " "a fair balance between compatibility and security." msgstr "" +"Le protocole, les options, l'algorithme de chiffrement et d'autres " +"paramètres peuvent changer pour des valeurs plus restrictives à tout moment " +"sans avertissement préalable. Les valeurs représentent un juste équilibre " +"entre compatibilité et sécurité." #: ../Doc/library/ssl.rst:147 msgid "" "If your application needs specific settings, you should create a :class:" "`SSLContext` and apply the settings yourself." msgstr "" +"Si votre application nécessite des paramètres spécifiques, vous devez créer " +"une classe :class:`SSLContext` et appliquer les paramètres vous-même." #: ../Doc/library/ssl.rst:151 msgid "" @@ -172,18 +241,32 @@ msgid "" "org/wiki/POODLE>`_. If you still wish to continue to use this function but " "still allow SSL 3.0 connections you can re-enable them using::" msgstr "" +"Si vous constatez que, lorsque certains clients ou serveurs plus anciens " +"tentent de se connecter avec une classe :class:`SSLContext` créée par cette " +"fonction, une erreur indiquant « *Protocol or cipher suite " +"mismatch* » (« Non concordance de protocole ou d'algorithme de " +"chiffrement ») est détectée, il se peut qu'ils ne prennent en charge que SSL " +"3.0 que cette fonction exclut en utilisant :data:`OP_NO_SSLv3`. SSL3.0 est " +"notoirement considéré comme `totalement déficient `_. Si vous souhaitez toujours continuer à utiliser cette " +"fonction tout en autorisant les connexions SSL 3.0, vous pouvez les " +"réactiver à l'aide de ::" #: ../Doc/library/ssl.rst:167 msgid "RC4 was dropped from the default cipher string." msgstr "" +"RC4 a été supprimé de la liste des algorithmes de chiffrement par défaut." #: ../Doc/library/ssl.rst:171 msgid "ChaCha20/Poly1305 was added to the default cipher string." msgstr "" +"*ChaCha20*/*Poly1305* a été ajouté à la liste des algorithmes de chiffrement " +"par défaut." #: ../Doc/library/ssl.rst:173 msgid "3DES was dropped from the default cipher string." msgstr "" +"*3DES* a été supprimé de la liste des algorithmes de chiffrement par défaut." #: ../Doc/library/ssl.rst:177 msgid "Exceptions" @@ -198,10 +281,16 @@ msgid "" "The error code and message of :exc:`SSLError` instances are provided by the " "OpenSSL library." msgstr "" +"Levée pour signaler une erreur de l'implémentation SSL sous-jacente " +"(actuellement fournie par la bibliothèque OpenSSL). Cela signifie qu'un " +"problème est apparu dans la couche d'authentification et de chiffrement de " +"niveau supérieur qui s'appuie sur la connexion réseau sous-jacente. Cette " +"erreur est un sous-type de :exc:`OSError`. Le code d'erreur et le message " +"des instances de :exc:`SSLError` sont fournis par la bibliothèque OpenSSL." #: ../Doc/library/ssl.rst:188 msgid ":exc:`SSLError` used to be a subtype of :exc:`socket.error`." -msgstr "" +msgstr ":exc:`SSLError` était un sous-type de :exc:`socket.error`." #: ../Doc/library/ssl.rst:193 msgid "" @@ -209,6 +298,9 @@ msgid "" "occurred, such as ``SSL``, ``PEM`` or ``X509``. The range of possible " "values depends on the OpenSSL version." msgstr "" +"Une chaîne de caractères mnémonique désignant le sous-module OpenSSL dans " +"lequel l'erreur s'est produite, telle que ``SSL``, ``PEM`` ou ``X509``. " +"L'étendue des valeurs possibles dépend de la version d'OpenSSL." #: ../Doc/library/ssl.rst:201 msgid "" @@ -230,6 +322,10 @@ msgid "" "nonblocking>` when trying to read or write data, but more data needs to be " "received on the underlying TCP transport before the request can be fulfilled." msgstr "" +"Sous-classe de :exc:`SSLError` levée par un connecteur :ref:`SSL non " +"bloquant ` lors d'une tentative de lecture ou d'écriture de " +"données, alors que davantage de données doivent être reçues sur la couche " +"TCP sous-jacente avant que la demande puisse être satisfaite." #: ../Doc/library/ssl.rst:226 msgid "" @@ -344,7 +440,9 @@ msgid "" msgstr "" #: ../Doc/library/ssl.rst:331 -msgid "Availability: not available with LibreSSL and OpenSSL > 1.1.0" +msgid "" +":ref:`Availability `: not available with LibreSSL and OpenSSL " +"> 1.1.0." msgstr "" #: ../Doc/library/ssl.rst:335 @@ -502,10 +600,10 @@ msgstr "" msgid ":attr:`openssl_capath` - hard coded path to a capath directory" msgstr "" -#: ../Doc/library/ssl.rst:463 +#: ../Doc/library/ssl.rst:465 msgid "" -"Availability: LibreSSL ignores the environment vars :attr:" -"`openssl_cafile_env` and :attr:`openssl_capath_env`" +":ref:`Availability `: LibreSSL ignores the environment vars :" +"attr:`openssl_cafile_env` and :attr:`openssl_capath_env`." msgstr "" #: ../Doc/library/ssl.rst:470 @@ -524,14 +622,14 @@ msgid "" "exactly ``True`` if the certificate is trustworthy for all purposes." msgstr "" -#: ../Doc/library/ssl.rst:481 ../Doc/library/ssl.rst:1545 -#: ../Doc/library/ssl.rst:1858 +#: ../Doc/library/ssl.rst:481 ../Doc/library/ssl.rst:1565 +#: ../Doc/library/ssl.rst:1878 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/ssl.rst:487 ../Doc/library/ssl.rst:502 -msgid "Availability: Windows." -msgstr "Disponibilité : Windows." +#: ../Doc/library/ssl.rst:488 ../Doc/library/ssl.rst:503 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." #: ../Doc/library/ssl.rst:493 msgid "" @@ -603,7 +701,7 @@ msgid "" "does not send any for client cert authentication." msgstr "" -#: ../Doc/library/ssl.rst:552 ../Doc/library/ssl.rst:2226 +#: ../Doc/library/ssl.rst:552 ../Doc/library/ssl.rst:2272 msgid "See the discussion of :ref:`ssl-security` below." msgstr "" @@ -1410,6 +1508,33 @@ msgstr "" #: ../Doc/library/ssl.rst:1319 msgid "" +"Requests post-handshake authentication (PHA) from a TLS 1.3 client. PHA can " +"only be initiated for a TLS 1.3 connection from a server-side socket, after " +"the initial TLS handshake and with PHA enabled on both sides, see :attr:" +"`SSLContext.post_handshake_auth`." +msgstr "" + +#: ../Doc/library/ssl.rst:1324 +msgid "" +"The method does not perform a cert exchange immediately. The server-side " +"sends a CertificateRequest during the next write event and expects the " +"client to respond with a certificate on the next read event." +msgstr "" + +#: ../Doc/library/ssl.rst:1328 +msgid "" +"If any precondition isn't met (e.g. not TLS 1.3, PHA not enabled), an :exc:" +"`SSLError` is raised." +msgstr "" + +#: ../Doc/library/ssl.rst:1332 +msgid "" +"Only available with OpenSSL 1.1.1 and TLS 1.3 enabled. Without TLS 1.3 " +"support, the method raises :exc:`NotImplementedError`." +msgstr "" + +#: ../Doc/library/ssl.rst:1339 +msgid "" "Return the actual SSL protocol version negotiated by the connection as a " "string, or ``None`` is no secure connection is established. As of this " "writing, possible return values include ``\"SSLv2\"``, ``\"SSLv3\"``, ``" @@ -1417,13 +1542,13 @@ msgid "" "may define more return values." msgstr "" -#: ../Doc/library/ssl.rst:1329 +#: ../Doc/library/ssl.rst:1349 msgid "" "Returns the number of already decrypted bytes available for read, pending on " "the connection." msgstr "" -#: ../Doc/library/ssl.rst:1334 +#: ../Doc/library/ssl.rst:1354 msgid "" "The :class:`SSLContext` object this SSL socket is tied to. If the SSL " "socket was created using the deprecated :func:`wrap_socket` function (rather " @@ -1431,19 +1556,19 @@ msgid "" "created for this SSL socket." msgstr "" -#: ../Doc/library/ssl.rst:1343 +#: ../Doc/library/ssl.rst:1363 msgid "" "A boolean which is ``True`` for server-side sockets and ``False`` for client-" "side sockets." msgstr "" -#: ../Doc/library/ssl.rst:1350 +#: ../Doc/library/ssl.rst:1370 msgid "" "Hostname of the server: :class:`str` type, or ``None`` for server-side " "socket or if the hostname was not specified in the constructor." msgstr "" -#: ../Doc/library/ssl.rst:1355 +#: ../Doc/library/ssl.rst:1375 msgid "" "The attribute is now always ASCII text. When ``server_hostname`` is an " "internationalized domain name (IDN), this attribute now stores the A-label " @@ -1451,7 +1576,7 @@ msgid "" "org\"``)." msgstr "" -#: ../Doc/library/ssl.rst:1363 +#: ../Doc/library/ssl.rst:1383 msgid "" "The :class:`SSLSession` for this SSL connection. The session is available " "for client and server side sockets after the TLS handshake has been " @@ -1459,11 +1584,11 @@ msgid "" "`~SSLSocket.do_handshake` has been called to reuse a session." msgstr "" -#: ../Doc/library/ssl.rst:1376 +#: ../Doc/library/ssl.rst:1396 msgid "SSL Contexts" msgstr "" -#: ../Doc/library/ssl.rst:1380 +#: ../Doc/library/ssl.rst:1400 msgid "" "An SSL context holds various data longer-lived than single SSL connections, " "such as SSL configuration options, certificate(s) and private key(s). It " @@ -1471,7 +1596,7 @@ msgid "" "speed up repeated connections from the same clients." msgstr "" -#: ../Doc/library/ssl.rst:1387 +#: ../Doc/library/ssl.rst:1407 msgid "" "Create a new SSL context. You may pass *protocol* which must be one of the " "``PROTOCOL_*`` constants defined in this module. The parameter specifies " @@ -1482,109 +1607,109 @@ msgid "" "provides the most compatibility with other versions." msgstr "" -#: ../Doc/library/ssl.rst:1396 +#: ../Doc/library/ssl.rst:1416 msgid "" "Here's a table showing which versions in a client (down the side) can " "connect to which versions in a server (along the top):" msgstr "" -#: ../Doc/library/ssl.rst:1402 +#: ../Doc/library/ssl.rst:1422 msgid "*client* / **server**" msgstr "" -#: ../Doc/library/ssl.rst:1402 +#: ../Doc/library/ssl.rst:1422 msgid "**SSLv2**" msgstr "**SSLv2**" -#: ../Doc/library/ssl.rst:1402 +#: ../Doc/library/ssl.rst:1422 msgid "**SSLv3**" msgstr "**SSLv3**" -#: ../Doc/library/ssl.rst:1402 +#: ../Doc/library/ssl.rst:1422 msgid "**TLS** [3]_" msgstr "**TLS** [3]_" -#: ../Doc/library/ssl.rst:1402 +#: ../Doc/library/ssl.rst:1422 msgid "**TLSv1**" msgstr "**TLSv1**" -#: ../Doc/library/ssl.rst:1402 +#: ../Doc/library/ssl.rst:1422 msgid "**TLSv1.1**" msgstr "**TLSv1.1**" -#: ../Doc/library/ssl.rst:1402 +#: ../Doc/library/ssl.rst:1422 msgid "**TLSv1.2**" msgstr "**TLSv1.2**" -#: ../Doc/library/ssl.rst:1404 +#: ../Doc/library/ssl.rst:1424 msgid "*SSLv2*" msgstr "*SSLv2*" -#: ../Doc/library/ssl.rst:1404 ../Doc/library/ssl.rst:1405 -#: ../Doc/library/ssl.rst:1406 ../Doc/library/ssl.rst:1407 -#: ../Doc/library/ssl.rst:1408 ../Doc/library/ssl.rst:1409 +#: ../Doc/library/ssl.rst:1424 ../Doc/library/ssl.rst:1425 +#: ../Doc/library/ssl.rst:1426 ../Doc/library/ssl.rst:1427 +#: ../Doc/library/ssl.rst:1428 ../Doc/library/ssl.rst:1429 msgid "yes" msgstr "oui" -#: ../Doc/library/ssl.rst:1404 ../Doc/library/ssl.rst:1405 -#: ../Doc/library/ssl.rst:1407 ../Doc/library/ssl.rst:1408 -#: ../Doc/library/ssl.rst:1409 +#: ../Doc/library/ssl.rst:1424 ../Doc/library/ssl.rst:1425 +#: ../Doc/library/ssl.rst:1427 ../Doc/library/ssl.rst:1428 +#: ../Doc/library/ssl.rst:1429 msgid "no" msgstr "non" -#: ../Doc/library/ssl.rst:1404 ../Doc/library/ssl.rst:1406 +#: ../Doc/library/ssl.rst:1424 ../Doc/library/ssl.rst:1426 msgid "no [1]_" msgstr "" -#: ../Doc/library/ssl.rst:1405 +#: ../Doc/library/ssl.rst:1425 msgid "*SSLv3*" msgstr "*SSLv3*" -#: ../Doc/library/ssl.rst:1405 ../Doc/library/ssl.rst:1406 +#: ../Doc/library/ssl.rst:1425 ../Doc/library/ssl.rst:1426 msgid "no [2]_" msgstr "" -#: ../Doc/library/ssl.rst:1406 +#: ../Doc/library/ssl.rst:1426 msgid "*TLS* (*SSLv23*) [3]_" msgstr "" -#: ../Doc/library/ssl.rst:1407 +#: ../Doc/library/ssl.rst:1427 msgid "*TLSv1*" msgstr "*TLSv1*" -#: ../Doc/library/ssl.rst:1408 +#: ../Doc/library/ssl.rst:1428 msgid "*TLSv1.1*" msgstr "*TLSv1.1*" -#: ../Doc/library/ssl.rst:1409 +#: ../Doc/library/ssl.rst:1429 msgid "*TLSv1.2*" msgstr "*TLSv1.2*" -#: ../Doc/library/ssl.rst:1412 +#: ../Doc/library/ssl.rst:1432 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/ssl.rst:1413 +#: ../Doc/library/ssl.rst:1433 msgid ":class:`SSLContext` disables SSLv2 with :data:`OP_NO_SSLv2` by default." msgstr "" -#: ../Doc/library/ssl.rst:1414 +#: ../Doc/library/ssl.rst:1434 msgid ":class:`SSLContext` disables SSLv3 with :data:`OP_NO_SSLv3` by default." msgstr "" -#: ../Doc/library/ssl.rst:1415 +#: ../Doc/library/ssl.rst:1435 msgid "" "TLS 1.3 protocol will be available with :data:`PROTOCOL_TLS` in OpenSSL >= " "1.1.1. There is no dedicated PROTOCOL constant for just TLS 1.3." msgstr "" -#: ../Doc/library/ssl.rst:1420 +#: ../Doc/library/ssl.rst:1440 msgid "" ":func:`create_default_context` lets the :mod:`ssl` module choose security " "settings for a given purpose." msgstr "" -#: ../Doc/library/ssl.rst:1425 +#: ../Doc/library/ssl.rst:1445 msgid "" "The context is created with secure default values. The options :data:" "`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:" @@ -1595,22 +1720,22 @@ msgid "" "for :data:`PROTOCOL_SSLv2`)." msgstr "" -#: ../Doc/library/ssl.rst:1435 +#: ../Doc/library/ssl.rst:1455 msgid ":class:`SSLContext` objects have the following methods and attributes:" msgstr "" -#: ../Doc/library/ssl.rst:1439 +#: ../Doc/library/ssl.rst:1459 msgid "" "Get statistics about quantities of loaded X.509 certificates, count of X.509 " "certificates flagged as CA certificates and certificate revocation lists as " "dictionary." msgstr "" -#: ../Doc/library/ssl.rst:1443 +#: ../Doc/library/ssl.rst:1463 msgid "Example for a context with one CA cert and one other cert::" msgstr "" -#: ../Doc/library/ssl.rst:1453 +#: ../Doc/library/ssl.rst:1473 msgid "" "Load a private key and the corresponding certificate. The *certfile* string " "must be the path to a single file in PEM format containing the certificate " @@ -1622,7 +1747,7 @@ msgid "" "*certfile*." msgstr "" -#: ../Doc/library/ssl.rst:1462 +#: ../Doc/library/ssl.rst:1482 msgid "" "The *password* argument may be a function to call to get the password for " "decrypting the private key. It will only be called if the private key is " @@ -1634,24 +1759,24 @@ msgid "" "encrypted and no password is needed." msgstr "" -#: ../Doc/library/ssl.rst:1471 +#: ../Doc/library/ssl.rst:1491 msgid "" "If the *password* argument is not specified and a password is required, " "OpenSSL's built-in password prompting mechanism will be used to " "interactively prompt the user for a password." msgstr "" -#: ../Doc/library/ssl.rst:1475 +#: ../Doc/library/ssl.rst:1495 msgid "" "An :class:`SSLError` is raised if the private key doesn't match with the " "certificate." msgstr "" -#: ../Doc/library/ssl.rst:1478 +#: ../Doc/library/ssl.rst:1498 msgid "New optional argument *password*." msgstr "" -#: ../Doc/library/ssl.rst:1483 +#: ../Doc/library/ssl.rst:1503 msgid "" "Load a set of default \"certification authority\" (CA) certificates from " "default locations. On Windows it loads CA certs from the ``CA`` and ``ROOT`` " @@ -1660,7 +1785,7 @@ msgid "" "from other locations, too." msgstr "" -#: ../Doc/library/ssl.rst:1489 +#: ../Doc/library/ssl.rst:1509 msgid "" "The *purpose* flag specifies what kind of CA certificates are loaded. The " "default settings :data:`Purpose.SERVER_AUTH` loads certificates, that are " @@ -1669,28 +1794,28 @@ msgid "" "certificate verification on the server side." msgstr "" -#: ../Doc/library/ssl.rst:1499 +#: ../Doc/library/ssl.rst:1519 msgid "" "Load a set of \"certification authority\" (CA) certificates used to validate " "other peers' certificates when :data:`verify_mode` is other than :data:" "`CERT_NONE`. At least one of *cafile* or *capath* must be specified." msgstr "" -#: ../Doc/library/ssl.rst:1503 +#: ../Doc/library/ssl.rst:1523 msgid "" "This method can also load certification revocation lists (CRLs) in PEM or " "DER format. In order to make use of CRLs, :attr:`SSLContext.verify_flags` " "must be configured properly." msgstr "" -#: ../Doc/library/ssl.rst:1507 +#: ../Doc/library/ssl.rst:1527 msgid "" "The *cafile* string, if present, is the path to a file of concatenated CA " "certificates in PEM format. See the discussion of :ref:`ssl-certificates` " "for more information about how to arrange the certificates in this file." msgstr "" -#: ../Doc/library/ssl.rst:1512 +#: ../Doc/library/ssl.rst:1532 msgid "" "The *capath* string, if present, is the path to a directory containing " "several CA certificates in PEM format, following an `OpenSSL specific layout " @@ -1698,7 +1823,7 @@ msgid "" "html>`_." msgstr "" -#: ../Doc/library/ssl.rst:1517 +#: ../Doc/library/ssl.rst:1537 msgid "" "The *cadata* object, if present, is either an ASCII string of one or more " "PEM-encoded certificates or a :term:`bytes-like object` of DER-encoded " @@ -1706,11 +1831,11 @@ msgid "" "are ignored but at least one certificate must be present." msgstr "" -#: ../Doc/library/ssl.rst:1522 +#: ../Doc/library/ssl.rst:1542 msgid "New optional argument *cadata*" msgstr "" -#: ../Doc/library/ssl.rst:1527 +#: ../Doc/library/ssl.rst:1547 msgid "" "Get a list of loaded \"certification authority\" (CA) certificates. If the " "``binary_form`` parameter is :const:`False` each list entry is a dict like " @@ -1720,27 +1845,27 @@ msgid "" "a SSL connection." msgstr "" -#: ../Doc/library/ssl.rst:1535 +#: ../Doc/library/ssl.rst:1555 msgid "" "Certificates in a capath directory aren't loaded unless they have been used " "at least once." msgstr "" -#: ../Doc/library/ssl.rst:1542 +#: ../Doc/library/ssl.rst:1562 msgid "" "Get a list of enabled ciphers. The list is in order of cipher priority. See :" "meth:`SSLContext.set_ciphers`." msgstr "" -#: ../Doc/library/ssl.rst:1565 +#: ../Doc/library/ssl.rst:1585 msgid "On OpenSSL 1.1 and newer the cipher dict contains additional fields::" msgstr "" -#: ../Doc/library/ssl.rst:1593 -msgid "Availability: OpenSSL 1.0.2+" +#: ../Doc/library/ssl.rst:1614 +msgid ":ref:`Availability `: OpenSSL 1.0.2+." msgstr "" -#: ../Doc/library/ssl.rst:1599 +#: ../Doc/library/ssl.rst:1619 msgid "" "Load a set of default \"certification authority\" (CA) certificates from a " "filesystem path defined when building the OpenSSL library. Unfortunately, " @@ -1750,7 +1875,7 @@ msgid "" "configured properly." msgstr "" -#: ../Doc/library/ssl.rst:1608 +#: ../Doc/library/ssl.rst:1628 msgid "" "Set the available ciphers for sockets created with this context. It should " "be a string in the `OpenSSL cipher list format `_" msgstr "" -#: ../Doc/library/ssl.rst:1746 +#: ../Doc/library/ssl.rst:1766 msgid "Vincent Bernat." msgstr "" -#: ../Doc/library/ssl.rst:1752 +#: ../Doc/library/ssl.rst:1772 msgid "" "Wrap an existing Python socket *sock* and return an instance of :attr:" "`SSLContext.sslsocket_class` (default :class:`SSLSocket`). The returned SSL " @@ -1946,13 +2071,13 @@ msgid "" "a :data:`~socket.SOCK_STREAM` socket; other socket types are unsupported." msgstr "" -#: ../Doc/library/ssl.rst:1758 +#: ../Doc/library/ssl.rst:1778 msgid "" "The parameter ``server_side`` is a boolean which identifies whether server-" "side or client-side behavior is desired from this socket." msgstr "" -#: ../Doc/library/ssl.rst:1761 +#: ../Doc/library/ssl.rst:1781 msgid "" "For client-side sockets, the context construction is lazy; if the underlying " "socket isn't connected yet, the context construction will be performed " @@ -1963,7 +2088,7 @@ msgid "" "exc:`SSLError`." msgstr "" -#: ../Doc/library/ssl.rst:1769 +#: ../Doc/library/ssl.rst:1789 msgid "" "On client connections, the optional parameter *server_hostname* specifies " "the hostname of the service which we are connecting to. This allows a " @@ -1972,7 +2097,7 @@ msgid "" "*server_hostname* will raise a :exc:`ValueError` if *server_side* is true." msgstr "" -#: ../Doc/library/ssl.rst:1775 +#: ../Doc/library/ssl.rst:1795 msgid "" "The parameter ``do_handshake_on_connect`` specifies whether to do the SSL " "handshake automatically after doing a :meth:`socket.connect`, or whether the " @@ -1982,7 +2107,7 @@ msgid "" "socket I/O involved in the handshake." msgstr "" -#: ../Doc/library/ssl.rst:1782 +#: ../Doc/library/ssl.rst:1802 msgid "" "The parameter ``suppress_ragged_eofs`` specifies how the :meth:`SSLSocket." "recv` method should signal unexpected EOF from the other end of the " @@ -1992,34 +2117,34 @@ msgid "" "exceptions back to the caller." msgstr "" -#: ../Doc/library/ssl.rst:1789 +#: ../Doc/library/ssl.rst:1809 msgid "*session*, see :attr:`~SSLSocket.session`." msgstr "" -#: ../Doc/library/ssl.rst:1791 +#: ../Doc/library/ssl.rst:1811 msgid "" "Always allow a server_hostname to be passed, even if OpenSSL does not have " "SNI." msgstr "" -#: ../Doc/library/ssl.rst:1795 ../Doc/library/ssl.rst:1821 +#: ../Doc/library/ssl.rst:1815 ../Doc/library/ssl.rst:1841 msgid "*session* argument was added." msgstr "" -#: ../Doc/library/ssl.rst:1798 +#: ../Doc/library/ssl.rst:1818 msgid "" "The method returns on instance of :attr:`SSLContext.sslsocket_class` instead " "of hard-coded :class:`SSLSocket`." msgstr "" -#: ../Doc/library/ssl.rst:1804 +#: ../Doc/library/ssl.rst:1824 msgid "" "The return type of :meth:`SSLContext.wrap_sockets`, defaults to :class:" "`SSLSocket`. The attribute can be overridden on instance of class in order " "to return a custom subclass of :class:`SSLSocket`." msgstr "" -#: ../Doc/library/ssl.rst:1813 +#: ../Doc/library/ssl.rst:1833 msgid "" "Wrap the BIO objects *incoming* and *outgoing* and return an instance of " "attr:`SSLContext.sslobject_class` (default :class:`SSLObject`). The SSL " @@ -2027,26 +2152,26 @@ msgid "" "outgoing BIO." msgstr "" -#: ../Doc/library/ssl.rst:1818 +#: ../Doc/library/ssl.rst:1838 msgid "" "The *server_side*, *server_hostname* and *session* parameters have the same " "meaning as in :meth:`SSLContext.wrap_socket`." msgstr "" -#: ../Doc/library/ssl.rst:1824 +#: ../Doc/library/ssl.rst:1844 msgid "" "The method returns on instance of :attr:`SSLContext.sslobject_class` instead " "of hard-coded :class:`SSLObject`." msgstr "" -#: ../Doc/library/ssl.rst:1830 +#: ../Doc/library/ssl.rst:1850 msgid "" "The return type of :meth:`SSLContext.wrap_bio`, defaults to :class:" "`SSLObject`. The attribute can be overridden on instance of class in order " "to return a custom subclass of :class:`SSLObject`." msgstr "" -#: ../Doc/library/ssl.rst:1838 +#: ../Doc/library/ssl.rst:1858 msgid "" "Get statistics about the SSL sessions created or managed by this context. A " "dictionary is returned which maps the names of each `piece of information " @@ -2055,7 +2180,7 @@ msgid "" "misses in the session cache since the context was created::" msgstr "" -#: ../Doc/library/ssl.rst:1849 +#: ../Doc/library/ssl.rst:1869 msgid "" "Whether to match the peer cert's hostname with :func:`match_hostname` in :" "meth:`SSLSocket.do_handshake`. The context's :attr:`~SSLContext.verify_mode` " @@ -2067,7 +2192,7 @@ msgid "" "enabled." msgstr "" -#: ../Doc/library/ssl.rst:1875 +#: ../Doc/library/ssl.rst:1895 msgid "" ":attr:`~SSLContext.verify_mode` is now automatically changed to :data:" "`CERT_REQUIRED` when hostname checking is enabled and :attr:`~SSLContext." @@ -2075,11 +2200,11 @@ msgid "" "failed with a :exc:`ValueError`." msgstr "" -#: ../Doc/library/ssl.rst:1882 +#: ../Doc/library/ssl.rst:1902 msgid "This features requires OpenSSL 0.9.8f or newer." msgstr "" -#: ../Doc/library/ssl.rst:1886 +#: ../Doc/library/ssl.rst:1906 msgid "" "A :class:`TLSVersion` enum member representing the highest supported TLS " "version. The value defaults to :attr:`TLSVersion.MAXIMUM_SUPPORTED`. The " @@ -2087,7 +2212,7 @@ msgid "" "`PROTOCOL_TLS_CLIENT`, and :attr:`PROTOCOL_TLS_SERVER`." msgstr "" -#: ../Doc/library/ssl.rst:1891 +#: ../Doc/library/ssl.rst:1911 msgid "" "The attributes :attr:`~SSLContext.maximum_version`, :attr:`~SSLContext." "minimum_version` and :attr:`SSLContext.options` all affect the supported SSL " @@ -2097,54 +2222,82 @@ msgid "" "`TLSVersion.TLSv1_2` will not be able to establish a TLS 1.2 connection." msgstr "" -#: ../Doc/library/ssl.rst:1902 ../Doc/library/ssl.rst:1912 +#: ../Doc/library/ssl.rst:1922 ../Doc/library/ssl.rst:1934 msgid "" "This attribute is not available unless the ssl module is compiled with " "OpenSSL 1.1.0g or newer." msgstr "" -#: ../Doc/library/ssl.rst:1907 +#: ../Doc/library/ssl.rst:1929 msgid "" "Like :attr:`SSLContext.maximum_version` except it is the lowest supported " "version or :attr:`TLSVersion.MINIMUM_SUPPORTED`." msgstr "" -#: ../Doc/library/ssl.rst:1917 +#: ../Doc/library/ssl.rst:1941 msgid "" "An integer representing the set of SSL options enabled on this context. The " "default value is :data:`OP_ALL`, but you can specify other options such as :" "data:`OP_NO_SSLv2` by ORing them together." msgstr "" -#: ../Doc/library/ssl.rst:1922 +#: ../Doc/library/ssl.rst:1946 msgid "" "With versions of OpenSSL older than 0.9.8m, it is only possible to set " "options, not to clear them. Attempting to clear an option (by resetting the " -"corresponding bits) will raise a ``ValueError``." +"corresponding bits) will raise a :exc:`ValueError`." msgstr "" -#: ../Doc/library/ssl.rst:1926 +#: ../Doc/library/ssl.rst:1950 msgid ":attr:`SSLContext.options` returns :class:`Options` flags:" msgstr "" -#: ../Doc/library/ssl.rst:1934 +#: ../Doc/library/ssl.rst:1958 +msgid "" +"Enable TLS 1.3 post-handshake client authentication. Post-handshake auth is " +"disabled by default and a server can only request a TLS client certificate " +"during the initial handshake. When enabled, a server may request a TLS " +"client certificate at any time after the handshake." +msgstr "" + +#: ../Doc/library/ssl.rst:1963 +msgid "" +"When enabled on client-side sockets, the client signals the server that it " +"supports post-handshake authentication." +msgstr "" + +#: ../Doc/library/ssl.rst:1966 +msgid "" +"When enabled on server-side sockets, :attr:`SSLContext.verify_mode` must be " +"set to :data:`CERT_OPTIONAL` or :data:`CERT_REQUIRED`, too. The actual " +"client cert exchange is delayed until :meth:`SSLSocket." +"verify_client_post_handshake` is called and some I/O is performed." +msgstr "" + +#: ../Doc/library/ssl.rst:1973 +msgid "" +"Only available with OpenSSL 1.1.1 and TLS 1.3 enabled. Without TLS 1.3 " +"support, the property value is None and can't be modified" +msgstr "" + +#: ../Doc/library/ssl.rst:1980 msgid "" "The protocol version chosen when constructing the context. This attribute " "is read-only." msgstr "" -#: ../Doc/library/ssl.rst:1939 +#: ../Doc/library/ssl.rst:1985 msgid "" "Whether :attr:`~SSLContext.check_hostname` falls back to verify the cert's " "subject common name in the absence of a subject alternative name extension " "(default: true)." msgstr "" -#: ../Doc/library/ssl.rst:1946 +#: ../Doc/library/ssl.rst:1990 msgid "Only writeable with OpenSSL 1.1.0 or higher." msgstr "" -#: ../Doc/library/ssl.rst:1950 +#: ../Doc/library/ssl.rst:1996 msgid "" "The flags for certificate verification operations. You can set flags like :" "data:`VERIFY_CRL_CHECK_LEAF` by ORing them together. By default OpenSSL does " @@ -2152,26 +2305,26 @@ msgid "" "only with openssl version 0.9.8+." msgstr "" -#: ../Doc/library/ssl.rst:1957 +#: ../Doc/library/ssl.rst:2003 msgid ":attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:" msgstr "" -#: ../Doc/library/ssl.rst:1965 +#: ../Doc/library/ssl.rst:2011 msgid "" "Whether to try to verify other peers' certificates and how to behave if " "verification fails. This attribute must be one of :data:`CERT_NONE`, :data:" "`CERT_OPTIONAL` or :data:`CERT_REQUIRED`." msgstr "" -#: ../Doc/library/ssl.rst:1969 +#: ../Doc/library/ssl.rst:2015 msgid ":attr:`SSLContext.verify_mode` returns :class:`VerifyMode` enum:" msgstr "" -#: ../Doc/library/ssl.rst:1982 +#: ../Doc/library/ssl.rst:2028 msgid "Certificates" msgstr "" -#: ../Doc/library/ssl.rst:1984 +#: ../Doc/library/ssl.rst:2030 msgid "" "Certificates in general are part of a public-key / private-key system. In " "this system, each *principal*, (which may be a machine, or a person, or an " @@ -2182,7 +2335,7 @@ msgid "" "other part, and **only** with the other part." msgstr "" -#: ../Doc/library/ssl.rst:1992 +#: ../Doc/library/ssl.rst:2038 msgid "" "A certificate contains information about two principals. It contains the " "name of a *subject*, and the subject's public key. It also contains a " @@ -2196,7 +2349,7 @@ msgid "" "as two fields, called \"notBefore\" and \"notAfter\"." msgstr "" -#: ../Doc/library/ssl.rst:2002 +#: ../Doc/library/ssl.rst:2048 msgid "" "In the Python use of certificates, a client or server can use a certificate " "to prove who they are. The other side of a network connection can also be " @@ -2209,18 +2362,18 @@ msgid "" "take place." msgstr "" -#: ../Doc/library/ssl.rst:2012 +#: ../Doc/library/ssl.rst:2058 msgid "" "Python uses files to contain certificates. They should be formatted as \"PEM" "\" (see :rfc:`1422`), which is a base-64 encoded form wrapped with a header " "line and a footer line::" msgstr "" -#: ../Doc/library/ssl.rst:2021 +#: ../Doc/library/ssl.rst:2067 msgid "Certificate chains" msgstr "" -#: ../Doc/library/ssl.rst:2023 +#: ../Doc/library/ssl.rst:2069 msgid "" "The Python files which contain certificates can contain a sequence of " "certificates, sometimes called a *certificate chain*. This chain should " @@ -2236,11 +2389,11 @@ msgid "" "agency which issued the certification authority's certificate::" msgstr "" -#: ../Doc/library/ssl.rst:2047 +#: ../Doc/library/ssl.rst:2093 msgid "CA certificates" msgstr "" -#: ../Doc/library/ssl.rst:2049 +#: ../Doc/library/ssl.rst:2095 msgid "" "If you are going to require validation of the other side of the connection's " "certificate, you need to provide a \"CA certs\" file, filled with the " @@ -2252,11 +2405,11 @@ msgid "" "create_default_context`." msgstr "" -#: ../Doc/library/ssl.rst:2058 +#: ../Doc/library/ssl.rst:2104 msgid "Combined key and certificate" msgstr "" -#: ../Doc/library/ssl.rst:2060 +#: ../Doc/library/ssl.rst:2106 msgid "" "Often the private key is stored in the same file as the certificate; in this " "case, only the ``certfile`` parameter to :meth:`SSLContext.load_cert_chain` " @@ -2265,11 +2418,11 @@ msgid "" "certificate chain::" msgstr "" -#: ../Doc/library/ssl.rst:2074 +#: ../Doc/library/ssl.rst:2120 msgid "Self-signed certificates" msgstr "" -#: ../Doc/library/ssl.rst:2076 +#: ../Doc/library/ssl.rst:2122 msgid "" "If you are going to create a server that provides SSL-encrypted connection " "services, you will need to acquire a certificate for that service. There " @@ -2279,51 +2432,51 @@ msgid "" "package, using something like the following::" msgstr "" -#: ../Doc/library/ssl.rst:2105 +#: ../Doc/library/ssl.rst:2151 msgid "" "The disadvantage of a self-signed certificate is that it is its own root " "certificate, and no one else will have it in their cache of known (and " "trusted) root certificates." msgstr "" -#: ../Doc/library/ssl.rst:2111 +#: ../Doc/library/ssl.rst:2157 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/ssl.rst:2114 +#: ../Doc/library/ssl.rst:2160 msgid "Testing for SSL support" msgstr "" -#: ../Doc/library/ssl.rst:2116 +#: ../Doc/library/ssl.rst:2162 msgid "" "To test for the presence of SSL support in a Python installation, user code " "should use the following idiom::" msgstr "" -#: ../Doc/library/ssl.rst:2127 +#: ../Doc/library/ssl.rst:2173 msgid "Client-side operation" msgstr "" -#: ../Doc/library/ssl.rst:2129 +#: ../Doc/library/ssl.rst:2175 msgid "" "This example creates a SSL context with the recommended security settings " "for client sockets, including automatic certificate verification::" msgstr "" -#: ../Doc/library/ssl.rst:2134 +#: ../Doc/library/ssl.rst:2180 msgid "" "If you prefer to tune security settings yourself, you might create a context " "from scratch (but beware that you might not get the settings right)::" msgstr "" -#: ../Doc/library/ssl.rst:2143 +#: ../Doc/library/ssl.rst:2189 msgid "" "(this snippet assumes your operating system places a bundle of all CA " "certificates in ``/etc/ssl/certs/ca-bundle.crt``; if not, you'll get an " "error and have to adjust the location)" msgstr "" -#: ../Doc/library/ssl.rst:2147 +#: ../Doc/library/ssl.rst:2193 msgid "" "When you use the context to connect to a server, :const:`CERT_REQUIRED` " "validates the server certificate: it ensures that the server certificate was " @@ -2331,27 +2484,27 @@ msgid "" "correctness::" msgstr "" -#: ../Doc/library/ssl.rst:2156 +#: ../Doc/library/ssl.rst:2202 msgid "You may then fetch the certificate::" msgstr "" -#: ../Doc/library/ssl.rst:2160 +#: ../Doc/library/ssl.rst:2206 msgid "" "Visual inspection shows that the certificate does identify the desired " "service (that is, the HTTPS host ``www.python.org``)::" msgstr "" -#: ../Doc/library/ssl.rst:2203 +#: ../Doc/library/ssl.rst:2249 msgid "" "Now the SSL channel is established and the certificate verified, you can " "proceed to talk with the server::" msgstr "" -#: ../Doc/library/ssl.rst:2230 +#: ../Doc/library/ssl.rst:2276 msgid "Server-side operation" msgstr "" -#: ../Doc/library/ssl.rst:2232 +#: ../Doc/library/ssl.rst:2278 msgid "" "For server operation, typically you'll need to have a server certificate, " "and private key, each in a file. You'll first create a context holding the " @@ -2360,20 +2513,20 @@ msgid "" "start waiting for clients to connect::" msgstr "" -#: ../Doc/library/ssl.rst:2247 +#: ../Doc/library/ssl.rst:2293 msgid "" "When a client connects, you'll call :meth:`accept` on the socket to get the " "new socket from the other end, and use the context's :meth:`SSLContext." "wrap_socket` method to create a server-side SSL socket for the connection::" msgstr "" -#: ../Doc/library/ssl.rst:2260 +#: ../Doc/library/ssl.rst:2306 msgid "" "Then you'll read data from the ``connstream`` and do something with it till " "you are finished with the client (or the client is finished with you)::" msgstr "" -#: ../Doc/library/ssl.rst:2274 +#: ../Doc/library/ssl.rst:2320 msgid "" "And go back to listening for new client connections (of course, a real " "server would probably handle each client connection in a separate thread, or " @@ -2381,18 +2534,18 @@ msgid "" "event loop)." msgstr "" -#: ../Doc/library/ssl.rst:2282 +#: ../Doc/library/ssl.rst:2328 msgid "Notes on non-blocking sockets" msgstr "" -#: ../Doc/library/ssl.rst:2284 +#: ../Doc/library/ssl.rst:2330 msgid "" "SSL sockets behave slightly different than regular sockets in non-blocking " "mode. When working with non-blocking sockets, there are thus several things " "you need to be aware of:" msgstr "" -#: ../Doc/library/ssl.rst:2288 +#: ../Doc/library/ssl.rst:2334 msgid "" "Most :class:`SSLSocket` methods will raise either :exc:`SSLWantWriteError` " "or :exc:`SSLWantReadError` instead of :exc:`BlockingIOError` if an I/O " @@ -2404,13 +2557,13 @@ msgid "" "require a prior *write* to the underlying socket." msgstr "" -#: ../Doc/library/ssl.rst:2300 +#: ../Doc/library/ssl.rst:2346 msgid "" "In earlier Python versions, the :meth:`!SSLSocket.send` method returned zero " "instead of raising :exc:`SSLWantWriteError` or :exc:`SSLWantReadError`." msgstr "" -#: ../Doc/library/ssl.rst:2304 +#: ../Doc/library/ssl.rst:2350 msgid "" "Calling :func:`~select.select` tells you that the OS-level socket can be " "read from (or written to), but it does not imply that there is sufficient " @@ -2420,7 +2573,7 @@ msgid "" "`~select.select`." msgstr "" -#: ../Doc/library/ssl.rst:2311 +#: ../Doc/library/ssl.rst:2357 msgid "" "Conversely, since the SSL layer has its own framing, a SSL socket may still " "have data available for reading without :func:`~select.select` being aware " @@ -2429,13 +2582,13 @@ msgid "" "call if still necessary." msgstr "" -#: ../Doc/library/ssl.rst:2317 +#: ../Doc/library/ssl.rst:2363 msgid "" "(of course, similar provisions apply when using other primitives such as :" "func:`~select.poll`, or those in the :mod:`selectors` module)" msgstr "" -#: ../Doc/library/ssl.rst:2320 +#: ../Doc/library/ssl.rst:2366 msgid "" "The SSL handshake itself will be non-blocking: the :meth:`SSLSocket." "do_handshake` method has to be retried until it returns successfully. Here " @@ -2443,7 +2596,7 @@ msgid "" "readiness::" msgstr "" -#: ../Doc/library/ssl.rst:2336 +#: ../Doc/library/ssl.rst:2382 msgid "" "The :mod:`asyncio` module supports :ref:`non-blocking SSL sockets ` and provides a higher level API. It polls for events using " @@ -2452,26 +2605,26 @@ msgid "" "handshake asynchronously as well." msgstr "" -#: ../Doc/library/ssl.rst:2345 +#: ../Doc/library/ssl.rst:2391 msgid "Memory BIO Support" msgstr "" -#: ../Doc/library/ssl.rst:2349 +#: ../Doc/library/ssl.rst:2395 msgid "" "Ever since the SSL module was introduced in Python 2.6, the :class:" "`SSLSocket` class has provided two related but distinct areas of " "functionality:" msgstr "" -#: ../Doc/library/ssl.rst:2352 +#: ../Doc/library/ssl.rst:2398 msgid "SSL protocol handling" msgstr "" -#: ../Doc/library/ssl.rst:2353 +#: ../Doc/library/ssl.rst:2399 msgid "Network IO" msgstr "" -#: ../Doc/library/ssl.rst:2355 +#: ../Doc/library/ssl.rst:2401 msgid "" "The network IO API is identical to that provided by :class:`socket.socket`, " "from which :class:`SSLSocket` also inherits. This allows an SSL socket to be " @@ -2479,7 +2632,7 @@ msgid "" "add SSL support to an existing application." msgstr "" -#: ../Doc/library/ssl.rst:2360 +#: ../Doc/library/ssl.rst:2406 msgid "" "Combining SSL protocol handling and network IO usually works well, but there " "are some cases where it doesn't. An example is async IO frameworks that want " @@ -2491,7 +2644,7 @@ msgid "" "`SSLObject` is provided." msgstr "" -#: ../Doc/library/ssl.rst:2371 +#: ../Doc/library/ssl.rst:2417 msgid "" "A reduced-scope variant of :class:`SSLSocket` representing an SSL protocol " "instance that does not contain any network IO methods. This class is " @@ -2499,7 +2652,7 @@ msgid "" "for SSL through memory buffers." msgstr "" -#: ../Doc/library/ssl.rst:2376 +#: ../Doc/library/ssl.rst:2422 msgid "" "This class implements an interface on top of a low-level SSL object as " "implemented by OpenSSL. This object captures the state of an SSL connection " @@ -2507,7 +2660,7 @@ msgid "" "separate \"BIO\" objects which are OpenSSL's IO abstraction layer." msgstr "" -#: ../Doc/library/ssl.rst:2381 +#: ../Doc/library/ssl.rst:2427 msgid "" "This class has no public constructor. An :class:`SSLObject` instance must " "be created using the :meth:`~SSLContext.wrap_bio` method. This method will " @@ -2516,202 +2669,202 @@ msgid "" "instance, while the *outgoing* BIO is used to pass data the other way around." msgstr "" -#: ../Doc/library/ssl.rst:2388 +#: ../Doc/library/ssl.rst:2434 msgid "The following methods are available:" msgstr "" -#: ../Doc/library/ssl.rst:2390 +#: ../Doc/library/ssl.rst:2436 msgid ":attr:`~SSLSocket.context`" msgstr "" -#: ../Doc/library/ssl.rst:2391 +#: ../Doc/library/ssl.rst:2437 msgid ":attr:`~SSLSocket.server_side`" msgstr "" -#: ../Doc/library/ssl.rst:2392 +#: ../Doc/library/ssl.rst:2438 msgid ":attr:`~SSLSocket.server_hostname`" msgstr "" -#: ../Doc/library/ssl.rst:2393 +#: ../Doc/library/ssl.rst:2439 msgid ":attr:`~SSLSocket.session`" msgstr "" -#: ../Doc/library/ssl.rst:2394 +#: ../Doc/library/ssl.rst:2440 msgid ":attr:`~SSLSocket.session_reused`" msgstr "" -#: ../Doc/library/ssl.rst:2395 +#: ../Doc/library/ssl.rst:2441 msgid ":meth:`~SSLSocket.read`" msgstr "" -#: ../Doc/library/ssl.rst:2396 +#: ../Doc/library/ssl.rst:2442 msgid ":meth:`~SSLSocket.write`" msgstr "" -#: ../Doc/library/ssl.rst:2397 +#: ../Doc/library/ssl.rst:2443 msgid ":meth:`~SSLSocket.getpeercert`" msgstr "" -#: ../Doc/library/ssl.rst:2398 +#: ../Doc/library/ssl.rst:2444 msgid ":meth:`~SSLSocket.selected_npn_protocol`" msgstr "" -#: ../Doc/library/ssl.rst:2399 +#: ../Doc/library/ssl.rst:2445 msgid ":meth:`~SSLSocket.cipher`" msgstr "" -#: ../Doc/library/ssl.rst:2400 +#: ../Doc/library/ssl.rst:2446 msgid ":meth:`~SSLSocket.shared_ciphers`" msgstr "" -#: ../Doc/library/ssl.rst:2401 +#: ../Doc/library/ssl.rst:2447 msgid ":meth:`~SSLSocket.compression`" msgstr "" -#: ../Doc/library/ssl.rst:2402 +#: ../Doc/library/ssl.rst:2448 msgid ":meth:`~SSLSocket.pending`" msgstr "" -#: ../Doc/library/ssl.rst:2403 +#: ../Doc/library/ssl.rst:2449 msgid ":meth:`~SSLSocket.do_handshake`" msgstr "" -#: ../Doc/library/ssl.rst:2404 +#: ../Doc/library/ssl.rst:2450 msgid ":meth:`~SSLSocket.unwrap`" msgstr "" -#: ../Doc/library/ssl.rst:2405 +#: ../Doc/library/ssl.rst:2451 msgid ":meth:`~SSLSocket.get_channel_binding`" msgstr "" -#: ../Doc/library/ssl.rst:2407 +#: ../Doc/library/ssl.rst:2453 msgid "" "When compared to :class:`SSLSocket`, this object lacks the following " "features:" msgstr "" -#: ../Doc/library/ssl.rst:2410 +#: ../Doc/library/ssl.rst:2456 msgid "" "Any form of network IO; ``recv()`` and ``send()`` read and write only to the " "underlying :class:`MemoryBIO` buffers." msgstr "" -#: ../Doc/library/ssl.rst:2413 +#: ../Doc/library/ssl.rst:2459 msgid "" "There is no *do_handshake_on_connect* machinery. You must always manually " "call :meth:`~SSLSocket.do_handshake` to start the handshake." msgstr "" -#: ../Doc/library/ssl.rst:2416 +#: ../Doc/library/ssl.rst:2462 msgid "" "There is no handling of *suppress_ragged_eofs*. All end-of-file conditions " "that are in violation of the protocol are reported via the :exc:" "`SSLEOFError` exception." msgstr "" -#: ../Doc/library/ssl.rst:2420 +#: ../Doc/library/ssl.rst:2466 msgid "" "The method :meth:`~SSLSocket.unwrap` call does not return anything, unlike " "for an SSL socket where it returns the underlying socket." msgstr "" -#: ../Doc/library/ssl.rst:2423 +#: ../Doc/library/ssl.rst:2469 msgid "" "The *server_name_callback* callback passed to :meth:`SSLContext." "set_servername_callback` will get an :class:`SSLObject` instance instead of " "a :class:`SSLSocket` instance as its first parameter." msgstr "" -#: ../Doc/library/ssl.rst:2427 +#: ../Doc/library/ssl.rst:2473 msgid "Some notes related to the use of :class:`SSLObject`:" msgstr "" -#: ../Doc/library/ssl.rst:2429 +#: ../Doc/library/ssl.rst:2475 msgid "" "All IO on an :class:`SSLObject` is :ref:`non-blocking `. " "This means that for example :meth:`~SSLSocket.read` will raise an :exc:" "`SSLWantReadError` if it needs more data than the incoming BIO has available." msgstr "" -#: ../Doc/library/ssl.rst:2434 +#: ../Doc/library/ssl.rst:2480 msgid "" "There is no module-level ``wrap_bio()`` call like there is for :meth:" "`~SSLContext.wrap_socket`. An :class:`SSLObject` is always created via an :" "class:`SSLContext`." msgstr "" -#: ../Doc/library/ssl.rst:2438 +#: ../Doc/library/ssl.rst:2484 msgid "" ":class:`SSLObject` instances must to created with :meth:`~SSLContext." "wrap_bio`. In earlier versions, it was possible to create instances " "directly. This was never documented or officially supported." msgstr "" -#: ../Doc/library/ssl.rst:2444 +#: ../Doc/library/ssl.rst:2490 msgid "" "An SSLObject communicates with the outside world using memory buffers. The " "class :class:`MemoryBIO` provides a memory buffer that can be used for this " "purpose. It wraps an OpenSSL memory BIO (Basic IO) object:" msgstr "" -#: ../Doc/library/ssl.rst:2450 +#: ../Doc/library/ssl.rst:2496 msgid "" "A memory buffer that can be used to pass data between Python and an SSL " "protocol instance." msgstr "" -#: ../Doc/library/ssl.rst:2455 +#: ../Doc/library/ssl.rst:2501 msgid "Return the number of bytes currently in the memory buffer." msgstr "" -#: ../Doc/library/ssl.rst:2459 +#: ../Doc/library/ssl.rst:2505 msgid "" "A boolean indicating whether the memory BIO is current at the end-of-file " "position." msgstr "" -#: ../Doc/library/ssl.rst:2464 +#: ../Doc/library/ssl.rst:2510 msgid "" "Read up to *n* bytes from the memory buffer. If *n* is not specified or " "negative, all bytes are returned." msgstr "" -#: ../Doc/library/ssl.rst:2469 +#: ../Doc/library/ssl.rst:2515 msgid "" "Write the bytes from *buf* to the memory BIO. The *buf* argument must be an " "object supporting the buffer protocol." msgstr "" -#: ../Doc/library/ssl.rst:2472 +#: ../Doc/library/ssl.rst:2518 msgid "" "The return value is the number of bytes written, which is always equal to " "the length of *buf*." msgstr "" -#: ../Doc/library/ssl.rst:2477 +#: ../Doc/library/ssl.rst:2523 msgid "" "Write an EOF marker to the memory BIO. After this method has been called, it " "is illegal to call :meth:`~MemoryBIO.write`. The attribute :attr:`eof` will " "become true after all data currently in the buffer has been read." msgstr "" -#: ../Doc/library/ssl.rst:2483 +#: ../Doc/library/ssl.rst:2529 msgid "SSL session" msgstr "" -#: ../Doc/library/ssl.rst:2489 +#: ../Doc/library/ssl.rst:2535 msgid "Session object used by :attr:`~SSLSocket.session`." msgstr "" -#: ../Doc/library/ssl.rst:2501 +#: ../Doc/library/ssl.rst:2547 msgid "Security considerations" msgstr "" -#: ../Doc/library/ssl.rst:2504 +#: ../Doc/library/ssl.rst:2550 msgid "Best defaults" msgstr "" -#: ../Doc/library/ssl.rst:2506 +#: ../Doc/library/ssl.rst:2552 msgid "" "For **client use**, if you don't have any special requirements for your " "security policy, it is highly recommended that you use the :func:" @@ -2721,19 +2874,19 @@ msgid "" "settings." msgstr "" -#: ../Doc/library/ssl.rst:2513 +#: ../Doc/library/ssl.rst:2559 msgid "" "For example, here is how you would use the :class:`smtplib.SMTP` class to " "create a trusted, secure connection to a SMTP server::" msgstr "" -#: ../Doc/library/ssl.rst:2522 +#: ../Doc/library/ssl.rst:2568 msgid "" "If a client certificate is needed for the connection, it can be added with :" "meth:`SSLContext.load_cert_chain`." msgstr "" -#: ../Doc/library/ssl.rst:2525 +#: ../Doc/library/ssl.rst:2571 msgid "" "By contrast, if you create the SSL context by calling the :class:" "`SSLContext` constructor yourself, it will not have certificate validation " @@ -2741,15 +2894,15 @@ msgid "" "paragraphs below to achieve a good security level." msgstr "" -#: ../Doc/library/ssl.rst:2531 +#: ../Doc/library/ssl.rst:2577 msgid "Manual settings" msgstr "" -#: ../Doc/library/ssl.rst:2534 +#: ../Doc/library/ssl.rst:2580 msgid "Verifying certificates" msgstr "" -#: ../Doc/library/ssl.rst:2536 +#: ../Doc/library/ssl.rst:2582 msgid "" "When calling the :class:`SSLContext` constructor directly, :const:" "`CERT_NONE` is the default. Since it does not authenticate the other peer, " @@ -2764,13 +2917,13 @@ msgid "" "automatically performed when :attr:`SSLContext.check_hostname` is enabled." msgstr "" -#: ../Doc/library/ssl.rst:2549 +#: ../Doc/library/ssl.rst:2595 msgid "" "Hostname matchings is now performed by OpenSSL. Python no longer uses :func:" "`match_hostname`." msgstr "" -#: ../Doc/library/ssl.rst:2553 +#: ../Doc/library/ssl.rst:2599 msgid "" "In server mode, if you want to authenticate your clients using the SSL layer " "(rather than using a higher-level authentication mechanism), you'll also " @@ -2778,11 +2931,11 @@ msgid "" "certificate." msgstr "" -#: ../Doc/library/ssl.rst:2559 +#: ../Doc/library/ssl.rst:2605 msgid "Protocol versions" msgstr "" -#: ../Doc/library/ssl.rst:2561 +#: ../Doc/library/ssl.rst:2607 msgid "" "SSL versions 2 and 3 are considered insecure and are therefore dangerous to " "use. If you want maximum compatibility between clients and servers, it is " @@ -2791,7 +2944,7 @@ msgid "" "by default." msgstr "" -#: ../Doc/library/ssl.rst:2574 +#: ../Doc/library/ssl.rst:2620 msgid "" "The SSL context created above will only allow TLSv1.2 and later (if " "supported by your system) connections to a server. :const:" @@ -2799,11 +2952,11 @@ msgid "" "default. You have to load certificates into the context." msgstr "" -#: ../Doc/library/ssl.rst:2581 +#: ../Doc/library/ssl.rst:2627 msgid "Cipher selection" msgstr "" -#: ../Doc/library/ssl.rst:2583 +#: ../Doc/library/ssl.rst:2629 msgid "" "If you have advanced security requirements, fine-tuning of the ciphers " "enabled when negotiating a SSL session is possible through the :meth:" @@ -2816,11 +2969,11 @@ msgid "" "ciphers`` command on your system." msgstr "" -#: ../Doc/library/ssl.rst:2594 +#: ../Doc/library/ssl.rst:2640 msgid "Multi-processing" msgstr "" -#: ../Doc/library/ssl.rst:2596 +#: ../Doc/library/ssl.rst:2642 msgid "" "If using this module as part of a multi-processed application (using, for " "example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be " @@ -2831,33 +2984,33 @@ msgid "" "`~ssl.RAND_pseudo_bytes` is sufficient." msgstr "" -#: ../Doc/library/ssl.rst:2608 +#: ../Doc/library/ssl.rst:2654 msgid "TLS 1.3" msgstr "" -#: ../Doc/library/ssl.rst:2612 +#: ../Doc/library/ssl.rst:2658 msgid "" "Python has provisional and experimental support for TLS 1.3 with OpenSSL " "1.1.1. The new protocol behaves slightly differently than previous version " "of TLS/SSL. Some new TLS 1.3 features are not yet available." msgstr "" -#: ../Doc/library/ssl.rst:2616 +#: ../Doc/library/ssl.rst:2662 msgid "" "TLS 1.3 uses a disjunct set of cipher suites. All AES-GCM and ChaCha20 " "cipher suites are enabled by default. The method :meth:`SSLContext." "set_ciphers` cannot enable or disable any TLS 1.3 ciphers yet, but :meth:" -"`SSLContext.get_cipers` returns them." +"`SSLContext.get_ciphers` returns them." msgstr "" -#: ../Doc/library/ssl.rst:2620 +#: ../Doc/library/ssl.rst:2666 msgid "" "Session tickets are no longer sent as part of the initial handshake and are " "handled differently. :attr:`SSLSocket.session` and :class:`SSLSession` are " "not compatible with TLS 1.3." msgstr "" -#: ../Doc/library/ssl.rst:2623 +#: ../Doc/library/ssl.rst:2669 msgid "" "Client-side certificates are also no longer verified during the initial " "handshake. A server can request a certificate at any time. Clients process " @@ -2865,127 +3018,127 @@ msgid "" "server." msgstr "" -#: ../Doc/library/ssl.rst:2627 +#: ../Doc/library/ssl.rst:2673 msgid "" "TLS 1.3 features like early data, deferred TLS client cert request, " "signature algorithm configuration, and rekeying are not supported yet." msgstr "" -#: ../Doc/library/ssl.rst:2634 +#: ../Doc/library/ssl.rst:2680 msgid "LibreSSL support" msgstr "" -#: ../Doc/library/ssl.rst:2636 +#: ../Doc/library/ssl.rst:2682 msgid "" "LibreSSL is a fork of OpenSSL 1.0.1. The ssl module has limited support for " "LibreSSL. Some features are not available when the ssl module is compiled " "with LibreSSL." msgstr "" -#: ../Doc/library/ssl.rst:2640 +#: ../Doc/library/ssl.rst:2686 msgid "" "LibreSSL >= 2.6.1 no longer supports NPN. The methods :meth:`SSLContext." "set_npn_protocols` and :meth:`SSLSocket.selected_npn_protocol` are not " "available." msgstr "" -#: ../Doc/library/ssl.rst:2643 +#: ../Doc/library/ssl.rst:2689 msgid "" ":meth:`SSLContext.set_default_verify_paths` ignores the env vars :envvar:" "`SSL_CERT_FILE` and :envvar:`SSL_CERT_PATH` although :func:" "`get_default_verify_paths` still reports them." msgstr "" -#: ../Doc/library/ssl.rst:2651 +#: ../Doc/library/ssl.rst:2697 msgid "Class :class:`socket.socket`" msgstr "" -#: ../Doc/library/ssl.rst:2651 +#: ../Doc/library/ssl.rst:2697 msgid "Documentation of underlying :mod:`socket` class" msgstr "" -#: ../Doc/library/ssl.rst:2654 +#: ../Doc/library/ssl.rst:2700 msgid "" "`SSL/TLS Strong Encryption: An Introduction `_" msgstr "" -#: ../Doc/library/ssl.rst:2654 +#: ../Doc/library/ssl.rst:2700 msgid "Intro from the Apache HTTP Server documentation" msgstr "" -#: ../Doc/library/ssl.rst:2657 +#: ../Doc/library/ssl.rst:2703 msgid "" ":rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " "Certificate-Based Key Management <1422>`" msgstr "" -#: ../Doc/library/ssl.rst:2657 +#: ../Doc/library/ssl.rst:2703 msgid "Steve Kent" msgstr "" -#: ../Doc/library/ssl.rst:2660 +#: ../Doc/library/ssl.rst:2706 msgid ":rfc:`RFC 4086: Randomness Requirements for Security <4086>`" msgstr "" -#: ../Doc/library/ssl.rst:2660 +#: ../Doc/library/ssl.rst:2706 msgid "Donald E., Jeffrey I. Schiller" msgstr "" -#: ../Doc/library/ssl.rst:2663 +#: ../Doc/library/ssl.rst:2709 msgid "" ":rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " "Certificate Revocation List (CRL) Profile <5280>`" msgstr "" -#: ../Doc/library/ssl.rst:2663 +#: ../Doc/library/ssl.rst:2709 msgid "D. Cooper" msgstr "" -#: ../Doc/library/ssl.rst:2666 +#: ../Doc/library/ssl.rst:2712 msgid "" ":rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 " "<5246>`" msgstr "" -#: ../Doc/library/ssl.rst:2666 +#: ../Doc/library/ssl.rst:2712 msgid "T. Dierks et. al." msgstr "" -#: ../Doc/library/ssl.rst:2669 +#: ../Doc/library/ssl.rst:2715 msgid ":rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`" msgstr "" -#: ../Doc/library/ssl.rst:2669 +#: ../Doc/library/ssl.rst:2715 msgid "D. Eastlake" msgstr "" -#: ../Doc/library/ssl.rst:2672 +#: ../Doc/library/ssl.rst:2718 msgid "" "`IANA TLS: Transport Layer Security (TLS) Parameters `_" msgstr "" -#: ../Doc/library/ssl.rst:2672 +#: ../Doc/library/ssl.rst:2718 msgid "IANA" msgstr "" -#: ../Doc/library/ssl.rst:2675 +#: ../Doc/library/ssl.rst:2721 msgid "" ":rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security " "(TLS) and Datagram Transport Layer Security (DTLS) <7525>`" msgstr "" -#: ../Doc/library/ssl.rst:2675 +#: ../Doc/library/ssl.rst:2721 msgid "IETF" msgstr "" -#: ../Doc/library/ssl.rst:2677 +#: ../Doc/library/ssl.rst:2723 msgid "" "`Mozilla's Server Side TLS recommendations `_" msgstr "" -#: ../Doc/library/ssl.rst:2678 +#: ../Doc/library/ssl.rst:2724 msgid "Mozilla" msgstr "" diff --git a/library/stat.po b/library/stat.po index 71e6b21e7..a398fdbd6 100644 --- a/library/stat.po +++ b/library/stat.po @@ -169,7 +169,7 @@ msgstr "" #: ../Doc/library/stat.rst:189 msgid "Time of last modification." -msgstr "" +msgstr "L'heure de la dernière modification." #: ../Doc/library/stat.rst:194 msgid "" diff --git a/library/statistics.po b/library/statistics.po index 6d8148557..aa95477fd 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/statistics.rst:2 msgid ":mod:`statistics` --- Mathematical statistics functions" -msgstr "" +msgstr ":mod:`statistics` — Fonctions mathématiques pour les statistiques" #: ../Doc/library/statistics.rst:12 msgid "**Source code:** :source:`Lib/statistics.py`" @@ -41,65 +41,68 @@ msgstr "" #: ../Doc/library/statistics.rst:35 msgid "Averages and measures of central location" -msgstr "" +msgstr "Moyennes et mesures de la tendance centrale" #: ../Doc/library/statistics.rst:37 msgid "" "These functions calculate an average or typical value from a population or " "sample." msgstr "" +"Ces fonctions calculent une moyenne ou une valeur typique à partir d'une " +"population ou d'un échantillon." #: ../Doc/library/statistics.rst:41 msgid ":func:`mean`" -msgstr "" +msgstr ":func:`mean`" #: ../Doc/library/statistics.rst:41 msgid "Arithmetic mean (\"average\") of data." -msgstr "" +msgstr "Moyenne arithmétique des données." #: ../Doc/library/statistics.rst:42 msgid ":func:`harmonic_mean`" -msgstr "" +msgstr ":func:`harmonic_mean`" #: ../Doc/library/statistics.rst:42 msgid "Harmonic mean of data." -msgstr "" +msgstr "Moyenne harmonique des données." #: ../Doc/library/statistics.rst:43 msgid ":func:`median`" -msgstr "" +msgstr ":func:`median`" #: ../Doc/library/statistics.rst:43 msgid "Median (middle value) of data." -msgstr "" +msgstr "Médiane (valeur centrale) des données." #: ../Doc/library/statistics.rst:44 msgid ":func:`median_low`" -msgstr "" +msgstr ":func:`median_low`" #: ../Doc/library/statistics.rst:44 msgid "Low median of data." -msgstr "" +msgstr "Médiane basse des données." #: ../Doc/library/statistics.rst:45 msgid ":func:`median_high`" -msgstr "" +msgstr ":func:`median_high`" #: ../Doc/library/statistics.rst:45 msgid "High median of data." -msgstr "" +msgstr "Médiane haute des données." #: ../Doc/library/statistics.rst:46 msgid ":func:`median_grouped`" -msgstr "" +msgstr ":func:`median_grouped`" #: ../Doc/library/statistics.rst:46 msgid "Median, or 50th percentile, of grouped data." msgstr "" +"Médiane de données groupées, calculée comme le 50\\ :sup:`e` percentile." #: ../Doc/library/statistics.rst:47 msgid ":func:`mode`" -msgstr "" +msgstr ":func:`mode`" #: ../Doc/library/statistics.rst:47 msgid "Mode (most common value) of discrete data." @@ -107,55 +110,60 @@ msgstr "" #: ../Doc/library/statistics.rst:51 msgid "Measures of spread" -msgstr "" +msgstr "Mesures de la dispersion" #: ../Doc/library/statistics.rst:53 msgid "" "These functions calculate a measure of how much the population or sample " "tends to deviate from the typical or average values." msgstr "" +"Ces fonctions mesurent la tendance de la population ou d'un échantillon à " +"dévier des valeurs typiques ou des valeurs moyennes." #: ../Doc/library/statistics.rst:57 msgid ":func:`pstdev`" -msgstr "" +msgstr ":func:`pstdev`" #: ../Doc/library/statistics.rst:57 msgid "Population standard deviation of data." -msgstr "" +msgstr "Écart-type de la population." #: ../Doc/library/statistics.rst:58 msgid ":func:`pvariance`" -msgstr "" +msgstr ":func:`pvariance`" #: ../Doc/library/statistics.rst:58 msgid "Population variance of data." -msgstr "" +msgstr "Variance de la population." #: ../Doc/library/statistics.rst:59 msgid ":func:`stdev`" -msgstr "" +msgstr ":func:`stdev`" #: ../Doc/library/statistics.rst:59 msgid "Sample standard deviation of data." -msgstr "" +msgstr "Écart-type d'un échantillon." #: ../Doc/library/statistics.rst:60 msgid ":func:`variance`" -msgstr "" +msgstr ":func:`variance`" #: ../Doc/library/statistics.rst:60 msgid "Sample variance of data." -msgstr "" +msgstr "Variance d'un échantillon." #: ../Doc/library/statistics.rst:65 msgid "Function details" -msgstr "" +msgstr "Détails des fonctions" #: ../Doc/library/statistics.rst:67 msgid "" "Note: The functions do not require the data given to them to be sorted. " "However, for reading convenience, most of the examples show sorted sequences." msgstr "" +"Note : les fonctions ne requièrent pas que les données soient ordonnées. " +"Toutefois, pour en faciliter la lecture, les exemples utiliseront des " +"séquences croissantes." #: ../Doc/library/statistics.rst:72 msgid "" @@ -170,14 +178,19 @@ msgid "" "many different mathematical averages. It is a measure of the central " "location of the data." msgstr "" +"La moyenne arithmétique est la somme des valeurs divisée par le nombre " +"d'observations. Il s'agit de la valeur couramment désignée comme la " +"« moyenne » bien qu'il existe de multiples façons de définir " +"mathématiquement la moyenne. C'est une mesure de la tendance centrale des " +"données." #: ../Doc/library/statistics.rst:79 msgid "If *data* is empty, :exc:`StatisticsError` will be raised." -msgstr "" +msgstr "Une erreur :exc:`StatisticsError` est levée si *data* est vide." #: ../Doc/library/statistics.rst:81 msgid "Some examples of use:" -msgstr "" +msgstr "Exemples d'utilisation :" #: ../Doc/library/statistics.rst:100 msgid "" @@ -224,6 +237,9 @@ msgid "" "companies, with P/E (price/earning) ratios of 2.5, 3 and 10. What is the " "average P/E ratio for the investor's portfolio?" msgstr "" +"Supposons qu'un investisseur achète autant de parts dans trois compagnies " +"chacune de ratio cours sur bénéfices (*P/E*) 2,5, 3 et 10. Quel est le ratio " +"cours sur bénéfices moyen du portefeuille de l'investisseur ?" #: ../Doc/library/statistics.rst:137 msgid "" @@ -236,6 +252,8 @@ msgid "" ":exc:`StatisticsError` is raised if *data* is empty, or any element is less " "than zero." msgstr "" +"Une erreur :exc:`StatisticsError` est levée si *data* est vide ou si l'un de " +"ses éléments est inférieur à zéro." #: ../Doc/library/statistics.rst:148 msgid "" @@ -256,12 +274,16 @@ msgid "" "When the number of data points is even, the median is interpolated by taking " "the average of the two middle values:" msgstr "" +"Lorsque le nombre d'observations est pair, la médiane est interpolée en " +"calculant la moyenne des deux valeurs du milieu :" #: ../Doc/library/statistics.rst:169 msgid "" "This is suited for when your data is discrete, and you don't mind that the " "median may not be an actual data point." msgstr "" +"Cette approche est adaptée à des données discrètes à condition que vous " +"acceptiez que la médiane ne fasse pas nécessairement partie des observations." #: ../Doc/library/statistics.rst:172 msgid "" @@ -286,12 +308,18 @@ msgid "" "points is odd, the middle value is returned. When it is even, the smaller " "of the two middle values is returned." msgstr "" +"La médiane basse est toujours une valeur représentée dans les données. " +"Lorsque le nombre d'observations est impair, la valeur du milieu est " +"renvoyée. Sinon, la plus petite des deux valeurs du milieu est renvoyée." #: ../Doc/library/statistics.rst:195 msgid "" "Use the low median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" +"Utilisez la médiane basse lorsque vos données sont discrètes et que vous " +"préférez que la médiane soit une valeur représentée dans vos observations " +"plutôt que le résultat d'une interpolation." #: ../Doc/library/statistics.rst:201 msgid "" @@ -305,12 +333,18 @@ msgid "" "points is odd, the middle value is returned. When it is even, the larger of " "the two middle values is returned." msgstr "" +"La médiane haute est toujours une valeur représentée dans les données. " +"Lorsque le nombre d'observations est impair, la valeur du milieu est " +"renvoyée. Sinon, la plus grande des deux valeurs du milieu est renvoyée." #: ../Doc/library/statistics.rst:215 msgid "" "Use the high median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" +"Utilisez la médiane haute lorsque vos données sont discrètes et que vous " +"préférez que la médiane soit une valeur représentée dans vos observations " +"plutôt que le résultat d'une interpolation." #: ../Doc/library/statistics.rst:221 msgid "" @@ -327,30 +361,45 @@ msgid "" "etc. With the data given, the middle value falls somewhere in the class " "3.5--4.5, and interpolation is used to estimate it:" msgstr "" +"Dans l'exemple ci-dessous, les valeurs sont arrondies de sorte que chaque " +"valeur représente le milieu d'un groupe. Par exemple 1 est le milieu du " +"groupe 0,5 - 1, 2 est le milieu du groupe 1,5 - 2,5, 3 est le milieu de 2,5 -" +" 3,5, etc. Compte-tenu des valeurs ci-dessous, la valeur centrale se situe " +"quelque part dans le groupe 3,5 - 4,5 et est estimée par interpolation :" #: ../Doc/library/statistics.rst:241 msgid "" "Optional argument *interval* represents the class interval, and defaults to " "1. Changing the class interval naturally will change the interpolation:" msgstr "" +"L'argument optionnel *interval* représente la largeur de l'intervalle des " +"groupes (par défaut, 1). Changer l'intervalle des groupes change bien sûr " +"l'interpolation :" #: ../Doc/library/statistics.rst:251 msgid "" "This function does not check whether the data points are at least *interval* " "apart." msgstr "" +"Cette fonction ne vérifie pas que les valeurs sont bien séparées d'au moins " +"une fois *interval*." #: ../Doc/library/statistics.rst:256 msgid "" "Under some circumstances, :func:`median_grouped` may coerce data points to " "floats. This behaviour is likely to change in the future." msgstr "" +"Sous certaines conditions, :func:`median_grouped` peut convertir les valeurs " +"en nombres à virgule flottante. Ce comportement est susceptible de changer " +"dans le futur." #: ../Doc/library/statistics.rst:261 msgid "" "\"Statistics for the Behavioral Sciences\", Frederick J Gravetter and Larry " "B Wallnau (8th Edition)." msgstr "" +"*Statistics for the Behavioral Sciences*, Frederick J Gravetter et Larry B " +"Wallnau (8\\ :sup:`e` édition, ouvrage en anglais)." #: ../Doc/library/statistics.rst:264 msgid "" @@ -359,6 +408,10 @@ msgid "" "spreadsheet, including `this discussion `_." msgstr "" +"La fonction `SSMEDIAN `_ du tableur Gnome Gnumeric ainsi que " +"`cette discussion `_." #: ../Doc/library/statistics.rst:272 msgid "" @@ -390,6 +443,9 @@ msgid "" "Return the population standard deviation (the square root of the population " "variance). See :func:`pvariance` for arguments and other details." msgstr "" +"Renvoie l'écart-type de la population (racine carrée de la variance de la " +"population). Voir :func:`pvariance` pour les arguments et d'autres " +"précisions." #: ../Doc/library/statistics.rst:309 msgid "" @@ -413,20 +469,26 @@ msgid "" "estimate the variance from a sample, the :func:`variance` function is " "usually a better choice." msgstr "" +"Utilisez cette fonction pour calculer la variance sur une population " +"complète. Pour estimer la variance à partir d'un échantillon, utilisez " +"plutôt :func:`variance` à la place." #: ../Doc/library/statistics.rst:323 msgid "Raises :exc:`StatisticsError` if *data* is empty." -msgstr "" +msgstr "Lève une erreur :exc:`StatisticsError` si *data* est vide." #: ../Doc/library/statistics.rst:325 ../Doc/library/statistics.rst:399 msgid "Examples:" -msgstr "Exemples : ::" +msgstr "Exemples :" #: ../Doc/library/statistics.rst:333 msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *mu* to avoid recalculation:" msgstr "" +"Si vous connaissez la moyenne de vos données, il est possible de la passer " +"comme argument optionnel *mu* lors de l'appel de fonction pour éviter de la " +"calculer une nouvelle fois :" #: ../Doc/library/statistics.rst:342 msgid "" @@ -437,7 +499,7 @@ msgstr "" #: ../Doc/library/statistics.rst:346 msgid "Decimals and Fractions are supported:" -msgstr "" +msgstr "La fonction gère les nombres décimaux et les fractions :" #: ../Doc/library/statistics.rst:360 msgid "" @@ -445,6 +507,10 @@ msgid "" "σ². When called on a sample instead, this is the biased sample variance s², " "also known as variance with N degrees of freedom." msgstr "" +"Cette fonction renvoie la variance de la population σ² lorsqu'elle est " +"appliquée sur la population entière. Si elle est appliquée seulement sur un " +"échantillon, le résultat est alors la variance de l'échantillon s² ou " +"variance à N degrés de liberté." #: ../Doc/library/statistics.rst:364 msgid "" @@ -460,6 +526,8 @@ msgid "" "Return the sample standard deviation (the square root of the sample " "variance). See :func:`variance` for arguments and other details." msgstr "" +"Renvoie l'écart-type de l'échantillon (racine carrée de la variance de " +"l'échantillon). Voir :func:`variance` pour les arguments et plus de détails." #: ../Doc/library/statistics.rst:384 msgid "" @@ -469,6 +537,11 @@ msgid "" "that the data is spread out; a small variance indicates it is clustered " "closely around the mean." msgstr "" +"Renvoie la variance de l'échantillon *data*, un itérable d'au moins deux " +"valeurs réelles. La variance, ou moment de second ordre, est une mesure de " +"la variabilité (ou dispersion) des données. Une variance élevée indique que " +"les données sont très dispersées ; une variance faible indique que les " +"valeurs sont resserrées autour de la moyenne." #: ../Doc/library/statistics.rst:390 msgid "" @@ -476,22 +549,33 @@ msgid "" "*data*. If it is missing or ``None`` (the default), the mean is " "automatically calculated." msgstr "" +"Si le second argument optionnel *xbar* est spécifié, celui-ci doit " +"correspondre à la moyenne de *data*. S'il n'est pas spécifié ou ``None`` " +"(par défaut), la moyenne est automatiquement calculée." #: ../Doc/library/statistics.rst:394 msgid "" "Use this function when your data is a sample from a population. To calculate " "the variance from the entire population, see :func:`pvariance`." msgstr "" +"Utilisez cette fonction lorsque vos données forment un échantillon d'une " +"population plus grande. Pour calculer la variance d'une population complète, " +"utilisez :func:`pvariance`." #: ../Doc/library/statistics.rst:397 msgid "Raises :exc:`StatisticsError` if *data* has fewer than two values." msgstr "" +"Lève une erreur :exc:`StatisticsError` si *data* contient moins de deux " +"éléments." #: ../Doc/library/statistics.rst:407 msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *xbar* to avoid recalculation:" msgstr "" +"Si vous connaissez la moyenne de vos données, il est possible de la passer " +"comme argument optionnel *xbar* lors de l'appel de fonction pour éviter de " +"la calculer une nouvelle fois :" #: ../Doc/library/statistics.rst:416 msgid "" @@ -499,10 +583,13 @@ msgid "" "mean as *xbar*. Using arbitrary values for *xbar* can lead to invalid or " "impossible results." msgstr "" +"Cette fonction ne vérifie pas que la valeur passée dans l'argument *xbar* " +"correspond bien à la moyenne. Utiliser des valeurs arbitraires pour *xbar* " +"produit des résultats impossibles ou incorrects." #: ../Doc/library/statistics.rst:420 msgid "Decimal and Fraction values are supported:" -msgstr "" +msgstr "La fonction gère les nombres décimaux et les fractions :" #: ../Doc/library/statistics.rst:434 msgid "" @@ -511,6 +598,11 @@ msgid "" "representative (e.g. independent and identically distributed), the result " "should be an unbiased estimate of the true population variance." msgstr "" +"Cela correspond à la variance s² de l'échantillon avec correction de Bessel " +"(ou variance à N-1 degrés de liberté). En supposant que les observations " +"sont représentatives de la population (c'est-à-dire indépendantes et " +"identiquement distribuées), alors le résultat est une estimation non biaisée " +"de la variance." #: ../Doc/library/statistics.rst:439 msgid "" @@ -518,6 +610,9 @@ msgid "" "func:`pvariance` function as the *mu* parameter to get the variance of a " "sample." msgstr "" +"Si vous connaissez d'avance la vraie moyenne μ de la population, vous " +"devriez la passer à :func:`pvariance` comme paramètre *mu* pour obtenir la " +"variance de l'échantillon." #: ../Doc/library/statistics.rst:444 msgid "Exceptions" @@ -525,8 +620,9 @@ msgstr "Exceptions" #: ../Doc/library/statistics.rst:446 msgid "A single exception is defined:" -msgstr "" +msgstr "Une seule exception est définie :" #: ../Doc/library/statistics.rst:450 msgid "Subclass of :exc:`ValueError` for statistics-related exceptions." msgstr "" +"Sous-classe de :exc:`ValueError` pour les exceptions liées aux statistiques." diff --git a/library/stdtypes.po b/library/stdtypes.po index 982fbb709..9cc173468 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-09-30 22:27+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:42+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 1.5.4\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/stdtypes.rst:8 msgid "Built-in Types" @@ -83,19 +83,19 @@ msgid "" msgstr "" "Par défaut, tout objet est considéré vrai à moins que sa classe définisse " "soit une méthode :meth:`__bool__` renvoyant ``False`` soit une méthode :meth:" -"`__len__` renvoyant zéro lorsqu'elle est appelée avec l'objet. [1]_ Voici " -"la majorité des objets natifs considérés comme étant faux :" +"`__len__` renvoyant zéro lorsqu'elle est appelée avec l'objet. [1]_ Voici la " +"majorité des objets natifs considérés comme étant faux :" #: ../Doc/library/stdtypes.rst:55 msgid "constants defined to be false: ``None`` and ``False``." -msgstr "les constantes définies comme étant fausses : ``None`` et ``False``." +msgstr "les constantes définies comme étant fausses : ``None`` et ``False``." #: ../Doc/library/stdtypes.rst:57 msgid "" "zero of any numeric type: ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " "``Fraction(0, 1)``" msgstr "" -"zéro de tout type numérique: ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " +"zéro de tout type numérique : ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " "``Fraction(0, 1)``" #: ../Doc/library/stdtypes.rst:60 @@ -103,7 +103,7 @@ msgid "" "empty sequences and collections: ``''``, ``()``, ``[]``, ``{}``, ``set()``, " "``range(0)``" msgstr "" -"Les chaînes et collections vides : ``''``, ``()``, ``[]``, ``{}``, " +"les chaînes et collections vides : ``''``, ``()``, ``[]``, ``{}``, " "``set()``, ``range(0)``" #: ../Doc/library/stdtypes.rst:69 @@ -115,35 +115,35 @@ msgid "" msgstr "" "Les opérations et fonctions natives dont le résultat est booléen donnent " "toujours ``0`` ou ``False`` pour faux et ``1`` ou ``True`` pour vrai, sauf " -"indication contraire. (Exception importante : les opérations booléennes " +"indication contraire. (Exception importante : les opérations booléennes " "``or`` et ``and`` renvoient toujours l'une de leurs opérandes.)" #: ../Doc/library/stdtypes.rst:78 -msgid "Boolean Operations --- :keyword:`and`, :keyword:`or`, :keyword:`not`" +msgid "Boolean Operations --- :keyword:`!and`, :keyword:`!or`, :keyword:`!not`" msgstr "" -"Opérations booléennes --- :keyword:`and`, :keyword:`or`, :keyword:`not`" +"Opérations booléennes --- :keyword:`!and`, :keyword:`!or`, :keyword:`!not`" #: ../Doc/library/stdtypes.rst:82 msgid "These are the Boolean operations, ordered by ascending priority:" -msgstr "Ce sont les opérations booléennes, classées par priorité ascendante :" +msgstr "Ce sont les opérations booléennes, classées par priorité ascendante :" #: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:143 -#: ../Doc/library/stdtypes.rst:271 ../Doc/library/stdtypes.rst:360 -#: ../Doc/library/stdtypes.rst:410 ../Doc/library/stdtypes.rst:852 -#: ../Doc/library/stdtypes.rst:1047 +#: ../Doc/library/stdtypes.rst:275 ../Doc/library/stdtypes.rst:364 +#: ../Doc/library/stdtypes.rst:414 ../Doc/library/stdtypes.rst:856 +#: ../Doc/library/stdtypes.rst:1051 msgid "Operation" msgstr "Opération" -#: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:271 -#: ../Doc/library/stdtypes.rst:360 ../Doc/library/stdtypes.rst:410 -#: ../Doc/library/stdtypes.rst:852 ../Doc/library/stdtypes.rst:1047 +#: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:275 +#: ../Doc/library/stdtypes.rst:364 ../Doc/library/stdtypes.rst:414 +#: ../Doc/library/stdtypes.rst:856 ../Doc/library/stdtypes.rst:1051 msgid "Result" msgstr "Résultat" -#: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:271 -#: ../Doc/library/stdtypes.rst:410 ../Doc/library/stdtypes.rst:852 -#: ../Doc/library/stdtypes.rst:1047 ../Doc/library/stdtypes.rst:2185 -#: ../Doc/library/stdtypes.rst:3307 +#: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:275 +#: ../Doc/library/stdtypes.rst:414 ../Doc/library/stdtypes.rst:856 +#: ../Doc/library/stdtypes.rst:1051 ../Doc/library/stdtypes.rst:2199 +#: ../Doc/library/stdtypes.rst:3331 msgid "Notes" msgstr "Notes" @@ -155,10 +155,10 @@ msgstr "``x or y``" msgid "if *x* is false, then *y*, else *x*" msgstr "si *x* est faux, alors *y*, sinon *x*" -#: ../Doc/library/stdtypes.rst:87 ../Doc/library/stdtypes.rst:281 -#: ../Doc/library/stdtypes.rst:854 ../Doc/library/stdtypes.rst:857 -#: ../Doc/library/stdtypes.rst:1058 ../Doc/library/stdtypes.rst:2191 -#: ../Doc/library/stdtypes.rst:3313 +#: ../Doc/library/stdtypes.rst:87 ../Doc/library/stdtypes.rst:285 +#: ../Doc/library/stdtypes.rst:858 ../Doc/library/stdtypes.rst:861 +#: ../Doc/library/stdtypes.rst:1062 ../Doc/library/stdtypes.rst:2205 +#: ../Doc/library/stdtypes.rst:3337 msgid "\\(1)" msgstr "\\(1)" @@ -170,10 +170,10 @@ msgstr "``x and y``" msgid "if *x* is false, then *x*, else *y*" msgstr "si *x* est faux, alors *x*, sinon *y*" -#: ../Doc/library/stdtypes.rst:90 ../Doc/library/stdtypes.rst:284 -#: ../Doc/library/stdtypes.rst:304 ../Doc/library/stdtypes.rst:1086 -#: ../Doc/library/stdtypes.rst:2195 ../Doc/library/stdtypes.rst:2197 -#: ../Doc/library/stdtypes.rst:3317 ../Doc/library/stdtypes.rst:3319 +#: ../Doc/library/stdtypes.rst:90 ../Doc/library/stdtypes.rst:288 +#: ../Doc/library/stdtypes.rst:308 ../Doc/library/stdtypes.rst:1090 +#: ../Doc/library/stdtypes.rst:2209 ../Doc/library/stdtypes.rst:2211 +#: ../Doc/library/stdtypes.rst:3341 ../Doc/library/stdtypes.rst:3343 msgid "\\(2)" msgstr "\\(2)" @@ -185,19 +185,19 @@ msgstr "``not x``" msgid "if *x* is false, then ``True``, else ``False``" msgstr "si *x* est faux, alors ``True``, sinon ``False``" -#: ../Doc/library/stdtypes.rst:93 ../Doc/library/stdtypes.rst:866 -#: ../Doc/library/stdtypes.rst:1089 ../Doc/library/stdtypes.rst:2199 -#: ../Doc/library/stdtypes.rst:2201 ../Doc/library/stdtypes.rst:2203 -#: ../Doc/library/stdtypes.rst:2205 ../Doc/library/stdtypes.rst:3321 -#: ../Doc/library/stdtypes.rst:3323 ../Doc/library/stdtypes.rst:3325 -#: ../Doc/library/stdtypes.rst:3327 +#: ../Doc/library/stdtypes.rst:93 ../Doc/library/stdtypes.rst:870 +#: ../Doc/library/stdtypes.rst:1093 ../Doc/library/stdtypes.rst:2213 +#: ../Doc/library/stdtypes.rst:2215 ../Doc/library/stdtypes.rst:2217 +#: ../Doc/library/stdtypes.rst:2219 ../Doc/library/stdtypes.rst:3345 +#: ../Doc/library/stdtypes.rst:3347 ../Doc/library/stdtypes.rst:3349 +#: ../Doc/library/stdtypes.rst:3351 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/stdtypes.rst:102 ../Doc/library/stdtypes.rst:315 -#: ../Doc/library/stdtypes.rst:428 ../Doc/library/stdtypes.rst:893 -#: ../Doc/library/stdtypes.rst:1097 ../Doc/library/stdtypes.rst:2231 -#: ../Doc/library/stdtypes.rst:3357 +#: ../Doc/library/stdtypes.rst:102 ../Doc/library/stdtypes.rst:319 +#: ../Doc/library/stdtypes.rst:432 ../Doc/library/stdtypes.rst:897 +#: ../Doc/library/stdtypes.rst:1101 ../Doc/library/stdtypes.rst:2245 +#: ../Doc/library/stdtypes.rst:3381 msgid "Notes:" msgstr "Notes :" @@ -206,7 +206,7 @@ msgid "" "This is a short-circuit operator, so it only evaluates the second argument " "if the first one is false." msgstr "" -"Ceci est un opérateur court-circuit : il n'évalue le deuxième argument que " +"Ceci est un opérateur court-circuit : il n'évalue le deuxième argument que " "si le premier est faux." #: ../Doc/library/stdtypes.rst:109 @@ -240,18 +240,18 @@ msgid "" msgstr "" "Il y a huit opérations de comparaison en Python. Elles ont toutes la même " "priorité (qui est supérieure à celle des opérations booléennes). Les " -"comparaisons peuvent être enchaînées arbitrairement; par exemple, ``x < y <= " -"z`` est équivalent à ``x < y and y <= z``, sauf que *y* n'est évalué qu'une " -"seule fois (mais dans les deux cas *z* n'est pas évalué du tout quand ``x < " -"y`` est faux)." +"comparaisons peuvent être enchaînées arbitrairement ; par exemple, ``x < y " +"<= z`` est équivalent à ``x < y and y <= z``, sauf que *y* n'est évalué " +"qu'une seule fois (mais dans les deux cas *z* n'est pas évalué du tout quand " +"``x < y`` est faux)." #: ../Doc/library/stdtypes.rst:140 msgid "This table summarizes the comparison operations:" -msgstr "Ce tableau résume les opérations de comparaison :" +msgstr "Ce tableau résume les opérations de comparaison :" -#: ../Doc/library/stdtypes.rst:143 ../Doc/library/stdtypes.rst:2162 -#: ../Doc/library/stdtypes.rst:2185 ../Doc/library/stdtypes.rst:3284 -#: ../Doc/library/stdtypes.rst:3307 +#: ../Doc/library/stdtypes.rst:143 ../Doc/library/stdtypes.rst:2176 +#: ../Doc/library/stdtypes.rst:2199 ../Doc/library/stdtypes.rst:3308 +#: ../Doc/library/stdtypes.rst:3331 msgid "Meaning" msgstr "Signification" @@ -383,7 +383,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:206 msgid "Numeric Types --- :class:`int`, :class:`float`, :class:`complex`" -msgstr "Types numériques --- :class:`int`, :class:`float`, :class:`complex`" +msgstr "Types numériques — :class:`int`, :class:`float`, :class:`complex`" #: ../Doc/library/stdtypes.rst:216 msgid "" @@ -433,7 +433,7 @@ msgstr "" "pouvez ajouter à un nombre entier ou un à virgule flottante pour obtenir un " "nombre complexe avec une partie réelle et une partie imaginaire." -#: ../Doc/library/stdtypes.rst:259 +#: ../Doc/library/stdtypes.rst:263 msgid "" "Python fully supports mixed arithmetic: when a binary arithmetic operator " "has operands of different numeric types, the operand with the \"narrower\" " @@ -452,7 +452,7 @@ msgstr "" "et :func:`complex` peuvent être utilisé pour produire des nombres d'un type " "spécifique." -#: ../Doc/library/stdtypes.rst:266 +#: ../Doc/library/stdtypes.rst:270 msgid "" "All numeric types (except complex) support the following operations, sorted " "by ascending priority (all numeric operations have a higher priority than " @@ -462,123 +462,123 @@ msgstr "" "classées par priorité ascendante (toutes les opérations numériques ont une " "priorité plus élevée que les opérations de comparaison) :" -#: ../Doc/library/stdtypes.rst:271 +#: ../Doc/library/stdtypes.rst:275 msgid "Full documentation" msgstr "Documentation complète" -#: ../Doc/library/stdtypes.rst:273 +#: ../Doc/library/stdtypes.rst:277 msgid "``x + y``" msgstr "``x + y``" -#: ../Doc/library/stdtypes.rst:273 +#: ../Doc/library/stdtypes.rst:277 msgid "sum of *x* and *y*" msgstr "somme de *x* et *y*" -#: ../Doc/library/stdtypes.rst:275 +#: ../Doc/library/stdtypes.rst:279 msgid "``x - y``" msgstr "``x - y``" -#: ../Doc/library/stdtypes.rst:275 +#: ../Doc/library/stdtypes.rst:279 msgid "difference of *x* and *y*" msgstr "différence de *x* et *y*" -#: ../Doc/library/stdtypes.rst:277 +#: ../Doc/library/stdtypes.rst:281 msgid "``x * y``" msgstr "``x * y``" -#: ../Doc/library/stdtypes.rst:277 +#: ../Doc/library/stdtypes.rst:281 msgid "product of *x* and *y*" msgstr "produit de *x* et *y*" -#: ../Doc/library/stdtypes.rst:279 +#: ../Doc/library/stdtypes.rst:283 msgid "``x / y``" msgstr "``x / y``" -#: ../Doc/library/stdtypes.rst:279 +#: ../Doc/library/stdtypes.rst:283 msgid "quotient of *x* and *y*" msgstr "quotient de *x* et *y*" -#: ../Doc/library/stdtypes.rst:281 +#: ../Doc/library/stdtypes.rst:285 msgid "``x // y``" msgstr "``x // y``" -#: ../Doc/library/stdtypes.rst:281 +#: ../Doc/library/stdtypes.rst:285 msgid "floored quotient of *x* and *y*" msgstr "quotient entier de *x* et *y*" -#: ../Doc/library/stdtypes.rst:284 +#: ../Doc/library/stdtypes.rst:288 msgid "``x % y``" msgstr "``x % y``" -#: ../Doc/library/stdtypes.rst:284 +#: ../Doc/library/stdtypes.rst:288 msgid "remainder of ``x / y``" msgstr "reste de ``x / y``" -#: ../Doc/library/stdtypes.rst:286 +#: ../Doc/library/stdtypes.rst:290 msgid "``-x``" msgstr "``-x``" -#: ../Doc/library/stdtypes.rst:286 +#: ../Doc/library/stdtypes.rst:290 msgid "*x* negated" msgstr "négatif de *x*" -#: ../Doc/library/stdtypes.rst:288 +#: ../Doc/library/stdtypes.rst:292 msgid "``+x``" msgstr "``+x``" -#: ../Doc/library/stdtypes.rst:288 +#: ../Doc/library/stdtypes.rst:292 msgid "*x* unchanged" msgstr "*x* inchangé" -#: ../Doc/library/stdtypes.rst:290 +#: ../Doc/library/stdtypes.rst:294 msgid "``abs(x)``" msgstr "``abs(x)``" -#: ../Doc/library/stdtypes.rst:290 +#: ../Doc/library/stdtypes.rst:294 msgid "absolute value or magnitude of *x*" msgstr "valeur absolue de *x*" -#: ../Doc/library/stdtypes.rst:290 +#: ../Doc/library/stdtypes.rst:294 msgid ":func:`abs`" msgstr ":func:`abs`" -#: ../Doc/library/stdtypes.rst:293 +#: ../Doc/library/stdtypes.rst:297 msgid "``int(x)``" msgstr "``int(x)``" -#: ../Doc/library/stdtypes.rst:293 +#: ../Doc/library/stdtypes.rst:297 msgid "*x* converted to integer" msgstr "*x* converti en nombre entier" -#: ../Doc/library/stdtypes.rst:293 +#: ../Doc/library/stdtypes.rst:297 msgid "\\(3)\\(6)" msgstr "\\(3)\\(6)" -#: ../Doc/library/stdtypes.rst:293 +#: ../Doc/library/stdtypes.rst:297 msgid ":func:`int`" msgstr ":func:`int`" -#: ../Doc/library/stdtypes.rst:295 +#: ../Doc/library/stdtypes.rst:299 msgid "``float(x)``" msgstr "``float(x)``" -#: ../Doc/library/stdtypes.rst:295 +#: ../Doc/library/stdtypes.rst:299 msgid "*x* converted to floating point" msgstr "*x* converti en nombre à virgule flottante" -#: ../Doc/library/stdtypes.rst:295 +#: ../Doc/library/stdtypes.rst:299 msgid "\\(4)\\(6)" msgstr "\\(4)\\(6)" -#: ../Doc/library/stdtypes.rst:295 +#: ../Doc/library/stdtypes.rst:299 msgid ":func:`float`" msgstr ":func:`float`" -#: ../Doc/library/stdtypes.rst:297 +#: ../Doc/library/stdtypes.rst:301 msgid "``complex(re, im)``" msgstr "``complex(re, im)``" -#: ../Doc/library/stdtypes.rst:297 +#: ../Doc/library/stdtypes.rst:301 msgid "" "a complex number with real part *re*, imaginary part *im*. *im* defaults to " "zero." @@ -586,60 +586,60 @@ msgstr "" "un nombre complexe avec *re* pour partie réelle et *im* pour partie " "imaginaire. *im* vaut zéro par défaut." -#: ../Doc/library/stdtypes.rst:297 ../Doc/library/stdtypes.rst:1079 -#: ../Doc/library/stdtypes.rst:2193 ../Doc/library/stdtypes.rst:3344 +#: ../Doc/library/stdtypes.rst:301 ../Doc/library/stdtypes.rst:1083 +#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:3368 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/library/stdtypes.rst:297 +#: ../Doc/library/stdtypes.rst:301 msgid ":func:`complex`" msgstr ":func:`complex`" -#: ../Doc/library/stdtypes.rst:301 +#: ../Doc/library/stdtypes.rst:305 msgid "``c.conjugate()``" msgstr "``c.conjugate()``" -#: ../Doc/library/stdtypes.rst:301 +#: ../Doc/library/stdtypes.rst:305 msgid "conjugate of the complex number *c*" msgstr "conjugué du nombre complexe *c*" -#: ../Doc/library/stdtypes.rst:304 +#: ../Doc/library/stdtypes.rst:308 msgid "``divmod(x, y)``" msgstr "``divmod(x, y)``" -#: ../Doc/library/stdtypes.rst:304 +#: ../Doc/library/stdtypes.rst:308 msgid "the pair ``(x // y, x % y)``" msgstr "la paire ``(x // y, x % y)``" -#: ../Doc/library/stdtypes.rst:304 +#: ../Doc/library/stdtypes.rst:308 msgid ":func:`divmod`" msgstr ":func:`divmod`" -#: ../Doc/library/stdtypes.rst:306 +#: ../Doc/library/stdtypes.rst:310 msgid "``pow(x, y)``" msgstr "``pow(x, y)``" -#: ../Doc/library/stdtypes.rst:306 ../Doc/library/stdtypes.rst:308 +#: ../Doc/library/stdtypes.rst:310 ../Doc/library/stdtypes.rst:312 msgid "*x* to the power *y*" msgstr "*x* à la puissance *y*" -#: ../Doc/library/stdtypes.rst:306 ../Doc/library/stdtypes.rst:308 -#: ../Doc/library/stdtypes.rst:1068 ../Doc/library/stdtypes.rst:1071 -#: ../Doc/library/stdtypes.rst:2218 ../Doc/library/stdtypes.rst:2221 -#: ../Doc/library/stdtypes.rst:2224 ../Doc/library/stdtypes.rst:3340 -#: ../Doc/library/stdtypes.rst:3347 +#: ../Doc/library/stdtypes.rst:310 ../Doc/library/stdtypes.rst:312 +#: ../Doc/library/stdtypes.rst:1072 ../Doc/library/stdtypes.rst:1075 +#: ../Doc/library/stdtypes.rst:2232 ../Doc/library/stdtypes.rst:2235 +#: ../Doc/library/stdtypes.rst:2238 ../Doc/library/stdtypes.rst:3364 +#: ../Doc/library/stdtypes.rst:3371 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/library/stdtypes.rst:306 +#: ../Doc/library/stdtypes.rst:310 msgid ":func:`pow`" msgstr ":func:`pow`" -#: ../Doc/library/stdtypes.rst:308 +#: ../Doc/library/stdtypes.rst:312 msgid "``x ** y``" msgstr "``x ** y``" -#: ../Doc/library/stdtypes.rst:318 +#: ../Doc/library/stdtypes.rst:322 msgid "" "Also referred to as integer division. The resultant value is a whole " "integer, though the result's type is not necessarily int. The result is " @@ -652,7 +652,7 @@ msgstr "" "``(-1)//2`` vaut ``-1``, ``1//(-2)`` vaut ``-1``, et ``(-1)//(-2)`` vaut " "``0``." -#: ../Doc/library/stdtypes.rst:324 +#: ../Doc/library/stdtypes.rst:328 msgid "" "Not for complex numbers. Instead convert to floats using :func:`abs` if " "appropriate." @@ -660,7 +660,7 @@ msgstr "" "Pas pour les nombres complexes. Convertissez-les plutôt en nombres flottants " "à l'aide de :func:`abs` si c'est approprié." -#: ../Doc/library/stdtypes.rst:336 +#: ../Doc/library/stdtypes.rst:340 msgid "" "Conversion from floating point to integer may round or truncate as in C; see " "functions :func:`math.floor` and :func:`math.ceil` for well-defined " @@ -670,7 +670,7 @@ msgstr "" "en C ; voir les fonctions :func:`math.floor` et :func:`math.ceil` pour des " "conversions bien définies." -#: ../Doc/library/stdtypes.rst:341 +#: ../Doc/library/stdtypes.rst:345 msgid "" "float also accepts the strings \"nan\" and \"inf\" with an optional prefix " "\"+\" or \"-\" for Not a Number (NaN) and positive or negative infinity." @@ -678,7 +678,7 @@ msgstr "" "*float* accepte aussi les chaînes *nan* et *inf* avec un préfixe optionnel ``" "+`` ou ``-`` pour *Not a Number* (*NaN*) et les infinis positif ou négatif." -#: ../Doc/library/stdtypes.rst:345 +#: ../Doc/library/stdtypes.rst:349 msgid "" "Python defines ``pow(0, 0)`` and ``0 ** 0`` to be ``1``, as is common for " "programming languages." @@ -686,7 +686,7 @@ msgstr "" "Python définit ``pow(0, 0)`` et ``0 ** 0`` valant ``1``, puisque c'est " "courant pour les langages de programmation, et logique." -#: ../Doc/library/stdtypes.rst:349 +#: ../Doc/library/stdtypes.rst:353 msgid "" "The numeric literals accepted include the digits ``0`` to ``9`` or any " "Unicode equivalent (code points with the ``Nd`` property)." @@ -694,7 +694,7 @@ msgstr "" "Les littéraux numériques acceptés comprennent les chiffres ``0`` à ``9`` ou " "tout équivalent Unicode (caractères avec la propriété ``Nd``)." -#: ../Doc/library/stdtypes.rst:352 +#: ../Doc/library/stdtypes.rst:356 msgid "" "See http://www.unicode.org/Public/10.0.0/ucd/extracted/DerivedNumericType." "txt for a complete list of code points with the ``Nd`` property." @@ -702,7 +702,7 @@ msgstr "" "Voir http://www.unicode.org/Public/10.0.0/ucd/extracted/DerivedNumericType." "txt pour une liste complète des caractères avec la propriété ``Nd``." -#: ../Doc/library/stdtypes.rst:356 +#: ../Doc/library/stdtypes.rst:360 msgid "" "All :class:`numbers.Real` types (:class:`int` and :class:`float`) also " "include the following operations:" @@ -710,19 +710,19 @@ msgstr "" "Tous types :class:`numbers.Real` (:class:`int` et :class:`float`) " "comprennent également les opérations suivantes :" -#: ../Doc/library/stdtypes.rst:362 +#: ../Doc/library/stdtypes.rst:366 msgid ":func:`math.trunc(\\ x) `" msgstr ":func:`math.trunc(\\ x) `" -#: ../Doc/library/stdtypes.rst:362 +#: ../Doc/library/stdtypes.rst:366 msgid "*x* truncated to :class:`~numbers.Integral`" msgstr "*x* tronqué à l':class:`~numbers.Integral`" -#: ../Doc/library/stdtypes.rst:365 +#: ../Doc/library/stdtypes.rst:369 msgid ":func:`round(x[, n]) `" msgstr ":func:`round(x[, n]) `" -#: ../Doc/library/stdtypes.rst:365 +#: ../Doc/library/stdtypes.rst:369 msgid "" "*x* rounded to *n* digits, rounding half to even. If *n* is omitted, it " "defaults to 0." @@ -730,23 +730,23 @@ msgstr "" "*x* arrondi à *n* chiffres, arrondissant la moitié au pair. Si *n* est omis, " "la valeur par défaut à 0." -#: ../Doc/library/stdtypes.rst:369 +#: ../Doc/library/stdtypes.rst:373 msgid ":func:`math.floor(\\ x) `" msgstr ":func:`math.floor(\\ x) `" -#: ../Doc/library/stdtypes.rst:369 +#: ../Doc/library/stdtypes.rst:373 msgid "the greatest :class:`~numbers.Integral` <= *x*" msgstr "le plus grand :class:`~numbers.Integral` <= *x*" -#: ../Doc/library/stdtypes.rst:372 +#: ../Doc/library/stdtypes.rst:376 msgid ":func:`math.ceil(x) `" msgstr ":func:`math.ceil(x) `" -#: ../Doc/library/stdtypes.rst:372 +#: ../Doc/library/stdtypes.rst:376 msgid "the least :class:`~numbers.Integral` >= *x*" msgstr "le plus petit :class:`~numbers.Integral` >= *x*" -#: ../Doc/library/stdtypes.rst:376 +#: ../Doc/library/stdtypes.rst:380 msgid "" "For additional numeric operations see the :mod:`math` and :mod:`cmath` " "modules." @@ -754,18 +754,21 @@ msgstr "" "Pour d'autres opérations numériques voir les modules :mod:`math` et :mod:" "`cmath`." -#: ../Doc/library/stdtypes.rst:385 +#: ../Doc/library/stdtypes.rst:389 msgid "Bitwise Operations on Integer Types" msgstr "Opérations sur les bits des nombres entiers" -#: ../Doc/library/stdtypes.rst:399 +#: ../Doc/library/stdtypes.rst:403 msgid "" "Bitwise operations only make sense for integers. The result of bitwise " "operations is calculated as though carried out in two's complement with an " "infinite number of sign bits." msgstr "" +"Les opérations bit à bit n'ont de sens que pour les entiers relatifs. Le " +"résultat d'une opération bit à bit est calculé comme si elle était effectuée " +"en complément à deux avec un nombre infini de bits de signe." -#: ../Doc/library/stdtypes.rst:403 +#: ../Doc/library/stdtypes.rst:407 msgid "" "The priorities of the binary bitwise operations are all lower than the " "numeric operations and higher than the comparisons; the unary operation " @@ -777,83 +780,83 @@ msgstr "" "l'opération unaire ``~`` a la même priorité que les autres opérations " "numériques unaires (``+`` et ``-``)." -#: ../Doc/library/stdtypes.rst:407 +#: ../Doc/library/stdtypes.rst:411 msgid "This table lists the bitwise operations sorted in ascending priority:" msgstr "" "Ce tableau répertorie les opérations binaires triées par priorité " "ascendante :" -#: ../Doc/library/stdtypes.rst:412 +#: ../Doc/library/stdtypes.rst:416 msgid "``x | y``" msgstr "``x | y``" -#: ../Doc/library/stdtypes.rst:412 +#: ../Doc/library/stdtypes.rst:416 msgid "bitwise :dfn:`or` of *x* and *y*" msgstr ":dfn:`ou ` binaire de *x* et *y*" -#: ../Doc/library/stdtypes.rst:412 ../Doc/library/stdtypes.rst:415 -#: ../Doc/library/stdtypes.rst:418 ../Doc/library/stdtypes.rst:1092 -#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:2211 -#: ../Doc/library/stdtypes.rst:3329 ../Doc/library/stdtypes.rst:3333 +#: ../Doc/library/stdtypes.rst:416 ../Doc/library/stdtypes.rst:419 +#: ../Doc/library/stdtypes.rst:422 ../Doc/library/stdtypes.rst:1096 +#: ../Doc/library/stdtypes.rst:2221 ../Doc/library/stdtypes.rst:2225 +#: ../Doc/library/stdtypes.rst:3353 ../Doc/library/stdtypes.rst:3357 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/library/stdtypes.rst:415 +#: ../Doc/library/stdtypes.rst:419 msgid "``x ^ y``" msgstr "``x ^ y``" -#: ../Doc/library/stdtypes.rst:415 +#: ../Doc/library/stdtypes.rst:419 msgid "bitwise :dfn:`exclusive or` of *x* and *y*" msgstr ":dfn:`ou ` exclusive binaire de *x* et *y*" -#: ../Doc/library/stdtypes.rst:418 +#: ../Doc/library/stdtypes.rst:422 msgid "``x & y``" msgstr "``x & y``" -#: ../Doc/library/stdtypes.rst:418 +#: ../Doc/library/stdtypes.rst:422 msgid "bitwise :dfn:`and` of *x* and *y*" msgstr ":dfn:`et binaire ` de *x* et *y*" -#: ../Doc/library/stdtypes.rst:421 +#: ../Doc/library/stdtypes.rst:425 msgid "``x << n``" msgstr "``x << n``" -#: ../Doc/library/stdtypes.rst:421 +#: ../Doc/library/stdtypes.rst:425 msgid "*x* shifted left by *n* bits" msgstr "*x* décalé vers la gauche de *n* bits" -#: ../Doc/library/stdtypes.rst:421 +#: ../Doc/library/stdtypes.rst:425 msgid "(1)(2)" msgstr "(1)(2)" -#: ../Doc/library/stdtypes.rst:423 +#: ../Doc/library/stdtypes.rst:427 msgid "``x >> n``" msgstr "``x >> n``" -#: ../Doc/library/stdtypes.rst:423 +#: ../Doc/library/stdtypes.rst:427 msgid "*x* shifted right by *n* bits" msgstr "*x* décalé vers la droite de *n* bits" -#: ../Doc/library/stdtypes.rst:423 +#: ../Doc/library/stdtypes.rst:427 msgid "(1)(3)" msgstr "(1)(3)" -#: ../Doc/library/stdtypes.rst:425 +#: ../Doc/library/stdtypes.rst:429 msgid "``~x``" msgstr "``~x``" -#: ../Doc/library/stdtypes.rst:425 +#: ../Doc/library/stdtypes.rst:429 msgid "the bits of *x* inverted" msgstr "les bits de *x*, inversés" -#: ../Doc/library/stdtypes.rst:431 +#: ../Doc/library/stdtypes.rst:435 msgid "" "Negative shift counts are illegal and cause a :exc:`ValueError` to be raised." msgstr "" "Des valeurs de décalage négatives sont illégales et provoquent une " "exception :exc:`ValueError`." -#: ../Doc/library/stdtypes.rst:434 +#: ../Doc/library/stdtypes.rst:438 msgid "" "A left shift by *n* bits is equivalent to multiplication by ``pow(2, n)`` " "without overflow check." @@ -861,7 +864,7 @@ msgstr "" "Un décalage à gauche de *n* bits est équivalent à la multiplication par " "``pow(2, n)`` sans vérification de débordement." -#: ../Doc/library/stdtypes.rst:438 +#: ../Doc/library/stdtypes.rst:442 msgid "" "A right shift by *n* bits is equivalent to division by ``pow(2, n)`` without " "overflow check." @@ -869,19 +872,24 @@ msgstr "" "Un décalage à droite de *n* les bits est équivalent à la division par " "``pow(2, n)`` sans vérification de débordement." -#: ../Doc/library/stdtypes.rst:442 +#: ../Doc/library/stdtypes.rst:446 msgid "" "Performing these calculations with at least one extra sign extension bit in " "a finite two's complement representation (a working bit-width of ``1 + max(x." -"bit_length(), y.bit_length()`` or more) is sufficient to get the same result " -"as if there were an infinite number of sign bits." +"bit_length(), y.bit_length())`` or more) is sufficient to get the same " +"result as if there were an infinite number of sign bits." msgstr "" +"Effectuer ces calculs avec au moins un bit d'extension de signe " +"supplémentaire dans une représentation finie du complément à deux éléments " +"(une largeur de bit fonctionnelle de ``1 + max(x.bit_length(), y." +"bit_length()`` ou plus) est suffisante pour obtenir le même résultat que " +"s'il y avait un nombre infini de bits de signe." -#: ../Doc/library/stdtypes.rst:449 +#: ../Doc/library/stdtypes.rst:453 msgid "Additional Methods on Integer Types" msgstr "Méthodes supplémentaires sur les entiers" -#: ../Doc/library/stdtypes.rst:451 +#: ../Doc/library/stdtypes.rst:455 msgid "" "The int type implements the :class:`numbers.Integral` :term:`abstract base " "class`. In addition, it provides a few more methods:" @@ -890,15 +898,15 @@ msgstr "" "class>` :class:`numbers.Integral`. Il fournit aussi quelques autres " "méthodes :" -#: ../Doc/library/stdtypes.rst:456 +#: ../Doc/library/stdtypes.rst:460 msgid "" "Return the number of bits necessary to represent an integer in binary, " "excluding the sign and leading zeros::" msgstr "" "Renvoie le nombre de bits nécessaires pour représenter un nombre entier en " -"binaire, à l'exclusion du signe et des zéros non significatifs : ::" +"binaire, à l'exclusion du signe et des zéros non significatifs ::" -#: ../Doc/library/stdtypes.rst:465 +#: ../Doc/library/stdtypes.rst:469 msgid "" "More precisely, if ``x`` is nonzero, then ``x.bit_length()`` is the unique " "positive integer ``k`` such that ``2**(k-1) <= abs(x) < 2**k``. " @@ -912,15 +920,15 @@ msgstr "" "correctement arrondi, ``k = 1 + int(log(abs(x), 2))``. Si ``x`` est nul, " "alors ``x.bit_length()`` donne ``0``." -#: ../Doc/library/stdtypes.rst:471 +#: ../Doc/library/stdtypes.rst:475 msgid "Equivalent to::" -msgstr "Équivalent à : ::" +msgstr "Équivalent à ::" -#: ../Doc/library/stdtypes.rst:482 +#: ../Doc/library/stdtypes.rst:486 msgid "Return an array of bytes representing an integer." msgstr "Renvoie un tableau d'octets représentant un nombre entier." -#: ../Doc/library/stdtypes.rst:494 +#: ../Doc/library/stdtypes.rst:498 msgid "" "The integer is represented using *length* bytes. An :exc:`OverflowError` is " "raised if the integer is not representable with the given number of bytes." @@ -929,7 +937,7 @@ msgstr "" "`OverflowError` est levée s'il n'est pas possible de représenter l'entier " "avec le nombre d'octets donnés." -#: ../Doc/library/stdtypes.rst:498 ../Doc/library/stdtypes.rst:530 +#: ../Doc/library/stdtypes.rst:502 ../Doc/library/stdtypes.rst:534 msgid "" "The *byteorder* argument determines the byte order used to represent the " "integer. If *byteorder* is ``\"big\"``, the most significant byte is at the " @@ -945,7 +953,7 @@ msgstr "" "demander l'ordre natif des octets du système hôte, donnez :data:`sys." "byteorder` comme *byteorder*." -#: ../Doc/library/stdtypes.rst:505 +#: ../Doc/library/stdtypes.rst:509 msgid "" "The *signed* argument determines whether two's complement is used to " "represent the integer. If *signed* is ``False`` and a negative integer is " @@ -957,11 +965,11 @@ msgstr "" "négatif est donné, une exception :exc:`OverflowError` est levée. La valeur " "par défaut pour *signed* est ``False``." -#: ../Doc/library/stdtypes.rst:514 +#: ../Doc/library/stdtypes.rst:518 msgid "Return the integer represented by the given array of bytes." msgstr "Donne le nombre entier représenté par le tableau d'octets fourni." -#: ../Doc/library/stdtypes.rst:527 +#: ../Doc/library/stdtypes.rst:531 msgid "" "The argument *bytes* must either be a :term:`bytes-like object` or an " "iterable producing bytes." @@ -969,7 +977,7 @@ msgstr "" "L'argument *bytes* doit être soit un :term:`bytes-like object` soit un " "itérable produisant des *bytes*." -#: ../Doc/library/stdtypes.rst:537 +#: ../Doc/library/stdtypes.rst:541 msgid "" "The *signed* argument indicates whether two's complement is used to " "represent the integer." @@ -977,11 +985,11 @@ msgstr "" "L'argument *signed* indique si le complément à deux est utilisé pour " "représenter le nombre entier." -#: ../Doc/library/stdtypes.rst:544 +#: ../Doc/library/stdtypes.rst:548 msgid "Additional Methods on Float" msgstr "Méthodes supplémentaires sur les nombres à virgule flottante" -#: ../Doc/library/stdtypes.rst:546 +#: ../Doc/library/stdtypes.rst:550 msgid "" "The float type implements the :class:`numbers.Real` :term:`abstract base " "class`. float also has the following additional methods." @@ -989,7 +997,7 @@ msgstr "" "Le type *float* implémente la :term:`classe de base abstraite ` :class:`numbers.Real` et a également les méthodes suivantes." -#: ../Doc/library/stdtypes.rst:551 +#: ../Doc/library/stdtypes.rst:555 msgid "" "Return a pair of integers whose ratio is exactly equal to the original float " "and with a positive denominator. Raises :exc:`OverflowError` on infinities " @@ -999,15 +1007,15 @@ msgstr "" "nombre d'origine et avec un dénominateur positif. Lève :exc:`OverflowError` " "avec un infini et :exc:`ValueError` avec un NaN." -#: ../Doc/library/stdtypes.rst:558 +#: ../Doc/library/stdtypes.rst:562 msgid "" "Return ``True`` if the float instance is finite with integral value, and " "``False`` otherwise::" msgstr "" "Donne ``True`` si l'instance de *float* est finie avec une valeur entière, " -"et ``False`` autrement : ::" +"et ``False`` autrement ::" -#: ../Doc/library/stdtypes.rst:566 +#: ../Doc/library/stdtypes.rst:570 msgid "" "Two methods support conversion to and from hexadecimal strings. Since " "Python's floats are stored internally as binary numbers, converting a float " @@ -1024,7 +1032,7 @@ msgstr "" "nombres à virgule flottante. Cela peut être utile lors du débogage, et dans " "un travail numérique." -#: ../Doc/library/stdtypes.rst:577 +#: ../Doc/library/stdtypes.rst:581 msgid "" "Return a representation of a floating-point number as a hexadecimal string. " "For finite floating-point numbers, this representation will always include a " @@ -1035,7 +1043,7 @@ msgstr "" "représentation comprendra toujours un préfixe ``0x``, un suffixe ``p``, et " "un exposant." -#: ../Doc/library/stdtypes.rst:585 +#: ../Doc/library/stdtypes.rst:589 msgid "" "Class method to return the float represented by a hexadecimal string *s*. " "The string *s* may have leading and trailing whitespace." @@ -1044,7 +1052,7 @@ msgstr "" "caractères hexadécimale *s*. La chaîne *s* peut contenir des espaces avant " "et après le chiffre." -#: ../Doc/library/stdtypes.rst:590 +#: ../Doc/library/stdtypes.rst:594 msgid "" "Note that :meth:`float.hex` is an instance method, while :meth:`float." "fromhex` is a class method." @@ -1052,11 +1060,11 @@ msgstr "" "Notez que :meth:`float.hex` est une méthode d'instance, alors que :meth:" "`float.fromhex` est une méthode de classe." -#: ../Doc/library/stdtypes.rst:593 +#: ../Doc/library/stdtypes.rst:597 msgid "A hexadecimal string takes the form::" -msgstr "Une chaîne hexadécimale prend la forme : ::" +msgstr "Une chaîne hexadécimale prend la forme ::" -#: ../Doc/library/stdtypes.rst:597 +#: ../Doc/library/stdtypes.rst:601 msgid "" "where the optional ``sign`` may by either ``+`` or ``-``, ``integer`` and " "``fraction`` are strings of hexadecimal digits, and ``exponent`` is a " @@ -1080,7 +1088,7 @@ msgstr "" "chaînes hexadécimales produites en C via un format ``%a`` ou Java via " "``Double.toHexString`` sont acceptées par :meth:`float.fromhex`." -#: ../Doc/library/stdtypes.rst:610 +#: ../Doc/library/stdtypes.rst:614 msgid "" "Note that the exponent is written in decimal rather than hexadecimal, and " "that it gives the power of 2 by which to multiply the coefficient. For " @@ -1092,7 +1100,7 @@ msgstr "" "la chaîne hexadécimale ``0x3.a7p10`` représente le nombre à virgule " "flottante ``(3 + 10./16 + 7./16**2) *2.0**10``, ou ``3740.0`` ::" -#: ../Doc/library/stdtypes.rst:620 +#: ../Doc/library/stdtypes.rst:624 msgid "" "Applying the reverse conversion to ``3740.0`` gives a different hexadecimal " "string representing the same number::" @@ -1100,11 +1108,11 @@ msgstr "" "L'application de la conversion inverse à ``3740.0`` donne une chaîne " "hexadécimale différente représentant le même nombre ::" -#: ../Doc/library/stdtypes.rst:630 +#: ../Doc/library/stdtypes.rst:634 msgid "Hashing of numeric types" msgstr "Hachage des types numériques" -#: ../Doc/library/stdtypes.rst:632 +#: ../Doc/library/stdtypes.rst:636 msgid "" "For numbers ``x`` and ``y``, possibly of different types, it's a requirement " "that ``hash(x) == hash(y)`` whenever ``x == y`` (see the :meth:`__hash__` " @@ -1132,7 +1140,7 @@ msgstr "" "réduction modulo ``P`` pour un nombre ``P`` premier fixe. La valeur de ``P`` " "est disponible comme attribut :attr:`modulus` de :data:`sys.hash_info`." -#: ../Doc/library/stdtypes.rst:647 +#: ../Doc/library/stdtypes.rst:651 msgid "" "Currently, the prime used is ``P = 2**31 - 1`` on machines with 32-bit C " "longs and ``P = 2**61 - 1`` on machines with 64-bit C longs." @@ -1141,11 +1149,11 @@ msgstr "" "dont les *longs* en C sont de 32 bits ``P = 2 ** 61 - 1`` sur des machines " "dont les *longs* en C font 64 bits." -#: ../Doc/library/stdtypes.rst:650 +#: ../Doc/library/stdtypes.rst:654 msgid "Here are the rules in detail:" msgstr "Voici les règles en détail :" -#: ../Doc/library/stdtypes.rst:652 +#: ../Doc/library/stdtypes.rst:656 msgid "" "If ``x = m / n`` is a nonnegative rational number and ``n`` is not divisible " "by ``P``, define ``hash(x)`` as ``m * invmod(n, P) % P``, where ``invmod(n, " @@ -1155,7 +1163,7 @@ msgstr "" "divisible par ``P``, définir ``hash(x)`` comme ``m * invmod(n, P) % P``, où " "``invmod(n, P)`` donne l'inverse de ``n`` modulo ``P``." -#: ../Doc/library/stdtypes.rst:656 +#: ../Doc/library/stdtypes.rst:660 msgid "" "If ``x = m / n`` is a nonnegative rational number and ``n`` is divisible by " "``P`` (but ``m`` is not) then ``n`` has no inverse modulo ``P`` and the rule " @@ -1167,7 +1175,7 @@ msgstr "" "``P`` et la règle ci-dessus n'est pas applicable ; dans ce cas définir " "``hash(x)`` comme étant la valeur de la constante ``sys.hash_info.inf``." -#: ../Doc/library/stdtypes.rst:661 +#: ../Doc/library/stdtypes.rst:665 msgid "" "If ``x = m / n`` is a negative rational number define ``hash(x)`` as ``-" "hash(-x)``. If the resulting hash is ``-1``, replace it with ``-2``." @@ -1175,7 +1183,7 @@ msgstr "" "Si ``x = m / n`` est un nombre rationnel négatif définir ``hash(x)`` comme " "``-hash(-x)``. Si le résultat est ``-1``, le remplacer par ``-2``." -#: ../Doc/library/stdtypes.rst:665 +#: ../Doc/library/stdtypes.rst:669 msgid "" "The particular values ``sys.hash_info.inf``, ``-sys.hash_info.inf`` and " "``sys.hash_info.nan`` are used as hash values for positive infinity, " @@ -1187,7 +1195,7 @@ msgstr "" "positif, l'infini négatif, ou *nans* (respectivement). (Tous les *nans* " "hachables ont la même valeur de hachage.)" -#: ../Doc/library/stdtypes.rst:670 +#: ../Doc/library/stdtypes.rst:674 msgid "" "For a :class:`complex` number ``z``, the hash values of the real and " "imaginary parts are combined by computing ``hash(z.real) + sys.hash_info." @@ -1202,7 +1210,7 @@ msgstr "" "2**(sys.hash_info.width - 1))``. Encore une fois, si le résultat est ``-1``, " "il est remplacé par ``-2``." -#: ../Doc/library/stdtypes.rst:678 +#: ../Doc/library/stdtypes.rst:682 msgid "" "To clarify the above rules, here's some example Python code, equivalent to " "the built-in hash, for computing the hash of a rational number, :class:" @@ -1212,11 +1220,11 @@ msgstr "" "Python, équivalent à la fonction de hachage native, pour calculer le hachage " "d'un nombre rationnel, d'un :class:`float`, ou d'un :class:`complex` ::" -#: ../Doc/library/stdtypes.rst:733 +#: ../Doc/library/stdtypes.rst:737 msgid "Iterator Types" msgstr "Les types itérateurs" -#: ../Doc/library/stdtypes.rst:741 +#: ../Doc/library/stdtypes.rst:745 msgid "" "Python supports a concept of iteration over containers. This is implemented " "using two distinct methods; these are used to allow user-defined classes to " @@ -1228,7 +1236,7 @@ msgstr "" "par l'utilisateur de devenir itérables. Les séquences, décrites plus bas en " "détail, supportent toujours les méthodes d'itération." -#: ../Doc/library/stdtypes.rst:746 +#: ../Doc/library/stdtypes.rst:750 msgid "" "One method needs to be defined for container objects to provide iteration " "support:" @@ -1236,7 +1244,7 @@ msgstr "" "Une méthode doit être définie afin que les objets conteneurs supportent " "l'itération :" -#: ../Doc/library/stdtypes.rst:753 +#: ../Doc/library/stdtypes.rst:757 msgid "" "Return an iterator object. The object is required to support the iterator " "protocol described below. If a container supports different types of " @@ -1256,7 +1264,7 @@ msgstr "" "correspond à l'attribut :c:member:`~PyTypeObject.tp_iter` de la structure du " "type des objets Python dans l'API Python/C." -#: ../Doc/library/stdtypes.rst:762 +#: ../Doc/library/stdtypes.rst:766 msgid "" "The iterator objects themselves are required to support the following two " "methods, which together form the :dfn:`iterator protocol`:" @@ -1264,7 +1272,7 @@ msgstr "" "Les itérateurs eux-mêmes doivent implémenter les deux méthodes suivantes, " "qui forment ensemble le :dfn:`protocole d'itérateur ` :" -#: ../Doc/library/stdtypes.rst:768 +#: ../Doc/library/stdtypes.rst:772 msgid "" "Return the iterator object itself. This is required to allow both " "containers and iterators to be used with the :keyword:`for` and :keyword:" @@ -1277,7 +1285,7 @@ msgstr "" "l'attribut :c:member:`~PyTypeObject.tp_iter` de la structure des types des " "objets Python dans l'API Python/C." -#: ../Doc/library/stdtypes.rst:776 +#: ../Doc/library/stdtypes.rst:780 msgid "" "Return the next item from the container. If there are no further items, " "raise the :exc:`StopIteration` exception. This method corresponds to the :c:" @@ -1289,7 +1297,7 @@ msgstr "" "l'attribut :c:member:`PyTypeObject.tp_iternext` de la structure du type des " "objets Python dans l'API Python/C." -#: ../Doc/library/stdtypes.rst:781 +#: ../Doc/library/stdtypes.rst:785 msgid "" "Python defines several iterator objects to support iteration over general " "and specific sequence types, dictionaries, and other more specialized " @@ -1301,7 +1309,7 @@ msgstr "" "plus spécialisées. Les types spécifiques ne sont pas importants au-delà de " "leur implémentation du protocole d'itération." -#: ../Doc/library/stdtypes.rst:786 +#: ../Doc/library/stdtypes.rst:790 msgid "" "Once an iterator's :meth:`~iterator.__next__` method raises :exc:" "`StopIteration`, it must continue to do so on subsequent calls. " @@ -1312,11 +1320,11 @@ msgstr "" "Implémentations qui ne respectent pas cette propriété sont considérées " "cassées." -#: ../Doc/library/stdtypes.rst:794 +#: ../Doc/library/stdtypes.rst:798 msgid "Generator Types" msgstr "Types générateurs" -#: ../Doc/library/stdtypes.rst:796 +#: ../Doc/library/stdtypes.rst:800 msgid "" "Python's :term:`generator`\\s provide a convenient way to implement the " "iterator protocol. If a container object's :meth:`__iter__` method is " @@ -1333,11 +1341,11 @@ msgstr "" "générateurs peuvent être trouvés dans :ref:`la documentation de l'expression " "yield `." -#: ../Doc/library/stdtypes.rst:808 +#: ../Doc/library/stdtypes.rst:812 msgid "Sequence Types --- :class:`list`, :class:`tuple`, :class:`range`" -msgstr "Types séquentiels --- :class:`list`, :class:`tuple`, :class:`range`" +msgstr "Types séquentiels — :class:`list`, :class:`tuple`, :class:`range`" -#: ../Doc/library/stdtypes.rst:810 +#: ../Doc/library/stdtypes.rst:814 msgid "" "There are three basic sequence types: lists, tuples, and range objects. " "Additional sequence types tailored for processing of :ref:`binary data " @@ -1349,11 +1357,11 @@ msgstr "" "`données binaires ` et :ref:`chaînes de caractères ` " "sont décrits dans des sections dédiées." -#: ../Doc/library/stdtypes.rst:819 +#: ../Doc/library/stdtypes.rst:823 msgid "Common Sequence Operations" msgstr "Opérations communes sur les séquences" -#: ../Doc/library/stdtypes.rst:823 +#: ../Doc/library/stdtypes.rst:827 msgid "" "The operations in the following table are supported by most sequence types, " "both mutable and immutable. The :class:`collections.abc.Sequence` ABC is " @@ -1365,7 +1373,7 @@ msgstr "" "class:`collections.abc.Sequence` est fournie pour aider à implémenter " "correctement ces opérations sur les types séquentiels personnalisés." -#: ../Doc/library/stdtypes.rst:828 +#: ../Doc/library/stdtypes.rst:832 msgid "" "This table lists the sequence operations sorted in ascending priority. In " "the table, *s* and *t* are sequences of the same type, *n*, *i*, *j* and *k* " @@ -1377,7 +1385,7 @@ msgstr "" "*n*, *i*, *j* et *k* sont des nombres entiers et *x* est un objet arbitraire " "qui répond à toutes les restrictions de type et de valeur imposée par *s*." -#: ../Doc/library/stdtypes.rst:833 +#: ../Doc/library/stdtypes.rst:837 msgid "" "The ``in`` and ``not in`` operations have the same priorities as the " "comparison operations. The ``+`` (concatenation) and ``*`` (repetition) " @@ -1389,107 +1397,107 @@ msgstr "" "(répétition) ont la même priorité que les opérations numériques " "correspondantes. [3]_" -#: ../Doc/library/stdtypes.rst:854 +#: ../Doc/library/stdtypes.rst:858 msgid "``x in s``" msgstr "``x in s``" -#: ../Doc/library/stdtypes.rst:854 +#: ../Doc/library/stdtypes.rst:858 msgid "``True`` if an item of *s* is equal to *x*, else ``False``" msgstr "``True`` si un élément de *s* est égal à *x*, sinon ``False``" -#: ../Doc/library/stdtypes.rst:857 +#: ../Doc/library/stdtypes.rst:861 msgid "``x not in s``" msgstr "``x not in s``" -#: ../Doc/library/stdtypes.rst:857 +#: ../Doc/library/stdtypes.rst:861 msgid "``False`` if an item of *s* is equal to *x*, else ``True``" msgstr "``False`` si un élément de *s* est égal à *x*, sinon ``True``" -#: ../Doc/library/stdtypes.rst:860 +#: ../Doc/library/stdtypes.rst:864 msgid "``s + t``" msgstr "``s + t``" -#: ../Doc/library/stdtypes.rst:860 +#: ../Doc/library/stdtypes.rst:864 msgid "the concatenation of *s* and *t*" msgstr "la concaténation de *s* et *t*" -#: ../Doc/library/stdtypes.rst:860 +#: ../Doc/library/stdtypes.rst:864 msgid "(6)(7)" msgstr "(6)(7)" -#: ../Doc/library/stdtypes.rst:863 +#: ../Doc/library/stdtypes.rst:867 msgid "``s * n`` or ``n * s``" msgstr "``s * n`` or ``n * s``" -#: ../Doc/library/stdtypes.rst:863 +#: ../Doc/library/stdtypes.rst:867 msgid "equivalent to adding *s* to itself *n* times" msgstr "équivalent à ajouter *s* *n* fois à lui même" -#: ../Doc/library/stdtypes.rst:863 +#: ../Doc/library/stdtypes.rst:867 msgid "(2)(7)" msgstr "(2)(7)" -#: ../Doc/library/stdtypes.rst:866 +#: ../Doc/library/stdtypes.rst:870 msgid "``s[i]``" msgstr "``s[i]``" -#: ../Doc/library/stdtypes.rst:866 +#: ../Doc/library/stdtypes.rst:870 msgid "*i*\\ th item of *s*, origin 0" msgstr "*i*\\ :sup:`e` élément de *s* en commençant par 0" -#: ../Doc/library/stdtypes.rst:868 +#: ../Doc/library/stdtypes.rst:872 msgid "``s[i:j]``" msgstr "``s[i:j]``" -#: ../Doc/library/stdtypes.rst:868 +#: ../Doc/library/stdtypes.rst:872 msgid "slice of *s* from *i* to *j*" msgstr "tranche (*slice*) de *s* de *i* à *j*" -#: ../Doc/library/stdtypes.rst:868 +#: ../Doc/library/stdtypes.rst:872 msgid "(3)(4)" msgstr "(3)(4)" -#: ../Doc/library/stdtypes.rst:870 +#: ../Doc/library/stdtypes.rst:874 msgid "``s[i:j:k]``" msgstr "``s[i:j:k]``" -#: ../Doc/library/stdtypes.rst:870 +#: ../Doc/library/stdtypes.rst:874 msgid "slice of *s* from *i* to *j* with step *k*" msgstr "tranche (*slice*) de *s* de *i* à *j* avec un pas de *k*" -#: ../Doc/library/stdtypes.rst:870 +#: ../Doc/library/stdtypes.rst:874 msgid "(3)(5)" msgstr "(3)(5)" -#: ../Doc/library/stdtypes.rst:873 +#: ../Doc/library/stdtypes.rst:877 msgid "``len(s)``" msgstr "``len(s)``" -#: ../Doc/library/stdtypes.rst:873 +#: ../Doc/library/stdtypes.rst:877 msgid "length of *s*" msgstr "longueur de *s*" -#: ../Doc/library/stdtypes.rst:875 +#: ../Doc/library/stdtypes.rst:879 msgid "``min(s)``" msgstr "``min(s)``" -#: ../Doc/library/stdtypes.rst:875 +#: ../Doc/library/stdtypes.rst:879 msgid "smallest item of *s*" msgstr "plus petit élément de *s*" -#: ../Doc/library/stdtypes.rst:877 +#: ../Doc/library/stdtypes.rst:881 msgid "``max(s)``" msgstr "``max(s)``" -#: ../Doc/library/stdtypes.rst:877 +#: ../Doc/library/stdtypes.rst:881 msgid "largest item of *s*" msgstr "plus grand élément de *s*" -#: ../Doc/library/stdtypes.rst:879 +#: ../Doc/library/stdtypes.rst:883 msgid "``s.index(x[, i[, j]])``" msgstr "``s.index(x[, i[, j]])``" -#: ../Doc/library/stdtypes.rst:879 +#: ../Doc/library/stdtypes.rst:883 msgid "" "index of the first occurrence of *x* in *s* (at or after index *i* and " "before index *j*)" @@ -1497,19 +1505,19 @@ msgstr "" "indice de la première occurrence de *x* dans *s* (à ou après l'indice *i* et " "avant indice *j*)" -#: ../Doc/library/stdtypes.rst:879 ../Doc/library/stdtypes.rst:3315 +#: ../Doc/library/stdtypes.rst:883 ../Doc/library/stdtypes.rst:3339 msgid "\\(8)" msgstr "\\(8)" -#: ../Doc/library/stdtypes.rst:883 +#: ../Doc/library/stdtypes.rst:887 msgid "``s.count(x)``" msgstr "``s.count(x)``" -#: ../Doc/library/stdtypes.rst:883 +#: ../Doc/library/stdtypes.rst:887 msgid "total number of occurrences of *x* in *s*" msgstr "nombre total d'occurrences de *x* dans *s*" -#: ../Doc/library/stdtypes.rst:887 +#: ../Doc/library/stdtypes.rst:891 msgid "" "Sequences of the same type also support comparisons. In particular, tuples " "and lists are compared lexicographically by comparing corresponding " @@ -1518,13 +1526,14 @@ msgid "" "(For full details see :ref:`comparisons` in the language reference.)" msgstr "" "Les séquences du même type supportent également la comparaison. En " -"particulier, les *tuples* et les listes sont comparées lexicographiquement " -"en comparant les éléments correspondants. Cela signifie que pour être " -"égales, chaque éléments doivent être égaux deux à deux et les deux séquences " -"doivent être du même type et de la même longueur. (Pour plus de détails " -"voir :ref:`comparisons` dans la référence du langage.)" +"particulier, les n-uplets et les listes sont comparés lexicographiquement en " +"comparant les éléments correspondants. Cela signifie que pour que deux " +"séquences soit égales, les éléments les constituant doivent être égaux deux " +"à deux et les deux séquences doivent être du même type et de la même " +"longueur. (Pour plus de détails voir :ref:`comparisons` dans la référence du " +"langage.)" -#: ../Doc/library/stdtypes.rst:896 +#: ../Doc/library/stdtypes.rst:900 msgid "" "While the ``in`` and ``not in`` operations are used only for simple " "containment testing in the general case, some specialised sequences (such " @@ -1534,21 +1543,21 @@ msgstr "" "Bien que les opérations ``in`` et ``not in`` ne soient généralement " "utilisées que pour les tests d'appartenance simple, certaines séquences " "spécialisées (telles que :class:`str`, :class:`bytes` et :class:`bytearray`) " -"les utilisent aussi pour tester l'existence de sous-séquences : ::" +"les utilisent aussi pour tester l'existence de sous-séquences ::" -#: ../Doc/library/stdtypes.rst:905 +#: ../Doc/library/stdtypes.rst:909 msgid "" "Values of *n* less than ``0`` are treated as ``0`` (which yields an empty " "sequence of the same type as *s*). Note that items in the sequence *s* are " "not copied; they are referenced multiple times. This often haunts new " "Python programmers; consider::" msgstr "" -"Les valeurs de *n* plus petites que ``0`` sont traités comme ``0`` (ce qui " +"Les valeurs de *n* plus petites que ``0`` sont traitées comme ``0`` (ce qui " "donne une séquence vide du même type que *s*). Notez que les éléments de *s* " "ne sont pas copiés ; ils sont référencés plusieurs fois. Cela hante souvent " -"de nouveaux développeurs Python, typiquement : ::" +"de nouveaux développeurs Python, typiquement ::" -#: ../Doc/library/stdtypes.rst:917 +#: ../Doc/library/stdtypes.rst:921 msgid "" "What has happened is that ``[[]]`` is a one-element list containing an empty " "list, so all three elements of ``[[]] * 3`` are references to this single " @@ -1559,9 +1568,9 @@ msgstr "" "liste vide, de sorte que les trois éléments de ``[[]] * 3`` sont des " "références à cette seule liste vide. Modifier l'un des éléments de ``lists`` " "modifie cette liste unique. Vous pouvez créer une liste des différentes " -"listes de cette façon : ::" +"listes de cette façon ::" -#: ../Doc/library/stdtypes.rst:929 +#: ../Doc/library/stdtypes.rst:933 msgid "" "Further explanation is available in the FAQ entry :ref:`faq-multidimensional-" "list`." @@ -1569,7 +1578,7 @@ msgstr "" "De plus amples explications sont disponibles dans la FAQ à la question :ref:" "`faq-multidimensional-list`." -#: ../Doc/library/stdtypes.rst:933 +#: ../Doc/library/stdtypes.rst:937 msgid "" "If *i* or *j* is negative, the index is relative to the end of sequence *s*: " "``len(s) + i`` or ``len(s) + j`` is substituted. But note that ``-0`` is " @@ -1579,7 +1588,7 @@ msgstr "" "*s* : ``len(s) + i`` ou ``len(s) + j`` est substitué. Mais notez que ``-0`` " "est toujours ``0``." -#: ../Doc/library/stdtypes.rst:938 +#: ../Doc/library/stdtypes.rst:942 msgid "" "The slice of *s* from *i* to *j* is defined as the sequence of items with " "index *k* such that ``i <= k < j``. If *i* or *j* is greater than " @@ -1593,7 +1602,7 @@ msgstr "" "utilisé. Si *j* est omis ou ``None``, ``len(s)`` est utilisé. Si *i* est " "supérieure ou égale à *j*, la tranche est vide." -#: ../Doc/library/stdtypes.rst:945 +#: ../Doc/library/stdtypes.rst:949 msgid "" "The slice of *s* from *i* to *j* with step *k* is defined as the sequence of " "items with index ``x = i + n*k`` such that ``0 <= n < (j-i)/k``. In other " @@ -1616,7 +1625,7 @@ msgstr "" "Remarquez, *k* ne peut pas valoir zéro. Si *k* est ``None``, il est traité " "comme ``1``." -#: ../Doc/library/stdtypes.rst:956 +#: ../Doc/library/stdtypes.rst:960 msgid "" "Concatenating immutable sequences always results in a new object. This " "means that building up a sequence by repeated concatenation will have a " @@ -1629,7 +1638,7 @@ msgstr "" "totale. Pour obtenir un temps d'exécution linéaire, vous devez utiliser " "l'une des alternatives suivantes :" -#: ../Doc/library/stdtypes.rst:961 +#: ../Doc/library/stdtypes.rst:965 msgid "" "if concatenating :class:`str` objects, you can build a list and use :meth:" "`str.join` at the end or else write to an :class:`io.StringIO` instance and " @@ -1639,7 +1648,7 @@ msgstr "" "utiliser :meth:`str.join` à la fin, ou bien écrire dans une instance de :" "class:`io.StringIO` et récupérer sa valeur lorsque vous avez terminé" -#: ../Doc/library/stdtypes.rst:965 +#: ../Doc/library/stdtypes.rst:969 msgid "" "if concatenating :class:`bytes` objects, you can similarly use :meth:`bytes." "join` or :class:`io.BytesIO`, or you can do in-place concatenation with a :" @@ -1651,18 +1660,18 @@ msgstr "" "sur place avec un objet :class:`bytearray`. Les objets :class:`bytearray` " "sont muables et ont un mécanisme de sur-allocation efficace" -#: ../Doc/library/stdtypes.rst:970 +#: ../Doc/library/stdtypes.rst:974 msgid "if concatenating :class:`tuple` objects, extend a :class:`list` instead" msgstr "" "si vous concaténez des :class:`tuple`, utilisez plutôt *extend* sur une :" "class:`list`" -#: ../Doc/library/stdtypes.rst:972 +#: ../Doc/library/stdtypes.rst:976 msgid "for other types, investigate the relevant class documentation" msgstr "" "pour d'autres types, cherchez dans la documentation de la classe concernée" -#: ../Doc/library/stdtypes.rst:976 +#: ../Doc/library/stdtypes.rst:980 msgid "" "Some sequence types (such as :class:`range`) only support item sequences " "that follow specific patterns, and hence don't support sequence " @@ -1672,7 +1681,7 @@ msgstr "" "séquences qui suivent des modèles spécifiques, et donc ne prennent pas en " "charge la concaténation ou la répétition." -#: ../Doc/library/stdtypes.rst:981 +#: ../Doc/library/stdtypes.rst:985 msgid "" "``index`` raises :exc:`ValueError` when *x* is not found in *s*. Not all " "implementations support passing the additional arguments *i* and *j*. These " @@ -1689,11 +1698,11 @@ msgstr "" "l'indice renvoyé alors relatif au début de la séquence plutôt qu'au début de " "la tranche." -#: ../Doc/library/stdtypes.rst:992 +#: ../Doc/library/stdtypes.rst:996 msgid "Immutable Sequence Types" msgstr "Types de séquences immuables" -#: ../Doc/library/stdtypes.rst:999 +#: ../Doc/library/stdtypes.rst:1003 msgid "" "The only operation that immutable sequence types generally implement that is " "not also implemented by mutable sequence types is support for the :func:" @@ -1703,7 +1712,7 @@ msgstr "" "n'est pas implémentée par les types de séquences muables est le support de " "la fonction native :func:`hash`." -#: ../Doc/library/stdtypes.rst:1003 +#: ../Doc/library/stdtypes.rst:1007 msgid "" "This support allows immutable sequences, such as :class:`tuple` instances, " "to be used as :class:`dict` keys and stored in :class:`set` and :class:" @@ -1713,7 +1722,7 @@ msgstr "" "instances de :class:`tuple`, en tant que clés de :class:`dict` et stockées " "dans les instances de :class:`set` et :class:`frozenset`." -#: ../Doc/library/stdtypes.rst:1007 +#: ../Doc/library/stdtypes.rst:1011 msgid "" "Attempting to hash an immutable sequence that contains unhashable values " "will result in :exc:`TypeError`." @@ -1721,11 +1730,11 @@ msgstr "" "Essayer de hacher une séquence immuable qui contient des valeurs non-" "hachables lèvera une :exc:`TypeError`." -#: ../Doc/library/stdtypes.rst:1014 +#: ../Doc/library/stdtypes.rst:1018 msgid "Mutable Sequence Types" msgstr "Types de séquences muables" -#: ../Doc/library/stdtypes.rst:1021 +#: ../Doc/library/stdtypes.rst:1025 msgid "" "The operations in the following table are defined on mutable sequence types. " "The :class:`collections.abc.MutableSequence` ABC is provided to make it " @@ -1736,7 +1745,7 @@ msgstr "" "MutableSequence` est prévue pour faciliter l'implémentation correcte de ces " "opérations sur les types de séquence personnalisées." -#: ../Doc/library/stdtypes.rst:1025 +#: ../Doc/library/stdtypes.rst:1029 msgid "" "In the table *s* is an instance of a mutable sequence type, *t* is any " "iterable object and *x* is an arbitrary object that meets any type and value " @@ -1749,131 +1758,131 @@ msgstr "" "`bytearray` accepte uniquement des nombres entiers qui répondent à la " "restriction de la valeur ``0 <= x <= 255``)." -#: ../Doc/library/stdtypes.rst:1049 +#: ../Doc/library/stdtypes.rst:1053 msgid "``s[i] = x``" msgstr "``s[i] = x``" -#: ../Doc/library/stdtypes.rst:1049 +#: ../Doc/library/stdtypes.rst:1053 msgid "item *i* of *s* is replaced by *x*" msgstr "élément *i* de *s* est remplacé par *x*" -#: ../Doc/library/stdtypes.rst:1052 +#: ../Doc/library/stdtypes.rst:1056 msgid "``s[i:j] = t``" msgstr "``s[i:j] = t``" -#: ../Doc/library/stdtypes.rst:1052 +#: ../Doc/library/stdtypes.rst:1056 msgid "" "slice of *s* from *i* to *j* is replaced by the contents of the iterable *t*" msgstr "" "tranche de *s* de *i* à *j* est remplacée par le contenu de l'itérable *t*" -#: ../Doc/library/stdtypes.rst:1056 +#: ../Doc/library/stdtypes.rst:1060 msgid "``del s[i:j]``" msgstr "``del s[i:j]``" -#: ../Doc/library/stdtypes.rst:1056 +#: ../Doc/library/stdtypes.rst:1060 msgid "same as ``s[i:j] = []``" msgstr "identique à ``s[i:j] = []``" -#: ../Doc/library/stdtypes.rst:1058 +#: ../Doc/library/stdtypes.rst:1062 msgid "``s[i:j:k] = t``" msgstr "``s[i:j:k] = t``" -#: ../Doc/library/stdtypes.rst:1058 +#: ../Doc/library/stdtypes.rst:1062 msgid "the elements of ``s[i:j:k]`` are replaced by those of *t*" msgstr "les éléments de ``s[i:j:k]`` sont remplacés par ceux de *t*" -#: ../Doc/library/stdtypes.rst:1061 +#: ../Doc/library/stdtypes.rst:1065 msgid "``del s[i:j:k]``" msgstr "``del s[i:j:k]``" -#: ../Doc/library/stdtypes.rst:1061 +#: ../Doc/library/stdtypes.rst:1065 msgid "removes the elements of ``s[i:j:k]`` from the list" msgstr "supprime les éléments de ``s[i:j:k]`` de la liste" -#: ../Doc/library/stdtypes.rst:1064 +#: ../Doc/library/stdtypes.rst:1068 msgid "``s.append(x)``" msgstr "``s.append(x)``" -#: ../Doc/library/stdtypes.rst:1064 +#: ../Doc/library/stdtypes.rst:1068 msgid "" "appends *x* to the end of the sequence (same as ``s[len(s):len(s)] = [x]``)" msgstr "" "ajoute *x* à la fin de la séquence (identique à ``s[len(s):len(s)] = [x]``)" -#: ../Doc/library/stdtypes.rst:1068 +#: ../Doc/library/stdtypes.rst:1072 msgid "``s.clear()``" msgstr "``s.clear()``" -#: ../Doc/library/stdtypes.rst:1068 +#: ../Doc/library/stdtypes.rst:1072 msgid "removes all items from *s* (same as ``del s[:]``)" msgstr "supprime tous les éléments de *s* (identique à ``del s[:]``)" -#: ../Doc/library/stdtypes.rst:1071 +#: ../Doc/library/stdtypes.rst:1075 msgid "``s.copy()``" msgstr "``s.copy()``" -#: ../Doc/library/stdtypes.rst:1071 +#: ../Doc/library/stdtypes.rst:1075 msgid "creates a shallow copy of *s* (same as ``s[:]``)" msgstr "crée une copie superficielle de *s* (identique à ``s[:]``)" -#: ../Doc/library/stdtypes.rst:1074 +#: ../Doc/library/stdtypes.rst:1078 msgid "``s.extend(t)`` or ``s += t``" msgstr "``s.extend(t)`` or ``s += t``" -#: ../Doc/library/stdtypes.rst:1074 +#: ../Doc/library/stdtypes.rst:1078 msgid "" "extends *s* with the contents of *t* (for the most part the same as " "``s[len(s):len(s)] = t``)" msgstr "étend *s* avec le contenu de *t* (proche de ``s[len(s):len(s)] = t``)" -#: ../Doc/library/stdtypes.rst:1079 +#: ../Doc/library/stdtypes.rst:1083 msgid "``s *= n``" msgstr "``s *= n``" -#: ../Doc/library/stdtypes.rst:1079 +#: ../Doc/library/stdtypes.rst:1083 msgid "updates *s* with its contents repeated *n* times" msgstr "met à jour *s* avec son contenu répété *n* fois" -#: ../Doc/library/stdtypes.rst:1082 +#: ../Doc/library/stdtypes.rst:1086 msgid "``s.insert(i, x)``" msgstr "``s.insert(i, x)``" -#: ../Doc/library/stdtypes.rst:1082 +#: ../Doc/library/stdtypes.rst:1086 msgid "" "inserts *x* into *s* at the index given by *i* (same as ``s[i:i] = [x]``)" msgstr "" "insère *x* dans *s* à l'index donné par *i* (identique à ``s[i:i] = [x]``)" -#: ../Doc/library/stdtypes.rst:1086 +#: ../Doc/library/stdtypes.rst:1090 msgid "``s.pop([i])``" msgstr "``s.pop([i])``" -#: ../Doc/library/stdtypes.rst:1086 +#: ../Doc/library/stdtypes.rst:1090 msgid "retrieves the item at *i* and also removes it from *s*" msgstr "récupère l'élément à *i* et le supprime de *s*" -#: ../Doc/library/stdtypes.rst:1089 +#: ../Doc/library/stdtypes.rst:1093 msgid "``s.remove(x)``" msgstr "``s.remove(x)``" -#: ../Doc/library/stdtypes.rst:1089 +#: ../Doc/library/stdtypes.rst:1093 msgid "remove the first item from *s* where ``s[i]`` is equal to *x*" msgstr "supprime le premier élément de *s* pour lequel ``s[i]`` est égal à *x*" -#: ../Doc/library/stdtypes.rst:1092 +#: ../Doc/library/stdtypes.rst:1096 msgid "``s.reverse()``" msgstr "``s.reverse()``" -#: ../Doc/library/stdtypes.rst:1092 +#: ../Doc/library/stdtypes.rst:1096 msgid "reverses the items of *s* in place" msgstr "inverse sur place les éléments de *s*" -#: ../Doc/library/stdtypes.rst:1100 +#: ../Doc/library/stdtypes.rst:1104 msgid "*t* must have the same length as the slice it is replacing." msgstr "*t* doit avoir la même longueur que la tranche qu'il remplace." -#: ../Doc/library/stdtypes.rst:1103 +#: ../Doc/library/stdtypes.rst:1107 msgid "" "The optional argument *i* defaults to ``-1``, so that by default the last " "item is removed and returned." @@ -1881,13 +1890,13 @@ msgstr "" "L'argument optionnel *i* vaut ``-1`` par défaut, afin que, par défaut, le " "dernier élément soit retiré et renvoyé." -#: ../Doc/library/stdtypes.rst:1107 +#: ../Doc/library/stdtypes.rst:1111 msgid "``remove`` raises :exc:`ValueError` when *x* is not found in *s*." msgstr "" "``remove`` lève une exception :exc:`ValueError` si *x* ne se trouve pas dans " "*s*." -#: ../Doc/library/stdtypes.rst:1110 +#: ../Doc/library/stdtypes.rst:1114 msgid "" "The :meth:`reverse` method modifies the sequence in place for economy of " "space when reversing a large sequence. To remind users that it operates by " @@ -1898,21 +1907,21 @@ msgstr "" "utilisateurs qu'elle a un effet de bord, elle ne renvoie pas la séquence " "inversée." -#: ../Doc/library/stdtypes.rst:1115 +#: ../Doc/library/stdtypes.rst:1119 msgid "" ":meth:`clear` and :meth:`!copy` are included for consistency with the " "interfaces of mutable containers that don't support slicing operations (such " "as :class:`dict` and :class:`set`)" msgstr "" -":meth:`clear` et :meth:`!copy` sont inclues pour la compatibilité avec les " +":meth:`clear` et :meth:`!copy` sont incluses pour la compatibilité avec les " "interfaces des conteneurs muables qui ne supportent pas les opérations de " "découpage (comme :class:`dict` et :class:`set`)" -#: ../Doc/library/stdtypes.rst:1119 +#: ../Doc/library/stdtypes.rst:1123 msgid ":meth:`clear` and :meth:`!copy` methods." msgstr "méthodes :meth:`clear` et :meth:`!copy`." -#: ../Doc/library/stdtypes.rst:1123 +#: ../Doc/library/stdtypes.rst:1127 msgid "" "The value *n* is an integer, or an object implementing :meth:`~object." "__index__`. Zero and negative values of *n* clear the sequence. Items in " @@ -1925,11 +1934,11 @@ msgstr "" "référencés plusieurs fois, comme expliqué pour ``s * n`` dans :ref:`typesseq-" "common`." -#: ../Doc/library/stdtypes.rst:1132 +#: ../Doc/library/stdtypes.rst:1136 msgid "Lists" msgstr "Listes" -#: ../Doc/library/stdtypes.rst:1136 +#: ../Doc/library/stdtypes.rst:1140 msgid "" "Lists are mutable sequences, typically used to store collections of " "homogeneous items (where the precise degree of similarity will vary by " @@ -1939,32 +1948,32 @@ msgstr "" "des collections d'éléments homogènes (où le degré de similitude variera " "selon l'usage)." -#: ../Doc/library/stdtypes.rst:1142 +#: ../Doc/library/stdtypes.rst:1146 msgid "Lists may be constructed in several ways:" msgstr "Les listes peuvent être construites de différentes manières :" -#: ../Doc/library/stdtypes.rst:1144 +#: ../Doc/library/stdtypes.rst:1148 msgid "Using a pair of square brackets to denote the empty list: ``[]``" msgstr "" "En utilisant une paire de crochets pour indiquer une liste vide : ``[]``" -#: ../Doc/library/stdtypes.rst:1145 +#: ../Doc/library/stdtypes.rst:1149 msgid "" "Using square brackets, separating items with commas: ``[a]``, ``[a, b, c]``" msgstr "" "Au moyen de crochets, séparant les éléments par des virgules : ``[a]``, " "``[a, b, c]``" -#: ../Doc/library/stdtypes.rst:1146 +#: ../Doc/library/stdtypes.rst:1150 msgid "Using a list comprehension: ``[x for x in iterable]``" msgstr "En utilisant une liste en compréhension : ``[x for x in iterable]``" -#: ../Doc/library/stdtypes.rst:1147 +#: ../Doc/library/stdtypes.rst:1151 msgid "Using the type constructor: ``list()`` or ``list(iterable)``" msgstr "" "En utilisant le constructeur du type : ``list()`` ou ``list(iterable)``" -#: ../Doc/library/stdtypes.rst:1149 +#: ../Doc/library/stdtypes.rst:1153 msgid "" "The constructor builds a list whose items are the same and in the same order " "as *iterable*'s items. *iterable* may be either a sequence, a container " @@ -1982,7 +1991,7 @@ msgstr "" "``list( (1, 2, 3) )`` renvoie ``[1, 2, 3]``. Si aucun argument est donné, le " "constructeur crée une nouvelle liste vide, ``[]``." -#: ../Doc/library/stdtypes.rst:1158 +#: ../Doc/library/stdtypes.rst:1162 msgid "" "Many other operations also produce lists, including the :func:`sorted` built-" "in." @@ -1990,7 +1999,7 @@ msgstr "" "De nombreuses autres opérations produisent des listes, tel que la fonction " "native :func:`sorted`." -#: ../Doc/library/stdtypes.rst:1161 +#: ../Doc/library/stdtypes.rst:1165 msgid "" "Lists implement all of the :ref:`common ` and :ref:`mutable " "` sequence operations. Lists also provide the following " @@ -2000,7 +2009,7 @@ msgstr "" "` et :ref:`muables `. Les listes " "fournissent également la méthode supplémentaire suivante :" -#: ../Doc/library/stdtypes.rst:1167 +#: ../Doc/library/stdtypes.rst:1171 msgid "" "This method sorts the list in place, using only ``<`` comparisons between " "items. Exceptions are not suppressed - if any comparison operations fail, " @@ -2012,7 +2021,7 @@ msgstr "" "si n'importe quelle opération de comparaison échoue, le tri échouera (et la " "liste sera probablement laissée dans un état partiellement modifié)." -#: ../Doc/library/stdtypes.rst:1172 +#: ../Doc/library/stdtypes.rst:1176 msgid "" ":meth:`sort` accepts two arguments that can only be passed by keyword (:ref:" "`keyword-only arguments `):" @@ -2020,7 +2029,7 @@ msgstr "" ":meth:`sort` accepte deux arguments qui ne peuvent être fournis que par mot-" "clé (:ref:`keyword-only arguments `):" -#: ../Doc/library/stdtypes.rst:1175 +#: ../Doc/library/stdtypes.rst:1179 msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each list element (for example, ``key=str.lower``). The " @@ -2035,7 +2044,7 @@ msgstr "" "``None``, signifie que les éléments sont triés directement sans en calculer " "une valeur \"clé\" séparée." -#: ../Doc/library/stdtypes.rst:1182 +#: ../Doc/library/stdtypes.rst:1186 msgid "" "The :func:`functools.cmp_to_key` utility is available to convert a 2.x style " "*cmp* function to a *key* function." @@ -2043,7 +2052,7 @@ msgstr "" "La fonction utilitaire :func:`functools.cmp_to_key` est disponible pour " "convertir une fonction *cmp* du style 2.x à une fonction *key*." -#: ../Doc/library/stdtypes.rst:1185 +#: ../Doc/library/stdtypes.rst:1189 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -2051,7 +2060,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/stdtypes.rst:1188 +#: ../Doc/library/stdtypes.rst:1192 msgid "" "This method modifies the sequence in place for economy of space when sorting " "a large sequence. To remind users that it operates by side effect, it does " @@ -2063,7 +2072,7 @@ msgstr "" "bord, elle ne renvoie pas la séquence triée (utilisez :func:`sorted` pour " "demander explicitement une nouvelle instance de liste triée)." -#: ../Doc/library/stdtypes.rst:1193 +#: ../Doc/library/stdtypes.rst:1197 msgid "" "The :meth:`sort` method is guaranteed to be stable. A sort is stable if it " "guarantees not to change the relative order of elements that compare equal " @@ -2075,7 +2084,7 @@ msgstr "" "trier en plusieurs passes (par exemple, trier par département, puis par " "niveau de salaire)." -#: ../Doc/library/stdtypes.rst:1200 +#: ../Doc/library/stdtypes.rst:1204 msgid "" "While a list is being sorted, the effect of attempting to mutate, or even " "inspect, the list is undefined. The C implementation of Python makes the " @@ -2087,11 +2096,11 @@ msgstr "" "liste comme vide pour la durée du traitement, et lève :exc:`ValueError` si " "elle détecte que la liste a été modifiée au cours du tri." -#: ../Doc/library/stdtypes.rst:1209 +#: ../Doc/library/stdtypes.rst:1213 msgid "Tuples" msgstr "Tuples" -#: ../Doc/library/stdtypes.rst:1213 +#: ../Doc/library/stdtypes.rst:1217 msgid "" "Tuples are immutable sequences, typically used to store collections of " "heterogeneous data (such as the 2-tuples produced by the :func:`enumerate` " @@ -2106,33 +2115,33 @@ msgstr "" "séquence homogène et immuable de données est nécessaire (pour, par exemple, " "les stocker dans un :class:`set` ou un :class:`dict`)." -#: ../Doc/library/stdtypes.rst:1221 +#: ../Doc/library/stdtypes.rst:1225 msgid "Tuples may be constructed in a number of ways:" msgstr "Les tuples peuvent être construits de différentes façons :" -#: ../Doc/library/stdtypes.rst:1223 +#: ../Doc/library/stdtypes.rst:1227 msgid "Using a pair of parentheses to denote the empty tuple: ``()``" msgstr "" "En utilisant une paire de parenthèses pour désigner le tuple vide : ``()``" -#: ../Doc/library/stdtypes.rst:1224 +#: ../Doc/library/stdtypes.rst:1228 msgid "Using a trailing comma for a singleton tuple: ``a,`` or ``(a,)``" msgstr "" "En utilisant une virgule, pour créer un tuple d'un élément : ``a,`` ou " "``(a,)``" -#: ../Doc/library/stdtypes.rst:1225 +#: ../Doc/library/stdtypes.rst:1229 msgid "Separating items with commas: ``a, b, c`` or ``(a, b, c)``" msgstr "" "En séparant les éléments avec des virgules : ``a, b, c`` ou ``(a, b, c)``" -#: ../Doc/library/stdtypes.rst:1226 +#: ../Doc/library/stdtypes.rst:1230 msgid "Using the :func:`tuple` built-in: ``tuple()`` or ``tuple(iterable)``" msgstr "" "En utilisant la fonction native :func:`tuple` : ``tuple()`` ou " "``tuple(iterable)``" -#: ../Doc/library/stdtypes.rst:1228 +#: ../Doc/library/stdtypes.rst:1232 msgid "" "The constructor builds a tuple whose items are the same and in the same " "order as *iterable*'s items. *iterable* may be either a sequence, a " @@ -2150,7 +2159,7 @@ msgstr "" "renvoie ``(1, 2, 3)``. Si aucun argument est donné, le constructeur crée un " "nouveau tuple vide, ``()``." -#: ../Doc/library/stdtypes.rst:1236 +#: ../Doc/library/stdtypes.rst:1240 msgid "" "Note that it is actually the comma which makes a tuple, not the parentheses. " "The parentheses are optional, except in the empty tuple case, or when they " @@ -2165,7 +2174,7 @@ msgstr "" "que ``f((a, b, c))`` est un appel de fonction avec un tuple de trois " "éléments comme unique argument." -#: ../Doc/library/stdtypes.rst:1242 +#: ../Doc/library/stdtypes.rst:1246 msgid "" "Tuples implement all of the :ref:`common ` sequence " "operations." @@ -2173,7 +2182,7 @@ msgstr "" "Les tuples implémentent toutes les opérations :ref:`communes ` des séquences." -#: ../Doc/library/stdtypes.rst:1245 +#: ../Doc/library/stdtypes.rst:1249 msgid "" "For heterogeneous collections of data where access by name is clearer than " "access by index, :func:`collections.namedtuple` may be a more appropriate " @@ -2183,11 +2192,11 @@ msgstr "" "clair que l'accès par index, :func:`collections.namedtuple` peut être un " "choix plus approprié qu'un simple tuple." -#: ../Doc/library/stdtypes.rst:1253 +#: ../Doc/library/stdtypes.rst:1257 msgid "Ranges" msgstr "*Ranges*" -#: ../Doc/library/stdtypes.rst:1257 +#: ../Doc/library/stdtypes.rst:1261 msgid "" "The :class:`range` type represents an immutable sequence of numbers and is " "commonly used for looping a specific number of times in :keyword:`for` loops." @@ -2196,7 +2205,7 @@ msgstr "" "couramment utilisé pour itérer un certain nombre de fois dans les boucles :" "keyword:`for`." -#: ../Doc/library/stdtypes.rst:1264 +#: ../Doc/library/stdtypes.rst:1268 msgid "" "The arguments to the range constructor must be integers (either built-in :" "class:`int` or any object that implements the ``__index__`` special " @@ -2210,7 +2219,7 @@ msgstr "" "valeur par défaut de l'argument *start* est ``0``. Si *step* est égal à " "zéro, une exception :exc:`ValueError` est levée." -#: ../Doc/library/stdtypes.rst:1270 +#: ../Doc/library/stdtypes.rst:1274 msgid "" "For a positive *step*, the contents of a range ``r`` are determined by the " "formula ``r[i] = start + step*i`` where ``i >= 0`` and ``r[i] < stop``." @@ -2218,7 +2227,7 @@ msgstr "" "Pour un *step* positif, le contenu d'un *range* ``r`` est déterminé par la " "formule ``r[i] = start + step*i`` où ``i >= 0`` et ``r[i] < stop``." -#: ../Doc/library/stdtypes.rst:1274 +#: ../Doc/library/stdtypes.rst:1278 msgid "" "For a negative *step*, the contents of the range are still determined by the " "formula ``r[i] = start + step*i``, but the constraints are ``i >= 0`` and " @@ -2228,7 +2237,7 @@ msgstr "" "formule ``r[i] = start + step*i``, mais les contraintes sont ``i >= 0`` et " "``r[i] > stop``." -#: ../Doc/library/stdtypes.rst:1278 +#: ../Doc/library/stdtypes.rst:1282 msgid "" "A range object will be empty if ``r[0]`` does not meet the value constraint. " "Ranges do support negative indices, but these are interpreted as indexing " @@ -2239,7 +2248,7 @@ msgstr "" "sont interprétées comme une indexation de la fin de la séquence déterminée " "par les indices positifs." -#: ../Doc/library/stdtypes.rst:1283 +#: ../Doc/library/stdtypes.rst:1287 msgid "" "Ranges containing absolute values larger than :data:`sys.maxsize` are " "permitted but some features (such as :func:`len`) may raise :exc:" @@ -2249,11 +2258,11 @@ msgstr "" "maxsize` sont permises, mais certaines fonctionnalités (comme :func:`len`) " "peuvent lever :exc:`OverflowError`." -#: ../Doc/library/stdtypes.rst:1287 +#: ../Doc/library/stdtypes.rst:1291 msgid "Range examples::" msgstr "Exemples avec *range* ::" -#: ../Doc/library/stdtypes.rst:1304 +#: ../Doc/library/stdtypes.rst:1308 msgid "" "Ranges implement all of the :ref:`common ` sequence " "operations except concatenation and repetition (due to the fact that range " @@ -2266,25 +2275,25 @@ msgstr "" "strict et que la répétition et la concaténation les feraient dévier de ce " "motif)." -#: ../Doc/library/stdtypes.rst:1311 +#: ../Doc/library/stdtypes.rst:1315 msgid "" "The value of the *start* parameter (or ``0`` if the parameter was not " "supplied)" msgstr "" "La valeur du paramètre *start* (ou ``0`` si le paramètre n'a pas été fourni)" -#: ../Doc/library/stdtypes.rst:1316 +#: ../Doc/library/stdtypes.rst:1320 msgid "The value of the *stop* parameter" msgstr "La valeur du paramètre *stop*" -#: ../Doc/library/stdtypes.rst:1320 +#: ../Doc/library/stdtypes.rst:1324 msgid "" "The value of the *step* parameter (or ``1`` if the parameter was not " "supplied)" msgstr "" "La valeur du paramètre *step* (ou ``1`` si le paramètre n'a pas été fourni)" -#: ../Doc/library/stdtypes.rst:1323 +#: ../Doc/library/stdtypes.rst:1327 msgid "" "The advantage of the :class:`range` type over a regular :class:`list` or :" "class:`tuple` is that a :class:`range` object will always take the same " @@ -2298,7 +2307,7 @@ msgstr "" "(car elle ne stocke que les valeurs ``start``, ``stop`` et ``step`` , le " "calcul des éléments individuels et les sous-intervalles au besoin)." -#: ../Doc/library/stdtypes.rst:1329 +#: ../Doc/library/stdtypes.rst:1333 msgid "" "Range objects implement the :class:`collections.abc.Sequence` ABC, and " "provide features such as containment tests, element index lookup, slicing " @@ -2309,7 +2318,7 @@ msgstr "" "(avec *in*), de recherche par index, le tranchage et ils gèrent les indices " "négatifs (voir :ref:`typesseq`):" -#: ../Doc/library/stdtypes.rst:1349 +#: ../Doc/library/stdtypes.rst:1353 msgid "" "Testing range objects for equality with ``==`` and ``!=`` compares them as " "sequences. That is, two range objects are considered equal if they " @@ -2325,7 +2334,7 @@ msgstr "" "et :attr:`~range.step` différents, par exemple ``range(0) == range(2, 1, " "3)`` ou ``range(0, 3, 2) == range(0, 4, 2)``.)" -#: ../Doc/library/stdtypes.rst:1356 +#: ../Doc/library/stdtypes.rst:1360 msgid "" "Implement the Sequence ABC. Support slicing and negative indices. Test :" "class:`int` objects for membership in constant time instead of iterating " @@ -2335,7 +2344,7 @@ msgstr "" "les indices négatifs. Tester l'appartenance d'un :class:`int` en temps " "constant au lieu d'itérer tous les éléments." -#: ../Doc/library/stdtypes.rst:1362 +#: ../Doc/library/stdtypes.rst:1366 msgid "" "Define '==' and '!=' to compare range objects based on the sequence of " "values they define (instead of comparing based on object identity)." @@ -2344,7 +2353,7 @@ msgstr "" "qu'ils définissent (au lieu d'une comparaison fondée sur l'identité de " "l'objet)." -#: ../Doc/library/stdtypes.rst:1367 +#: ../Doc/library/stdtypes.rst:1371 msgid "" "The :attr:`~range.start`, :attr:`~range.stop` and :attr:`~range.step` " "attributes." @@ -2352,7 +2361,7 @@ msgstr "" "Les attributs :attr:`~range.start`, :attr:`~range.stop` et :attr:`~range." "step`." -#: ../Doc/library/stdtypes.rst:1373 +#: ../Doc/library/stdtypes.rst:1377 msgid "" "The `linspace recipe `_ shows " "how to implement a lazy version of range suitable for floating point " @@ -2362,11 +2371,11 @@ msgstr "" "comment implémenter une version paresseuse de *range* adaptée aux nombres à " "virgule flottante." -#: ../Doc/library/stdtypes.rst:1385 +#: ../Doc/library/stdtypes.rst:1389 msgid "Text Sequence Type --- :class:`str`" -msgstr "Type Séquence de Texte --- :class:`str`" +msgstr "Type Séquence de Texte — :class:`str`" -#: ../Doc/library/stdtypes.rst:1387 +#: ../Doc/library/stdtypes.rst:1391 msgid "" "Textual data in Python is handled with :class:`str` objects, or :dfn:" "`strings`. Strings are immutable :ref:`sequences ` of Unicode code " @@ -2377,15 +2386,15 @@ msgstr "" "immuables de points de code Unicode. Les chaînes littérales peuvent être " "écrites de différentes manières :" -#: ../Doc/library/stdtypes.rst:1392 +#: ../Doc/library/stdtypes.rst:1396 msgid "Single quotes: ``'allows embedded \"double\" quotes'``" msgstr "Les guillemets simples : ``'autorisent les \"guillemets\"'``" -#: ../Doc/library/stdtypes.rst:1393 +#: ../Doc/library/stdtypes.rst:1397 msgid "Double quotes: ``\"allows embedded 'single' quotes\"``." msgstr "Les guillemets : ``\"autorisent les guillemets 'simples'\"``." -#: ../Doc/library/stdtypes.rst:1394 +#: ../Doc/library/stdtypes.rst:1398 msgid "" "Triple quoted: ``'''Three single quotes'''``, ``\"\"\"Three double quotes" "\"\"\"``" @@ -2393,7 +2402,7 @@ msgstr "" "Guillemets triples : ``'''Trois guillemets simples'''``, ``\"\"\"Trois " "guillemets\"\"\"``" -#: ../Doc/library/stdtypes.rst:1396 +#: ../Doc/library/stdtypes.rst:1400 msgid "" "Triple quoted strings may span multiple lines - all associated whitespace " "will be included in the string literal." @@ -2401,7 +2410,7 @@ msgstr "" "Les chaînes entre triple guillemets peuvent couvrir plusieurs lignes, tous " "les espaces associés seront inclus dans la chaîne littérale." -#: ../Doc/library/stdtypes.rst:1399 +#: ../Doc/library/stdtypes.rst:1403 msgid "" "String literals that are part of a single expression and have only " "whitespace between them will be implicitly converted to a single string " @@ -2411,7 +2420,7 @@ msgstr "" "seulement des espaces entre elles sont implicitement converties en une seule " "chaîne littérale. Autrement dit, ``(\"spam \" \"eggs\") == \"spam eggs\"``." -#: ../Doc/library/stdtypes.rst:1403 +#: ../Doc/library/stdtypes.rst:1407 msgid "" "See :ref:`strings` for more about the various forms of string literal, " "including supported escape sequences, and the ``r`` (\"raw\") prefix that " @@ -2422,7 +2431,7 @@ msgstr "" "et le préfixe ``r`` (*raw* (brut)) qui désactive la plupart des traitements " "de séquence d'échappement." -#: ../Doc/library/stdtypes.rst:1407 +#: ../Doc/library/stdtypes.rst:1411 msgid "" "Strings may also be created from other objects using the :class:`str` " "constructor." @@ -2430,7 +2439,7 @@ msgstr "" "Les chaînes peuvent également être créés à partir d'autres objets à l'aide " "du constructeur :class:`str`." -#: ../Doc/library/stdtypes.rst:1410 +#: ../Doc/library/stdtypes.rst:1414 msgid "" "Since there is no separate \"character\" type, indexing a string produces " "strings of length 1. That is, for a non-empty string *s*, ``s[0] == s[0:1]``." @@ -2439,7 +2448,7 @@ msgstr "" "produit des chaînes de longueur 1. Autrement dit, pour une chaîne non vide " "*s*, ``s[0] == s[0:1]``." -#: ../Doc/library/stdtypes.rst:1416 +#: ../Doc/library/stdtypes.rst:1420 msgid "" "There is also no mutable string type, but :meth:`str.join` or :class:`io." "StringIO` can be used to efficiently construct strings from multiple " @@ -2449,7 +2458,7 @@ msgstr "" "StringIO` peuvent être utilisées pour construire efficacement des chaînes à " "partir de plusieurs fragments." -#: ../Doc/library/stdtypes.rst:1420 +#: ../Doc/library/stdtypes.rst:1424 msgid "" "For backwards compatibility with the Python 2 series, the ``u`` prefix is " "once again permitted on string literals. It has no effect on the meaning of " @@ -2459,7 +2468,7 @@ msgstr "" "est à nouveau autorisé sur les chaînes littérales. Elle n'a aucun effet sur " "le sens des chaînes littérales et ne peut être combiné avec le préfixe ``r``." -#: ../Doc/library/stdtypes.rst:1432 +#: ../Doc/library/stdtypes.rst:1436 msgid "" "Return a :ref:`string ` version of *object*. If *object* is not " "provided, returns the empty string. Otherwise, the behavior of ``str()`` " @@ -2469,7 +2478,7 @@ msgstr "" "n'est pas fourni, renvoie une chaîne vide. Sinon, le comportement de " "``str()`` dépend de si *encoding* ou *errors* sont donnés, voir l'exemple." -#: ../Doc/library/stdtypes.rst:1436 +#: ../Doc/library/stdtypes.rst:1440 msgid "" "If neither *encoding* nor *errors* is given, ``str(object)`` returns :meth:" "`object.__str__() `, which is the \"informal\" or nicely " @@ -2483,7 +2492,7 @@ msgstr "" "chaîne elle-même. Si *object* n'a pas de méthode :meth:`~object.__str__`, :" "func:`str` utilise :meth:`repr(object) `." -#: ../Doc/library/stdtypes.rst:1447 +#: ../Doc/library/stdtypes.rst:1451 msgid "" "If at least one of *encoding* or *errors* is given, *object* should be a :" "term:`bytes-like object` (e.g. :class:`bytes` or :class:`bytearray`). In " @@ -2503,7 +2512,7 @@ msgstr "" "`binaryseq` et :ref:`bufferobjects` pour plus d'informations sur les " "*buffers*." -#: ../Doc/library/stdtypes.rst:1456 +#: ../Doc/library/stdtypes.rst:1460 msgid "" "Passing a :class:`bytes` object to :func:`str` without the *encoding* or " "*errors* arguments falls under the first case of returning the informal " @@ -2513,9 +2522,9 @@ msgstr "" "Donner un objet :class:`bytes` à :func:`str` sans ni l'argument *encoding* " "ni l'argument *errors* relève du premier cas, où la représentation " "informelle de la chaîne est renvoyé (voir aussi l'option :option:`-b` de " -"Python). Par exemple : ::" +"Python). Par exemple ::" -#: ../Doc/library/stdtypes.rst:1464 +#: ../Doc/library/stdtypes.rst:1468 msgid "" "For more information on the ``str`` class and its methods, see :ref:" "`textseq` and the :ref:`string-methods` section below. To output formatted " @@ -2527,11 +2536,11 @@ msgstr "" "de caractères, voir les sections :ref:`f-strings` et :ref:`formatstrings`. " "La section :ref:`stringservices` contient aussi des informations." -#: ../Doc/library/stdtypes.rst:1476 +#: ../Doc/library/stdtypes.rst:1480 msgid "String Methods" msgstr "Méthodes de chaînes de caractères" -#: ../Doc/library/stdtypes.rst:1481 +#: ../Doc/library/stdtypes.rst:1485 msgid "" "Strings implement all of the :ref:`common ` sequence " "operations, along with the additional methods described below." @@ -2539,7 +2548,7 @@ msgstr "" "Les chaînes implémentent toutes les opérations :ref:`communes des séquences " "`, ainsi que les autres méthodes décrites ci-dessous." -#: ../Doc/library/stdtypes.rst:1484 +#: ../Doc/library/stdtypes.rst:1488 msgid "" "Strings also support two styles of string formatting, one providing a large " "degree of flexibility and customization (see :meth:`str.format`, :ref:" @@ -2555,7 +2564,7 @@ msgstr "" "difficile à utiliser correctement, mais il est souvent plus rapide pour les " "cas, il peut gérer (:ref:`old-string-formatting`)." -#: ../Doc/library/stdtypes.rst:1491 +#: ../Doc/library/stdtypes.rst:1495 msgid "" "The :ref:`textservices` section of the standard library covers a number of " "other modules that provide various text related utilities (including regular " @@ -2565,7 +2574,7 @@ msgstr "" "nombre d'autres modules qui fournissent différents services relatifs au " "texte (y compris les expressions régulières dans le module :mod:`re`)." -#: ../Doc/library/stdtypes.rst:1497 +#: ../Doc/library/stdtypes.rst:1501 msgid "" "Return a copy of the string with its first character capitalized and the " "rest lowercased." @@ -2573,7 +2582,7 @@ msgstr "" "Renvoie une copie de la chaîne avec son premier caractère en majuscule et le " "reste en minuscule." -#: ../Doc/library/stdtypes.rst:1503 +#: ../Doc/library/stdtypes.rst:1507 msgid "" "Return a casefolded copy of the string. Casefolded strings may be used for " "caseless matching." @@ -2581,7 +2590,7 @@ msgstr "" "Renvoie une copie *casefolded* de la chaîne. Les chaînes *casefolded* " "peuvent être utilisées dans des comparaison insensibles à la casse." -#: ../Doc/library/stdtypes.rst:1506 +#: ../Doc/library/stdtypes.rst:1510 msgid "" "Casefolding is similar to lowercasing but more aggressive because it is " "intended to remove all case distinctions in a string. For example, the " @@ -2595,7 +2604,7 @@ msgstr "" "Comme il est déjà minuscule, :meth:`lower` ferait rien à ``'ß'``; :meth:" "`casefold` le convertit en ``\"ss\"``." -#: ../Doc/library/stdtypes.rst:1512 +#: ../Doc/library/stdtypes.rst:1516 msgid "" "The casefolding algorithm is described in section 3.13 of the Unicode " "Standard." @@ -2603,7 +2612,7 @@ msgstr "" "L'algorithme de *casefolding* est décrit dans la section 3.13 de la norme " "Unicode." -#: ../Doc/library/stdtypes.rst:1520 +#: ../Doc/library/stdtypes.rst:1524 msgid "" "Return centered in a string of length *width*. Padding is done using the " "specified *fillchar* (default is an ASCII space). The original string is " @@ -2614,7 +2623,7 @@ msgstr "" "ASCII). La chaîne d'origine est renvoyée si *width* est inférieur ou égale à " "``len(s)``." -#: ../Doc/library/stdtypes.rst:1528 +#: ../Doc/library/stdtypes.rst:1532 msgid "" "Return the number of non-overlapping occurrences of substring *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " @@ -2624,7 +2633,7 @@ msgstr "" "[*start*, *end*]. Les arguments facultatifs *start* et *end* sont " "interprétés comme pour des *slices*." -#: ../Doc/library/stdtypes.rst:1535 +#: ../Doc/library/stdtypes.rst:1539 msgid "" "Return an encoded version of the string as a bytes object. Default encoding " "is ``'utf-8'``. *errors* may be given to set a different error handling " @@ -2645,11 +2654,11 @@ msgstr "" "`error-handlers`. Pour une liste des encodages possibles, voir la section :" "ref:`standard-encodings`." -#: ../Doc/library/stdtypes.rst:1544 +#: ../Doc/library/stdtypes.rst:1548 msgid "Support for keyword arguments added." msgstr "Gestion des arguments par mot clef." -#: ../Doc/library/stdtypes.rst:1550 +#: ../Doc/library/stdtypes.rst:1554 msgid "" "Return ``True`` if the string ends with the specified *suffix*, otherwise " "return ``False``. *suffix* can also be a tuple of suffixes to look for. " @@ -2662,7 +2671,7 @@ msgstr "" "l'argument optionnel *end* est fourni, la comparaison s'arrête à cette " "position." -#: ../Doc/library/stdtypes.rst:1558 +#: ../Doc/library/stdtypes.rst:1562 msgid "" "Return a copy of the string where all tab characters are replaced by one or " "more spaces, depending on the current column and the given tab size. Tab " @@ -2692,7 +2701,7 @@ msgstr "" "et la colonne en cours est incrémentée de un indépendamment de la façon dont " "le caractère est représenté lors de l'affichage." -#: ../Doc/library/stdtypes.rst:1579 +#: ../Doc/library/stdtypes.rst:1583 msgid "" "Return the lowest index in the string where substring *sub* is found within " "the slice ``s[start:end]``. Optional arguments *start* and *end* are " @@ -2703,7 +2712,7 @@ msgstr "" "interprétés comme dans la notation des *slice*. Donne ``-1`` si *sub* n'est " "pas trouvé." -#: ../Doc/library/stdtypes.rst:1585 +#: ../Doc/library/stdtypes.rst:1589 msgid "" "The :meth:`~str.find` method should be used only if you need to know the " "position of *sub*. To check if *sub* is a substring or not, use the :" @@ -2713,7 +2722,7 @@ msgstr "" "de connaître la position de *sub*. Pour vérifier si *sub* est une sous " "chaine ou non, utilisez l'opérateur :keyword:`in` ::" -#: ../Doc/library/stdtypes.rst:1595 +#: ../Doc/library/stdtypes.rst:1599 msgid "" "Perform a string formatting operation. The string on which this method is " "called can contain literal text or replacement fields delimited by braces " @@ -2729,7 +2738,7 @@ msgstr "" "clé. Renvoie une copie de la chaîne où chaque champ de remplacement est " "remplacé par la valeur de chaîne de l'argument correspondant." -#: ../Doc/library/stdtypes.rst:1605 +#: ../Doc/library/stdtypes.rst:1609 msgid "" "See :ref:`formatstrings` for a description of the various formatting options " "that can be specified in format strings." @@ -2737,7 +2746,7 @@ msgstr "" "Voir :ref:`formatstrings` pour une description des options de formatage qui " "peuvent être spécifiées dans les chaînes de format." -#: ../Doc/library/stdtypes.rst:1609 +#: ../Doc/library/stdtypes.rst:1613 msgid "" "When formatting a number (:class:`int`, :class:`float`, :class:`complex`, :" "class:`decimal.Decimal` and subclasses) with the ``n`` type (ex: ``'{:n}'." @@ -2756,7 +2765,7 @@ msgstr "" "est différent de ``LC_CTYPE``. Ce changement temporaire affecte les autres " "fils d'exécution." -#: ../Doc/library/stdtypes.rst:1618 +#: ../Doc/library/stdtypes.rst:1622 msgid "" "When formatting a number with the ``n`` type, the function sets temporarily " "the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` locale in some cases." @@ -2765,7 +2774,7 @@ msgstr "" "temporairement ``LC_CTYPE`` par la valeur de ``LC_NUMERIC`` dans certains " "cas." -#: ../Doc/library/stdtypes.rst:1626 +#: ../Doc/library/stdtypes.rst:1630 msgid "" "Similar to ``str.format(**mapping)``, except that ``mapping`` is used " "directly and not copied to a :class:`dict`. This is useful if for example " @@ -2775,7 +2784,7 @@ msgstr "" "directement et non copié dans un :class:`dict`. C'est utile si, par exemple " "``mapping`` est une sous-classe de ``dict`` :" -#: ../Doc/library/stdtypes.rst:1642 +#: ../Doc/library/stdtypes.rst:1646 msgid "" "Like :meth:`~str.find`, but raise :exc:`ValueError` when the substring is " "not found." @@ -2783,7 +2792,7 @@ msgstr "" "Comme :meth:`~str.find`, mais lève une :exc:`ValueError` lorsque la chaîne " "est introuvable." -#: ../Doc/library/stdtypes.rst:1648 +#: ../Doc/library/stdtypes.rst:1652 msgid "" "Return true if all characters in the string are alphanumeric and there is at " "least one character, false otherwise. A character ``c`` is alphanumeric if " @@ -2795,7 +2804,7 @@ msgstr "" "alphanumérique si l'un des tests suivants est vrais : ``c.isalpha()``, ``c." "isdecimal()``, ``c.isdigit()`` ou ``c.isnumeric()``." -#: ../Doc/library/stdtypes.rst:1656 +#: ../Doc/library/stdtypes.rst:1660 msgid "" "Return true if all characters in the string are alphabetic and there is at " "least one character, false otherwise. Alphabetic characters are those " @@ -2811,7 +2820,7 @@ msgstr "" "\"Lu\", \"Ll\", ou \"Lo\" comme catégorie générale. Notez que ceci est " "différent de la propriété *Alphabetic* définie dans la norme Unicode." -#: ../Doc/library/stdtypes.rst:1665 +#: ../Doc/library/stdtypes.rst:1669 msgid "" "Return true if the string is empty or all characters in the string are " "ASCII, false otherwise. ASCII characters have code points in the range U" @@ -2821,7 +2830,7 @@ msgstr "" "ASCII, ``False`` sinon. Les caractères ASCII ont un code dans l'intervalle ``" "\"U+0000\"``\\ ---\\ ``\"U+007F\"``." -#: ../Doc/library/stdtypes.rst:1674 +#: ../Doc/library/stdtypes.rst:1678 msgid "" "Return true if all characters in the string are decimal characters and there " "is at least one character, false otherwise. Decimal characters are those " @@ -2835,7 +2844,7 @@ msgstr "" "en base 10, tels que U+0660, ARABIC-INDIC DIGIT ZERO. Spécifiquement, un " "caractère décimal est un caractère dans la catégorie Unicode générale \"Nd\"." -#: ../Doc/library/stdtypes.rst:1684 +#: ../Doc/library/stdtypes.rst:1688 msgid "" "Return true if all characters in the string are digits and there is at least " "one character, false otherwise. Digits include decimal characters and " @@ -2853,7 +2862,7 @@ msgstr "" "caractère dont la valeur de la propriété *Numeric_Type* est *Digit* ou " "*Decimal*." -#: ../Doc/library/stdtypes.rst:1694 +#: ../Doc/library/stdtypes.rst:1698 msgid "" "Return true if the string is a valid identifier according to the language " "definition, section :ref:`identifiers`." @@ -2861,7 +2870,7 @@ msgstr "" "Donne ``True`` si la chaîne est un identifiant valide selon la définition du " "langage, section :ref:`identifiers`." -#: ../Doc/library/stdtypes.rst:1697 +#: ../Doc/library/stdtypes.rst:1701 msgid "" "Use :func:`keyword.iskeyword` to test for reserved identifiers such as :" "keyword:`def` and :keyword:`class`." @@ -2869,7 +2878,7 @@ msgstr "" "Utilisez :func:`keyword.iskeyword` pour savoir si un identifiant est " "réservé, tels que :keyword:`def` et :keyword:`class`." -#: ../Doc/library/stdtypes.rst:1702 +#: ../Doc/library/stdtypes.rst:1706 msgid "" "Return true if all cased characters [4]_ in the string are lowercase and " "there is at least one cased character, false otherwise." @@ -2878,7 +2887,7 @@ msgstr "" "en minuscules et qu'elle contient au moins un caractère capitalisable. Donne " "``False`` dans le cas contraire." -#: ../Doc/library/stdtypes.rst:1708 +#: ../Doc/library/stdtypes.rst:1712 msgid "" "Return true if all characters in the string are numeric characters, and " "there is at least one character, false otherwise. Numeric characters include " @@ -2895,7 +2904,7 @@ msgstr "" "les priorités *Numeric_Type=Digit*, *Numeric_Type=Decimal*, ou " "*Numeric_Type=Numeric*." -#: ../Doc/library/stdtypes.rst:1718 +#: ../Doc/library/stdtypes.rst:1722 msgid "" "Return true if all characters in the string are printable or the string is " "empty, false otherwise. Nonprintable characters are those characters " @@ -2914,7 +2923,7 @@ msgstr "" "`repr` est invoquée sur une chaîne. Ça n'a aucune incidence sur le " "traitement des chaînes écrites sur :data:`sys.stdout` ou :data:`sys.stderr`.)" -#: ../Doc/library/stdtypes.rst:1729 +#: ../Doc/library/stdtypes.rst:1733 msgid "" "Return true if there are only whitespace characters in the string and there " "is at least one character, false otherwise. Whitespace characters are " @@ -2928,7 +2937,7 @@ msgstr "" "\"Other\"* ou *\"Separator\"* ainsi que ceux ayant la propriété " "bidirectionnelle valant \"WS\", \"B\" ou \"S\"." -#: ../Doc/library/stdtypes.rst:1736 +#: ../Doc/library/stdtypes.rst:1740 msgid "" "Return true if the string is a titlecased string and there is at least one " "character, for example uppercase characters may only follow uncased " @@ -2940,7 +2949,7 @@ msgstr "" "peuvent suivre que des caractères capitalisables. Donne ``False`` dans le " "cas contraire." -#: ../Doc/library/stdtypes.rst:1743 +#: ../Doc/library/stdtypes.rst:1747 msgid "" "Return true if all cased characters [4]_ in the string are uppercase and " "there is at least one cased character, false otherwise." @@ -2949,7 +2958,7 @@ msgstr "" "la chaîne sont en majuscules et il y a au moins un caractère différentiable " "sur la casse, sinon ``False``." -#: ../Doc/library/stdtypes.rst:1749 +#: ../Doc/library/stdtypes.rst:1753 msgid "" "Return a string which is the concatenation of the strings in *iterable*. A :" "exc:`TypeError` will be raised if there are any non-string values in " @@ -2961,7 +2970,7 @@ msgstr "" "pas une chaîne, y compris pour les objets :class:`bytes`. Le séparateur " "entre les éléments est la chaîne fournissant cette méthode." -#: ../Doc/library/stdtypes.rst:1757 +#: ../Doc/library/stdtypes.rst:1761 msgid "" "Return the string left justified in a string of length *width*. Padding is " "done using the specified *fillchar* (default is an ASCII space). The " @@ -2972,7 +2981,7 @@ msgstr "" "ASCII). La chaîne d'origine est renvoyée si *width* est inférieur ou égale à " "``len(s)``." -#: ../Doc/library/stdtypes.rst:1764 +#: ../Doc/library/stdtypes.rst:1768 msgid "" "Return a copy of the string with all the cased characters [4]_ converted to " "lowercase." @@ -2980,7 +2989,7 @@ msgstr "" "Renvoie une copie de la chaîne avec tous les caractères capitalisables [4]_ " "convertis en minuscules." -#: ../Doc/library/stdtypes.rst:1767 +#: ../Doc/library/stdtypes.rst:1771 msgid "" "The lowercasing algorithm used is described in section 3.13 of the Unicode " "Standard." @@ -2988,7 +2997,7 @@ msgstr "" "L'algorithme de mise en minuscules utilisé est décrit dans la section 3.13 " "de la norme Unicode." -#: ../Doc/library/stdtypes.rst:1773 +#: ../Doc/library/stdtypes.rst:1777 msgid "" "Return a copy of the string with leading characters removed. The *chars* " "argument is a string specifying the set of characters to be removed. If " @@ -3002,7 +3011,7 @@ msgstr "" "des espaces. L'argument *chars* n'est pas un préfixe, toutes les " "combinaisons de ses valeurs sont supprimées ::" -#: ../Doc/library/stdtypes.rst:1786 +#: ../Doc/library/stdtypes.rst:1790 msgid "" "This static method returns a translation table usable for :meth:`str." "translate`." @@ -3010,7 +3019,7 @@ msgstr "" "Cette méthode statique renvoie une table de traduction utilisable pour :meth:" "`str.translate`." -#: ../Doc/library/stdtypes.rst:1788 +#: ../Doc/library/stdtypes.rst:1792 msgid "" "If there is only one argument, it must be a dictionary mapping Unicode " "ordinals (integers) or characters (strings of length 1) to Unicode ordinals, " @@ -3021,7 +3030,7 @@ msgstr "" "correspondre des points de code Unicode (nombres entiers) ou des caractères " "(chaînes de longueur 1) à des points de code Unicode." -#: ../Doc/library/stdtypes.rst:1793 +#: ../Doc/library/stdtypes.rst:1797 msgid "" "If there are two arguments, they must be strings of equal length, and in the " "resulting dictionary, each character in x will be mapped to the character at " @@ -3034,7 +3043,7 @@ msgstr "" "argument est fourni, ce doit être une chaîne dont chaque caractère " "correspondra à ``None`` dans le résultat." -#: ../Doc/library/stdtypes.rst:1801 +#: ../Doc/library/stdtypes.rst:1805 msgid "" "Split the string at the first occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself, and the part " @@ -3046,7 +3055,7 @@ msgstr "" "même, et la partie après le séparateur. Si le séparateur n'est pas trouvé, " "le *tuple* contiendra la chaîne elle-même, suivie de deux chaînes vides." -#: ../Doc/library/stdtypes.rst:1809 +#: ../Doc/library/stdtypes.rst:1813 msgid "" "Return a copy of the string with all occurrences of substring *old* replaced " "by *new*. If the optional argument *count* is given, only the first *count* " @@ -3056,7 +3065,7 @@ msgstr "" "chaîne *old* sont remplacés par *new*. Si l'argument optionnel *count* est " "donné, seules les *count* premières occurrences sont remplacées." -#: ../Doc/library/stdtypes.rst:1816 +#: ../Doc/library/stdtypes.rst:1820 msgid "" "Return the highest index in the string where substring *sub* is found, such " "that *sub* is contained within ``s[start:end]``. Optional arguments *start* " @@ -3067,7 +3076,7 @@ msgstr "" "arguments facultatifs *start* et *end* sont interprétés comme dans la " "notation des *slices*. Donne ``-1`` en cas d'échec." -#: ../Doc/library/stdtypes.rst:1823 +#: ../Doc/library/stdtypes.rst:1827 msgid "" "Like :meth:`rfind` but raises :exc:`ValueError` when the substring *sub* is " "not found." @@ -3075,7 +3084,7 @@ msgstr "" "Comme :meth:`rfind` mais lève une exception :exc:`ValueError` lorsque la " "sous-chaîne *sub* est introuvable." -#: ../Doc/library/stdtypes.rst:1829 +#: ../Doc/library/stdtypes.rst:1833 msgid "" "Return the string right justified in a string of length *width*. Padding is " "done using the specified *fillchar* (default is an ASCII space). The " @@ -3086,7 +3095,7 @@ msgstr "" "défaut est un espace ASCII). La chaîne d'origine est renvoyée si *width* est " "inférieure ou égale à ``len(s)``." -#: ../Doc/library/stdtypes.rst:1836 +#: ../Doc/library/stdtypes.rst:1840 msgid "" "Split the string at the last occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself, and the part " @@ -3098,7 +3107,7 @@ msgstr "" "même, et la partie après le séparateur. Si le séparateur n'est pas trouvé, " "le *tuple* contiendra deux chaînes vides, puis par la chaîne elle-même." -#: ../Doc/library/stdtypes.rst:1844 +#: ../Doc/library/stdtypes.rst:1848 msgid "" "Return a list of the words in the string, using *sep* as the delimiter " "string. If *maxsplit* is given, at most *maxsplit* splits are done, the " @@ -3113,7 +3122,7 @@ msgstr "" "par la droite, :meth:`rsplit` se comporte comme :meth:`split` qui est décrit " "en détail ci-dessous." -#: ../Doc/library/stdtypes.rst:1853 +#: ../Doc/library/stdtypes.rst:1857 msgid "" "Return a copy of the string with trailing characters removed. The *chars* " "argument is a string specifying the set of characters to be removed. If " @@ -3125,9 +3134,9 @@ msgstr "" "L'argument *chars* est une chaîne spécifiant le jeu de caractères à " "supprimer. En cas d'omission ou ``None``, les espaces sont supprimés. " "L'argument *chars* n'est pas un suffixe : toutes les combinaisons de ses " -"valeurs sont retirées : ::" +"valeurs sont retirées ::" -#: ../Doc/library/stdtypes.rst:1866 +#: ../Doc/library/stdtypes.rst:1870 msgid "" "Return a list of the words in the string, using *sep* as the delimiter " "string. If *maxsplit* is given, at most *maxsplit* splits are done (thus, " @@ -3141,7 +3150,7 @@ msgstr "" "+1``). Si *maxsplit* n'est pas fourni, ou vaut ``-1``, le nombre de découpes " "n'est pas limité (Toutes les découpes possibles sont faites)." -#: ../Doc/library/stdtypes.rst:1872 +#: ../Doc/library/stdtypes.rst:1876 msgid "" "If *sep* is given, consecutive delimiters are not grouped together and are " "deemed to delimit empty strings (for example, ``'1,,2'.split(',')`` returns " @@ -3155,20 +3164,20 @@ msgstr "" "(par exemple, ``'1<>2<>3'.split('<>')`` renvoie ``['1', '2', '3']``). " "Découper une chaîne vide en spécifiant *sep* donne ``['']``." -#: ../Doc/library/stdtypes.rst:1878 ../Doc/library/stdtypes.rst:1894 -#: ../Doc/library/stdtypes.rst:1946 ../Doc/library/stdtypes.rst:2014 -#: ../Doc/library/stdtypes.rst:2078 ../Doc/library/stdtypes.rst:2829 -#: ../Doc/library/stdtypes.rst:2845 ../Doc/library/stdtypes.rst:2936 -#: ../Doc/library/stdtypes.rst:2952 ../Doc/library/stdtypes.rst:2977 -#: ../Doc/library/stdtypes.rst:2991 ../Doc/library/stdtypes.rst:3019 -#: ../Doc/library/stdtypes.rst:3033 ../Doc/library/stdtypes.rst:3051 -#: ../Doc/library/stdtypes.rst:3078 ../Doc/library/stdtypes.rst:3101 -#: ../Doc/library/stdtypes.rst:3128 ../Doc/library/stdtypes.rst:3170 -#: ../Doc/library/stdtypes.rst:3194 +#: ../Doc/library/stdtypes.rst:1882 ../Doc/library/stdtypes.rst:1898 +#: ../Doc/library/stdtypes.rst:1950 ../Doc/library/stdtypes.rst:2018 +#: ../Doc/library/stdtypes.rst:2082 ../Doc/library/stdtypes.rst:2843 +#: ../Doc/library/stdtypes.rst:2859 ../Doc/library/stdtypes.rst:2950 +#: ../Doc/library/stdtypes.rst:2966 ../Doc/library/stdtypes.rst:2991 +#: ../Doc/library/stdtypes.rst:3005 ../Doc/library/stdtypes.rst:3033 +#: ../Doc/library/stdtypes.rst:3047 ../Doc/library/stdtypes.rst:3065 +#: ../Doc/library/stdtypes.rst:3092 ../Doc/library/stdtypes.rst:3115 +#: ../Doc/library/stdtypes.rst:3142 ../Doc/library/stdtypes.rst:3184 +#: ../Doc/library/stdtypes.rst:3208 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/stdtypes.rst:1887 +#: ../Doc/library/stdtypes.rst:1891 msgid "" "If *sep* is not specified or is ``None``, a different splitting algorithm is " "applied: runs of consecutive whitespace are regarded as a single separator, " @@ -3184,7 +3193,7 @@ msgstr "" "diviser une chaîne vide ou une chaîne composée d'espaces avec un séparateur " "``None`` renvoie ``[]``." -#: ../Doc/library/stdtypes.rst:1909 +#: ../Doc/library/stdtypes.rst:1913 msgid "" "Return a list of the lines in the string, breaking at line boundaries. Line " "breaks are not included in the resulting list unless *keepends* is given and " @@ -3194,7 +3203,7 @@ msgstr "" "niveau des limites des lignes. Les sauts de ligne ne sont pas inclus dans la " "liste des résultats, sauf si *keepends* est donné, et est vrai." -#: ../Doc/library/stdtypes.rst:1913 +#: ../Doc/library/stdtypes.rst:1917 msgid "" "This method splits on the following line boundaries. In particular, the " "boundaries are a superset of :term:`universal newlines`." @@ -3202,107 +3211,107 @@ msgstr "" "Cette méthode découpe sur les limites de ligne suivantes. Ces limites sont " "un sur ensemble de :term:`universal newlines`." -#: ../Doc/library/stdtypes.rst:1917 +#: ../Doc/library/stdtypes.rst:1921 msgid "Representation" msgstr "Représentation" -#: ../Doc/library/stdtypes.rst:1917 +#: ../Doc/library/stdtypes.rst:1921 msgid "Description" msgstr "Description" -#: ../Doc/library/stdtypes.rst:1919 +#: ../Doc/library/stdtypes.rst:1923 msgid "``\\n``" msgstr "``\\n``" -#: ../Doc/library/stdtypes.rst:1919 +#: ../Doc/library/stdtypes.rst:1923 msgid "Line Feed" msgstr "Saut de ligne" -#: ../Doc/library/stdtypes.rst:1921 +#: ../Doc/library/stdtypes.rst:1925 msgid "``\\r``" msgstr "``\\r``" -#: ../Doc/library/stdtypes.rst:1921 +#: ../Doc/library/stdtypes.rst:1925 msgid "Carriage Return" msgstr "Retour chariot" -#: ../Doc/library/stdtypes.rst:1923 +#: ../Doc/library/stdtypes.rst:1927 msgid "``\\r\\n``" msgstr "``\\r\\n``" -#: ../Doc/library/stdtypes.rst:1923 +#: ../Doc/library/stdtypes.rst:1927 msgid "Carriage Return + Line Feed" msgstr "Retour chariot + saut de ligne" -#: ../Doc/library/stdtypes.rst:1925 +#: ../Doc/library/stdtypes.rst:1929 msgid "``\\v`` or ``\\x0b``" msgstr "``\\v`` or ``\\x0b``" -#: ../Doc/library/stdtypes.rst:1925 +#: ../Doc/library/stdtypes.rst:1929 msgid "Line Tabulation" msgstr "Tabulation verticale" -#: ../Doc/library/stdtypes.rst:1927 +#: ../Doc/library/stdtypes.rst:1931 msgid "``\\f`` or ``\\x0c``" msgstr "``\\f`` or ``\\x0c``" -#: ../Doc/library/stdtypes.rst:1927 +#: ../Doc/library/stdtypes.rst:1931 msgid "Form Feed" msgstr "Saut de page" -#: ../Doc/library/stdtypes.rst:1929 +#: ../Doc/library/stdtypes.rst:1933 msgid "``\\x1c``" msgstr "``\\x1c``" -#: ../Doc/library/stdtypes.rst:1929 +#: ../Doc/library/stdtypes.rst:1933 msgid "File Separator" msgstr "Séparateur de fichiers" -#: ../Doc/library/stdtypes.rst:1931 +#: ../Doc/library/stdtypes.rst:1935 msgid "``\\x1d``" msgstr "``\\x1d``" -#: ../Doc/library/stdtypes.rst:1931 +#: ../Doc/library/stdtypes.rst:1935 msgid "Group Separator" msgstr "Séparateur de groupes" -#: ../Doc/library/stdtypes.rst:1933 +#: ../Doc/library/stdtypes.rst:1937 msgid "``\\x1e``" msgstr "``\\x1e``" -#: ../Doc/library/stdtypes.rst:1933 +#: ../Doc/library/stdtypes.rst:1937 msgid "Record Separator" msgstr "Séparateur d'enregistrements" -#: ../Doc/library/stdtypes.rst:1935 +#: ../Doc/library/stdtypes.rst:1939 msgid "``\\x85``" msgstr "``\\x85``" -#: ../Doc/library/stdtypes.rst:1935 +#: ../Doc/library/stdtypes.rst:1939 msgid "Next Line (C1 Control Code)" msgstr "Ligne suivante (code de contrôle *C1*)" -#: ../Doc/library/stdtypes.rst:1937 +#: ../Doc/library/stdtypes.rst:1941 msgid "``\\u2028``" msgstr "``\\u2028``" -#: ../Doc/library/stdtypes.rst:1937 +#: ../Doc/library/stdtypes.rst:1941 msgid "Line Separator" msgstr "Séparateur de ligne" -#: ../Doc/library/stdtypes.rst:1939 +#: ../Doc/library/stdtypes.rst:1943 msgid "``\\u2029``" msgstr "``\\u2029``" -#: ../Doc/library/stdtypes.rst:1939 +#: ../Doc/library/stdtypes.rst:1943 msgid "Paragraph Separator" msgstr "Séparateur de paragraphe" -#: ../Doc/library/stdtypes.rst:1944 +#: ../Doc/library/stdtypes.rst:1948 msgid "``\\v`` and ``\\f`` added to list of line boundaries." msgstr "``\\v`` et ``\\f`` ajoutés à la liste des limites de lignes." -#: ../Doc/library/stdtypes.rst:1953 +#: ../Doc/library/stdtypes.rst:1957 msgid "" "Unlike :meth:`~str.split` when a delimiter string *sep* is given, this " "method returns an empty list for the empty string, and a terminal line break " @@ -3310,13 +3319,13 @@ msgid "" msgstr "" "Contrairement à :meth:`~str.split` lorsque *sep* est fourni, cette méthode " "renvoie une liste vide pour la chaîne vide, et un saut de ligne à la fin ne " -"se traduit pas par une ligne supplémentaire : ::" +"se traduit pas par une ligne supplémentaire ::" -#: ../Doc/library/stdtypes.rst:1962 +#: ../Doc/library/stdtypes.rst:1966 msgid "For comparison, ``split('\\n')`` gives::" -msgstr "À titre de comparaison, ``split('\\n')`` donne : ::" +msgstr "À titre de comparaison, ``split('\\n')`` donne ::" -#: ../Doc/library/stdtypes.rst:1972 +#: ../Doc/library/stdtypes.rst:1976 msgid "" "Return ``True`` if string starts with the *prefix*, otherwise return " "``False``. *prefix* can also be a tuple of prefixes to look for. With " @@ -3328,7 +3337,7 @@ msgstr "" "est donné, la comparaison commence à cette position, et lorsque *end* est " "donné, la comparaison s'arrête à celle ci." -#: ../Doc/library/stdtypes.rst:1980 +#: ../Doc/library/stdtypes.rst:1984 msgid "" "Return a copy of the string with the leading and trailing characters " "removed. The *chars* argument is a string specifying the set of characters " @@ -3340,9 +3349,9 @@ msgstr "" "supprimés. L'argument *chars* est une chaîne spécifiant le jeu de caractères " "à supprimer. En cas d'omission ou ``None``, les espaces sont supprimés. " "L'argument *chars* est pas un préfixe ni un suffixe, toutes les combinaisons " -"de ses valeurs sont supprimées : ::" +"de ses valeurs sont supprimées ::" -#: ../Doc/library/stdtypes.rst:1991 +#: ../Doc/library/stdtypes.rst:1995 msgid "" "The outermost leading and trailing *chars* argument values are stripped from " "the string. Characters are removed from the leading end until reaching a " @@ -3352,9 +3361,9 @@ msgstr "" "Les caractères de *char* sont retirés du début et de la fin de la chaîne. " "Les caractères sont retirés de la gauche jusqu'à atteindre un caractère ne " "figurant pas dans le jeu de caractères dans *chars*. La même opération à " -"lieu par la droite. Par exemple : ::" +"lieu par la droite. Par exemple ::" -#: ../Doc/library/stdtypes.rst:2004 +#: ../Doc/library/stdtypes.rst:2008 msgid "" "Return a copy of the string with uppercase characters converted to lowercase " "and vice versa. Note that it is not necessarily true that ``s.swapcase()." @@ -3364,7 +3373,7 @@ msgstr "" "convertis en minuscules et vice versa. Notez qu'il est pas nécessairement " "vrai que ``s.swapcase().swapcase() == s``." -#: ../Doc/library/stdtypes.rst:2011 +#: ../Doc/library/stdtypes.rst:2015 msgid "" "Return a titlecased version of the string where words start with an " "uppercase character and the remaining characters are lowercase." @@ -3372,7 +3381,7 @@ msgstr "" "Renvoie une version en initiales majuscules de la chaîne où les mots " "commencent par une capitale et les caractères restants sont en minuscules." -#: ../Doc/library/stdtypes.rst:2019 ../Doc/library/stdtypes.rst:3138 +#: ../Doc/library/stdtypes.rst:2023 ../Doc/library/stdtypes.rst:3152 msgid "" "The algorithm uses a simple language-independent definition of a word as " "groups of consecutive letters. The definition works in many contexts but it " @@ -3383,16 +3392,16 @@ msgstr "" "de la langue comme un groupe de lettres consécutives. La définition " "fonctionne dans de nombreux contextes, mais cela signifie que les " "apostrophes (typiquement de la forme possessive en Anglais) forment les " -"limites de mot, ce qui n'est pas toujours le résultat souhaité : ::" +"limites de mot, ce qui n'est pas toujours le résultat souhaité ::" -#: ../Doc/library/stdtypes.rst:2027 ../Doc/library/stdtypes.rst:3146 +#: ../Doc/library/stdtypes.rst:2031 ../Doc/library/stdtypes.rst:3160 msgid "" "A workaround for apostrophes can be constructed using regular expressions::" msgstr "" "Une solution pour contourner le problème des apostrophes peut être obtenue " -"en utilisant des expressions rationnelles : ::" +"en utilisant des expressions rationnelles ::" -#: ../Doc/library/stdtypes.rst:2042 +#: ../Doc/library/stdtypes.rst:2046 msgid "" "Return a copy of the string in which each character has been mapped through " "the given translation table. The table must be an object that implements " @@ -3412,7 +3421,7 @@ msgstr "" "pour supprimer le caractère de la chaîne de renvoyée soit lever une " "exception :exc:`LookupError` pour ne pas changer le caractère." -#: ../Doc/library/stdtypes.rst:2051 +#: ../Doc/library/stdtypes.rst:2055 msgid "" "You can use :meth:`str.maketrans` to create a translation map from character-" "to-character mappings in different formats." @@ -3420,7 +3429,7 @@ msgstr "" "Vous pouvez utiliser :meth:`str.maketrans` pour créer une table de " "correspondances de caractères dans différents formats." -#: ../Doc/library/stdtypes.rst:2054 +#: ../Doc/library/stdtypes.rst:2058 msgid "" "See also the :mod:`codecs` module for a more flexible approach to custom " "character mappings." @@ -3428,7 +3437,7 @@ msgstr "" "Voir aussi le module :mod:`codecs` pour une approche plus souple de " "changements de caractères par correspondance." -#: ../Doc/library/stdtypes.rst:2060 +#: ../Doc/library/stdtypes.rst:2064 msgid "" "Return a copy of the string with all the cased characters [4]_ converted to " "uppercase. Note that ``s.upper().isupper()`` might be ``False`` if ``s`` " @@ -3442,7 +3451,7 @@ msgstr "" "catégorie Unicode d'un caractère du résultat n'est pas \"Lu\" (*Letter*, " "*uppercase*), mais par exemple \"Lt\" (*Letter*, *titlecase*)." -#: ../Doc/library/stdtypes.rst:2066 +#: ../Doc/library/stdtypes.rst:2070 msgid "" "The uppercasing algorithm used is described in section 3.13 of the Unicode " "Standard." @@ -3450,7 +3459,7 @@ msgstr "" "L'algorithme de capitalisation utilisé est décrit dans la section 3.13 de la " "norme Unicode." -#: ../Doc/library/stdtypes.rst:2072 +#: ../Doc/library/stdtypes.rst:2076 msgid "" "Return a copy of the string left filled with ASCII ``'0'`` digits to make a " "string of length *width*. A leading sign prefix (``'+'``/``'-'``) is handled " @@ -3463,11 +3472,11 @@ msgstr "" "rembourrage *après* le caractère désigne plutôt qu'avant. La chaîne " "d'origine est renvoyée si *width* est inférieur ou égale à ``len(s)``." -#: ../Doc/library/stdtypes.rst:2090 +#: ../Doc/library/stdtypes.rst:2094 msgid "``printf``-style String Formatting" msgstr "Formatage de chaines à la ``printf``" -#: ../Doc/library/stdtypes.rst:2104 +#: ../Doc/library/stdtypes.rst:2107 msgid "" "The formatting operations described here exhibit a variety of quirks that " "lead to a number of common errors (such as failing to display tuples and " @@ -3485,7 +3494,7 @@ msgstr "" "ces alternatives apporte son lot d'avantages et inconvénients en matière de " "simplicité, de flexibilité et/ou de généralisation possible." -#: ../Doc/library/stdtypes.rst:2112 +#: ../Doc/library/stdtypes.rst:2115 msgid "" "String objects have one unique built-in operation: the ``%`` operator " "(modulo). This is also known as the string *formatting* or *interpolation* " @@ -3501,7 +3510,7 @@ msgstr "" "plusieurs éléments de *values*. L'effet est similaire à la fonction :c:func:" "`sprintf` du langage C." -#: ../Doc/library/stdtypes.rst:2118 +#: ../Doc/library/stdtypes.rst:2121 msgid "" "If *format* requires a single argument, *values* may be a single non-tuple " "object. [5]_ Otherwise, *values* must be a tuple with exactly the number of " @@ -3513,7 +3522,7 @@ msgstr "" "d'éléments spécifiés par la chaîne de format, ou un seul objet de " "correspondances ( *mapping object*, par exemple, un dictionnaire)." -#: ../Doc/library/stdtypes.rst:2123 ../Doc/library/stdtypes.rst:3245 +#: ../Doc/library/stdtypes.rst:2131 ../Doc/library/stdtypes.rst:3263 msgid "" "A conversion specifier contains two or more characters and has the following " "components, which must occur in this order:" @@ -3521,11 +3530,11 @@ msgstr "" "Un indicateur de conversion contient deux ou plusieurs caractères et " "comporte les éléments suivants, qui doivent apparaître dans cet ordre :" -#: ../Doc/library/stdtypes.rst:2126 ../Doc/library/stdtypes.rst:3248 +#: ../Doc/library/stdtypes.rst:2134 ../Doc/library/stdtypes.rst:3266 msgid "The ``'%'`` character, which marks the start of the specifier." msgstr "Le caractère ``'%'``, qui marque le début du marqueur." -#: ../Doc/library/stdtypes.rst:2128 ../Doc/library/stdtypes.rst:3250 +#: ../Doc/library/stdtypes.rst:2136 ../Doc/library/stdtypes.rst:3268 msgid "" "Mapping key (optional), consisting of a parenthesised sequence of characters " "(for example, ``(somename)``)." @@ -3533,7 +3542,7 @@ msgstr "" "La clé de correspondance (facultative), composée d'une suite de caractères " "entre parenthèse (par exemple, ``(somename)``)." -#: ../Doc/library/stdtypes.rst:2131 ../Doc/library/stdtypes.rst:3253 +#: ../Doc/library/stdtypes.rst:2139 ../Doc/library/stdtypes.rst:3271 msgid "" "Conversion flags (optional), which affect the result of some conversion " "types." @@ -3541,7 +3550,7 @@ msgstr "" "Des options de conversion, facultatives, qui affectent le résultat de " "certains types de conversion." -#: ../Doc/library/stdtypes.rst:2134 ../Doc/library/stdtypes.rst:3256 +#: ../Doc/library/stdtypes.rst:2142 ../Doc/library/stdtypes.rst:3274 msgid "" "Minimum field width (optional). If specified as an ``'*'`` (asterisk), the " "actual width is read from the next element of the tuple in *values*, and the " @@ -3551,7 +3560,7 @@ msgstr "" "est lue de l'élément suivant du tuple *values*, et l'objet à convertir vient " "après la largeur de champ minimale et la précision facultative." -#: ../Doc/library/stdtypes.rst:2138 ../Doc/library/stdtypes.rst:3260 +#: ../Doc/library/stdtypes.rst:2146 ../Doc/library/stdtypes.rst:3278 msgid "" "Precision (optional), given as a ``'.'`` (dot) followed by the precision. " "If specified as ``'*'`` (an asterisk), the actual precision is read from the " @@ -3563,15 +3572,15 @@ msgstr "" "lue à partir de l'élément suivant du tuple *values* et la valeur à convertir " "vient ensuite." -#: ../Doc/library/stdtypes.rst:2143 ../Doc/library/stdtypes.rst:3265 +#: ../Doc/library/stdtypes.rst:2151 ../Doc/library/stdtypes.rst:3283 msgid "Length modifier (optional)." msgstr "Modificateur de longueur (facultatif)." -#: ../Doc/library/stdtypes.rst:2145 ../Doc/library/stdtypes.rst:3267 +#: ../Doc/library/stdtypes.rst:2153 ../Doc/library/stdtypes.rst:3285 msgid "Conversion type." msgstr "Type de conversion." -#: ../Doc/library/stdtypes.rst:2147 +#: ../Doc/library/stdtypes.rst:2155 msgid "" "When the right argument is a dictionary (or other mapping type), then the " "formats in the string *must* include a parenthesised mapping key into that " @@ -3584,7 +3593,7 @@ msgstr "" "caractère ``'%'``. La clé indique quelle valeur du dictionnaire doit être " "formatée. Par exemple :" -#: ../Doc/library/stdtypes.rst:2156 ../Doc/library/stdtypes.rst:3278 +#: ../Doc/library/stdtypes.rst:2164 ../Doc/library/stdtypes.rst:3296 msgid "" "In this case no ``*`` specifiers may occur in a format (since they require a " "sequential parameter list)." @@ -3592,36 +3601,36 @@ msgstr "" "Dans ce cas, aucune ``*`` ne peuvent se trouver dans le format (car ces " "``*`` nécessitent une liste (accès séquentiel) de paramètres)." -#: ../Doc/library/stdtypes.rst:2159 ../Doc/library/stdtypes.rst:3281 +#: ../Doc/library/stdtypes.rst:2167 ../Doc/library/stdtypes.rst:3299 msgid "The conversion flag characters are:" msgstr "Les caractères indicateurs de conversion sont :" -#: ../Doc/library/stdtypes.rst:2162 ../Doc/library/stdtypes.rst:3284 +#: ../Doc/library/stdtypes.rst:2176 ../Doc/library/stdtypes.rst:3308 msgid "Flag" msgstr "Option" -#: ../Doc/library/stdtypes.rst:2164 ../Doc/library/stdtypes.rst:3286 +#: ../Doc/library/stdtypes.rst:2178 ../Doc/library/stdtypes.rst:3310 msgid "``'#'``" msgstr "``'#'``" -#: ../Doc/library/stdtypes.rst:2164 ../Doc/library/stdtypes.rst:3286 +#: ../Doc/library/stdtypes.rst:2178 ../Doc/library/stdtypes.rst:3310 msgid "" "The value conversion will use the \"alternate form\" (where defined below)." msgstr "La conversion utilisera la \"forme alternative\" (définie ci-dessous)." -#: ../Doc/library/stdtypes.rst:2167 ../Doc/library/stdtypes.rst:3289 +#: ../Doc/library/stdtypes.rst:2181 ../Doc/library/stdtypes.rst:3313 msgid "``'0'``" msgstr "``'0'``" -#: ../Doc/library/stdtypes.rst:2167 ../Doc/library/stdtypes.rst:3289 +#: ../Doc/library/stdtypes.rst:2181 ../Doc/library/stdtypes.rst:3313 msgid "The conversion will be zero padded for numeric values." msgstr "Les valeurs numériques converties seront complétée de zéros." -#: ../Doc/library/stdtypes.rst:2169 ../Doc/library/stdtypes.rst:3291 +#: ../Doc/library/stdtypes.rst:2183 ../Doc/library/stdtypes.rst:3315 msgid "``'-'``" msgstr "``'-'``" -#: ../Doc/library/stdtypes.rst:2169 ../Doc/library/stdtypes.rst:3291 +#: ../Doc/library/stdtypes.rst:2183 ../Doc/library/stdtypes.rst:3315 msgid "" "The converted value is left adjusted (overrides the ``'0'`` conversion if " "both are given)." @@ -3629,11 +3638,11 @@ msgstr "" "La valeur convertie est ajustée à gauche (remplace la conversion ``'0'`` si " "les deux sont données)." -#: ../Doc/library/stdtypes.rst:2172 ../Doc/library/stdtypes.rst:3294 +#: ../Doc/library/stdtypes.rst:2186 ../Doc/library/stdtypes.rst:3318 msgid "``' '``" msgstr "``' '``" -#: ../Doc/library/stdtypes.rst:2172 ../Doc/library/stdtypes.rst:3294 +#: ../Doc/library/stdtypes.rst:2186 ../Doc/library/stdtypes.rst:3318 msgid "" "(a space) A blank should be left before a positive number (or empty string) " "produced by a signed conversion." @@ -3641,11 +3650,11 @@ msgstr "" "(un espace) Un espace doit être laissé avant un nombre positif (ou chaîne " "vide) produite par la conversion d'une valeur signée." -#: ../Doc/library/stdtypes.rst:2175 ../Doc/library/stdtypes.rst:3297 +#: ../Doc/library/stdtypes.rst:2189 ../Doc/library/stdtypes.rst:3321 msgid "``'+'``" msgstr "``'+'``" -#: ../Doc/library/stdtypes.rst:2175 ../Doc/library/stdtypes.rst:3297 +#: ../Doc/library/stdtypes.rst:2189 ../Doc/library/stdtypes.rst:3321 msgid "" "A sign character (``'+'`` or ``'-'``) will precede the conversion (overrides " "a \"space\" flag)." @@ -3653,7 +3662,7 @@ msgstr "" "Un caractère de signe (``'+'`` ou ``'-'``) précède la valeur convertie " "(remplace le marqueur \"espace\")." -#: ../Doc/library/stdtypes.rst:2179 ../Doc/library/stdtypes.rst:3301 +#: ../Doc/library/stdtypes.rst:2193 ../Doc/library/stdtypes.rst:3325 msgid "" "A length modifier (``h``, ``l``, or ``L``) may be present, but is ignored as " "it is not necessary for Python -- so e.g. ``%ld`` is identical to ``%d``." @@ -3662,93 +3671,93 @@ msgstr "" "est ignoré car il est pas nécessaire pour Python, donc par exemple ``%ld`` " "est identique à ``%d``." -#: ../Doc/library/stdtypes.rst:2182 ../Doc/library/stdtypes.rst:3304 +#: ../Doc/library/stdtypes.rst:2196 ../Doc/library/stdtypes.rst:3328 msgid "The conversion types are:" msgstr "Les types utilisables dans les conversion sont :" -#: ../Doc/library/stdtypes.rst:2185 ../Doc/library/stdtypes.rst:3307 +#: ../Doc/library/stdtypes.rst:2199 ../Doc/library/stdtypes.rst:3331 msgid "Conversion" msgstr "Conversion" -#: ../Doc/library/stdtypes.rst:2187 ../Doc/library/stdtypes.rst:3309 +#: ../Doc/library/stdtypes.rst:2201 ../Doc/library/stdtypes.rst:3333 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/library/stdtypes.rst:2187 ../Doc/library/stdtypes.rst:2189 -#: ../Doc/library/stdtypes.rst:3309 ../Doc/library/stdtypes.rst:3311 +#: ../Doc/library/stdtypes.rst:2201 ../Doc/library/stdtypes.rst:2203 +#: ../Doc/library/stdtypes.rst:3333 ../Doc/library/stdtypes.rst:3335 msgid "Signed integer decimal." msgstr "Entier décimal signé." -#: ../Doc/library/stdtypes.rst:2189 ../Doc/library/stdtypes.rst:3311 +#: ../Doc/library/stdtypes.rst:2203 ../Doc/library/stdtypes.rst:3335 msgid "``'i'``" msgstr "``'i'``" -#: ../Doc/library/stdtypes.rst:2191 ../Doc/library/stdtypes.rst:3313 +#: ../Doc/library/stdtypes.rst:2205 ../Doc/library/stdtypes.rst:3337 msgid "``'o'``" msgstr "``'o'``" -#: ../Doc/library/stdtypes.rst:2191 ../Doc/library/stdtypes.rst:3313 +#: ../Doc/library/stdtypes.rst:2205 ../Doc/library/stdtypes.rst:3337 msgid "Signed octal value." msgstr "Valeur octale signée." -#: ../Doc/library/stdtypes.rst:2193 ../Doc/library/stdtypes.rst:3315 +#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:3339 msgid "``'u'``" msgstr "``'u'``" -#: ../Doc/library/stdtypes.rst:2193 ../Doc/library/stdtypes.rst:3315 +#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:3339 msgid "Obsolete type -- it is identical to ``'d'``." -msgstr "Type obsolète --- identique à ``'d'``." +msgstr "Type obsolète — identique à ``'d'``." -#: ../Doc/library/stdtypes.rst:2195 ../Doc/library/stdtypes.rst:3317 +#: ../Doc/library/stdtypes.rst:2209 ../Doc/library/stdtypes.rst:3341 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/stdtypes.rst:2195 ../Doc/library/stdtypes.rst:3317 +#: ../Doc/library/stdtypes.rst:2209 ../Doc/library/stdtypes.rst:3341 msgid "Signed hexadecimal (lowercase)." msgstr "Hexadécimal signé (en minuscules)." -#: ../Doc/library/stdtypes.rst:2197 ../Doc/library/stdtypes.rst:3319 +#: ../Doc/library/stdtypes.rst:2211 ../Doc/library/stdtypes.rst:3343 msgid "``'X'``" msgstr "``'X'``" -#: ../Doc/library/stdtypes.rst:2197 ../Doc/library/stdtypes.rst:3319 +#: ../Doc/library/stdtypes.rst:2211 ../Doc/library/stdtypes.rst:3343 msgid "Signed hexadecimal (uppercase)." msgstr "Hexadécimal signé (capitales)." -#: ../Doc/library/stdtypes.rst:2199 ../Doc/library/stdtypes.rst:3321 +#: ../Doc/library/stdtypes.rst:2213 ../Doc/library/stdtypes.rst:3345 msgid "``'e'``" msgstr "``'e'``" -#: ../Doc/library/stdtypes.rst:2199 ../Doc/library/stdtypes.rst:3321 +#: ../Doc/library/stdtypes.rst:2213 ../Doc/library/stdtypes.rst:3345 msgid "Floating point exponential format (lowercase)." msgstr "Format exponentiel pour un *float* (minuscule)." -#: ../Doc/library/stdtypes.rst:2201 ../Doc/library/stdtypes.rst:3323 +#: ../Doc/library/stdtypes.rst:2215 ../Doc/library/stdtypes.rst:3347 msgid "``'E'``" msgstr "``'E'``" -#: ../Doc/library/stdtypes.rst:2201 ../Doc/library/stdtypes.rst:3323 +#: ../Doc/library/stdtypes.rst:2215 ../Doc/library/stdtypes.rst:3347 msgid "Floating point exponential format (uppercase)." msgstr "Format exponentiel pour un *float* (en capitales)." -#: ../Doc/library/stdtypes.rst:2203 ../Doc/library/stdtypes.rst:3325 +#: ../Doc/library/stdtypes.rst:2217 ../Doc/library/stdtypes.rst:3349 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/library/stdtypes.rst:2203 ../Doc/library/stdtypes.rst:2205 -#: ../Doc/library/stdtypes.rst:3325 ../Doc/library/stdtypes.rst:3327 +#: ../Doc/library/stdtypes.rst:2217 ../Doc/library/stdtypes.rst:2219 +#: ../Doc/library/stdtypes.rst:3349 ../Doc/library/stdtypes.rst:3351 msgid "Floating point decimal format." msgstr "Format décimal pour un *float*." -#: ../Doc/library/stdtypes.rst:2205 ../Doc/library/stdtypes.rst:3327 +#: ../Doc/library/stdtypes.rst:2219 ../Doc/library/stdtypes.rst:3351 msgid "``'F'``" msgstr "``'F'``" -#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:3329 +#: ../Doc/library/stdtypes.rst:2221 ../Doc/library/stdtypes.rst:3353 msgid "``'g'``" msgstr "``'g'``" -#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:3329 +#: ../Doc/library/stdtypes.rst:2221 ../Doc/library/stdtypes.rst:3353 msgid "" "Floating point format. Uses lowercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." @@ -3757,11 +3766,11 @@ msgstr "" "inférieur à ``-4`` ou pas plus petit que la précision, sinon le format " "décimal." -#: ../Doc/library/stdtypes.rst:2211 ../Doc/library/stdtypes.rst:3333 +#: ../Doc/library/stdtypes.rst:2225 ../Doc/library/stdtypes.rst:3357 msgid "``'G'``" msgstr "``'G'``" -#: ../Doc/library/stdtypes.rst:2211 ../Doc/library/stdtypes.rst:3333 +#: ../Doc/library/stdtypes.rst:2225 ../Doc/library/stdtypes.rst:3357 msgid "" "Floating point format. Uses uppercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." @@ -3770,51 +3779,51 @@ msgstr "" "inférieur à ``-4`` ou pas plus petit que la précision, sinon le format " "décimal." -#: ../Doc/library/stdtypes.rst:2215 ../Doc/library/stdtypes.rst:3337 +#: ../Doc/library/stdtypes.rst:2229 ../Doc/library/stdtypes.rst:3361 msgid "``'c'``" msgstr "``'c'``" -#: ../Doc/library/stdtypes.rst:2215 +#: ../Doc/library/stdtypes.rst:2229 msgid "Single character (accepts integer or single character string)." msgstr "" "Un seul caractère (accepte des entiers ou une chaîne d'un seul caractère)." -#: ../Doc/library/stdtypes.rst:2218 ../Doc/library/stdtypes.rst:3350 +#: ../Doc/library/stdtypes.rst:2232 ../Doc/library/stdtypes.rst:3374 msgid "``'r'``" msgstr "``'r'``" -#: ../Doc/library/stdtypes.rst:2218 +#: ../Doc/library/stdtypes.rst:2232 msgid "String (converts any Python object using :func:`repr`)." msgstr "String (convertit n'importe quel objet Python avec :func:`repr`)." -#: ../Doc/library/stdtypes.rst:2221 ../Doc/library/stdtypes.rst:3344 +#: ../Doc/library/stdtypes.rst:2235 ../Doc/library/stdtypes.rst:3368 msgid "``'s'``" msgstr "``'s'``" -#: ../Doc/library/stdtypes.rst:2221 +#: ../Doc/library/stdtypes.rst:2235 msgid "String (converts any Python object using :func:`str`)." msgstr "String (convertit n'importe quel objet Python avec :func:`str`)." -#: ../Doc/library/stdtypes.rst:2224 ../Doc/library/stdtypes.rst:3347 +#: ../Doc/library/stdtypes.rst:2238 ../Doc/library/stdtypes.rst:3371 msgid "``'a'``" msgstr "``'a'``" -#: ../Doc/library/stdtypes.rst:2224 +#: ../Doc/library/stdtypes.rst:2238 msgid "String (converts any Python object using :func:`ascii`)." msgstr "" "String (convertit n'importe quel objet Python en utilisant :func:`ascii`)." -#: ../Doc/library/stdtypes.rst:2227 ../Doc/library/stdtypes.rst:3353 +#: ../Doc/library/stdtypes.rst:2241 ../Doc/library/stdtypes.rst:3377 msgid "``'%'``" msgstr "``'%'``" -#: ../Doc/library/stdtypes.rst:2227 ../Doc/library/stdtypes.rst:3353 +#: ../Doc/library/stdtypes.rst:2241 ../Doc/library/stdtypes.rst:3377 msgid "No argument is converted, results in a ``'%'`` character in the result." msgstr "" "Aucun argument n'est converti, donne un caractère de ``'%'`` dans le " "résultat." -#: ../Doc/library/stdtypes.rst:2234 ../Doc/library/stdtypes.rst:3360 +#: ../Doc/library/stdtypes.rst:2248 ../Doc/library/stdtypes.rst:3384 msgid "" "The alternate form causes a leading octal specifier (``'0o'``) to be " "inserted before the first digit." @@ -3822,7 +3831,7 @@ msgstr "" "La forme alternative entraîne l'insertion d'un préfixe octal (``'0o'``) " "avant le premier chiffre." -#: ../Doc/library/stdtypes.rst:2238 ../Doc/library/stdtypes.rst:3364 +#: ../Doc/library/stdtypes.rst:2252 ../Doc/library/stdtypes.rst:3388 msgid "" "The alternate form causes a leading ``'0x'`` or ``'0X'`` (depending on " "whether the ``'x'`` or ``'X'`` format was used) to be inserted before the " @@ -3832,7 +3841,7 @@ msgstr "" "(respectivement pour les formats ``'x'`` et ``'X'``) avant le premier " "chiffre." -#: ../Doc/library/stdtypes.rst:2242 ../Doc/library/stdtypes.rst:3368 +#: ../Doc/library/stdtypes.rst:2256 ../Doc/library/stdtypes.rst:3392 msgid "" "The alternate form causes the result to always contain a decimal point, even " "if no digits follow it." @@ -3840,14 +3849,14 @@ msgstr "" "La forme alternative implique la présence d'un point décimal, même si aucun " "chiffre ne le suit." -#: ../Doc/library/stdtypes.rst:2245 ../Doc/library/stdtypes.rst:3371 +#: ../Doc/library/stdtypes.rst:2259 ../Doc/library/stdtypes.rst:3395 msgid "" "The precision determines the number of digits after the decimal point and " "defaults to 6." msgstr "" "La précision détermine le nombre de chiffres après la virgule, 6 par défaut." -#: ../Doc/library/stdtypes.rst:2249 ../Doc/library/stdtypes.rst:3375 +#: ../Doc/library/stdtypes.rst:2263 ../Doc/library/stdtypes.rst:3399 msgid "" "The alternate form causes the result to always contain a decimal point, and " "trailing zeroes are not removed as they would otherwise be." @@ -3855,7 +3864,7 @@ msgstr "" "La forme alternative implique la présence d'un point décimal et les zéros " "non significatifs sont conservés (ils ne le seraient pas autrement)." -#: ../Doc/library/stdtypes.rst:2252 ../Doc/library/stdtypes.rst:3378 +#: ../Doc/library/stdtypes.rst:2266 ../Doc/library/stdtypes.rst:3402 msgid "" "The precision determines the number of significant digits before and after " "the decimal point and defaults to 6." @@ -3863,15 +3872,15 @@ msgstr "" "La précision détermine le nombre de chiffres significatifs avant et après la " "virgule. 6 par défaut." -#: ../Doc/library/stdtypes.rst:2256 ../Doc/library/stdtypes.rst:3382 +#: ../Doc/library/stdtypes.rst:2270 ../Doc/library/stdtypes.rst:3406 msgid "If precision is ``N``, the output is truncated to ``N`` characters." msgstr "Si la précision est ``N``, la sortie est tronquée à ``N`` caractères." -#: ../Doc/library/stdtypes.rst:2259 ../Doc/library/stdtypes.rst:3391 +#: ../Doc/library/stdtypes.rst:2273 ../Doc/library/stdtypes.rst:3415 msgid "See :pep:`237`." msgstr "Voir la :pep:`237`." -#: ../Doc/library/stdtypes.rst:2261 +#: ../Doc/library/stdtypes.rst:2275 msgid "" "Since Python strings have an explicit length, ``%s`` conversions do not " "assume that ``'\\0'`` is the end of the string." @@ -3879,7 +3888,7 @@ msgstr "" "Puisque les chaînes Python ont une longueur explicite, les conversions ``" "%s`` ne considèrent pas ``'\\0'`` comme la fin de la chaîne." -#: ../Doc/library/stdtypes.rst:2266 +#: ../Doc/library/stdtypes.rst:2280 msgid "" "``%f`` conversions for numbers whose absolute value is over 1e50 are no " "longer replaced by ``%g`` conversions." @@ -3887,7 +3896,7 @@ msgstr "" "Les conversions ``%f`` pour nombres dont la valeur absolue est supérieure à " "``1e50`` ne sont plus remplacés par des conversions ``%g``." -#: ../Doc/library/stdtypes.rst:2277 +#: ../Doc/library/stdtypes.rst:2291 msgid "" "Binary Sequence Types --- :class:`bytes`, :class:`bytearray`, :class:" "`memoryview`" @@ -3895,7 +3904,7 @@ msgstr "" "Séquences Binaires --- :class:`bytes`, :class:`bytearray`, :class:" "`memoryview`" -#: ../Doc/library/stdtypes.rst:2285 +#: ../Doc/library/stdtypes.rst:2299 msgid "" "The core built-in types for manipulating binary data are :class:`bytes` and :" "class:`bytearray`. They are supported by :class:`memoryview` which uses the :" @@ -3907,7 +3916,7 @@ msgstr "" "qui utilise le :ref:`buffer protocol ` pour accéder à la " "mémoire d'autres objets binaires sans avoir besoin d'en faire une copie." -#: ../Doc/library/stdtypes.rst:2290 +#: ../Doc/library/stdtypes.rst:2304 msgid "" "The :mod:`array` module supports efficient storage of basic data types like " "32-bit integers and IEEE754 double-precision floating values." @@ -3915,23 +3924,23 @@ msgstr "" "Le module :mod:`array` permet le stockage efficace de types basiques comme " "les entiers de 32 bits et les *float* double précision IEEE754." -#: ../Doc/library/stdtypes.rst:2296 +#: ../Doc/library/stdtypes.rst:2310 msgid "Bytes Objects" msgstr "Objets *bytes*" -#: ../Doc/library/stdtypes.rst:2300 +#: ../Doc/library/stdtypes.rst:2314 msgid "" "Bytes objects are immutable sequences of single bytes. Since many major " "binary protocols are based on the ASCII text encoding, bytes objects offer " "several methods that are only valid when working with ASCII compatible data " "and are closely related to string objects in a variety of other ways." msgstr "" -"Les *Bytes* sont des séquences immuables d'octets. Comme beaucoup de " -"protocoles binaires utilisent l'ASCII, les objets *Bytes* offrent plusieurs " +"Les *bytes* sont des séquences immuables d'octets. Comme beaucoup de " +"protocoles binaires utilisent l'ASCII, les objets *bytes* offrent plusieurs " "méthodes qui ne sont valables que lors de la manipulation de données ASCII " "et sont étroitement liés aux objets *str* dans bien d'autres aspects." -#: ../Doc/library/stdtypes.rst:2307 +#: ../Doc/library/stdtypes.rst:2321 msgid "" "Firstly, the syntax for bytes literals is largely the same as that for " "string literals, except that a ``b`` prefix is added:" @@ -3939,24 +3948,24 @@ msgstr "" "Tout d'abord, la syntaxe des *bytes* littéraux est en grande partie la même " "que pour les chaînes littérales, en dehors du préfixe ``b`` :" -#: ../Doc/library/stdtypes.rst:2310 +#: ../Doc/library/stdtypes.rst:2324 msgid "Single quotes: ``b'still allows embedded \"double\" quotes'``" msgstr "" "Les guillemets simples : ``b'autorisent aussi les guillemets \"doubles\"'``" -#: ../Doc/library/stdtypes.rst:2311 +#: ../Doc/library/stdtypes.rst:2325 msgid "Double quotes: ``b\"still allows embedded 'single' quotes\"``." msgstr "" "Les guillemets doubles : ``b\"permettent aussi les guillemets 'simples'\"``." -#: ../Doc/library/stdtypes.rst:2312 +#: ../Doc/library/stdtypes.rst:2326 msgid "" "Triple quoted: ``b'''3 single quotes'''``, ``b\"\"\"3 double quotes\"\"\"``" msgstr "" "Les guillemets triples : ``b'''3 single quotes'''``, ``b\"\"\"3 double quotes" "\"\"\"``" -#: ../Doc/library/stdtypes.rst:2314 +#: ../Doc/library/stdtypes.rst:2328 msgid "" "Only ASCII characters are permitted in bytes literals (regardless of the " "declared source code encoding). Any binary values over 127 must be entered " @@ -3967,7 +3976,7 @@ msgstr "" "delà de 127 doivent être entrés dans littéraux de *bytes* en utilisant une " "séquence d'échappement appropriée." -#: ../Doc/library/stdtypes.rst:2318 +#: ../Doc/library/stdtypes.rst:2332 msgid "" "As with string literals, bytes literals may also use a ``r`` prefix to " "disable processing of escape sequences. See :ref:`strings` for more about " @@ -3979,7 +3988,7 @@ msgstr "" "différentes formes littérales de *bytes*, y compris les séquences " "d'échappement supportées." -#: ../Doc/library/stdtypes.rst:2322 +#: ../Doc/library/stdtypes.rst:2336 msgid "" "While bytes literals and representations are based on ASCII text, bytes " "objects actually behave like immutable sequences of integers, with each " @@ -4002,7 +4011,7 @@ msgstr "" "sur des données binaires qui ne sont pas compatibles ASCII conduit " "généralement à leur corruption)." -#: ../Doc/library/stdtypes.rst:2332 +#: ../Doc/library/stdtypes.rst:2346 msgid "" "In addition to the literal forms, bytes objects can be created in a number " "of other ways:" @@ -4010,26 +4019,26 @@ msgstr "" "En plus des formes littérales, des objets *bytes* peuvent être créés par de " "nombreux moyens :" -#: ../Doc/library/stdtypes.rst:2335 +#: ../Doc/library/stdtypes.rst:2349 msgid "A zero-filled bytes object of a specified length: ``bytes(10)``" msgstr "" "Un objet *bytes* rempli de zéros d'une longueur spécifiée : ``bytes(10)``" -#: ../Doc/library/stdtypes.rst:2336 +#: ../Doc/library/stdtypes.rst:2350 msgid "From an iterable of integers: ``bytes(range(20))``" msgstr "D'un itérable d'entiers : ``bytes(range(20))``" -#: ../Doc/library/stdtypes.rst:2337 +#: ../Doc/library/stdtypes.rst:2351 msgid "Copying existing binary data via the buffer protocol: ``bytes(obj)``" msgstr "" "Copier des données binaires existantes via le *buffer protocol* : " "``bytes(obj)``" -#: ../Doc/library/stdtypes.rst:2339 +#: ../Doc/library/stdtypes.rst:2353 msgid "Also see the :ref:`bytes ` built-in." msgstr "Voir aussi la fonction native :ref:`bytes `." -#: ../Doc/library/stdtypes.rst:2341 +#: ../Doc/library/stdtypes.rst:2355 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -4041,7 +4050,7 @@ msgstr "" "données binaires. Par conséquent, le type *bytes* a une méthode de classe " "pour lire des données dans ce format :" -#: ../Doc/library/stdtypes.rst:2347 +#: ../Doc/library/stdtypes.rst:2361 msgid "" "This :class:`bytes` class method returns a bytes object, decoding the given " "string object. The string must contain two hexadecimal digits per byte, " @@ -4051,7 +4060,7 @@ msgstr "" "la chaîne donnée. La chaîne doit contenir deux chiffres hexadécimaux par " "octet, les espaces ASCII sont ignorés." -#: ../Doc/library/stdtypes.rst:2354 +#: ../Doc/library/stdtypes.rst:2368 msgid "" ":meth:`bytes.fromhex` now skips all ASCII whitespace in the string, not just " "spaces." @@ -4059,7 +4068,7 @@ msgstr "" ":meth:`bytes.fromhex` saute maintenant dans la chaîne tous les caractères " "ASCII \"blancs\", pas seulement les espaces." -#: ../Doc/library/stdtypes.rst:2358 +#: ../Doc/library/stdtypes.rst:2372 msgid "" "A reverse conversion function exists to transform a bytes object into its " "hexadecimal representation." @@ -4067,7 +4076,7 @@ msgstr "" "Une fonction de conversion inverse existe pour transformer un objet *bytes* " "en sa représentation hexadécimale." -#: ../Doc/library/stdtypes.rst:2363 ../Doc/library/stdtypes.rst:2439 +#: ../Doc/library/stdtypes.rst:2377 ../Doc/library/stdtypes.rst:2453 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the instance." @@ -4075,7 +4084,7 @@ msgstr "" "Renvoie une chaîne contenant deux chiffres hexadécimaux pour chaque octet du " "*byte*." -#: ../Doc/library/stdtypes.rst:2371 +#: ../Doc/library/stdtypes.rst:2385 msgid "" "Since bytes objects are sequences of integers (akin to a tuple), for a bytes " "object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be a bytes " @@ -4087,7 +4096,7 @@ msgstr "" "que``b[0:1]`` sera un objet *bytes* de longueur 1. (Cela contraste avec les " "chaînes, où l'indexation et le *slicing* donne une chaîne de longueur 1)" -#: ../Doc/library/stdtypes.rst:2376 +#: ../Doc/library/stdtypes.rst:2390 msgid "" "The representation of bytes objects uses the literal format (``b'...'``) " "since it is often more useful than e.g. ``bytes([46, 46, 46])``. You can " @@ -4097,7 +4106,7 @@ msgstr "" "est souvent plus utile que par exemple ``bytes([46, 46, 46])``. Vous pouvez " "toujours convertir un *bytes* en liste d'entiers en utilisant ``list(b)``." -#: ../Doc/library/stdtypes.rst:2381 +#: ../Doc/library/stdtypes.rst:2395 msgid "" "For Python 2.x users: In the Python 2.x series, a variety of implicit " "conversions between 8-bit strings (the closest thing 2.x offers to a built-" @@ -4111,18 +4120,18 @@ msgstr "" "Pour les utilisateurs de Python 2.x : Dans la série 2.x de Python, une " "variété de conversions implicites entre les chaînes 8-bit (la chose la plus " "proche d'un type natif de données binaires offert par Python 2) et des " -"chaînes Unicode étaient permises. C'était solution de contournement, pour " -"garder la rétro-compatibilité, par rapport au fait que Python ne prenait " +"chaînes Unicode étaient permises. C'était une solution de contournement, " +"pour garder la rétro-compatibilité, considérant que Python ne prenait " "initialement en charge que le texte 8 bits, le texte Unicode est un ajout " "ultérieur. En Python 3.x, ces conversions implicites ont disparues, les " "conversions entre les données binaires et texte Unicode doivent être " "explicites, et les *bytes* sont toujours différents des chaînes." -#: ../Doc/library/stdtypes.rst:2394 +#: ../Doc/library/stdtypes.rst:2408 msgid "Bytearray Objects" msgstr "Objets *bytearray*" -#: ../Doc/library/stdtypes.rst:2398 +#: ../Doc/library/stdtypes.rst:2412 msgid "" ":class:`bytearray` objects are a mutable counterpart to :class:`bytes` " "objects." @@ -4130,7 +4139,7 @@ msgstr "" "Les objets :class:`bytearray` sont l'équivalent muable des objets :class:" "`bytes`." -#: ../Doc/library/stdtypes.rst:2403 +#: ../Doc/library/stdtypes.rst:2417 msgid "" "There is no dedicated literal syntax for bytearray objects, instead they are " "always created by calling the constructor:" @@ -4138,27 +4147,27 @@ msgstr "" "Il n'y a pas de syntaxe littérale dédiée aux *bytearray*, ils sont toujours " "créés en appelant le constructeur :" -#: ../Doc/library/stdtypes.rst:2406 +#: ../Doc/library/stdtypes.rst:2420 msgid "Creating an empty instance: ``bytearray()``" msgstr "Créer une instance vide: ``bytearray()``" -#: ../Doc/library/stdtypes.rst:2407 +#: ../Doc/library/stdtypes.rst:2421 msgid "Creating a zero-filled instance with a given length: ``bytearray(10)``" msgstr "" "Créer une instance remplie de zéros d'une longueur donnée : ``bytearray(10)``" -#: ../Doc/library/stdtypes.rst:2408 +#: ../Doc/library/stdtypes.rst:2422 msgid "From an iterable of integers: ``bytearray(range(20))``" msgstr "À partir d'un itérable d'entiers : ``bytearray(range(20))``" -#: ../Doc/library/stdtypes.rst:2409 +#: ../Doc/library/stdtypes.rst:2423 msgid "" "Copying existing binary data via the buffer protocol: ``bytearray(b'Hi!')``" msgstr "" "Copie des données binaires existantes via le *buffer protocol* : " "``bytearray(b'Hi!')``" -#: ../Doc/library/stdtypes.rst:2411 +#: ../Doc/library/stdtypes.rst:2425 msgid "" "As bytearray objects are mutable, they support the :ref:`mutable ` sequence operations in addition to the common bytes and bytearray " @@ -4168,11 +4177,11 @@ msgstr "" "séquence :ref:`muables ` en plus des opérations communes " "de *bytes* et *bytearray* décrites dans :ref:`bytes-methods`." -#: ../Doc/library/stdtypes.rst:2415 +#: ../Doc/library/stdtypes.rst:2429 msgid "Also see the :ref:`bytearray ` built-in." msgstr "Voir aussi la fonction native :ref:`bytearray `." -#: ../Doc/library/stdtypes.rst:2417 +#: ../Doc/library/stdtypes.rst:2431 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -4184,7 +4193,7 @@ msgstr "" "données binaires. Par conséquent, le type *bytearray* a une méthode de " "classe pour lire les données dans ce format :" -#: ../Doc/library/stdtypes.rst:2423 +#: ../Doc/library/stdtypes.rst:2437 msgid "" "This :class:`bytearray` class method returns bytearray object, decoding the " "given string object. The string must contain two hexadecimal digits per " @@ -4194,7 +4203,7 @@ msgstr "" "décodant la chaîne donnée. La chaîne doit contenir deux chiffres " "hexadécimaux par octet, les espaces ASCII sont ignorés." -#: ../Doc/library/stdtypes.rst:2430 +#: ../Doc/library/stdtypes.rst:2444 msgid "" ":meth:`bytearray.fromhex` now skips all ASCII whitespace in the string, not " "just spaces." @@ -4202,7 +4211,7 @@ msgstr "" ":meth:`bytearray.fromhex` saute maintenant tous les caractères \"blancs\" " "ASCII dans la chaîne, pas seulement les espaces." -#: ../Doc/library/stdtypes.rst:2434 +#: ../Doc/library/stdtypes.rst:2448 msgid "" "A reverse conversion function exists to transform a bytearray object into " "its hexadecimal representation." @@ -4210,7 +4219,7 @@ msgstr "" "Une fonction de conversion inverse existe pour transformer un objet " "*bytearray* en sa représentation hexadécimale." -#: ../Doc/library/stdtypes.rst:2447 +#: ../Doc/library/stdtypes.rst:2461 msgid "" "Since bytearray objects are sequences of integers (akin to a list), for a " "bytearray object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be " @@ -4223,7 +4232,7 @@ msgstr "" "chaînes de texte, où l'indexation et le *slicing* produit une chaîne de " "longueur 1)" -#: ../Doc/library/stdtypes.rst:2452 +#: ../Doc/library/stdtypes.rst:2466 msgid "" "The representation of bytearray objects uses the bytes literal format " "(``bytearray(b'...')``) since it is often more useful than e.g. " @@ -4235,11 +4244,11 @@ msgstr "" "exemple ``bytearray([46, 46, 46])``. Vous pouvez toujours convertir un objet " "*bytearray* en une liste de nombres entiers en utilisant ``list(b)``." -#: ../Doc/library/stdtypes.rst:2461 +#: ../Doc/library/stdtypes.rst:2475 msgid "Bytes and Bytearray Operations" msgstr "Opérations sur les *bytes* et *bytearray*" -#: ../Doc/library/stdtypes.rst:2466 +#: ../Doc/library/stdtypes.rst:2480 msgid "" "Both bytes and bytearray objects support the :ref:`common ` " "sequence operations. They interoperate not just with operands of the same " @@ -4254,7 +4263,7 @@ msgstr "" "opérations sans provoquer d'erreurs. Cependant, le type du résultat peut " "dépendre de l'ordre des opérandes." -#: ../Doc/library/stdtypes.rst:2474 +#: ../Doc/library/stdtypes.rst:2488 msgid "" "The methods on bytes and bytearray objects don't accept strings as their " "arguments, just as the methods on strings don't accept bytes as their " @@ -4264,11 +4273,11 @@ msgstr "" "comme arguments, tout comme les méthodes sur les chaînes n'acceptent pas les " "*bytes* comme arguments. Par exemple, vous devez écrire ::" -#: ../Doc/library/stdtypes.rst:2481 +#: ../Doc/library/stdtypes.rst:2495 msgid "and::" -msgstr "et  : ::" +msgstr "et ::" -#: ../Doc/library/stdtypes.rst:2486 +#: ../Doc/library/stdtypes.rst:2500 msgid "" "Some bytes and bytearray operations assume the use of ASCII compatible " "binary formats, and hence should be avoided when working with arbitrary " @@ -4279,7 +4288,7 @@ msgstr "" "travaillez avec des données binaires arbitraires. Ces restrictions sont " "couvertes ci-dessous." -#: ../Doc/library/stdtypes.rst:2491 +#: ../Doc/library/stdtypes.rst:2505 msgid "" "Using these ASCII based operations to manipulate binary data that is not " "stored in an ASCII based format may lead to data corruption." @@ -4287,7 +4296,7 @@ msgstr "" "Utiliser ces opérations basées sur l'ASCII pour manipuler des données " "binaires qui ne sont pas au format ASCII peut les corrompre." -#: ../Doc/library/stdtypes.rst:2494 +#: ../Doc/library/stdtypes.rst:2508 msgid "" "The following methods on bytes and bytearray objects can be used with " "arbitrary binary data." @@ -4295,7 +4304,7 @@ msgstr "" "Les méthodes suivantes sur les *bytes* et *bytearray* peuvent être utilisées " "avec des données binaires arbitraires." -#: ../Doc/library/stdtypes.rst:2500 +#: ../Doc/library/stdtypes.rst:2514 msgid "" "Return the number of non-overlapping occurrences of subsequence *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " @@ -4305,9 +4314,9 @@ msgstr "" "séquence *sub* dans l'intervalle [*start*, *end*]. Les arguments facultatifs " "*start* et *end* sont interprétés comme pour un *slice*." -#: ../Doc/library/stdtypes.rst:2504 ../Doc/library/stdtypes.rst:2551 -#: ../Doc/library/stdtypes.rst:2573 ../Doc/library/stdtypes.rst:2639 -#: ../Doc/library/stdtypes.rst:2652 +#: ../Doc/library/stdtypes.rst:2518 ../Doc/library/stdtypes.rst:2565 +#: ../Doc/library/stdtypes.rst:2587 ../Doc/library/stdtypes.rst:2653 +#: ../Doc/library/stdtypes.rst:2666 msgid "" "The subsequence to search for may be any :term:`bytes-like object` or an " "integer in the range 0 to 255." @@ -4315,14 +4324,14 @@ msgstr "" "La sous-séquence à rechercher peut être un quelconque :term:`bytes-like " "object` ou un nombre entier compris entre 0 et 255." -#: ../Doc/library/stdtypes.rst:2507 ../Doc/library/stdtypes.rst:2563 -#: ../Doc/library/stdtypes.rst:2576 ../Doc/library/stdtypes.rst:2642 -#: ../Doc/library/stdtypes.rst:2655 +#: ../Doc/library/stdtypes.rst:2521 ../Doc/library/stdtypes.rst:2577 +#: ../Doc/library/stdtypes.rst:2590 ../Doc/library/stdtypes.rst:2656 +#: ../Doc/library/stdtypes.rst:2669 msgid "Also accept an integer in the range 0 to 255 as the subsequence." msgstr "" "Accepte aussi un nombre entier compris entre 0 et 255 comme sous-séquence." -#: ../Doc/library/stdtypes.rst:2514 +#: ../Doc/library/stdtypes.rst:2528 msgid "" "Return a string decoded from the given bytes. Default encoding is " "``'utf-8'``. *errors* may be given to set a different error handling " @@ -4341,7 +4350,7 @@ msgstr "" "register_error`, voir la section :ref:`error-handlers`. Pour une liste des " "encodages possibles, voir la section :ref:`standard-encodings`." -#: ../Doc/library/stdtypes.rst:2524 +#: ../Doc/library/stdtypes.rst:2538 msgid "" "Passing the *encoding* argument to :class:`str` allows decoding any :term:" "`bytes-like object` directly, without needing to make a temporary bytes or " @@ -4351,11 +4360,11 @@ msgstr "" "`bytes-like object` directement, sans avoir besoin d'utiliser un *bytes* ou " "*bytearray* temporaire." -#: ../Doc/library/stdtypes.rst:2528 +#: ../Doc/library/stdtypes.rst:2542 msgid "Added support for keyword arguments." msgstr "Gère les arguments nommés." -#: ../Doc/library/stdtypes.rst:2535 +#: ../Doc/library/stdtypes.rst:2549 msgid "" "Return ``True`` if the binary data ends with the specified *suffix*, " "otherwise return ``False``. *suffix* can also be a tuple of suffixes to " @@ -4367,13 +4376,13 @@ msgstr "" "optionnel *start*, la recherche se fait à partir de cette position. Avec " "l'argument optionnel *end*, la comparaison s'arrête à cette position." -#: ../Doc/library/stdtypes.rst:2540 +#: ../Doc/library/stdtypes.rst:2554 msgid "The suffix(es) to search for may be any :term:`bytes-like object`." msgstr "" "Les suffixes à rechercher peuvent être n'importe quel :term:`bytes-like " "object`." -#: ../Doc/library/stdtypes.rst:2546 +#: ../Doc/library/stdtypes.rst:2560 msgid "" "Return the lowest index in the data where the subsequence *sub* is found, " "such that *sub* is contained in the slice ``s[start:end]``. Optional " @@ -4385,7 +4394,7 @@ msgstr "" "facultatifs *start* et *end* sont interprétés comme dans la notation des " "*slices*. Donne ``-1`` si *sub* n'est pas trouvé." -#: ../Doc/library/stdtypes.rst:2556 +#: ../Doc/library/stdtypes.rst:2570 msgid "" "The :meth:`~bytes.find` method should be used only if you need to know the " "position of *sub*. To check if *sub* is a substring or not, use the :" @@ -4395,7 +4404,7 @@ msgstr "" "de connaître la position de *sub*. Pour vérifier si *sub* est présent ou " "non, utilisez l'opérateur :keyword:`in` ::" -#: ../Doc/library/stdtypes.rst:2570 +#: ../Doc/library/stdtypes.rst:2584 msgid "" "Like :meth:`~bytes.find`, but raise :exc:`ValueError` when the subsequence " "is not found." @@ -4403,7 +4412,7 @@ msgstr "" "Comme :meth:`~bytes.find`, mais lève une :exc:`ValueError` lorsque la " "séquence est introuvable." -#: ../Doc/library/stdtypes.rst:2583 +#: ../Doc/library/stdtypes.rst:2597 msgid "" "Return a bytes or bytearray object which is the concatenation of the binary " "data sequences in *iterable*. A :exc:`TypeError` will be raised if there " @@ -4419,7 +4428,7 @@ msgstr "" "éléments est le contenu du *bytes* ou du *bytearray* depuis lequel cette " "méthode est appelée." -#: ../Doc/library/stdtypes.rst:2594 +#: ../Doc/library/stdtypes.rst:2608 msgid "" "This static method returns a translation table usable for :meth:`bytes." "translate` that will map each character in *from* into the character at the " @@ -4432,7 +4441,7 @@ msgstr "" "être des :term:`bytes-like objects ` et avoir la même " "longueur." -#: ../Doc/library/stdtypes.rst:2605 +#: ../Doc/library/stdtypes.rst:2619 msgid "" "Split the sequence at the first occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself or its " @@ -4446,11 +4455,11 @@ msgstr "" "est pas trouvé, le 3-tuple renvoyé contiendra une copie de la séquence " "d'origine, suivi de deux *bytes* ou *bytearray* vides." -#: ../Doc/library/stdtypes.rst:2612 ../Doc/library/stdtypes.rst:2669 +#: ../Doc/library/stdtypes.rst:2626 ../Doc/library/stdtypes.rst:2683 msgid "The separator to search for may be any :term:`bytes-like object`." msgstr "Le séparateur à rechercher peut être tout :term:`bytes-like object`." -#: ../Doc/library/stdtypes.rst:2618 +#: ../Doc/library/stdtypes.rst:2632 msgid "" "Return a copy of the sequence with all occurrences of subsequence *old* " "replaced by *new*. If the optional argument *count* is given, only the " @@ -4460,7 +4469,7 @@ msgstr "" "séquence *old* sont remplacées par *new*. Si l'argument optionnel *count* " "est donné, seules les *count* premières occurrences de sont remplacés." -#: ../Doc/library/stdtypes.rst:2622 +#: ../Doc/library/stdtypes.rst:2636 msgid "" "The subsequence to search for and its replacement may be any :term:`bytes-" "like object`." @@ -4468,14 +4477,14 @@ msgstr "" "La sous-séquence à rechercher et son remplacement peuvent être n'importe " "quel :term:`bytes-like object`." -#: ../Doc/library/stdtypes.rst:2627 ../Doc/library/stdtypes.rst:2720 -#: ../Doc/library/stdtypes.rst:2734 ../Doc/library/stdtypes.rst:2758 -#: ../Doc/library/stdtypes.rst:2772 ../Doc/library/stdtypes.rst:2807 -#: ../Doc/library/stdtypes.rst:2877 ../Doc/library/stdtypes.rst:2895 -#: ../Doc/library/stdtypes.rst:2923 ../Doc/library/stdtypes.rst:3062 -#: ../Doc/library/stdtypes.rst:3117 ../Doc/library/stdtypes.rst:3160 -#: ../Doc/library/stdtypes.rst:3181 ../Doc/library/stdtypes.rst:3203 -#: ../Doc/library/stdtypes.rst:3395 +#: ../Doc/library/stdtypes.rst:2641 ../Doc/library/stdtypes.rst:2734 +#: ../Doc/library/stdtypes.rst:2748 ../Doc/library/stdtypes.rst:2772 +#: ../Doc/library/stdtypes.rst:2786 ../Doc/library/stdtypes.rst:2821 +#: ../Doc/library/stdtypes.rst:2891 ../Doc/library/stdtypes.rst:2909 +#: ../Doc/library/stdtypes.rst:2937 ../Doc/library/stdtypes.rst:3076 +#: ../Doc/library/stdtypes.rst:3131 ../Doc/library/stdtypes.rst:3174 +#: ../Doc/library/stdtypes.rst:3195 ../Doc/library/stdtypes.rst:3217 +#: ../Doc/library/stdtypes.rst:3419 msgid "" "The bytearray version of this method does *not* operate in place - it always " "produces a new object, even if no changes were made." @@ -4484,7 +4493,7 @@ msgstr "" "produit toujours un nouvel objet, même si aucune modification n'a été " "effectuée." -#: ../Doc/library/stdtypes.rst:2634 +#: ../Doc/library/stdtypes.rst:2648 msgid "" "Return the highest index in the sequence where the subsequence *sub* is " "found, such that *sub* is contained within ``s[start:end]``. Optional " @@ -4496,7 +4505,7 @@ msgstr "" "sont interprétés comme dans la notation des *slices*. Donne ``-1`` si *sub* " "n'est pas trouvable." -#: ../Doc/library/stdtypes.rst:2649 +#: ../Doc/library/stdtypes.rst:2663 msgid "" "Like :meth:`~bytes.rfind` but raises :exc:`ValueError` when the subsequence " "*sub* is not found." @@ -4504,21 +4513,21 @@ msgstr "" "Semblable à :meth:`~bytes.rfind` mais lève une :exc:`ValueError` lorsque " "*sub* est introuvable." -#: ../Doc/library/stdtypes.rst:2662 +#: ../Doc/library/stdtypes.rst:2676 msgid "" "Split the sequence at the last occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself or its " "bytearray copy, and the part after the separator. If the separator is not " -"found, return a 3-tuple containing a copy of the original sequence, followed " -"by two empty bytes or bytearray objects." +"found, return a 3-tuple containing two empty bytes or bytearray objects, " +"followed by a copy of the original sequence." msgstr "" -"Coupe la séquence à la dernière occurrence de *sep*, et renvoie un tuple de " -"trois éléments contenant la partie précédent le séparateur, le séparateur " +"Coupe la séquence à la dernière occurrence de *sep*, et renvoie un triplet " +"de trois éléments contenant la partie précédent le séparateur, le séparateur " "lui même (ou sa copie, un *bytearray*), et la partie suivant le séparateur. " -"Si le séparateur n'est pas trouvé, le tuple contiendra une copie de la " -"séquence d'origine, suivi de deux *bytes* ou *bytesarray* vides." +"Si le séparateur n'est pas trouvé, le triplet contiendra deux *bytes* ou " +"*bytesarray* vides suivi d’une copie de la séquence d'origine." -#: ../Doc/library/stdtypes.rst:2675 +#: ../Doc/library/stdtypes.rst:2689 msgid "" "Return ``True`` if the binary data starts with the specified *prefix*, " "otherwise return ``False``. *prefix* can also be a tuple of prefixes to " @@ -4530,13 +4539,13 @@ msgstr "" "Avec l'argument *start* la recherche commence à cette position. Avec " "l'argument *end* option, la recherche s'arrête à cette position." -#: ../Doc/library/stdtypes.rst:2680 +#: ../Doc/library/stdtypes.rst:2694 msgid "The prefix(es) to search for may be any :term:`bytes-like object`." msgstr "" "Le préfixe(s) à rechercher peuvent être n'importe quel :term:`bytes-like " "object`." -#: ../Doc/library/stdtypes.rst:2686 +#: ../Doc/library/stdtypes.rst:2700 msgid "" "Return a copy of the bytes or bytearray object where all bytes occurring in " "the optional argument *delete* are removed, and the remaining bytes have " @@ -4547,25 +4556,25 @@ msgstr "" "*delete* sont supprimés, et les octets restants changés par la table de " "correspondance donnée, qui doit être un objet *bytes* d'une longueur de 256." -#: ../Doc/library/stdtypes.rst:2691 +#: ../Doc/library/stdtypes.rst:2705 msgid "" "You can use the :func:`bytes.maketrans` method to create a translation table." msgstr "" "Vous pouvez utiliser la méthode :func:`bytes.maketrans` pour créer une table " "de correspondance." -#: ../Doc/library/stdtypes.rst:2694 +#: ../Doc/library/stdtypes.rst:2708 msgid "" "Set the *table* argument to ``None`` for translations that only delete " "characters::" msgstr "" -"Donnez ``None`` comme *table* pour seulement supprimer des caractères : ::" +"Donnez ``None`` comme *table* pour seulement supprimer des caractères ::" -#: ../Doc/library/stdtypes.rst:2700 +#: ../Doc/library/stdtypes.rst:2714 msgid "*delete* is now supported as a keyword argument." msgstr "*delete* est maintenant accepté comme argument nommé." -#: ../Doc/library/stdtypes.rst:2704 +#: ../Doc/library/stdtypes.rst:2718 msgid "" "The following methods on bytes and bytearray objects have default behaviours " "that assume the use of ASCII compatible binary formats, but can still be " @@ -4574,12 +4583,12 @@ msgid "" "instead produce new objects." msgstr "" "Les méthodes suivantes sur les *bytes* et *bytearray* supposent par défaut " -"que les données traitées sont compatible ASCII, mais peuvent toujours être " +"que les données traitées sont compatibles ASCII, mais peuvent toujours être " "utilisées avec des données binaires, arbitraires, en passant des arguments " "appropriés. Notez que toutes les méthodes de *bytearray* de cette section " "ne travaillent jamais sur l'objet lui même, mais renvoient un nouvel objet." -#: ../Doc/library/stdtypes.rst:2713 +#: ../Doc/library/stdtypes.rst:2727 msgid "" "Return a copy of the object centered in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -4591,7 +4600,7 @@ msgstr "" "espace ASCII). Pour les objets :class:`bytes`, la séquence initiale est " "renvoyée si *width* est inférieur ou égal à ``len(s)``." -#: ../Doc/library/stdtypes.rst:2727 +#: ../Doc/library/stdtypes.rst:2741 msgid "" "Return a copy of the object left justified in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -4603,7 +4612,7 @@ msgstr "" "espace ASCII). Pour les objets :class:`bytes`, la séquence initiale est " "renvoyée si *width* est inférieure ou égale à ``len(s)``." -#: ../Doc/library/stdtypes.rst:2741 +#: ../Doc/library/stdtypes.rst:2755 msgid "" "Return a copy of the sequence with specified leading bytes removed. The " "*chars* argument is a binary sequence specifying the set of byte values to " @@ -4620,15 +4629,15 @@ msgstr "" "*chars* n’est pas un préfixe, toutes les combinaisons de ses valeurs sont " "supprimées ::" -#: ../Doc/library/stdtypes.rst:2753 ../Doc/library/stdtypes.rst:2802 -#: ../Doc/library/stdtypes.rst:2872 +#: ../Doc/library/stdtypes.rst:2767 ../Doc/library/stdtypes.rst:2816 +#: ../Doc/library/stdtypes.rst:2886 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`." msgstr "" "La séquence de valeurs à supprimer peut être tout :term:`bytes-like object`." -#: ../Doc/library/stdtypes.rst:2765 +#: ../Doc/library/stdtypes.rst:2779 msgid "" "Return a copy of the object right justified in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -4640,7 +4649,7 @@ msgstr "" "défaut est un espace ASCII). Pour les objets :class:`bytes`, la séquence " "d'origine est renvoyée si *width* est inférieure ou égale à ``len(s)``." -#: ../Doc/library/stdtypes.rst:2779 +#: ../Doc/library/stdtypes.rst:2793 msgid "" "Split the binary sequence into subsequences of the same type, using *sep* as " "the delimiter string. If *maxsplit* is given, at most *maxsplit* splits are " @@ -4657,7 +4666,7 @@ msgstr "" "meth:`rsplit` se comporte comme :meth:`split` qui est décrit en détail ci-" "dessous." -#: ../Doc/library/stdtypes.rst:2790 +#: ../Doc/library/stdtypes.rst:2804 msgid "" "Return a copy of the sequence with specified trailing bytes removed. The " "*chars* argument is a binary sequence specifying the set of byte values to " @@ -4672,7 +4681,7 @@ msgstr "" "supprimés. L'argument *chars* n'est pas un suffixe : toutes les combinaisons " "de ses valeurs sont retirées ::" -#: ../Doc/library/stdtypes.rst:2814 +#: ../Doc/library/stdtypes.rst:2828 msgid "" "Split the binary sequence into subsequences of the same type, using *sep* as " "the delimiter string. If *maxsplit* is given and non-negative, at most " @@ -4686,7 +4695,7 @@ msgstr "" "éléments), Si *maxsplit* n'est pas spécifié ou faut ``-1``, il n'y a aucune " "limite au nombre de découpes (elles sont toutes effectuées)." -#: ../Doc/library/stdtypes.rst:2820 +#: ../Doc/library/stdtypes.rst:2834 msgid "" "If *sep* is given, consecutive delimiters are not grouped together and are " "deemed to delimit empty subsequences (for example, ``b'1,,2'.split(b',')`` " @@ -4704,7 +4713,7 @@ msgstr "" "``[b'']`` ou ``[bytearray(b'')]`` en fonction du type de l'objet découpé. " "L'argument *sep* peut être n'importe quel :term:`bytes-like object`." -#: ../Doc/library/stdtypes.rst:2838 +#: ../Doc/library/stdtypes.rst:2852 msgid "" "If *sep* is not specified or is ``None``, a different splitting algorithm is " "applied: runs of consecutive ASCII whitespace are regarded as a single " @@ -4720,7 +4729,7 @@ msgstr "" "diviser une séquence vide ou une séquence composée d'espaces ASCII avec un " "séparateur ``None`` renvoie ``[]``." -#: ../Doc/library/stdtypes.rst:2859 +#: ../Doc/library/stdtypes.rst:2873 msgid "" "Return a copy of the sequence with specified leading and trailing bytes " "removed. The *chars* argument is a binary sequence specifying the set of " @@ -4734,9 +4743,9 @@ msgstr "" "supprimer, le nom se réfère au fait de cette méthode est généralement " "utilisée avec des caractères ASCII. En cas d'omission ou ``None``, les " "espaces ASCII sont supprimés. L'argument *chars* n'est ni un préfixe ni un " -"suffixe, toutes les combinaisons de ses valeurs sont supprimées : ::" +"suffixe, toutes les combinaisons de ses valeurs sont supprimées ::" -#: ../Doc/library/stdtypes.rst:2881 +#: ../Doc/library/stdtypes.rst:2895 msgid "" "The following methods on bytes and bytearray objects assume the use of ASCII " "compatible binary formats and should not be applied to arbitrary binary " @@ -4749,7 +4758,7 @@ msgstr "" "que toutes les méthodes de *bytearray* de cette section *ne modifient pas* " "les octets, ils produisent de nouveaux objets." -#: ../Doc/library/stdtypes.rst:2889 +#: ../Doc/library/stdtypes.rst:2903 msgid "" "Return a copy of the sequence with each byte interpreted as an ASCII " "character, and the first byte capitalized and the rest lowercased. Non-ASCII " @@ -4759,7 +4768,7 @@ msgstr "" "caractère ASCII, le premier octet en capitale et le reste en minuscules. Les " "octets non ASCII ne sont pas modifiés." -#: ../Doc/library/stdtypes.rst:2902 +#: ../Doc/library/stdtypes.rst:2916 msgid "" "Return a copy of the sequence where all ASCII tab characters are replaced by " "one or more ASCII spaces, depending on the current column and the given tab " @@ -4788,9 +4797,9 @@ msgstr "" "'``) ou un retour chariot (``b'\\r'``), il est copié et la colonne en cours " "est remise à zéro. Tout autre octet est copié inchangé et la colonne en " "cours est incrémentée de un indépendamment de la façon dont l'octet est " -"représenté lors de l’affichage : ::" +"représenté lors de l’affichage ::" -#: ../Doc/library/stdtypes.rst:2930 +#: ../Doc/library/stdtypes.rst:2944 msgid "" "Return true if all bytes in the sequence are alphabetical ASCII characters " "or ASCII decimal digits and the sequence is not empty, false otherwise. " @@ -4804,7 +4813,7 @@ msgstr "" "``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'`` et les " "chiffres : ``b'0123456789'``." -#: ../Doc/library/stdtypes.rst:2947 +#: ../Doc/library/stdtypes.rst:2961 msgid "" "Return true if all bytes in the sequence are alphabetic ASCII characters and " "the sequence is not empty, false otherwise. Alphabetic ASCII characters are " @@ -4816,7 +4825,7 @@ msgstr "" "Les caractères ASCIIalphabétiques sont : " "``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``." -#: ../Doc/library/stdtypes.rst:2963 +#: ../Doc/library/stdtypes.rst:2977 msgid "" "Return true if the sequence is empty or all bytes in the sequence are ASCII, " "false otherwise. ASCII bytes are in the range 0-0x7F." @@ -4825,7 +4834,7 @@ msgstr "" "octets ASCII, renvoie faux dans le cas contraire. Les octets ASCII dans " "l'intervalle ``0``---``0x7F``." -#: ../Doc/library/stdtypes.rst:2973 +#: ../Doc/library/stdtypes.rst:2987 msgid "" "Return true if all bytes in the sequence are ASCII decimal digits and the " "sequence is not empty, false otherwise. ASCII decimal digits are those byte " @@ -4835,7 +4844,7 @@ msgstr "" "que la séquence n'est pas vide, sinon ``False``. Les chiffres ASCII sont " "``b'0123456789'``." -#: ../Doc/library/stdtypes.rst:2988 +#: ../Doc/library/stdtypes.rst:3002 msgid "" "Return true if there is at least one lowercase ASCII character in the " "sequence and no uppercase ASCII characters, false otherwise." @@ -4843,9 +4852,9 @@ msgstr "" "Donne ``True`` s'il y a au moins un caractère ASCII minuscule dans la " "séquence et aucune capitale, sinon ``False``." -#: ../Doc/library/stdtypes.rst:2998 ../Doc/library/stdtypes.rst:3040 -#: ../Doc/library/stdtypes.rst:3056 ../Doc/library/stdtypes.rst:3106 -#: ../Doc/library/stdtypes.rst:3175 +#: ../Doc/library/stdtypes.rst:3012 ../Doc/library/stdtypes.rst:3054 +#: ../Doc/library/stdtypes.rst:3070 ../Doc/library/stdtypes.rst:3120 +#: ../Doc/library/stdtypes.rst:3189 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -4854,7 +4863,7 @@ msgstr "" "Les caractères ASCII minuscules sont ``b'abcdefghijklmnopqrstuvwxyz'``. Les " "capitales ASCII sont ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``." -#: ../Doc/library/stdtypes.rst:3006 +#: ../Doc/library/stdtypes.rst:3020 msgid "" "Return true if all bytes in the sequence are ASCII whitespace and the " "sequence is not empty, false otherwise. ASCII whitespace characters are " @@ -4866,7 +4875,7 @@ msgstr "" "\\t\\n\\r\\x0b\\f'`` (espace, tabulation,saut de ligne, retour chariot, " "tabulation verticale, *form feed*)." -#: ../Doc/library/stdtypes.rst:3015 +#: ../Doc/library/stdtypes.rst:3029 msgid "" "Return true if the sequence is ASCII titlecase and the sequence is not " "empty, false otherwise. See :meth:`bytes.title` for more details on the " @@ -4876,7 +4885,7 @@ msgstr "" "vide, sinon ``False``. Voir :meth:`bytes.title` pour plus de détails sur la " "définition de *titlecase*." -#: ../Doc/library/stdtypes.rst:3030 +#: ../Doc/library/stdtypes.rst:3044 msgid "" "Return true if there is at least one uppercase alphabetic ASCII character in " "the sequence and no lowercase ASCII characters, false otherwise." @@ -4884,7 +4893,7 @@ msgstr "" "Donne ``True`` s'il y a au moins un caractère alphabétique majuscule ASCII " "dans la séquence et aucun caractères ASCII minuscules, sinon ``False``." -#: ../Doc/library/stdtypes.rst:3048 +#: ../Doc/library/stdtypes.rst:3062 msgid "" "Return a copy of the sequence with all the uppercase ASCII characters " "converted to their corresponding lowercase counterpart." @@ -4892,7 +4901,7 @@ msgstr "" "Renvoie une copie de la séquence dont tous les caractères ASCII en " "majuscules sont convertis en leur équivalent en minuscules." -#: ../Doc/library/stdtypes.rst:3073 +#: ../Doc/library/stdtypes.rst:3087 msgid "" "Return a list of the lines in the binary sequence, breaking at ASCII line " "boundaries. This method uses the :term:`universal newlines` approach to " @@ -4904,7 +4913,7 @@ msgstr "" "newlines` pour découper les lignes. Les fins de ligne ne sont pas inclus " "dans la liste des résultats, sauf si *keepends* est donné et vrai." -#: ../Doc/library/stdtypes.rst:3085 +#: ../Doc/library/stdtypes.rst:3099 msgid "" "Unlike :meth:`~bytes.split` when a delimiter string *sep* is given, this " "method returns an empty list for the empty string, and a terminal line break " @@ -4912,9 +4921,9 @@ msgid "" msgstr "" "Contrairement à :meth:`~bytes.split` lorsque le délimiteur *sep* est fourni, " "cette méthode renvoie une liste vide pour la chaîne vide, et un saut de " -"ligne à la fin ne se traduit pas par une ligne supplémentaire : ::" +"ligne à la fin ne se traduit pas par une ligne supplémentaire ::" -#: ../Doc/library/stdtypes.rst:3098 +#: ../Doc/library/stdtypes.rst:3112 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart and vice-versa." @@ -4922,7 +4931,7 @@ msgstr "" "Renvoie une copie de la séquence dont tous les caractères ASCII minuscules " "sont convertis en majuscules et vice-versa." -#: ../Doc/library/stdtypes.rst:3110 +#: ../Doc/library/stdtypes.rst:3124 msgid "" "Unlike :func:`str.swapcase()`, it is always the case that ``bin.swapcase()." "swapcase() == bin`` for the binary versions. Case conversions are " @@ -4933,7 +4942,7 @@ msgstr "" "bin`` est toujours vrai. Les conversions majuscule/minuscule en ASCII étant " "toujours symétrique, ce qui n'est pas toujours vrai avec Unicode." -#: ../Doc/library/stdtypes.rst:3124 +#: ../Doc/library/stdtypes.rst:3138 msgid "" "Return a titlecased version of the binary sequence where words start with an " "uppercase ASCII character and the remaining characters are lowercase. " @@ -4943,7 +4952,7 @@ msgstr "" "commencent par un caractère ASCII majuscule et les caractères restants sont " "en minuscules. Les octets non capitalisables ne sont pas modifiés." -#: ../Doc/library/stdtypes.rst:3133 +#: ../Doc/library/stdtypes.rst:3147 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -4954,7 +4963,7 @@ msgstr "" "caractères ASCII majuscules sont ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Aucun " "autre octet n'est capitalisable." -#: ../Doc/library/stdtypes.rst:3167 +#: ../Doc/library/stdtypes.rst:3181 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart." @@ -4962,10 +4971,10 @@ msgstr "" "Renvoie une copie de la séquence dont tous les caractères ASCII minuscules " "sont convertis en leur équivalent majuscule." -#: ../Doc/library/stdtypes.rst:3188 +#: ../Doc/library/stdtypes.rst:3202 msgid "" "Return a copy of the sequence left filled with ASCII ``b'0'`` digits to make " -"a sequence of length *width*. A leading sign prefix (``b'+'``/ ``b'-'`` is " +"a sequence of length *width*. A leading sign prefix (``b'+'``/ ``b'-'``) is " "handled by inserting the padding *after* the sign character rather than " "before. For :class:`bytes` objects, the original sequence is returned if " "*width* is less than or equal to ``len(seq)``." @@ -4977,11 +4986,11 @@ msgstr "" "séquence d'origine est renvoyée si *width* est inférieur ou égale à " "``len(seq)``." -#: ../Doc/library/stdtypes.rst:3210 +#: ../Doc/library/stdtypes.rst:3224 msgid "``printf``-style Bytes Formatting" msgstr "Formatage de *bytes* a la ``printf``" -#: ../Doc/library/stdtypes.rst:3228 +#: ../Doc/library/stdtypes.rst:3241 msgid "" "The formatting operations described here exhibit a variety of quirks that " "lead to a number of common errors (such as failing to display tuples and " @@ -4994,7 +5003,7 @@ msgstr "" "correctement). Si la valeur à afficher peut être un tuple ou un " "dictionnaire, mettez le a l'intérieur d'un autre tuple." -#: ../Doc/library/stdtypes.rst:3233 +#: ../Doc/library/stdtypes.rst:3246 msgid "" "Bytes objects (``bytes``/``bytearray``) have one unique built-in operation: " "the ``%`` operator (modulo). This is also known as the bytes *formatting* or " @@ -5010,7 +5019,7 @@ msgstr "" "plus de *values*. L'effet est similaire à la fonction :c:func:`sprintf` du " "langage C." -#: ../Doc/library/stdtypes.rst:3240 +#: ../Doc/library/stdtypes.rst:3253 msgid "" "If *format* requires a single argument, *values* may be a single non-tuple " "object. [5]_ Otherwise, *values* must be a tuple with exactly the number of " @@ -5022,7 +5031,7 @@ msgstr "" "d'éléments spécifiés dans le format en *bytes*, ou un seul objet de " "correspondances ( *mapping object*, par exemple, un dictionnaire)." -#: ../Doc/library/stdtypes.rst:3269 +#: ../Doc/library/stdtypes.rst:3287 msgid "" "When the right argument is a dictionary (or other mapping type), then the " "formats in the bytes object *must* include a parenthesised mapping key into " @@ -5035,15 +5044,15 @@ msgstr "" "caractère ``'%'``. La clé indique quelle valeur du dictionnaire doit être " "formatée. Par exemple :" -#: ../Doc/library/stdtypes.rst:3337 +#: ../Doc/library/stdtypes.rst:3361 msgid "Single byte (accepts integer or single byte objects)." msgstr "Octet simple (Accepte un nombre entier ou un seul objet *byte*)." -#: ../Doc/library/stdtypes.rst:3340 +#: ../Doc/library/stdtypes.rst:3364 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/stdtypes.rst:3340 +#: ../Doc/library/stdtypes.rst:3364 msgid "" "Bytes (any object that follows the :ref:`buffer protocol ` or " "has :meth:`__bytes__`)." @@ -5051,7 +5060,7 @@ msgstr "" "*Bytes* (tout objet respectant le :ref:`buffer protocol ` ou " "ayant la méthode :meth:`__bytes__`)." -#: ../Doc/library/stdtypes.rst:3344 +#: ../Doc/library/stdtypes.rst:3368 msgid "" "``'s'`` is an alias for ``'b'`` and should only be used for Python2/3 code " "bases." @@ -5059,7 +5068,7 @@ msgstr "" "``'s'`` est un alias de ``'b'`` et ne devrait être utilisé que pour du code " "Python2/3." -#: ../Doc/library/stdtypes.rst:3347 +#: ../Doc/library/stdtypes.rst:3371 msgid "" "Bytes (converts any Python object using ``repr(obj)." "encode('ascii','backslashreplace)``)." @@ -5067,7 +5076,7 @@ msgstr "" "*Bytes* (convertis n'importe quel objet Python en utilisant ``repr(obj)." "encode('ascii', 'backslashreplace)``)." -#: ../Doc/library/stdtypes.rst:3350 +#: ../Doc/library/stdtypes.rst:3374 msgid "" "``'r'`` is an alias for ``'a'`` and should only be used for Python2/3 code " "bases." @@ -5075,47 +5084,47 @@ msgstr "" "``'r'`` est un alias de ``'a'`` et ne devrait être utilise que dans du code " "Python2/3." -#: ../Doc/library/stdtypes.rst:3350 +#: ../Doc/library/stdtypes.rst:3374 msgid "\\(7)" msgstr "\\(7)" -#: ../Doc/library/stdtypes.rst:3385 +#: ../Doc/library/stdtypes.rst:3409 msgid "``b'%s'`` is deprecated, but will not be removed during the 3.x series." msgstr "``b'%s'`` est obsolète, mais ne sera pas retiré des version 3.x." -#: ../Doc/library/stdtypes.rst:3388 +#: ../Doc/library/stdtypes.rst:3412 msgid "``b'%r'`` is deprecated, but will not be removed during the 3.x series." msgstr "``b'%r'`` est obsolète mais ne sera pas retiré dans Python 3.x." -#: ../Doc/library/stdtypes.rst:3400 +#: ../Doc/library/stdtypes.rst:3424 msgid ":pep:`461` - Adding % formatting to bytes and bytearray" -msgstr ":pep:`461` --- Ajout du formatage via % aux *bytes* et *bytesarray*" +msgstr ":pep:`461` -- Ajout du formatage via % aux *bytes* et *bytesarray*" -#: ../Doc/library/stdtypes.rst:3407 +#: ../Doc/library/stdtypes.rst:3431 msgid "Memory Views" msgstr "Vues de mémoires" -#: ../Doc/library/stdtypes.rst:3409 +#: ../Doc/library/stdtypes.rst:3433 msgid "" ":class:`memoryview` objects allow Python code to access the internal data of " "an object that supports the :ref:`buffer protocol ` without " "copying." msgstr "" "Les :class:`memoryview` permettent a du code Python d'accéder sans copie aux " -"données internes d'un objet pendant en charge le :ref:`buffer protocol " +"données internes d'un objet prenant en charge le :ref:`buffer protocol " "`." -#: ../Doc/library/stdtypes.rst:3415 +#: ../Doc/library/stdtypes.rst:3439 msgid "" "Create a :class:`memoryview` that references *obj*. *obj* must support the " "buffer protocol. Built-in objects that support the buffer protocol include :" "class:`bytes` and :class:`bytearray`." msgstr "" "Crée une :class:`memoryview` faisant référence à *obj*. *obj* doit supporter " -"le *buffer protocol*. Les objets natifs pendant en charge le *buffer " +"le *buffer protocol*. Les objets natifs prenant en charge le *buffer " "protocol* sont :class:`bytes` et :class:`bytearray`." -#: ../Doc/library/stdtypes.rst:3419 +#: ../Doc/library/stdtypes.rst:3443 msgid "" "A :class:`memoryview` has the notion of an *element*, which is the atomic " "memory unit handled by the originating object *obj*. For many simple types " @@ -5128,7 +5137,7 @@ msgstr "" "d'autres types tels que :class:`array.array` les éléments peuvent être plus " "grands." -#: ../Doc/library/stdtypes.rst:3425 +#: ../Doc/library/stdtypes.rst:3449 msgid "" "``len(view)`` is equal to the length of :class:`~memoryview.tolist`. If " "``view.ndim = 0``, the length is 1. If ``view.ndim = 1``, the length is " @@ -5144,7 +5153,7 @@ msgstr "" "L'attribut :class:`~memoryview.itemsize` vous donnera la taille en octets " "d'un élément." -#: ../Doc/library/stdtypes.rst:3432 +#: ../Doc/library/stdtypes.rst:3456 msgid "" "A :class:`memoryview` supports slicing and indexing to expose its data. One-" "dimensional slicing will result in a subview::" @@ -5152,7 +5161,7 @@ msgstr "" "Une :class:`memoryview` autorise le découpage et l'indiçage de ses données. " "Découper sur une dimension donnera une sous-vue ::" -#: ../Doc/library/stdtypes.rst:3445 +#: ../Doc/library/stdtypes.rst:3469 msgid "" "If :class:`~memoryview.format` is one of the native format specifiers from " "the :mod:`struct` module, indexing with an integer or a tuple of integers is " @@ -5171,11 +5180,11 @@ msgstr "" "dimensions. Les *memoryviews* à zéro dimension peuvent être indexées avec " "un *tuple* vide." -#: ../Doc/library/stdtypes.rst:3454 +#: ../Doc/library/stdtypes.rst:3478 msgid "Here is an example with a non-byte format::" msgstr "Voici un exemple avec un autre format que *byte* ::" -#: ../Doc/library/stdtypes.rst:3466 +#: ../Doc/library/stdtypes.rst:3490 msgid "" "If the underlying object is writable, the memoryview supports one-" "dimensional slice assignment. Resizing is not allowed::" @@ -5184,7 +5193,7 @@ msgstr "" "autorisera les assignations de tranches à une dimension. Redimensionner " "n'est cependant pas autorisé ::" -#: ../Doc/library/stdtypes.rst:3487 +#: ../Doc/library/stdtypes.rst:3511 msgid "" "One-dimensional memoryviews of hashable (read-only) types with formats 'B', " "'b' or 'c' are also hashable. The hash is defined as ``hash(m) == hash(m." @@ -5194,7 +5203,7 @@ msgstr "" "les formats 'B', 'b', ou 'c' sont aussi hachables. La fonction de hachage " "est définie tel que ``hash(m) == hash(m.tobytes())`` ::" -#: ../Doc/library/stdtypes.rst:3499 +#: ../Doc/library/stdtypes.rst:3523 msgid "" "One-dimensional memoryviews can now be sliced. One-dimensional memoryviews " "with formats 'B', 'b' or 'c' are now hashable." @@ -5203,7 +5212,7 @@ msgstr "" "*memoryviews* à une dimension avec les formats 'B', 'b', ou 'c' sont " "maintenant hachables." -#: ../Doc/library/stdtypes.rst:3503 +#: ../Doc/library/stdtypes.rst:3527 msgid "" "memoryview is now registered automatically with :class:`collections.abc." "Sequence`" @@ -5211,16 +5220,16 @@ msgstr "" "*memoryview* est maintenant enregistrée automatiquement avec :class:" "`collections.abc.Sequence`" -#: ../Doc/library/stdtypes.rst:3507 +#: ../Doc/library/stdtypes.rst:3531 msgid "memoryviews can now be indexed with tuple of integers." msgstr "" -"Les *memoryviews* peut maintenant être indexées par un tuple d'entiers." +"les *memoryviews* peut maintenant être indexées par un n-uplet d'entiers." -#: ../Doc/library/stdtypes.rst:3510 +#: ../Doc/library/stdtypes.rst:3534 msgid ":class:`memoryview` has several methods:" msgstr "La :class:`memoryview` dispose de plusieurs méthodes :" -#: ../Doc/library/stdtypes.rst:3514 +#: ../Doc/library/stdtypes.rst:3538 msgid "" "A memoryview and a :pep:`3118` exporter are equal if their shapes are " "equivalent and if all corresponding values are equal when the operands' " @@ -5231,7 +5240,7 @@ msgstr "" "égales, le format respectifs des opérandes étant interprétés en utilisant la " "syntaxe de :mod:`struct`." -#: ../Doc/library/stdtypes.rst:3518 +#: ../Doc/library/stdtypes.rst:3542 msgid "" "For the subset of :mod:`struct` format strings currently supported by :meth:" "`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == w.tolist()``::" @@ -5239,7 +5248,7 @@ msgstr "" "Pour le sous-ensemble des formats de :mod:`struct` supportés par :meth:" "`tolist`, ``v`` et ``w`` sont égaux si ``v.tolist() ==w.tolist()`` ::" -#: ../Doc/library/stdtypes.rst:3537 +#: ../Doc/library/stdtypes.rst:3561 msgid "" "If either format string is not supported by the :mod:`struct` module, then " "the objects will always compare as unequal (even if the format strings and " @@ -5247,9 +5256,9 @@ msgid "" msgstr "" "Si l'un des format n'est pas supporté par le module de :mod:`struct`, les " "objets seront toujours considérés différents (même si les formats et les " -"valeurs contenues sont identiques) : ::" +"valeurs contenues sont identiques) ::" -#: ../Doc/library/stdtypes.rst:3553 +#: ../Doc/library/stdtypes.rst:3577 msgid "" "Note that, as with floating point numbers, ``v is w`` does *not* imply ``v " "== w`` for memoryview objects." @@ -5257,7 +5266,7 @@ msgstr "" "Notez que pour les *memoryview*, comme pour les nombres à virgule flottante, " "``v is w`` *n'implique pas* ``v == w``." -#: ../Doc/library/stdtypes.rst:3556 +#: ../Doc/library/stdtypes.rst:3580 msgid "" "Previous versions compared the raw memory disregarding the item format and " "the logical array structure." @@ -5265,7 +5274,7 @@ msgstr "" "Les versions précédentes comparaient la mémoire brute sans tenir compte du " "format de l'objet ni de sa structure logique." -#: ../Doc/library/stdtypes.rst:3562 +#: ../Doc/library/stdtypes.rst:3586 msgid "" "Return the data in the buffer as a bytestring. This is equivalent to " "calling the :class:`bytes` constructor on the memoryview. ::" @@ -5273,7 +5282,7 @@ msgstr "" "Renvoie les données du *buffer* sous forme de *bytes*. Cela équivaut à " "appeler le constructeur :class:`bytes` sur le *memoryview*. ::" -#: ../Doc/library/stdtypes.rst:3571 +#: ../Doc/library/stdtypes.rst:3595 msgid "" "For non-contiguous arrays the result is equal to the flattened list " "representation with all elements converted to bytes. :meth:`tobytes` " @@ -5285,7 +5294,7 @@ msgstr "" "`tobytes` supporte toutes les chaînes de format, y compris celles qui ne " "sont pas connues du module :mod:`struct`." -#: ../Doc/library/stdtypes.rst:3578 +#: ../Doc/library/stdtypes.rst:3602 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the buffer. ::" @@ -5293,12 +5302,12 @@ msgstr "" "Renvoie une chaîne contenant deux chiffres hexadécimaux pour chaque octet de " "la mémoire. ::" -#: ../Doc/library/stdtypes.rst:3589 +#: ../Doc/library/stdtypes.rst:3613 msgid "Return the data in the buffer as a list of elements. ::" msgstr "" "Renvoie les données de la mémoire sous la forme d'une liste d'éléments. ::" -#: ../Doc/library/stdtypes.rst:3599 +#: ../Doc/library/stdtypes.rst:3623 msgid "" ":meth:`tolist` now supports all single character native formats in :mod:" "`struct` module syntax as well as multi-dimensional representations." @@ -5306,7 +5315,7 @@ msgstr "" ":meth:`tolist` prend désormais en charge tous les formats d'un caractère du " "module :mod:`struct` ainsi que des représentations multidimensionnelles." -#: ../Doc/library/stdtypes.rst:3606 +#: ../Doc/library/stdtypes.rst:3630 msgid "" "Release the underlying buffer exposed by the memoryview object. Many " "objects take special actions when a view is held on them (for example, a :" @@ -5321,7 +5330,7 @@ msgstr "" "lever ces restrictions (et en libérer les ressources liées) aussi tôt que " "possible." -#: ../Doc/library/stdtypes.rst:3612 +#: ../Doc/library/stdtypes.rst:3636 msgid "" "After this method has been called, any further operation on the view raises " "a :class:`ValueError` (except :meth:`release()` itself which can be called " @@ -5329,17 +5338,17 @@ msgid "" msgstr "" "Après le premier appel de cette méthode, toute nouvelle opération sur la " "*view* lève une :class:`ValueError` (sauf :meth:`release()` elle-même qui " -"peut être appelée plusieurs fois) : ::" +"peut être appelée plusieurs fois) ::" -#: ../Doc/library/stdtypes.rst:3623 +#: ../Doc/library/stdtypes.rst:3647 msgid "" "The context management protocol can be used for a similar effect, using the " "``with`` statement::" msgstr "" "Le protocole de gestion de contexte peut être utilisé pour obtenir un effet " -"similaire, via l'instruction ``with`` : ::" +"similaire, via l'instruction ``with`` ::" -#: ../Doc/library/stdtypes.rst:3639 +#: ../Doc/library/stdtypes.rst:3663 msgid "" "Cast a memoryview to a new format or shape. *shape* defaults to " "``[byte_length//new_itemsize]``, which means that the result view will be " @@ -5353,7 +5362,7 @@ msgstr "" "mais la mémoire elle-même n'est pas copiée. Les changements supportés sont " "une dimension vers C-:term:`contiguous` et *C-contiguous* vers une dimension." -#: ../Doc/library/stdtypes.rst:3645 +#: ../Doc/library/stdtypes.rst:3669 msgid "" "The destination format is restricted to a single element native format in :" "mod:`struct` syntax. One of the formats must be a byte format ('B', 'b' or " @@ -5364,55 +5373,55 @@ msgstr "" "'c'). La longueur du résultat en octets doit être la même que la longueur " "initiale." -#: ../Doc/library/stdtypes.rst:3650 +#: ../Doc/library/stdtypes.rst:3674 msgid "Cast 1D/long to 1D/unsigned bytes::" -msgstr "Transforme *1D/long* en *1D/unsigned bytes* : ::" +msgstr "Transforme *1D/long* en *1D/unsigned bytes* ::" -#: ../Doc/library/stdtypes.rst:3673 +#: ../Doc/library/stdtypes.rst:3697 msgid "Cast 1D/unsigned bytes to 1D/char::" -msgstr "Transforme *1D/unsigned bytes* en *1D/char* : ::" +msgstr "Transforme *1D/unsigned bytes* en *1D/char* ::" -#: ../Doc/library/stdtypes.rst:3686 +#: ../Doc/library/stdtypes.rst:3710 msgid "Cast 1D/bytes to 3D/ints to 1D/signed char::" -msgstr "Transforme *1D/bytes* en *3D/ints* en *1D/signed char* : ::" +msgstr "Transforme *1D/bytes* en *3D/ints* en *1D/signed char* ::" -#: ../Doc/library/stdtypes.rst:3712 +#: ../Doc/library/stdtypes.rst:3736 msgid "Cast 1D/unsigned char to 2D/unsigned long::" -msgstr "Transforme *1D/unsigned char* en *2D/unsigned long* : ::" +msgstr "Transforme *1D/unsigned char* en *2D/unsigned long* ::" -#: ../Doc/library/stdtypes.rst:3726 +#: ../Doc/library/stdtypes.rst:3750 msgid "The source format is no longer restricted when casting to a byte view." msgstr "" "Le format de la source n'est plus restreint lors de la transformation vers " "une vue d'octets." -#: ../Doc/library/stdtypes.rst:3729 +#: ../Doc/library/stdtypes.rst:3753 msgid "There are also several readonly attributes available:" msgstr "Plusieurs attributs en lecture seule sont également disponibles :" -#: ../Doc/library/stdtypes.rst:3733 +#: ../Doc/library/stdtypes.rst:3757 msgid "The underlying object of the memoryview::" -msgstr "L'objet sous-jacent de la *memoryview* : ::" +msgstr "L'objet sous-jacent de la *memoryview* ::" -#: ../Doc/library/stdtypes.rst:3744 +#: ../Doc/library/stdtypes.rst:3768 msgid "" "``nbytes == product(shape) * itemsize == len(m.tobytes())``. This is the " "amount of space in bytes that the array would use in a contiguous " -"representation. It is not necessarily equal to len(m)::" +"representation. It is not necessarily equal to ``len(m)``::" msgstr "" "``nbytes == product(shape) * itemsize == len(m.tobytes())``. Ceci est " "l'espace que la liste utiliserait en octets, dans une représentation " -"contiguë. Ce n'est pas nécessairement égale à ``len(m)`` : ::" +"contiguë. Ce n'est pas nécessairement égale à ``len(m)`` ::" -#: ../Doc/library/stdtypes.rst:3763 +#: ../Doc/library/stdtypes.rst:3787 msgid "Multi-dimensional arrays::" -msgstr "Tableaux multidimensionnels : ::" +msgstr "Tableaux multidimensionnels ::" -#: ../Doc/library/stdtypes.rst:3780 +#: ../Doc/library/stdtypes.rst:3804 msgid "A bool indicating whether the memory is read only." msgstr "Un booléen indiquant si la mémoire est en lecture seule." -#: ../Doc/library/stdtypes.rst:3784 +#: ../Doc/library/stdtypes.rst:3808 msgid "" "A string containing the format (in :mod:`struct` module style) for each " "element in the view. A memoryview can be created from exporters with " @@ -5424,19 +5433,19 @@ msgstr "" "de formats arbitraires, mais certaines méthodes (comme :meth:`tolist`) sont " "limitées aux formats natifs à un seul élément." -#: ../Doc/library/stdtypes.rst:3789 +#: ../Doc/library/stdtypes.rst:3813 msgid "" "format ``'B'`` is now handled according to the struct module syntax. This " "means that ``memoryview(b'abc')[0] == b'abc'[0] == 97``." msgstr "" -"Le format ``'B'`` est maintenant traité selon la syntaxe du module *struct*. " +"le format ``'B'`` est maintenant traité selon la syntaxe du module *struct*. " "Cela signifie que ``memoryview(b'abc')[0] == b'abc'[0] == 97``." -#: ../Doc/library/stdtypes.rst:3795 +#: ../Doc/library/stdtypes.rst:3819 msgid "The size in bytes of each element of the memoryview::" msgstr "La taille en octets de chaque élément d'une *memoryview* ::" -#: ../Doc/library/stdtypes.rst:3808 +#: ../Doc/library/stdtypes.rst:3832 msgid "" "An integer indicating how many dimensions of a multi-dimensional array the " "memory represents." @@ -5444,7 +5453,7 @@ msgstr "" "Un nombre entier indiquant le nombre de dimensions d'un tableau multi-" "dimensionnel représenté par la *memoryview*." -#: ../Doc/library/stdtypes.rst:3813 +#: ../Doc/library/stdtypes.rst:3837 msgid "" "A tuple of integers the length of :attr:`ndim` giving the shape of the " "memory as an N-dimensional array." @@ -5452,11 +5461,11 @@ msgstr "" "Un *tuple* d'entiers de longueur :attr:`ndim` donnant la forme de la " "*memoryview* sous forme d'un tableau à N dimensions." -#: ../Doc/library/stdtypes.rst:3816 ../Doc/library/stdtypes.rst:3824 +#: ../Doc/library/stdtypes.rst:3840 ../Doc/library/stdtypes.rst:3848 msgid "An empty tuple instead of ``None`` when ndim = 0." msgstr "Un *tuple* vide au lieu de ``None`` lorsque *ndim = 0*." -#: ../Doc/library/stdtypes.rst:3821 +#: ../Doc/library/stdtypes.rst:3845 msgid "" "A tuple of integers the length of :attr:`ndim` giving the size in bytes to " "access each element for each dimension of the array." @@ -5464,29 +5473,29 @@ msgstr "" "Un *tuple* d'entiers de longueur :attr:`ndim` donnant la taille en octets " "permettant d'accéder à chaque dimensions du tableau." -#: ../Doc/library/stdtypes.rst:3829 +#: ../Doc/library/stdtypes.rst:3853 msgid "Used internally for PIL-style arrays. The value is informational only." msgstr "" "Détail de l'implémentation des *PIL-style arrays*. La valeur n'est donné " "qu'a titre d'information." -#: ../Doc/library/stdtypes.rst:3833 +#: ../Doc/library/stdtypes.rst:3857 msgid "A bool indicating whether the memory is C-:term:`contiguous`." msgstr "Un booléen indiquant si la mémoire est C-:term:`contiguous`." -#: ../Doc/library/stdtypes.rst:3839 +#: ../Doc/library/stdtypes.rst:3863 msgid "A bool indicating whether the memory is Fortran :term:`contiguous`." msgstr "Un booléen indiquant si la mémoire est Fortran :term:`contiguous`." -#: ../Doc/library/stdtypes.rst:3845 +#: ../Doc/library/stdtypes.rst:3869 msgid "A bool indicating whether the memory is :term:`contiguous`." msgstr "Un booléen indiquant si la mémoire est :term:`contiguous`." -#: ../Doc/library/stdtypes.rst:3853 +#: ../Doc/library/stdtypes.rst:3877 msgid "Set Types --- :class:`set`, :class:`frozenset`" -msgstr "Types d'ensembles --- :class:`set`, :class:`frozenset`" +msgstr "Types d'ensembles — :class:`set`, :class:`frozenset`" -#: ../Doc/library/stdtypes.rst:3857 +#: ../Doc/library/stdtypes.rst:3881 msgid "" "A :dfn:`set` object is an unordered collection of distinct :term:`hashable` " "objects. Common uses include membership testing, removing duplicates from a " @@ -5502,7 +5511,7 @@ msgstr "" "(Pour les autres conteneurs, voir les classes natives :class:`dict`, :class:" "`list`, et :class:`tuple`, ainsi que le module :mod:`collections`.)" -#: ../Doc/library/stdtypes.rst:3864 +#: ../Doc/library/stdtypes.rst:3888 msgid "" "Like other collections, sets support ``x in set``, ``len(set)``, and ``for x " "in set``. Being an unordered collection, sets do not record element " @@ -5510,12 +5519,12 @@ msgid "" "slicing, or other sequence-like behavior." msgstr "" "Comme pour les autres collections, les ensembles supportent ``x in set``, " -"``len(set)``, et ``for x in set``. En temps que collection non-triée, les " +"``len(set)``, et ``for x in set``. En tant que collection non-triée, les " "ensembles n'enregistrent pas la position des éléments ou leur ordre " "d'insertion. En conséquence, les *sets* n'autorisent ni l'indexation, ni le " "découpage, ou tout autre comportement de séquence." -#: ../Doc/library/stdtypes.rst:3869 +#: ../Doc/library/stdtypes.rst:3893 msgid "" "There are currently two built-in set types, :class:`set` and :class:" "`frozenset`. The :class:`set` type is mutable --- the contents can be " @@ -5535,7 +5544,7 @@ msgstr "" "--- son contenu ne peut être modifié après sa création, il peut ainsi être " "utilisé comme clef de dictionnaire ou élément d'un autre *set*." -#: ../Doc/library/stdtypes.rst:3877 +#: ../Doc/library/stdtypes.rst:3901 msgid "" "Non-empty sets (not frozensets) can be created by placing a comma-separated " "list of elements within braces, for example: ``{'jack', 'sjoerd'}``, in " @@ -5545,11 +5554,11 @@ msgstr "" "d'éléments séparés par des virgules et entre accolades, par exemple : " "``{'jack', 'sjoerd'}``, en plus du constructeur de la classe :class:`set`." -#: ../Doc/library/stdtypes.rst:3881 +#: ../Doc/library/stdtypes.rst:3905 msgid "The constructors for both classes work the same:" msgstr "Les constructeurs des deux classes fonctionnent pareil :" -#: ../Doc/library/stdtypes.rst:3886 +#: ../Doc/library/stdtypes.rst:3910 msgid "" "Return a new set or frozenset object whose elements are taken from " "*iterable*. The elements of a set must be :term:`hashable`. To represent " @@ -5562,7 +5571,7 @@ msgstr "" "class:`frozenset`. Si *iterable* n'est pas spécifié, un nouveau *set* vide " "est renvoyé." -#: ../Doc/library/stdtypes.rst:3892 +#: ../Doc/library/stdtypes.rst:3916 msgid "" "Instances of :class:`set` and :class:`frozenset` provide the following " "operations:" @@ -5570,19 +5579,19 @@ msgstr "" "Les instances de :class:`set` et :class:`frozenset` fournissent les " "opérations suivantes :" -#: ../Doc/library/stdtypes.rst:3897 +#: ../Doc/library/stdtypes.rst:3921 msgid "Return the number of elements in set *s* (cardinality of *s*)." msgstr "Donne le nombre d'éléments dans le *set* *s* (cardinalité de *s*)." -#: ../Doc/library/stdtypes.rst:3901 +#: ../Doc/library/stdtypes.rst:3925 msgid "Test *x* for membership in *s*." msgstr "Test d'appartenance de *x* dans *s*." -#: ../Doc/library/stdtypes.rst:3905 +#: ../Doc/library/stdtypes.rst:3929 msgid "Test *x* for non-membership in *s*." msgstr "Test de non-appartenance de *x* dans *s*." -#: ../Doc/library/stdtypes.rst:3909 +#: ../Doc/library/stdtypes.rst:3933 msgid "" "Return ``True`` if the set has no elements in common with *other*. Sets are " "disjoint if and only if their intersection is the empty set." @@ -5591,11 +5600,11 @@ msgstr "" "Les ensembles sont disjoints si et seulement si leurs intersection est un " "ensemble vide." -#: ../Doc/library/stdtypes.rst:3915 +#: ../Doc/library/stdtypes.rst:3939 msgid "Test whether every element in the set is in *other*." msgstr "Teste si tous les éléments du set sont dans *other*." -#: ../Doc/library/stdtypes.rst:3919 +#: ../Doc/library/stdtypes.rst:3943 msgid "" "Test whether the set is a proper subset of *other*, that is, ``set <= other " "and set != other``." @@ -5603,11 +5612,11 @@ msgstr "" "Teste si l'ensemble est un sous-ensemble de *other*, c'est-à-dire, ``set <= " "other and set != other``." -#: ../Doc/library/stdtypes.rst:3925 +#: ../Doc/library/stdtypes.rst:3949 msgid "Test whether every element in *other* is in the set." msgstr "Teste si tous les éléments de *other* sont dans l'ensemble." -#: ../Doc/library/stdtypes.rst:3929 +#: ../Doc/library/stdtypes.rst:3953 msgid "" "Test whether the set is a proper superset of *other*, that is, ``set >= " "other and set != other``." @@ -5615,36 +5624,36 @@ msgstr "" "Teste si l'ensemble est un sur-ensemble de *other*, c'est-à-dire, ``set >= " "other and set != other``." -#: ../Doc/library/stdtypes.rst:3935 +#: ../Doc/library/stdtypes.rst:3959 msgid "Return a new set with elements from the set and all others." msgstr "" "Renvoie un nouvel ensemble dont les éléments viennent de l'ensemble et de " "tous les autres." -#: ../Doc/library/stdtypes.rst:3940 +#: ../Doc/library/stdtypes.rst:3964 msgid "Return a new set with elements common to the set and all others." msgstr "" "Renvoie un nouvel ensemble dont les éléments sont commun à l'ensemble et à " "tous les autres." -#: ../Doc/library/stdtypes.rst:3945 +#: ../Doc/library/stdtypes.rst:3969 msgid "Return a new set with elements in the set that are not in the others." msgstr "" "Renvoie un nouvel ensemble dont les éléments sont dans l'ensemble mais ne " "sont dans aucun des autres." -#: ../Doc/library/stdtypes.rst:3950 +#: ../Doc/library/stdtypes.rst:3974 msgid "" "Return a new set with elements in either the set or *other* but not both." msgstr "" "Renvoie un nouvel ensemble dont les éléments sont soit dans l'ensemble, soit " "dans les autres, mais pas dans les deux." -#: ../Doc/library/stdtypes.rst:3954 -msgid "Return a new set with a shallow copy of *s*." -msgstr "Renvoie un nouvel ensemble, copie de surface de *s*." +#: ../Doc/library/stdtypes.rst:3978 +msgid "Return a shallow copy of the set." +msgstr "Renvoie une copie de surface du dictionnaire." -#: ../Doc/library/stdtypes.rst:3957 +#: ../Doc/library/stdtypes.rst:3981 msgid "" "Note, the non-operator versions of :meth:`union`, :meth:`intersection`, :" "meth:`difference`, and :meth:`symmetric_difference`, :meth:`issubset`, and :" @@ -5655,13 +5664,13 @@ msgid "" msgstr "" "Remarque : Les méthodes :meth:`union`, :meth:`intersection`, :meth:" "`difference`, et :meth:`symmetric_difference`, :meth:`issubset`, et :meth:" -"`issuperset`acceptent n'importe quel itérable comme argument, contrairement " +"`issuperset` acceptent n'importe quel itérable comme argument, contrairement " "aux opérateurs équivalents qui n'acceptent que des *sets*. Il est donc " "préférable d'éviter les constructions comme ``set('abc') & 'cbs'``, sources " "typiques d'erreurs, en faveur d'une construction plus lisible : ``set('abc')." "intersection('cbs')``." -#: ../Doc/library/stdtypes.rst:3964 +#: ../Doc/library/stdtypes.rst:3988 msgid "" "Both :class:`set` and :class:`frozenset` support set to set comparisons. Two " "sets are equal if and only if every element of each set is contained in the " @@ -5679,7 +5688,7 @@ msgstr "" "autre ensemble si et seulement si le premier est un sur-ensemble du second " "(est un sur-ensemble mais n'est pas égal)." -#: ../Doc/library/stdtypes.rst:3971 +#: ../Doc/library/stdtypes.rst:3995 msgid "" "Instances of :class:`set` are compared to instances of :class:`frozenset` " "based on their members. For example, ``set('abc') == frozenset('abc')`` " @@ -5690,7 +5699,7 @@ msgstr "" "frozenset('abc')`` envoie ``True``, ainsi que ``set('abc') in " "set([frozenset('abc')])``." -#: ../Doc/library/stdtypes.rst:3975 +#: ../Doc/library/stdtypes.rst:3999 msgid "" "The subset and equality comparisons do not generalize to a total ordering " "function. For example, any two nonempty disjoint sets are not equal and are " @@ -5702,7 +5711,7 @@ msgstr "" "vides ne sont ni égaux et ni des sous-ensembles l'un de l'autre, donc toutes " "ces comparaisons donnent ``False`` : ``ab``." -#: ../Doc/library/stdtypes.rst:3980 +#: ../Doc/library/stdtypes.rst:4004 msgid "" "Since sets only define partial ordering (subset relationships), the output " "of the :meth:`list.sort` method is undefined for lists of sets." @@ -5711,13 +5720,13 @@ msgstr "" "de sous-ensembles), la sortie de la méthode :meth:`list.sort` n'est pas " "définie pour des listes d'ensembles." -#: ../Doc/library/stdtypes.rst:3983 +#: ../Doc/library/stdtypes.rst:4007 msgid "Set elements, like dictionary keys, must be :term:`hashable`." msgstr "" "Les éléments des *sets*, comme les clefs de dictionnaires, doivent être :" "term:`hashable`." -#: ../Doc/library/stdtypes.rst:3985 +#: ../Doc/library/stdtypes.rst:4009 msgid "" "Binary operations that mix :class:`set` instances with :class:`frozenset` " "return the type of the first operand. For example: ``frozenset('ab') | " @@ -5727,7 +5736,7 @@ msgstr "" "`frozenset` renvoient le type de la première opérande. Par exemple : " "``frozenset('ab') | set('bc')`` renvoie une instance de :class:`frozenset`." -#: ../Doc/library/stdtypes.rst:3989 +#: ../Doc/library/stdtypes.rst:4013 msgid "" "The following table lists operations available for :class:`set` that do not " "apply to immutable instances of :class:`frozenset`:" @@ -5735,32 +5744,32 @@ msgstr "" "La table suivante liste les opérations disponibles pour les :class:`set` " "mais qui ne s'appliquent pas aux instances de :class:`frozenset` :" -#: ../Doc/library/stdtypes.rst:3995 +#: ../Doc/library/stdtypes.rst:4019 msgid "Update the set, adding elements from all others." msgstr "Met à jour l'ensemble, ajoutant les éléments de tous les autres." -#: ../Doc/library/stdtypes.rst:4000 +#: ../Doc/library/stdtypes.rst:4024 msgid "Update the set, keeping only elements found in it and all others." msgstr "" "Met à jour l'ensemble, ne gardant que les éléments trouvés dans tous les " "autres." -#: ../Doc/library/stdtypes.rst:4005 +#: ../Doc/library/stdtypes.rst:4029 msgid "Update the set, removing elements found in others." msgstr "Met à jour l'ensemble, retirant les éléments trouvés dans les autres." -#: ../Doc/library/stdtypes.rst:4010 +#: ../Doc/library/stdtypes.rst:4034 msgid "" "Update the set, keeping only elements found in either set, but not in both." msgstr "" "Met à jour le set, ne gardant que les éléments trouvés dans un des ensembles " "mais pas dans les deux." -#: ../Doc/library/stdtypes.rst:4014 +#: ../Doc/library/stdtypes.rst:4038 msgid "Add element *elem* to the set." msgstr "Ajoute l'élément *elem* au set." -#: ../Doc/library/stdtypes.rst:4018 +#: ../Doc/library/stdtypes.rst:4042 msgid "" "Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is not " "contained in the set." @@ -5768,11 +5777,11 @@ msgstr "" "Retire l'élément *elem* de l'ensemble. Lève une exception :exc:`KeyError` si " "*elem* n'est pas dans l'ensemble." -#: ../Doc/library/stdtypes.rst:4023 +#: ../Doc/library/stdtypes.rst:4047 msgid "Remove element *elem* from the set if it is present." msgstr "Retire l'élément *elem* de l'ensemble s'il y est." -#: ../Doc/library/stdtypes.rst:4027 +#: ../Doc/library/stdtypes.rst:4051 msgid "" "Remove and return an arbitrary element from the set. Raises :exc:`KeyError` " "if the set is empty." @@ -5780,11 +5789,11 @@ msgstr "" "Retire et renvoie un élément arbitraire de l'ensemble. Lève une exception :" "exc:`KeyError` si l'ensemble est vide." -#: ../Doc/library/stdtypes.rst:4032 +#: ../Doc/library/stdtypes.rst:4056 msgid "Remove all elements from the set." msgstr "Supprime tous les éléments du *set*." -#: ../Doc/library/stdtypes.rst:4035 +#: ../Doc/library/stdtypes.rst:4059 msgid "" "Note, the non-operator versions of the :meth:`update`, :meth:" "`intersection_update`, :meth:`difference_update`, and :meth:" @@ -5796,7 +5805,7 @@ msgstr "" "`symmetric_difference_update` acceptent n'importe quel itérable comme " "argument." -#: ../Doc/library/stdtypes.rst:4040 +#: ../Doc/library/stdtypes.rst:4064 msgid "" "Note, the *elem* argument to the :meth:`__contains__`, :meth:`remove`, and :" "meth:`discard` methods may be a set. To support searching for an equivalent " @@ -5807,11 +5816,11 @@ msgstr "" "recherche d'un *frozenset* équivalent, un *frozenset* temporaire est crée " "depuis *elem*." -#: ../Doc/library/stdtypes.rst:4048 +#: ../Doc/library/stdtypes.rst:4072 msgid "Mapping Types --- :class:`dict`" -msgstr "Les types de correspondances --- :class:`dict`" +msgstr "Les types de correspondances — :class:`dict`" -#: ../Doc/library/stdtypes.rst:4058 +#: ../Doc/library/stdtypes.rst:4082 msgid "" "A :term:`mapping` object maps :term:`hashable` values to arbitrary objects. " "Mappings are mutable objects. There is currently only one standard mapping " @@ -5825,7 +5834,7 @@ msgstr "" "(Pour les autres conteneurs, voir les types natifs :class:`list`, :class:" "`set`, et :class:`tuple`, ainsi que le module :mod:`collections`.)" -#: ../Doc/library/stdtypes.rst:4064 +#: ../Doc/library/stdtypes.rst:4088 msgid "" "A dictionary's keys are *almost* arbitrary values. Values that are not :" "term:`hashable`, that is, values containing lists, dictionaries or other " @@ -5848,7 +5857,7 @@ msgstr "" "d'approximations, il est généralement imprudent de les utiliser comme clefs " "de dictionnaires.)" -#: ../Doc/library/stdtypes.rst:4073 +#: ../Doc/library/stdtypes.rst:4097 msgid "" "Dictionaries can be created by placing a comma-separated list of ``key: " "value`` pairs within braces, for example: ``{'jack': 4098, 'sjoerd': 4127}`` " @@ -5859,7 +5868,7 @@ msgstr "" "``{'jack': 4098, 'sjoerd': 4127}`` ou ``{4098: 'jack', 4127: 'sjoerd'}``, ou " "en utilisant le constructeur de :class:`dict`." -#: ../Doc/library/stdtypes.rst:4081 +#: ../Doc/library/stdtypes.rst:4105 msgid "" "Return a new dictionary initialized from an optional positional argument and " "a possibly empty set of keyword arguments." @@ -5867,7 +5876,7 @@ msgstr "" "Renvoie un nouveau dictionnaire initialisé depuis un argument positionnel " "optionnel, et un ensemble (vide ou non) d'arguments par mot clef." -#: ../Doc/library/stdtypes.rst:4084 +#: ../Doc/library/stdtypes.rst:4108 msgid "" "If no positional argument is given, an empty dictionary is created. If a " "positional argument is given and it is a mapping object, a dictionary is " @@ -5889,26 +5898,26 @@ msgstr "" "pour cette clef devient la valeur correspondante à cette clef dans le " "nouveau dictionnaire." -#: ../Doc/library/stdtypes.rst:4094 +#: ../Doc/library/stdtypes.rst:4118 msgid "" "If keyword arguments are given, the keyword arguments and their values are " "added to the dictionary created from the positional argument. If a key " "being added is already present, the value from the keyword argument replaces " "the value from the positional argument." msgstr "" -"Si des arguments nommés sont donnés, ils sont ajoutés au dictionnaire crée " +"Si des arguments nommés sont donnés, ils sont ajoutés au dictionnaire créé " "depuis l'argument positionnel. Si une clef est déjà présente, la valeur de " "l'argument nommé remplace la valeur reçue par l'argument positionnel." -#: ../Doc/library/stdtypes.rst:4099 +#: ../Doc/library/stdtypes.rst:4123 msgid "" "To illustrate, the following examples all return a dictionary equal to " "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" msgstr "" "Typiquement, les exemples suivants renvoient tous un dictionnaire valant " -"``{\"one\": 1, \"two\": 2, \"three\": 3}`` : ::" +"``{\"one\": 1, \"two\": 2, \"three\": 3}`` ::" -#: ../Doc/library/stdtypes.rst:4110 +#: ../Doc/library/stdtypes.rst:4134 msgid "" "Providing keyword arguments as in the first example only works for keys that " "are valid Python identifiers. Otherwise, any valid keys can be used." @@ -5917,7 +5926,7 @@ msgstr "" "pour des clefs qui sont des identifiants valide en Python. Dans les autres " "cas, toutes les clefs valides sont utilisables." -#: ../Doc/library/stdtypes.rst:4114 +#: ../Doc/library/stdtypes.rst:4138 msgid "" "These are the operations that dictionaries support (and therefore, custom " "mapping types should support too):" @@ -5925,11 +5934,11 @@ msgstr "" "Voici les opérations gérées par les dictionnaires, (par conséquent, d'autres " "types de *mapping* peuvent les gérer aussi) :" -#: ../Doc/library/stdtypes.rst:4119 +#: ../Doc/library/stdtypes.rst:4143 msgid "Return the number of items in the dictionary *d*." msgstr "Renvoie le nombre d'éléments dans le dictionnaire *d*." -#: ../Doc/library/stdtypes.rst:4123 +#: ../Doc/library/stdtypes.rst:4147 msgid "" "Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is " "not in the map." @@ -5937,7 +5946,7 @@ msgstr "" "Donne l'élément de *d* dont la clef est *key*. Lève une exception :exc:" "`KeyError` si *key* n'est pas dans le dictionnaire." -#: ../Doc/library/stdtypes.rst:4128 +#: ../Doc/library/stdtypes.rst:4152 msgid "" "If a subclass of dict defines a method :meth:`__missing__` and *key* is not " "present, the ``d[key]`` operation calls that method with the key *key* as " @@ -5956,7 +5965,7 @@ msgstr "" "meth:`__missing__` doit être une méthode; ça ne peut être une variable " "d'instance ::" -#: ../Doc/library/stdtypes.rst:4146 +#: ../Doc/library/stdtypes.rst:4170 msgid "" "The example above shows part of the implementation of :class:`collections." "Counter`. A different ``__missing__`` method is used by :class:`collections." @@ -5966,11 +5975,11 @@ msgstr "" "`collections.Counter`. :class:`collections.defaultdict` implémente aussi " "``__missing__``." -#: ../Doc/library/stdtypes.rst:4152 +#: ../Doc/library/stdtypes.rst:4176 msgid "Set ``d[key]`` to *value*." msgstr "Assigne ``d[key]`` à *value*." -#: ../Doc/library/stdtypes.rst:4156 +#: ../Doc/library/stdtypes.rst:4180 msgid "" "Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the " "map." @@ -5978,15 +5987,15 @@ msgstr "" "Supprime ``d[key]`` de *d*. Lève une exception :exc:`KeyError` si *key* " "n'est pas dans le dictionnaire." -#: ../Doc/library/stdtypes.rst:4161 +#: ../Doc/library/stdtypes.rst:4185 msgid "Return ``True`` if *d* has a key *key*, else ``False``." msgstr "Renvoie ``True`` si *d* a la clef *key*, sinon ``False``." -#: ../Doc/library/stdtypes.rst:4165 +#: ../Doc/library/stdtypes.rst:4189 msgid "Equivalent to ``not key in d``." msgstr "Équivalent à ``not key in d``." -#: ../Doc/library/stdtypes.rst:4169 +#: ../Doc/library/stdtypes.rst:4193 msgid "" "Return an iterator over the keys of the dictionary. This is a shortcut for " "``iter(d.keys())``." @@ -5994,21 +6003,22 @@ msgstr "" "Renvoie un itérateur sur les clefs du dictionnaire. C'est un raccourci pour " "``iter(d.keys())``." -#: ../Doc/library/stdtypes.rst:4174 +#: ../Doc/library/stdtypes.rst:4198 msgid "Remove all items from the dictionary." msgstr "Supprime tous les éléments du dictionnaire." -#: ../Doc/library/stdtypes.rst:4178 +#: ../Doc/library/stdtypes.rst:4202 msgid "Return a shallow copy of the dictionary." msgstr "Renvoie une copie de surface du dictionnaire." -#: ../Doc/library/stdtypes.rst:4182 -msgid "Create a new dictionary with keys from *seq* and values set to *value*." +#: ../Doc/library/stdtypes.rst:4206 +msgid "" +"Create a new dictionary with keys from *iterable* and values set to *value*." msgstr "" -"Crée un nouveau dictionnaire avec les clefs de *seq* et les valeurs à " +"Crée un nouveau dictionnaire avec les clefs de *iterable* et les valeurs à " "*value*." -#: ../Doc/library/stdtypes.rst:4184 +#: ../Doc/library/stdtypes.rst:4208 msgid "" ":meth:`fromkeys` is a class method that returns a new dictionary. *value* " "defaults to ``None``." @@ -6016,7 +6026,7 @@ msgstr "" ":meth:`fromkeys` est une *class method* qui renvoie un nouveau dictionnaire. " "*value* vaut ``None`` par défaut." -#: ../Doc/library/stdtypes.rst:4189 +#: ../Doc/library/stdtypes.rst:4213 msgid "" "Return the value for *key* if *key* is in the dictionary, else *default*. If " "*default* is not given, it defaults to ``None``, so that this method never " @@ -6026,7 +6036,7 @@ msgstr "" "*default*. Si *default* n'est pas donné, il vaut ``None`` par défaut, de " "manière à ce que cette méthode ne lève jamais :exc:`KeyError`." -#: ../Doc/library/stdtypes.rst:4195 +#: ../Doc/library/stdtypes.rst:4219 msgid "" "Return a new view of the dictionary's items (``(key, value)`` pairs). See " "the :ref:`documentation of view objects `." @@ -6034,7 +6044,7 @@ msgstr "" "Renvoie une nouvelle vue des éléments du dictionnaire (paires de ``(key, " "value)``). Voir la :ref:`documentation des vues `." -#: ../Doc/library/stdtypes.rst:4200 +#: ../Doc/library/stdtypes.rst:4224 msgid "" "Return a new view of the dictionary's keys. See the :ref:`documentation of " "view objects `." @@ -6042,7 +6052,7 @@ msgstr "" "Renvoie une nouvelle vue des clefs du dictionnaire. Voir la :ref:" "`documentation des vues `." -#: ../Doc/library/stdtypes.rst:4205 +#: ../Doc/library/stdtypes.rst:4229 msgid "" "If *key* is in the dictionary, remove it and return its value, else return " "*default*. If *default* is not given and *key* is not in the dictionary, a :" @@ -6052,7 +6062,7 @@ msgstr "" "renvoyée, sinon renvoie *default*. Si *default* n'est pas donné et que " "*key* n'est pas dans le dictionnaire, une :exc:`KeyError` est levée." -#: ../Doc/library/stdtypes.rst:4211 +#: ../Doc/library/stdtypes.rst:4235 msgid "" "Remove and return a ``(key, value)`` pair from the dictionary. Pairs are " "returned in :abbr:`LIFO (last-in, first-out)` order." @@ -6060,7 +6070,7 @@ msgstr "" "Supprime et renvoie une paire ``(key, value)`` du dictionnaire. Les paires " "sont renvoyées dans un ordre :abbr:`LIFO (dernière entrée, prenière sortie)`." -#: ../Doc/library/stdtypes.rst:4214 +#: ../Doc/library/stdtypes.rst:4238 msgid "" ":meth:`popitem` is useful to destructively iterate over a dictionary, as " "often used in set algorithms. If the dictionary is empty, calling :meth:" @@ -6070,13 +6080,16 @@ msgstr "" "destructive, comme souvent dans les algorithmes sur les ensembles. Si le " "dictionnaire est vide, appeler :meth:`popitem` lève une :exc:`KeyError`." -#: ../Doc/library/stdtypes.rst:4218 +#: ../Doc/library/stdtypes.rst:4242 msgid "" "LIFO order is now guaranteed. In prior versions, :meth:`popitem` would " "return an arbitrary key/value pair." msgstr "" +"L'ordre \"dernier entré, premier sorti\" (LIFO) est désormais assuré. Dans " +"les versions précédentes, :meth:`popitem` renvoyait une paire clé/valeur " +"arbitraire." -#: ../Doc/library/stdtypes.rst:4224 +#: ../Doc/library/stdtypes.rst:4248 msgid "" "If *key* is in the dictionary, return its value. If not, insert *key* with " "a value of *default* and return *default*. *default* defaults to ``None``." @@ -6085,7 +6098,7 @@ msgstr "" "*key* avec comme valeur *default* et renvoie *default*. *default* vaut " "``None`` par défaut." -#: ../Doc/library/stdtypes.rst:4230 +#: ../Doc/library/stdtypes.rst:4254 msgid "" "Update the dictionary with the key/value pairs from *other*, overwriting " "existing keys. Return ``None``." @@ -6093,7 +6106,7 @@ msgstr "" "Met à jour le dictionnaire avec les paires de clef/valeur d'*other*, " "écrasant les clefs existantes. Renvoie ``None``." -#: ../Doc/library/stdtypes.rst:4233 +#: ../Doc/library/stdtypes.rst:4257 msgid "" ":meth:`update` accepts either another dictionary object or an iterable of " "key/value pairs (as tuples or other iterables of length two). If keyword " @@ -6105,7 +6118,7 @@ msgstr "" "Si des paramètres par mot-clef sont donnés, le dictionnaire et ensuite mis à " "jour avec ces pairs de clef/valeurs : ``d.update(red=1, blue=2)``." -#: ../Doc/library/stdtypes.rst:4240 +#: ../Doc/library/stdtypes.rst:4264 msgid "" "Return a new view of the dictionary's values. See the :ref:`documentation " "of view objects `." @@ -6113,7 +6126,7 @@ msgstr "" "Renvoie une nouvelle vue des valeurs du dictionnaire. Voir la :ref:" "`documentation des vues `." -#: ../Doc/library/stdtypes.rst:4243 +#: ../Doc/library/stdtypes.rst:4267 msgid "" "Dictionaries compare equal if and only if they have the same ``(key, " "value)`` pairs. Order comparisons ('<', '<=', '>=', '>') raise :exc:" @@ -6123,7 +6136,7 @@ msgstr "" "clef-valeur. Les comparaisons d'ordre (``<``, ``<=``, ``>=``, ``>``) lèvent " "une :exc:`TypeError`." -#: ../Doc/library/stdtypes.rst:4247 +#: ../Doc/library/stdtypes.rst:4271 msgid "" "Dictionaries preserve insertion order. Note that updating a key does not " "affect the order. Keys added after deletion are inserted at the end. ::" @@ -6132,16 +6145,16 @@ msgstr "" "clé n'affecte pas l'ordre. Les clés ajoutées après un effacement sont " "insérées à la fin. ::" -#: ../Doc/library/stdtypes.rst:4265 +#: ../Doc/library/stdtypes.rst:4289 msgid "" -"Dictionary order is guaranteed to be insertion order. This behavior was " +"Dictionary order is guaranteed to be insertion order. This behavior was an " "implementation detail of CPython from 3.6." msgstr "" "L'ordre d'un dictionnaire est toujours l'ordre des insertions. Ce " "comportement était un détail d'implémentation de CPython depuis la version " "3.6." -#: ../Doc/library/stdtypes.rst:4270 +#: ../Doc/library/stdtypes.rst:4294 msgid "" ":class:`types.MappingProxyType` can be used to create a read-only view of a :" "class:`dict`." @@ -6149,11 +6162,11 @@ msgstr "" ":class:`types.MappingProxyType` peut être utilisé pour créer une vue en " "lecture seule d'un :class:`dict`." -#: ../Doc/library/stdtypes.rst:4277 +#: ../Doc/library/stdtypes.rst:4301 msgid "Dictionary view objects" msgstr "Les vues de dictionnaires" -#: ../Doc/library/stdtypes.rst:4279 +#: ../Doc/library/stdtypes.rst:4303 msgid "" "The objects returned by :meth:`dict.keys`, :meth:`dict.values` and :meth:" "`dict.items` are *view objects*. They provide a dynamic view on the " @@ -6165,7 +6178,7 @@ msgstr "" "éléments du dictionnaire, ce qui signifie que si le dictionnaire change, la " "vue reflète ces changements." -#: ../Doc/library/stdtypes.rst:4284 +#: ../Doc/library/stdtypes.rst:4308 msgid "" "Dictionary views can be iterated over to yield their respective data, and " "support membership tests:" @@ -6173,11 +6186,11 @@ msgstr "" "Les vues de dictionnaires peuvent être itérées et ainsi renvoyer les données " "du dictionnaire, elle gèrent aussi les tests de présence :" -#: ../Doc/library/stdtypes.rst:4289 +#: ../Doc/library/stdtypes.rst:4313 msgid "Return the number of entries in the dictionary." msgstr "Renvoie le nombre d'entrées du dictionnaire." -#: ../Doc/library/stdtypes.rst:4293 +#: ../Doc/library/stdtypes.rst:4317 msgid "" "Return an iterator over the keys, values or items (represented as tuples of " "``(key, value)``) in the dictionary." @@ -6185,7 +6198,7 @@ msgstr "" "Renvoie un itérateur sur les clefs, les valeurs, ou les éléments " "(représentés par des *tuples* de ``(key, value)`` du dictionnaire." -#: ../Doc/library/stdtypes.rst:4296 +#: ../Doc/library/stdtypes.rst:4320 msgid "" "Keys and values are iterated over in insertion order. This allows the " "creation of ``(value, key)`` pairs using :func:`zip`: ``pairs = zip(d." @@ -6197,7 +6210,7 @@ msgstr "" "``pairs = zip(d.values(), d.keys())``. Un autre moyen de construire la même " "liste est ``pairs = [(v, k) for (k, v) in d.items()]``." -#: ../Doc/library/stdtypes.rst:4301 +#: ../Doc/library/stdtypes.rst:4325 msgid "" "Iterating views while adding or deleting entries in the dictionary may raise " "a :exc:`RuntimeError` or fail to iterate over all entries." @@ -6206,11 +6219,11 @@ msgstr "" "dictionnaire peut lever une :exc:`RuntimeError` ou ne pas fournir toutes les " "entrées." -#: ../Doc/library/stdtypes.rst:4304 +#: ../Doc/library/stdtypes.rst:4328 msgid "Dictionary order is guaranteed to be insertion order." msgstr "L'ordre d'un dictionnaire est toujours l'ordre des insertions." -#: ../Doc/library/stdtypes.rst:4309 +#: ../Doc/library/stdtypes.rst:4333 msgid "" "Return ``True`` if *x* is in the underlying dictionary's keys, values or " "items (in the latter case, *x* should be a ``(key, value)`` tuple)." @@ -6219,7 +6232,7 @@ msgstr "" "dictionnaire sous-jacent (dans le dernier cas, *x* doit être un *tuple* " "``(key, value)``)." -#: ../Doc/library/stdtypes.rst:4313 +#: ../Doc/library/stdtypes.rst:4337 msgid "" "Keys views are set-like since their entries are unique and hashable. If all " "values are hashable, so that ``(key, value)`` pairs are unique and hashable, " @@ -6238,15 +6251,15 @@ msgstr "" "abstraite :class:`collections.abc.Set` sont disponibles (comme ``==``, " "``<``, ou ``^``)." -#: ../Doc/library/stdtypes.rst:4320 +#: ../Doc/library/stdtypes.rst:4344 msgid "An example of dictionary view usage::" -msgstr "Exemple d'utilisation de vue de dictionnaire : ::" +msgstr "Exemple d'utilisation de vue de dictionnaire ::" -#: ../Doc/library/stdtypes.rst:4355 +#: ../Doc/library/stdtypes.rst:4379 msgid "Context Manager Types" msgstr "Le type gestionnaire de contexte" -#: ../Doc/library/stdtypes.rst:4362 +#: ../Doc/library/stdtypes.rst:4386 msgid "" "Python's :keyword:`with` statement supports the concept of a runtime context " "defined by a context manager. This is implemented using a pair of methods " @@ -6254,50 +6267,50 @@ msgid "" "before the statement body is executed and exited when the statement ends:" msgstr "" "L'instruction :keyword:`with` permet l'existence de contextes définis à " -"l'exécution par des gestionnaires de contextes. C'est implémenté via une " +"l'exécution par des gestionnaires de contextes. C'est implémenté via une " "paire de méthodes permettant de définir un contexte, à l'exécution, qui est " "entré avant l'exécution du corps de l'instruction, et qui est quitté lorsque " "l'instruction se termine :" -#: ../Doc/library/stdtypes.rst:4370 +#: ../Doc/library/stdtypes.rst:4394 msgid "" "Enter the runtime context and return either this object or another object " "related to the runtime context. The value returned by this method is bound " -"to the identifier in the :keyword:`as` clause of :keyword:`with` statements " +"to the identifier in the :keyword:`!as` clause of :keyword:`with` statements " "using this context manager." msgstr "" "Entre dans le contexte à l'exécution, soit se renvoyant lui-même, soit en " -"renvoyant un autre objet en lien avec ce contexte. La valeur renvoyée par " -"cette méthode est liée à l'identifiant donné au :keyword:`as` de " +"renvoyant un autre objet en lien avec ce contexte. La valeur renvoyée par " +"cette méthode est liée à l'identifiant donné au :keyword:`!as` de " "l'instruction :keyword:`with` utilisant ce gestionnaire de contexte." -#: ../Doc/library/stdtypes.rst:4375 +#: ../Doc/library/stdtypes.rst:4399 msgid "" "An example of a context manager that returns itself is a :term:`file " "object`. File objects return themselves from __enter__() to allow :func:" "`open` to be used as the context expression in a :keyword:`with` statement." msgstr "" "Un exemple de gestionnaire de contexte se renvoyant lui-même est :term:`file " -"object`. Les *file objects* se renvoient eux-même depuis __enter__() et " +"object`. Les *file objects* se renvoient eux-même depuis ``__enter__()`` et " "autorisent :func:`open` à être utilisé comme contexte à une instruction :" "keyword:`with`." -#: ../Doc/library/stdtypes.rst:4379 +#: ../Doc/library/stdtypes.rst:4403 msgid "" "An example of a context manager that returns a related object is the one " "returned by :func:`decimal.localcontext`. These managers set the active " "decimal context to a copy of the original decimal context and then return " "the copy. This allows changes to be made to the current decimal context in " "the body of the :keyword:`with` statement without affecting code outside " -"the :keyword:`with` statement." +"the :keyword:`!with` statement." msgstr "" "Un exemple de gestionnaire de contexte renvoyant un objet connexe est celui " "renvoyé par :func:`decimal.localcontext`. Ces gestionnaires remplacent le " "contexte décimal courant par une copie de l'original, copie qui est " "renvoyée. Ça permet de changer le contexte courant dans le corps du :keyword:" -"`with` sans affecter le code en dehors de l'instruction :keyword:`with`." +"`with` sans affecter le code en dehors de l'instruction :keyword:`!with`." -#: ../Doc/library/stdtypes.rst:4389 +#: ../Doc/library/stdtypes.rst:4413 msgid "" "Exit the runtime context and return a Boolean flag indicating if any " "exception that occurred should be suppressed. If an exception occurred while " @@ -6311,23 +6324,24 @@ msgstr "" "l'exception, sa valeur, et la trace de la pile (*traceback*). Sinon les " "trois arguments valent ``None``." -#: ../Doc/library/stdtypes.rst:4394 +#: ../Doc/library/stdtypes.rst:4418 msgid "" "Returning a true value from this method will cause the :keyword:`with` " "statement to suppress the exception and continue execution with the " -"statement immediately following the :keyword:`with` statement. Otherwise the " -"exception continues propagating after this method has finished executing. " -"Exceptions that occur during execution of this method will replace any " -"exception that occurred in the body of the :keyword:`with` statement." +"statement immediately following the :keyword:`!with` statement. Otherwise " +"the exception continues propagating after this method has finished " +"executing. Exceptions that occur during execution of this method will " +"replace any exception that occurred in the body of the :keyword:`!with` " +"statement." msgstr "" "L'instruction :keyword:`with` inhibera l'exception si cette méthode renvoie " "une valeur vraie, l'exécution continuera ainsi à l'instruction suivant " -"immédiatement l'instruction :keyword:`with`. Sinon, l'exception continuera " +"immédiatement l'instruction :keyword:`!with`. Sinon, l'exception continuera " "de se propager après la fin de cette méthode. Les exceptions se produisant " "pendant l'exécution de cette méthode remplaceront toute exception qui s'est " -"produite dans le corps du :keyword:`with`." +"produite dans le corps du :keyword:`!with`." -#: ../Doc/library/stdtypes.rst:4401 +#: ../Doc/library/stdtypes.rst:4425 msgid "" "The exception passed in should never be reraised explicitly - instead, this " "method should return a false value to indicate that the method completed " @@ -6341,7 +6355,7 @@ msgstr "" "Ceci permet au code de gestion du contexte de comprendre si une méthode :" "meth:`__exit__` a échoué." -#: ../Doc/library/stdtypes.rst:4407 +#: ../Doc/library/stdtypes.rst:4431 msgid "" "Python defines several context managers to support easy thread " "synchronisation, prompt closure of files or other objects, and simpler " @@ -6356,7 +6370,7 @@ msgstr "" "protocole de gestion du contexte. Voir les exemples dans la documentation du " "module :mod:`contextlib`." -#: ../Doc/library/stdtypes.rst:4413 +#: ../Doc/library/stdtypes.rst:4437 msgid "" "Python's :term:`generator`\\s and the :class:`contextlib.contextmanager` " "decorator provide a convenient way to implement these protocols. If a " @@ -6372,7 +6386,7 @@ msgstr "" "`__enter__` et :meth:`__exit__`, plutôt que l'itérateur produit par un " "générateur non décoré." -#: ../Doc/library/stdtypes.rst:4420 +#: ../Doc/library/stdtypes.rst:4444 msgid "" "Note that there is no specific slot for any of these methods in the type " "structure for Python objects in the Python/C API. Extension types wanting to " @@ -6387,11 +6401,11 @@ msgstr "" "d'exécution, les le coût d'un accès au dictionnaire d'une classe unique est " "négligeable." -#: ../Doc/library/stdtypes.rst:4430 +#: ../Doc/library/stdtypes.rst:4454 msgid "Other Built-in Types" msgstr "Autres types natifs" -#: ../Doc/library/stdtypes.rst:4432 +#: ../Doc/library/stdtypes.rst:4456 msgid "" "The interpreter supports several other kinds of objects. Most of these " "support only one or two operations." @@ -6399,11 +6413,11 @@ msgstr "" "L'interpréteur gère aussi d'autres types d'objets, la plupart ne supportant " "cependant qu'une ou deux opérations." -#: ../Doc/library/stdtypes.rst:4439 +#: ../Doc/library/stdtypes.rst:4463 msgid "Modules" msgstr "Modules" -#: ../Doc/library/stdtypes.rst:4441 +#: ../Doc/library/stdtypes.rst:4465 msgid "" "The only special operation on a module is attribute access: ``m.name``, " "where *m* is a module and *name* accesses a name defined in *m*'s symbol " @@ -6421,7 +6435,7 @@ msgstr "" "objet module nommé *foo* existe, il nécessite cependant une *définition* " "(externe) d'un module nommé *foo* quelque part.)" -#: ../Doc/library/stdtypes.rst:4448 +#: ../Doc/library/stdtypes.rst:4472 msgid "" "A special attribute of every module is :attr:`~object.__dict__`. This is the " "dictionary containing the module's symbol table. Modifying this dictionary " @@ -6439,7 +6453,7 @@ msgstr "" "vous ne pouvez pas écrire ``m.__dict__ = {}``). Modifier :attr:`~object." "__dict__` directement n'est pas recommandé." -#: ../Doc/library/stdtypes.rst:4456 +#: ../Doc/library/stdtypes.rst:4480 msgid "" "Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ````. S'ils sont chargés depuis un fichier, ils sont représentés " "````." -#: ../Doc/library/stdtypes.rst:4464 +#: ../Doc/library/stdtypes.rst:4488 msgid "Classes and Class Instances" msgstr "Les classes et instances de classes" -#: ../Doc/library/stdtypes.rst:4466 +#: ../Doc/library/stdtypes.rst:4490 msgid "See :ref:`objects` and :ref:`class` for these." msgstr "Voir :ref:`objects` et :ref:`class`." -#: ../Doc/library/stdtypes.rst:4472 +#: ../Doc/library/stdtypes.rst:4496 msgid "Functions" msgstr "Fonctions" -#: ../Doc/library/stdtypes.rst:4474 +#: ../Doc/library/stdtypes.rst:4498 msgid "" "Function objects are created by function definitions. The only operation on " "a function object is to call it: ``func(argument-list)``." @@ -6470,7 +6484,7 @@ msgstr "" "opération applicable à un objet fonction est de l'appeler : ``func(argument-" "list)``." -#: ../Doc/library/stdtypes.rst:4477 +#: ../Doc/library/stdtypes.rst:4501 msgid "" "There are really two flavors of function objects: built-in functions and " "user-defined functions. Both support the same operation (to call the " @@ -6482,15 +6496,15 @@ msgstr "" "opérations (l'appel à la fonction), mais leur implémentation est différente, " "d'où les deux types distincts." -#: ../Doc/library/stdtypes.rst:4481 +#: ../Doc/library/stdtypes.rst:4505 msgid "See :ref:`function` for more information." msgstr "Voir :ref:`function` pour plus d'information." -#: ../Doc/library/stdtypes.rst:4487 +#: ../Doc/library/stdtypes.rst:4511 msgid "Methods" msgstr "Méthodes" -#: ../Doc/library/stdtypes.rst:4491 +#: ../Doc/library/stdtypes.rst:4515 msgid "" "Methods are functions that are called using the attribute notation. There " "are two flavors: built-in methods (such as :meth:`append` on lists) and " @@ -6502,7 +6516,7 @@ msgstr "" "listes), et les méthodes d'instances de classes. Les méthodes natives sont " "représentées avec le type qui les supporte." -#: ../Doc/library/stdtypes.rst:4496 +#: ../Doc/library/stdtypes.rst:4520 msgid "" "If you access a method (a function defined in a class namespace) through an " "instance, you get a special object: a :dfn:`bound method` (also called :dfn:" @@ -6513,7 +6527,7 @@ msgid "" "n)`` is completely equivalent to calling ``m.__func__(m.__self__, arg-1, " "arg-2, ..., arg-n)``." msgstr "" -"Si vous accédez à une méthode (une fonction définie dans l'espace de nom " +"Si vous accédez à une méthode (une fonction définie dans l'espace de nommage " "d'une classe) via une instance, vous obtenez un objet spécial, une :dfn:" "`bound method` (aussi appelée :dfn:`instance method`). Lorsqu'elle est " "appelée, elle ajoute l'argument ``self`` à la liste des arguments. Les " @@ -6523,7 +6537,7 @@ msgstr "" "n)`` est tout à fait équivalent à appeler ``m.__func__(m.__self__, arg-1, " "arg-2, …, arg-n)``." -#: ../Doc/library/stdtypes.rst:4505 +#: ../Doc/library/stdtypes.rst:4529 msgid "" "Like function objects, bound method objects support getting arbitrary " "attributes. However, since method attributes are actually stored on the " @@ -6540,15 +6554,15 @@ msgstr "" "`AttributeError`. Pour affecter l'attribut, vous devrez explicitement " "l'affecter à sa fonction sous-jacente ::" -#: ../Doc/library/stdtypes.rst:4525 ../Doc/library/stdtypes.rst:4553 +#: ../Doc/library/stdtypes.rst:4549 ../Doc/library/stdtypes.rst:4577 msgid "See :ref:`types` for more information." msgstr "Voir :ref:`types` pour plus d'information." -#: ../Doc/library/stdtypes.rst:4533 +#: ../Doc/library/stdtypes.rst:4557 msgid "Code Objects" msgstr "Objets code" -#: ../Doc/library/stdtypes.rst:4539 +#: ../Doc/library/stdtypes.rst:4563 msgid "" "Code objects are used by the implementation to represent \"pseudo-compiled\" " "executable Python code such as a function body. They differ from function " @@ -6564,7 +6578,7 @@ msgstr "" "fonction native :func:`compile` et peuvent être obtenus des objets fonction " "via leur attribut :attr:`__code__`. Voir aussi le module :mod:`code`." -#: ../Doc/library/stdtypes.rst:4550 +#: ../Doc/library/stdtypes.rst:4574 msgid "" "A code object can be executed or evaluated by passing it (instead of a " "source string) to the :func:`exec` or :func:`eval` built-in functions." @@ -6573,11 +6587,11 @@ msgstr "" "d'une chaîne contenant du code) aux fonction natives :func:`exec` ou :func:" "`eval`." -#: ../Doc/library/stdtypes.rst:4559 +#: ../Doc/library/stdtypes.rst:4583 msgid "Type Objects" msgstr "Objets type" -#: ../Doc/library/stdtypes.rst:4565 +#: ../Doc/library/stdtypes.rst:4589 msgid "" "Type objects represent the various object types. An object's type is " "accessed by the built-in function :func:`type`. There are no special " @@ -6589,15 +6603,15 @@ msgstr "" "opération spéciale sur les types. Le module standard :mod:`types` définit " "les noms de tous les types natifs." -#: ../Doc/library/stdtypes.rst:4570 +#: ../Doc/library/stdtypes.rst:4594 msgid "Types are written like this: ````." msgstr "Les types sont représentés : ````." -#: ../Doc/library/stdtypes.rst:4576 +#: ../Doc/library/stdtypes.rst:4600 msgid "The Null Object" msgstr "L'objet Null" -#: ../Doc/library/stdtypes.rst:4578 +#: ../Doc/library/stdtypes.rst:4602 msgid "" "This object is returned by functions that don't explicitly return a value. " "It supports no special operations. There is exactly one null object, named " @@ -6607,15 +6621,15 @@ msgstr "" "valeur. Il ne supporte aucune opération spéciale. Il existe exactement un " "objet *null* nommé ``None`` (c'est un nom natif). ``type(None)()``." -#: ../Doc/library/stdtypes.rst:4582 +#: ../Doc/library/stdtypes.rst:4606 msgid "It is written as ``None``." msgstr "C'est écrit ``None``." -#: ../Doc/library/stdtypes.rst:4588 +#: ../Doc/library/stdtypes.rst:4613 msgid "The Ellipsis Object" msgstr "L'objet points de suspension" -#: ../Doc/library/stdtypes.rst:4590 +#: ../Doc/library/stdtypes.rst:4615 msgid "" "This object is commonly used by slicing (see :ref:`slicings`). It supports " "no special operations. There is exactly one ellipsis object, named :const:" @@ -6627,15 +6641,15 @@ msgstr "" "objet *ellipsis*, nommé :const:`Ellipsis` (un nom natif). ``type(Ellipsis)" "()`` produit le *singleton* :const:`Ellipsis`." -#: ../Doc/library/stdtypes.rst:4595 +#: ../Doc/library/stdtypes.rst:4620 msgid "It is written as ``Ellipsis`` or ``...``." msgstr "C'est écrit ``Ellipsis`` ou ``...``." -#: ../Doc/library/stdtypes.rst:4601 +#: ../Doc/library/stdtypes.rst:4626 msgid "The NotImplemented Object" msgstr "L'objet *NotImplemented*" -#: ../Doc/library/stdtypes.rst:4603 +#: ../Doc/library/stdtypes.rst:4628 msgid "" "This object is returned from comparisons and binary operations when they are " "asked to operate on types they don't support. See :ref:`comparisons` for " @@ -6647,15 +6661,15 @@ msgstr "" "pour plus d'informations. Il n'y a qu'un seul objet ``NotImplemented``. " "``type(NotImplemented)()`` renvoie un *singleton*." -#: ../Doc/library/stdtypes.rst:4608 +#: ../Doc/library/stdtypes.rst:4633 msgid "It is written as ``NotImplemented``." msgstr "C'est écrit ``NotImplemented``." -#: ../Doc/library/stdtypes.rst:4614 +#: ../Doc/library/stdtypes.rst:4639 msgid "Boolean Values" -msgstr "Valeurs Booléennes" +msgstr "Valeurs booléennes" -#: ../Doc/library/stdtypes.rst:4616 +#: ../Doc/library/stdtypes.rst:4641 msgid "" "Boolean values are the two constant objects ``False`` and ``True``. They " "are used to represent truth values (although other values can also be " @@ -6665,8 +6679,8 @@ msgid "" "any value to a Boolean, if the value can be interpreted as a truth value " "(see section :ref:`truth` above)." msgstr "" -"Les valeurs booléennes sont les deux objet constants ``False`` et ``True``. " -"Ils son utilisés pour représenter les valeurs de vérité (bien que d'autres " +"Les valeurs booléennes sont les deux objets constants ``False`` et ``True``. " +"Ils sont utilisés pour représenter les valeurs de vérité (bien que d'autres " "valeurs peuvent être considérées vraies ou fausses). Dans des contextes " "numériques (par exemple en argument d'un opérateur arithmétique), ils se " "comportent comme les nombres entiers 0 et 1, respectivement. La fonction " @@ -6674,15 +6688,15 @@ msgstr "" "valeur en booléen tant que la valeur peut être interprétée en une valeur de " "vérité (voir :ref:`truth` au dessus)." -#: ../Doc/library/stdtypes.rst:4629 +#: ../Doc/library/stdtypes.rst:4654 msgid "They are written as ``False`` and ``True``, respectively." msgstr "Ils s'écrivent ``False`` et ``True``, respectivement." -#: ../Doc/library/stdtypes.rst:4635 +#: ../Doc/library/stdtypes.rst:4660 msgid "Internal Objects" -msgstr "Objets Internes" +msgstr "Objets internes" -#: ../Doc/library/stdtypes.rst:4637 +#: ../Doc/library/stdtypes.rst:4662 msgid "" "See :ref:`types` for this information. It describes stack frame objects, " "traceback objects, and slice objects." @@ -6690,11 +6704,11 @@ msgstr "" "Voir :ref:`types`. Ils décrivent les objets *stack frame*, *traceback*, et " "*slice*." -#: ../Doc/library/stdtypes.rst:4644 +#: ../Doc/library/stdtypes.rst:4669 msgid "Special Attributes" -msgstr "Attributs Spéciaux" +msgstr "Attributs spéciaux" -#: ../Doc/library/stdtypes.rst:4646 +#: ../Doc/library/stdtypes.rst:4671 msgid "" "The implementation adds a few special read-only attributes to several object " "types, where they are relevant. Some of these are not reported by the :func:" @@ -6704,7 +6718,7 @@ msgstr "" "certains types, lorsque ça a du sens. Certains ne sont *pas* listés par la " "fonction native :func:`dir`." -#: ../Doc/library/stdtypes.rst:4653 +#: ../Doc/library/stdtypes.rst:4678 msgid "" "A dictionary or other mapping object used to store an object's (writable) " "attributes." @@ -6712,20 +6726,20 @@ msgstr "" "Un dictionnaire ou un autre *mapping object* utilisé pour stocker les " "attributs (modifiables) de l'objet." -#: ../Doc/library/stdtypes.rst:4659 +#: ../Doc/library/stdtypes.rst:4684 msgid "The class to which a class instance belongs." msgstr "La classe de l'instance de classe." -#: ../Doc/library/stdtypes.rst:4664 +#: ../Doc/library/stdtypes.rst:4689 msgid "The tuple of base classes of a class object." msgstr "Le *tuple* des classes parentes d'un objet classe." -#: ../Doc/library/stdtypes.rst:4669 +#: ../Doc/library/stdtypes.rst:4694 msgid "" "The name of the class, function, method, descriptor, or generator instance." msgstr "Le nom de la classe, fonction, méthode, descripteur, ou générateur." -#: ../Doc/library/stdtypes.rst:4675 +#: ../Doc/library/stdtypes.rst:4700 msgid "" "The :term:`qualified name` of the class, function, method, descriptor, or " "generator instance." @@ -6733,7 +6747,7 @@ msgstr "" "Le :term:`qualified name` de la classe, fonction, méthode, descripteur, ou " "générateur." -#: ../Doc/library/stdtypes.rst:4683 +#: ../Doc/library/stdtypes.rst:4708 msgid "" "This attribute is a tuple of classes that are considered when looking for " "base classes during method resolution." @@ -6741,7 +6755,7 @@ msgstr "" "Cet attribut est un *tuple* contenant les classes parents prises en compte " "lors de la résolution de méthode." -#: ../Doc/library/stdtypes.rst:4689 +#: ../Doc/library/stdtypes.rst:4714 msgid "" "This method can be overridden by a metaclass to customize the method " "resolution order for its instances. It is called at class instantiation, " @@ -6752,20 +6766,20 @@ msgstr "" "la l'initialisation de la classe, et son résultat est stocké dans " "l'attribut :attr:`~class.__mro__`." -#: ../Doc/library/stdtypes.rst:4696 +#: ../Doc/library/stdtypes.rst:4721 msgid "" "Each class keeps a list of weak references to its immediate subclasses. " "This method returns a list of all those references still alive. Example::" msgstr "" "Chaque classe garde une liste de références faibles à ses classes filles " "immédiates. Cette méthode renvoie la liste de toutes ces références encore " -"valables. Exemple : ::" +"valables. Exemple ::" -#: ../Doc/library/stdtypes.rst:4705 +#: ../Doc/library/stdtypes.rst:4730 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/stdtypes.rst:4706 +#: ../Doc/library/stdtypes.rst:4731 msgid "" "Additional information on these special methods may be found in the Python " "Reference Manual (:ref:`customization`)." @@ -6773,7 +6787,7 @@ msgstr "" "Plus d'informations sur ces méthodes spéciales peuvent être trouvées dans le " "*Python Reference Manual* (:ref:`customization`)." -#: ../Doc/library/stdtypes.rst:4709 +#: ../Doc/library/stdtypes.rst:4734 msgid "" "As a consequence, the list ``[1, 2]`` is considered equal to ``[1.0, 2.0]``, " "and similarly for tuples." @@ -6781,13 +6795,13 @@ msgstr "" "Par conséquent, la liste ``[1, 2]`` est considérée égale à ``[1.0, 2.0]``. " "Idem avec des tuples." -#: ../Doc/library/stdtypes.rst:4712 +#: ../Doc/library/stdtypes.rst:4737 msgid "They must have since the parser can't tell the type of the operands." msgstr "" "Nécessairement, puisque l'analyseur ne peut pas discerner le type des " "opérandes." -#: ../Doc/library/stdtypes.rst:4714 +#: ../Doc/library/stdtypes.rst:4739 msgid "" "Cased characters are those with general category property being one of \"Lu" "\" (Letter, uppercase), \"Ll\" (Letter, lowercase), or \"Lt\" (Letter, " @@ -6797,7 +6811,7 @@ msgstr "" "category* est soit \"Lu\" (pour *Letter*, *uppercase*), soit \"Ll\" (pour " "*Letter*, *lowercase*), soit \"Lt\" (pour *Letter*, *titlecase*)." -#: ../Doc/library/stdtypes.rst:4717 +#: ../Doc/library/stdtypes.rst:4742 msgid "" "To format only a tuple you should therefore provide a singleton tuple whose " "only element is the tuple to be formatted." @@ -6805,6 +6819,9 @@ msgstr "" "Pour insérer un *tuple*, vous devez donc donner un *tuple* d'un seul " "élément, contenant le *tuple* à insérer." +#~ msgid "Return a new set with a shallow copy of *s*." +#~ msgstr "Renvoie un nouvel ensemble, copie de surface de *s*." + #~ msgid "" #~ "Bitwise operations only make sense for integers. Negative numbers are " #~ "treated as their 2's complement value (this assumes that there are enough " diff --git a/library/string.po b/library/string.po index ee8c2e0b3..689d9b50d 100644 --- a/library/string.po +++ b/library/string.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-13 15:13+0200\n" -"PO-Revision-Date: 2018-09-29 19:31+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-03-02 10:41+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.1.1\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/string.rst:2 msgid ":mod:`string` --- Common string operations" -msgstr ":mod:`string` --- Opérations usuelles sur des chaînes" +msgstr ":mod:`string` — Opérations usuelles sur des chaînes" #: ../Doc/library/string.rst:7 msgid "**Source code:** :source:`Lib/string.py`" @@ -54,7 +54,7 @@ msgid "" "The lowercase letters ``'abcdefghijklmnopqrstuvwxyz'``. This value is not " "locale-dependent and will not change." msgstr "" -"Les lettres minuscules ``'abcdefghijklmnopqrstuvwxyz``. Cette valeur de " +"Les lettres minuscules ``'abcdefghijklmnopqrstuvwxyz'``. Cette valeur de " "dépend pas de l'environnement linguistique et ne changera pas." #: ../Doc/library/string.rst:37 @@ -127,7 +127,7 @@ msgstr "" #: ../Doc/library/string.rst:90 msgid "The :class:`Formatter` class has the following public methods:" -msgstr "La classe :class:`Formatter` a les méthodes publiques suivantes : ::" +msgstr "La classe :class:`Formatter` a les méthodes publiques suivantes ::" #: ../Doc/library/string.rst:94 msgid "" @@ -223,7 +223,7 @@ msgid "" "argument in *args*; if it is a string, then it represents a named argument " "in *kwargs*." msgstr "" -"récupère la valeur d'un champ donné. L'argument *key* est soit un entier, " +"Récupère la valeur d'un champ donné. L'argument *key* est soit un entier, " "soit une chaîne. Si c'est un entier, il représente l'indice de la l'argument " "dans *args*. Si c'est une chaîne de caractères, elle représente le nom de " "l'argument dans *kwargs*." @@ -324,7 +324,7 @@ msgstr "" "syntaxe est liée à celle des :ref:`chaînes de formatage littérales `, mais il y a quelques différences." -#: ../Doc/library/string.rst:195 +#: ../Doc/library/string.rst:202 msgid "" "Format strings contain \"replacement fields\" surrounded by curly braces ``{}" "``. Anything that is not contained in braces is considered literal text, " @@ -338,11 +338,11 @@ msgstr "" "avez besoin d'inclure une accolade en littéral, elles peuvent être échappées " "en les doublant : ``{{`` et ``}}``." -#: ../Doc/library/string.rst:200 +#: ../Doc/library/string.rst:207 msgid "The grammar for a replacement field is as follows:" msgstr "La grammaire pour un champ de remplacement est défini comme suit :" -#: ../Doc/library/string.rst:212 +#: ../Doc/library/string.rst:219 msgid "" "In less formal terms, the replacement field can start with a *field_name* " "that specifies the object whose value is to be formatted and inserted into " @@ -359,11 +359,11 @@ msgstr "" "``':'``. Cela définit un format personnalisé pour le remplacement d'une " "valeur." -#: ../Doc/library/string.rst:219 +#: ../Doc/library/string.rst:226 msgid "See also the :ref:`formatspec` section." msgstr "Voir également la section :ref:`formatspec`." -#: ../Doc/library/string.rst:221 +#: ../Doc/library/string.rst:228 msgid "" "The *field_name* itself begins with an *arg_name* that is either a number or " "a keyword. If it's a number, it refers to a positional argument, and if " @@ -392,7 +392,7 @@ msgstr "" "nommé en utilisant :func:`getattr` alors qu'une expression de la forme " "``'[index]'`` recherche l'indice en utilisant :func:`__getitem__`." -#: ../Doc/library/string.rst:233 +#: ../Doc/library/string.rst:240 msgid "" "The positional argument specifiers can be omitted for :meth:`str.format`, so " "``'{} {}'.format(a, b)`` is equivalent to ``'{0} {1}'.format(a, b)``." @@ -401,18 +401,18 @@ msgstr "" "à :meth:`str.format`. Donc ``'{} {}'.format(a, b)`` est équivalent à ``'{0} " "{1}'.format(a, b)``." -#: ../Doc/library/string.rst:237 +#: ../Doc/library/string.rst:244 msgid "" "The positional argument specifiers can be omitted for :class:`Formatter`." msgstr "" "Les spécificateurs de position d'argument peuvent être omis pour :class:" "`Formatter`." -#: ../Doc/library/string.rst:240 +#: ../Doc/library/string.rst:247 msgid "Some simple format string examples::" -msgstr "Quelques exemples simples de formatage de chaînes : ::" +msgstr "Quelques exemples simples de formatage de chaînes ::" -#: ../Doc/library/string.rst:249 +#: ../Doc/library/string.rst:256 msgid "" "The *conversion* field causes a type coercion before formatting. Normally, " "the job of formatting a value is done by the :meth:`__format__` method of " @@ -429,21 +429,21 @@ msgstr "" "en chaîne de caractère avant d'appeler la méthode :meth:`__format__`, on " "outrepasse la logique usuelle de formatage." -#: ../Doc/library/string.rst:256 +#: ../Doc/library/string.rst:263 msgid "" "Three conversion flags are currently supported: ``'!s'`` which calls :func:" "`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!a'`` which " "calls :func:`ascii`." msgstr "" -"Actuellement, trois indicateurs sont supportés : ``'!s'`` qui appelle la " +"Actuellement, trois indicateurs sont gérés : ``'!s'`` qui appelle la " "fonction :func:`str` sur la valeur, ``'!r'`` qui appelle la fonction :func:" "`repr` et ``!a`` qui appelle la fonction :func:`ascii`." -#: ../Doc/library/string.rst:260 +#: ../Doc/library/string.rst:267 msgid "Some examples::" -msgstr "Quelques exemples : ::" +msgstr "Quelques exemples ::" -#: ../Doc/library/string.rst:266 +#: ../Doc/library/string.rst:273 msgid "" "The *format_spec* field contains a specification of how the value should be " "presented, including such details as field width, alignment, padding, " @@ -456,15 +456,15 @@ msgstr "" "Chaque type peut définir son propre \"mini-langage de formatage\" ou sa " "propre interprétation de *format_spec*." -#: ../Doc/library/string.rst:271 +#: ../Doc/library/string.rst:278 msgid "" "Most built-in types support a common formatting mini-language, which is " "described in the next section." msgstr "" -"La plupart des types natifs supportent un mini-langage de formatage usuel " -"qui est décrit dans la section suivante." +"La plupart des types natifs gèrent un mini-langage de formatage usuel qui " +"est décrit dans la section suivante." -#: ../Doc/library/string.rst:274 +#: ../Doc/library/string.rst:281 msgid "" "A *format_spec* field can also include nested replacement fields within it. " "These nested replacement fields may contain a field name, conversion flag " @@ -480,15 +480,15 @@ msgstr "" "substitués avant que la chaîne *format_spec* ne soit interprétée. Cela " "permet que le formatage d'une valeur soit dynamiquement spécifié." -#: ../Doc/library/string.rst:281 +#: ../Doc/library/string.rst:288 msgid "See the :ref:`formatexamples` section for some examples." msgstr "Voir la section :ref:`formatexamples` pour des exemples." -#: ../Doc/library/string.rst:287 +#: ../Doc/library/string.rst:294 msgid "Format Specification Mini-Language" msgstr "Mini-langage de spécification de format" -#: ../Doc/library/string.rst:289 +#: ../Doc/library/string.rst:296 msgid "" "\"Format specifications\" are used within replacement fields contained " "within a format string to define how individual values are presented (see :" @@ -503,7 +503,7 @@ msgstr "" "native :func:`format`. Chaque type *formatable* peut définir comment les " "spécifications sur les valeurs de ce type doivent être interprétées." -#: ../Doc/library/string.rst:296 +#: ../Doc/library/string.rst:303 msgid "" "Most built-in types implement the following options for format " "specifications, although some of the formatting options are only supported " @@ -513,7 +513,7 @@ msgstr "" "certaines options de formatage ne sont supportées que pour les types " "numériques." -#: ../Doc/library/string.rst:299 +#: ../Doc/library/string.rst:306 msgid "" "A general convention is that an empty format string (``\"\"``) produces the " "same result as if you had called :func:`str` on the value. A non-empty " @@ -523,11 +523,11 @@ msgstr "" "le même résultat que si vous aviez appelé :func:`str` sur la valeur. Une " "chaîne de format non vide modifie typiquement le résultat." -#: ../Doc/library/string.rst:303 +#: ../Doc/library/string.rst:310 msgid "The general form of a *standard format specifier* is:" -msgstr "La forme générale d'un *spécificateur de format standard* est : ::" +msgstr "La forme générale d'un *spécificateur de format standard* est ::" -#: ../Doc/library/string.rst:315 +#: ../Doc/library/string.rst:322 msgid "" "If a valid *align* value is specified, it can be preceded by a *fill* " "character that can be any character and defaults to a space if omitted. It " @@ -546,25 +546,25 @@ msgstr "" "d'un champ de remplacement imbriqué. Cette limitation n'affecte pas la " "fonction :func:`format`." -#: ../Doc/library/string.rst:324 +#: ../Doc/library/string.rst:331 msgid "The meaning of the various alignment options is as follows:" msgstr "Le sens des différentes options d'alignement est donné comme suit :" -#: ../Doc/library/string.rst:327 ../Doc/library/string.rst:353 +#: ../Doc/library/string.rst:340 ../Doc/library/string.rst:371 msgid "Option" msgstr "Option" -#: ../Doc/library/string.rst:327 ../Doc/library/string.rst:353 -#: ../Doc/library/string.rst:415 ../Doc/library/string.rst:426 -#: ../Doc/library/string.rst:458 +#: ../Doc/library/string.rst:340 ../Doc/library/string.rst:371 +#: ../Doc/library/string.rst:439 ../Doc/library/string.rst:450 +#: ../Doc/library/string.rst:482 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/string.rst:329 +#: ../Doc/library/string.rst:342 msgid "``'<'``" msgstr "``'<'``" -#: ../Doc/library/string.rst:329 +#: ../Doc/library/string.rst:342 msgid "" "Forces the field to be left-aligned within the available space (this is the " "default for most objects)." @@ -572,11 +572,11 @@ msgstr "" "Force le champ à être aligné à gauche dans l'espace disponible (c'est le " "spécificateur par défaut pour la plupart des objets)." -#: ../Doc/library/string.rst:332 +#: ../Doc/library/string.rst:345 msgid "``'>'``" msgstr "``'>'``" -#: ../Doc/library/string.rst:332 +#: ../Doc/library/string.rst:345 msgid "" "Forces the field to be right-aligned within the available space (this is the " "default for numbers)." @@ -584,11 +584,11 @@ msgstr "" "Force le champ à être aligné à droite dans l'espace disponible (c'est le " "spécificateur par défaut pour les nombres)." -#: ../Doc/library/string.rst:335 +#: ../Doc/library/string.rst:348 msgid "``'='``" msgstr "``'='``" -#: ../Doc/library/string.rst:335 +#: ../Doc/library/string.rst:348 msgid "" "Forces the padding to be placed after the sign (if any) but before the " "digits. This is used for printing fields in the form '+000000120'. This " @@ -601,15 +601,15 @@ msgstr "" "uniquement pour les types numériques. Elle devient activée par défaut quand " "\"0\" précède directement la largeur de champ." -#: ../Doc/library/string.rst:341 +#: ../Doc/library/string.rst:354 msgid "``'^'``" msgstr "``'^'``" -#: ../Doc/library/string.rst:341 +#: ../Doc/library/string.rst:354 msgid "Forces the field to be centered within the available space." msgstr "Force le champ à être centré dans l'espace disponible." -#: ../Doc/library/string.rst:345 +#: ../Doc/library/string.rst:358 msgid "" "Note that unless a minimum field width is defined, the field width will " "always be the same size as the data to fill it, so that the alignment option " @@ -620,7 +620,7 @@ msgstr "" "précisée. Ainsi, si aucune valeur n'est précisée, l'option d'alignement n'a " "aucun sens." -#: ../Doc/library/string.rst:349 +#: ../Doc/library/string.rst:362 msgid "" "The *sign* option is only valid for number types, and can be one of the " "following:" @@ -628,43 +628,43 @@ msgstr "" "L'option *sign* est uniquement valide pour les type numériques, et peut " "valoir :" -#: ../Doc/library/string.rst:355 +#: ../Doc/library/string.rst:373 msgid "``'+'``" msgstr "``'+'``" -#: ../Doc/library/string.rst:355 +#: ../Doc/library/string.rst:373 msgid "" "indicates that a sign should be used for both positive as well as negative " "numbers." msgstr "" -"Indique que le signe doit être affiché pour les nombres tant positifs que " +"indique que le signe doit être affiché pour les nombres tant positifs que " "négatifs." -#: ../Doc/library/string.rst:358 +#: ../Doc/library/string.rst:376 msgid "``'-'``" msgstr "``'-'``" -#: ../Doc/library/string.rst:358 +#: ../Doc/library/string.rst:376 msgid "" "indicates that a sign should be used only for negative numbers (this is the " "default behavior)." msgstr "" -"Indique que le signe doit être affiché uniquement pour les nombres négatifs " +"indique que le signe doit être affiché uniquement pour les nombres négatifs " "(c'est le comportement par défaut)." -#: ../Doc/library/string.rst:361 +#: ../Doc/library/string.rst:379 msgid "space" msgstr "espace" -#: ../Doc/library/string.rst:361 +#: ../Doc/library/string.rst:379 msgid "" "indicates that a leading space should be used on positive numbers, and a " "minus sign on negative numbers." msgstr "" -"Indique qu'un espace doit précéder les nombres positifs et qu'un signe moins " +"indique qu'un espace doit précéder les nombres positifs et qu'un signe moins " "doit précéder les nombres négatifs." -#: ../Doc/library/string.rst:366 +#: ../Doc/library/string.rst:386 msgid "" "The ``'#'`` option causes the \"alternate form\" to be used for the " "conversion. The alternate form is defined differently for different types. " @@ -689,7 +689,7 @@ msgstr "" "seulement si un chiffre le suit. De plus, pour les conversions ``'g'`` et " "``'G'``, les zéros finaux ne sont pas retirés du résultat." -#: ../Doc/library/string.rst:378 +#: ../Doc/library/string.rst:400 msgid "" "The ``','`` option signals the use of a comma for a thousands separator. For " "a locale aware separator, use the ``'n'`` integer presentation type instead." @@ -698,11 +698,11 @@ msgstr "" "milliers. Pour un séparateur conscient de l'environnement linguistique, " "utilisez plutôt le type de présentation entière ``'n'``." -#: ../Doc/library/string.rst:382 +#: ../Doc/library/string.rst:404 msgid "Added the ``','`` option (see also :pep:`378`)." msgstr "Ajout de l'option ``','`` (voir :pep:`378`)." -#: ../Doc/library/string.rst:385 +#: ../Doc/library/string.rst:409 msgid "" "The ``'_'`` option signals the use of an underscore for a thousands " "separator for floating point presentation types and for integer presentation " @@ -717,11 +717,11 @@ msgstr "" "4 chiffres. Pour les autres types de représentation, spécifier cette option " "est une erreur." -#: ../Doc/library/string.rst:392 +#: ../Doc/library/string.rst:416 msgid "Added the ``'_'`` option (see also :pep:`515`)." -msgstr "Ajout de l'option ``'_'`` (voir aussi :pep`515`)." +msgstr "Ajout de l'option ``'_'`` (voir aussi :pep:`515`)." -#: ../Doc/library/string.rst:395 +#: ../Doc/library/string.rst:419 msgid "" "*width* is a decimal integer defining the minimum field width. If not " "specified, then the field width will be determined by the content." @@ -730,7 +730,7 @@ msgstr "" "Si elle n'est pas spécifiée, alors le champ *width* est déterminé par le " "contenu." -#: ../Doc/library/string.rst:398 +#: ../Doc/library/string.rst:422 msgid "" "When no explicit alignment is given, preceding the *width* field by a zero " "(``'0'``) character enables sign-aware zero-padding for numeric types. This " @@ -743,7 +743,7 @@ msgstr "" "remplissage *fill* valant ``'0'`` avec le type d'alignement *alignment* " "valant ``'='``." -#: ../Doc/library/string.rst:403 +#: ../Doc/library/string.rst:427 msgid "" "The *precision* is a decimal number indicating how many digits should be " "displayed after the decimal point for a floating point value formatted with " @@ -761,57 +761,57 @@ msgstr "" "autrement dit, combien de caractères du champ sont utilisés. Le " "spécificateur *precision* n'est pas autorisé sur les entiers." -#: ../Doc/library/string.rst:410 +#: ../Doc/library/string.rst:434 msgid "Finally, the *type* determines how the data should be presented." msgstr "" "Finalement, le spécificateur *type* détermine comment la donnée doit être " "représentée." -#: ../Doc/library/string.rst:412 +#: ../Doc/library/string.rst:436 msgid "The available string presentation types are:" msgstr "Les types disponibles de représentation de chaîne sont :" -#: ../Doc/library/string.rst:415 ../Doc/library/string.rst:426 -#: ../Doc/library/string.rst:458 +#: ../Doc/library/string.rst:439 ../Doc/library/string.rst:450 +#: ../Doc/library/string.rst:482 msgid "Type" msgstr "Type" -#: ../Doc/library/string.rst:417 +#: ../Doc/library/string.rst:441 msgid "``'s'``" msgstr "``'s'``" -#: ../Doc/library/string.rst:417 +#: ../Doc/library/string.rst:441 msgid "String format. This is the default type for strings and may be omitted." msgstr "" "Format de chaîne. C'est le type par défaut pour les chaînes de caractères et " "peut être omis." -#: ../Doc/library/string.rst:420 ../Doc/library/string.rst:447 -#: ../Doc/library/string.rst:508 +#: ../Doc/library/string.rst:444 ../Doc/library/string.rst:471 +#: ../Doc/library/string.rst:532 msgid "None" -msgstr "*None*" +msgstr "``None``" -#: ../Doc/library/string.rst:420 +#: ../Doc/library/string.rst:444 msgid "The same as ``'s'``." msgstr "Pareil que ``'s'``." -#: ../Doc/library/string.rst:423 +#: ../Doc/library/string.rst:447 msgid "The available integer presentation types are:" msgstr "Les types disponibles de représentation d'entier sont :" -#: ../Doc/library/string.rst:428 +#: ../Doc/library/string.rst:452 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/string.rst:428 +#: ../Doc/library/string.rst:452 msgid "Binary format. Outputs the number in base 2." msgstr "Format binaire. Affiche le nombre en base 2." -#: ../Doc/library/string.rst:430 +#: ../Doc/library/string.rst:454 msgid "``'c'``" msgstr "``'c'``" -#: ../Doc/library/string.rst:430 +#: ../Doc/library/string.rst:454 msgid "" "Character. Converts the integer to the corresponding unicode character " "before printing." @@ -819,51 +819,51 @@ msgstr "" "Caractère. Convertit l'entier en le caractère Unicode associé avant de " "l'afficher." -#: ../Doc/library/string.rst:433 +#: ../Doc/library/string.rst:457 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/library/string.rst:433 +#: ../Doc/library/string.rst:457 msgid "Decimal Integer. Outputs the number in base 10." msgstr "Entier décimal. Affiche le nombre en base 10." -#: ../Doc/library/string.rst:435 +#: ../Doc/library/string.rst:459 msgid "``'o'``" msgstr "``'o'``" -#: ../Doc/library/string.rst:435 +#: ../Doc/library/string.rst:459 msgid "Octal format. Outputs the number in base 8." msgstr "Format octal. Affiche le nombre en base 8." -#: ../Doc/library/string.rst:437 +#: ../Doc/library/string.rst:461 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/string.rst:437 +#: ../Doc/library/string.rst:461 msgid "" -"Hex format. Outputs the number in base 16, using lower- case letters for the " +"Hex format. Outputs the number in base 16, using lower-case letters for the " "digits above 9." msgstr "" "Format hexadécimal. Affiche le nombre en base 16 en utilisant les lettres " "minuscules pour les chiffres au-dessus de 9." -#: ../Doc/library/string.rst:440 +#: ../Doc/library/string.rst:464 msgid "``'X'``" msgstr "``'X'``" -#: ../Doc/library/string.rst:440 +#: ../Doc/library/string.rst:464 msgid "" -"Hex format. Outputs the number in base 16, using upper- case letters for the " +"Hex format. Outputs the number in base 16, using upper-case letters for the " "digits above 9." msgstr "" "Format hexadécimal. Affiche le nombre en base 16 en utilisant les lettres " "majuscules pour les chiffres au-dessus de 9." -#: ../Doc/library/string.rst:443 ../Doc/library/string.rst:501 +#: ../Doc/library/string.rst:467 ../Doc/library/string.rst:525 msgid "``'n'``" msgstr "``'n'``" -#: ../Doc/library/string.rst:443 +#: ../Doc/library/string.rst:467 msgid "" "Number. This is the same as ``'d'``, except that it uses the current locale " "setting to insert the appropriate number separator characters." @@ -871,11 +871,11 @@ msgstr "" "Nombre. Pareil que ``'d'`` si ce n'est que l'environnement linguistique est " "utilisé afin de déterminer le séparateur de nombres approprié." -#: ../Doc/library/string.rst:447 +#: ../Doc/library/string.rst:471 msgid "The same as ``'d'``." msgstr "Pareil que ``'d'``." -#: ../Doc/library/string.rst:450 +#: ../Doc/library/string.rst:474 msgid "" "In addition to the above presentation types, integers can be formatted with " "the floating point presentation types listed below (except ``'n'`` and " @@ -888,18 +888,18 @@ msgstr "" "func:`float` est utilisée pour convertir l'entier en flottant avant le " "formatage." -#: ../Doc/library/string.rst:455 +#: ../Doc/library/string.rst:479 msgid "" "The available presentation types for floating point and decimal values are:" msgstr "" -"les types de représentation pour les nombres flottants et les valeurs " +"Les types de représentation pour les nombres flottants et les valeurs " "décimales sont :" -#: ../Doc/library/string.rst:460 +#: ../Doc/library/string.rst:484 msgid "``'e'``" msgstr "``'e'``" -#: ../Doc/library/string.rst:460 +#: ../Doc/library/string.rst:484 msgid "" "Exponent notation. Prints the number in scientific notation using the letter " "'e' to indicate the exponent. The default precision is ``6``." @@ -908,11 +908,11 @@ msgstr "" "utilisant la lettre 'e' pour indiquer l'exposant. La précision par défaut " "est ``6``." -#: ../Doc/library/string.rst:464 +#: ../Doc/library/string.rst:488 msgid "``'E'``" msgstr "``'E'``" -#: ../Doc/library/string.rst:464 +#: ../Doc/library/string.rst:488 msgid "" "Exponent notation. Same as ``'e'`` except it uses an upper case 'E' as the " "separator character." @@ -920,11 +920,11 @@ msgstr "" "Notation par exposant. Pareil que ``'e'`` sauf l'utilisation de la lettre " "majuscule 'E' comme séparateur." -#: ../Doc/library/string.rst:467 +#: ../Doc/library/string.rst:491 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/library/string.rst:467 +#: ../Doc/library/string.rst:491 msgid "" "Fixed-point notation. Displays the number as a fixed-point number. The " "default precision is ``6``." @@ -932,11 +932,11 @@ msgstr "" "Virgule fixe. Affiche le nombre comme un nombre à virgule fixe. La précision " "par défaut est ``6``." -#: ../Doc/library/string.rst:470 +#: ../Doc/library/string.rst:494 msgid "``'F'``" msgstr "``'F'``" -#: ../Doc/library/string.rst:470 +#: ../Doc/library/string.rst:494 msgid "" "Fixed-point notation. Same as ``'f'``, but converts ``nan`` to ``NAN`` and " "``inf`` to ``INF``." @@ -944,11 +944,11 @@ msgstr "" "Virgule fixe. Pareil que ``'f'`` à part ``nan`` qui devient ``NAN`` et " "``inf`` qui devient ``INF``." -#: ../Doc/library/string.rst:473 +#: ../Doc/library/string.rst:497 msgid "``'g'``" msgstr "``'g'``" -#: ../Doc/library/string.rst:473 +#: ../Doc/library/string.rst:497 msgid "" "General format. For a given precision ``p >= 1``, this rounds the number to " "``p`` significant digits and then formats the result in either fixed-point " @@ -958,7 +958,7 @@ msgstr "" "nombre à ``p`` chiffres significatifs et puis formate le résultat soit en " "virgule fixe soit en notation scientifique, en fonction de la magnitude." -#: ../Doc/library/string.rst:478 +#: ../Doc/library/string.rst:502 msgid "" "The precise rules are as follows: suppose that the result formatted with " "presentation type ``'e'`` and precision ``p-1`` would have exponent " @@ -977,7 +977,7 @@ msgstr "" "retirés, et la virgule est également retirée s'il n'y a aucun chiffre la " "suivant." -#: ../Doc/library/string.rst:489 +#: ../Doc/library/string.rst:513 msgid "" "Positive and negative infinity, positive and negative zero, and nans, are " "formatted as ``inf``, ``-inf``, ``0``, ``-0`` and ``nan`` respectively, " @@ -987,7 +987,7 @@ msgstr "" "négatif, *not a number* sont formatées respectivement par ``inf``, ``-inf``, " "``0``, ``-0`` et ``nan``, peu importe la précision." -#: ../Doc/library/string.rst:494 +#: ../Doc/library/string.rst:518 msgid "" "A precision of ``0`` is treated as equivalent to a precision of ``1``. The " "default precision is ``6``." @@ -995,11 +995,11 @@ msgstr "" "Une précision de ``0`` est interprétée comme une précision de ``1``. La " "précision par défaut est ``6``." -#: ../Doc/library/string.rst:497 +#: ../Doc/library/string.rst:521 msgid "``'G'``" msgstr "``'G'``" -#: ../Doc/library/string.rst:497 +#: ../Doc/library/string.rst:521 msgid "" "General format. Same as ``'g'`` except switches to ``'E'`` if the number " "gets too large. The representations of infinity and NaN are uppercased, too." @@ -1008,7 +1008,7 @@ msgstr "" "nombre est trop grand. Également, la représentation des infinis et de Nan " "sont en majuscules également." -#: ../Doc/library/string.rst:501 +#: ../Doc/library/string.rst:525 msgid "" "Number. This is the same as ``'g'``, except that it uses the current locale " "setting to insert the appropriate number separator characters." @@ -1016,11 +1016,11 @@ msgstr "" "Nombre. Pareil que ``'g'``, si ce n'est que l'environnement linguistique est " "pris en compte pour insérer le séparateur approprié." -#: ../Doc/library/string.rst:505 +#: ../Doc/library/string.rst:529 msgid "``'%'``" msgstr "``'%'``" -#: ../Doc/library/string.rst:505 +#: ../Doc/library/string.rst:529 msgid "" "Percentage. Multiplies the number by 100 and displays in fixed (``'f'``) " "format, followed by a percent sign." @@ -1028,7 +1028,7 @@ msgstr "" "Pourcentage. Multiplie le nombre par 100 et l'affiche en virgule fixe " "(``'f'``), suivi d'un symbole pourcent ``'%'``." -#: ../Doc/library/string.rst:508 +#: ../Doc/library/string.rst:532 msgid "" "Similar to ``'g'``, except that fixed-point notation, when used, has at " "least one digit past the decimal point. The default precision is as high as " @@ -1041,11 +1041,11 @@ msgstr "" "L'effet visé est de le faire correspondre à la valeur renvoyée par :func:" "`str` altérée par les autres modificateurs de format." -#: ../Doc/library/string.rst:520 +#: ../Doc/library/string.rst:544 msgid "Format examples" msgstr "Exemples de formats" -#: ../Doc/library/string.rst:522 +#: ../Doc/library/string.rst:546 msgid "" "This section contains examples of the :meth:`str.format` syntax and " "comparison with the old ``%``-formatting." @@ -1053,7 +1053,7 @@ msgstr "" "Cette section contient des exemples de la syntaxe de :meth:`str.format` et " "des comparaisons avec l'ancien formatage par ``%``." -#: ../Doc/library/string.rst:525 +#: ../Doc/library/string.rst:549 msgid "" "In most of the cases the syntax is similar to the old ``%``-formatting, with " "the addition of the ``{}`` and with ``:`` used instead of ``%``. For " @@ -1063,69 +1063,69 @@ msgstr "" "``%``, avec l'ajout de ``{}`` et avec ``:`` au lieu de ``%``. Par exemple : " "``'%03.2f'`` peut être changé en ``'{03.2f}'``." -#: ../Doc/library/string.rst:529 +#: ../Doc/library/string.rst:553 msgid "" "The new format syntax also supports new and different options, shown in the " -"follow examples." +"following examples." msgstr "" -"La nouvelle syntaxe de formatage supporte également de nouvelles options et " -"des options différentes, montrées dans les exemples qui suivent." +"La nouvelle syntaxe de formatage gère également de nouvelles options et des " +"options différentes, montrées dans les exemples qui suivent." -#: ../Doc/library/string.rst:532 +#: ../Doc/library/string.rst:556 msgid "Accessing arguments by position::" -msgstr "Accéder à un argument par sa position : ::" +msgstr "Accéder à un argument par sa position ::" -#: ../Doc/library/string.rst:545 +#: ../Doc/library/string.rst:569 msgid "Accessing arguments by name::" -msgstr "Accéder à un argument par son nom : ::" +msgstr "Accéder à un argument par son nom ::" -#: ../Doc/library/string.rst:553 +#: ../Doc/library/string.rst:577 msgid "Accessing arguments' attributes::" -msgstr "Accéder aux attributs d'un argument : ::" +msgstr "Accéder aux attributs d'un argument ::" -#: ../Doc/library/string.rst:568 +#: ../Doc/library/string.rst:592 msgid "Accessing arguments' items::" -msgstr "Accéder aux éléments d'un argument : ::" +msgstr "Accéder aux éléments d'un argument ::" -#: ../Doc/library/string.rst:574 +#: ../Doc/library/string.rst:598 msgid "Replacing ``%s`` and ``%r``::" -msgstr "Remplacer ``%s`` et ``%r`` : ::" +msgstr "Remplacer ``%s`` et ``%r`` ::" -#: ../Doc/library/string.rst:579 +#: ../Doc/library/string.rst:603 msgid "Aligning the text and specifying a width::" -msgstr "Aligner le texte et spécifier une longueur minimale : ::" +msgstr "Aligner le texte et spécifier une longueur minimale ::" -#: ../Doc/library/string.rst:590 +#: ../Doc/library/string.rst:614 msgid "Replacing ``%+f``, ``%-f``, and ``% f`` and specifying a sign::" -msgstr "Remplacer ``%+f``, ``%-f``, et ``%f`` et spécifier un signe : ::" +msgstr "Remplacer ``%+f``, ``%-f``, et ``%f`` et spécifier un signe ::" -#: ../Doc/library/string.rst:599 +#: ../Doc/library/string.rst:623 msgid "" "Replacing ``%x`` and ``%o`` and converting the value to different bases::" msgstr "" -"Remplacer ``%x`` et ``%o`` et convertir la valeur dans différentes bases : ::" +"Remplacer ``%x`` et ``%o`` et convertir la valeur dans différentes bases ::" -#: ../Doc/library/string.rst:608 +#: ../Doc/library/string.rst:632 msgid "Using the comma as a thousands separator::" -msgstr "Utiliser une virgule comme séparateur des milliers : ::" +msgstr "Utiliser une virgule comme séparateur des milliers ::" -#: ../Doc/library/string.rst:613 +#: ../Doc/library/string.rst:637 msgid "Expressing a percentage::" -msgstr "Exprimer un pourcentage : ::" +msgstr "Exprimer un pourcentage ::" -#: ../Doc/library/string.rst:620 +#: ../Doc/library/string.rst:644 msgid "Using type-specific formatting::" -msgstr "Utiliser un formatage propre au type : ::" +msgstr "Utiliser un formatage propre au type ::" -#: ../Doc/library/string.rst:627 +#: ../Doc/library/string.rst:651 msgid "Nesting arguments and more complex examples::" -msgstr "Arguments imbriqués et des exemples plus complexes : ::" +msgstr "Arguments imbriqués et des exemples plus complexes ::" -#: ../Doc/library/string.rst:661 +#: ../Doc/library/string.rst:685 msgid "Template strings" msgstr "Chaînes modèles" -#: ../Doc/library/string.rst:663 +#: ../Doc/library/string.rst:687 msgid "" "Template strings provide simpler string substitutions as described in :pep:" "`292`. A primary use case for template strings is for internationalization " @@ -1143,7 +1143,7 @@ msgstr "" "l'internationalisation, voir le paquet `flufl.i18n `." -#: ../Doc/library/string.rst:671 +#: ../Doc/library/string.rst:697 msgid "" "Template strings support ``$``-based substitutions, using the following " "rules:" @@ -1151,11 +1151,11 @@ msgstr "" "Les chaînes modèles prennent en charge les substitutions basées sur ``$`` en " "utilisant les règles suivantes :" -#: ../Doc/library/string.rst:673 +#: ../Doc/library/string.rst:699 msgid "``$$`` is an escape; it is replaced with a single ``$``." msgstr "``$$`` est un échappement ; il est remplacé par un simple ``$``." -#: ../Doc/library/string.rst:675 +#: ../Doc/library/string.rst:701 msgid "" "``$identifier`` names a substitution placeholder matching a mapping key of ``" "\"identifier\"``. By default, ``\"identifier\"`` is restricted to any case-" @@ -1170,7 +1170,7 @@ msgstr "" "n'étant pas un identifieur après le ``$`` termine la spécification du " "substituant." -#: ../Doc/library/string.rst:682 +#: ../Doc/library/string.rst:708 msgid "" "``${identifier}`` is equivalent to ``$identifier``. It is required when " "valid identifier characters follow the placeholder but are not part of the " @@ -1181,7 +1181,7 @@ msgstr "" "directement le substituant mais ne fait pas partie du substituant, comme ``" "\"${noun}ification\"``." -#: ../Doc/library/string.rst:686 +#: ../Doc/library/string.rst:712 msgid "" "Any other appearance of ``$`` in the string will result in a :exc:" "`ValueError` being raised." @@ -1189,7 +1189,7 @@ msgstr "" "Tout autre présence du symbole ``$`` dans une chaîne résultera en la levée " "d'une :exc:`ValueError`." -#: ../Doc/library/string.rst:689 +#: ../Doc/library/string.rst:715 msgid "" "The :mod:`string` module provides a :class:`Template` class that implements " "these rules. The methods of :class:`Template` are:" @@ -1197,12 +1197,12 @@ msgstr "" "Le module :mod:`string` fournit une classe :class:`Template` qui implémente " "ces règles. Les méthodes de :class:`Template` sont :" -#: ../Doc/library/string.rst:695 +#: ../Doc/library/string.rst:721 msgid "The constructor takes a single argument which is the template string." msgstr "" "Le constructeur prend un seul argument qui est la chaîne du *template*." -#: ../Doc/library/string.rst:700 +#: ../Doc/library/string.rst:726 msgid "" "Performs the template substitution, returning a new string. *mapping* is " "any dictionary-like object with keys that match the placeholders in the " @@ -1217,7 +1217,7 @@ msgstr "" "*mapping* et *kwds* sont donnés et qu'il y a des doublons, les substituants " "de *kwds* sont prioritaires." -#: ../Doc/library/string.rst:709 +#: ../Doc/library/string.rst:735 msgid "" "Like :meth:`substitute`, except that if placeholders are missing from " "*mapping* and *kwds*, instead of raising a :exc:`KeyError` exception, the " @@ -1232,30 +1232,29 @@ msgstr "" "$`` renverra simplement ``$`` au lieu de lever une exception :exc:" "`ValueError`." -#: ../Doc/library/string.rst:715 +#: ../Doc/library/string.rst:741 msgid "" "While other exceptions may still occur, this method is called \"safe\" " -"because substitutions always tries to return a usable string instead of " -"raising an exception. In another sense, :meth:`safe_substitute` may be " -"anything other than safe, since it will silently ignore malformed templates " -"containing dangling delimiters, unmatched braces, or placeholders that are " -"not valid Python identifiers." +"because it always tries to return a usable string instead of raising an " +"exception. In another sense, :meth:`safe_substitute` may be anything other " +"than safe, since it will silently ignore malformed templates containing " +"dangling delimiters, unmatched braces, or placeholders that are not valid " +"Python identifiers." msgstr "" "Bien que d'autres exceptions peuvent toujours être levées, cette méthode est " -"dite *safe* (sûre) car les substitutions tentent toujours de renvoyer une " -"chaîne utilisable au lieu de lever une exception. Dans un autre sens, :meth:" -"`safe_substitute` est tout sauf sûre du fait qu'elle ignore silencieusement " -"toute malformation dans le *template* qui contient des délimiteurs fantômes, " -"des accolades non fermées, ou des substituants qui ne sont pas des " -"identificateurs Python valides." - -#: ../Doc/library/string.rst:722 +"dite sûre car elle tente de toujours renvoyer une chaîne utilisable au lieu " +"de lever une exception. Ceci dit, :meth:`safe_substitute` est tout sauf sûre " +"car elle ignore silencieusement toute malformation dans le *template* qui " +"contient des délimiteurs fantômes, des accolades non fermées, ou des " +"substituants qui ne sont pas des identificateurs Python valides." + +#: ../Doc/library/string.rst:748 msgid ":class:`Template` instances also provide one public data attribute:" msgstr "" "Les instances de la classe :class:`Template` fournissent également un " "attribut public :" -#: ../Doc/library/string.rst:726 +#: ../Doc/library/string.rst:752 msgid "" "This is the object passed to the constructor's *template* argument. In " "general, you shouldn't change it, but read-only access is not enforced." @@ -1264,11 +1263,11 @@ msgstr "" "vous ne devriez pas le changer, mais un accès en lecture-seule n'est pas " "possible à fournir." -#: ../Doc/library/string.rst:729 +#: ../Doc/library/string.rst:755 msgid "Here is an example of how to use a Template::" -msgstr "Voici un exemple de comment utiliser un *Template* : ::" +msgstr "Voici un exemple de comment utiliser un *Template* ::" -#: ../Doc/library/string.rst:747 +#: ../Doc/library/string.rst:773 msgid "" "Advanced usage: you can derive subclasses of :class:`Template` to customize " "the placeholder syntax, delimiter character, or the entire regular " @@ -1281,7 +1280,7 @@ msgstr "" "analyser les chaînes *templates*. Pour faire cela, vous pouvez redéfinir les " "attributs suivants :" -#: ../Doc/library/string.rst:752 +#: ../Doc/library/string.rst:778 msgid "" "*delimiter* -- This is the literal string describing a placeholder " "introducing delimiter. The default value is ``$``. Note that this should " @@ -1296,7 +1295,7 @@ msgstr "" "escape` sur cette chaîne si nécessaire. Notez aussi que le délimiteur ne " "peut pas être changé après la création de la classe." -#: ../Doc/library/string.rst:759 +#: ../Doc/library/string.rst:785 msgid "" "*idpattern* -- This is the regular expression describing the pattern for non-" "braced placeholders. The default value is the regular expression ``(?a:[_a-" @@ -1309,7 +1308,7 @@ msgstr "" "donné et *braceidpattern* est ``None``, ce motif est aussi utilisé pour les " "marqueurs entre accolades." -#: ../Doc/library/string.rst:766 +#: ../Doc/library/string.rst:792 msgid "" "Since default *flags* is ``re.IGNORECASE``, pattern ``[a-z]`` can match with " "some non-ASCII characters. That's why we use the local ``a`` flag here." @@ -1318,7 +1317,7 @@ msgstr "" "ASCII* peuvent correspondre au motif ``[a-z]``. C'est pourquoi on utilise " "une option locale ``a`` ici." -#: ../Doc/library/string.rst:770 +#: ../Doc/library/string.rst:796 msgid "" "*braceidpattern* can be used to define separate patterns used inside and " "outside the braces." @@ -1326,7 +1325,7 @@ msgstr "" "*braceidpattern* peut être utilisé pour définir des motifs des motifs " "différents suivant qu’ils sont à l’intérieur ou à l’extérieur des accolades." -#: ../Doc/library/string.rst:774 +#: ../Doc/library/string.rst:800 msgid "" "*braceidpattern* -- This is like *idpattern* but describes the pattern for " "braced placeholders. Defaults to ``None`` which means to fall back to " @@ -1340,7 +1339,7 @@ msgstr "" "l’intérieur d’accolades ou non). S’il est donné, cela vous permet de définir " "définir des motifs entre accolades différents des motifs sans accolades." -#: ../Doc/library/string.rst:782 +#: ../Doc/library/string.rst:808 msgid "" "*flags* -- The regular expression flags that will be applied when compiling " "the regular expression used for recognizing substitutions. The default " @@ -1355,7 +1354,7 @@ msgstr "" "personnalisé doit suivre les conventions des expressions rationnelles " "*verbose*." -#: ../Doc/library/string.rst:790 +#: ../Doc/library/string.rst:816 msgid "" "Alternatively, you can provide the entire regular expression pattern by " "overriding the class attribute *pattern*. If you do this, the value must be " @@ -1369,7 +1368,7 @@ msgstr "" "noms. Les groupes de capture correspondent aux règles données au-dessus, " "ainsi qu'à la règle du substituant invalide :" -#: ../Doc/library/string.rst:796 +#: ../Doc/library/string.rst:822 msgid "" "*escaped* -- This group matches the escape sequence, e.g. ``$$``, in the " "default pattern." @@ -1377,7 +1376,7 @@ msgstr "" "*escaped* -- Ce groupe lie les séquences échappées (par exemple ``$$``) dans " "le motif par défaut." -#: ../Doc/library/string.rst:799 +#: ../Doc/library/string.rst:825 msgid "" "*named* -- This group matches the unbraced placeholder name; it should not " "include the delimiter in capturing group." @@ -1385,7 +1384,7 @@ msgstr "" "*named* -- Ce groupe lie les substituants non entourés d'accolades ; il ne " "devrait pas inclure le délimiteur dans le groupe de capture." -#: ../Doc/library/string.rst:802 +#: ../Doc/library/string.rst:828 msgid "" "*braced* -- This group matches the brace enclosed placeholder name; it " "should not include either the delimiter or braces in the capturing group." @@ -1393,7 +1392,7 @@ msgstr "" "*braced* -- Ce groupe lie le nom entouré d'accolades ; il ne devrait inclure " "ni le délimiteur, ni les accolades dans le groupe de capture." -#: ../Doc/library/string.rst:805 +#: ../Doc/library/string.rst:831 msgid "" "*invalid* -- This group matches any other delimiter pattern (usually a " "single delimiter), and it should appear last in the regular expression." @@ -1402,11 +1401,11 @@ msgstr "" "un seul délimiteur) et il devrait apparaître en dernier dans l'expression " "rationnelle." -#: ../Doc/library/string.rst:810 +#: ../Doc/library/string.rst:836 msgid "Helper functions" msgstr "Fonctions d'assistance" -#: ../Doc/library/string.rst:814 +#: ../Doc/library/string.rst:840 msgid "" "Split the argument into words using :meth:`str.split`, capitalize each word " "using :meth:`str.capitalize`, and join the capitalized words using :meth:" diff --git a/library/stringprep.po b/library/stringprep.po index 1cd055e63..533c710f0 100644 --- a/library/stringprep.po +++ b/library/stringprep.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\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" +"PO-Revision-Date: 2019-02-26 16:13+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -16,11 +16,11 @@ msgstr "" #: ../Doc/library/stringprep.rst:2 msgid ":mod:`stringprep` --- Internet String Preparation" -msgstr "" +msgstr ":mod:`stringprep` — Préparation des chaines de caractères internet" #: ../Doc/library/stringprep.rst:10 msgid "**Source code:** :source:`Lib/stringprep.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/stringprep.py`" #: ../Doc/library/stringprep.rst:14 msgid "" @@ -31,6 +31,13 @@ msgid "" "possible identifications, to allow only identifications consisting of " "\"printable\" characters." msgstr "" +"Nommer les différentes choses d'internet (comme les hôtes) amène souvent au " +"besoin de comparer ces identifiants, ce qui nécessite un critère " +"d'« égalité ». La manière dont cette comparaison est effectuée dépend du " +"domaine d'application, c'est-à-dire si elle doit être sensible à la casse ou " +"non. Il peut être aussi nécessaire de restreindre les identifiants " +"possibles, pour permettre uniquement les identifiants composés de caractères " +"« imprimables »." #: ../Doc/library/stringprep.rst:21 msgid "" @@ -43,6 +50,15 @@ msgid "" "``stringprep`` profile is ``nameprep``, which is used for internationalized " "domain names." msgstr "" +"La :rfc:`3454` définit une procédure pour \"préparer\" des chaines de " +"caractères Unicode dans les protocoles internet. Avant de passer des chaines " +"de caractères sur le câble, elles sont traitées avec la procédure de " +"préparation, après laquelle ils obtiennent une certaines forme normalisée. " +"Les RFC définissent un lot de tables, qui peuvent être combinées en profils. " +"Chaque profil doit définir quelles tables il utilise et quelles autres " +"parties optionnelles de la procédure *stringprep* font partie du profil. Un " +"exemple de profil *stringprep* est *nameprep*, qui est utilisé pour les noms " +"de domaine internationalisés." #: ../Doc/library/stringprep.rst:29 msgid "" @@ -51,6 +67,11 @@ msgid "" "the module uses the Unicode character database internally. The module source " "code itself was generated using the ``mkstringprep.py`` utility." msgstr "" +"Le module :mod:`stringprep` expose uniquement les tables de la :rfc:`3454`. " +"Comme ces tables seraient très grandes à représenter en tant que " +"dictionnaires ou listes, le module utilise, en interne, la base de données " +"des caractères Unicode. Le code source du module, lui-même, a été généré en " +"utilisant l'utilitaire ``mkstringprep.py``." #: ../Doc/library/stringprep.rst:34 msgid "" @@ -61,100 +82,135 @@ msgid "" "the mapping function: given the key, it returns the associated value. Below " "is a list of all functions available in the module." msgstr "" +"En conséquence, ces tables sont exposées en tant que fonctions et non en " +"structures de données. Il y a deux types de tables dans la RFC : les " +"ensemble et les mises en correspondance. Pour un ensemble, :mod:`stringprep` " +"fournit la \"fonction caractéristique\", c'est-à-dire une fonction qui " +"renvoie vrai si le paramètre fait partie de l'ensemble. Pour les mises en " +"correspondance, il fournit la fonction de mise en correspondance : ayant " +"obtenu la clé, il renvoie la valeur associée. Ci-dessous se trouve une liste " +"de toutes les fonctions disponibles dans le module." #: ../Doc/library/stringprep.rst:44 msgid "" "Determine whether *code* is in tableA.1 (Unassigned code points in Unicode " "3.2)." msgstr "" +"Détermine si le code est en table A.1 (points de code non-assigné dans " +"Unicode 3.2)." #: ../Doc/library/stringprep.rst:49 msgid "Determine whether *code* is in tableB.1 (Commonly mapped to nothing)." msgstr "" +"Détermine si le code est en table B.1 (habituellement mis en correspondance " +"avec rien)." #: ../Doc/library/stringprep.rst:54 msgid "" "Return the mapped value for *code* according to tableB.2 (Mapping for case-" "folding used with NFKC)." msgstr "" +"Renvoie la valeur correspondante à *code* selon la table B.2 (mise en " +"correspondance pour la gestion de la casse utilisée avec *NFKC*)." #: ../Doc/library/stringprep.rst:60 msgid "" "Return the mapped value for *code* according to tableB.3 (Mapping for case-" "folding used with no normalization)." msgstr "" +"Renvoie la valeur correspondante à *code* dans la table B.3 (mise en " +"correspondance pour la gestion de la casse utilisée sans normalisation)." #: ../Doc/library/stringprep.rst:66 msgid "Determine whether *code* is in tableC.1.1 (ASCII space characters)." msgstr "" +"Détermine si le code est dans la table C.1.1 (caractères d'espacement ASCII)." #: ../Doc/library/stringprep.rst:71 msgid "" "Determine whether *code* is in tableC.1.2 (Non-ASCII space characters)." msgstr "" +"Détermine si le code est dans la table C.1.2 (caractères d'espacement non " +"ASCII)." #: ../Doc/library/stringprep.rst:76 msgid "" "Determine whether *code* is in tableC.1 (Space characters, union of C.1.1 " "and C.1.2)." msgstr "" +"Détermine si le code est dans la table C.1 (caractères d'espacement, union " +"de C.1.1 et C.1.2)." #: ../Doc/library/stringprep.rst:82 msgid "Determine whether *code* is in tableC.2.1 (ASCII control characters)." msgstr "" +"Détermine si le code est dans la table C.2.1 (caractères de contrôle ASCII)." #: ../Doc/library/stringprep.rst:87 msgid "" "Determine whether *code* is in tableC.2.2 (Non-ASCII control characters)." msgstr "" +"Détermine si le code est en table C.2.2 (caractères de contrôle non ASCII)." #: ../Doc/library/stringprep.rst:92 msgid "" "Determine whether *code* is in tableC.2 (Control characters, union of C.2.1 " "and C.2.2)." msgstr "" +"Détermine si le code est dans la table C.2 (caractères de contrôle, union de " +"C.2.1 et C.2.2)." #: ../Doc/library/stringprep.rst:98 msgid "Determine whether *code* is in tableC.3 (Private use)." -msgstr "" +msgstr "Détermine si le code est en table C.3 (usage privé)." #: ../Doc/library/stringprep.rst:103 msgid "Determine whether *code* is in tableC.4 (Non-character code points)." msgstr "" +"Détermine si le code est dans la table C.4 (points de code non-caractère)." #: ../Doc/library/stringprep.rst:108 msgid "Determine whether *code* is in tableC.5 (Surrogate codes)." -msgstr "" +msgstr "Détermine si le code est en table C.5 (codes substituts)." #: ../Doc/library/stringprep.rst:113 msgid "" "Determine whether *code* is in tableC.6 (Inappropriate for plain text)." msgstr "" +"Détermine si le code est dans la table C.6 (Inapproprié pour texte brut)." #: ../Doc/library/stringprep.rst:118 msgid "" "Determine whether *code* is in tableC.7 (Inappropriate for canonical " "representation)." msgstr "" +"Détermine si le code est dans la table C.7 (inapproprié pour les " +"représentations *canonics1*)." #: ../Doc/library/stringprep.rst:124 msgid "" "Determine whether *code* is in tableC.8 (Change display properties or are " "deprecated)." msgstr "" +"Détermine si le code est dans la table C.8 (change de propriétés d'affichage " +"ou sont obsolètes)." #: ../Doc/library/stringprep.rst:130 msgid "Determine whether *code* is in tableC.9 (Tagging characters)." -msgstr "" +msgstr "Détermine si le code est dans la table C.9 (caractères de marquage)." #: ../Doc/library/stringprep.rst:135 msgid "" "Determine whether *code* is in tableD.1 (Characters with bidirectional " "property \"R\" or \"AL\")." msgstr "" +"Détermine si le code est en table D.1 (caractères avec propriété " +"bidirectionnelle \"R\" ou \"AL\")." #: ../Doc/library/stringprep.rst:141 msgid "" "Determine whether *code* is in tableD.2 (Characters with bidirectional " "property \"L\")." msgstr "" +"Détermine si le code est dans la table D.2 (caractères avec propriété " +"bidirectionnelle \"L\")." diff --git a/library/struct.po b/library/struct.po index 40c062f0b..8f87d939f 100644 --- a/library/struct.po +++ b/library/struct.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2017-08-10 00:55+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -18,10 +18,12 @@ msgstr "" #: ../Doc/library/struct.rst:2 msgid ":mod:`struct` --- Interpret bytes as packed binary data" msgstr "" +":mod:`struct` — manipulation de données agrégées sous forme binaire comme " +"une séquence d'octets" #: ../Doc/library/struct.rst:7 msgid "**Source code:** :source:`Lib/struct.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/struct.py`" #: ../Doc/library/struct.rst:15 msgid "" @@ -32,6 +34,13 @@ msgid "" "the layout of the C structs and the intended conversion to/from Python " "values." msgstr "" +"Ce module effectue des conversions entre des valeurs Python et des " +"structures C représentées sous la forme de :class:`bytes` (séquences " +"d'octets) Python. Cela permet, entre autres, de manipuler des données " +"agrégées sous forme binaire dans des fichiers ou à travers des connecteurs " +"réseau. Il utilise :ref:`les chaînes de spécification de format ` comme description de l'agencement des structures afin de " +"réaliser les conversions depuis et vers les valeurs Python." #: ../Doc/library/struct.rst:23 msgid "" @@ -43,6 +52,15 @@ msgid "" "or omit implicit pad bytes, use ``standard`` size and alignment instead of " "``native`` size and alignment: see :ref:`struct-alignment` for details." msgstr "" +"par défaut, le résultat de l'agrégation d'une structure C donnée comprend " +"des octets de bourrage afin de maintenir un alignement correct des types C " +"sous-jacents ; de la même manière, l'alignement est pris en compte lors de " +"la dissociation. Ce comportement a été choisi de manière à ce que les octets " +"d'une structure agrégée reproduisent exactement l'agencement en mémoire de " +"la structure C équivalente. Pour gérer des formats de données indépendants " +"de la plateforme ou omettre les octets implicites de bourrage, utilisez la " +"taille et l'alignement ``standard`` en lieu et place de la taille et " +"l'alignement ``native`` (voir :ref:`struct-alignment` pour les détails)." #: ../Doc/library/struct.rst:31 msgid "" @@ -54,20 +72,30 @@ msgid "" "implement the buffer protocol, so that they can be read/filled without " "additional copying from a :class:`bytes` object." msgstr "" +"Plusieurs fonctions de :mod:`struct` (et méthodes de :class:`Struct`) " +"prennent un argument *buffer*. Cet argument fait référence à des objets qui " +"implémentent :ref:`le protocole tampon ` et qui proposent un " +"tampon soit en lecture seule, soit en lecture-écriture. Les types les plus " +"courants qui utilisent cette fonctionnalité sont :class:`bytes` et :class:" +"`bytearray`, mais beaucoup d'autres types qui peuvent être considérés comme " +"des tableaux d'octets implémentent le protocole tampon ; ils peuvent ainsi " +"être lus ou remplis depuis un objet :class:`bytes` sans faire de copie." #: ../Doc/library/struct.rst:40 msgid "Functions and Exceptions" -msgstr "" +msgstr "Fonctions et exceptions" #: ../Doc/library/struct.rst:42 msgid "The module defines the following exception and functions:" -msgstr "" +msgstr "Le module définit les exceptions et fonctions suivantes :" #: ../Doc/library/struct.rst:47 msgid "" "Exception raised on various occasions; argument is a string describing what " "is wrong." msgstr "" +"Exception levée à plusieurs occasions ; l'argument est une chaîne qui décrit " +"ce qui ne va pas." #: ../Doc/library/struct.rst:53 msgid "" @@ -75,6 +103,9 @@ msgid "" "to the format string *format*. The arguments must match the values required " "by the format exactly." msgstr "" +"Renvoie un objet *bytes* contenant les valeurs *v1*, *v2*… agrégées " +"conformément à la chaîne de format *format*. Les arguments doivent " +"correspondre exactement aux valeurs requises par le format." #: ../Doc/library/struct.rst:60 msgid "" @@ -82,6 +113,9 @@ msgid "" "write the packed bytes into the writable buffer *buffer* starting at " "position *offset*. Note that *offset* is a required argument." msgstr "" +"Agrège les valeurs *v1*, *v2*… conformément à la chaîne de format *format* " +"et écrit les octets agrégés dans le tampon *buffer*, en commençant à la " +"position *offset*. Notez que *offset* est un argument obligatoire." #: ../Doc/library/struct.rst:67 msgid "" @@ -90,6 +124,11 @@ msgid "" "contains exactly one item. The buffer's size in bytes must match the size " "required by the format, as reflected by :func:`calcsize`." msgstr "" +"Dissocie depuis le tampon *buffer* (en supposant que celui-ci a été agrégé " +"avec ``pack(format, …)``) à l'aide de la chaîne de format *format*. Le " +"résultat est un n-uplet, qui peut éventuellement ne contenir qu'un seul " +"élément. La taille de *buffer* en octets doit correspondre à la taille " +"requise par le format, telle que calculée par :func:`calcsize`." #: ../Doc/library/struct.rst:75 msgid "" @@ -107,20 +146,28 @@ msgid "" "buffer's size in bytes must be a multiple of the size required by the " "format, as reflected by :func:`calcsize`." msgstr "" +"Dissocie de manière itérative les éléments du tampon *buffer* conformément à " +"la chaîne de format *format*. Cette fonction renvoie un itérateur qui lit " +"des morceaux de taille fixe dans le tampon jusqu'à ce que tout le contenu " +"ait été consommé. La taille du tampon en octets doit être un multiple de la " +"taille requise par le format, telle que calculée par :func:`calcsize`." #: ../Doc/library/struct.rst:89 msgid "Each iteration yields a tuple as specified by the format string." msgstr "" +"Chaque itération produit un n-uplet tel que spécifié par la chaîne de format." #: ../Doc/library/struct.rst:96 msgid "" "Return the size of the struct (and hence of the bytes object produced by " "``pack(format, ...)``) corresponding to the format string *format*." msgstr "" +"Renvoie la taille de la structure (et donc celle de l'objet *bytes* produit " +"par ``pack(format, ...)``) correspondant à la chaîne de format *format*." #: ../Doc/library/struct.rst:103 msgid "Format Strings" -msgstr "" +msgstr "Chaînes de spécification du format" #: ../Doc/library/struct.rst:105 msgid "" @@ -130,10 +177,16 @@ msgid "" "addition, there are special characters for controlling the :ref:`struct-" "alignment`." msgstr "" +"Les chaînes de spécification du format servent à définir l'agencement lors " +"de l'agrégation et la dissociation des données. Elles sont construites à " +"partir de :ref:`caractères de format `, qui spécifient le " +"type de donnée à agréger-dissocier. De plus, il existe des caractères " +"spéciaux pour contrôler :ref:`le boutisme, la taille et l'alignement `." #: ../Doc/library/struct.rst:114 msgid "Byte Order, Size, and Alignment" -msgstr "" +msgstr "Boutisme, taille et alignement" #: ../Doc/library/struct.rst:116 msgid "" @@ -141,81 +194,89 @@ msgid "" "order, and properly aligned by skipping pad bytes if necessary (according to " "the rules used by the C compiler)." msgstr "" +"Par défaut, les types C sont représentés dans le format et le boutisme " +"natifs de la machine ; ils sont alignés correctement en sautant des octets " +"si nécessaire (en fonction des règles utilisées par le compilateur C)." -#: ../Doc/library/struct.rst:120 +#: ../Doc/library/struct.rst:127 msgid "" "Alternatively, the first character of the format string can be used to " "indicate the byte order, size and alignment of the packed data, according to " "the following table:" msgstr "" +"Cependant, le premier caractère de la chaîne de format peut être utilisé " +"pour indiquer le boutisme, la taille et l'alignement des données agrégées, " +"conformément à la table suivante :" -#: ../Doc/library/struct.rst:125 +#: ../Doc/library/struct.rst:132 msgid "Character" msgstr "Caractère" -#: ../Doc/library/struct.rst:125 +#: ../Doc/library/struct.rst:132 msgid "Byte order" -msgstr "" +msgstr "Boutisme" -#: ../Doc/library/struct.rst:125 +#: ../Doc/library/struct.rst:132 msgid "Size" -msgstr "" +msgstr "Taille" -#: ../Doc/library/struct.rst:125 +#: ../Doc/library/struct.rst:132 msgid "Alignment" -msgstr "" +msgstr "Alignement" -#: ../Doc/library/struct.rst:127 +#: ../Doc/library/struct.rst:134 msgid "``@``" msgstr "``@``" -#: ../Doc/library/struct.rst:127 ../Doc/library/struct.rst:129 +#: ../Doc/library/struct.rst:134 ../Doc/library/struct.rst:136 msgid "native" -msgstr "" +msgstr "natif" -#: ../Doc/library/struct.rst:129 +#: ../Doc/library/struct.rst:136 msgid "``=``" msgstr "``=``" -#: ../Doc/library/struct.rst:129 ../Doc/library/struct.rst:131 -#: ../Doc/library/struct.rst:133 ../Doc/library/struct.rst:135 +#: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 +#: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 msgid "standard" -msgstr "" +msgstr "standard" -#: ../Doc/library/struct.rst:129 ../Doc/library/struct.rst:131 -#: ../Doc/library/struct.rst:133 ../Doc/library/struct.rst:135 +#: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 +#: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 msgid "none" -msgstr "" +msgstr "aucun" -#: ../Doc/library/struct.rst:131 +#: ../Doc/library/struct.rst:138 msgid "``<``" msgstr "``<``" -#: ../Doc/library/struct.rst:131 +#: ../Doc/library/struct.rst:138 msgid "little-endian" -msgstr "" +msgstr "petit-boutiste" -#: ../Doc/library/struct.rst:133 +#: ../Doc/library/struct.rst:140 msgid "``>``" msgstr "``>``" -#: ../Doc/library/struct.rst:133 +#: ../Doc/library/struct.rst:140 msgid "big-endian" -msgstr "" +msgstr "gros-boutiste" -#: ../Doc/library/struct.rst:135 +#: ../Doc/library/struct.rst:142 msgid "``!``" msgstr "``!``" -#: ../Doc/library/struct.rst:135 +#: ../Doc/library/struct.rst:142 msgid "network (= big-endian)" -msgstr "" +msgstr "réseau (= gros-boutiste)" -#: ../Doc/library/struct.rst:138 +#: ../Doc/library/struct.rst:145 msgid "If the first character is not one of these, ``'@'`` is assumed." msgstr "" +"Si le premier caractère n'est pas dans cette liste, le module se comporte " +"comme si ``'@'`` avait été indiqué." -#: ../Doc/library/struct.rst:140 +#: ../Doc/library/struct.rst:147 msgid "" "Native byte order is big-endian or little-endian, depending on the host " "system. For example, Intel x86 and AMD64 (x86-64) are little-endian; " @@ -223,65 +284,91 @@ msgid "" "switchable endianness (bi-endian). Use ``sys.byteorder`` to check the " "endianness of your system." msgstr "" +"Le boutisme natif est gros-boutiste ou petit-boutiste, en fonction de la " +"machine sur laquelle s'exécute le programme. Par exemple, les Intel x86 et " +"les AMD64 (x86-64) sont petit-boutistes ; les Motorola 68000 et les *PowerPC " +"G5* sont gros-boutistes ; les ARM et les Intel Itanium peuvent changer de " +"boutisme. Utilisez ``sys.byteorder`` pour vérifier le boutisme de votre " +"système." -#: ../Doc/library/struct.rst:146 +#: ../Doc/library/struct.rst:153 msgid "" "Native size and alignment are determined using the C compiler's ``sizeof`` " "expression. This is always combined with native byte order." msgstr "" +"La taille et l'alignement natifs sont déterminés en utilisant l'expression " +"``sizeof`` du compilateur C. Leur valeur est toujours combinée au boutisme " +"natif." -#: ../Doc/library/struct.rst:149 +#: ../Doc/library/struct.rst:156 msgid "" "Standard size depends only on the format character; see the table in the :" "ref:`format-characters` section." msgstr "" +"La taille standard dépend seulement du caractère du format ; référez-vous au " +"tableau dans la section :ref:`format-characters`." -#: ../Doc/library/struct.rst:152 +#: ../Doc/library/struct.rst:159 msgid "" "Note the difference between ``'@'`` and ``'='``: both use native byte order, " "but the size and alignment of the latter is standardized." msgstr "" +"Notez la différence entre ``'@'`` et ``'='`` : les deux utilisent le " +"boutisme natif mais la taille et l'alignement du dernier sont standards." -#: ../Doc/library/struct.rst:155 +#: ../Doc/library/struct.rst:162 msgid "" "The form ``'!'`` is available for those poor souls who claim they can't " "remember whether network byte order is big-endian or little-endian." msgstr "" +"La forme ``'!'`` existe pour les têtes en l'air qui prétendent ne pas se " +"rappeler si le boutisme réseau est gros-boutiste ou petit-boutiste." -#: ../Doc/library/struct.rst:158 +#: ../Doc/library/struct.rst:165 msgid "" "There is no way to indicate non-native byte order (force byte-swapping); use " "the appropriate choice of ``'<'`` or ``'>'``." msgstr "" +"Il n'y a pas de moyen de spécifier le boutisme contraire au boutisme natif " +"(c'est-à-dire forcer la permutation des octets) ; utilisez le bon caractère " +"entre ``'<'`` et ``'>'``." -#: ../Doc/library/struct.rst:161 ../Doc/library/struct.rst:240 +#: ../Doc/library/struct.rst:168 ../Doc/library/struct.rst:247 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/struct.rst:163 +#: ../Doc/library/struct.rst:170 msgid "" "Padding is only automatically added between successive structure members. No " "padding is added at the beginning or the end of the encoded struct." msgstr "" +"Le bourrage (*padding* en anglais) n'est automatiquement ajouté qu'entre les " +"membres successifs de la structure. Il n'y a pas de bourrage au début ou à " +"la fin de la structure agrégée." -#: ../Doc/library/struct.rst:166 +#: ../Doc/library/struct.rst:173 msgid "" "No padding is added when using non-native size and alignment, e.g. with '<', " "'>', '=', and '!'." msgstr "" +"Il n'y a pas d'ajout de bourrage lorsque vous utilisez une taille et un " +"alignement non-natifs, par exemple avec `<`, `'>', `=` ou `!`." -#: ../Doc/library/struct.rst:169 +#: ../Doc/library/struct.rst:176 msgid "" "To align the end of a structure to the alignment requirement of a particular " "type, end the format with the code for that type with a repeat count of " "zero. See :ref:`struct-examples`." msgstr "" +"Pour aligner la fin d'une structure à l'alignement requis par un type " +"particulier, terminez le format avec le code du type voulu et une valeur de " +"répétition à zéro. Référez-vous à :ref:`struct-examples`." -#: ../Doc/library/struct.rst:177 +#: ../Doc/library/struct.rst:184 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" -#: ../Doc/library/struct.rst:179 +#: ../Doc/library/struct.rst:186 msgid "" "Format characters have the following meaning; the conversion between C and " "Python values should be obvious given their types. The 'Standard size' " @@ -290,325 +377,347 @@ msgid "" "``'!'`` or ``'='``. When using native size, the size of the packed value is " "platform-dependent." msgstr "" +"Les caractères de format possèdent les significations suivantes ; la " +"conversion entre les valeurs C et Python doit être évidente compte tenu des " +"types concernés. La colonne « taille standard » fait référence à la taille " +"en octets de la valeur agrégée avec l'utilisation de la taille standard " +"(c'est-à-dire lorsque la chaîne de format commence par l'un des caractères " +"suivants : ``'<'``, ``'>'``, ``'!'`` ou ``'='``). Si vous utilisez la taille " +"native, la taille de la valeur agrégée dépend de la plateforme." -#: ../Doc/library/struct.rst:187 +#: ../Doc/library/struct.rst:194 msgid "Format" msgstr "Format" -#: ../Doc/library/struct.rst:187 +#: ../Doc/library/struct.rst:194 msgid "C Type" msgstr "Type C" -#: ../Doc/library/struct.rst:187 +#: ../Doc/library/struct.rst:194 msgid "Python type" msgstr "Type Python" -#: ../Doc/library/struct.rst:187 +#: ../Doc/library/struct.rst:194 msgid "Standard size" -msgstr "" +msgstr "Taille standard" -#: ../Doc/library/struct.rst:187 +#: ../Doc/library/struct.rst:194 msgid "Notes" msgstr "Notes" -#: ../Doc/library/struct.rst:189 +#: ../Doc/library/struct.rst:196 msgid "``x``" msgstr "``x``" -#: ../Doc/library/struct.rst:189 +#: ../Doc/library/struct.rst:196 msgid "pad byte" -msgstr "" +msgstr "octet de bourrage" -#: ../Doc/library/struct.rst:189 +#: ../Doc/library/struct.rst:196 msgid "no value" -msgstr "" +msgstr "pas de valeur" -#: ../Doc/library/struct.rst:191 +#: ../Doc/library/struct.rst:198 msgid "``c``" msgstr "``c``" -#: ../Doc/library/struct.rst:191 +#: ../Doc/library/struct.rst:198 msgid ":c:type:`char`" msgstr ":c:type:`char`" -#: ../Doc/library/struct.rst:191 +#: ../Doc/library/struct.rst:198 msgid "bytes of length 1" -msgstr "" +msgstr "*bytes* (suite d'octets) de taille 1" -#: ../Doc/library/struct.rst:191 ../Doc/library/struct.rst:193 -#: ../Doc/library/struct.rst:195 ../Doc/library/struct.rst:197 +#: ../Doc/library/struct.rst:198 ../Doc/library/struct.rst:200 +#: ../Doc/library/struct.rst:202 ../Doc/library/struct.rst:204 msgid "1" msgstr "1" -#: ../Doc/library/struct.rst:193 +#: ../Doc/library/struct.rst:200 msgid "``b``" msgstr "``b``" -#: ../Doc/library/struct.rst:193 +#: ../Doc/library/struct.rst:200 msgid ":c:type:`signed char`" msgstr ":c:type:`signed char`" -#: ../Doc/library/struct.rst:193 ../Doc/library/struct.rst:195 -#: ../Doc/library/struct.rst:199 ../Doc/library/struct.rst:201 -#: ../Doc/library/struct.rst:203 ../Doc/library/struct.rst:205 -#: ../Doc/library/struct.rst:207 ../Doc/library/struct.rst:209 -#: ../Doc/library/struct.rst:211 ../Doc/library/struct.rst:213 -#: ../Doc/library/struct.rst:216 ../Doc/library/struct.rst:218 -#: ../Doc/library/struct.rst:230 +#: ../Doc/library/struct.rst:200 ../Doc/library/struct.rst:202 +#: ../Doc/library/struct.rst:206 ../Doc/library/struct.rst:208 +#: ../Doc/library/struct.rst:210 ../Doc/library/struct.rst:212 +#: ../Doc/library/struct.rst:214 ../Doc/library/struct.rst:216 +#: ../Doc/library/struct.rst:218 ../Doc/library/struct.rst:220 +#: ../Doc/library/struct.rst:223 ../Doc/library/struct.rst:225 +#: ../Doc/library/struct.rst:237 msgid "integer" -msgstr "" +msgstr "*int* (entier)" -#: ../Doc/library/struct.rst:193 +#: ../Doc/library/struct.rst:200 msgid "\\(1),\\(3)" msgstr "\\(1),\\(3)" -#: ../Doc/library/struct.rst:195 +#: ../Doc/library/struct.rst:202 msgid "``B``" msgstr "``B``" -#: ../Doc/library/struct.rst:195 +#: ../Doc/library/struct.rst:202 msgid ":c:type:`unsigned char`" msgstr ":c:type:`unsigned char`" -#: ../Doc/library/struct.rst:195 ../Doc/library/struct.rst:199 -#: ../Doc/library/struct.rst:201 ../Doc/library/struct.rst:203 -#: ../Doc/library/struct.rst:205 ../Doc/library/struct.rst:207 -#: ../Doc/library/struct.rst:209 +#: ../Doc/library/struct.rst:202 ../Doc/library/struct.rst:206 +#: ../Doc/library/struct.rst:208 ../Doc/library/struct.rst:210 +#: ../Doc/library/struct.rst:212 ../Doc/library/struct.rst:214 +#: ../Doc/library/struct.rst:216 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/struct.rst:197 +#: ../Doc/library/struct.rst:204 msgid "``?``" msgstr "``?``" -#: ../Doc/library/struct.rst:197 +#: ../Doc/library/struct.rst:204 msgid ":c:type:`_Bool`" msgstr ":c:type:`_Bool`" -#: ../Doc/library/struct.rst:197 +#: ../Doc/library/struct.rst:204 msgid "bool" -msgstr "bool" +msgstr "*bool* (booléen)" -#: ../Doc/library/struct.rst:197 +#: ../Doc/library/struct.rst:204 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/struct.rst:199 +#: ../Doc/library/struct.rst:206 msgid "``h``" msgstr "``h``" -#: ../Doc/library/struct.rst:199 +#: ../Doc/library/struct.rst:206 msgid ":c:type:`short`" msgstr ":c:type:`short`" -#: ../Doc/library/struct.rst:199 ../Doc/library/struct.rst:201 -#: ../Doc/library/struct.rst:220 +#: ../Doc/library/struct.rst:206 ../Doc/library/struct.rst:208 +#: ../Doc/library/struct.rst:227 msgid "2" msgstr "2" -#: ../Doc/library/struct.rst:201 +#: ../Doc/library/struct.rst:208 msgid "``H``" msgstr "``H``" -#: ../Doc/library/struct.rst:201 +#: ../Doc/library/struct.rst:208 msgid ":c:type:`unsigned short`" msgstr ":c:type:`unsigned short`" -#: ../Doc/library/struct.rst:203 +#: ../Doc/library/struct.rst:210 msgid "``i``" msgstr "``i``" -#: ../Doc/library/struct.rst:203 +#: ../Doc/library/struct.rst:210 msgid ":c:type:`int`" msgstr ":c:type:`int`" -#: ../Doc/library/struct.rst:203 ../Doc/library/struct.rst:205 -#: ../Doc/library/struct.rst:207 ../Doc/library/struct.rst:209 -#: ../Doc/library/struct.rst:222 +#: ../Doc/library/struct.rst:210 ../Doc/library/struct.rst:212 +#: ../Doc/library/struct.rst:214 ../Doc/library/struct.rst:216 +#: ../Doc/library/struct.rst:229 msgid "4" msgstr "4" -#: ../Doc/library/struct.rst:205 +#: ../Doc/library/struct.rst:212 msgid "``I``" msgstr "``I``" -#: ../Doc/library/struct.rst:205 +#: ../Doc/library/struct.rst:212 msgid ":c:type:`unsigned int`" msgstr ":c:type:`unsigned int`" -#: ../Doc/library/struct.rst:207 +#: ../Doc/library/struct.rst:214 msgid "``l``" msgstr "``l``" -#: ../Doc/library/struct.rst:207 +#: ../Doc/library/struct.rst:214 msgid ":c:type:`long`" msgstr ":c:type:`long`" -#: ../Doc/library/struct.rst:209 +#: ../Doc/library/struct.rst:216 msgid "``L``" msgstr "``L``" -#: ../Doc/library/struct.rst:209 +#: ../Doc/library/struct.rst:216 msgid ":c:type:`unsigned long`" msgstr ":c:type:`unsigned long`" -#: ../Doc/library/struct.rst:211 +#: ../Doc/library/struct.rst:218 msgid "``q``" msgstr "``q``" -#: ../Doc/library/struct.rst:211 +#: ../Doc/library/struct.rst:218 msgid ":c:type:`long long`" msgstr ":c:type:`long long`" -#: ../Doc/library/struct.rst:211 ../Doc/library/struct.rst:213 -#: ../Doc/library/struct.rst:224 +#: ../Doc/library/struct.rst:218 ../Doc/library/struct.rst:220 +#: ../Doc/library/struct.rst:231 msgid "8" msgstr "8" -#: ../Doc/library/struct.rst:211 ../Doc/library/struct.rst:213 +#: ../Doc/library/struct.rst:218 ../Doc/library/struct.rst:220 msgid "\\(2), \\(3)" msgstr "\\(2), \\(3)" -#: ../Doc/library/struct.rst:213 +#: ../Doc/library/struct.rst:220 msgid "``Q``" msgstr "``Q``" -#: ../Doc/library/struct.rst:213 +#: ../Doc/library/struct.rst:220 msgid ":c:type:`unsigned long long`" msgstr ":c:type:`unsigned long long`" -#: ../Doc/library/struct.rst:216 +#: ../Doc/library/struct.rst:223 msgid "``n``" msgstr "``n``" -#: ../Doc/library/struct.rst:216 +#: ../Doc/library/struct.rst:223 msgid ":c:type:`ssize_t`" msgstr ":c:type:`ssize_t`" -#: ../Doc/library/struct.rst:216 ../Doc/library/struct.rst:218 +#: ../Doc/library/struct.rst:223 ../Doc/library/struct.rst:225 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/library/struct.rst:218 +#: ../Doc/library/struct.rst:225 msgid "``N``" msgstr "``N``" -#: ../Doc/library/struct.rst:218 +#: ../Doc/library/struct.rst:225 msgid ":c:type:`size_t`" msgstr ":c:type:`size_t`" -#: ../Doc/library/struct.rst:220 +#: ../Doc/library/struct.rst:227 msgid "``e``" -msgstr "" +msgstr "``e``" -#: ../Doc/library/struct.rst:220 +#: ../Doc/library/struct.rst:227 msgid "\\(7)" msgstr "\\(7)" -#: ../Doc/library/struct.rst:220 ../Doc/library/struct.rst:222 -#: ../Doc/library/struct.rst:224 +#: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 +#: ../Doc/library/struct.rst:231 msgid "float" -msgstr "*float*" +msgstr "*float* (nombre à virgule flottante)" -#: ../Doc/library/struct.rst:220 ../Doc/library/struct.rst:222 -#: ../Doc/library/struct.rst:224 +#: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 +#: ../Doc/library/struct.rst:231 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/library/struct.rst:222 +#: ../Doc/library/struct.rst:229 msgid "``f``" msgstr "``f``" -#: ../Doc/library/struct.rst:222 +#: ../Doc/library/struct.rst:229 msgid ":c:type:`float`" msgstr ":c:type:`float`" -#: ../Doc/library/struct.rst:224 +#: ../Doc/library/struct.rst:231 msgid "``d``" msgstr "``d``" -#: ../Doc/library/struct.rst:224 +#: ../Doc/library/struct.rst:231 msgid ":c:type:`double`" msgstr ":c:type:`double`" -#: ../Doc/library/struct.rst:226 +#: ../Doc/library/struct.rst:233 msgid "``s``" msgstr "``s``" -#: ../Doc/library/struct.rst:226 ../Doc/library/struct.rst:228 +#: ../Doc/library/struct.rst:233 ../Doc/library/struct.rst:235 msgid ":c:type:`char[]`" msgstr ":c:type:`char[]`" -#: ../Doc/library/struct.rst:226 ../Doc/library/struct.rst:228 +#: ../Doc/library/struct.rst:233 ../Doc/library/struct.rst:235 msgid "bytes" -msgstr "bytes" +msgstr "*bytes* (séquence d'octets)" -#: ../Doc/library/struct.rst:228 +#: ../Doc/library/struct.rst:235 msgid "``p``" msgstr "``p``" -#: ../Doc/library/struct.rst:230 +#: ../Doc/library/struct.rst:237 msgid "``P``" msgstr "``P``" -#: ../Doc/library/struct.rst:230 +#: ../Doc/library/struct.rst:237 msgid ":c:type:`void \\*`" msgstr ":c:type:`void \\*`" -#: ../Doc/library/struct.rst:230 +#: ../Doc/library/struct.rst:237 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/library/struct.rst:233 +#: ../Doc/library/struct.rst:240 msgid "Added support for the ``'n'`` and ``'N'`` formats." -msgstr "" +msgstr "ajouté la gestion des formats ``'n'`` et ``'N'``." -#: ../Doc/library/struct.rst:236 +#: ../Doc/library/struct.rst:243 msgid "Added support for the ``'e'`` format." -msgstr "" +msgstr "ajouté la gestion du format ``'e'``." -#: ../Doc/library/struct.rst:243 +#: ../Doc/library/struct.rst:252 msgid "" "The ``'?'`` conversion code corresponds to the :c:type:`_Bool` type defined " "by C99. If this type is not available, it is simulated using a :c:type:" "`char`. In standard mode, it is always represented by one byte." msgstr "" +"Le code de conversion ``'?'`` correspond au type :c:type:`_Bool` de C99. Si " +"ce type n'est pas disponible, il est simulé en utilisant un :c:type:`char`. " +"Dans le mode standard, il est toujours représenté par un octet." -#: ../Doc/library/struct.rst:248 +#: ../Doc/library/struct.rst:257 msgid "" "The ``'q'`` and ``'Q'`` conversion codes are available in native mode only " "if the platform C compiler supports C :c:type:`long long`, or, on Windows, :" "c:type:`__int64`. They are always available in standard modes." msgstr "" -#: ../Doc/library/struct.rst:253 +#: ../Doc/library/struct.rst:262 msgid "" "When attempting to pack a non-integer using any of the integer conversion " "codes, if the non-integer has a :meth:`__index__` method then that method is " "called to convert the argument to an integer before packing." msgstr "" +"Lorsque vous essayez d'agréger un non-entier en utilisant un code de " +"conversion pour un entier, si ce non-entier possède une méthode :meth:" +"`__index__` alors cette méthode est appelée pour convertir l'argument en " +"entier avant l'agrégation." -#: ../Doc/library/struct.rst:257 +#: ../Doc/library/struct.rst:266 msgid "Use of the :meth:`__index__` method for non-integers is new in 3.2." -msgstr "" +msgstr "utilisation de la méthode :meth:`__index__` pour les non-entiers. " -#: ../Doc/library/struct.rst:261 +#: ../Doc/library/struct.rst:270 msgid "" "The ``'n'`` and ``'N'`` conversion codes are only available for the native " "size (selected as the default or with the ``'@'`` byte order character). For " "the standard size, you can use whichever of the other integer formats fits " "your application." msgstr "" +"Les codes de conversion ``'n'`` et ``'N'`` ne sont disponibles que pour la " +"taille native (choisie par défaut ou à l'aide du caractère de boutisme " +"``'@'``). Pour la taille standard, vous pouvez utiliser n'importe quel " +"format d'entier qui convient à votre application." -#: ../Doc/library/struct.rst:267 +#: ../Doc/library/struct.rst:276 msgid "" "For the ``'f'``, ``'d'`` and ``'e'`` conversion codes, the packed " "representation uses the IEEE 754 binary32, binary64 or binary16 format (for " "``'f'``, ``'d'`` or ``'e'`` respectively), regardless of the floating-point " "format used by the platform." msgstr "" +"Pour les codes de conversion ``'f'``, ``'d'`` et ``'e'``, la représentation " +"agrégée utilise respectivement le format IEEE 754 *binaire32*, *binaire64* " +"ou *binaire16* (pour ``'f'``, ``'d'`` ou ``'e'`` respectivement), quel que " +"soit le format des nombres à virgule flottante de la plateforme." -#: ../Doc/library/struct.rst:273 +#: ../Doc/library/struct.rst:282 msgid "" "The ``'P'`` format character is only available for the native byte ordering " "(selected as the default or with the ``'@'`` byte order character). The byte " @@ -616,8 +725,13 @@ msgid "" "on the host system. The struct module does not interpret this as native " "ordering, so the ``'P'`` format is not available." msgstr "" +"Le caractère de format ``'P'`` n'est disponible que pour le boutisme natif " +"(choisi par défaut ou à l'aide du caractère ``'@'`` de boutisme). Le " +"caractère de boutisme ``'='`` choisit d'utiliser un petit ou un gros en " +"fonction du système hôte. Le module *struct* ne l'interprète pas comme un " +"boutisme natif, donc le format ``'P'`` n'est pas disponible." -#: ../Doc/library/struct.rst:280 +#: ../Doc/library/struct.rst:289 msgid "" "The IEEE 754 binary16 \"half precision\" type was introduced in the 2008 " "revision of the `IEEE 754 standard `_. It has a sign " @@ -628,20 +742,36 @@ msgid "" "operations. See the Wikipedia page on the `half-precision floating-point " "format `_ for more information." msgstr "" +"Le type IEEE 754 *binaire16* « demie-précision » a été introduit en 2008 par " +"la révision du `standard IEEE 754 `_. Il comprend un bit " +"de signe, un exposant sur 5 bits et une précision de 11 bits (dont 10 bits " +"sont explicitement stockés) ; il peut représenter les nombres entre environ " +"``6.1e-05`` et ``6.5e+04`` avec une précision maximale. Ce type est rarement " +"pris en charge par les compilateurs C : sur une machine courante, un " +"*unsigned short* (entier court non signé) peut être utilisé pour le stockage " +"mais pas pour les opérations mathématiques. Lisez la page Wikipédia (NdT : " +"non traduite en français) `half-precision floating-point format `_ pour davantage d'informations." -#: ../Doc/library/struct.rst:290 +#: ../Doc/library/struct.rst:299 msgid "" "A format character may be preceded by an integral repeat count. For " "example, the format string ``'4h'`` means exactly the same as ``'hhhh'``." msgstr "" +"Un caractère de format peut être précédé par un entier indiquant le nombre " +"de répétitions. Par exemple, la chaîne de format ``'4h'`` a exactement la " +"même signification que ``'hhhh'``." -#: ../Doc/library/struct.rst:293 +#: ../Doc/library/struct.rst:302 msgid "" "Whitespace characters between formats are ignored; a count and its format " "must not contain whitespace though." msgstr "" +"Les caractères d'espacement entre les indications de format sont ignorés ; " +"cependant, le nombre de répétitions et le format associé ne doivent pas être " +"séparés par des caractères d'espacement." -#: ../Doc/library/struct.rst:296 +#: ../Doc/library/struct.rst:305 msgid "" "For the ``'s'`` format character, the count is interpreted as the length of " "the bytes, not a repeat count like for the other format characters; for " @@ -652,22 +782,38 @@ msgid "" "number of bytes. As a special case, ``'0s'`` means a single, empty string " "(while ``'0c'`` means 0 characters)." msgstr "" +"Pour le caractère de format ``'s'``, un nombre en tête est interprété comme " +"la longueur du *bytes* et non comme le nombre de répétitions comme pour les " +"autres caractères de format ; par exemple, ``'10s'`` signifie une seule " +"chaîne de 10 octets alors que ``'10c'`` signifie 10 caractères. Si aucun " +"nombre n'est indiqué, la valeur par défaut est 1. Pour l'agrégation, la " +"chaîne est tronquée ou bourrée avec des octets nuls pour atteindre la taille " +"souhaitée. Pour la dissociation, l'objet *bytes* résultant possède le nombre " +"exact d'octets spécifiés. Un cas particulier est ``'0s'`` qui signifie une " +"chaîne (et une seule) vide (alors que ``'0c'`` signifie zéro caractère)." -#: ../Doc/library/struct.rst:305 +#: ../Doc/library/struct.rst:314 msgid "" "When packing a value ``x`` using one of the integer formats (``'b'``, " "``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, ``'L'``, ``'q'``, " "``'Q'``), if ``x`` is outside the valid range for that format then :exc:" "`struct.error` is raised." msgstr "" +"Lors de l'agrégation d'une valeur ``x`` en utilisant l'un des formats pour " +"les entiers (``'b'``, ``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, " +"``'L'``, ``'q'``, ``'Q'``), si ``x`` est en dehors de l'intervalle du format " +"spécifié, une :exc:`struct.error` est levée." -#: ../Doc/library/struct.rst:310 +#: ../Doc/library/struct.rst:319 msgid "" "In 3.0, some of the integer formats wrapped out-of-range values and raised :" "exc:`DeprecationWarning` instead of :exc:`struct.error`." msgstr "" +"auparavant, certains formats d'entiers absorbaient les valeurs en dehors des " +"intervalles valides et levaient une :exc:`DeprecationWarning` au lieu d'une :" +"exc:`struct.error`." -#: ../Doc/library/struct.rst:314 +#: ../Doc/library/struct.rst:323 msgid "" "The ``'p'`` format character encodes a \"Pascal string\", meaning a short " "variable-length string stored in a *fixed number of bytes*, given by the " @@ -680,135 +826,183 @@ msgid "" "consumes ``count`` bytes, but that the string returned can never contain " "more than 255 bytes." msgstr "" +"Le caractère de format ``'p'`` sert à encoder une « chaîne Pascal », c'est-à-" +"dire une courte chaîne de longueur variable, stockée dans un *nombre défini " +"d'octets* dont la valeur est définie par la répétition. Le premier octet " +"stocké est la longueur de la chaîne (dans la limite maximum de 255). Les " +"octets composant la chaîne suivent. Si la chaîne passée à :func:`pack` est " +"trop longue (supérieure à la valeur de la répétition moins 1), seuls les " +"``count-1`` premiers octets de la chaîne sont stockés. Si la chaîne est plus " +"courte que ``count-1``, des octets de bourrage nuls sont insérés de manière " +"à avoir exactement *count* octets au final. Notez que pour :func:`unpack`, " +"le caractère de format ``'p'`` consomme ``count`` octets mais que la chaîne " +"renvoyée ne peut pas excéder 255 octets." -#: ../Doc/library/struct.rst:325 +#: ../Doc/library/struct.rst:336 msgid "" "For the ``'?'`` format character, the return value is either :const:`True` " "or :const:`False`. When packing, the truth value of the argument object is " "used. Either 0 or 1 in the native or standard bool representation will be " "packed, and any non-zero value will be ``True`` when unpacking." msgstr "" +"Pour le caractère de format ``'?'``, la valeur renvoyée est :const:`True` " +"ou :const:`False`. Lors de l'agrégation, la valeur de vérité de l'objet " +"argument est utilisée. La valeur agrégée est 0 ou 1 dans la représentation " +"native ou standard et, lors de la dissociation, n'importe quelle valeur " +"différente de zéro est renvoyée ``True``." -#: ../Doc/library/struct.rst:335 +#: ../Doc/library/struct.rst:346 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/struct.rst:338 +#: ../Doc/library/struct.rst:349 msgid "" "All examples assume a native byte order, size, and alignment with a big-" "endian machine." msgstr "" +"tous les exemples présentés supposent que l'on utilise le boutisme, la " +"taille et l'alignement natifs sur une machine gros-boutiste." -#: ../Doc/library/struct.rst:341 +#: ../Doc/library/struct.rst:352 msgid "A basic example of packing/unpacking three integers::" -msgstr "" +msgstr "Un exemple de base d'agrégation et dissociation de trois entiers ::" -#: ../Doc/library/struct.rst:351 +#: ../Doc/library/struct.rst:362 msgid "" "Unpacked fields can be named by assigning them to variables or by wrapping " "the result in a named tuple::" msgstr "" +"Les champs dissociés peuvent être nommés en leur assignant des variables ou " +"en encapsulant le résultat dans un n-uplet nommé ::" -#: ../Doc/library/struct.rst:362 +#: ../Doc/library/struct.rst:373 msgid "" "The ordering of format characters may have an impact on size since the " "padding needed to satisfy alignment requirements is different::" msgstr "" +"L'ordre des caractères de format peut avoir un impact sur la taille puisque " +"le bourrage nécessaire pour réaliser l'alignement est différent ::" -#: ../Doc/library/struct.rst:374 +#: ../Doc/library/struct.rst:385 msgid "" "The following format ``'llh0l'`` specifies two pad bytes at the end, " "assuming longs are aligned on 4-byte boundaries::" msgstr "" +"Le format suivant ``'llh0l'`` spécifie deux octets de bourrage à la fin, " +"considérant que les entiers longs sont alignés sur des espacements de 4 " +"octets ::" -#: ../Doc/library/struct.rst:380 +#: ../Doc/library/struct.rst:391 msgid "" "This only works when native size and alignment are in effect; standard size " "and alignment does not enforce any alignment." msgstr "" +"Ceci ne fonctionne que quand la taille et l'alignement natifs sont " +"utilisés ; la taille et l'alignement standards ne forcent aucun alignement." -#: ../Doc/library/struct.rst:387 +#: ../Doc/library/struct.rst:398 msgid "Module :mod:`array`" -msgstr "" +msgstr "Module :mod:`array`" -#: ../Doc/library/struct.rst:387 +#: ../Doc/library/struct.rst:398 msgid "Packed binary storage of homogeneous data." -msgstr "" +msgstr "Stockage agrégé binaire de données homogènes." -#: ../Doc/library/struct.rst:389 +#: ../Doc/library/struct.rst:400 msgid "Module :mod:`xdrlib`" msgstr "Module :mod:`xdrlib`" -#: ../Doc/library/struct.rst:390 +#: ../Doc/library/struct.rst:401 msgid "Packing and unpacking of XDR data." -msgstr "" +msgstr "Agrégation et dissociation de données XDR." -#: ../Doc/library/struct.rst:396 +#: ../Doc/library/struct.rst:407 msgid "Classes" msgstr "Classes" -#: ../Doc/library/struct.rst:398 +#: ../Doc/library/struct.rst:409 msgid "The :mod:`struct` module also defines the following type:" -msgstr "" +msgstr "Le module :mod:`struct` définit aussi le type suivant :" -#: ../Doc/library/struct.rst:403 +#: ../Doc/library/struct.rst:414 msgid "" "Return a new Struct object which writes and reads binary data according to " "the format string *format*. Creating a Struct object once and calling its " "methods is more efficient than calling the :mod:`struct` functions with the " "same format since the format string only needs to be compiled once." msgstr "" +"Renvoie un nouvel objet Struct qui écrit et lit des données binaires " +"conformément à la chaîne de format *format*. Créer une fois pour toutes un " +"objet Struct puis appeler ses méthodes est plus efficace que d'appeler les " +"fonctions de :mod:`struct` avec le même format puisque la chaîne de format " +"n'est compilée qu'une seule fois." -#: ../Doc/library/struct.rst:410 +#: ../Doc/library/struct.rst:421 msgid "" "The compiled versions of the most recent format strings passed to :class:" "`Struct` and the module-level functions are cached, so programs that use " "only a few format strings needn't worry about reusing a single :class:" "`Struct` instance." msgstr "" +"les versions compilées des dernières chaînes de format passées à :class:" +"`Struct` et aux fonctions de niveau module sont mises en cache, de manière à " +"ce que les programmes qui n'utilisent que quelques chaînes de format n'aient " +"pas à se préoccuper de n'utiliser qu'une seule instance de :class:`Struct`." -#: ../Doc/library/struct.rst:415 +#: ../Doc/library/struct.rst:426 msgid "Compiled Struct objects support the following methods and attributes:" msgstr "" +"Les objets ``Struct`` compilés gèrent les méthodes et attributs suivants :" -#: ../Doc/library/struct.rst:419 +#: ../Doc/library/struct.rst:430 msgid "" "Identical to the :func:`pack` function, using the compiled format. " "(``len(result)`` will equal :attr:`size`.)" msgstr "" +"Identique à la fonction :func:`pack`, en utilisant le format compilé " +"(``len(result)`` vaut :attr:`size`)." -#: ../Doc/library/struct.rst:425 +#: ../Doc/library/struct.rst:436 msgid "Identical to the :func:`pack_into` function, using the compiled format." msgstr "" +"Identique à la fonction :func:`pack_into`, en utilisant le format compilé." -#: ../Doc/library/struct.rst:430 +#: ../Doc/library/struct.rst:441 msgid "" "Identical to the :func:`unpack` function, using the compiled format. The " "buffer's size in bytes must equal :attr:`size`." msgstr "" +"Identique à la fonction :func:`unpack`, en utilisant le format compilé. La " +"taille du tampon *buffer* en octets doit valoir :attr:`size`." -#: ../Doc/library/struct.rst:436 +#: ../Doc/library/struct.rst:447 msgid "" "Identical to the :func:`unpack_from` function, using the compiled format. " "The buffer's size in bytes, minus *offset*, must be at least :attr:`size`." msgstr "" -#: ../Doc/library/struct.rst:443 +#: ../Doc/library/struct.rst:454 msgid "" "Identical to the :func:`iter_unpack` function, using the compiled format. " "The buffer's size in bytes must be a multiple of :attr:`size`." msgstr "" +"Identique à la fonction :func:`iter_unpack`, en utilisant le format compilé. " +"La taille du tampon *buffer* en octets doit être un multiple de :attr:`size`." -#: ../Doc/library/struct.rst:450 +#: ../Doc/library/struct.rst:461 msgid "The format string used to construct this Struct object." -msgstr "" +msgstr "La chaîne de format utilisée pour construire l'objet `Struct`." -#: ../Doc/library/struct.rst:452 +#: ../Doc/library/struct.rst:463 msgid "The format string type is now :class:`str` instead of :class:`bytes`." msgstr "" +"la chaîne de format est maintenant de type :class:`str` au lieu de :class:" +"`bytes`." -#: ../Doc/library/struct.rst:457 +#: ../Doc/library/struct.rst:468 msgid "" "The calculated size of the struct (and hence of the bytes object produced by " "the :meth:`pack` method) corresponding to :attr:`format`." msgstr "" +"La taille calculée de la structure agrégée (et donc de l'objet `bytes` " +"produit par la méthode :meth:`pack`) correspondante à :attr:`format`." diff --git a/library/subprocess.po b/library/subprocess.po index 06fed9019..6099ed808 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-29 18:50+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:44+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 1.6.10\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/subprocess.rst:2 msgid ":mod:`subprocess` --- Subprocess management" -msgstr ":mod:`subprocess` --- Gestion de sous-processus" +msgstr ":mod:`subprocess` — Gestion de sous-processus" #: ../Doc/library/subprocess.rst:10 msgid "**Source code:** :source:`Lib/subprocess.py`" @@ -32,7 +32,7 @@ msgstr "" "Le module :mod:`subprocess` vous permet de lancer de nouveaux processus, les " "connecter à des tubes d'entrée/sortie/erreur, et d'obtenir leurs codes de " "retour. Ce module a l'intention de remplacer plusieurs anciens modules et " -"fonctions : ::" +"fonctions ::" #: ../Doc/library/subprocess.rst:21 msgid "" @@ -58,9 +58,9 @@ msgid "" "underlying :class:`Popen` interface can be used directly." msgstr "" "L'approche recommandée pour invoquer un sous-processus et d'utiliser la " -"fonction :func:`run` pour tous les cas d'utilisation qu'il supporte. Pour " -"les cas d'utilisation plus avancés, l'interface inhérente :class:`Popen` " -"peut être utilisée directement." +"fonction :func:`run` pour tous les cas d'utilisation qu'il gère. Pour les " +"cas d'utilisation plus avancés, l'interface inhérente :class:`Popen` peut " +"être utilisée directement." #: ../Doc/library/subprocess.rst:36 msgid "" @@ -71,7 +71,7 @@ msgstr "" "d'une compatibilité avec des versions plus anciennes, référez-vous à la " "section :ref:`call-function-trio`." -#: ../Doc/library/subprocess.rst:44 +#: ../Doc/library/subprocess.rst:45 msgid "" "Run the command described by *args*. Wait for command to complete, then " "return a :class:`CompletedProcess` instance." @@ -79,7 +79,7 @@ msgstr "" "Lance la commande décrite par *args*. Attend que la commande se termine, " "puis renvoie une instance :class:`CompletedProcess`." -#: ../Doc/library/subprocess.rst:47 +#: ../Doc/library/subprocess.rst:48 msgid "" "The arguments shown above are merely the most common ones, described below " "in :ref:`frequently-used-arguments` (hence the use of keyword-only notation " @@ -96,19 +96,24 @@ msgstr "" "et *capture_output*, tous les arguments donnés à cette fonction passent à " "travers cette interface." -#: ../Doc/library/subprocess.rst:54 +#: ../Doc/library/subprocess.rst:55 msgid "" "If *capture_output* is true, stdout and stderr will be captured. When used, " "the internal :class:`Popen` object is automatically created with " "``stdout=PIPE`` and ``stderr=PIPE``. The *stdout* and *stderr* arguments may " -"not be used as well." +"not be supplied at the same time as *capture_output*. If you wish to " +"capture and combine both streams into one, use ``stdout=PIPE`` and " +"``stderr=STDOUT`` instead of *capture_output*." msgstr "" -"Si *capture_output* est vrai, la sortie et l'erreur standard sont capturées. " -"Dans ce cas, l'objet interne :class:`Popen est automatiquement créé avec les " -"arguments ``stdout=PIPE`` et ``stderr=PIPE``. Les arguments *stdin* et " -"*stderr* ne peuvent pas être utilisés." +"Si *capture_output* est vrai, la sortie et l'erreur standard (``stdout`` et " +"``stderr``) sont capturées. Dans ce cas, l'objet interne :class:`Popen` est " +"automatiquement créé avec les arguments ``stdout=PIPE`` et ``stderr=PIPE``. " +"Les arguments *stdout* et *stderr* ne doivent pas être passés en même temps " +"que *capture_output*. Si vous souhaitez capturer et combiner les deux flux " +"dans un seul, utilisez ``stdout=PIPE`` et ``stderr=STDOUT`` au lieu de " +"*capture_output*." -#: ../Doc/library/subprocess.rst:59 +#: ../Doc/library/subprocess.rst:62 msgid "" "The *timeout* argument is passed to :meth:`Popen.communicate`. If the " "timeout expires, the child process will be killed and waited for. The :exc:" @@ -119,7 +124,7 @@ msgstr "" "expire, le processus enfant sera tué et attendu. Une exception :exc:" "`TimeoutExpired` sera levée une fois que le processus enfant se sera terminé." -#: ../Doc/library/subprocess.rst:64 +#: ../Doc/library/subprocess.rst:67 msgid "" "The *input* argument is passed to :meth:`Popen.communicate` and thus to the " "subprocess's stdin. If used it must be a byte sequence, or a string if " @@ -130,11 +135,11 @@ msgstr "" "L'argument *input* est passé à :meth:`Popen.communicate` et donc à l'entrée " "standard (*stdin*) du sous-processus. Si l'argument est utilisé, il doit " "contenir une séquence de *bytes*, ou une chaîne de caractères si *encoding* " -"ou *errors* son spécifiés, ou si *text* est vrai. Quand cet argument est " +"ou *errors* sont spécifiés, ou si *text* est vrai. Quand cet argument est " "utilisé, l'objet interne :class:`Popen` est automatiquement créé avec " "``stdin=PIPE``, et l'argument *stdin* ne doit donc pas être utilisé." -#: ../Doc/library/subprocess.rst:70 +#: ../Doc/library/subprocess.rst:73 msgid "" "If *check* is true, and the process exits with a non-zero exit code, a :exc:" "`CalledProcessError` exception will be raised. Attributes of that exception " @@ -146,7 +151,7 @@ msgstr "" "cette exception contiennent les arguments, le code de statut, et les sorties " "standard et d'erreur si elles ont été capturées." -#: ../Doc/library/subprocess.rst:75 +#: ../Doc/library/subprocess.rst:78 msgid "" "If *encoding* or *errors* are specified, or *text* is true, file objects for " "stdin, stdout and stderr are opened in text mode using the specified " @@ -161,7 +166,7 @@ msgstr "" "*text* et est fourni pour la rétrocompatibilité. Par défaut, les fichiers " "sont ouverts en mode binaire." -#: ../Doc/library/subprocess.rst:81 +#: ../Doc/library/subprocess.rst:84 msgid "" "If *env* is not ``None``, it must be a mapping that defines the environment " "variables for the new process; these are used instead of the default " @@ -173,35 +178,37 @@ msgstr "" "à la place du comportement par défaut qui est d'hériter de l'environnement " "du processus courant. Il est passé directement à :class:`Popen`." -#: ../Doc/library/subprocess.rst:86 +#: ../Doc/library/subprocess.rst:89 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" -#: ../Doc/library/subprocess.rst:104 +#: ../Doc/library/subprocess.rst:107 msgid "Added *encoding* and *errors* parameters" msgstr "Ajout des paramètres *encoding* et *errors*" -#: ../Doc/library/subprocess.rst:108 +#: ../Doc/library/subprocess.rst:111 msgid "" "Added the *text* parameter, as a more understandable alias of " "*universal_newlines*. Added the *capture_output* parameter." msgstr "" +"Ajout du paramètre *text*, qui agit comme un alias plus compréhensible de " +"*universal_newlines*. Ajout du paramètre *capture_output*." -#: ../Doc/library/subprocess.rst:113 +#: ../Doc/library/subprocess.rst:116 msgid "" "The return value from :func:`run`, representing a process that has finished." msgstr "" "La valeur de retour de :func:`run`, représentant un processus qui s'est " "terminé." -#: ../Doc/library/subprocess.rst:117 +#: ../Doc/library/subprocess.rst:120 msgid "" "The arguments used to launch the process. This may be a list or a string." msgstr "" "Les arguments utilisés pour lancer le processus. Cela peut être une liste ou " "une chaîne de caractères." -#: ../Doc/library/subprocess.rst:121 +#: ../Doc/library/subprocess.rst:124 msgid "" "Exit status of the child process. Typically, an exit status of 0 indicates " "that it ran successfully." @@ -209,7 +216,7 @@ msgstr "" "Le code de statut du processus fils. Typiquement, un code de statut de 0 " "indique qu'il s'est exécuté avec succès." -#: ../Doc/library/subprocess.rst:124 ../Doc/library/subprocess.rst:777 +#: ../Doc/library/subprocess.rst:127 ../Doc/library/subprocess.rst:778 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." @@ -217,7 +224,7 @@ msgstr "" "Une valeur négative ``-N`` indique que le processus enfant a été terminé par " "un signal ``N`` (seulement sur les systèmes *POSIX*)." -#: ../Doc/library/subprocess.rst:129 +#: ../Doc/library/subprocess.rst:132 msgid "" "Captured stdout from the child process. A bytes sequence, or a string if :" "func:`run` was called with an encoding, errors, or text=True. ``None`` if " @@ -228,7 +235,7 @@ msgstr "" "*errors* ou *text=True*. Vaut ``None`` si la sortie standard n'était pas " "capturée." -#: ../Doc/library/subprocess.rst:133 +#: ../Doc/library/subprocess.rst:136 msgid "" "If you ran the process with ``stderr=subprocess.STDOUT``, stdout and stderr " "will be combined in this attribute, and :attr:`stderr` will be ``None``." @@ -237,7 +244,7 @@ msgstr "" "sorties standard et d'erreur seront combinées dans cet attribut, et :attr:" "`stderr` sera mis à ``None``." -#: ../Doc/library/subprocess.rst:139 +#: ../Doc/library/subprocess.rst:142 msgid "" "Captured stderr from the child process. A bytes sequence, or a string if :" "func:`run` was called with an encoding, errors, or text=True. ``None`` if " @@ -248,12 +255,12 @@ msgstr "" "*errors* ou *text=True*. Vaut ``None`` si la sortie d'erreur n'était pas " "capturée." -#: ../Doc/library/subprocess.rst:145 +#: ../Doc/library/subprocess.rst:148 msgid "If :attr:`returncode` is non-zero, raise a :exc:`CalledProcessError`." msgstr "" "Si :attr:`returncode` n'est pas nul, lève une :exc:`CalledProcessError`." -#: ../Doc/library/subprocess.rst:151 +#: ../Doc/library/subprocess.rst:154 msgid "" "Special value that can be used as the *stdin*, *stdout* or *stderr* argument " "to :class:`Popen` and indicates that the special file :data:`os.devnull` " @@ -263,7 +270,7 @@ msgstr "" "ou *stderr* de :class:`Popen` et qui indique que le fichier spécial :data:" "`os.devnull` sera utilisé." -#: ../Doc/library/subprocess.rst:160 +#: ../Doc/library/subprocess.rst:163 msgid "" "Special value that can be used as the *stdin*, *stdout* or *stderr* argument " "to :class:`Popen` and indicates that a pipe to the standard stream should be " @@ -273,7 +280,7 @@ msgstr "" "ou *stderr* de :class:`Popen` et qui indique qu'un tube vers le flux " "standard doit être ouvert. Surtout utile avec :meth:`Popen.communicate`." -#: ../Doc/library/subprocess.rst:167 +#: ../Doc/library/subprocess.rst:170 msgid "" "Special value that can be used as the *stderr* argument to :class:`Popen` " "and indicates that standard error should go into the same handle as standard " @@ -281,13 +288,13 @@ msgid "" msgstr "" "Valeur spéciale qui peut être utilisée pour l'argument *stderr* de :class:" "`Popen` et qui indique que la sortie d'erreur doit être redirigée vers le " -"même gestionnaire que la sortie standard." +"même descripteur que la sortie standard." -#: ../Doc/library/subprocess.rst:174 +#: ../Doc/library/subprocess.rst:177 msgid "Base class for all other exceptions from this module." msgstr "Classe de base à toutes les autres exceptions du module." -#: ../Doc/library/subprocess.rst:181 +#: ../Doc/library/subprocess.rst:184 msgid "" "Subclass of :exc:`SubprocessError`, raised when a timeout expires while " "waiting for a child process." @@ -295,15 +302,15 @@ msgstr "" "Sous-classe de :exc:`SubprocessError`, levée quand un *timeout* expire " "pendant l'attente d'un processus enfant." -#: ../Doc/library/subprocess.rst:186 ../Doc/library/subprocess.rst:223 +#: ../Doc/library/subprocess.rst:189 ../Doc/library/subprocess.rst:226 msgid "Command that was used to spawn the child process." msgstr "La commande utilisée pour instancier le processus fils." -#: ../Doc/library/subprocess.rst:190 +#: ../Doc/library/subprocess.rst:193 msgid "Timeout in seconds." msgstr "Le *timeout* en secondes." -#: ../Doc/library/subprocess.rst:194 ../Doc/library/subprocess.rst:227 +#: ../Doc/library/subprocess.rst:197 ../Doc/library/subprocess.rst:230 msgid "" "Output of the child process if it was captured by :func:`run` or :func:" "`check_output`. Otherwise, ``None``." @@ -311,11 +318,11 @@ msgstr "" "La sortie du processus fils, si capturée par :func:`run` ou :func:" "`check_output`. Autrement, ``None``." -#: ../Doc/library/subprocess.rst:199 ../Doc/library/subprocess.rst:232 +#: ../Doc/library/subprocess.rst:202 ../Doc/library/subprocess.rst:235 msgid "Alias for output, for symmetry with :attr:`stderr`." msgstr "Alias pour *output*, afin d'avoir une symétrie avec :attr:`stderr`." -#: ../Doc/library/subprocess.rst:203 ../Doc/library/subprocess.rst:236 +#: ../Doc/library/subprocess.rst:206 ../Doc/library/subprocess.rst:239 msgid "" "Stderr output of the child process if it was captured by :func:`run`. " "Otherwise, ``None``." @@ -323,11 +330,11 @@ msgstr "" "La sortie d'erreur du processus fils, si capturée par :func:`run`. " "Autrement, ``None``." -#: ../Doc/library/subprocess.rst:208 ../Doc/library/subprocess.rst:239 +#: ../Doc/library/subprocess.rst:211 ../Doc/library/subprocess.rst:242 msgid "*stdout* and *stderr* attributes added" -msgstr "Ajout des attributs *stdout* et *stderr*." +msgstr "Ajout des attributs *stdout* et *stderr*" -#: ../Doc/library/subprocess.rst:213 +#: ../Doc/library/subprocess.rst:216 msgid "" "Subclass of :exc:`SubprocessError`, raised when a process run by :func:" "`check_call` or :func:`check_output` returns a non-zero exit status." @@ -335,7 +342,7 @@ msgstr "" "Sous-classe de :exc:`SubprocessError`, levée quand un processus lancé par :" "func:`check_call` ou :func:`check_output` renvoie un code de statut non nul." -#: ../Doc/library/subprocess.rst:218 +#: ../Doc/library/subprocess.rst:221 msgid "" "Exit status of the child process. If the process exited due to a signal, " "this will be the negative signal number." @@ -343,24 +350,24 @@ msgstr "" "Code de statut du processus fils. Si le processus a été arrêté par un " "signal, le code sera négatif et correspondra à l'opposé du numéro de signal." -#: ../Doc/library/subprocess.rst:246 +#: ../Doc/library/subprocess.rst:249 msgid "Frequently Used Arguments" msgstr "Arguments fréquemment utilisés" -#: ../Doc/library/subprocess.rst:248 +#: ../Doc/library/subprocess.rst:251 msgid "" "To support a wide variety of use cases, the :class:`Popen` constructor (and " "the convenience functions) accept a large number of optional arguments. For " "most typical use cases, many of these arguments can be safely left at their " "default values. The arguments that are most commonly needed are:" msgstr "" -"Pour supporter un large ensemble de cas, la constructeur de :class:`Popen` " -"(et les fonctions de convenance) acceptent de nombreux arguments optionnels. " +"Pour gérer un large ensemble de cas, le constructeur de :class:`Popen` (et " +"les fonctions de convenance) acceptent de nombreux arguments optionnels. " "Pour les cas d'utilisation les plus typiques, beaucoup de ces arguments " "peuvent sans problème être laissés à leurs valeurs par défaut. Les arguments " "les plus communément nécessaires sont :" -#: ../Doc/library/subprocess.rst:253 +#: ../Doc/library/subprocess.rst:256 msgid "" "*args* is required for all calls and should be a string, or a sequence of " "program arguments. Providing a sequence of arguments is generally preferred, " @@ -372,13 +379,13 @@ msgstr "" "*args* est requis pour tous les appels et doit être une chaîne de caractères " "ou une séquence d'arguments du programme. Il est généralement préférable de " "fournir une séquence d'arguments, puisque cela permet au module de s'occuper " -"des potentiels échappements ou guillemets autour des arguments (p. ex. pour " +"des potentiels échappements ou guillemets autour des arguments (p. ex. pour " "permettre des espaces dans des noms de fichiers). Si l'argument est passé " "comme une simple chaîne, soit *shell* doit valoir :const:`True` (voir ci-" "dessous) soit la chaîne doit simplement contenir le nom du programme à " "exécuter sans spécifier d'arguments supplémentaires." -#: ../Doc/library/subprocess.rst:261 +#: ../Doc/library/subprocess.rst:264 msgid "" "*stdin*, *stdout* and *stderr* specify the executed program's standard " "input, standard output and standard error file handles, respectively. Valid " @@ -391,20 +398,20 @@ msgid "" "data:`STDOUT`, which indicates that the stderr data from the child process " "should be captured into the same file handle as for *stdout*." msgstr "" -"*stdin*, *stdout* et *stderr* spécifient respectivement les gestionnaires " +"*stdin*, *stdout* et *stderr* spécifient respectivement les descripteurs " "d'entrée standard, de sortie standard et de sortie d'erreur du programme " "exécuté. Les valeurs acceptées sont :data:`PIPE`, :data:`DEVNULL`, un " "descripteur de fichier existant (nombre entier positif), un objet de " "fichier, et ``None``. :data:`PIPE` indique qu'un nouveau tube vers le " "processus enfant sera créé. :data:`DEVNULL` indique que le fichier spécial :" "data:`os.devnull` sera utilisé. Avec les paramètres ``None`` par défaut, " -"aucune redirection ne se produira, les gestionnaires de fichiers du fils " +"aucune redirection ne se produira, les descripteurs de fichiers du fils " "seront hérités du parent. Additionnellement, *stderr* peut valoir :data:" "`STDOUT`, qui indique que les données de la sortie d'erreur du processus " -"fils doivent être capturées dans le même gestionnaire de fichier que la " +"fils doivent être capturées dans le même descripteur de fichier que la " "sortie standard." -#: ../Doc/library/subprocess.rst:275 +#: ../Doc/library/subprocess.rst:278 msgid "" "If *encoding* or *errors* are specified, or *text* (also known as " "*universal_newlines*) is true, the file objects *stdin*, *stdout* and " @@ -416,7 +423,7 @@ msgstr "" "seront ouverts en mode texte en utilisant les *encoding* et *errors* " "spécifiés à l'appel, ou les valeurs par défaut de :class:`io.TextIOWrapper`." -#: ../Doc/library/subprocess.rst:281 +#: ../Doc/library/subprocess.rst:284 msgid "" "For *stdin*, line ending characters ``'\\n'`` in the input will be converted " "to the default line separator :data:`os.linesep`. For *stdout* and *stderr*, " @@ -431,7 +438,7 @@ msgstr "" "de la classe :class:`io.TextIOWrapper` quand l'argument *newline* du " "constructeur est ``None``." -#: ../Doc/library/subprocess.rst:287 +#: ../Doc/library/subprocess.rst:290 msgid "" "If text mode is not used, *stdin*, *stdout* and *stderr* will be opened as " "binary streams. No encoding or line ending conversion is performed." @@ -440,15 +447,15 @@ msgstr "" "ouverts comme des flux binaires. Aucune conversion d'encodage ou de fins de " "ligne ne sera réalisée." -#: ../Doc/library/subprocess.rst:290 +#: ../Doc/library/subprocess.rst:293 msgid "Added *encoding* and *errors* parameters." msgstr "Ajout des paramètres *encoding* et *errors*." -#: ../Doc/library/subprocess.rst:293 +#: ../Doc/library/subprocess.rst:296 msgid "Added the *text* parameter as an alias for *universal_newlines*." -msgstr "" +msgstr "Ajout du paramètre *text* comme alias de *universal_newlines*." -#: ../Doc/library/subprocess.rst:298 +#: ../Doc/library/subprocess.rst:301 msgid "" "The newlines attribute of the file objects :attr:`Popen.stdin`, :attr:`Popen." "stdout` and :attr:`Popen.stderr` are not updated by the :meth:`Popen." @@ -458,7 +465,7 @@ msgstr "" "et :attr:`Popen.stderr` ne sont pas mis à jour par la méthode :meth:`Popen." "communicate`." -#: ../Doc/library/subprocess.rst:302 +#: ../Doc/library/subprocess.rst:305 msgid "" "If *shell* is ``True``, the specified command will be executed through the " "shell. This can be useful if you are using Python primarily for the " @@ -475,13 +482,13 @@ msgstr "" "flot qu'il propose par rapport à beaucoup de *shells* système et voulez tout " "de même profiter des autres fonctionnalités des *shells* telles que les " "tubes (*pipes*), les motifs de fichiers, l'expansion des variables " -"d'environnement, et l'expansion du ``~`` vers le répertoire principal de " -"l'utilisateur. Cependant, notez que Python lui-même propose " -"l'implémentation de beaucoup de ces fonctionnalités (en particulier :mod:" -"`glob`, :mod:`fnmatch`, :func:`os.walk`, :func:`os.path.expandvars`, :func:" -"`os.path.expanduser` et :mod:`shutil`)." +"d'environnement, et l'expansion du ``~`` vers le répertoire d’accueil de " +"l'utilisateur. Cependant, notez que Python lui-même propose l'implémentation " +"de beaucoup de ces fonctionnalités (en particulier :mod:`glob`, :mod:" +"`fnmatch`, :func:`os.walk`, :func:`os.path.expandvars`, :func:`os.path." +"expanduser` et :mod:`shutil`)." -#: ../Doc/library/subprocess.rst:312 +#: ../Doc/library/subprocess.rst:315 msgid "" "When *universal_newlines* is ``True``, the class uses the encoding :func:" "`locale.getpreferredencoding(False) ` instead " @@ -493,13 +500,13 @@ msgstr "" "que ``locale.getpreferredencoding()``. Voir la classe :class:`io." "TextIOWrapper` pour plus d'informations sur ce changement." -#: ../Doc/library/subprocess.rst:320 ../Doc/library/subprocess.rst:404 +#: ../Doc/library/subprocess.rst:323 ../Doc/library/subprocess.rst:407 msgid "" "Read the `Security Considerations`_ section before using ``shell=True``." msgstr "" "Lire la section `Security Considerations`_ avant d'utiliser ``shell=True``." -#: ../Doc/library/subprocess.rst:322 +#: ../Doc/library/subprocess.rst:325 msgid "" "These options, along with all of the other options, are described in more " "detail in the :class:`Popen` constructor documentation." @@ -507,11 +514,11 @@ msgstr "" "Ces options, ainsi que toutes les autres, sont décrites plus en détails dans " "la documentation du constructeur de :class:`Popen`." -#: ../Doc/library/subprocess.rst:327 +#: ../Doc/library/subprocess.rst:330 msgid "Popen Constructor" msgstr "Constructeur de *Popen*" -#: ../Doc/library/subprocess.rst:329 +#: ../Doc/library/subprocess.rst:332 msgid "" "The underlying process creation and management in this module is handled by " "the :class:`Popen` class. It offers a lot of flexibility so that developers " @@ -523,7 +530,7 @@ msgstr "" "les développeurs soient capables de gérer les cas d'utilisation les moins " "communs, non couverts par les fonctions de convenance." -#: ../Doc/library/subprocess.rst:342 +#: ../Doc/library/subprocess.rst:345 msgid "" "Execute a child program in a new process. On POSIX, the class uses :meth:" "`os.execvp`-like behavior to execute the child program. On Windows, the " @@ -536,7 +543,7 @@ msgstr "" "Windows ``CreateProcess()``. Les arguments de :class:`Popen` sont les " "suivants." -#: ../Doc/library/subprocess.rst:347 +#: ../Doc/library/subprocess.rst:350 msgid "" "*args* should be a sequence of program arguments or else a single string. By " "default, the program to execute is the first item in *args* if *args* is a " @@ -552,7 +559,7 @@ msgstr "" "*executable* pour d'autres différences avec le comportement par défaut. " "Sans autre indication, il est recommandé de passer *args* comme une séquence." -#: ../Doc/library/subprocess.rst:354 +#: ../Doc/library/subprocess.rst:357 msgid "" "On POSIX, if *args* is a string, the string is interpreted as the name or " "path of the program to execute. However, this can only be done if not " @@ -562,15 +569,15 @@ msgstr "" "comme le nom ou le chemin du programme à exécuter. Cependant, cela ne peut " "être fait que si le programme est passé sans arguments." -#: ../Doc/library/subprocess.rst:360 +#: ../Doc/library/subprocess.rst:363 msgid "" ":meth:`shlex.split` can be useful when determining the correct tokenization " "for *args*, especially in complex cases::" msgstr "" ":meth:`shlex.split` peut être utilisée pour déterminer le découpage correct " -"de *args*, spécifiquement dans les cas complexes : ::" +"de *args*, spécifiquement dans les cas complexes ::" -#: ../Doc/library/subprocess.rst:371 +#: ../Doc/library/subprocess.rst:374 msgid "" "Note in particular that options (such as *-input*) and arguments (such as " "*eggs.txt*) that are separated by whitespace in the shell go in separate " @@ -585,7 +592,7 @@ msgstr "" "fichiers contenant des espaces ou la commande *echo* montrée plus haut) " "forment des éléments uniques." -#: ../Doc/library/subprocess.rst:377 +#: ../Doc/library/subprocess.rst:380 msgid "" "On Windows, if *args* is a sequence, it will be converted to a string in a " "manner described in :ref:`converting-argument-sequence`. This is because " @@ -596,7 +603,7 @@ msgstr "" "sequence`. Cela fonctionne ainsi parce que la fonction ``CreateProcess()`` " "opère sur des chaînes." -#: ../Doc/library/subprocess.rst:381 +#: ../Doc/library/subprocess.rst:384 msgid "" "The *shell* argument (which defaults to ``False``) specifies whether to use " "the shell as the program to execute. If *shell* is ``True``, it is " @@ -607,7 +614,7 @@ msgstr "" "il est recommandé de passer *args* comme une chaîne de caractères plutôt " "qu'une séquence." -#: ../Doc/library/subprocess.rst:385 +#: ../Doc/library/subprocess.rst:388 msgid "" "On POSIX with ``shell=True``, the shell defaults to :file:`/bin/sh`. If " "*args* is a string, the string specifies the command to execute through the " @@ -627,9 +634,9 @@ msgstr "" "Si *args* est une séquence, le premier élément spécifie la commande, et les " "éléments supplémentaires seront traités comme des arguments additionnels à " "passer au *shell* lui-même. Pour ainsi dire, :class:`Popen` réalise " -"l'équivalent de : ::" +"l'équivalent de ::" -#: ../Doc/library/subprocess.rst:396 +#: ../Doc/library/subprocess.rst:399 msgid "" "On Windows with ``shell=True``, the :envvar:`COMSPEC` environment variable " "specifies the default shell. The only time you need to specify " @@ -644,16 +651,16 @@ msgstr "" "ou :command:`copy`). Vous n'avez pas besoin de ``shell=True`` pour lancer " "un fichier batch ou un exécutable console." -#: ../Doc/library/subprocess.rst:406 +#: ../Doc/library/subprocess.rst:409 msgid "" "*bufsize* will be supplied as the corresponding argument to the :func:`open` " "function when creating the stdin/stdout/stderr pipe file objects:" msgstr "" "*bufsize* sera fourni comme l'argument correspondant à la fonction :func:" "`open`, lors de la création des objets de fichiers pour les tubes *stdin*/" -"*stdout*/*stderr*." +"*stdout*/*stderr* :" -#: ../Doc/library/subprocess.rst:410 +#: ../Doc/library/subprocess.rst:413 msgid "" ":const:`0` means unbuffered (read and write are one system call and can " "return short)" @@ -661,21 +668,21 @@ msgstr "" ":const:`0` indique de ne pas utiliser de tampon (les lectures et écritures " "sont des appels systèmes et peuvent renvoyer des données incomplètes) ;" -#: ../Doc/library/subprocess.rst:412 +#: ../Doc/library/subprocess.rst:415 msgid "" ":const:`1` means line buffered (only usable if ``universal_newlines=True`` i." "e., in a text mode)" msgstr "" ":const:`1` indique une mise en cache par ligne (utilisable seulement si " -"``universal_newlines=True``, c'est à dire en mode texte) ;" +"``universal_newlines=True``, c'est-à-dire en mode texte) ;" -#: ../Doc/library/subprocess.rst:414 +#: ../Doc/library/subprocess.rst:417 msgid "any other positive value means use a buffer of approximately that size" msgstr "" "toutes les autres valeurs positives indiquent d'utiliser un tampon " -"d'approximativement cette taille ;" +"d'approximativement cette taille ;" -#: ../Doc/library/subprocess.rst:416 +#: ../Doc/library/subprocess.rst:419 msgid "" "negative bufsize (the default) means the system default of io." "DEFAULT_BUFFER_SIZE will be used." @@ -683,7 +690,7 @@ msgstr "" "un *bufsize* négatif (par défaut) indique au système d'utiliser la valeur " "par défaut *io.DEFAULT_BUFFER_SIZE*." -#: ../Doc/library/subprocess.rst:419 +#: ../Doc/library/subprocess.rst:422 msgid "" "*bufsize* now defaults to -1 to enable buffering by default to match the " "behavior that most code expects. In versions prior to Python 3.2.4 and " @@ -699,7 +706,7 @@ msgstr "" "correspondait pas au comportement de Python 2 attendu par la plupart des " "codes." -#: ../Doc/library/subprocess.rst:426 +#: ../Doc/library/subprocess.rst:429 msgid "" "The *executable* argument specifies a replacement program to execute. It " "is very seldom needed. When ``shell=False``, *executable* replaces the " @@ -722,7 +729,7 @@ msgstr "" "``shell=True``, sur les systèmes POSIX, l'argument *executable* précise le " "*shell* à utiliser plutôt que :file:`/bin/sh` par défaut." -#: ../Doc/library/subprocess.rst:436 +#: ../Doc/library/subprocess.rst:439 msgid "" "*stdin*, *stdout* and *stderr* specify the executed program's standard " "input, standard output and standard error file handles, respectively. Valid " @@ -735,20 +742,20 @@ msgid "" "*stderr* can be :data:`STDOUT`, which indicates that the stderr data from " "the applications should be captured into the same file handle as for stdout." msgstr "" -"*stdin*, *stdout* et *stderr* spécifient respectivement les gestionnaires " +"*stdin*, *stdout* et *stderr* spécifient respectivement les descripteurs " "d'entrée standard, de sortie standard et de sortie d'erreur du programme " "exécuté. Les valeurs acceptées sont :data:`PIPE`, :data:`DEVNULL`, un " "descripteur de fichier existant (nombre entier positif), un :term:`file " "object`, et ``None``. :data:`PIPE` indique qu'un nouveau tube vers le " "processus enfant sera créé. :data:`DEVNULL` indique que le fichier spécial :" "data:`os.devnull` sera utilisé. Avec les paramètres ``None`` par défaut, " -"aucune redirection ne se produira, les gestionnaires de fichiers du fils " +"aucune redirection ne se produira, les descripteurs de fichiers du fils " "seront hérités du parent. Additionnellement, *stderr* peut valoir :data:" "`STDOUT`, qui indique que les données de la sortie d'erreur du processus " -"fils doivent être capturées dans le même gestionnaire de fichier que la " +"fils doivent être capturées dans le même descripteur de fichier que la " "sortie standard." -#: ../Doc/library/subprocess.rst:447 +#: ../Doc/library/subprocess.rst:450 msgid "" "If *preexec_fn* is set to a callable object, this object will be called in " "the child process just before the child is executed. (POSIX only)" @@ -756,7 +763,7 @@ msgstr "" "Si un objet appelable est passé à *preexec_fn*, cet objet sera appelé dans " "le processus enfant juste avant d'exécuter le programme. (POSIX seulement)" -#: ../Doc/library/subprocess.rst:453 +#: ../Doc/library/subprocess.rst:456 msgid "" "The *preexec_fn* parameter is not safe to use in the presence of threads in " "your application. The child process could deadlock before exec is called. " @@ -769,7 +776,7 @@ msgstr "" "ce paramètre, gardez son utilisation triviale ! Minimisez le nombre de " "bibliothèques que vous y appelez." -#: ../Doc/library/subprocess.rst:461 +#: ../Doc/library/subprocess.rst:464 msgid "" "If you need to modify the environment for the child use the *env* parameter " "rather than doing it in a *preexec_fn*. The *start_new_session* parameter " @@ -781,37 +788,50 @@ msgstr "" "*start_new_session* peut prendre la place de *preexec_fn* qui était " "autrefois communément utilisé pour appeler *os.setsid()* dans le fils." -#: ../Doc/library/subprocess.rst:466 +#: ../Doc/library/subprocess.rst:469 msgid "" "If *close_fds* is true, all file descriptors except :const:`0`, :const:`1` " "and :const:`2` will be closed before the child process is executed. " "Otherwise when *close_fds* is false, file descriptors obey their inheritable " "flag as described in :ref:`fd_inheritance`." msgstr "" +"Si *close_fds* est vrai, tous les descripteurs de fichiers exceptés :const:" +"`0`, :const:`1` et :const:`2` sont fermés avant que le processus enfant " +"soit exécuté. Sinon, quand *close_fds* est faux, les descripteurs de " +"fichiers se comportent conformément à leur option d'héritage décrite dans :" +"ref:`fd_inheritance`." -#: ../Doc/library/subprocess.rst:471 +#: ../Doc/library/subprocess.rst:474 msgid "" "On Windows, if *close_fds* is true then no handles will be inherited by the " "child process unless explicitly passed in the ``handle_list`` element of :" "attr:`STARTUPINFO.lpAttributeList`, or by standard handle redirection." msgstr "" +"Sur Windows, si *close_fds* est vrai, alors aucun descripteur n'est hérité " +"par le processus enfant à moins d'être explicitement passé dans l'élément " +"``handle_list`` de :attr:`STARTUPINFO.lpAttributeList`, ou par redirection " +"des descripteurs standards." -#: ../Doc/library/subprocess.rst:475 +#: ../Doc/library/subprocess.rst:478 msgid "" "The default for *close_fds* was changed from :const:`False` to what is " "described above." msgstr "" -"la valeur par défaut de *close_fds* n'est plus :const:`False`, comme décrit " +"La valeur par défaut de *close_fds* n'est plus :const:`False`, comme décrit " "ci-dessus." -#: ../Doc/library/subprocess.rst:479 +#: ../Doc/library/subprocess.rst:482 msgid "" "On Windows the default for *close_fds* was changed from :const:`False` to :" "const:`True` when redirecting the standard handles. It's now possible to set " "*close_fds* to :const:`True` when redirecting the standard handles." msgstr "" +"Sur Windows, la valeur par défaut de *close_fds* a été changée de :const:" +"`False` à :const:`True` lors d'une redirection des descripteurs standards. " +"Il est maintenant possible de donner la valeur :const:`True` à *close_fds* " +"lors d'une redirection de descripteurs standards." -#: ../Doc/library/subprocess.rst:484 +#: ../Doc/library/subprocess.rst:487 msgid "" "*pass_fds* is an optional sequence of file descriptors to keep open between " "the parent and child. Providing any *pass_fds* forces *close_fds* to be :" @@ -821,11 +841,11 @@ msgstr "" "ouverts entre le parent et l'enfant. Fournir *pass_fds* force *close_fds* à " "valoir :const:`True`. (POSIX seulement)" -#: ../Doc/library/subprocess.rst:488 +#: ../Doc/library/subprocess.rst:491 msgid "The *pass_fds* parameter was added." msgstr "Ajout du paramètre *pass_fds*." -#: ../Doc/library/subprocess.rst:491 +#: ../Doc/library/subprocess.rst:494 msgid "" "If *cwd* is not ``None``, the function changes the working directory to " "*cwd* before executing the child. *cwd* can be a :class:`str` and :term:" @@ -839,11 +859,11 @@ msgstr "" "fonction recherche *executable* (ou le premier élément d'*args*) " "relativement à *cwd* si le chemin d'exécution est relatif." -#: ../Doc/library/subprocess.rst:497 +#: ../Doc/library/subprocess.rst:500 msgid "*cwd* parameter accepts a :term:`path-like object`." msgstr "le paramètre *cwd* accepte un :term:`path-like object`." -#: ../Doc/library/subprocess.rst:500 +#: ../Doc/library/subprocess.rst:503 msgid "" "If *restore_signals* is true (the default) all signals that Python has set " "to SIG_IGN are restored to SIG_DFL in the child process before the exec. " @@ -854,11 +874,11 @@ msgstr "" "l'appel à *exec*. Actuellement, cela inclut les signaux *SIGPIPE*, *SIGXFZ* " "et *SIGXFSZ*. (POSIX seulement)" -#: ../Doc/library/subprocess.rst:505 +#: ../Doc/library/subprocess.rst:508 msgid "*restore_signals* was added." msgstr "Ajout de *restore_signals*." -#: ../Doc/library/subprocess.rst:508 +#: ../Doc/library/subprocess.rst:511 msgid "" "If *start_new_session* is true the setsid() system call will be made in the " "child process prior to the execution of the subprocess. (POSIX only)" @@ -867,11 +887,11 @@ msgstr "" "dans le processus fils avant l'exécution du sous-processus. (POSIX " "seulement)" -#: ../Doc/library/subprocess.rst:511 +#: ../Doc/library/subprocess.rst:514 msgid "*start_new_session* was added." msgstr "Ajout de *start_new_session*." -#: ../Doc/library/subprocess.rst:514 +#: ../Doc/library/subprocess.rst:517 msgid "" "If *env* is not ``None``, it must be a mapping that defines the environment " "variables for the new process; these are used instead of the default " @@ -882,7 +902,7 @@ msgstr "" "à la place du comportement par défaut qui est d'hériter de l'environnement " "du processus courant." -#: ../Doc/library/subprocess.rst:520 +#: ../Doc/library/subprocess.rst:523 msgid "" "If specified, *env* must provide any variables required for the program to " "execute. On Windows, in order to run a `side-by-side assembly`_ the " @@ -893,7 +913,7 @@ msgstr "" "l'environnement *env* spécifié **doit** contenir une variable :envvar:" "`SystemRoot` valide." -#: ../Doc/library/subprocess.rst:526 +#: ../Doc/library/subprocess.rst:529 msgid "" "If *encoding* or *errors* are specified, or *text* is true, the file objects " "*stdin*, *stdout* and *stderr* are opened in text mode with the specified " @@ -906,18 +926,19 @@ msgstr "" "fichiers *stdin*, *stdout* et *stderr* sont ouverts en mode texte, avec " "l'encodage et la valeur d'*errors* spécifiés, comme décrit ci-dessus dans :" "ref:`frequently-used-arguments`. L'argument *universal_newlines*, équivalent " -"à *text*, est fourni pour la rétrocompatibilité . Autrement, ils sont " -"ouverts comme des flux binaires." +"à *text*, est fourni pour la rétrocompatibilité. Autrement, ils sont ouverts " +"comme des flux binaires." -#: ../Doc/library/subprocess.rst:532 +#: ../Doc/library/subprocess.rst:535 msgid "*encoding* and *errors* were added." msgstr "Ajout d'*encoding* et *errors*." -#: ../Doc/library/subprocess.rst:535 +#: ../Doc/library/subprocess.rst:538 ../Doc/library/subprocess.rst:1106 msgid "*text* was added as a more readable alias for *universal_newlines*." msgstr "" +"*text* a été ajouté comme un alias plus lisible de *universal_newlines*." -#: ../Doc/library/subprocess.rst:538 +#: ../Doc/library/subprocess.rst:541 msgid "" "If given, *startupinfo* will be a :class:`STARTUPINFO` object, which is " "passed to the underlying ``CreateProcess`` function. *creationflags*, if " @@ -927,69 +948,69 @@ msgstr "" "à la fonction ``CreateProcess`` inhérente. *creationflags*, si fourni, peut " "avoir l'une des valeurs suivantes :" -#: ../Doc/library/subprocess.rst:542 +#: ../Doc/library/subprocess.rst:545 msgid ":data:`CREATE_NEW_CONSOLE`" msgstr ":data:`CREATE_NEW_CONSOLE`" -#: ../Doc/library/subprocess.rst:543 +#: ../Doc/library/subprocess.rst:546 msgid ":data:`CREATE_NEW_PROCESS_GROUP`" msgstr ":data:`CREATE_NEW_PROCESS_GROUP`" -#: ../Doc/library/subprocess.rst:544 +#: ../Doc/library/subprocess.rst:547 msgid ":data:`ABOVE_NORMAL_PRIORITY_CLASS`" msgstr ":data:`ABOVE_NORMAL_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:545 +#: ../Doc/library/subprocess.rst:548 msgid ":data:`BELOW_NORMAL_PRIORITY_CLASS`" msgstr ":data:`BELOW_NORMAL_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:546 +#: ../Doc/library/subprocess.rst:549 msgid ":data:`HIGH_PRIORITY_CLASS`" msgstr ":data:`HIGH_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:547 +#: ../Doc/library/subprocess.rst:550 msgid ":data:`IDLE_PRIORITY_CLASS`" msgstr ":data:`IDLE_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:548 +#: ../Doc/library/subprocess.rst:551 msgid ":data:`NORMAL_PRIORITY_CLASS`" msgstr ":data:`NORMAL_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:549 +#: ../Doc/library/subprocess.rst:552 msgid ":data:`REALTIME_PRIORITY_CLASS`" msgstr ":data:`REALTIME_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:550 +#: ../Doc/library/subprocess.rst:553 msgid ":data:`CREATE_NO_WINDOW`" msgstr ":data:`CREATE_NO_WINDOW`" -#: ../Doc/library/subprocess.rst:551 +#: ../Doc/library/subprocess.rst:554 msgid ":data:`DETACHED_PROCESS`" msgstr ":data:`DETACHED_PROCESS`" -#: ../Doc/library/subprocess.rst:552 +#: ../Doc/library/subprocess.rst:555 msgid ":data:`CREATE_DEFAULT_ERROR_MODE`" msgstr ":data:`CREATE_DEFAULT_ERROR_MODE`" -#: ../Doc/library/subprocess.rst:553 +#: ../Doc/library/subprocess.rst:556 msgid ":data:`CREATE_BREAKAWAY_FROM_JOB`" msgstr ":data:`CREATE_BREAKAWAY_FROM_JOB`" -#: ../Doc/library/subprocess.rst:555 +#: ../Doc/library/subprocess.rst:558 msgid "" "Popen objects are supported as context managers via the :keyword:`with` " "statement: on exit, standard file descriptors are closed, and the process is " "waited for. ::" msgstr "" -"Les objets *Popen* sont supportés comme gestionnaires de contexte avec " +"Les objets *Popen* sont gérés comme gestionnaires de contexte avec " "l'instruction :keyword:`with` : à la sortie, les descripteurs de fichiers " -"standards sont fermés, et le processus est attendu : ::" +"standards sont fermés, et le processus est attendu ::" -#: ../Doc/library/subprocess.rst:562 +#: ../Doc/library/subprocess.rst:565 msgid "Added context manager support." -msgstr "Ajout du support des gestionnaires de contexte." +msgstr "Ajout de la gestion des gestionnaires de contexte." -#: ../Doc/library/subprocess.rst:565 +#: ../Doc/library/subprocess.rst:568 msgid "" "Popen destructor now emits a :exc:`ResourceWarning` warning if the child " "process is still running." @@ -997,24 +1018,19 @@ msgstr "" "Le destructeur de *Popen* émet maintenant un avertissement :exc:" "`ResourceWarning` si le processus fils est toujours en cours d'exécution." -#: ../Doc/library/subprocess.rst:571 +#: ../Doc/library/subprocess.rst:574 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/subprocess.rst:573 +#: ../Doc/library/subprocess.rst:576 msgid "" "Exceptions raised in the child process, before the new program has started " -"to execute, will be re-raised in the parent. Additionally, the exception " -"object will have one extra attribute called :attr:`child_traceback`, which " -"is a string containing traceback information from the child's point of view." +"to execute, will be re-raised in the parent." msgstr "" "Les exceptions levées dans le processus fils, avant que le nouveau programme " -"n'ait commencé son exécution, seront relayées dans le parent. " -"Additionnellement, l'objet de l'exception aura un attribut supplémentaire " -"appelé :attr:`child_traceback`, une chaîne de caractères contenant la trace " -"de l'exception du point de vue du fils." +"ait commencé à s'exécuter, seront ré-levées dans le parent." -#: ../Doc/library/subprocess.rst:578 +#: ../Doc/library/subprocess.rst:579 msgid "" "The most common exception raised is :exc:`OSError`. This occurs, for " "example, when trying to execute a non-existent file. Applications should " @@ -1024,7 +1040,7 @@ msgstr "" "par exemple, si vous essayez d'exécuter un fichier inexistant. Les " "applications doivent se préparer à traiter des exceptions :exc:`OSError`." -#: ../Doc/library/subprocess.rst:582 +#: ../Doc/library/subprocess.rst:583 msgid "" "A :exc:`ValueError` will be raised if :class:`Popen` is called with invalid " "arguments." @@ -1032,7 +1048,7 @@ msgstr "" "Une :exc:`ValueError` sera levée si :class:`Popen` est appelé avec des " "arguments invalides." -#: ../Doc/library/subprocess.rst:585 +#: ../Doc/library/subprocess.rst:586 msgid "" ":func:`check_call` and :func:`check_output` will raise :exc:" "`CalledProcessError` if the called process returns a non-zero return code." @@ -1041,7 +1057,7 @@ msgstr "" "`CalledProcessError` si le processus appelé renvoie un code de retour non " "nul." -#: ../Doc/library/subprocess.rst:589 +#: ../Doc/library/subprocess.rst:590 msgid "" "All of the functions and methods that accept a *timeout* parameter, such as :" "func:`call` and :meth:`Popen.communicate` will raise :exc:`TimeoutExpired` " @@ -1051,22 +1067,22 @@ msgstr "" "telles que :func:`call` et :meth:`Popen.communicate` lèveront une :exc:" "`TImeoutExpired` si le *timeout* expire avant la fin du processus." -#: ../Doc/library/subprocess.rst:593 +#: ../Doc/library/subprocess.rst:594 msgid "" "Exceptions defined in this module all inherit from :exc:`SubprocessError`." msgstr "" "Toutes les exceptions définies dans ce module héritent de :exc:" "`SubprocessError`." -#: ../Doc/library/subprocess.rst:595 +#: ../Doc/library/subprocess.rst:596 msgid "The :exc:`SubprocessError` base class was added." msgstr "Ajout de la classe de base :exc:`SubprocessError`." -#: ../Doc/library/subprocess.rst:600 +#: ../Doc/library/subprocess.rst:601 msgid "Security Considerations" msgstr "Considérations de sécurité" -#: ../Doc/library/subprocess.rst:602 +#: ../Doc/library/subprocess.rst:603 msgid "" "Unlike some other popen functions, this implementation will never implicitly " "call a system shell. This means that all characters, including shell " @@ -1085,7 +1101,7 @@ msgstr "" "correctement pour éviter les vulnérabilités de type `shell injection " "`_." -#: ../Doc/library/subprocess.rst:611 +#: ../Doc/library/subprocess.rst:612 msgid "" "When using ``shell=True``, the :func:`shlex.quote` function can be used to " "properly escape whitespace and shell metacharacters in strings that are " @@ -1095,16 +1111,16 @@ msgstr "" "échapper proprement les espaces et métacaractères dans les chaînes qui " "seront utilisées pour construire les commandes *shell*." -#: ../Doc/library/subprocess.rst:617 +#: ../Doc/library/subprocess.rst:618 msgid "Popen Objects" msgstr "Objets *Popen*" -#: ../Doc/library/subprocess.rst:619 +#: ../Doc/library/subprocess.rst:620 msgid "Instances of the :class:`Popen` class have the following methods:" msgstr "" "Les instances de la classe :class:`Popen` possèdent les méthodes suivantes :" -#: ../Doc/library/subprocess.rst:624 +#: ../Doc/library/subprocess.rst:625 msgid "" "Check if child process has terminated. Set and return :attr:`~Popen." "returncode` attribute. Otherwise, returns ``None``." @@ -1112,7 +1128,7 @@ msgstr "" "Vérifie que le processus enfant s'est terminé. Modifie et renvoie " "l'attribut :attr:`~Popen.returncode`, sinon, renvoie ``None``." -#: ../Doc/library/subprocess.rst:630 +#: ../Doc/library/subprocess.rst:631 msgid "" "Wait for child process to terminate. Set and return :attr:`~Popen." "returncode` attribute." @@ -1120,7 +1136,7 @@ msgstr "" "Attend qu'un processus enfant se termine. Modifie l'attribut :attr:`~Popen." "returncode` et le renvoie." -#: ../Doc/library/subprocess.rst:633 +#: ../Doc/library/subprocess.rst:634 msgid "" "If the process does not terminate after *timeout* seconds, raise a :exc:" "`TimeoutExpired` exception. It is safe to catch this exception and retry " @@ -1130,7 +1146,7 @@ msgstr "" "*timeout*, une exception :exc:`TimeoutExpired` est levée. Cela ne pose " "aucun problème d'attraper cette exception et de réessayer d'attendre." -#: ../Doc/library/subprocess.rst:639 +#: ../Doc/library/subprocess.rst:640 msgid "" "This will deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and the " "child process generates enough output to a pipe such that it blocks waiting " @@ -1144,7 +1160,7 @@ msgstr "" "Utilisez :meth:`Popen.communicate` pour éviter ce problème lors de " "l'utilisation de tubes." -#: ../Doc/library/subprocess.rst:646 +#: ../Doc/library/subprocess.rst:647 msgid "" "The function is implemented using a busy loop (non-blocking call and short " "sleeps). Use the :mod:`asyncio` module for an asynchronous wait: see :class:" @@ -1154,13 +1170,13 @@ msgstr "" "et *sleep* courts). Utilisez le module :mod:`asyncio` pour une attente " "asynchrone : voir :class:`asyncio.create_subprocess_exec`." -#: ../Doc/library/subprocess.rst:650 ../Doc/library/subprocess.rst:690 -#: ../Doc/library/subprocess.rst:1024 ../Doc/library/subprocess.rst:1052 -#: ../Doc/library/subprocess.rst:1095 +#: ../Doc/library/subprocess.rst:651 ../Doc/library/subprocess.rst:691 +#: ../Doc/library/subprocess.rst:1025 ../Doc/library/subprocess.rst:1053 +#: ../Doc/library/subprocess.rst:1097 msgid "*timeout* was added." msgstr "Ajout de *timeout*." -#: ../Doc/library/subprocess.rst:655 +#: ../Doc/library/subprocess.rst:656 msgid "" "Interact with process: Send data to stdin. Read data from stdout and " "stderr, until end-of-file is reached. Wait for process to terminate. The " @@ -1175,7 +1191,7 @@ msgstr "" "transmettre. Si les flux sont ouverts en mode texte, *input* doit être une " "chaîne de caractère. Autrement, ce doit être un objet *bytes*." -#: ../Doc/library/subprocess.rst:661 +#: ../Doc/library/subprocess.rst:662 msgid "" ":meth:`communicate` returns a tuple ``(stdout_data, stderr_data)``. The data " "will be strings if streams were opened in text mode; otherwise, bytes." @@ -1184,7 +1200,7 @@ msgstr "" "données seront des chaînes de caractères si les flux sont ouverts en mode " "texte, et des objets *bytes* dans le cas contraire." -#: ../Doc/library/subprocess.rst:665 +#: ../Doc/library/subprocess.rst:666 msgid "" "Note that if you want to send data to the process's stdin, you need to " "create the Popen object with ``stdin=PIPE``. Similarly, to get anything " @@ -1196,7 +1212,7 @@ msgstr "" "Similairement, pour obtenir autre chose que ``None`` dans le *tuple* " "résultant, vous devez aussi préciser ``stdout=PIPE`` et/ou ``stderr=PIPE``." -#: ../Doc/library/subprocess.rst:670 +#: ../Doc/library/subprocess.rst:671 msgid "" "If the process does not terminate after *timeout* seconds, a :exc:" "`TimeoutExpired` exception will be raised. Catching this exception and " @@ -1206,7 +1222,7 @@ msgstr "" "exc:`TimeoutExpired` est levée. Attraper cette exception et retenter la " "communication ne fait perdre aucune donnée de sortie." -#: ../Doc/library/subprocess.rst:674 +#: ../Doc/library/subprocess.rst:675 msgid "" "The child process is not killed if the timeout expires, so in order to " "cleanup properly a well-behaved application should kill the child process " @@ -1214,9 +1230,9 @@ msgid "" msgstr "" "Le processus enfant n'est pas tué si le *timeout* expire, donc afin de " "nettoyer proprement le tout, une application polie devrait tuer le processus " -"fils et terminer la communication : ::" +"fils et terminer la communication ::" -#: ../Doc/library/subprocess.rst:687 +#: ../Doc/library/subprocess.rst:688 msgid "" "The data read is buffered in memory, so do not use this method if the data " "size is large or unlimited." @@ -1224,11 +1240,11 @@ msgstr "" "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/subprocess.rst:696 +#: ../Doc/library/subprocess.rst:697 msgid "Sends the signal *signal* to the child." msgstr "Envoie le signal *signal* au fils." -#: ../Doc/library/subprocess.rst:700 +#: ../Doc/library/subprocess.rst:701 msgid "" "On Windows, SIGTERM is an alias for :meth:`terminate`. CTRL_C_EVENT and " "CTRL_BREAK_EVENT can be sent to processes started with a *creationflags* " @@ -1238,7 +1254,7 @@ msgstr "" "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/subprocess.rst:707 +#: ../Doc/library/subprocess.rst:708 msgid "" "Stop the child. On Posix OSs the method sends SIGTERM to the child. On " "Windows the Win32 API function :c:func:`TerminateProcess` is called to stop " @@ -1248,7 +1264,7 @@ msgstr "" "signal *SIGTERM* au fils. Sous Windows, la fonction :c:func:" "`TerminateProcess` de l'API *Win32* est appelée pour arrêter le fils." -#: ../Doc/library/subprocess.rst:714 +#: ../Doc/library/subprocess.rst:715 msgid "" "Kills the child. On Posix OSs the function sends SIGKILL to the child. On " "Windows :meth:`kill` is an alias for :meth:`terminate`." @@ -1257,11 +1273,11 @@ msgstr "" "*SIGKILL* au fils. Sous Windows, :meth:`kill` est un alias pour :meth:" "`terminate`." -#: ../Doc/library/subprocess.rst:718 +#: ../Doc/library/subprocess.rst:719 msgid "The following attributes are also available:" msgstr "Les attributs suivants sont aussi disponibles :" -#: ../Doc/library/subprocess.rst:722 +#: ../Doc/library/subprocess.rst:723 msgid "" "The *args* argument as it was passed to :class:`Popen` -- a sequence of " "program arguments or else a single string." @@ -1269,7 +1285,7 @@ msgstr "" "L'argument *args* tel que passé à :class:`Popen` -- une séquence d'arguments " "du programme ou une simple chaîne de caractères." -#: ../Doc/library/subprocess.rst:729 +#: ../Doc/library/subprocess.rst:730 msgid "" "If the *stdin* argument was :data:`PIPE`, this attribute is a writeable " "stream object as returned by :func:`open`. If the *encoding* or *errors* " @@ -1283,7 +1299,7 @@ msgstr "" "``True``, le flux est textuel, il est autrement binaire. Si l'argument " "*stdin* ne valait pas :data:`PIPE`, cet attribut est ``None``." -#: ../Doc/library/subprocess.rst:738 +#: ../Doc/library/subprocess.rst:739 msgid "" "If the *stdout* argument was :data:`PIPE`, this attribute is a readable " "stream object as returned by :func:`open`. Reading from the stream provides " @@ -1299,7 +1315,7 @@ msgstr "" "textuel, il est autrement binaire. Si l'argument *stdout* ne valait pas :" "data:`PIPE`, cet attribut est ``None``." -#: ../Doc/library/subprocess.rst:748 +#: ../Doc/library/subprocess.rst:749 msgid "" "If the *stderr* argument was :data:`PIPE`, this attribute is a readable " "stream object as returned by :func:`open`. Reading from the stream provides " @@ -1315,7 +1331,7 @@ msgstr "" "flux est textuel, il est autrement binaire. Si l'argument *stderr* ne valait " "pas :data:`PIPE`, cet attribut est ``None``." -#: ../Doc/library/subprocess.rst:757 +#: ../Doc/library/subprocess.rst:758 msgid "" "Use :meth:`~Popen.communicate` rather than :attr:`.stdin.write `, :attr:`.stdout.read ` or :attr:`.stderr.read ` pour empêcher les *deadlocks* dus au remplissage des tampons des " "tubes de l'OS et bloquant le processus enfant." -#: ../Doc/library/subprocess.rst:765 +#: ../Doc/library/subprocess.rst:766 msgid "The process ID of the child process." msgstr "L'identifiant de processus du processus enfant." -#: ../Doc/library/subprocess.rst:767 +#: ../Doc/library/subprocess.rst:768 msgid "" "Note that if you set the *shell* argument to ``True``, this is the process " "ID of the spawned shell." @@ -1339,7 +1355,7 @@ msgstr "" "Notez que si vous passez l'argument *shell* à ``True``, il s'agit alors de " "l'identifiant du *shell* instancié." -#: ../Doc/library/subprocess.rst:773 +#: ../Doc/library/subprocess.rst:774 msgid "" "The child return code, set by :meth:`poll` and :meth:`wait` (and indirectly " "by :meth:`communicate`). A ``None`` value indicates that the process hasn't " @@ -1349,11 +1365,11 @@ msgstr "" "indirectement par :meth:`communicate`). Une valeur ``None`` indique que le " "processus ne s'est pas encore terminé." -#: ../Doc/library/subprocess.rst:782 +#: ../Doc/library/subprocess.rst:783 msgid "Windows Popen Helpers" msgstr "Utilitaires *Popen* pour Windows" -#: ../Doc/library/subprocess.rst:784 +#: ../Doc/library/subprocess.rst:785 msgid "" "The :class:`STARTUPINFO` class and following constants are only available on " "Windows." @@ -1361,62 +1377,62 @@ msgstr "" "La classe :class:`STARTUPINFO` et les constantes suivantes sont seulement " "disponibles sous Windows." -#: ../Doc/library/subprocess.rst:790 +#: ../Doc/library/subprocess.rst:791 msgid "" "Partial support of the Windows `STARTUPINFO `__ structure is used for :class:`Popen` " "creation. The following attributes can be set by passing them as keyword-" "only arguments." msgstr "" -"Un support partiel de la structure `STARTUPINFO `__ est utilisé lors de la création " -"d'un objet :class:`Popen`. Les attributs ci-dessous peuvent être passés en " -"tant que paramètres *keyword-only*." +"Une gestion partielle de la structure `STARTUPINFO `__ est utilisée lors de la " +"création d'un objet :class:`Popen`. Les attributs ci-dessous peuvent être " +"passés en tant que paramètres *keyword-only*." -#: ../Doc/library/subprocess.rst:795 +#: ../Doc/library/subprocess.rst:796 msgid "Keyword-only argument support was added." msgstr "Ajout de la gestion des paramètres *keyword-only*." -#: ../Doc/library/subprocess.rst:800 +#: ../Doc/library/subprocess.rst:801 msgid "" "A bit field that determines whether certain :class:`STARTUPINFO` attributes " "are used when the process creates a window. ::" msgstr "" "Un champ de bits déterminant si certains attributs :class:`STARTUPINFO` sont " -"utilisés quand le processus crée une fenêtre : ::" +"utilisés quand le processus crée une fenêtre ::" -#: ../Doc/library/subprocess.rst:808 +#: ../Doc/library/subprocess.rst:809 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard input handle for the process. If :data:`STARTF_USESTDHANDLES` " "is not specified, the default for standard input is the keyboard buffer." msgstr "" "Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " -"le gestionnaire d'entrée standard du processus. Si :data:" +"le descripteur d'entrée standard du processus. Si :data:" "`STARTF_USESTDHANDLES` n'est pas spécifié, l'entrée standard par défaut est " "le tampon du clavier." -#: ../Doc/library/subprocess.rst:815 +#: ../Doc/library/subprocess.rst:816 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard output handle for the process. Otherwise, this attribute is " "ignored and the default for standard output is the console window's buffer." msgstr "" "Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " -"le gestionnaire de sortie standard du processus. Autrement, l'attribut est " +"le descripteur de sortie standard du processus. Autrement, l'attribut est " "ignoré et la sortie standard par défaut est le tampon de la console." -#: ../Doc/library/subprocess.rst:822 +#: ../Doc/library/subprocess.rst:823 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard error handle for the process. Otherwise, this attribute is " "ignored and the default for standard error is the console window's buffer." msgstr "" "Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " -"le gestionnaire de sortie d'erreur du processus. Autrement, l'attribut est " +"le descripteur de sortie d'erreur du processus. Autrement, l'attribut est " "ignoré et la sortie d'erreur par défaut est le tampon de la console." -#: ../Doc/library/subprocess.rst:828 +#: ../Doc/library/subprocess.rst:829 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESHOWWINDOW`, this attribute " "can be any of the values that can be specified in the ``nCmdShow`` parameter " @@ -1430,7 +1446,7 @@ msgstr "" "ms633548(v=vs.85).aspx>`__, à l'exception de ``SW_SHOWDEFAULT``. Autrement, " "cet attribut est ignoré." -#: ../Doc/library/subprocess.rst:835 +#: ../Doc/library/subprocess.rst:836 msgid "" ":data:`SW_HIDE` is provided for this attribute. It is used when :class:" "`Popen` is called with ``shell=True``." @@ -1438,36 +1454,46 @@ msgstr "" ":data:`SW_HIDE` est fourni pour cet attribut. Il est utilisé quand :class:" "`Popen` est appelée avec ``shell=True``." -#: ../Doc/library/subprocess.rst:840 +#: ../Doc/library/subprocess.rst:841 msgid "" "A dictionary of additional attributes for process creation as given in " "``STARTUPINFOEX``, see `UpdateProcThreadAttribute `__." msgstr "" +"Dictionnaire des attributs supplémentaires pour la création d'un processus " +"comme donnés dans ``STARTUPINFOEX``, lisez `UpdateProcThreadAttribute " +"`__ (ressource en anglais)." -#: ../Doc/library/subprocess.rst:844 +#: ../Doc/library/subprocess.rst:845 msgid "Supported attributes:" -msgstr "" +msgstr "Attributs gérés :" -#: ../Doc/library/subprocess.rst:862 +#: ../Doc/library/subprocess.rst:863 msgid "**handle_list**" -msgstr "" +msgstr "**handle_list**" -#: ../Doc/library/subprocess.rst:847 +#: ../Doc/library/subprocess.rst:848 msgid "" "Sequence of handles that will be inherited. *close_fds* must be true if non-" "empty." msgstr "" +"Séquence des descripteurs qui hérités du parent. *close_fds* doit être vrai " +"si la séquence n'est pas vide." -#: ../Doc/library/subprocess.rst:850 +#: ../Doc/library/subprocess.rst:851 msgid "" "The handles must be temporarily made inheritable by :func:`os." "set_handle_inheritable` when passed to the :class:`Popen` constructor, else :" "class:`OSError` will be raised with Windows error " "``ERROR_INVALID_PARAMETER`` (87)." msgstr "" +"Les descripteurs doivent être temporairement héritables par :func:`os." +"set_handle_inheritable` quand ils sont passés au constructeur :class:" +"`Popen`, sinon :class:`OSError` est levée avec l'erreur Windows " +"``ERROR_INVALID_PARAMETER`` (87)." -#: ../Doc/library/subprocess.rst:857 +#: ../Doc/library/subprocess.rst:858 msgid "" "In a multithreaded process, use caution to avoid leaking handles that are " "marked inheritable when combining this feature with concurrent calls to " @@ -1475,16 +1501,21 @@ msgid "" "system`. This also applies to standard handle redirection, which " "temporarily creates inheritable handles." msgstr "" +"Dans un processus avec plusieurs fils d'exécution, faites très attention à " +"éviter la fuite de descripteurs qui sont marqués comme héritables quand vous " +"combinez ceci avec des appels concurrents vers des fonctions de création " +"d'autres processus qui héritent de tous les descripteurs (telle que :func:" +"`os.system`)." -#: ../Doc/library/subprocess.rst:867 +#: ../Doc/library/subprocess.rst:868 msgid "Windows Constants" msgstr "Constantes Windows" -#: ../Doc/library/subprocess.rst:869 +#: ../Doc/library/subprocess.rst:870 msgid "The :mod:`subprocess` module exposes the following constants." msgstr "Le module :mod:`subprocess` expose les constantes suivantes." -#: ../Doc/library/subprocess.rst:873 +#: ../Doc/library/subprocess.rst:874 msgid "" "The standard input device. Initially, this is the console input buffer, " "``CONIN$``." @@ -1492,7 +1523,7 @@ msgstr "" "Le périphérique d'entrée standard. Initialement, il s'agit du tampon de la " "console d'entrée, ``CONIN$``." -#: ../Doc/library/subprocess.rst:878 +#: ../Doc/library/subprocess.rst:879 msgid "" "The standard output device. Initially, this is the active console screen " "buffer, ``CONOUT$``." @@ -1500,7 +1531,7 @@ msgstr "" "Le périphérique de sortie standard. Initialement, il s'agit du tampon de " "l'écran de console actif, ``CONOUT$``." -#: ../Doc/library/subprocess.rst:883 +#: ../Doc/library/subprocess.rst:884 msgid "" "The standard error device. Initially, this is the active console screen " "buffer, ``CONOUT$``." @@ -1508,11 +1539,11 @@ msgstr "" "Le périphérique de sortie d'erreur. Initialement, il s'agit du tampon de " "l'écran de console actif, ``CONOUT$``." -#: ../Doc/library/subprocess.rst:888 +#: ../Doc/library/subprocess.rst:889 msgid "Hides the window. Another window will be activated." msgstr "Cache la fenêtre. Une autre fenêtre sera activée." -#: ../Doc/library/subprocess.rst:892 +#: ../Doc/library/subprocess.rst:893 msgid "" "Specifies that the :attr:`STARTUPINFO.hStdInput`, :attr:`STARTUPINFO." "hStdOutput`, and :attr:`STARTUPINFO.hStdError` attributes contain additional " @@ -1522,7 +1553,7 @@ msgstr "" "hStdOutput` et :attr:`STARTUPINFO.hStdError` contiennent des informations " "additionnelles." -#: ../Doc/library/subprocess.rst:898 +#: ../Doc/library/subprocess.rst:899 msgid "" "Specifies that the :attr:`STARTUPINFO.wShowWindow` attribute contains " "additional information." @@ -1530,7 +1561,7 @@ msgstr "" "Spécifie que l'attribut :attr:`STARTUPINFO.wShowWindow` contient des " "informations additionnelles." -#: ../Doc/library/subprocess.rst:903 +#: ../Doc/library/subprocess.rst:904 msgid "" "The new process has a new console, instead of inheriting its parent's " "console (the default)." @@ -1538,61 +1569,61 @@ msgstr "" "Le nouveau processus instancie une nouvelle console, plutôt que d'hériter de " "celle de son père (par défaut)." -#: ../Doc/library/subprocess.rst:908 +#: ../Doc/library/subprocess.rst:909 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "group will be created. This flag is necessary for using :func:`os.kill` on " "the subprocess." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier si un " -"nouveau groupe de processus doit être créé. Cette option est nécessaire pour " +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier si un nouveau " +"groupe de processus doit être créé. Cette option est nécessaire pour " "utiliser :func:`os.kill` sur le sous-processus." -#: ../Doc/library/subprocess.rst:912 +#: ../Doc/library/subprocess.rst:913 msgid "This flag is ignored if :data:`CREATE_NEW_CONSOLE` is specified." msgstr "L'option est ignorée si :data:`CREATE_NEW_CONSOLE` est spécifié." -#: ../Doc/library/subprocess.rst:916 +#: ../Doc/library/subprocess.rst:917 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an above average priority." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un " -"processus aura une priorité au dessus de la moyenne." +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura une priorité au-dessus de la moyenne." -#: ../Doc/library/subprocess.rst:923 +#: ../Doc/library/subprocess.rst:924 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a below average priority." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un " -"processus aura une priorité au dessous de la moyenne." +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura une priorité au-dessous de la moyenne." -#: ../Doc/library/subprocess.rst:930 +#: ../Doc/library/subprocess.rst:931 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a high priority." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un " -"processus aura une priorité haute." +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura une priorité haute." -#: ../Doc/library/subprocess.rst:937 +#: ../Doc/library/subprocess.rst:938 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an idle (lowest) priority." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un " -"processus aura la priorité la plus basse (inactif ou *idle*)." +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura la priorité la plus basse (inactif ou *idle*)." -#: ../Doc/library/subprocess.rst:944 +#: ../Doc/library/subprocess.rst:945 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an normal priority. (default)" msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un " -"processus aura une priorité normale (le défaut)." +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura une priorité normale (le défaut)." -#: ../Doc/library/subprocess.rst:951 +#: ../Doc/library/subprocess.rst:952 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have realtime priority. You should almost never use " @@ -1601,46 +1632,59 @@ msgid "" "appropriate for applications that \"talk\" directly to hardware or that " "perform brief tasks that should have limited interruptions." msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu’un nouveau " +"processus aura une priorité en temps réel. Vous ne devriez presque JAMAIS " +"utiliser REALTIME_PRIORITY_CLASS, car cela interrompt les fils d’exécution " +"système qui gèrent les entrées de la souris, du clavier et `flush` le cache " +"de disque en arrière-plan. Cette classe peut convenir aux applications qui " +"« parlent » directement au matériel ou qui effectuent de brèves tâches " +"nécessitant des interruptions limitées." -#: ../Doc/library/subprocess.rst:962 +#: ../Doc/library/subprocess.rst:963 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " -"will not create a window" +"will not create a window." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un " -"processus ne créera pas une nouvelle fenêtre." +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"ne créera pas une nouvelle fenêtre." -#: ../Doc/library/subprocess.rst:969 +#: ../Doc/library/subprocess.rst:970 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will not inherit its parent's console. This value cannot be used with " "CREATE_NEW_CONSOLE." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un " -"nouveau processus n'héritera pas de la console du processus parent. Cette " -"valeur ne peut pas être utilisée avec CREATE_NEW_CONSOLE." +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un nouveau " +"processus n'héritera pas de la console du processus parent. Cette valeur ne " +"peut pas être utilisée avec CREATE_NEW_CONSOLE." -#: ../Doc/library/subprocess.rst:977 +#: ../Doc/library/subprocess.rst:978 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "does not inherit the error mode of the calling process. Instead, the new " "process gets the default error mode. This feature is particularly useful for " "multithreaded shell applications that run with hard errors disabled." msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un nouveau " +"processus n'hérite pas du mode de gestion des erreurs du processus appelant. " +"À la place, le nouveau processus acquiert le mode d'erreur par défaut. Cette " +"fonctionnalité est particulièrement utile pour les applications *shell* avec " +"de multiples fils d'exécution qui s'exécutent avec les erreurs irréversibles " +"désactivées." -#: ../Doc/library/subprocess.rst:987 +#: ../Doc/library/subprocess.rst:988 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "is not associated with the job." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un " -"processus n'est pas associé au *job*." +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"n'est pas associé au *job*." -#: ../Doc/library/subprocess.rst:995 +#: ../Doc/library/subprocess.rst:996 msgid "Older high-level API" msgstr "Ancienne interface (*API*) haut-niveau" -#: ../Doc/library/subprocess.rst:997 +#: ../Doc/library/subprocess.rst:998 msgid "" "Prior to Python 3.5, these three functions comprised the high level API to " "subprocess. You can now use :func:`run` in many cases, but lots of existing " @@ -1650,7 +1694,7 @@ msgstr "" "*subprocess*. Vous pouvez maintenant utiliser :func:`run` dans de nombreux " "cas, mais beaucoup de codes existant font appel à ces trois fonctions." -#: ../Doc/library/subprocess.rst:1003 +#: ../Doc/library/subprocess.rst:1004 msgid "" "Run the command described by *args*. Wait for command to complete, then " "return the :attr:`~Popen.returncode` attribute." @@ -1658,28 +1702,34 @@ msgstr "" "Lance la commande décrite par *args*, attend qu'elle se termine, et renvoie " "son attribut :attr:`~Popen.returncode`." -#: ../Doc/library/subprocess.rst:1006 ../Doc/library/subprocess.rst:1034 -#: ../Doc/library/subprocess.rst:1067 -msgid "This is equivalent to::" -msgstr "C’est équivalent à ::" +#: ../Doc/library/subprocess.rst:1007 ../Doc/library/subprocess.rst:1035 +msgid "" +"Code needing to capture stdout or stderr should use :func:`run` instead:" +msgstr "" +"Le code qui a besoin de capturer *stdout* ou *stderr* doit plutôt utiliser :" +"func:`run` :" -#: ../Doc/library/subprocess.rst:1010 -msgid "(except that the *input* and *check* parameters are not supported)" -msgstr "(excepté que les paramètres *input* et *check* ne sont pas supportés)" +#: ../Doc/library/subprocess.rst:1009 +msgid "run(...).returncode" +msgstr "``run(...).returncode``" -#: ../Doc/library/subprocess.rst:1012 ../Doc/library/subprocess.rst:1040 +#: ../Doc/library/subprocess.rst:1011 ../Doc/library/subprocess.rst:1039 +msgid "To suppress stdout or stderr, supply a value of :data:`DEVNULL`." +msgstr "Pour supprimer *stdout* ou *stderr*, passez la valeur :data:`DEVNULL`." + +#: ../Doc/library/subprocess.rst:1013 ../Doc/library/subprocess.rst:1041 msgid "" -"The arguments shown above are merely the most common ones. The full function " -"signature is largely the same as that of the :class:`Popen` constructor - " -"this function passes all supplied arguments other than *timeout* directly " -"through to that interface." +"The arguments shown above are merely some common ones. The full function " +"signature is the same as that of the :class:`Popen` constructor - this " +"function passes all supplied arguments other than *timeout* directly through " +"to that interface." msgstr "" "Les arguments montrés plus haut sont sûrement les plus communs. La signature " "complète de la fonction est en grande partie la même que le constructeur de :" "class:`Popen` : cette fonction passe tous les arguments fournis autre que " "*timeout* directement à travers cette interface." -#: ../Doc/library/subprocess.rst:1019 ../Doc/library/subprocess.rst:1047 +#: ../Doc/library/subprocess.rst:1020 ../Doc/library/subprocess.rst:1048 msgid "" "Do not use ``stdout=PIPE`` or ``stderr=PIPE`` with this function. The child " "process will block if it generates enough output to a pipe to fill up the OS " @@ -1689,7 +1739,7 @@ msgstr "" "processus enfant bloquera s'il génère assez de données pour remplir le " "tampon du tube de l'OS, puisque les tubes ne seront jamais lus." -#: ../Doc/library/subprocess.rst:1029 +#: ../Doc/library/subprocess.rst:1030 msgid "" "Run command with arguments. Wait for command to complete. If the return " "code was zero then return, otherwise raise :exc:`CalledProcessError`. The :" @@ -1701,15 +1751,15 @@ msgstr "" "`CalledProcessError` autrement. L'objet :exc:`CalledProcessError` contiendra " "le code de retour dans son attribut :attr:`~CalledProcessError.returncode`." -#: ../Doc/library/subprocess.rst:1038 -msgid "(except that the *input* parameter is not supported)" -msgstr "(excepté que le paramètre *input* n'est pas pris en charge)" +#: ../Doc/library/subprocess.rst:1037 +msgid "run(..., check=True)" +msgstr "``run(..., check=True)``" -#: ../Doc/library/subprocess.rst:1060 +#: ../Doc/library/subprocess.rst:1061 msgid "Run command with arguments and return its output." msgstr "Lance la commande avec les arguments et renvoie sa sortie." -#: ../Doc/library/subprocess.rst:1062 +#: ../Doc/library/subprocess.rst:1063 msgid "" "If the return code was non-zero it raises a :exc:`CalledProcessError`. The :" "exc:`CalledProcessError` object will have the return code in the :attr:" @@ -1721,9 +1771,13 @@ msgstr "" "de retour dans son attribut :attr:`~CalledProcessError.returncode`, et la " "sortie du programme dans son attribut :attr:`~CalledProcessError.output`." -#: ../Doc/library/subprocess.rst:1071 +#: ../Doc/library/subprocess.rst:1068 +msgid "This is equivalent to::" +msgstr "C’est équivalent à ::" + +#: ../Doc/library/subprocess.rst:1072 msgid "" -"The arguments shown above are merely the most common ones. The full function " +"The arguments shown above are merely some common ones. The full function " "signature is largely the same as that of :func:`run` - most arguments are " "passed directly through to that interface. However, explicitly passing " "``input=None`` to inherit the parent's standard input file handle is not " @@ -1731,11 +1785,11 @@ msgid "" msgstr "" "Les arguments montrés plus haut sont sûrement les plus communs. La signature " "complète de la fonction est en grande partie la même que :func:`run` : la " -"plupart des arguments sont passés directement par cette interface. " -"Cependant, passer explicitement ``input=None`` pour hériter du gestionnaire " -"d'entrée standard du parent n'est pas supporté." +"plupart des arguments sont passés directement par cette interface. " +"Cependant, passer explicitement ``input=None`` pour hériter du descripteur " +"d'entrée standard du parent n'est pas géré." -#: ../Doc/library/subprocess.rst:1077 +#: ../Doc/library/subprocess.rst:1078 msgid "" "By default, this function will return the data as encoded bytes. The actual " "encoding of the output data may depend on the command being invoked, so the " @@ -1746,37 +1800,39 @@ msgstr "" "invoquée, donc le décodage du texte devra souvent être géré au niveau de " "l'application." -#: ../Doc/library/subprocess.rst:1081 +#: ../Doc/library/subprocess.rst:1082 msgid "" -"This behaviour may be overridden by setting *universal_newlines* to ``True`` " -"as described above in :ref:`frequently-used-arguments`." +"This behaviour may be overridden by setting *text*, *encoding*, *errors*, or " +"*universal_newlines* to ``True`` as described in :ref:`frequently-used-" +"arguments` and :func:`run`." msgstr "" -"Ce comportement peut être redéfini en mettant *universal_newlines* à " -"``True`` comme décrit ci-dessus dans :ref:`frequently-used-arguments`." +"Ce comportement peut être redéfini en mettant *text*, *encoding*, *errors*, " +"ou *universal_newlines* à ``True`` comme décrit dans :ref:`frequently-used-" +"arguments` et :func:`run`." -#: ../Doc/library/subprocess.rst:1084 +#: ../Doc/library/subprocess.rst:1086 msgid "" "To also capture standard error in the result, use ``stderr=subprocess." "STDOUT``::" msgstr "" "Pour capturer aussi la sortie d'erreur dans le résultat, utilisez " -"``stderr=subprocess.STDOUT`` : ::" +"``stderr=subprocess.STDOUT`` ::" -#: ../Doc/library/subprocess.rst:1098 +#: ../Doc/library/subprocess.rst:1100 msgid "Support for the *input* keyword argument was added." -msgstr "Ajout du support de l'argument nommé *input*." +msgstr "Ajout de la gestion de l'argument nommé *input*." -#: ../Doc/library/subprocess.rst:1101 +#: ../Doc/library/subprocess.rst:1103 msgid "*encoding* and *errors* were added. See :func:`run` for details." msgstr "" "Ajout d'*encoding* et *errors*. Consultez :func:`run` pour plus " "d'informations." -#: ../Doc/library/subprocess.rst:1107 +#: ../Doc/library/subprocess.rst:1113 msgid "Replacing Older Functions with the :mod:`subprocess` Module" msgstr "Remplacer les fonctions plus anciennes par le module :mod:`subprocess`" -#: ../Doc/library/subprocess.rst:1109 +#: ../Doc/library/subprocess.rst:1115 msgid "" "In this section, \"a becomes b\" means that b can be used as a replacement " "for a." @@ -1784,7 +1840,7 @@ msgstr "" "Dans cette section, « a devient b » signifie que b peut être utilisée en " "remplacement de a." -#: ../Doc/library/subprocess.rst:1113 +#: ../Doc/library/subprocess.rst:1119 msgid "" "All \"a\" functions in this section fail (more or less) silently if the " "executed program cannot be found; the \"b\" replacements raise :exc:" @@ -1794,7 +1850,7 @@ msgstr "" "silencieusement si le programme à exécuter ne peut être trouvé ; les " "fonctions « b » de remplacement lèvent à la place une :exc:`OSError`." -#: ../Doc/library/subprocess.rst:1117 +#: ../Doc/library/subprocess.rst:1123 msgid "" "In addition, the replacements using :func:`check_output` will fail with a :" "exc:`CalledProcessError` if the requested operation produces a non-zero " @@ -1806,7 +1862,7 @@ msgstr "" "retour non-nul. La sortie est toujours disponible par l'attribut :attr:" "`~CalledProcessError.output` de l'exception levée." -#: ../Doc/library/subprocess.rst:1122 +#: ../Doc/library/subprocess.rst:1128 msgid "" "In the following examples, we assume that the relevant functions have " "already been imported from the :mod:`subprocess` module." @@ -1814,20 +1870,20 @@ msgstr "" "Dans les exemples suivants, nous supposons que les fonctions utilisées ont " "déjà été importées depuis le module :mod:`subprocess`." -#: ../Doc/library/subprocess.rst:1127 +#: ../Doc/library/subprocess.rst:1133 msgid "Replacing /bin/sh shell backquote" msgstr "Remplacement des *backquotes* des *shells /bin/sh*" -#: ../Doc/library/subprocess.rst:1133 ../Doc/library/subprocess.rst:1144 -#: ../Doc/library/subprocess.rst:1161 +#: ../Doc/library/subprocess.rst:1139 ../Doc/library/subprocess.rst:1150 +#: ../Doc/library/subprocess.rst:1167 msgid "becomes::" -msgstr "devient : ::" +msgstr "devient ::" -#: ../Doc/library/subprocess.rst:1138 +#: ../Doc/library/subprocess.rst:1144 msgid "Replacing shell pipeline" msgstr "Remplacer les *pipes* du *shell*" -#: ../Doc/library/subprocess.rst:1151 +#: ../Doc/library/subprocess.rst:1157 msgid "" "The p1.stdout.close() call after starting the p2 is important in order for " "p1 to receive a SIGPIPE if p2 exits before p1." @@ -1835,64 +1891,64 @@ msgstr "" "L'appel à *p1.stdout.close()* après le démarrage de *p2* est important pour " "que *p1* reçoive un *SIGPIPE* si *p2* se termine avant lui." -#: ../Doc/library/subprocess.rst:1154 +#: ../Doc/library/subprocess.rst:1160 msgid "" "Alternatively, for trusted input, the shell's own pipeline support may still " "be used directly:" msgstr "" -"Alternativement, pour des entrées fiables, le support des tubes du *shell* " +"Alternativement, pour des entrées fiables, la gestion des tubes du *shell* " "peut directement être utilisé :" -#: ../Doc/library/subprocess.rst:1167 +#: ../Doc/library/subprocess.rst:1173 msgid "Replacing :func:`os.system`" msgstr "Remplacer :func:`os.system`" -#: ../Doc/library/subprocess.rst:1175 +#: ../Doc/library/subprocess.rst:1181 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/subprocess.rst:1177 +#: ../Doc/library/subprocess.rst:1183 msgid "Calling the program through the shell is usually not required." msgstr "" "Appeler le programme à travers un *shell* n'est habituellement pas requis." -#: ../Doc/library/subprocess.rst:1179 +#: ../Doc/library/subprocess.rst:1185 msgid "A more realistic example would look like this::" -msgstr "Un exemple plus réaliste ressemblerait à cela : ::" +msgstr "Un exemple plus réaliste ressemblerait à cela ::" -#: ../Doc/library/subprocess.rst:1192 +#: ../Doc/library/subprocess.rst:1198 msgid "Replacing the :func:`os.spawn ` family" msgstr "Remplacer les fonctions de la famille :func:`os.spawn `" -#: ../Doc/library/subprocess.rst:1194 +#: ../Doc/library/subprocess.rst:1200 msgid "P_NOWAIT example::" -msgstr "Exemple avec *P_NOWAIT* : ::" +msgstr "Exemple avec *P_NOWAIT* ::" -#: ../Doc/library/subprocess.rst:1200 +#: ../Doc/library/subprocess.rst:1206 msgid "P_WAIT example::" -msgstr "Exemple avec *P_WAIT* : ::" +msgstr "Exemple avec *P_WAIT* ::" -#: ../Doc/library/subprocess.rst:1206 +#: ../Doc/library/subprocess.rst:1212 msgid "Vector example::" -msgstr "Exemple avec un tableau : ::" +msgstr "Exemple avec un tableau ::" -#: ../Doc/library/subprocess.rst:1212 +#: ../Doc/library/subprocess.rst:1218 msgid "Environment example::" -msgstr "Exemple en passant un environnement : ::" +msgstr "Exemple en passant un environnement ::" -#: ../Doc/library/subprocess.rst:1221 +#: ../Doc/library/subprocess.rst:1227 msgid "Replacing :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" -msgstr "Remplacer :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3` etc." +msgstr "Remplacer :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" -#: ../Doc/library/subprocess.rst:1251 +#: ../Doc/library/subprocess.rst:1257 msgid "Return code handling translates as follows::" -msgstr "La gestion du code de retour se traduit comme suit : ::" +msgstr "La gestion du code de retour se traduit comme suit ::" -#: ../Doc/library/subprocess.rst:1267 +#: ../Doc/library/subprocess.rst:1273 msgid "Replacing functions from the :mod:`popen2` module" msgstr "Remplacer les fonctions du module :mod:`popen2`" -#: ../Doc/library/subprocess.rst:1271 +#: ../Doc/library/subprocess.rst:1277 msgid "" "If the cmd argument to popen2 functions is a string, the command is executed " "through /bin/sh. If it is a list, the command is directly executed." @@ -1901,7 +1957,7 @@ msgstr "" "la commande est exécutée à travers */bin/sh*. Si c'est une liste, la " "commande est directement exécutée." -#: ../Doc/library/subprocess.rst:1290 +#: ../Doc/library/subprocess.rst:1296 msgid "" ":class:`popen2.Popen3` and :class:`popen2.Popen4` basically work as :class:" "`subprocess.Popen`, except that:" @@ -1909,19 +1965,19 @@ msgstr "" ":class:`popen2.Popen3` et :class:`popen2.Popen4` fonctionnent basiquement " "comme :class:`subprocess.Popen`, excepté que :" -#: ../Doc/library/subprocess.rst:1293 +#: ../Doc/library/subprocess.rst:1299 msgid ":class:`Popen` raises an exception if the execution fails." msgstr ":class:`Popen` lève une exception si l'exécution échoue." -#: ../Doc/library/subprocess.rst:1295 -msgid "the *capturestderr* argument is replaced with the *stderr* argument." +#: ../Doc/library/subprocess.rst:1301 +msgid "The *capturestderr* argument is replaced with the *stderr* argument." msgstr "L'argument *capturestderr* est remplacé par *stderr*." -#: ../Doc/library/subprocess.rst:1297 +#: ../Doc/library/subprocess.rst:1303 msgid "``stdin=PIPE`` and ``stdout=PIPE`` must be specified." msgstr "``stdin=PIPE`` et ``stdout=PIPE`` doivent être spécifiés." -#: ../Doc/library/subprocess.rst:1299 +#: ../Doc/library/subprocess.rst:1305 msgid "" "popen2 closes all file descriptors by default, but you have to specify " "``close_fds=True`` with :class:`Popen` to guarantee this behavior on all " @@ -1931,11 +1987,11 @@ msgstr "" "spécifier ``close_fds=True`` avec :class:`Popen` pour garantir ce " "comportement sur toutes les plateformes ou les anciennes versions de Python." -#: ../Doc/library/subprocess.rst:1305 +#: ../Doc/library/subprocess.rst:1311 msgid "Legacy Shell Invocation Functions" msgstr "Remplacement des fonctions originales d'invocation du *shell*" -#: ../Doc/library/subprocess.rst:1307 +#: ../Doc/library/subprocess.rst:1313 msgid "" "This module also provides the following legacy functions from the 2.x " "``commands`` module. These operations implicitly invoke the system shell and " @@ -1947,13 +2003,13 @@ msgstr "" "*shell* du système et n'apportent aucune des garanties décrites ci-dessus " "par rapport à la sécurité ou la cohérence de la gestion des exceptions." -#: ../Doc/library/subprocess.rst:1314 +#: ../Doc/library/subprocess.rst:1320 msgid "Return ``(exitcode, output)`` of executing *cmd* in a shell." msgstr "" "Renvoie les valeurs ``(exitcode, output)`` de l'exécution de *cmd* dans un " "*shell*." -#: ../Doc/library/subprocess.rst:1316 +#: ../Doc/library/subprocess.rst:1322 msgid "" "Execute the string *cmd* in a shell with :meth:`Popen.check_output` and " "return a 2-tuple ``(exitcode, output)``. The locale encoding is used; see " @@ -1964,61 +2020,62 @@ msgstr "" "est utilisé, voir les notes de la section :ref:`frequently-used-arguments` " "pour plus de détails." -#: ../Doc/library/subprocess.rst:1320 +#: ../Doc/library/subprocess.rst:1326 msgid "" "A trailing newline is stripped from the output. The exit code for the " "command can be interpreted as the return code of subprocess. Example::" msgstr "" "Si la sortie se termine par un caractère de fin de ligne, ce dernier est " "supprimé. Le code de statut de la commande peut être interprété comme le " -"code de retour de *subprocess*. Par exemple : ::" +"code de retour de *subprocess*. Par exemple ::" -#: ../Doc/library/subprocess.rst:1333 ../Doc/library/subprocess.rst:1352 -msgid "Availability: POSIX & Windows" -msgstr "Disponibilité : POSIX et Windows" +#: ../Doc/library/subprocess.rst:1340 ../Doc/library/subprocess.rst:1360 +msgid ":ref:`Availability `: POSIX & Windows." +msgstr ":ref:`Disponibilité ` : POSIX et Windows." -#: ../Doc/library/subprocess.rst:1335 +#: ../Doc/library/subprocess.rst:1341 msgid "Windows support was added." -msgstr "Ajout du support Windows." +msgstr "Ajout de la gestion de Windows." -#: ../Doc/library/subprocess.rst:1338 +#: ../Doc/library/subprocess.rst:1344 msgid "" "The function now returns (exitcode, output) instead of (status, output) as " -"it did in Python 3.3.3 and earlier. See :func:`WEXITSTATUS`." +"it did in Python 3.3.3 and earlier. exitcode has the same value as :attr:" +"`~Popen.returncode`." msgstr "" -"La fonction renvoie maintenant *(exitcode, output)* plutôt que *(status, " -"output)* comme dans les versions de Python 3.3.3 ou antérieures. Voir :func:" -"`WEXITSTATUS`." +"La fonction renvoie maintenant ``(exitcode, output)`` plutôt que ``(status, " +"output)`` comme dans les versions de Python 3.3.3 ou antérieures. " +"*exitcode* vaut la même valeur que :attr:`~Popen.returncode`." -#: ../Doc/library/subprocess.rst:1344 +#: ../Doc/library/subprocess.rst:1351 msgid "Return output (stdout and stderr) of executing *cmd* in a shell." msgstr "" "Renvoie la sortie (standard et d'erreur) de l'exécution de *cmd* dans un " "*shell*." -#: ../Doc/library/subprocess.rst:1346 +#: ../Doc/library/subprocess.rst:1353 msgid "" -"Like :func:`getstatusoutput`, except the exit status is ignored and the " -"return value is a string containing the command's output. Example::" +"Like :func:`getstatusoutput`, except the exit code is ignored and the return " +"value is a string containing the command's output. Example::" msgstr "" "Comme :func:`getstatusoutput`, à l'exception que le code de statut est " "ignoré et que la valeur de retour est une chaîne contenant la sortie de la " -"commande. Exemple : ::" +"commande. Exemple ::" -#: ../Doc/library/subprocess.rst:1354 +#: ../Doc/library/subprocess.rst:1361 msgid "Windows support added" -msgstr "Ajout du support Windows." +msgstr "Ajout de la gestion de Windows" -#: ../Doc/library/subprocess.rst:1359 +#: ../Doc/library/subprocess.rst:1366 msgid "Notes" msgstr "Notes" -#: ../Doc/library/subprocess.rst:1364 +#: ../Doc/library/subprocess.rst:1371 msgid "Converting an argument sequence to a string on Windows" msgstr "" "Convertir une séquence d'arguments vers une chaîne de caractères sous Windows" -#: ../Doc/library/subprocess.rst:1366 +#: ../Doc/library/subprocess.rst:1373 msgid "" "On Windows, an *args* sequence is converted to a string that can be parsed " "using the following rules (which correspond to the rules used by the MS C " @@ -2028,14 +2085,14 @@ msgstr "" "être analysée avec les règles suivantes (qui correspondent aux règles " "utilisées par l'environnement *MS C*) :" -#: ../Doc/library/subprocess.rst:1370 +#: ../Doc/library/subprocess.rst:1377 msgid "" "Arguments are delimited by white space, which is either a space or a tab." msgstr "" "Les arguments sont délimités par des espacements, qui peuvent être des " "espaces ou des tabulations." -#: ../Doc/library/subprocess.rst:1373 +#: ../Doc/library/subprocess.rst:1380 msgid "" "A string surrounded by double quotation marks is interpreted as a single " "argument, regardless of white space contained within. A quoted string can " @@ -2045,7 +2102,7 @@ msgstr "" "seul, qu'elle contienne ou non des espacements. Une chaîne entre guillemets " "peut être intégrée dans un argument." -#: ../Doc/library/subprocess.rst:1378 +#: ../Doc/library/subprocess.rst:1385 msgid "" "A double quotation mark preceded by a backslash is interpreted as a literal " "double quotation mark." @@ -2053,7 +2110,7 @@ msgstr "" "Un guillemet double précédé d'un *backslash* est interprété comme un " "guillemet double littéral." -#: ../Doc/library/subprocess.rst:1381 +#: ../Doc/library/subprocess.rst:1388 msgid "" "Backslashes are interpreted literally, unless they immediately precede a " "double quotation mark." @@ -2061,7 +2118,7 @@ msgstr "" "Les *backslashs* sont interprétés littéralement, à moins qu'ils précèdent " "immédiatement un guillemet double." -#: ../Doc/library/subprocess.rst:1384 +#: ../Doc/library/subprocess.rst:1391 msgid "" "If backslashes immediately precede a double quotation mark, every pair of " "backslashes is interpreted as a literal backslash. If the number of " @@ -2073,16 +2130,35 @@ msgstr "" "de *backslashs* est impair, le dernier *backslash* échappe le prochain " "guillemet double comme décrit en règle 3." -#: ../Doc/library/subprocess.rst:1393 +#: ../Doc/library/subprocess.rst:1400 msgid ":mod:`shlex`" msgstr ":mod:`shlex`" -#: ../Doc/library/subprocess.rst:1394 +#: ../Doc/library/subprocess.rst:1401 msgid "Module which provides function to parse and escape command lines." msgstr "" "Module qui fournit des fonctions pour analyser et échapper les lignes de " "commandes." +#~ msgid "(except that the *input* and *check* parameters are not supported)" +#~ msgstr "(excepté que les paramètres *input* et *check* ne sont pas gérés)" + +#~ msgid "(except that the *input* parameter is not supported)" +#~ msgstr "(excepté que le paramètre *input* n'est pas géré)" + +#~ msgid "" +#~ "Exceptions raised in the child process, before the new program has " +#~ "started to execute, will be re-raised in the parent. Additionally, the " +#~ "exception object will have one extra attribute called :attr:" +#~ "`child_traceback`, which is a string containing traceback information " +#~ "from the child's point of view." +#~ msgstr "" +#~ "Les exceptions levées dans le processus fils, avant que le nouveau " +#~ "programme n'ait commencé son exécution, seront relayées dans le parent. " +#~ "Additionnellement, l'objet de l'exception aura un attribut supplémentaire " +#~ "appelé :attr:`child_traceback`, une chaîne de caractères contenant la " +#~ "trace de l'exception du point de vue du fils." + #~ msgid "" #~ "This does not capture stdout or stderr by default. To do so, pass :data:" #~ "`PIPE` for the *stdout* and/or *stderr* arguments." diff --git a/library/sunau.po b/library/sunau.po index 82e194d78..b41726f2c 100644 --- a/library/sunau.po +++ b/library/sunau.po @@ -37,7 +37,7 @@ msgstr "" #: ../Doc/library/sunau.rst:21 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/sunau.rst:21 msgid "Contents" @@ -122,7 +122,7 @@ msgstr "``'r'``" #: ../Doc/library/sunau.rst:51 msgid "Read only mode." -msgstr "" +msgstr "Mode lecture seule." #: ../Doc/library/sunau.rst:54 msgid "``'w'``" @@ -130,7 +130,7 @@ msgstr "``'w'``" #: ../Doc/library/sunau.rst:54 msgid "Write only mode." -msgstr "" +msgstr "Mode écriture seule." #: ../Doc/library/sunau.rst:56 msgid "Note that it does not allow read/write files." @@ -144,7 +144,7 @@ msgstr "" #: ../Doc/library/sunau.rst:64 msgid "A synonym for :func:`.open`, maintained for backwards compatibility." -msgstr "" +msgstr "Un synonyme de :func:`.open`, maintenu pour la rétrocompatibilité." #: ../Doc/library/sunau.rst:69 msgid "The :mod:`sunau` module defines the following exception:" @@ -200,15 +200,15 @@ msgstr "" #: ../Doc/library/sunau.rst:128 msgid "Returns sample width in bytes." -msgstr "" +msgstr "Renvoie la largeur de l'échantillon en octets." #: ../Doc/library/sunau.rst:133 msgid "Returns sampling frequency." -msgstr "" +msgstr "Renvoie la fréquence d'échantillonnage." #: ../Doc/library/sunau.rst:138 msgid "Returns number of audio frames." -msgstr "" +msgstr "Renvoie le nombre de trames audio." #: ../Doc/library/sunau.rst:143 msgid "" @@ -229,6 +229,9 @@ msgid "" "framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" "`get\\*` methods." msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." #: ../Doc/library/sunau.rst:163 msgid "" @@ -239,13 +242,17 @@ msgstr "" #: ../Doc/library/sunau.rst:170 msgid "Rewind the file pointer to the beginning of the audio stream." -msgstr "" +msgstr "Remet le pointeur de fichier au début du flux audio." #: ../Doc/library/sunau.rst:172 msgid "" "The following two methods define a term \"position\" which is compatible " "between them, and is otherwise implementation dependent." msgstr "" +"Les deux fonctions suivantes utilisent le vocabulaire \"position\". Ces " +"positions sont compatible entre elles, la \"position\" de l'un est " +"compatible avec la \"position\" de l'autre. Cette position est dépendante de " +"l'implémentation." #: ../Doc/library/sunau.rst:178 msgid "" @@ -267,11 +274,11 @@ msgstr "" #: ../Doc/library/sunau.rst:193 msgid "Returns ``None``." -msgstr "" +msgstr "Renvoie ``None``." #: ../Doc/library/sunau.rst:198 msgid "Raise an error." -msgstr "" +msgstr "Lève une erreur." #: ../Doc/library/sunau.rst:204 msgid "AU_write Objects" @@ -285,7 +292,7 @@ msgstr "" #: ../Doc/library/sunau.rst:211 msgid "Set the number of channels." -msgstr "" +msgstr "Définit le nombre de canaux." #: ../Doc/library/sunau.rst:216 msgid "Set the sample width (in bytes.)" @@ -326,7 +333,7 @@ msgstr "" #: ../Doc/library/sunau.rst:254 msgid "Write audio frames, without correcting *nframes*." -msgstr "" +msgstr "Écrit les trames audio sans corriger *nframes*." #: ../Doc/library/sunau.rst:256 ../Doc/library/sunau.rst:264 msgid "Any :term:`bytes-like object` is now accepted." diff --git a/library/symbol.po b/library/symbol.po index 4bf9ad397..eb6ccc5b7 100644 --- a/library/symbol.po +++ b/library/symbol.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/symbol.rst:2 msgid ":mod:`symbol` --- Constants used with Python parse trees" -msgstr ":mod:`symbol` --- Constantes utilisées dans les Arbres Syntaxiques" +msgstr ":mod:`symbol` — Constantes utilisées dans les Arbres Syntaxiques" #: ../Doc/library/symbol.rst:9 msgid "**Source code:** :source:`Lib/symbol.py`" diff --git a/library/sys.po b/library/sys.po index 3502b1aa1..e314e5a8c 100644 --- a/library/sys.po +++ b/library/sys.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-09-29 19:33+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-01 23:12+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 1.8.11\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/sys.rst:2 msgid ":mod:`sys` --- System-specific parameters and functions" -msgstr ":mod:`sys` --- Paramètres et fonctions propres à des systèmes" +msgstr ":mod:`sys` — Paramètres et fonctions propres à des systèmes" #: ../Doc/library/sys.rst:9 msgid "" @@ -34,8 +34,8 @@ msgid "" "On POSIX systems where Python was built with the standard ``configure`` " "script, this contains the ABI flags as specified by :pep:`3149`." msgstr "" -"Les *ABI flags* tels que définis par la :pep:`3149`, sur des systèmes POSIX " -"où Python a été compilé normalement avec le script ``configure``." +"Contient, sur les systèmes POSIX où Python a été compilé avec le script " +"``configure``, les *ABI flags* tels que définis par la :pep:`3149`." #: ../Doc/library/sys.rst:24 msgid "" @@ -48,10 +48,10 @@ msgid "" msgstr "" "La liste des arguments de la ligne de commande passés à un script Python. " "``argv[0]`` est le nom du script (chemin complet, ou non, en fonction du " -"système d'exploitation). Si la commande a été exécutée avec l'option :" -"option:`-c` de l'interpréteur, ``argv[0]`` vaut la chaîne ``'-c'``. Si " -"aucun nom de script n'a été donné à l'interpréteur Python, ``argv[0]`` sera " -"une chaîne vide." +"système d'exploitation). Si la commande a été exécutée avec l'option :option:" +"`-c` de l'interpréteur, ``argv[0]`` vaut la chaîne ``'-c'``. Si aucun nom de " +"script n'a été donné à l'interpréteur Python, ``argv[0]`` sera une chaîne " +"vide." #: ../Doc/library/sys.rst:30 msgid "" @@ -61,7 +61,20 @@ msgstr "" "Pour boucler sur l'entrée standard, ou la liste des fichiers donnés sur la " "ligne de commande, utilisez le module :mod:`fileinput`." -#: ../Doc/library/sys.rst:36 +#: ../Doc/library/sys.rst:34 +msgid "" +"On Unix, command line arguments are passed by bytes from OS. Python decodes " +"them with filesystem encoding and \"surrogateescape\" error handler. When " +"you need original bytes, you can get it by ``[os.fsencode(arg) for arg in " +"sys.argv]``." +msgstr "" +"Sous Unix, les arguments de ligne de commande sont passés par des octets " +"depuis le système d'exploitation. Python les décode en utilisant l’encodage " +"du système de fichiers et le gestionnaire d’erreur *surrogateescape*. Quand " +"vous avez besoin des octets originaux, vous pouvez les récupérer avec ``[os." +"fsencode(arg) for arg in sys.argv]``." + +#: ../Doc/library/sys.rst:42 msgid "" "Set during Python startup, before ``site.py`` is run, to the same value as :" "data:`exec_prefix`. If not running in a :ref:`virtual environment `, les valeurs resteront les mêmes; si ``site.py`` détecte qu'un " +"même valeur que :data:`exec_prefix`. Hors d'un :ref:`environnement virtuel " +"`, les valeurs restent les mêmes ; si ``site.py`` détecte qu'un " "environnement virtuel est utilisé, les valeurs de :data:`prefix` et :data:" -"`exec_prefix` seront modifiées point pointer vers l'environnement virtuel, " -"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointeront " -"toujours à la racine de l'installation de Python (celui utilisé pour créer " +"`exec_prefix` sont modifiées pour pointer vers l'environnement virtuel, " +"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointent toujours " +"à la racine de l'installation de Python (celui utilisé pour créer " "l'environnement virtuel)." -#: ../Doc/library/sys.rst:50 +#: ../Doc/library/sys.rst:56 msgid "" "Set during Python startup, before ``site.py`` is run, to the same value as :" "data:`prefix`. If not running in a :ref:`virtual environment `, " @@ -91,15 +104,15 @@ msgid "" "Python installation (the one which the virtual environment was created from)." msgstr "" "Défini au démarrage de Python, avant que ``site.py`` ne soit évalué, à la " -"même valeur que :data:`prefix`. Hors d'un :ref:`virtual environment `, les valeurs resteront les mêmes; si ``site.py`` détecte qu'un " +"même valeur que :data:`prefix`. Hors d'un :ref:`environnement virtuel `, les valeurs restent les mêmes ; si ``site.py`` détecte qu'un " "environnement virtuel est utilisé, les valeurs de :data:`prefix` et :data:" -"`exec_prefix` seront modifiées point pointer vers l'environnement virtuel, " -"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointeront " -"toujours à la racine de l'installation de Python (celui utilisé pour créer " +"`exec_prefix` sont modifiées pour pointer vers l'environnement virtuel, " +"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointent toujours " +"à la racine de l'installation de Python (celui utilisé pour créer " "l'environnement virtuel)." -#: ../Doc/library/sys.rst:63 +#: ../Doc/library/sys.rst:69 msgid "" "An indicator of the native byte order. This will have the value ``'big'`` " "on big-endian (most-significant byte first) platforms, and ``'little'`` on " @@ -110,7 +123,7 @@ msgstr "" "``'little'`` sur les plateformes petit-boutiste (octet le moins significatif " "en premier)." -#: ../Doc/library/sys.rst:70 +#: ../Doc/library/sys.rst:76 msgid "" "A tuple of strings giving the names of all modules that are compiled into " "this Python interpreter. (This information is not available in any other " @@ -121,7 +134,7 @@ msgstr "" "disponible autrement --- ```modules.keys()`` liste seulement les modules " "importés.)" -#: ../Doc/library/sys.rst:77 +#: ../Doc/library/sys.rst:83 msgid "" "Call ``func(*args)``, while tracing is enabled. The tracing state is saved, " "and restored afterwards. This is intended to be called from a debugger from " @@ -132,11 +145,11 @@ msgstr "" "un débogueur à partir d'un point de contrôle, pour déboguer récursivement un " "autre code." -#: ../Doc/library/sys.rst:84 +#: ../Doc/library/sys.rst:90 msgid "A string containing the copyright pertaining to the Python interpreter." msgstr "Une chaîne contenant le copyright relatif à l'interpréteur Python." -#: ../Doc/library/sys.rst:89 +#: ../Doc/library/sys.rst:95 msgid "" "Clear the internal type cache. The type cache is used to speed up attribute " "and method lookups. Use the function *only* to drop unnecessary references " @@ -147,14 +160,14 @@ msgstr "" "pour libérer des références inutiles durant le débogage de fuite de " "référence." -#: ../Doc/library/sys.rst:93 ../Doc/library/sys.rst:109 +#: ../Doc/library/sys.rst:99 ../Doc/library/sys.rst:115 msgid "" "This function should be used for internal and specialized purposes only." msgstr "" "Cette fonction ne devrait être utilisée que pour un usage interne et " "spécialisé." -#: ../Doc/library/sys.rst:98 +#: ../Doc/library/sys.rst:104 msgid "" "Return a dictionary mapping each thread's identifier to the topmost stack " "frame currently active in that thread at the time the function is called. " @@ -166,7 +179,7 @@ msgstr "" "au moment où la fonction est appelée. Notez que les fonctions du module :mod:" "`traceback` peuvent construire une *call stack* à partir d'une telle *frame*." -#: ../Doc/library/sys.rst:103 +#: ../Doc/library/sys.rst:109 msgid "" "This is most useful for debugging deadlock: this function does not require " "the deadlocked threads' cooperation, and such threads' call stacks are " @@ -181,14 +194,18 @@ msgstr "" "l'activité courante du fil d'exécution au moment où le code appelant examine " "la *frame*." -#: ../Doc/library/sys.rst:114 +#: ../Doc/library/sys.rst:120 msgid "" "This hook function is called by built-in :func:`breakpoint`. By default, it " "drops you into the :mod:`pdb` debugger, but it can be set to any other " "function so that you can choose which debugger gets used." msgstr "" +"Cette fonction auto-déclenchée (*hook function* en anglais) est appelée par " +"la fonction native :func:`breakpoint`. Par défaut, elle vous place dans le " +"débogueur :mod:`pdb`, mais elle peut être dirigée vers n'importe quelle " +"autre fonction pour que vous puissiez choisir le débogueur utilisé." -#: ../Doc/library/sys.rst:118 +#: ../Doc/library/sys.rst:124 msgid "" "The signature of this function is dependent on what it calls. For example, " "the default binding (e.g. ``pdb.set_trace()``) expects no arguments, but you " @@ -197,8 +214,14 @@ msgid "" "``*args`` and ``**kws`` straight through. Whatever ``breakpointhooks()`` " "returns is returned from ``breakpoint()``." msgstr "" +"La signature de cette fonction dépend de ce qu'elle appelle. Par exemple, " +"l'appel par défaut (e.g. ``pdb.set_trace()``) n'attend pas d'argument, mais " +"vous pourriez la lier à une fonction qui attend des arguments " +"supplémentaires (positionnels et/ou mots-clés). La fonction native " +"`breakpoint()` passe ses ``*args`` et ``**kws`` directement au travers. Tout " +"ce que renvoie ``breakpointhooks()`` est renvoyé par ``breakpoint()``." -#: ../Doc/library/sys.rst:125 +#: ../Doc/library/sys.rst:131 msgid "" "The default implementation first consults the environment variable :envvar:" "`PYTHONBREAKPOINT`. If that is set to ``\"0\"`` then this function returns " @@ -211,21 +234,37 @@ msgid "" "``*args`` and ``**kws``, and whatever ``function()`` returns, ``sys." "breakpointhook()`` returns to the built-in :func:`breakpoint` function." msgstr "" +"L'implémentation par défaut consulte d'abord la variable d'environnement :" +"envvar:`PYTHONBREAKPOINT`. Si elle vaut ``\"0\"`` alors cette fonction " +"s'achève immédiatement (elle ne fait donc rien). Si la variable " +"d'environnement n'est pas définie, ou s'il s'agit d'une chaîne vide, ``pdb." +"set_trace()`` est appelée. Sinon cette variable doit nommer une fonction à " +"appeler, en utilisant la syntaxe d'importation de Python, par exemple " +"``package.subpackage.module.function``. Dans ce cas, ``package.subpackage." +"module`` sera importé et le module devra contenir une fonction appelable " +"``function()``. Celle-ci est lancée en lui passant ``*args`` et ``*kws`` et, " +"quoique renvoie ``function()``, ``sys.breakpointhook()`` retourne à la " +"fonction native :func:`breakpoint`." -#: ../Doc/library/sys.rst:137 +#: ../Doc/library/sys.rst:143 msgid "" "Note that if anything goes wrong while importing the callable named by :" "envvar:`PYTHONBREAKPOINT`, a :exc:`RuntimeWarning` is reported and the " "breakpoint is ignored." msgstr "" +"Notez que si un problème apparaît au moment de l'importation de la fonction " +"nommée dans :envvar:`PYTHONBREAKPOINT`, une alerte :exc:`RuntimeWarning` est " +"indiquée et le point d'arrêt est ignoré." -#: ../Doc/library/sys.rst:141 +#: ../Doc/library/sys.rst:147 msgid "" "Also note that if ``sys.breakpointhook()`` is overridden programmatically, :" "envvar:`PYTHONBREAKPOINT` is *not* consulted." msgstr "" +"Notez également que si ``sys.breakpointhook()`` est surchargé de manière " +"programmatique, :envvar:`PYTHONBREAKPOINT` *n'est pas* consulté." -#: ../Doc/library/sys.rst:148 +#: ../Doc/library/sys.rst:154 msgid "" "Print low-level information to stderr about the state of CPython's memory " "allocator." @@ -233,7 +272,7 @@ msgstr "" "Affiche des informations bas-niveau sur la sortie d'erreur à propos de " "l'état de l'allocateur de mémoire de CPython." -#: ../Doc/library/sys.rst:151 +#: ../Doc/library/sys.rst:157 msgid "" "If Python is configured --with-pydebug, it also performs some expensive " "internal consistency checks." @@ -241,7 +280,7 @@ msgstr "" "Si Python est configuré avec l'option *--with-pydebug*, il effectuera aussi " "quelques coûteuses vérifications de cohérence interne." -#: ../Doc/library/sys.rst:158 +#: ../Doc/library/sys.rst:164 msgid "" "This function is specific to CPython. The exact output format is not " "defined here, and may change." @@ -249,13 +288,16 @@ msgstr "" "Cette fonction est spécifique à CPython. Le format de sa sortie n'est pas " "définit ici et pourrait changer." -#: ../Doc/library/sys.rst:164 -msgid "Integer specifying the handle of the Python DLL. Availability: Windows." -msgstr "" -"Nombre entier spécifiant le descripteur de la DLL Python. Disponibilité : " -"Windows." +#: ../Doc/library/sys.rst:170 +msgid "Integer specifying the handle of the Python DLL." +msgstr "Nombre entier spécifiant le descripteur de la DLL Python." -#: ../Doc/library/sys.rst:169 +#: ../Doc/library/sys.rst:172 ../Doc/library/sys.rst:663 +#: ../Doc/library/sys.rst:1336 ../Doc/library/sys.rst:1500 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/sys.rst:177 msgid "" "If *value* is not ``None``, this function prints ``repr(value)`` to ``sys." "stdout``, and saves *value* in ``builtins._``. If ``repr(value)`` is not " @@ -265,12 +307,12 @@ msgid "" msgstr "" "Si *value* n'est pas ``None``, cette fonction écrit ``repr(value)`` sur " "``sys.stdout``, et sauvegarde *value* dans ``builtins._``. Si " -"``repr(value)`` n'est pas encodable avec ``sys.stdout.encoding`` avec le " -"gestionnaire d'erreur ``sys.stdout.errors`` (qui est probablement " -"``'strict'``), elle sera encodée par ``sys.stdout.encoding`` avec le " -"gestionnaire d'erreur ``'backslashreplace'``." +"``repr(value)`` ne peut pas être encodé avec ``sys.stdout.encoding`` en " +"utilisant le gestionnaire d'erreur ``sys.stdout.errors`` (qui est " +"probablement ``'strict'``), elle sera encodée avec ``sys.stdout.encoding`` " +"en utilisant le gestionnaire d'erreur ``'backslashreplace'``." -#: ../Doc/library/sys.rst:175 +#: ../Doc/library/sys.rst:183 msgid "" "``sys.displayhook`` is called on the result of evaluating an :term:" "`expression` entered in an interactive Python session. The display of these " @@ -282,17 +324,17 @@ msgstr "" "valeurs peut être personnalisé en assignant une autre fonction d'un argument " "à ``sys.displayhook``." -#: ../Doc/library/sys.rst:179 +#: ../Doc/library/sys.rst:187 msgid "Pseudo-code::" msgstr "Pseudo-code ::" -#: ../Doc/library/sys.rst:199 +#: ../Doc/library/sys.rst:207 msgid "Use ``'backslashreplace'`` error handler on :exc:`UnicodeEncodeError`." msgstr "" "Utiliser le gestionnaire d'erreur ``'backslashreplace'`` en cas d':exc:" "`UnicodeEncodeError`." -#: ../Doc/library/sys.rst:205 +#: ../Doc/library/sys.rst:213 msgid "" "If this is true, Python won't try to write ``.pyc`` files on the import of " "source modules. This value is initially set to ``True`` or ``False`` " @@ -300,21 +342,21 @@ msgid "" "`PYTHONDONTWRITEBYTECODE` environment variable, but you can set it yourself " "to control bytecode file generation." msgstr "" -"Si vrai, Python n'essaiera pas d'écrire de fichiers ``.pyc`` à l'import de " -"modules source. Cette valeur est initialement définie à ``True`` ou " +"Si vrai, Python n'essaiera pas d'écrire de fichiers ``.pyc`` à l'importation " +"de modules source. Cette valeur est initialement définie à ``True`` ou " "``False`` en fonction de l'option de la ligne de commande :option:`-B` et de " "la variable d'environnement :envvar:`PYTHONDONDONTWRITEBYTECODE`, mais vous " "pouvez aussi la modifier vous-même pour contrôler la génération des fichiers " "de *bytecode*." -#: ../Doc/library/sys.rst:214 +#: ../Doc/library/sys.rst:222 msgid "" "This function prints out a given traceback and exception to ``sys.stderr``." msgstr "" "Cette fonction affiche la *traceback* et l'exception donnée sur ``sys." "stderr``." -#: ../Doc/library/sys.rst:216 +#: ../Doc/library/sys.rst:224 msgid "" "When an exception is raised and uncaught, the interpreter calls ``sys." "excepthook`` with three arguments, the exception class, exception instance, " @@ -332,7 +374,7 @@ msgstr "" "quitte. La gestion de ces exceptions peut être personnalisé en affectant une " "autre fonction de trois arguments à ``sys.excepthook``." -#: ../Doc/library/sys.rst:228 +#: ../Doc/library/sys.rst:236 msgid "" "These objects contain the original values of ``breakpointhook``, " "``displayhook``, and ``excepthook`` at the start of the program. They are " @@ -346,11 +388,11 @@ msgstr "" "``excepthook`` puissent être restaurés au cas où ils seraient remplacés par " "des objets cassés ou alternatifs." -#: ../Doc/library/sys.rst:234 +#: ../Doc/library/sys.rst:242 msgid "__breakpointhook__" -msgstr "" +msgstr "__breakpointhook__" -#: ../Doc/library/sys.rst:240 +#: ../Doc/library/sys.rst:248 msgid "" "This function returns a tuple of three values that give information about " "the exception that is currently being handled. The information returned is " @@ -371,7 +413,7 @@ msgstr "" "*except*\". Pour chaque *stack frame*, seule l'information à propos d'une " "exception actuellement traitée est accessible." -#: ../Doc/library/sys.rst:251 +#: ../Doc/library/sys.rst:259 msgid "" "If no exception is being handled anywhere on the stack, a tuple containing " "three ``None`` values is returned. Otherwise, the values returned are " @@ -390,7 +432,7 @@ msgstr "" "encapsule la pile d'appels au point où l'exception s'est produite à " "l'origine." -#: ../Doc/library/sys.rst:262 +#: ../Doc/library/sys.rst:270 msgid "" "A string giving the site-specific directory prefix where the platform-" "dependent Python files are installed; by default, this is also ``'/usr/" @@ -411,7 +453,7 @@ msgstr "" "python{X.Y}/lib-dynload`, où *X.Y* est le numéro de version de Python, par " "exemple ``3.2``." -#: ../Doc/library/sys.rst:273 +#: ../Doc/library/sys.rst:281 msgid "" "If a :ref:`virtual environment ` is in effect, this value will be " "changed in ``site.py`` to point to the virtual environment. The value for " @@ -422,7 +464,7 @@ msgstr "" "modifiée par ``site.py`` pour pointer vers l'environnement virtuel. La " "valeur d'origine sera toujours disponible via :data:`base_exec_prefix`." -#: ../Doc/library/sys.rst:281 +#: ../Doc/library/sys.rst:289 msgid "" "A string giving the absolute path of the executable binary for the Python " "interpreter, on systems where this makes sense. If Python is unable to " @@ -434,7 +476,7 @@ msgstr "" "n'est pas capable de récupérer le chemin réel de son exécutable, :data:`sys." "executable` sera une chaîne vide ou ``None``." -#: ../Doc/library/sys.rst:289 +#: ../Doc/library/sys.rst:297 msgid "" "Exit from Python. This is implemented by raising the :exc:`SystemExit` " "exception, so cleanup actions specified by finally clauses of :keyword:`try` " @@ -447,7 +489,7 @@ msgstr "" "est aussi possible d'intercepter la tentative de sortie à un niveau au " "dessus." -#: ../Doc/library/sys.rst:294 +#: ../Doc/library/sys.rst:302 msgid "" "The optional argument *arg* can be an integer giving the exit status " "(defaulting to zero), or another type of object. If it is an integer, zero " @@ -476,7 +518,7 @@ msgstr "" "1. Typiquement, ``sys.exit(\"some error message\")`` est un moyen rapide de " "quitter un programme en cas d'erreur." -#: ../Doc/library/sys.rst:307 +#: ../Doc/library/sys.rst:315 msgid "" "Since :func:`exit` ultimately \"only\" raises an exception, it will only " "exit the process when called from the main thread, and the exception is not " @@ -486,7 +528,7 @@ msgstr "" "ne fera quitter le processus que si elle est appelée depuis le fil " "d'exécution principal, et que l'exception n'est pas interceptée." -#: ../Doc/library/sys.rst:311 +#: ../Doc/library/sys.rst:319 msgid "" "If an error occurs in the cleanup after the Python interpreter has caught :" "exc:`SystemExit` (such as an error flushing buffered data in the standard " @@ -496,7 +538,7 @@ msgstr "" "intercepté un :exc:`SystemExit` (typiquement une erreur en vidant les " "tampons des sorties standard), le code de sortie est changé à 120." -#: ../Doc/library/sys.rst:319 +#: ../Doc/library/sys.rst:327 msgid "" "The :term:`struct sequence` *flags* exposes the status of command line " "flags. The attributes are read only." @@ -504,142 +546,158 @@ msgstr "" "La :term:`struct sequence` *flags* expose l'état des options de ligne de " "commande. Ces attributs sont en lecture seule." -#: ../Doc/library/sys.rst:323 ../Doc/library/sys.rst:367 -#: ../Doc/library/sys.rst:710 +#: ../Doc/library/sys.rst:331 ../Doc/library/sys.rst:379 +#: ../Doc/library/sys.rst:724 msgid "attribute" msgstr "attribut" -#: ../Doc/library/sys.rst:323 +#: ../Doc/library/sys.rst:331 msgid "flag" msgstr "option" -#: ../Doc/library/sys.rst:325 +#: ../Doc/library/sys.rst:333 msgid ":const:`debug`" msgstr ":const:`debug`" -#: ../Doc/library/sys.rst:325 +#: ../Doc/library/sys.rst:333 msgid ":option:`-d`" msgstr ":option:`-d`" -#: ../Doc/library/sys.rst:326 +#: ../Doc/library/sys.rst:334 msgid ":const:`inspect`" msgstr ":const:`inspect`" -#: ../Doc/library/sys.rst:326 ../Doc/library/sys.rst:327 +#: ../Doc/library/sys.rst:334 ../Doc/library/sys.rst:335 msgid ":option:`-i`" msgstr ":option:`-i`" -#: ../Doc/library/sys.rst:327 +#: ../Doc/library/sys.rst:335 msgid ":const:`interactive`" msgstr ":const:`interactive`" -#: ../Doc/library/sys.rst:328 +#: ../Doc/library/sys.rst:336 +msgid ":const:`isolated`" +msgstr ":const:`isolated`" + +#: ../Doc/library/sys.rst:336 +msgid ":option:`-I`" +msgstr ":option:`-I`" + +#: ../Doc/library/sys.rst:337 msgid ":const:`optimize`" msgstr ":const:`optimize`" -#: ../Doc/library/sys.rst:328 +#: ../Doc/library/sys.rst:337 msgid ":option:`-O` or :option:`-OO`" msgstr ":option:`-O` or :option:`-OO`" -#: ../Doc/library/sys.rst:329 +#: ../Doc/library/sys.rst:338 msgid ":const:`dont_write_bytecode`" msgstr ":const:`dont_write_bytecode`" -#: ../Doc/library/sys.rst:329 +#: ../Doc/library/sys.rst:338 msgid ":option:`-B`" msgstr ":option:`-B`" -#: ../Doc/library/sys.rst:330 +#: ../Doc/library/sys.rst:339 msgid ":const:`no_user_site`" msgstr ":const:`no_user_site`" -#: ../Doc/library/sys.rst:330 +#: ../Doc/library/sys.rst:339 msgid ":option:`-s`" msgstr ":option:`-s`" -#: ../Doc/library/sys.rst:331 +#: ../Doc/library/sys.rst:340 msgid ":const:`no_site`" msgstr ":const:`no_site`" -#: ../Doc/library/sys.rst:331 +#: ../Doc/library/sys.rst:340 msgid ":option:`-S`" msgstr ":option:`-S`" -#: ../Doc/library/sys.rst:332 +#: ../Doc/library/sys.rst:341 msgid ":const:`ignore_environment`" msgstr ":const:`ignore_environment`" -#: ../Doc/library/sys.rst:332 +#: ../Doc/library/sys.rst:341 msgid ":option:`-E`" msgstr ":option:`-E`" -#: ../Doc/library/sys.rst:333 +#: ../Doc/library/sys.rst:342 msgid ":const:`verbose`" msgstr ":const:`verbose`" -#: ../Doc/library/sys.rst:333 +#: ../Doc/library/sys.rst:342 msgid ":option:`-v`" msgstr ":option:`-v`" -#: ../Doc/library/sys.rst:334 +#: ../Doc/library/sys.rst:343 msgid ":const:`bytes_warning`" msgstr ":const:`bytes_warning`" -#: ../Doc/library/sys.rst:334 +#: ../Doc/library/sys.rst:343 msgid ":option:`-b`" msgstr ":option:`-b`" -#: ../Doc/library/sys.rst:335 +#: ../Doc/library/sys.rst:344 msgid ":const:`quiet`" msgstr ":const:`quiet`" -#: ../Doc/library/sys.rst:335 +#: ../Doc/library/sys.rst:344 msgid ":option:`-q`" msgstr ":option:`-q`" -#: ../Doc/library/sys.rst:336 +#: ../Doc/library/sys.rst:345 msgid ":const:`hash_randomization`" msgstr ":const:`hash_randomization`" -#: ../Doc/library/sys.rst:336 +#: ../Doc/library/sys.rst:345 msgid ":option:`-R`" msgstr ":option:`-R`" -#: ../Doc/library/sys.rst:337 +#: ../Doc/library/sys.rst:346 msgid ":const:`dev_mode`" msgstr ":const:`dev_mode`" -#: ../Doc/library/sys.rst:337 +#: ../Doc/library/sys.rst:346 msgid ":option:`-X` ``dev``" msgstr ":option:`-X` ``dev``" -#: ../Doc/library/sys.rst:338 +#: ../Doc/library/sys.rst:347 msgid ":const:`utf8_mode`" msgstr ":const:`utf8_mode`" -#: ../Doc/library/sys.rst:338 +#: ../Doc/library/sys.rst:347 msgid ":option:`-X` ``utf8``" msgstr ":option:`-X` ``utf8``" -#: ../Doc/library/sys.rst:341 +#: ../Doc/library/sys.rst:350 msgid "Added ``quiet`` attribute for the new :option:`-q` flag." msgstr "Ajout de l'attribut ``quiet`` pour la nouvelle option :option:`-q`." -#: ../Doc/library/sys.rst:344 +#: ../Doc/library/sys.rst:353 msgid "The ``hash_randomization`` attribute." msgstr "L'attribut ``hash_randomization``." -#: ../Doc/library/sys.rst:347 +#: ../Doc/library/sys.rst:356 msgid "Removed obsolete ``division_warning`` attribute." msgstr "Suppression de l'attribut obsolète ``division_warning``." -#: ../Doc/library/sys.rst:350 +#: ../Doc/library/sys.rst:359 +msgid "Added ``isolated`` attribute for :option:`-I` ``isolated`` flag." +msgstr "" +"Ajout de l'attribut ``isolated`` pour l'option :option:`-I` ``isolated``." + +#: ../Doc/library/sys.rst:362 msgid "" "Added ``dev_mode`` attribute for the new :option:`-X` ``dev`` flag and " "``utf8_mode`` attribute for the new :option:`-X` ``utf8`` flag." msgstr "" +"Ajout de l'attribut ``dev_mode`` pour la nouvelle option :option:`-X` " +"``dev`` et l'attribut ``utf8_mode`` pour la nouvelle option :option:`-X` " +"``utf8``." -#: ../Doc/library/sys.rst:357 +#: ../Doc/library/sys.rst:369 msgid "" "A :term:`struct sequence` holding information about the float type. It " "contains low level information about the precision and internal " @@ -656,23 +714,23 @@ msgstr "" "IEC C standard* [C99]_, *Characteristics of floating types*, pour plus de " "détails." -#: ../Doc/library/sys.rst:367 +#: ../Doc/library/sys.rst:379 msgid "float.h macro" msgstr "macro *float.h*" -#: ../Doc/library/sys.rst:367 ../Doc/library/sys.rst:710 +#: ../Doc/library/sys.rst:379 ../Doc/library/sys.rst:724 msgid "explanation" msgstr "explication" -#: ../Doc/library/sys.rst:369 +#: ../Doc/library/sys.rst:381 msgid ":const:`epsilon`" msgstr ":const:`epsilon`" -#: ../Doc/library/sys.rst:369 +#: ../Doc/library/sys.rst:381 msgid "DBL_EPSILON" msgstr "DBL_EPSILON" -#: ../Doc/library/sys.rst:369 +#: ../Doc/library/sys.rst:381 msgid "" "difference between 1 and the least value greater than 1 that is " "representable as a float" @@ -680,15 +738,15 @@ msgstr "" "différence entre 1 et la plus petite valeur plus grande que 1 représentable " "en *float*" -#: ../Doc/library/sys.rst:372 +#: ../Doc/library/sys.rst:384 msgid ":const:`dig`" msgstr ":const:`dig`" -#: ../Doc/library/sys.rst:372 +#: ../Doc/library/sys.rst:384 msgid "DBL_DIG" msgstr "DBL_DIG" -#: ../Doc/library/sys.rst:372 +#: ../Doc/library/sys.rst:384 msgid "" "maximum number of decimal digits that can be faithfully represented in a " "float; see below" @@ -696,15 +754,15 @@ msgstr "" "nombre maximum de décimales pouvant être représentées fidèlement dans un " "*float* (voir ci-dessous)" -#: ../Doc/library/sys.rst:375 +#: ../Doc/library/sys.rst:387 msgid ":const:`mant_dig`" msgstr ":const:`mant_dig`" -#: ../Doc/library/sys.rst:375 +#: ../Doc/library/sys.rst:387 msgid "DBL_MANT_DIG" msgstr "DBL_MANT_DIG" -#: ../Doc/library/sys.rst:375 +#: ../Doc/library/sys.rst:387 msgid "" "float precision: the number of base-``radix`` digits in the significand of a " "float" @@ -712,42 +770,42 @@ msgstr "" "précision : nombre de *base-*\\ ``radix`` chiffres dans la mantisse du " "*float*" -#: ../Doc/library/sys.rst:378 +#: ../Doc/library/sys.rst:390 msgid ":const:`max`" msgstr ":const:`max`" -#: ../Doc/library/sys.rst:378 +#: ../Doc/library/sys.rst:390 msgid "DBL_MAX" msgstr "DBL_MAX" -#: ../Doc/library/sys.rst:378 +#: ../Doc/library/sys.rst:390 msgid "maximum representable finite float" msgstr "plus grand `float` fini représentable" -#: ../Doc/library/sys.rst:380 +#: ../Doc/library/sys.rst:392 msgid ":const:`max_exp`" msgstr ":const:`max_exp`" -#: ../Doc/library/sys.rst:380 +#: ../Doc/library/sys.rst:392 msgid "DBL_MAX_EXP" msgstr "DBL_MAX_EXP" -#: ../Doc/library/sys.rst:380 +#: ../Doc/library/sys.rst:392 msgid "" "maximum integer e such that ``radix**(e-1)`` is a representable finite float" msgstr "" "plus grand nombre entier *e* tel que ``radix**(e-1)`` soit représentable " "sous forme de *float* finit" -#: ../Doc/library/sys.rst:383 +#: ../Doc/library/sys.rst:395 msgid ":const:`max_10_exp`" msgstr ":const:`max_10_exp`" -#: ../Doc/library/sys.rst:383 +#: ../Doc/library/sys.rst:395 msgid "DBL_MAX_10_EXP" msgstr "DBL_MAX_10_EXP" -#: ../Doc/library/sys.rst:383 +#: ../Doc/library/sys.rst:395 msgid "" "maximum integer e such that ``10**e`` is in the range of representable " "finite floats" @@ -755,66 +813,66 @@ msgstr "" "plus grand nombre entier *e* tel que ``10**e`` est dans l'intervalle des " "nombre flottants finis" -#: ../Doc/library/sys.rst:386 +#: ../Doc/library/sys.rst:398 msgid ":const:`min`" msgstr ":const:`min`" -#: ../Doc/library/sys.rst:386 +#: ../Doc/library/sys.rst:398 msgid "DBL_MIN" msgstr "DBL_MIN" -#: ../Doc/library/sys.rst:386 +#: ../Doc/library/sys.rst:398 msgid "minimum positive normalized float" msgstr "plus petit nombre à virgule flottante positif normalisé" -#: ../Doc/library/sys.rst:388 +#: ../Doc/library/sys.rst:400 msgid ":const:`min_exp`" msgstr ":const:`min_exp`" -#: ../Doc/library/sys.rst:388 +#: ../Doc/library/sys.rst:400 msgid "DBL_MIN_EXP" msgstr "DBL_MIN_EXP" -#: ../Doc/library/sys.rst:388 +#: ../Doc/library/sys.rst:400 msgid "minimum integer e such that ``radix**(e-1)`` is a normalized float" msgstr "" "plus petit entier *e* tel que ``radix**(e-1)`` est un *float* normalisé" -#: ../Doc/library/sys.rst:391 +#: ../Doc/library/sys.rst:403 msgid ":const:`min_10_exp`" msgstr ":const:`min_10_exp`" -#: ../Doc/library/sys.rst:391 +#: ../Doc/library/sys.rst:403 msgid "DBL_MIN_10_EXP" msgstr "DBL_MIN_10_EXP" -#: ../Doc/library/sys.rst:391 +#: ../Doc/library/sys.rst:403 msgid "minimum integer e such that ``10**e`` is a normalized float" msgstr "" "plus petit nombre entier *e* tel que ``10**e`` est un nombre à virgule " "flottante normalisé" -#: ../Doc/library/sys.rst:394 +#: ../Doc/library/sys.rst:406 msgid ":const:`radix`" msgstr ":const:`radix`" -#: ../Doc/library/sys.rst:394 +#: ../Doc/library/sys.rst:406 msgid "FLT_RADIX" msgstr "FLT_RADIX" -#: ../Doc/library/sys.rst:394 +#: ../Doc/library/sys.rst:406 msgid "radix of exponent representation" msgstr "base de la représentation de l'exposant" -#: ../Doc/library/sys.rst:396 +#: ../Doc/library/sys.rst:408 msgid ":const:`rounds`" msgstr ":const:`rounds`" -#: ../Doc/library/sys.rst:396 +#: ../Doc/library/sys.rst:408 msgid "FLT_ROUNDS" msgstr "FLT_ROUNDS" -#: ../Doc/library/sys.rst:396 +#: ../Doc/library/sys.rst:408 msgid "" "integer constant representing the rounding mode used for arithmetic " "operations. This reflects the value of the system FLT_ROUNDS macro at " @@ -827,7 +885,7 @@ msgstr "" "5.2.4.4.2.2 de la norme C99 pour une explication des valeurs possibles et de " "leurs significations." -#: ../Doc/library/sys.rst:404 +#: ../Doc/library/sys.rst:416 msgid "" "The attribute :attr:`sys.float_info.dig` needs further explanation. If " "``s`` is any string representing a decimal number with at most :attr:`sys." @@ -839,15 +897,15 @@ msgstr "" "float_info.dig` chiffres significatifs, alors, convertir ``s`` en un nombre " "à virgule flottante puis à nouveau en chaîne redonnera la même valeur ::" -#: ../Doc/library/sys.rst:417 +#: ../Doc/library/sys.rst:429 msgid "" "But for strings with more than :attr:`sys.float_info.dig` significant " "digits, this isn't always true::" msgstr "" "Cependant, pour les chaînes avec plus de :attr:`sys.float_info.dig` chiffres " -"significatifs, ce n'est pas toujours vrai : ::" +"significatifs, ce n'est pas toujours vrai ::" -#: ../Doc/library/sys.rst:426 +#: ../Doc/library/sys.rst:438 msgid "" "A string indicating how the :func:`repr` function behaves for floats. If " "the string has value ``'short'`` then for a finite float ``x``, ``repr(x)`` " @@ -863,7 +921,7 @@ msgstr "" "Python 3.1. Autrement, ``float_repr_style`` a la valeur ``'legacy'`` et\n" "``repr(x)`` se comporte comme les versions antérieures à 3.1." -#: ../Doc/library/sys.rst:439 +#: ../Doc/library/sys.rst:451 msgid "" "Return the number of memory blocks currently allocated by the interpreter, " "regardless of their size. This function is mainly useful for tracking and " @@ -879,7 +937,7 @@ msgstr "" "`_clear_type_cache()` et :func:`gc.collect()` peut permettre d'obtenir des " "résultats plus prévisibles." -#: ../Doc/library/sys.rst:446 +#: ../Doc/library/sys.rst:458 msgid "" "If a Python build or implementation cannot reasonably compute this " "information, :func:`getallocatedblocks()` is allowed to return 0 instead." @@ -887,25 +945,27 @@ msgstr "" "Si Python n'arrive pas a calculer raisonnablement cette information, :func:" "`getallocatedblocks()` est autorisé à renvoyer 0 à la place." -#: ../Doc/library/sys.rst:454 +#: ../Doc/library/sys.rst:466 msgid "Return the build time API version of Android as an integer." msgstr "" +"Renvoie la version de l'API Android utilisée pour compiler sous forme d'un " +"entier." -#: ../Doc/library/sys.rst:456 -msgid "Availability: Android." -msgstr "Disponibilité : Android." +#: ../Doc/library/sys.rst:469 +msgid ":ref:`Availability `: Android." +msgstr ":ref:`Disponibilité ` : Android." -#: ../Doc/library/sys.rst:463 +#: ../Doc/library/sys.rst:475 msgid "" "Return the interpreter's \"check interval\"; see :func:`setcheckinterval`." msgstr "" "Renvoie le *check interval* de l'interpréteur, voir :func:`setcheckinterval`." -#: ../Doc/library/sys.rst:465 +#: ../Doc/library/sys.rst:477 msgid "Use :func:`getswitchinterval` instead." msgstr "Utilisez plutôt :func:`getswitchinterval`." -#: ../Doc/library/sys.rst:471 +#: ../Doc/library/sys.rst:483 msgid "" "Return the name of the current default string encoding used by the Unicode " "implementation." @@ -913,19 +973,21 @@ msgstr "" "Renvoie le nom du codage par défaut actuellement utilisé par " "l'implémentation *Unicode* pour coder les chaînes." -#: ../Doc/library/sys.rst:477 +#: ../Doc/library/sys.rst:489 msgid "" "Return the current value of the flags that are used for :c:func:`dlopen` " "calls. Symbolic names for the flag values can be found in the :mod:`os` " -"module (``RTLD_xxx`` constants, e.g. :data:`os.RTLD_LAZY`). Availability: " -"Unix." +"module (``RTLD_xxx`` constants, e.g. :data:`os.RTLD_LAZY`)." msgstr "" -"Renvoie la valeur actuelle des *flags* utilisés par les appels de :c:func:" +"Renvoie la valeur actuelle des drapeaux utilisés par les appels de :c:func:" "`dlopen`. Les noms symboliques valeurs peuvent être trouvées dans le module :" -"mod:`os`. (Ce sont les constantes ``RTLD_xxx`` e.g. :data:`os.RTLD_LAZY`). " -"Disponibilité: Unix." +"mod:`os`. (Ce sont les constantes ``RTLD_xxx`` e.g. :data:`os.RTLD_LAZY`)." + +#: ../Doc/library/sys.rst:494 ../Doc/library/sys.rst:1089 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." -#: ../Doc/library/sys.rst:485 +#: ../Doc/library/sys.rst:499 msgid "" "Return the name of the encoding used to convert between Unicode filenames " "and bytes filenames. For best compatibility, str should be used for " @@ -941,11 +1003,11 @@ msgstr "" "fichiers devraient supporter les deux (*str* ou *bytes*), et convertir en " "interne dans la représentation du système." -#: ../Doc/library/sys.rst:492 +#: ../Doc/library/sys.rst:506 msgid "This encoding is always ASCII-compatible." msgstr "Cet encodage est toujours compatible avec ASCII." -#: ../Doc/library/sys.rst:494 ../Doc/library/sys.rst:523 +#: ../Doc/library/sys.rst:508 ../Doc/library/sys.rst:537 msgid "" ":func:`os.fsencode` and :func:`os.fsdecode` should be used to ensure that " "the correct encoding and errors mode are used." @@ -954,20 +1016,20 @@ msgstr "" "utilisées pour s'assurer qu'un encodage et un gestionnaire d'erreurs correct " "sont utilisés." -#: ../Doc/library/sys.rst:497 +#: ../Doc/library/sys.rst:511 msgid "In the UTF-8 mode, the encoding is ``utf-8`` on any platform." msgstr "" "Dans le mode UTF-8, l'encodage est ``'utf-8'`` sur toutes les plate-formes." -#: ../Doc/library/sys.rst:499 +#: ../Doc/library/sys.rst:513 msgid "On Mac OS X, the encoding is ``'utf-8'``." msgstr "Sur Mac OS X, l'encodage est ``'utf-8'``." -#: ../Doc/library/sys.rst:501 +#: ../Doc/library/sys.rst:515 msgid "On Unix, the encoding is the locale encoding." msgstr "Sur Unix, l'encodage est celui des paramètres régionaux." -#: ../Doc/library/sys.rst:503 +#: ../Doc/library/sys.rst:517 msgid "" "On Windows, the encoding may be ``'utf-8'`` or ``'mbcs'``, depending on user " "configuration." @@ -975,11 +1037,11 @@ msgstr "" "Sur Windows, l'encodage peut être ``'utf-8'`` ou ``'mbcs'``, en fonction des " "paramètres de l'utilisateur." -#: ../Doc/library/sys.rst:506 +#: ../Doc/library/sys.rst:520 msgid ":func:`getfilesystemencoding` result cannot be ``None`` anymore." msgstr ":func:`getfilesystemencoding` ne peut plus renvoyer ``None``." -#: ../Doc/library/sys.rst:509 +#: ../Doc/library/sys.rst:523 msgid "" "Windows is no longer guaranteed to return ``'mbcs'``. See :pep:`529` and :" "func:`_enablelegacywindowsfsencoding` for more information." @@ -987,11 +1049,11 @@ msgstr "" "Sur Windows, on est plus assurés d'obtenir ``'mbcs'``. Voir la :pep:`529` " "et :func:`_enablelegacywindowsfsencoding` pour plus d'informations." -#: ../Doc/library/sys.rst:513 +#: ../Doc/library/sys.rst:527 msgid "Return 'utf-8' in the UTF-8 mode." -msgstr "" +msgstr "Renvoie `\"utf-8\"` en mode UTF-8." -#: ../Doc/library/sys.rst:519 +#: ../Doc/library/sys.rst:533 msgid "" "Return the name of the error mode used to convert between Unicode filenames " "and bytes filenames. The encoding name is returned from :func:" @@ -1001,7 +1063,7 @@ msgstr "" "noms de fichiers entre Unicode et octets. Le nom de l'encodage est renvoyé " "par :func:`getfilesystemencoding`." -#: ../Doc/library/sys.rst:530 +#: ../Doc/library/sys.rst:544 msgid "" "Return the reference count of the *object*. The count returned is generally " "one higher than you might expect, because it includes the (temporary) " @@ -1011,7 +1073,7 @@ msgstr "" "généralement d'une référence de plus qu'attendu, puisqu'il compte la " "référence (temporaire) de l'argument à :func:`getrefcount`." -#: ../Doc/library/sys.rst:537 +#: ../Doc/library/sys.rst:551 msgid "" "Return the current value of the recursion limit, the maximum depth of the " "Python interpreter stack. This limit prevents infinite recursion from " @@ -1023,7 +1085,7 @@ msgstr "" "d'une récursion infinie à cause d'un débordement de la pile. Elle peut être " "modifiée par :func:`setrecursionlimit`." -#: ../Doc/library/sys.rst:545 +#: ../Doc/library/sys.rst:559 msgid "" "Return the size of an object in bytes. The object can be any type of object. " "All built-in objects will return correct results, but this does not have to " @@ -1034,7 +1096,7 @@ msgstr "" "peut ne pas être toujours vrai pour les extensions, la valeur étant " "dépendante de l'implémentation." -#: ../Doc/library/sys.rst:550 +#: ../Doc/library/sys.rst:564 msgid "" "Only the memory consumption directly attributed to the object is accounted " "for, not the memory consumption of objects it refers to." @@ -1042,7 +1104,7 @@ msgstr "" "Seule la mémoire directement attribuée à l'objet est prise en compte, pas la " "mémoire consommée par les objets vers lesquels il a des références." -#: ../Doc/library/sys.rst:553 +#: ../Doc/library/sys.rst:567 msgid "" "If given, *default* will be returned if the object does not provide means to " "retrieve the size. Otherwise a :exc:`TypeError` will be raised." @@ -1050,7 +1112,7 @@ msgstr "" "S'il est fourni, *default* sera renvoyé si l'objet ne fournit aucun moyen de " "récupérer sa taille. Sinon, une exception :exc:`TypeError` sera levée." -#: ../Doc/library/sys.rst:556 +#: ../Doc/library/sys.rst:570 msgid "" ":func:`getsizeof` calls the object's ``__sizeof__`` method and adds an " "additional garbage collector overhead if the object is managed by the " @@ -1059,7 +1121,7 @@ msgstr "" ":func:`getsizeof` appelle la méthode ``__sizeof__`` de l'objet, et s'il est " "géré par lui, ajoute le surcoût du ramasse-miettes." -#: ../Doc/library/sys.rst:560 +#: ../Doc/library/sys.rst:574 msgid "" "See `recursive sizeof recipe `_ " "for an example of using :func:`getsizeof` recursively to find the size of " @@ -1069,7 +1131,7 @@ msgstr "" "recipes/577504>`_ pour un exemple d'utilisation récursive de :func:" "`getsizeof` pour trouver la taille d'un contenant et de son contenu." -#: ../Doc/library/sys.rst:566 +#: ../Doc/library/sys.rst:580 msgid "" "Return the interpreter's \"thread switch interval\"; see :func:" "`setswitchinterval`." @@ -1077,7 +1139,7 @@ msgstr "" "Renvoie la valeur du *thread switch interval* de l'interpréteur, voir :func:" "`setswitchinterval`." -#: ../Doc/library/sys.rst:574 +#: ../Doc/library/sys.rst:588 msgid "" "Return a frame object from the call stack. If optional integer *depth* is " "given, return the frame object that many calls below the top of the stack. " @@ -1091,7 +1153,7 @@ msgstr "" "exc:`ValueError` est levée. La profondeur par défaut est zéro, donnant ainsi " "la *frame* du dessus de la pile." -#: ../Doc/library/sys.rst:581 +#: ../Doc/library/sys.rst:595 msgid "" "This function should be used for internal and specialized purposes only. It " "is not guaranteed to exist in all implementations of Python." @@ -1100,16 +1162,16 @@ msgstr "" "spécifique. Il n'est pas garanti qu'elle existe dans toutes les " "implémentations de Python." -#: ../Doc/library/sys.rst:591 +#: ../Doc/library/sys.rst:605 msgid "Get the profiler function as set by :func:`setprofile`." msgstr "" "Renvoie la fonction de profilage tel que défini par :func:`setprofile`." -#: ../Doc/library/sys.rst:600 +#: ../Doc/library/sys.rst:614 msgid "Get the trace function as set by :func:`settrace`." msgstr "Renvoie la fonction de traçage tel que définie par :func:`settrace`." -#: ../Doc/library/sys.rst:604 +#: ../Doc/library/sys.rst:618 msgid "" "The :func:`gettrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -1121,7 +1183,7 @@ msgstr "" "dépend de l'implémentation et non du langage, elle n'est donc pas forcément " "disponible dans toutes les implémentations de Python." -#: ../Doc/library/sys.rst:612 +#: ../Doc/library/sys.rst:626 msgid "" "Return a named tuple describing the Windows version currently running. The " "named elements are *major*, *minor*, *build*, *platform*, *service_pack*, " @@ -1144,47 +1206,47 @@ msgstr "" "les versions antérieures, seuls les 5 premiers éléments sont accessibles par " "leur indice." -#: ../Doc/library/sys.rst:623 +#: ../Doc/library/sys.rst:637 msgid "*platform* will be :const:`2 (VER_PLATFORM_WIN32_NT)`." msgstr "*platform* sera :const:`2 (VER_PLATFORM_WIN32_NT)`." -#: ../Doc/library/sys.rst:625 +#: ../Doc/library/sys.rst:639 msgid "*product_type* may be one of the following values:" -msgstr "*product_type* peut être une des valeurs suivantes:" +msgstr "*product_type* peut être une des valeurs suivantes :" -#: ../Doc/library/sys.rst:628 +#: ../Doc/library/sys.rst:642 msgid "Constant" msgstr "Constante" -#: ../Doc/library/sys.rst:628 +#: ../Doc/library/sys.rst:642 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/sys.rst:630 +#: ../Doc/library/sys.rst:644 msgid ":const:`1 (VER_NT_WORKSTATION)`" msgstr ":const:`1 (VER_NT_WORKSTATION)`" -#: ../Doc/library/sys.rst:630 +#: ../Doc/library/sys.rst:644 msgid "The system is a workstation." msgstr "Le système une station de travail." -#: ../Doc/library/sys.rst:632 +#: ../Doc/library/sys.rst:646 msgid ":const:`2 (VER_NT_DOMAIN_CONTROLLER)`" msgstr ":const:`2 (VER_NT_DOMAIN_CONTROLLER)`" -#: ../Doc/library/sys.rst:632 +#: ../Doc/library/sys.rst:646 msgid "The system is a domain controller." msgstr "Le système est un contrôleur de domaine." -#: ../Doc/library/sys.rst:635 +#: ../Doc/library/sys.rst:649 msgid ":const:`3 (VER_NT_SERVER)`" msgstr ":const:`3 (VER_NT_SERVER)`" -#: ../Doc/library/sys.rst:635 +#: ../Doc/library/sys.rst:649 msgid "The system is a server, but not a domain controller." msgstr "Le système est un serveur, mais pas un contrôleur de domaine." -#: ../Doc/library/sys.rst:639 +#: ../Doc/library/sys.rst:653 msgid "" "This function wraps the Win32 :c:func:`GetVersionEx` function; see the " "Microsoft documentation on :c:func:`OSVERSIONINFOEX` for more information " @@ -1195,7 +1257,7 @@ msgstr "" "de Microsoft sur :c:func:`OSVERSIONINFOEX` pour plus d'informations sur ces " "champs." -#: ../Doc/library/sys.rst:643 +#: ../Doc/library/sys.rst:657 msgid "" "*platform_version* returns the accurate major version, minor version and " "build number of the current operating system, rather than the version that " @@ -1207,11 +1269,7 @@ msgstr "" "émulée pour ce processus. Il est destiné à être utilisé pour de la " "journalisation plutôt que pour la détection de fonctionnalités." -#: ../Doc/library/sys.rst:648 -msgid "Availability: Windows." -msgstr "Disponibilité : Windows." - -#: ../Doc/library/sys.rst:650 +#: ../Doc/library/sys.rst:664 msgid "" "Changed to a named tuple and added *service_pack_minor*, " "*service_pack_major*, *suite_mask*, and *product_type*." @@ -1219,11 +1277,11 @@ msgstr "" "Changé en un *tuple* nommé, et ajout de *service_pack_minor*, " "*service_pack_major*, *suite_mask*, et *product_type*." -#: ../Doc/library/sys.rst:654 +#: ../Doc/library/sys.rst:668 msgid "Added *platform_version*" msgstr "Ajout de *platform_version*" -#: ../Doc/library/sys.rst:660 +#: ../Doc/library/sys.rst:674 msgid "" "Returns an *asyncgen_hooks* object, which is similar to a :class:" "`~collections.namedtuple` of the form `(firstiter, finalizer)`, where " @@ -1239,11 +1297,11 @@ msgstr "" "pour planifier la finalisation d'un générateur asynchrone par un *event " "loop*." -#: ../Doc/library/sys.rst:667 +#: ../Doc/library/sys.rst:681 msgid "See :pep:`525` for more details." msgstr "Voir la :pep:`525` pour plus d'informations." -#: ../Doc/library/sys.rst:671 ../Doc/library/sys.rst:1244 +#: ../Doc/library/sys.rst:685 ../Doc/library/sys.rst:1260 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.)" @@ -1251,14 +1309,17 @@ msgstr "" "Cette fonction à été ajoutée à titre provisoire (voir la :pep:`411` pour " "plus d'informations.)" -#: ../Doc/library/sys.rst:677 +#: ../Doc/library/sys.rst:691 msgid "" -"Get the current coroutine origin tracking depth, as set by func:" +"Get the current coroutine origin tracking depth, as set by :func:" "`set_coroutine_origin_tracking_depth`." msgstr "" +"Récupère le nombre de cadres d'exécution conservés par les coroutines pour " +"le suivi de leur création, telle que défini par :func:" +"`set_coroutine_origin_tracking_depth`." -#: ../Doc/library/sys.rst:683 ../Doc/library/sys.rst:695 -#: ../Doc/library/sys.rst:1265 ../Doc/library/sys.rst:1304 +#: ../Doc/library/sys.rst:697 ../Doc/library/sys.rst:709 +#: ../Doc/library/sys.rst:1281 ../Doc/library/sys.rst:1320 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.) Use it only for debugging purposes." @@ -1266,22 +1327,24 @@ msgstr "" "Cette fonction à été ajoutée à titre provisoire (Voir la :pep:`411` pour " "plus d'informations.) Utilisez la uniquement à des fins de débogage." -#: ../Doc/library/sys.rst:689 +#: ../Doc/library/sys.rst:703 msgid "Returns ``None``, or a wrapper set by :func:`set_coroutine_wrapper`." msgstr "" "Renvoie ``None``, ou un *wrapper* donné via :func:`set_coroutine_wrapper`." -#: ../Doc/library/sys.rst:691 ../Doc/library/sys.rst:1300 +#: ../Doc/library/sys.rst:705 ../Doc/library/sys.rst:1316 msgid "See :pep:`492` for more details." msgstr "Voir la :pep:`492` pour plus d'informations." -#: ../Doc/library/sys.rst:698 ../Doc/library/sys.rst:1307 +#: ../Doc/library/sys.rst:712 ../Doc/library/sys.rst:1323 msgid "" "The coroutine wrapper functionality has been deprecated, and will be removed " "in 3.8. See :issue:`32591` for details." msgstr "" +"La fonctionnalité *wrapper* de coroutine est obsolète et sera supprimée dans " +"3.8. Voir :issue:`32591` pour plus de détails." -#: ../Doc/library/sys.rst:705 +#: ../Doc/library/sys.rst:719 msgid "" "A :term:`struct sequence` giving parameters of the numeric hash " "implementation. For more details about hashing of numeric types, see :ref:" @@ -1291,77 +1354,77 @@ msgstr "" "fonction de hachage de nombres. Pour plus d'informations sur le hachage des " "types numériques, consultez :ref:`numeric-hash`." -#: ../Doc/library/sys.rst:712 +#: ../Doc/library/sys.rst:726 msgid ":const:`width`" msgstr ":const:`width`" -#: ../Doc/library/sys.rst:712 +#: ../Doc/library/sys.rst:726 msgid "width in bits used for hash values" msgstr "Nombre de bits des valeurs de *hash*" -#: ../Doc/library/sys.rst:714 +#: ../Doc/library/sys.rst:728 msgid ":const:`modulus`" msgstr ":const:`modulus`" -#: ../Doc/library/sys.rst:714 +#: ../Doc/library/sys.rst:728 msgid "prime modulus P used for numeric hash scheme" msgstr "" "contient le premier P utilisé dans le modulo pour les *hash* numériques" -#: ../Doc/library/sys.rst:716 +#: ../Doc/library/sys.rst:730 msgid ":const:`inf`" msgstr ":const:`inf`" -#: ../Doc/library/sys.rst:716 +#: ../Doc/library/sys.rst:730 msgid "hash value returned for a positive infinity" msgstr "valeur du *hash* pour un infini positif" -#: ../Doc/library/sys.rst:718 +#: ../Doc/library/sys.rst:732 msgid ":const:`nan`" msgstr ":const:`nan`" -#: ../Doc/library/sys.rst:718 +#: ../Doc/library/sys.rst:732 msgid "hash value returned for a nan" msgstr "valeur du *hash* pour un *nan*" -#: ../Doc/library/sys.rst:720 +#: ../Doc/library/sys.rst:734 msgid ":const:`imag`" msgstr ":const:`imag`" -#: ../Doc/library/sys.rst:720 +#: ../Doc/library/sys.rst:734 msgid "multiplier used for the imaginary part of a complex number" msgstr "multiplicateur utilisé pour la partie imaginaire d'un nombre complexe" -#: ../Doc/library/sys.rst:723 +#: ../Doc/library/sys.rst:737 msgid ":const:`algorithm`" msgstr ":const:`algorithm`" -#: ../Doc/library/sys.rst:723 +#: ../Doc/library/sys.rst:737 msgid "name of the algorithm for hashing of str, bytes, and memoryview" msgstr "" "nom de l'algorithme pour le hachage des *str*, *bytes*, et *memoryview*" -#: ../Doc/library/sys.rst:726 +#: ../Doc/library/sys.rst:740 msgid ":const:`hash_bits`" msgstr ":const:`hash_bits`" -#: ../Doc/library/sys.rst:726 +#: ../Doc/library/sys.rst:740 msgid "internal output size of the hash algorithm" msgstr "taille de la sortie interne de l'algorithme de hachage" -#: ../Doc/library/sys.rst:728 +#: ../Doc/library/sys.rst:742 msgid ":const:`seed_bits`" msgstr ":const:`seed_bits`" -#: ../Doc/library/sys.rst:728 +#: ../Doc/library/sys.rst:742 msgid "size of the seed key of the hash algorithm" msgstr "taille de la *seed key* utilisée par l'algorithme de hachage" -#: ../Doc/library/sys.rst:734 +#: ../Doc/library/sys.rst:748 msgid "Added *algorithm*, *hash_bits* and *seed_bits*" msgstr "Ajout de *algorithm*, *hash_bits* et *seed_bits*" -#: ../Doc/library/sys.rst:740 +#: ../Doc/library/sys.rst:754 msgid "" "The version number encoded as a single integer. This is guaranteed to " "increase with each version, including proper support for non-production " @@ -1371,9 +1434,9 @@ msgstr "" "Le numéro de version codé sous forme d'un seul nombre entier. Ce numéro " "augmente avec chaque version, y compris pour les versions hors production. " "Par exemple, pour vérifier que l'interpréteur Python est au moins la version " -"1.5, utilisez : ::" +"1.5, utilisez ::" -#: ../Doc/library/sys.rst:751 +#: ../Doc/library/sys.rst:765 msgid "" "This is called ``hexversion`` since it only really looks meaningful when " "viewed as the result of passing it to the built-in :func:`hex` function. " @@ -1385,12 +1448,12 @@ msgstr "" "`hex`. La :term:`struct sequence` :data:`sys.version_info` représente la " "même information d'une manière plus humaine." -#: ../Doc/library/sys.rst:756 +#: ../Doc/library/sys.rst:770 msgid "More details of ``hexversion`` can be found at :ref:`apiabiversion`." msgstr "" "Consultez :ref:`apiabiversion` pour plus d'informations sur ``hexversion``." -#: ../Doc/library/sys.rst:761 +#: ../Doc/library/sys.rst:775 msgid "" "An object containing information about the implementation of the currently " "running Python interpreter. The following attributes are required to exist " @@ -1400,7 +1463,7 @@ msgstr "" "actuelle de l'interpréteur Python. Les attributs suivants existent " "obligatoirement sur toutes les implémentations Python." -#: ../Doc/library/sys.rst:765 +#: ../Doc/library/sys.rst:779 msgid "" "*name* is the implementation's identifier, e.g. ``'cpython'``. The actual " "string is defined by the Python implementation, but it is guaranteed to be " @@ -1410,7 +1473,7 @@ msgstr "" "chaîne est définie par l'implémentation de Python, mais sera toujours en " "minuscule." -#: ../Doc/library/sys.rst:769 +#: ../Doc/library/sys.rst:783 msgid "" "*version* is a named tuple, in the same format as :data:`sys.version_info`. " "It represents the version of the Python *implementation*. This has a " @@ -1430,7 +1493,7 @@ msgstr "" "valoir ``sys.version_info(2, 7, 2, 'final', 0)``. Pour CPython ces deux " "valeurs sont identiques puisque c'est l'implémentation de référence." -#: ../Doc/library/sys.rst:779 +#: ../Doc/library/sys.rst:793 msgid "" "*hexversion* is the implementation version in hexadecimal format, like :data:" "`sys.hexversion`." @@ -1438,7 +1501,7 @@ msgstr "" "*hexversion* est la version de l'implémentation sous forme hexadécimale, " "comme :data:`sys.hexversion`." -#: ../Doc/library/sys.rst:782 +#: ../Doc/library/sys.rst:796 msgid "" "*cache_tag* is the tag used by the import machinery in the filenames of " "cached modules. By convention, it would be a composite of the " @@ -1453,7 +1516,7 @@ msgstr "" "autre valeur si nécessaire. ``cache_tag`` à ``None`` signifie que la mise " "en cache des modules doit être désactivée." -#: ../Doc/library/sys.rst:789 +#: ../Doc/library/sys.rst:803 msgid "" ":data:`sys.implementation` may contain additional attributes specific to the " "Python implementation. These non-standard attributes must start with an " @@ -1470,7 +1533,7 @@ msgstr "" "cependant changer entre les versions du langage Python.) Voir la :pep:`421` " "pour plus d'informations." -#: ../Doc/library/sys.rst:801 +#: ../Doc/library/sys.rst:815 msgid "" "A :term:`struct sequence` that holds information about Python's internal " "representation of integers. The attributes are read only." @@ -1479,35 +1542,35 @@ msgstr "" "représentation interne des entiers de Python. Les attributs sont en lecture " "seule." -#: ../Doc/library/sys.rst:807 ../Doc/library/sys.rst:1394 +#: ../Doc/library/sys.rst:821 ../Doc/library/sys.rst:1427 msgid "Attribute" msgstr "Attribut" -#: ../Doc/library/sys.rst:807 ../Doc/library/sys.rst:1394 +#: ../Doc/library/sys.rst:821 ../Doc/library/sys.rst:1427 msgid "Explanation" msgstr "Explication" -#: ../Doc/library/sys.rst:809 +#: ../Doc/library/sys.rst:823 msgid ":const:`bits_per_digit`" msgstr ":const:`bits_per_digit`" -#: ../Doc/library/sys.rst:809 +#: ../Doc/library/sys.rst:823 msgid "" "number of bits held in each digit. Python integers are stored internally in " "base ``2**int_info.bits_per_digit``" msgstr "" "nombre de bits utilisés pour chaque chiffre. Les entiers Python sont " -"stockés en interne en base ``2**int_info.bits_per_digit``." +"stockés en interne en base ``2**int_info.bits_per_digit``" -#: ../Doc/library/sys.rst:813 +#: ../Doc/library/sys.rst:827 msgid ":const:`sizeof_digit`" msgstr ":const:`sizeof_digit`" -#: ../Doc/library/sys.rst:813 +#: ../Doc/library/sys.rst:827 msgid "size in bytes of the C type used to represent a digit" msgstr "taille en octets du type C utilisé pour représenter un chiffre" -#: ../Doc/library/sys.rst:822 +#: ../Doc/library/sys.rst:836 msgid "" "When this attribute exists, its value is automatically called (with no " "arguments) when the interpreter is launched in :ref:`interactive mode ` par le module :mod:`site`." -#: ../Doc/library/sys.rst:833 +#: ../Doc/library/sys.rst:847 msgid "" "Enter *string* in the table of \"interned\" strings and return the interned " "string -- which is *string* itself or a copy. Interning strings is useful to " @@ -1543,15 +1606,15 @@ msgstr "" "attributs de modules, de classes, ou d'instances ont aussi leurs clés " "internées." -#: ../Doc/library/sys.rst:841 +#: ../Doc/library/sys.rst:855 msgid "" "Interned strings are not immortal; you must keep a reference to the return " "value of :func:`intern` around to benefit from it." msgstr "" -"Les chaînes internées ne sont pas immortelles; vous devez garder une " +"Les chaînes internées ne sont pas immortelles ; vous devez garder une " "référence à la valeur renvoyée par :func:`intern` pour en bénéficier." -#: ../Doc/library/sys.rst:847 +#: ../Doc/library/sys.rst:861 msgid "" "Return :const:`True` if the Python interpreter is :term:`shutting down " "`, :const:`False` otherwise." @@ -1559,7 +1622,7 @@ msgstr "" "Donne :const:`True` si l'interpréteur Python est :term:`en train de " "s'arrêter `, et :const:`False` dans le cas contraire." -#: ../Doc/library/sys.rst:857 +#: ../Doc/library/sys.rst:871 msgid "" "These three variables are not always defined; they are set when an exception " "is not handled and the interpreter prints an error message and a stack " @@ -1578,7 +1641,7 @@ msgstr "" "mortem est ``import pdb; pdb.pm()``, voir :mod:`pdb` pour plus " "d'informations.)." -#: ../Doc/library/sys.rst:865 +#: ../Doc/library/sys.rst:879 msgid "" "The meaning of the variables is the same as that of the return values from :" "func:`exc_info` above." @@ -1586,7 +1649,7 @@ msgstr "" "La signification de ces variables est la même que celle des valeurs " "renvoyées par :func:`exc_info` ci-dessus." -#: ../Doc/library/sys.rst:871 +#: ../Doc/library/sys.rst:885 msgid "" "An integer giving the maximum value a variable of type :c:type:`Py_ssize_t` " "can take. It's usually ``2**31 - 1`` on a 32-bit platform and ``2**63 - 1`` " @@ -1596,7 +1659,7 @@ msgstr "" "`Py_ssize_t` peut prendre. C'est typiquement ``2**31 - 1`` sur une " "plateforme 32 bits et ``2**63 - 1``` sur une plateforme 64 bits." -#: ../Doc/library/sys.rst:878 +#: ../Doc/library/sys.rst:892 msgid "" "An integer giving the value of the largest Unicode code point, i.e. " "``1114111`` (``0x10FFFF`` in hexadecimal)." @@ -1604,7 +1667,7 @@ msgstr "" "Un entier donnant la valeur du plus grand point de code Unicode, c'est-à-" "dire ``1114111`` (```0x10FFFF`` en hexadécimal)." -#: ../Doc/library/sys.rst:881 +#: ../Doc/library/sys.rst:895 msgid "" "Before :pep:`393`, ``sys.maxunicode`` used to be either ``0xFFFF`` or " "``0x10FFFF``, depending on the configuration option that specified whether " @@ -1614,7 +1677,7 @@ msgstr "" "``0x10FFFF``, en fonction l'option de configuration qui spécifiait si les " "caractères Unicode étaient stockés en UCS-2 ou UCS-4." -#: ../Doc/library/sys.rst:889 +#: ../Doc/library/sys.rst:903 msgid "" "A list of :term:`meta path finder` objects that have their :meth:`~importlib." "abc.MetaPathFinder.find_spec` methods called to see if one of the objects " @@ -1633,11 +1696,11 @@ msgstr "" "attr:`__path__` du paquet parent est donné en deuxième argument. La méthode " "renvoie un :term:`module spec`, ou ``None`` si le module ne peut être trouvé." -#: ../Doc/library/sys.rst:901 +#: ../Doc/library/sys.rst:915 msgid ":class:`importlib.abc.MetaPathFinder`" msgstr ":class:`importlib.abc.MetaPathFinder`" -#: ../Doc/library/sys.rst:901 +#: ../Doc/library/sys.rst:915 msgid "" "The abstract base class defining the interface of finder objects on :data:" "`meta_path`." @@ -1645,11 +1708,11 @@ msgstr "" "La classe de base abstraite définissant l'interface des objets *finder* de :" "data:`meta_path`." -#: ../Doc/library/sys.rst:905 +#: ../Doc/library/sys.rst:919 msgid ":class:`importlib.machinery.ModuleSpec`" msgstr ":class:`importlib.machinery.ModuleSpec`" -#: ../Doc/library/sys.rst:904 +#: ../Doc/library/sys.rst:918 msgid "" "The concrete class which :meth:`~importlib.abc.MetaPathFinder.find_spec` " "should return instances of." @@ -1657,7 +1720,7 @@ msgstr "" "La classe concrète dont :meth:`~importlib.abc.MetaPathFinder.find_spec` " "devrait renvoyer des instances." -#: ../Doc/library/sys.rst:910 +#: ../Doc/library/sys.rst:924 msgid "" ":term:`Module specs ` were introduced in Python 3.4, by :pep:" "`451`. Earlier versions of Python looked for a method called :meth:" @@ -1671,7 +1734,7 @@ msgstr "" "toujours appelée en dernier recours, dans le cas où une :data:`meta_path` " "n'a pas de méthode :meth:`~importlib.abc.MetaPathFinder.find_spec`." -#: ../Doc/library/sys.rst:918 +#: ../Doc/library/sys.rst:932 msgid "" "This is a dictionary that maps module names to modules which have already " "been loaded. This can be manipulated to force reloading of modules and " @@ -1684,7 +1747,7 @@ msgstr "" "rechargé. Cependant, le remplacer ne fonctionnera pas forcément comme prévu " "et en supprimer des éléments essentiels peut planter Python." -#: ../Doc/library/sys.rst:928 +#: ../Doc/library/sys.rst:942 msgid "" "A list of strings that specifies the search path for modules. Initialized " "from the environment variable :envvar:`PYTHONPATH`, plus an installation-" @@ -1694,7 +1757,7 @@ msgstr "" "modules, initialisée à partir de la variable d'environnement :envvar:" "`PYTHONPATH` et d'une valeur par défaut dépendante de l'installation." -#: ../Doc/library/sys.rst:932 +#: ../Doc/library/sys.rst:946 msgid "" "As initialized upon program startup, the first item of this list, " "``path[0]``, is the directory containing the script that was used to invoke " @@ -1714,7 +1777,7 @@ msgstr "" "actuel. Notez que le dossier du script est inséré *avant* les dossiers de :" "envvar:`PYTHONPATH`." -#: ../Doc/library/sys.rst:940 +#: ../Doc/library/sys.rst:954 msgid "" "A program is free to modify this list for its own purposes. Only strings " "and bytes should be added to :data:`sys.path`; all other data types are " @@ -1724,7 +1787,7 @@ msgstr "" "Seuls des *str* ou des *bytes* ne devraient être ajoutés à :data:`sys.path`, " "tous les autres types de données étant ignorés durant l'importation." -#: ../Doc/library/sys.rst:946 +#: ../Doc/library/sys.rst:960 msgid "" "Module :mod:`site` This describes how to use .pth files to extend :data:`sys." "path`." @@ -1732,7 +1795,7 @@ msgstr "" "Le module :mod:`site` décrit comment utiliser les fichiers *.pth* pour " "étendre :data:`sys.path`." -#: ../Doc/library/sys.rst:952 +#: ../Doc/library/sys.rst:966 msgid "" "A list of callables that take a path argument to try to create a :term:" "`finder` for the path. If a finder can be created, it is to be returned by " @@ -1742,11 +1805,11 @@ msgstr "" "`finder` pour ce chemin. Si un *finder* peut être créé, il doit être renvoyé " "par l'appelable, sinon une :exc:`ImportError` doit être levée." -#: ../Doc/library/sys.rst:956 ../Doc/library/sys.rst:967 +#: ../Doc/library/sys.rst:970 ../Doc/library/sys.rst:981 msgid "Originally specified in :pep:`302`." msgstr "Précisé à l'origine dans la :pep:`302`." -#: ../Doc/library/sys.rst:961 +#: ../Doc/library/sys.rst:975 msgid "" "A dictionary acting as a cache for :term:`finder` objects. The keys are " "paths that have been passed to :data:`sys.path_hooks` and the values are the " @@ -1759,7 +1822,7 @@ msgstr "" "de fichiers mais qu'aucun *finder* n'est trouvé dans :data:`sys.path_hooks`, " "``None`` est stocké." -#: ../Doc/library/sys.rst:969 +#: ../Doc/library/sys.rst:983 msgid "" "``None`` is stored instead of :class:`imp.NullImporter` when no finder is " "found." @@ -1767,7 +1830,7 @@ msgstr "" "``None`` est stocké à la place de :class:`imp.NullImporter` si aucun " "localisateur n'est trouvé." -#: ../Doc/library/sys.rst:976 +#: ../Doc/library/sys.rst:990 msgid "" "This string contains a platform identifier that can be used to append " "platform-specific components to :data:`sys.path`, for instance." @@ -1776,7 +1839,7 @@ msgstr "" "typiquement utilisé pour ajouter des composants spécifiques à :data:`sys." "path`." -#: ../Doc/library/sys.rst:979 +#: ../Doc/library/sys.rst:993 msgid "" "For Unix systems, except on Linux, this is the lowercased OS name as " "returned by ``uname -s`` with the first part of the version as returned by " @@ -1790,51 +1853,51 @@ msgstr "" "moment où Python a été compilé*. A moins que vous ne souhaitiez tester pour " "une version spécifique du système, vous pouvez faire comme suit : ::" -#: ../Doc/library/sys.rst:990 +#: ../Doc/library/sys.rst:1004 msgid "For other systems, the values are:" -msgstr "Pour les autres systèmes, les valeurs sont:" +msgstr "Pour les autres systèmes, les valeurs sont :" -#: ../Doc/library/sys.rst:993 +#: ../Doc/library/sys.rst:1007 msgid "System" -msgstr "Système" +msgstr "Le système une station de travail." -#: ../Doc/library/sys.rst:993 +#: ../Doc/library/sys.rst:1007 msgid "``platform`` value" msgstr "Valeur pour ``plateforme``" -#: ../Doc/library/sys.rst:995 +#: ../Doc/library/sys.rst:1009 msgid "Linux" msgstr "Linux" -#: ../Doc/library/sys.rst:995 +#: ../Doc/library/sys.rst:1009 msgid "``'linux'``" msgstr "``'linux'``" -#: ../Doc/library/sys.rst:996 +#: ../Doc/library/sys.rst:1010 msgid "Windows" msgstr "Windows" -#: ../Doc/library/sys.rst:996 +#: ../Doc/library/sys.rst:1010 msgid "``'win32'``" msgstr "``'win32'``" -#: ../Doc/library/sys.rst:997 +#: ../Doc/library/sys.rst:1011 msgid "Windows/Cygwin" msgstr "Windows/Cygwin" -#: ../Doc/library/sys.rst:997 +#: ../Doc/library/sys.rst:1011 msgid "``'cygwin'``" msgstr "``'cygwin'``" -#: ../Doc/library/sys.rst:998 +#: ../Doc/library/sys.rst:1012 msgid "Mac OS X" msgstr "Mac OS X" -#: ../Doc/library/sys.rst:998 +#: ../Doc/library/sys.rst:1012 msgid "``'darwin'``" msgstr "``'darwin'``" -#: ../Doc/library/sys.rst:1001 +#: ../Doc/library/sys.rst:1015 msgid "" "On Linux, :attr:`sys.platform` doesn't contain the major version anymore. It " "is always ``'linux'``, instead of ``'linux2'`` or ``'linux3'``. Since older " @@ -1846,7 +1909,7 @@ msgstr "" "anciennes versions de Python incluent le numéro de version, il est " "recommandé de toujours utiliser ``startswith``, tel qu'utilisé ci-dessus." -#: ../Doc/library/sys.rst:1009 +#: ../Doc/library/sys.rst:1023 msgid "" ":attr:`os.name` has a coarser granularity. :func:`os.uname` gives system-" "dependent version information." @@ -1854,7 +1917,7 @@ msgstr "" ":attr:`os.name` a une granularité plus grossière. :func:`os.uname` donne des " "informations sur la version dépendantes du système." -#: ../Doc/library/sys.rst:1012 +#: ../Doc/library/sys.rst:1026 msgid "" "The :mod:`platform` module provides detailed checks for the system's " "identity." @@ -1862,7 +1925,7 @@ msgstr "" "Le module :mod:`platform` fournit des vérifications détaillées pour " "l'identité du système." -#: ../Doc/library/sys.rst:1018 +#: ../Doc/library/sys.rst:1032 msgid "" "A string giving the site-specific directory prefix where the platform " "independent Python files are installed; by default, this is the string ``'/" @@ -1883,7 +1946,7 @@ msgstr "" "stockées dans :file:`{prefix}/include/python{X.Y}`, où *X.Y* est le numéro " "de version de Python, par exemple ``3.2``." -#: ../Doc/library/sys.rst:1027 +#: ../Doc/library/sys.rst:1041 msgid "" "If a :ref:`virtual environment ` is in effect, this value will be " "changed in ``site.py`` to point to the virtual environment. The value for " @@ -1894,7 +1957,7 @@ msgstr "" "donnée au moment de la compilation de Python sera toujours disponible, dans :" "data:`base_prefix`." -#: ../Doc/library/sys.rst:1040 +#: ../Doc/library/sys.rst:1056 msgid "" "Strings specifying the primary and secondary prompt of the interpreter. " "These are only defined if the interpreter is in interactive mode. Their " @@ -1911,7 +1974,7 @@ msgstr "" "à lire une nouvelle commande interactive, c'est donc utilisable pour " "implémenter une invite dynamique." -#: ../Doc/library/sys.rst:1050 +#: ../Doc/library/sys.rst:1066 msgid "" "Set the interpreter's \"check interval\". This integer value determines how " "often the interpreter checks for periodic things such as thread switches and " @@ -1931,17 +1994,17 @@ msgstr "" "tâches à chaque instruction virtuelle, maximisant ainsi la réactivité mais " "aussi son surcoût." -#: ../Doc/library/sys.rst:1057 +#: ../Doc/library/sys.rst:1073 msgid "" "This function doesn't have an effect anymore, as the internal logic for " "thread switching and asynchronous tasks has been rewritten. Use :func:" "`setswitchinterval` instead." msgstr "" -"Cette fonction n'a plus aucun effet : La logique interne de commutation de " +"Cette fonction n'a plus aucun effet : La logique interne de commutation de " "fils d'exécution et de gestion des tâches asynchrones ayant été réécrite. " "Utilisez :func:`setswitchinterval` à la place." -#: ../Doc/library/sys.rst:1065 +#: ../Doc/library/sys.rst:1081 msgid "" "Set the flags used by the interpreter for :c:func:`dlopen` calls, such as " "when the interpreter loads extension modules. Among other things, this will " @@ -1954,17 +2017,13 @@ msgstr "" "Définit les options utilisées par l'interpréteur lors des appels à :c:func:" "`dlopen`, typiquement utilisé par l'interpréteur pour charger des modules " "d'extension. Permet entre autre de résoudre tardivement les symboles lors " -"des imports de modules (si appelé ``sys.setdlopenflags(0)``). Pour partager " -"les symboles entre modules, appelez ``sys.setdlopenflags(os.RTLD_GLOBAL)``. " -"Les noms pour les valeurs de ces options peuvent être trouvés dans le " -"module :mod:`os` (ce sont les constantes ``RTLD_xxx``, comme :data:`os." -"RTLD_LAZY`)." +"des importations de modules (si appelé ``sys.setdlopenflags(0)``). Pour " +"partager les symboles entre modules, appelez ``sys.setdlopenflags(os." +"RTLD_GLOBAL)``. Les noms pour les valeurs de ces options peuvent être " +"trouvés dans le module :mod:`os` (ce sont les constantes ``RTLD_xxx``, " +"comme :data:`os.RTLD_LAZY`)." -#: ../Doc/library/sys.rst:1073 -msgid "Availability: Unix." -msgstr "Disponibilité : Unix." - -#: ../Doc/library/sys.rst:1081 +#: ../Doc/library/sys.rst:1097 msgid "" "Set the system's profile function, which allows you to implement a Python " "source code profiler in Python. See chapter :ref:`profile` for more " @@ -1992,27 +2051,28 @@ msgstr "" "*multithread*. Sa valeur de retour n'est pas utilisée, elle peut simplement " "renvoyer ``None``." -#: ../Doc/library/sys.rst:1092 +#: ../Doc/library/sys.rst:1108 msgid "" "Profile functions should have three arguments: *frame*, *event*, and *arg*. " "*frame* is the current stack frame. *event* is a string: ``'call'``, " "``'return'``, ``'c_call'``, ``'c_return'``, or ``'c_exception'``. *arg* " "depends on the event type." msgstr "" -"Les fonctions de traçage doivent avoir trois arguments: *frame*, *event*, et " -"*arg*. *frame* est la *stack frame* actuelle. *event* est une chaîne de " -"caractères pouvant valoir : ``'call'``, ``'return'``, ``'c_call'``, " -"``'c_return'`` ou ``'c_exception'``. *arg* dépend du type de l'évènement." +"Les fonctions de traçage doivent avoir trois arguments : *frame*, " +"*event*, et *arg*. *frame* est la *stack frame* actuelle. *event* est une " +"chaîne de caractères pouvant valoir : ``'call'``, ``'return'``, " +"``'c_call'``, ``'c_return'`` ou ``'c_exception'``. *arg* dépend du type de " +"l'évènement." -#: ../Doc/library/sys.rst:1097 ../Doc/library/sys.rst:1177 +#: ../Doc/library/sys.rst:1113 ../Doc/library/sys.rst:1193 msgid "The events have the following meaning:" msgstr "Les événements ont la signification suivante :" -#: ../Doc/library/sys.rst:1101 ../Doc/library/sys.rst:1182 +#: ../Doc/library/sys.rst:1117 ../Doc/library/sys.rst:1198 msgid "``'call'``" msgstr "``'call'``" -#: ../Doc/library/sys.rst:1100 +#: ../Doc/library/sys.rst:1116 msgid "" "A function is called (or some other code block entered). The profile " "function is called; *arg* is ``None``." @@ -2020,11 +2080,11 @@ msgstr "" "Une fonction est appelée (ou Python entre dans un autre bloc de code). La " "fonction de traçage est appelée, *arg* est ``None``." -#: ../Doc/library/sys.rst:1106 ../Doc/library/sys.rst:1197 +#: ../Doc/library/sys.rst:1122 ../Doc/library/sys.rst:1213 msgid "``'return'``" msgstr "``'return'``" -#: ../Doc/library/sys.rst:1104 +#: ../Doc/library/sys.rst:1120 msgid "" "A function (or other code block) is about to return. The profile function " "is called; *arg* is the value that will be returned, or ``None`` if the " @@ -2034,11 +2094,11 @@ msgstr "" "fonction de traçage est appelée, *arg* est la valeur qui sera renvoyée, ou " "``None`` si l'événement est causé par la levée d'une exception." -#: ../Doc/library/sys.rst:1110 +#: ../Doc/library/sys.rst:1126 msgid "``'c_call'``" msgstr "``'c_call'``" -#: ../Doc/library/sys.rst:1109 +#: ../Doc/library/sys.rst:1125 msgid "" "A C function is about to be called. This may be an extension function or a " "built-in. *arg* is the C function object." @@ -2046,23 +2106,23 @@ msgstr "" "Une fonction C est sur le point d'être appelée. C'est soit une fonction " "d'extension ou une fonction native. *arg* représente la fonction C." -#: ../Doc/library/sys.rst:1113 +#: ../Doc/library/sys.rst:1129 msgid "``'c_return'``" msgstr "``'c_return'``" -#: ../Doc/library/sys.rst:1113 +#: ../Doc/library/sys.rst:1129 msgid "A C function has returned. *arg* is the C function object." msgstr "Une fonction C a renvoyé une valeur. *arg* représente la fonction C." -#: ../Doc/library/sys.rst:1115 +#: ../Doc/library/sys.rst:1131 msgid "``'c_exception'``" msgstr "``'c_exception'``" -#: ../Doc/library/sys.rst:1116 +#: ../Doc/library/sys.rst:1132 msgid "A C function has raised an exception. *arg* is the C function object." msgstr "Une fonction C a levé une exception. *arg* représente la fonction C." -#: ../Doc/library/sys.rst:1120 +#: ../Doc/library/sys.rst:1136 msgid "" "Set the maximum depth of the Python interpreter stack to *limit*. This " "limit prevents infinite recursion from causing an overflow of the C stack " @@ -2072,7 +2132,7 @@ msgstr "" "*limit*. Cette limite empêche une récursion infinie de provoquer un " "débordement de la pile C et ainsi un crash de Python." -#: ../Doc/library/sys.rst:1124 +#: ../Doc/library/sys.rst:1140 msgid "" "The highest possible limit is platform-dependent. A user may need to set " "the limit higher when they have a program that requires deep recursion and a " @@ -2084,7 +2144,7 @@ msgstr "" "profonde, si sa plate-forme le permet. Cela doit être fait avec précaution, " "car une limite trop élevée peut conduire à un crash." -#: ../Doc/library/sys.rst:1129 +#: ../Doc/library/sys.rst:1145 msgid "" "If the new limit is too low at the current recursion depth, a :exc:" "`RecursionError` exception is raised." @@ -2092,7 +2152,7 @@ msgstr "" "Si la nouvelle limite est plus basse que la profondeur actuelle, une :exc:" "`RecursionError` est levée." -#: ../Doc/library/sys.rst:1132 +#: ../Doc/library/sys.rst:1148 msgid "" "A :exc:`RecursionError` exception is now raised if the new limit is too low " "at the current recursion depth." @@ -2100,7 +2160,7 @@ msgstr "" "Une :exc:`RecursionError` est maintenant levée si la nouvelle limite est " "plus basse que la profondeur de récursion actuelle." -#: ../Doc/library/sys.rst:1139 +#: ../Doc/library/sys.rst:1155 msgid "" "Set the interpreter's thread switch interval (in seconds). This floating-" "point value determines the ideal duration of the \"timeslices\" allocated to " @@ -2118,32 +2178,34 @@ msgstr "" "d'exécution prenant la main à la fin de l'intervalle revient au système " "d'exploitation. L'interpréteur n'a pas son propre ordonnanceur." -#: ../Doc/library/sys.rst:1156 +#: ../Doc/library/sys.rst:1172 msgid "" "Set the system's trace function, which allows you to implement a Python " "source code debugger in Python. The function is thread-specific; for a " -"debugger to support multiple threads, it must be registered using :func:" -"`settrace` for each thread being debugged." +"debugger to support multiple threads, it must register a trace function " +"using :func:`settrace` for each thread being debugged or use :func:" +"`threading.settrace`." msgstr "" "Définit la fonction de traçage du système, qui vous permet d'implémenter un " -"débogueur de code source Python en Python. Cette fonction est locale au fil " +"débogueur de code source Python en Python. Cette fonction est locale au fil " "d'exécution courant. Pour qu'un débogueur puisse gérer plusieurs fils " "d'exécution, il doit enregistrer sa fonction en appelant :func:`settrace` " -"pour chaque fil d'exécution qu'il souhaite surveiller." +"pour chaque fil d'exécution qu'il souhaite surveiller ou utilisez :func:" +"`threading.settrace`." -#: ../Doc/library/sys.rst:1161 +#: ../Doc/library/sys.rst:1177 msgid "" "Trace functions should have three arguments: *frame*, *event*, and *arg*. " "*frame* is the current stack frame. *event* is a string: ``'call'``, " "``'line'``, ``'return'``, ``'exception'`` or ``'opcode'``. *arg* depends on " "the event type." msgstr "" -"Les fonctions de traçage doivent avoir trois arguments: *frame*, *event*, et " -"*arg*. *frame* est la *stack frame* actuelle. *event* est une chaîne de " -"caractères pouvant valoir : ``'call'``, ``'line'``, ``'return'``, " +"Les fonctions de traçage doivent avoir trois arguments : *frame*, " +"*event*, et *arg*. *frame* est la *stack frame* actuelle. *event* est une " +"chaîne de caractères pouvant valoir : ``'call'``, ``'line'``, ``'return'``, " "``'exception'`` ou ``'opcode'``. *arg* dépend du type de l'évènement." -#: ../Doc/library/sys.rst:1166 +#: ../Doc/library/sys.rst:1182 msgid "" "The trace function is invoked (with *event* set to ``'call'``) whenever a " "new local scope is entered; it should return a reference to a local trace " @@ -2154,7 +2216,7 @@ msgstr "" "référence à une fonction de traçage locale à utiliser pour ce *scope*, ou " "``None`` si le *Scope* ne doit pas être tracé." -#: ../Doc/library/sys.rst:1170 +#: ../Doc/library/sys.rst:1186 msgid "" "The local trace function should return a reference to itself (or to another " "function for further tracing in that scope), or ``None`` to turn off tracing " @@ -2164,13 +2226,15 @@ msgstr "" "autre fonction de traçage pour un traçage ultérieur dans cette portée), ou " "``None`` pour désactiver le traçage dans cette portée." -#: ../Doc/library/sys.rst:1174 +#: ../Doc/library/sys.rst:1190 msgid "" "If there is any error occurred in the trace function, it will be unset, just " "like ``settrace(None)`` is called." msgstr "" +"Si une erreur se produit dans la fonction de trace, elle sera désactivée, " +"tout comme si ``settrace(None)`` avait été appelée." -#: ../Doc/library/sys.rst:1180 +#: ../Doc/library/sys.rst:1196 msgid "" "A function is called (or some other code block entered). The global trace " "function is called; *arg* is ``None``; the return value specifies the local " @@ -2180,11 +2244,11 @@ msgstr "" "globale est appelée, *arg* est ``None``, la valeur renvoyée donne la " "fonction de traçage locale." -#: ../Doc/library/sys.rst:1191 +#: ../Doc/library/sys.rst:1207 msgid "``'line'``" msgstr "``'line'``" -#: ../Doc/library/sys.rst:1185 +#: ../Doc/library/sys.rst:1201 msgid "" "The interpreter is about to execute a new line of code or re-execute the " "condition of a loop. The local trace function is called; *arg* is ``None``; " @@ -2198,10 +2262,10 @@ msgstr "" "appelée, *arg* vaut ``None``, et la valeur de retour donne la nouvelle " "fonction de traçage locale. Voir :file:`Objects/lnotab_notes.txt` pour une " "explication détaillée de ce mécanisme. Les évènements par ligne peuvent être " -"désactivés pour une *frame* en mettant :attr:`f_trace_lines` à :const:" -"`False` pour cette *frame*" +"désactivés pour un cadre d'exécution en mettant :attr:`f_trace_lines` à :" +"const:`False` pour ce cadre d'exécution." -#: ../Doc/library/sys.rst:1194 +#: ../Doc/library/sys.rst:1210 msgid "" "A function (or other code block) is about to return. The local trace " "function is called; *arg* is the value that will be returned, or ``None`` if " @@ -2213,11 +2277,11 @@ msgstr "" "renvoyée, ou ``None`` si l'événement est causé par la levée d'une exception. " "La valeur renvoyée par la fonction de traçage est ignorée." -#: ../Doc/library/sys.rst:1202 +#: ../Doc/library/sys.rst:1218 msgid "``'exception'``" msgstr "``'exception'``" -#: ../Doc/library/sys.rst:1200 +#: ../Doc/library/sys.rst:1216 msgid "" "An exception has occurred. The local trace function is called; *arg* is a " "tuple ``(exception, value, traceback)``; the return value specifies the new " @@ -2227,11 +2291,11 @@ msgstr "" "est le *tuple* ``(exception, valeur, traceback)``, la valeur renvoyée " "spécifie la nouvelle fonction de traçage locale." -#: ../Doc/library/sys.rst:1210 +#: ../Doc/library/sys.rst:1226 msgid "``'opcode'``" msgstr "``'opcode'``" -#: ../Doc/library/sys.rst:1205 +#: ../Doc/library/sys.rst:1221 msgid "" "The interpreter is about to execute a new opcode (see :mod:`dis` for opcode " "details). The local trace function is called; *arg* is ``None``; the return " @@ -2240,13 +2304,13 @@ msgid "" "`f_trace_opcodes` to :const:`True` on the frame." msgstr "" "L'interpréteur va exécuter un nouvel *opcode* (voyez :mod:`dis` pour plus de " -"détails). La fonction de traçage locale est appelée ; *arg* vaut ``None``; " +"détails). La fonction de traçage locale est appelée ; *arg* vaut ``None`` ; " "la valeur retournée donne la nouvelle fonction de traçage locale. Le traçage " -"ne se fait pas *opcode* par *opcode* par défaut : cela doit être " +"ne se fait pas *opcode* par *opcode* par défaut : cela doit être " "explicitement requis en mettant :attr:`f_trace_opcodes` à :const:`True` pour " "cette *frame*." -#: ../Doc/library/sys.rst:1212 +#: ../Doc/library/sys.rst:1228 msgid "" "Note that as an exception is propagated down the chain of callers, an " "``'exception'`` event is generated at each level." @@ -2254,13 +2318,13 @@ msgstr "" "Remarquez que, comme une exception se propage au travers de toute chaîne " "d'appelants, un événement ``'exception'`` est généré à chaque niveau." -#: ../Doc/library/sys.rst:1215 +#: ../Doc/library/sys.rst:1231 msgid "For more information on code and frame objects, refer to :ref:`types`." msgstr "" "Pour plus d'informations sur les objets code et objets représentant une " "*frame* de la pile, consultez :ref:`types`." -#: ../Doc/library/sys.rst:1219 +#: ../Doc/library/sys.rst:1235 msgid "" "The :func:`settrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -2273,13 +2337,15 @@ msgstr "" "que de la définition du langage, et peut donc ne pas être disponible dans " "toutes les implémentations de Python." -#: ../Doc/library/sys.rst:1226 +#: ../Doc/library/sys.rst:1242 msgid "" "``'opcode'`` event type added; :attr:`f_trace_lines` and :attr:" "`f_trace_opcodes` attributes added to frames" msgstr "" +"Ajout du type d’événement ``'opcode'`` ; les attributs :attr:`f_trace_lines` " +"et :attr:`f_trace_opcodes` ont été ajoutés aux cadres d'exécution" -#: ../Doc/library/sys.rst:1231 +#: ../Doc/library/sys.rst:1247 msgid "" "Accepts two optional keyword arguments which are callables that accept an :" "term:`asynchronous generator iterator` as an argument. The *firstiter* " @@ -2293,7 +2359,7 @@ msgstr "" "première fois, et l'appelable *finalizer* sera appelé lorsqu'un générateur " "asynchrone est sur le point d'être détruit." -#: ../Doc/library/sys.rst:1237 +#: ../Doc/library/sys.rst:1253 msgid "" "See :pep:`525` for more details, and for a reference example of a " "*finalizer* method see the implementation of ``asyncio.Loop." @@ -2303,7 +2369,7 @@ msgstr "" "voir l'implémentation de ``asyncio.Loop.shutdown_asyncgens`` dans :source:" "`Lib/asyncio/base_events.py`" -#: ../Doc/library/sys.rst:1249 +#: ../Doc/library/sys.rst:1265 msgid "" "Allows enabling or disabling coroutine origin tracking. When enabled, the " "``cr_origin`` attribute on coroutine objects will contain a tuple of " @@ -2311,19 +2377,28 @@ msgid "" "the coroutine object was created, with the most recent call first. When " "disabled, ``cr_origin`` will be None." msgstr "" +"Permet d'activer ou de désactiver le suivi d'origine de la coroutine. " +"Lorsque cette option est activée, l'attribut ``cr_origin`` sur les objets de " +"la coroutine contient un tuple (nom de fichier, numéro de ligne, nom de " +"fonction) de tuples gardant la trace d'appels de l'endroit où l'objet " +"coroutine a été créé, avec l'appel le plus récent en premier. Lorsqu'il est " +"désactivé, la valeur de ``cr_origin`` est ``None``." -#: ../Doc/library/sys.rst:1256 +#: ../Doc/library/sys.rst:1272 msgid "" "To enable, pass a *depth* value greater than zero; this sets the number of " "frames whose information will be captured. To disable, pass set *depth* to " "zero." msgstr "" +"Pour l'activer, passez une valeur *depth* supérieure à zéro ; cela définit " +"le nombre de cadres d'exécution dont les informations sont capturées. Pour " +"le désactiver, mettez *depth* à zéro." -#: ../Doc/library/sys.rst:1260 +#: ../Doc/library/sys.rst:1276 msgid "This setting is thread-specific." -msgstr "" +msgstr "Ce paramètre est spécifique au fil d'exécution courant." -#: ../Doc/library/sys.rst:1270 +#: ../Doc/library/sys.rst:1286 msgid "" "Allows intercepting creation of :term:`coroutine` objects (only ones that " "are created by an :keyword:`async def` function; generators decorated with :" @@ -2333,36 +2408,36 @@ msgstr "" "créés via :keyword:`async def`, les générateurs décorés par :func:`types." "coroutine` ou :func:`asyncio.coroutine` ne seront pas interceptés)." -#: ../Doc/library/sys.rst:1275 +#: ../Doc/library/sys.rst:1291 msgid "The *wrapper* argument must be either:" msgstr "L'argument *wrapper* doit être soit :" -#: ../Doc/library/sys.rst:1277 +#: ../Doc/library/sys.rst:1293 msgid "a callable that accepts one argument (a coroutine object);" msgstr "un appelable qui accepte un argument (une coroutine);" -#: ../Doc/library/sys.rst:1278 +#: ../Doc/library/sys.rst:1294 msgid "``None``, to reset the wrapper." msgstr "``None``, pour réinitialiser le *wrapper*." -#: ../Doc/library/sys.rst:1280 +#: ../Doc/library/sys.rst:1296 msgid "" "If called twice, the new wrapper replaces the previous one. The function is " "thread-specific." msgstr "S'il est appelé deux fois, le nouveau *wrapper* remplace le précédent." -#: ../Doc/library/sys.rst:1283 +#: ../Doc/library/sys.rst:1299 msgid "" "The *wrapper* callable cannot define new coroutines directly or indirectly::" msgstr "" "L'appelable *wrapper* ne peut pas définir de nouvelles coroutines, ni " "directement, ni indirectement : ::" -#: ../Doc/library/sys.rst:1298 +#: ../Doc/library/sys.rst:1314 msgid "See also :func:`get_coroutine_wrapper`." msgstr "Voir aussi :func:`get_coroutine_wrapper`." -#: ../Doc/library/sys.rst:1313 +#: ../Doc/library/sys.rst:1329 msgid "" "Changes the default filesystem encoding and errors mode to 'mbcs' and " "'replace' respectively, for consistency with versions of Python prior to 3.6." @@ -2371,7 +2446,7 @@ msgstr "" "fichiers à *mbcs* et *replace* respectivement, par cohérence avec les " "versions de Python antérieures à la 3.6." -#: ../Doc/library/sys.rst:1316 +#: ../Doc/library/sys.rst:1332 msgid "" "This is equivalent to defining the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable before launching Python." @@ -2379,23 +2454,19 @@ msgstr "" "Équivaut à définir la variable d'environnement :envvar:" "`PYTHONLEGACYWINDOWSFSENCODING` avant de lancer Python." -#: ../Doc/library/sys.rst:1319 -msgid "Availability: Windows" -msgstr "Disponibilité : Windows" - -#: ../Doc/library/sys.rst:1321 +#: ../Doc/library/sys.rst:1337 msgid "See :pep:`529` for more details." msgstr "Voir la :pep:`529` pour plus d'informations." -#: ../Doc/library/sys.rst:1328 +#: ../Doc/library/sys.rst:1344 msgid "" ":term:`File objects ` used by the interpreter for standard " "input, output and errors:" msgstr "" -":term:`objects fichier ` utilisé par l'interpréteur pour " -"l'entrée standard, la sortie standard, et la sortie d'erreurs." +":term:`objets fichiers ` utilisés par l'interpréteur pour " +"l'entrée standard, la sortie standard et la sortie d'erreurs :" -#: ../Doc/library/sys.rst:1331 +#: ../Doc/library/sys.rst:1347 msgid "" "``stdin`` is used for all interactive input (including calls to :func:" "`input`);" @@ -2403,21 +2474,21 @@ msgstr "" "``stdin`` est utilisé pour toutes les entrées interactives (y compris les " "appels à :func:`input`)" -#: ../Doc/library/sys.rst:1333 +#: ../Doc/library/sys.rst:1349 msgid "" "``stdout`` is used for the output of :func:`print` and :term:`expression` " "statements and for the prompts of :func:`input`;" msgstr "" "``stdout`` est utilisé pour la sortie de :func:`print`, des :term:" -"`expression` et pour les invites de :func:`input`." +"`expression` et pour les invites de :func:`input` ;" -#: ../Doc/library/sys.rst:1335 +#: ../Doc/library/sys.rst:1351 msgid "The interpreter's own prompts and its error messages go to ``stderr``." msgstr "" "Les invites de l'interpréteur et ses messages d'erreur sont écrits sur " "``stderr``." -#: ../Doc/library/sys.rst:1337 +#: ../Doc/library/sys.rst:1353 msgid "" "These streams are regular :term:`text files ` like those returned " "by the :func:`open` function. Their parameters are chosen as follows:" @@ -2426,30 +2497,61 @@ msgstr "" "renvoyés par la fonction :func:`open`. Leurs paramètres sont choisis comme " "suit :" -#: ../Doc/library/sys.rst:1341 +#: ../Doc/library/sys.rst:1357 msgid "" -"The character encoding is platform-dependent. Under Windows, if the stream " -"is interactive (that is, if its :meth:`isatty` method returns ``True``), the " -"console codepage is used, otherwise the ANSI code page. Under other " -"platforms, the locale encoding is used (see :meth:`locale." -"getpreferredencoding`)." +"The character encoding is platform-dependent. Non-Windows platforms use the " +"locale encoding (see :meth:`locale.getpreferredencoding()`)." msgstr "" -"L'encodage des caractères dépend de la plate-forme. Sous Windows, si le flux " -"est interactif (c'est-à-dire si sa méthode :meth:`isatty` donne ``True``), " -"l'encodage de la console est utilisée, sinon un encodage Windows. Sous " -"d'autres plateformes, l'encodage local est utilisé (voir :meth:`locale." -"getpreferredencoding`)." +"L'encodage des caractères dépend de la plateforme. Les plateformes non " +"Windows utilisent l'encodage défini dans les paramètres régionaux (voir :" +"meth:`locale.getpreferredencoding()`)." -#: ../Doc/library/sys.rst:1346 +#: ../Doc/library/sys.rst:1361 msgid "" -"Under all platforms though, you can override this value by setting the :" -"envvar:`PYTHONIOENCODING` environment variable before starting Python." +"On Windows, UTF-8 is used for the console device. Non-character devices " +"such as disk files and pipes use the system locale encoding (i.e. the ANSI " +"codepage). Non-console character devices such as NUL (i.e. where isatty() " +"returns True) use the value of the console input and output codepages at " +"startup, respectively for stdin and stdout/stderr. This defaults to the " +"system locale encoding if the process is not initially attached to a console." msgstr "" -"Sous toutes les plates-formes cependant, vous pouvez remplacer cette valeur " -"en définissant la variable d'environnement :envvar:`PYTHONIOENCODING` avant " -"de démarrer Python." +"Sous Windows, UTF-8 est utilisé pour le périphérique de console. Les " +"périphériques non-caractères tels que les fichiers de disque et les tubes " +"(*pipe* en anglais) utilisent l'encodage des paramètres régionaux du système " +"(c'est-à-dire la page de codes ANSI). Les périphériques de caractères non-" +"console tels que NUL (par exemple où ``isatty()`` retourne ``True``) " +"utilisent la valeur des pages de code d'entrée et de sortie de la console au " +"démarrage, respectivement pour l’entrée standard et *stdout/stderr*. Cette " +"valeur par défaut est l'encodage des paramètres régionaux système si le " +"processus n'est pas attaché initialement à une console." -#: ../Doc/library/sys.rst:1349 +#: ../Doc/library/sys.rst:1370 +msgid "" +"The special behaviour of the console can be overridden by setting the " +"environment variable PYTHONLEGACYWINDOWSSTDIO before starting Python. In " +"that case, the console codepages are used as for any other character device." +msgstr "" +"Le comportement spécial de la console peut être redéfini en assignant la " +"variable d'environnement *PYTHONLEGACYWINDOWSSTDIO* avant de démarrer " +"Python. Dans ce cas, les pages de code de la console sont utilisées comme " +"pour tout autre périphérique de caractères." + +#: ../Doc/library/sys.rst:1375 +msgid "" +"Under all platforms, you can override the character encoding by setting the :" +"envvar:`PYTHONIOENCODING` environment variable before starting Python or by " +"using the new :option:`-X` ``utf8`` command line option and :envvar:" +"`PYTHONUTF8` environment variable. However, for the Windows console, this " +"only applies when :envvar:`PYTHONLEGACYWINDOWSSTDIO` is also set." +msgstr "" +"Sous toutes les plateformes, vous pouvez redéfinir le codage de caractères " +"en assignant la variable d'environnement :envvar:`PYTHONIOENCODING` avant de " +"démarrer Python ou en utilisant la nouvelle option de ligne de commande :" +"option:`-X` ``utf8`` et la variable d'environnement :envvar:`PYTHONUTF8`. " +"Toutefois, pour la console Windows, cela s'applique uniquement lorsque :" +"envvar:`PYTHONLEGACYWINDOWSSTDIO` est également défini." + +#: ../Doc/library/sys.rst:1382 msgid "" "When interactive, ``stdout`` and ``stderr`` streams are line-buffered. " "Otherwise, they are block-buffered like regular text files. You can " @@ -2460,7 +2562,7 @@ msgstr "" "fichiers textes classiques. Vous pouvez remplacer cette valeur avec " "l'option :option:`-u` en ligne de commande." -#: ../Doc/library/sys.rst:1355 +#: ../Doc/library/sys.rst:1388 msgid "" "To write or read binary data from/to the standard streams, use the " "underlying binary :data:`~io.TextIOBase.buffer` object. For example, to " @@ -2471,7 +2573,7 @@ msgstr "" "pour écrire des octets sur :data:`stdout`, utilisez ``sys.stdout.buffer." "write(b'abc')``." -#: ../Doc/library/sys.rst:1359 +#: ../Doc/library/sys.rst:1392 msgid "" "However, if you are writing a library (and do not control in which context " "its code will be executed), be aware that the standard streams may be " @@ -2483,7 +2585,7 @@ msgstr "" "remplacés par des objets de type fichier tel un :class:`io.StringIO` qui " "n'ont pas l'attribut :attr:`~io.BufferedIOBase.buffer`." -#: ../Doc/library/sys.rst:1369 +#: ../Doc/library/sys.rst:1402 msgid "" "These objects contain the original values of ``stdin``, ``stderr`` and " "``stdout`` at the start of the program. They are used during finalization, " @@ -2495,7 +2597,7 @@ msgstr "" "pendant la finalisation, et peuvent être utiles pour écrire dans le vrai " "flux standard, peu importe si l'objet ``sys.std*`` a été redirigé." -#: ../Doc/library/sys.rst:1374 +#: ../Doc/library/sys.rst:1407 msgid "" "It can also be used to restore the actual files to known working file " "objects in case they have been overwritten with a broken object. However, " @@ -2507,7 +2609,7 @@ msgstr "" "cependant la bonne façon de faire serait de sauvegarder explicitement les " "flux avant de les remplacer et ainsi pouvoir les restaurer." -#: ../Doc/library/sys.rst:1380 +#: ../Doc/library/sys.rst:1413 msgid "" "Under some conditions ``stdin``, ``stdout`` and ``stderr`` as well as the " "original values ``__stdin__``, ``__stdout__`` and ``__stderr__`` can be " @@ -2520,7 +2622,7 @@ msgstr "" "Windows qui ne sont pas connectées à une console, ou les applications Python " "démarrées avec :program:`pythonw`." -#: ../Doc/library/sys.rst:1388 +#: ../Doc/library/sys.rst:1421 msgid "" "A :term:`struct sequence` holding information about the thread " "implementation." @@ -2528,52 +2630,52 @@ msgstr "" "Une :term:`struct sequence` contenant des informations sur l'implémentation " "des fils d'exécution." -#: ../Doc/library/sys.rst:1396 +#: ../Doc/library/sys.rst:1429 msgid ":const:`name`" msgstr ":const:`name`" -#: ../Doc/library/sys.rst:1396 +#: ../Doc/library/sys.rst:1429 msgid "Name of the thread implementation:" msgstr "Nom de l'implémentation des fils d'exécution :" -#: ../Doc/library/sys.rst:1398 +#: ../Doc/library/sys.rst:1431 msgid "``'nt'``: Windows threads" -msgstr "``'nt'``: Fils d'exécution Windows" +msgstr "``'nt'`` : Fils d'exécution Windows" -#: ../Doc/library/sys.rst:1399 +#: ../Doc/library/sys.rst:1432 msgid "``'pthread'``: POSIX threads" -msgstr "``'pthread'``: Fils d'exécution POSIX" +msgstr "``'pthread'`` : Fils d'exécution POSIX" -#: ../Doc/library/sys.rst:1400 +#: ../Doc/library/sys.rst:1433 msgid "``'solaris'``: Solaris threads" -msgstr "``'solaris'``: Fils d'exécution Solaris" +msgstr "``'solaris'`` : Fils d'exécution Solaris" -#: ../Doc/library/sys.rst:1402 +#: ../Doc/library/sys.rst:1435 msgid ":const:`lock`" msgstr ":const:`lock`" -#: ../Doc/library/sys.rst:1402 +#: ../Doc/library/sys.rst:1435 msgid "Name of the lock implementation:" msgstr "Nom de l'implémentation du système de verrou :" -#: ../Doc/library/sys.rst:1404 +#: ../Doc/library/sys.rst:1437 msgid "``'semaphore'``: a lock uses a semaphore" -msgstr "``'semaphore'``: Verrou utilisant une sémaphore" +msgstr "``'semaphore'`` : Verrou utilisant une sémaphore" -#: ../Doc/library/sys.rst:1405 +#: ../Doc/library/sys.rst:1438 msgid "``'mutex+cond'``: a lock uses a mutex and a condition variable" msgstr "" -"``'mutex+cond'``: Un verrou utilisant un *mutex* et une *condition variable*" +"``'mutex+cond'`` : Un verrou utilisant un *mutex* et une *condition variable*" -#: ../Doc/library/sys.rst:1407 +#: ../Doc/library/sys.rst:1440 msgid "``None`` if this information is unknown" msgstr "``None`` si cette information n'est pas connue" -#: ../Doc/library/sys.rst:1409 +#: ../Doc/library/sys.rst:1442 msgid ":const:`version`" msgstr ":const:`version`" -#: ../Doc/library/sys.rst:1409 +#: ../Doc/library/sys.rst:1442 msgid "" "Name and version of the thread library. It is a string, or ``None`` if this " "information is unknown." @@ -2581,7 +2683,7 @@ msgstr "" "Nom et version de l'implémentation des fils d'exécution, c'est une chaîne, " "ou ``None`` si ces informations sont inconnues." -#: ../Doc/library/sys.rst:1418 +#: ../Doc/library/sys.rst:1451 msgid "" "When this variable is set to an integer value, it determines the maximum " "number of levels of traceback information printed when an unhandled " @@ -2595,7 +2697,7 @@ msgstr "" "est égale ou inférieure à ``0``, la pile d'appels n'est pas affichée, seul " "seuls le type et la valeur de l'exception sont le sont." -#: ../Doc/library/sys.rst:1426 +#: ../Doc/library/sys.rst:1459 msgid "" "A string containing the version number of the Python interpreter plus " "additional information on the build number and compiler used. This string " @@ -2610,7 +2712,7 @@ msgstr "" "utilisez plutôt :data:`version_info` et les fonctions fournies par le " "module :mod:`platform`." -#: ../Doc/library/sys.rst:1435 +#: ../Doc/library/sys.rst:1468 msgid "" "The C API version for this interpreter. Programmers may find this useful " "when debugging version conflicts between Python and extension modules." @@ -2619,7 +2721,7 @@ msgstr "" "trouver cette information utile en déboguant des conflits de versions entre " "Python et des modules d'extension." -#: ../Doc/library/sys.rst:1441 +#: ../Doc/library/sys.rst:1474 msgid "" "A tuple containing the five components of the version number: *major*, " "*minor*, *micro*, *releaselevel*, and *serial*. All values except " @@ -2629,7 +2731,7 @@ msgid "" "also be accessed by name, so ``sys.version_info[0]`` is equivalent to ``sys." "version_info.major`` and so on." msgstr "" -"Un *tuple* contenant les cinq composants du numéro de version: *major*, " +"Un *tuple* contenant les cinq composants du numéro de version : *major*, " "*minor*, *micro*, *releaselevel* et *serial*. Toutes les valeurs sauf " "*releaselevel* sont des nombres entiers. *releaselevel* peut valoir " "``'alpha'``, ``'beta'``, ``'candidate'``, ou ``'final'``. La valeur de " @@ -2637,11 +2739,11 @@ msgstr "" "attributs sont aussi accessibles par leur nom, ainsi ``sys.version_info[0]`` " "est équivalent à ``sys.version_info.major``, et ainsi de suite." -#: ../Doc/library/sys.rst:1449 +#: ../Doc/library/sys.rst:1482 msgid "Added named component attributes." msgstr "Ajout des attributs nommés." -#: ../Doc/library/sys.rst:1454 +#: ../Doc/library/sys.rst:1487 msgid "" "This is an implementation detail of the warnings framework; do not modify " "this value. Refer to the :mod:`warnings` module for more information on the " @@ -2651,22 +2753,22 @@ msgstr "" "Ne modifiez pas cette valeur. Reportez-vous au module :mod:`warnings` pour " "plus d'informations sur le gestionnaire d'avertissements." -#: ../Doc/library/sys.rst:1461 +#: ../Doc/library/sys.rst:1494 msgid "" "The version number used to form registry keys on Windows platforms. This is " "stored as string resource 1000 in the Python DLL. The value is normally the " "first three characters of :const:`version`. It is provided in the :mod:" "`sys` module for informational purposes; modifying this value has no effect " -"on the registry keys used by Python. Availability: Windows." +"on the registry keys used by Python." msgstr "" "Le numéro de version utilisé pour construire les clefs de registre sous " -"Windows. Elle est stockée en temps que *string resource* 1000 dans la DLL " +"Windows. Elle est stockée en tant que *string resource* 1000 dans la DLL " "Python. Cette valeur équivaut typiquement aux trois premiers caractères de :" -"const:`version`. Elle est fournie par le module :mod:`sys` à titre " +"const:`version`. Elle est fournie par le module :mod:`sys` à titre " "d'information, et la modifier n'a aucun effet sur les clés de registre " -"utilisées par Python. Disponibilité: Windows." +"utilisées par Python." -#: ../Doc/library/sys.rst:1470 +#: ../Doc/library/sys.rst:1505 msgid "" "A dictionary of the various implementation-specific flags passed through " "the :option:`-X` command-line option. Option names are either mapped to " @@ -2675,9 +2777,9 @@ msgstr "" "Un dictionnaire des différentes options spécifiques à l'implémentation " "passés en ligne de commande via l'option :option:`-X`. Aux noms des options " "correspondent soit leur valeur, si elle est donnée explicitement, soit à :" -"const:`True`. Exemple:" +"const:`True`. Exemple :" -#: ../Doc/library/sys.rst:1486 +#: ../Doc/library/sys.rst:1521 msgid "" "This is a CPython-specific way of accessing options passed through :option:`-" "X`. Other implementations may export them through other means, or not at " @@ -2687,22 +2789,40 @@ msgstr "" "l'option :option:`-X`. D'autres implémentations pourraient les exposer par " "d'autres moyens, ou pas du tout." -#: ../Doc/library/sys.rst:1494 +#: ../Doc/library/sys.rst:1529 msgid "Citations" msgstr "Citations" -#: ../Doc/library/sys.rst:1495 +#: ../Doc/library/sys.rst:1530 msgid "" "ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " "standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/" "n1256.pdf\\ ." msgstr "" -"ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " -"standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/" -"n1256.pdf\\ ." +"*ISO/IEC 9899:1999*. \"Langages de programmation -- C.\" Un texte public " +"de ce standard est disponible à http://www.open-std.org/jtc1/sc22/wg14/www/" +"docs/n1256.pdf\\ ." #~ msgid "" -#~ "Added ``utf8_mode`` attribute for the new :option:`-X` ``utf8`` flag." +#~ "The character encoding is platform-dependent. Under Windows, if the " +#~ "stream is interactive (that is, if its :meth:`isatty` method returns " +#~ "``True``), the console codepage is used, otherwise the ANSI code page. " +#~ "Under other platforms, the locale encoding is used (see :meth:`locale." +#~ "getpreferredencoding`)." #~ msgstr "" -#~ "Ajout de l'attribut ``utf8_mode`` pour la nouvelle option :option:`-X` " -#~ "``utf8``." +#~ "L'encodage des caractères dépend de la plate-forme. Sous Windows, si le " +#~ "flux est interactif (c'est-à-dire si sa méthode :meth:`isatty` donne " +#~ "``True``), l'encodage de la console est utilisée, sinon un encodage " +#~ "Windows. Sous d'autres plateformes, l'encodage local est utilisé (voir :" +#~ "meth:`locale.getpreferredencoding`)." + +#~ msgid "" +#~ "Under all platforms though, you can override this value by setting the :" +#~ "envvar:`PYTHONIOENCODING` environment variable before starting Python." +#~ msgstr "" +#~ "Sous toutes les plates-formes cependant, vous pouvez remplacer cette " +#~ "valeur en définissant la variable d'environnement :envvar:" +#~ "`PYTHONIOENCODING` avant de démarrer Python." + +#~ msgid "Availability: Windows" +#~ msgstr "Disponibilité : Windows" diff --git a/library/sysconfig.po b/library/sysconfig.po index bbc9ba0e7..d62568b35 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -264,7 +264,7 @@ msgstr "" #: ../Doc/library/sysconfig.rst:162 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/sysconfig.rst:166 msgid "" @@ -287,7 +287,7 @@ msgstr "" #: ../Doc/library/sysconfig.rst:180 msgid "Examples of returned values:" -msgstr "" +msgstr "Exemples de valeurs renvoyées :" #: ../Doc/library/sysconfig.rst:182 msgid "linux-i586" @@ -306,7 +306,7 @@ msgid "Windows will return one of:" msgstr "" #: ../Doc/library/sysconfig.rst:188 -msgid "win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc)" +msgid "win-amd64 (64bit Windows on AMD64, aka x86_64, Intel64, and EM64T)" msgstr "" #: ../Doc/library/sysconfig.rst:189 diff --git a/library/syslog.po b/library/syslog.po index 2dd00a14e..cfc2f5177 100644 --- a/library/syslog.po +++ b/library/syslog.po @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/library/syslog.rst:18 msgid "The module defines the following functions:" -msgstr "" +msgstr "Le module définit les fonctions suivantes :" #: ../Doc/library/syslog.rst:24 msgid "" diff --git a/library/tabnanny.po b/library/tabnanny.po index 9267d134e..de3974635 100644 --- a/library/tabnanny.po +++ b/library/tabnanny.po @@ -5,18 +5,20 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-04 12:17+0200\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" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.1.1\n" #: ../Doc/library/tabnanny.rst:2 msgid ":mod:`tabnanny` --- Detection of ambiguous indentation" -msgstr "" +msgstr ":mod:`tabnanny` — Détection d'indentation ambiguë" #: ../Doc/library/tabnanny.rst:13 msgid "**Source code:** :source:`Lib/tabnanny.py`" @@ -28,12 +30,17 @@ msgid "" "it is possible to import it into an IDE and use the function :func:`check` " "described below." msgstr "" +"Pour l'instant ce module est destiné à être appelé comme un script. " +"Toutefois, il est possible de l'importer dans un IDE et d'utiliser la " +"fonction :func:`check` décrite ci-dessous." #: ../Doc/library/tabnanny.rst:23 msgid "" "The API provided by this module is likely to change in future releases; such " "changes may not be backward compatible." msgstr "" +"L'API fournie par ce module est susceptible de changer dans les versions " +"futures ; ces modifications peuvent ne pas être rétro-compatibles." #: ../Doc/library/tabnanny.rst:29 msgid "" @@ -43,12 +50,20 @@ msgid "" "is checked for whitespace related problems. The diagnostic messages are " "written to standard output using the :func:`print` function." msgstr "" +"Si *file_or_dir* est un répertoire et non un lien symbolique, alors descend " +"récursivement l'arborescence de répertoire nommé par *file_or_dir*, en " +"vérifiant tous les fichiers :file:`.py` en chemin. Si *file_or_dir* est un " +"fichier source Python ordinaire, il est vérifié pour les problèmes liés aux " +"espaces blancs. Les messages de diagnostic sont écrits sur la sortie " +"standard à l'aide de la fonction :func:`print`." #: ../Doc/library/tabnanny.rst:38 msgid "" "Flag indicating whether to print verbose messages. This is incremented by " "the ``-v`` option if called as a script." msgstr "" +"Option indiquant s'il faut afficher des messages détaillés. Cela est " +"incrémenté par l'option ``-v`` s'il est appelé comme un script." #: ../Doc/library/tabnanny.rst:44 msgid "" @@ -56,23 +71,30 @@ msgid "" "whitespace related problems. This is set to true by the ``-q`` option if " "called as a script." msgstr "" +"Option indiquant s'il faut afficher uniquement les noms de fichiers " +"contenant des problèmes liés aux espaces blancs. Est défini à True par " +"l'option ``-q`` s'il est appelé comme un script." #: ../Doc/library/tabnanny.rst:51 msgid "" "Raised by :func:`process_tokens` if detecting an ambiguous indent. Captured " "and handled in :func:`check`." msgstr "" +"Déclenché par :func:`process_tokens` si une indentation ambiguë est " +"détectée. Capturé et géré dans :func:`check`." #: ../Doc/library/tabnanny.rst:57 msgid "" "This function is used by :func:`check` to process tokens generated by the :" "mod:`tokenize` module." msgstr "" +"Cette fonction est utilisée par :func:`check` pour traiter les jetons " +"générés par le module :mod:`tokenize`." #: ../Doc/library/tabnanny.rst:66 msgid "Module :mod:`tokenize`" -msgstr "" +msgstr "Module :mod:`tokenize`" #: ../Doc/library/tabnanny.rst:67 msgid "Lexical scanner for Python source code." -msgstr "" +msgstr "Analyseur lexical pour le code source Python." diff --git a/library/tarfile.po b/library/tarfile.po index d4b26c3de..8443d6fc1 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/tarfile.rst:2 msgid ":mod:`tarfile` --- Read and write tar archive files" -msgstr "" +msgstr ":mod:`tarfile` — Lecture et écriture de fichiers d'archives **tar**" #: ../Doc/library/tarfile.rst:10 msgid "**Source code:** :source:`Lib/tarfile.py`" @@ -29,20 +29,29 @@ msgid "" "module to read or write :file:`.zip` files, or the higher-level functions " "in :ref:`shutil `." msgstr "" +"Le module :mod:`tarfile` rend possible la lecture et l'écriture des archives " +"*tar*, incluant celles utilisant la compression *gzip*, *bz2* et *lzma*. " +"Utilisez le module :mod:`zipfile` pour lire ou écrire des fichiers :file:" +"`zip`, ou les fonctions de niveau supérieur dans :ref:`shutil `." #: ../Doc/library/tarfile.rst:19 msgid "Some facts and figures:" -msgstr "" +msgstr "Quelques faits et chiffres :" #: ../Doc/library/tarfile.rst:21 msgid "" "reads and writes :mod:`gzip`, :mod:`bz2` and :mod:`lzma` compressed archives " "if the respective modules are available." msgstr "" +"lit et écrit des archives compressées avec :mod:`gzip`, :mod:`bz2` ou :mod:" +"`lzma` si les modules respectifs sont disponibles." #: ../Doc/library/tarfile.rst:24 msgid "read/write support for the POSIX.1-1988 (ustar) format." msgstr "" +"prise en charge de la lecture/écriture pour le format *POSIX.1-1988* " +"(*ustar*)." #: ../Doc/library/tarfile.rst:26 msgid "" @@ -50,10 +59,15 @@ msgid "" "*longlink* extensions, read-only support for all variants of the *sparse* " "extension including restoration of sparse files." msgstr "" +"prise en charge de la lecture/écriture pour le format GNU *tar* incluant les " +"extensions *longname* et *longlink*, prise en charge de la lecture seule de " +"toutes les variantes de l'extension *sparse* incluant la restauration des " +"fichiers discontinus." #: ../Doc/library/tarfile.rst:30 msgid "read/write support for the POSIX.1-2001 (pax) format." msgstr "" +"prise en charge de la lecture/écriture pour le format *POSIX.1-2001* (*pax*)." #: ../Doc/library/tarfile.rst:32 msgid "" @@ -61,10 +75,15 @@ msgid "" "character devices and block devices and is able to acquire and restore file " "information like timestamp, access permissions and owner." msgstr "" +"gère les répertoires, les fichiers normaux, les liens directs (*hard links* " +"en anglais), les liens symboliques, les tubes nommés (*FIFO* en anglais), " +"les périphériques de caractère et les périphériques de bloc et est en mesure " +"d'acquérir et de restaurer les informations du fichier comme l'horodatage, " +"les autorisations d'accès et le propriétaire." #: ../Doc/library/tarfile.rst:36 msgid "Added support for :mod:`lzma` compression." -msgstr "" +msgstr "prise en charge de la compression :mod:`lzma`." #: ../Doc/library/tarfile.rst:42 msgid "" @@ -72,16 +91,22 @@ msgid "" "information on :class:`TarFile` objects and the keyword arguments that are " "allowed, see :ref:`tarfile-objects`." msgstr "" +"Renvoie un objet :class:`TarFile` pour le nom de chemin *name*. Pour plus " +"d'informations sur les objets :class:`TarFile` et les mot-clefs arguments " +"permis, voir :ref:`tarfile-objects`." #: ../Doc/library/tarfile.rst:46 msgid "" "*mode* has to be a string of the form ``'filemode[:compression]'``, it " "defaults to ``'r'``. Here is a full list of mode combinations:" msgstr "" +"Le *mode* doit être une chaîne de caractères de la forme ``'filemode[:" +"compression]'``, par défaut à ``'r'``. Voici une liste complète des " +"combinaisons de mode :" #: ../Doc/library/tarfile.rst:50 msgid "mode" -msgstr "" +msgstr "mode" #: ../Doc/library/tarfile.rst:50 msgid "action" @@ -93,7 +118,7 @@ msgstr "``'r' ou 'r:*'``" #: ../Doc/library/tarfile.rst:52 msgid "Open for reading with transparent compression (recommended)." -msgstr "" +msgstr "Ouvre en lecture avec compression transparente (recommandé)." #: ../Doc/library/tarfile.rst:55 msgid "``'r:'``" @@ -101,7 +126,7 @@ msgstr "``'r:'``" #: ../Doc/library/tarfile.rst:55 msgid "Open for reading exclusively without compression." -msgstr "" +msgstr "Ouvre en lecture, sans compression." #: ../Doc/library/tarfile.rst:58 msgid "``'r:gz'``" @@ -109,7 +134,7 @@ msgstr "``'r:gz'``" #: ../Doc/library/tarfile.rst:58 msgid "Open for reading with gzip compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *gzip*." #: ../Doc/library/tarfile.rst:60 msgid "``'r:bz2'``" @@ -117,7 +142,7 @@ msgstr "``'r:bz2'``" #: ../Doc/library/tarfile.rst:60 msgid "Open for reading with bzip2 compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *bzip2*." #: ../Doc/library/tarfile.rst:62 msgid "``'r:xz'``" @@ -125,7 +150,7 @@ msgstr "``'r:xz'``" #: ../Doc/library/tarfile.rst:62 msgid "Open for reading with lzma compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *lzma*." #: ../Doc/library/tarfile.rst:64 msgid "``'x'`` or ``'x:'``" @@ -136,6 +161,8 @@ msgid "" "Create a tarfile exclusively without compression. Raise an :exc:" "`FileExistsError` exception if it already exists." msgstr "" +"Crée un fichier *tar* sans compression. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:69 msgid "``'x:gz'``" @@ -146,6 +173,8 @@ msgid "" "Create a tarfile with gzip compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *gzip*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:73 msgid "``'x:bz2'``" @@ -156,6 +185,8 @@ msgid "" "Create a tarfile with bzip2 compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *bzip2*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:77 msgid "``'x:xz'``" @@ -166,6 +197,8 @@ msgid "" "Create a tarfile with lzma compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *lzma*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:81 msgid "``'a' or 'a:'``" @@ -176,6 +209,8 @@ msgid "" "Open for appending with no compression. The file is created if it does not " "exist." msgstr "" +"Ouvre pour ajouter à la fin, sans compression. Le fichier est créé s'il " +"n'existe pas." #: ../Doc/library/tarfile.rst:84 msgid "``'w' or 'w:'``" @@ -183,7 +218,7 @@ msgstr "``'w' ou 'w:'``" #: ../Doc/library/tarfile.rst:84 msgid "Open for uncompressed writing." -msgstr "" +msgstr "Ouvre en écriture, sans compression." #: ../Doc/library/tarfile.rst:86 msgid "``'w:gz'``" @@ -191,7 +226,7 @@ msgstr "``'w:gz'``" #: ../Doc/library/tarfile.rst:86 msgid "Open for gzip compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec compression *gzip*." #: ../Doc/library/tarfile.rst:88 msgid "``'w:bz2'``" @@ -199,7 +234,7 @@ msgstr "``'w:bz2'``" #: ../Doc/library/tarfile.rst:88 msgid "Open for bzip2 compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec compression *bzip2*." #: ../Doc/library/tarfile.rst:90 msgid "``'w:xz'``" @@ -207,7 +242,7 @@ msgstr "``'w:xz'``" #: ../Doc/library/tarfile.rst:90 msgid "Open for lzma compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec la compression *lzma*." #: ../Doc/library/tarfile.rst:93 msgid "" @@ -216,12 +251,20 @@ msgid "" "`ReadError` is raised. Use *mode* ``'r'`` to avoid this. If a compression " "method is not supported, :exc:`CompressionError` is raised." msgstr "" +"Notez que les combinaisons ``'a:gz'``, ``'a:bz2'`` ou ``'a:xz'`` ne sont pas " +"possible. Si le mode n'est pas adapté pour ouvrir un certain fichier " +"(compressé) pour la lecture, une exception :exc:`ReadError` est levée. " +"Utilisez le mode ``'r'`` pour éviter cela. Si une méthode de compression " +"n'est pas prise en charge, :exc:`CompressionError` est levée." #: ../Doc/library/tarfile.rst:98 msgid "" "If *fileobj* is specified, it is used as an alternative to a :term:`file " "object` opened in binary mode for *name*. It is supposed to be at position 0." msgstr "" +"Si *fileobj* est spécifié, il est utilisé comme une alternative au :term:" +"`file object` ouvert en mode binaire pour *name*. Il est censé être à la " +"position 0." #: ../Doc/library/tarfile.rst:101 msgid "" @@ -229,6 +272,9 @@ msgid "" "bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* " "(default ``9``) to specify the compression level of the file." msgstr "" +"Pour les modes ``'w:gz'``, ``'r:gz'``, ``'w:bz2'``, ``'r:bz2'``, ``'x:gz'``, " +"``'x:bz2'``, :func:`tarfile.open` accepte l'argument nommé *compresslevel* " +"(par défaut à ``9``) pour spécifier le niveau de compression du fichier." #: ../Doc/library/tarfile.rst:105 msgid "" @@ -243,14 +289,25 @@ msgid "" "does not allow random access, see :ref:`tar-examples`. The currently " "possible modes:" msgstr "" +"Pour des cas particuliers, il existe un deuxième format pour le *mode* : " +"``'filemode[compression]'``. :func:`tarfile.open` renvoie un objet :class:" +"`TarFile` qui traite ses données comme un flux de blocs. Aucun retour en " +"arrière ne sera effectué lors de la lecture du fichier. S'il est donné, " +"*fileobj* peut être n'importe quel objet qui a une méthode :meth:`read` ou :" +"meth:`write` (selon le *mode*). Le paramètre *bufsize* spécifie la taille du " +"bloc et vaut par défaut ``20 * 512`` octets. Utilisez cette variante en " +"combinaison avec par exemple ``sys.stdin``, une connexion (*socket* en " +"anglais) :term:`file object` ou un dispositif de bande. Cependant, un tel " +"objet :class:`TarFile` est limité en ce qu'il ne permet pas l'accès " +"aléatoire, voir :ref:`tar-examples`. Les modes actuellement possibles :" #: ../Doc/library/tarfile.rst:117 msgid "Mode" -msgstr "" +msgstr "Mode" #: ../Doc/library/tarfile.rst:117 msgid "Action" -msgstr "" +msgstr "Action" #: ../Doc/library/tarfile.rst:119 msgid "``'r|*'``" @@ -259,6 +316,8 @@ msgstr "``'r|*'``" #: ../Doc/library/tarfile.rst:119 msgid "Open a *stream* of tar blocks for reading with transparent compression." msgstr "" +"Ouvre un *flux* des blocs de *tar* en lecture avec une compression " +"transparente." #: ../Doc/library/tarfile.rst:122 msgid "``'r|'``" @@ -266,7 +325,7 @@ msgstr "``'r|'``" #: ../Doc/library/tarfile.rst:122 msgid "Open a *stream* of uncompressed tar blocks for reading." -msgstr "" +msgstr "Ouvre un *flux* de blocs *tar* non compressés en lecture." #: ../Doc/library/tarfile.rst:125 msgid "``'r|gz'``" @@ -274,7 +333,7 @@ msgstr "``'r|gz'``" #: ../Doc/library/tarfile.rst:125 msgid "Open a gzip compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un flux compressé avec *gzip* en lecture." #: ../Doc/library/tarfile.rst:128 msgid "``'r|bz2'``" @@ -282,7 +341,7 @@ msgstr "``'r|bz2'``" #: ../Doc/library/tarfile.rst:128 msgid "Open a bzip2 compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *bzip2* en lecture." #: ../Doc/library/tarfile.rst:131 msgid "``'r|xz'``" @@ -290,7 +349,7 @@ msgstr "``'r|xz'``" #: ../Doc/library/tarfile.rst:131 msgid "Open an lzma compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *lzma* en lecture." #: ../Doc/library/tarfile.rst:134 msgid "``'w|'``" @@ -298,7 +357,7 @@ msgstr "``'w|'``" #: ../Doc/library/tarfile.rst:134 msgid "Open an uncompressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* non compressé en écriture." #: ../Doc/library/tarfile.rst:136 msgid "``'w|gz'``" @@ -306,7 +365,7 @@ msgstr "``'w|gz'``" #: ../Doc/library/tarfile.rst:136 msgid "Open a gzip compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *gzip* en écriture." #: ../Doc/library/tarfile.rst:139 msgid "``'w|bz2'``" @@ -314,7 +373,7 @@ msgstr "``'w|bz2'``" #: ../Doc/library/tarfile.rst:139 msgid "Open a bzip2 compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *bzip2* en écriture." #: ../Doc/library/tarfile.rst:142 msgid "``'w|xz'``" @@ -322,7 +381,7 @@ msgstr "``'w|xz'``" #: ../Doc/library/tarfile.rst:142 msgid "Open an lzma compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *lzma* en écriture." #: ../Doc/library/tarfile.rst:146 ../Doc/library/tarfile.rst:324 msgid "The ``'x'`` (exclusive creation) mode was added." @@ -331,13 +390,16 @@ msgstr "Le mode ``'x'`` (création exclusive) est créé." #: ../Doc/library/tarfile.rst:149 ../Doc/library/tarfile.rst:327 #: ../Doc/library/tarfile.rst:495 msgid "The *name* parameter accepts a :term:`path-like object`." -msgstr "" +msgstr "le paramètre *name* accepte un :term:`path-like object`." #: ../Doc/library/tarfile.rst:155 msgid "" "Class for reading and writing tar archives. Do not use this class directly: " "use :func:`tarfile.open` instead. See :ref:`tarfile-objects`." msgstr "" +"Classe pour la lecture et l'écriture d'archives *tar*. N'utilisez pas cette " +"classe directement, préférez :func:`tarfile.open`. Voir :ref:`tarfile-" +"objects`." #: ../Doc/library/tarfile.rst:161 msgid "" @@ -347,49 +409,61 @@ msgstr "" #: ../Doc/library/tarfile.rst:165 msgid "The :mod:`tarfile` module defines the following exceptions:" -msgstr "" +msgstr "Le module :mod:`tarfile` définit les exceptions suivantes :" #: ../Doc/library/tarfile.rst:170 msgid "Base class for all :mod:`tarfile` exceptions." -msgstr "" +msgstr "Classe de base pour toutes les exceptions du module :mod:`tarfile`." #: ../Doc/library/tarfile.rst:175 msgid "" "Is raised when a tar archive is opened, that either cannot be handled by " "the :mod:`tarfile` module or is somehow invalid." msgstr "" +"Est levée lors de l'ouverture d'une archive *tar*, qui ne peut pas être " +"gérée par le module :mod:`tarfile` ou est invalide." #: ../Doc/library/tarfile.rst:181 msgid "" "Is raised when a compression method is not supported or when the data cannot " "be decoded properly." msgstr "" +"Est levée lorsqu'une méthode de compression n'est pas prise en charge ou " +"lorsque les données ne peuvent pas être décodées correctement." #: ../Doc/library/tarfile.rst:187 msgid "" "Is raised for the limitations that are typical for stream-like :class:" "`TarFile` objects." msgstr "" +"Est levée pour les limitations typiques des objets de type flux :class:" +"`TarFile`." #: ../Doc/library/tarfile.rst:193 msgid "" "Is raised for *non-fatal* errors when using :meth:`TarFile.extract`, but " "only if :attr:`TarFile.errorlevel`\\ ``== 2``." msgstr "" +"Est levée pour des erreurs *non-fatales* lors de l'utilisation de :meth:" +"`TarFile.extract`, mais uniquement si :attr:`TarFile.errorlevel`\\ `` == 2``." #: ../Doc/library/tarfile.rst:199 msgid "Is raised by :meth:`TarInfo.frombuf` if the buffer it gets is invalid." msgstr "" +"Est levée par :meth:`TarInfo.frombuf` si le tampon qu'il obtient n'est pas " +"valide." #: ../Doc/library/tarfile.rst:202 msgid "The following constants are available at the module level:" -msgstr "" +msgstr "Les constantes suivantes sont disponibles au niveau du module :" #: ../Doc/library/tarfile.rst:206 msgid "" "The default character encoding: ``'utf-8'`` on Windows, the value returned " "by :func:`sys.getfilesystemencoding` otherwise." msgstr "" +"L'encodage des caractères par défaut est ``'utf-8'`` sous Windows, sinon la " +"valeur renvoyée par :func:`sys.getfilesystemencoding`." #: ../Doc/library/tarfile.rst:210 msgid "" @@ -397,18 +471,21 @@ msgid "" "`tarfile` module is able to create. See section :ref:`tar-formats` for " "details." msgstr "" +"Chacune des constantes suivantes définit un format d'archive *tar* que le " +"module :mod:`tarfile` est capable de créer. Voir la section :ref:`tar-" +"formats` pour plus de détails." #: ../Doc/library/tarfile.rst:217 msgid "POSIX.1-1988 (ustar) format." -msgstr "" +msgstr "Le format *POSIX.1-1988* (*ustar*)." #: ../Doc/library/tarfile.rst:222 msgid "GNU tar format." -msgstr "" +msgstr "Le format GNU *tar*." #: ../Doc/library/tarfile.rst:227 msgid "POSIX.1-2001 (pax) format." -msgstr "" +msgstr "Le format *POSIX.1-2001* (*pax*)." #: ../Doc/library/tarfile.rst:232 msgid "" @@ -418,35 +495,41 @@ msgstr "" #: ../Doc/library/tarfile.rst:238 msgid "Module :mod:`zipfile`" -msgstr "" +msgstr "Module :mod:`zipfile`" #: ../Doc/library/tarfile.rst:238 msgid "Documentation of the :mod:`zipfile` standard module." -msgstr "" +msgstr "Documentation du module standard :mod:`zipfile`." #: ../Doc/library/tarfile.rst:242 msgid ":ref:`archiving-operations`" -msgstr "" +msgstr ":ref:`archiving-operations`" #: ../Doc/library/tarfile.rst:241 msgid "" "Documentation of the higher-level archiving facilities provided by the " "standard :mod:`shutil` module." msgstr "" +"Documentation des outils d'archivage de haut niveau fournis par le module " +"standard :mod:`shutil`." #: ../Doc/library/tarfile.rst:244 msgid "" "`GNU tar manual, Basic Tar Format `_" msgstr "" +"`Manuel GNU *tar*, format *tar* basique (en anglais) `_" #: ../Doc/library/tarfile.rst:245 msgid "Documentation for tar archive files, including GNU tar extensions." msgstr "" +"Documentation pour les fichiers d'archive *tar*, y compris les extensions " +"*tar* GNU." #: ../Doc/library/tarfile.rst:251 msgid "TarFile Objects" -msgstr "" +msgstr "Les objets *TarFile*" #: ../Doc/library/tarfile.rst:253 msgid "" @@ -456,6 +539,12 @@ msgid "" "in a tar archive several times. Each archive member is represented by a :" "class:`TarInfo` object, see :ref:`tarinfo-objects` for details." msgstr "" +"L'objet :class:`TarFile` fournit une interface vers une archive *tar*. Une " +"archive *tar* est une séquence de blocs. Un membre d'archive (un fichier " +"stocké) est composé d'un bloc d'en-tête suivi des blocs de données. Il est " +"possible de stocker plusieurs fois un fichier dans une archive *tar*. Chaque " +"membre d'archive est représenté par un objet :class:`TarInfo`, voir :ref:" +"`tarinfo-objects` pour plus de détails." #: ../Doc/library/tarfile.rst:259 msgid "" @@ -465,16 +554,23 @@ msgid "" "for writing will not be finalized; only the internally used file object will " "be closed. See the :ref:`tar-examples` section for a use case." msgstr "" +"Un objet :class:`TarFile` peut être utilisé comme gestionnaire de contexte " +"dans une instruction :keyword:`with`. Il sera automatiquement fermé une fois " +"le bloc terminé. Veuillez noter qu'en cas d'exception, une archive ouverte " +"en écriture ne sera pas finalisée ; seul l'objet fichier utilisé en interne " +"sera fermé. Voir la section :ref:`tar-examples` pour un cas d'utilisation." #: ../Doc/library/tarfile.rst:265 msgid "Added support for the context management protocol." -msgstr "" +msgstr "Ajout de la prise en charge du protocole de gestion de contexte." #: ../Doc/library/tarfile.rst:270 msgid "" "All following arguments are optional and can be accessed as instance " "attributes as well." msgstr "" +"Tous les arguments suivants sont facultatifs et sont également accessibles " +"en tant qu'instance d'attributs." #: ../Doc/library/tarfile.rst:273 msgid "" @@ -482,6 +578,9 @@ msgid "" "object`. It can be omitted if *fileobj* is given. In this case, the file " "object's :attr:`name` attribute is used if it exists." msgstr "" +"Le *name* est le chemin d'accès de l'archive. *name* peut être un :term:" +"`path-like object`. Il peut être omis si *fileobj* est donné. Dans ce cas, " +"l'attribut :attr:`name` de l'objet fichier est utilisé s'il existe." #: ../Doc/library/tarfile.rst:277 msgid "" @@ -490,6 +589,10 @@ msgid "" "existing one, or ``'x'`` to create a new file only if it does not already " "exist." msgstr "" +"Le *mode* est soit ``'r'`` pour lire à partir d'une archive existante, " +"``'a'`` pour ajouter des données à un fichier existant, ``'w'`` pour créer " +"un nouveau fichier en écrasant un existant , ou ``'x'`` pour créer un " +"nouveau fichier uniquement s'il n'existe pas déjà." #: ../Doc/library/tarfile.rst:281 msgid "" @@ -497,10 +600,13 @@ msgid "" "determined, *mode* is overridden by *fileobj*'s mode. *fileobj* will be used " "from position 0." msgstr "" +"Si *fileobj* est fourni, il est utilisé pour lire ou écrire des données. " +"S'il peut être déterminé, le *mode* est remplacé par le mode de *fileobj*. " +"*fileobj* sera utilisé à partir de la position 0." #: ../Doc/library/tarfile.rst:287 msgid "*fileobj* is not closed, when :class:`TarFile` is closed." -msgstr "" +msgstr "*fileobj* n'est pas fermé, lorsque :class:`TarFile` est fermé." #: ../Doc/library/tarfile.rst:289 msgid "" @@ -514,6 +620,8 @@ msgid "" "The *tarinfo* argument can be used to replace the default :class:`TarInfo` " "class with a different one." msgstr "" +"L'argument *tarinfo* peut être utilisé pour remplacer la classe par défaut :" +"class:`TarInfo` par une autre." #: ../Doc/library/tarfile.rst:296 msgid "" @@ -521,6 +629,10 @@ msgid "" "archive. If it is :const:`True`, add the content of the target files to the " "archive. This has no effect on systems that do not support symbolic links." msgstr "" +"Si *dereference* est :const:`False`, ajoute des liens symboliques et " +"physiques à l'archive. Si c'est :const:`True`, ajoute le contenu des " +"fichiers cibles à l'archive. Cela n'a aucun effet sur les systèmes qui ne " +"prennent pas en charge les liens symboliques." #: ../Doc/library/tarfile.rst:300 msgid "" @@ -529,12 +641,18 @@ msgid "" "get as many members as possible. This is only useful for reading " "concatenated or damaged archives." msgstr "" +"Si *ignore_zeros* est :const:`False`, traite un bloc vide comme la fin de " +"l'archive. Si c'est le cas :const:`True`, saute les blocs vides (et " +"invalides) et essaye d'obtenir autant de membres que possible. Ceci n'est " +"utile que pour lire des archives concaténées ou endommagées." #: ../Doc/library/tarfile.rst:304 msgid "" "*debug* can be set from ``0`` (no debug messages) up to ``3`` (all debug " "messages). The messages are written to ``sys.stderr``." msgstr "" +"*debug* peut être défini de ``0`` (aucun message de débogage) à ``3`` (tous " +"les messages de débogage). Les messages sont écrits dans ``sys.stderr``." #: ../Doc/library/tarfile.rst:307 msgid "" @@ -544,6 +662,12 @@ msgid "" "`OSError` exceptions. If ``2``, all *non-fatal* errors are raised as :exc:" "`TarError` exceptions as well." msgstr "" +"Si *errorlevel* est ``0``, toutes les erreurs sont ignorées lors de " +"l'utilisation de :meth:`TarFile.extract`. Néanmoins, ils apparaissent comme " +"des messages d'erreur dans la sortie de débogage, lorsque le débogage est " +"activé. Si ``1``, toutes les erreurs *fatales* sont déclenchées comme des " +"exceptions :exc:`OSError` . Si ``2``, toutes les erreurs *non-fatales* sont " +"déclenchées comme des exceptions :exc:`TarError` également." #: ../Doc/library/tarfile.rst:313 msgid "" @@ -552,46 +676,66 @@ msgid "" "to be handled. The default settings will work for most users. See section :" "ref:`tar-unicode` for in-depth information." msgstr "" +"Les arguments *encoding* et *errors* définissent l'encodage de caractères à " +"utiliser pour lire ou écrire l'archive et comment les erreurs de conversion " +"vont être traitées. Les paramètres par défaut fonctionneront pour la plupart " +"des utilisateurs. Voir la section :ref:`tar-unicode` pour des informations " +"détaillées." #: ../Doc/library/tarfile.rst:318 msgid "" "The *pax_headers* argument is an optional dictionary of strings which will " "be added as a pax global header if *format* is :const:`PAX_FORMAT`." msgstr "" +"L'argument *pax_headers* est un dictionnaire facultatif de chaînes de " +"caractères qui sera ajouté en tant qu'en-tête global *pax* si le *format* " +"est :const:`PAX_FORMAT`." #: ../Doc/library/tarfile.rst:321 ../Doc/library/tarfile.rst:548 msgid "Use ``'surrogateescape'`` as the default for the *errors* argument." msgstr "" +"Utilise ``'surrogateescape'`` comme valeur par défaut pour l'argument " +"*errors*." #: ../Doc/library/tarfile.rst:333 msgid "" "Alternative constructor. The :func:`tarfile.open` function is actually a " "shortcut to this classmethod." msgstr "" +"Constructeur alternatif. La fonction :func:`tarfile.open` est en fait un " +"raccourci vers cette méthode de classe." #: ../Doc/library/tarfile.rst:339 msgid "" "Return a :class:`TarInfo` object for member *name*. If *name* can not be " "found in the archive, :exc:`KeyError` is raised." msgstr "" +"Renvoie un objet :class:`TarInfo` pour le membre *name*. Si *name* est " +"introuvable dans l'archive, :exc:`KeyError` est levée." #: ../Doc/library/tarfile.rst:344 msgid "" "If a member occurs more than once in the archive, its last occurrence is " "assumed to be the most up-to-date version." msgstr "" +"Si un membre apparaît plus d'une fois dans l'archive, sa dernière occurrence " +"est supposée être la version la plus récente." #: ../Doc/library/tarfile.rst:350 msgid "" "Return the members of the archive as a list of :class:`TarInfo` objects. The " "list has the same order as the members in the archive." msgstr "" +"Renvoie les membres de l'archive sous la forme d'une liste d'objets :class:" +"`TarInfo`. La liste a le même ordre que les membres de l'archive." #: ../Doc/library/tarfile.rst:356 msgid "" "Return the members as a list of their names. It has the same order as the " "list returned by :meth:`getmembers`." msgstr "" +"Renvoie les membres comme une liste de leurs noms. Il a le même ordre que la " +"liste renvoyée par :meth:`getmembers`." #: ../Doc/library/tarfile.rst:362 msgid "" @@ -600,10 +744,15 @@ msgid "" "similar to that of :program:`ls -l` is produced. If optional *members* is " "given, it must be a subset of the list returned by :meth:`getmembers`." msgstr "" +"Imprime une table des matières dans ``sys.stdout``. Si *verbose* est :const:" +"`False`, seuls les noms des membres sont imprimés. Si c'est :const:`True`, " +"une sortie similaire à celle de :program:`ls -l` est produite. Si des " +"*membres* facultatifs sont fournis, il doit s'agir d'un sous-ensemble de la " +"liste renvoyée par :meth:`getmembers`." #: ../Doc/library/tarfile.rst:367 msgid "Added the *members* parameter." -msgstr "" +msgstr "Ajout du paramètre *members*." #: ../Doc/library/tarfile.rst:373 msgid "" @@ -611,6 +760,9 @@ msgid "" "class:`TarFile` is opened for reading. Return :const:`None` if there is no " "more available." msgstr "" +"Renvoie le membre suivant de l'archive en tant qu'objet :class:`TarInfo`, " +"lorsque la classe :class:`TarFile` est ouverte en lecture. Renvoie :const:" +"`None` s'il n'y a pas." #: ../Doc/library/tarfile.rst:380 msgid "" @@ -623,6 +775,15 @@ msgid "" "directory's permissions do not allow writing, extracting files to it will " "fail." msgstr "" +"Extrait tous les membres de l'archive vers le répertoire de travail actuel " +"ou le répertoire *chemin*. Si des *membres* facultatifs sont fournis, il " +"doit s'agir d'un sous-ensemble de la liste renvoyée par :meth:`getmembers`. " +"Les informations d'annuaire telles que le propriétaire, l'heure de " +"modification et les autorisations sont définies une fois tous les membres " +"extraits. Cela est fait pour contourner deux problèmes : l'heure de " +"modification d'un répertoire est réinitialisée chaque fois qu'un fichier y " +"est créé. Et, si les autorisations d'un répertoire ne permettent pas " +"l'écriture, l'extraction de fichiers échoue." #: ../Doc/library/tarfile.rst:388 ../Doc/library/tarfile.rst:414 msgid "" @@ -630,6 +791,9 @@ msgid "" "tarfile are used to set the owner/group for the extracted files. Otherwise, " "the named values from the tarfile are used." msgstr "" +"Si *numeric_owner* est :const:`True`, les numéros *uid* et *gid* du fichier " +"*tar* sont utilisés pour définir le propriétaire et le groupe des fichiers " +"extraits. Sinon, les valeurs nommées du fichier *tar* sont utilisées." #: ../Doc/library/tarfile.rst:394 msgid "" @@ -638,14 +802,20 @@ msgid "" "absolute filenames starting with ``\"/\"`` or filenames with two dots ``\".." "\"``." msgstr "" +"Ne jamais extraire des archives de sources non fiables sans inspection " +"préalable. Il est possible que des fichiers soient créés en dehors de " +"*chemin*, par ex: les membres qui ont des noms de fichiers absolus " +"commençant par ``\"/\"`` ou des noms de fichiers avec deux points ``\"..\"``." #: ../Doc/library/tarfile.rst:399 ../Doc/library/tarfile.rst:430 msgid "Added the *numeric_owner* parameter." -msgstr "" +msgstr "Ajout du paramètre *numeric_owner*." #: ../Doc/library/tarfile.rst:402 ../Doc/library/tarfile.rst:433 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *path* accepte un objet chemin-compatible :term:`path-like " +"object`." #: ../Doc/library/tarfile.rst:408 msgid "" @@ -655,20 +825,30 @@ msgid "" "different directory using *path*. *path* may be a :term:`path-like object`. " "File attributes (owner, mtime, mode) are set unless *set_attrs* is false." msgstr "" +"Extrait un membre de l'archive vers le répertoire de travail actuel, en " +"utilisant son nom complet. Les informations de son fichier sont extraites " +"aussi précisément que possible. Le membre peut être un nom de fichier ou un " +"objet :class:`TarInfo`. Vous pouvez spécifier un répertoire différent en " +"utilisant *path*. *path* peut être un :term:`path-like object`. Les " +"attributs de fichier (propriétaire, *mtime*, mode) sont définis sauf si " +"*set_attrs* est faux." #: ../Doc/library/tarfile.rst:420 msgid "" "The :meth:`extract` method does not take care of several extraction issues. " "In most cases you should consider using the :meth:`extractall` method." msgstr "" +"La méthode :meth:`extract` ne prend pas en charge plusieurs problèmes " +"d'extraction. Dans la plupart des cas, vous devriez envisager d'utiliser la " +"méthode :meth:`extractall`." #: ../Doc/library/tarfile.rst:425 msgid "See the warning for :meth:`extractall`." -msgstr "" +msgstr "Voir l'avertissement pour :meth:`extractall`." #: ../Doc/library/tarfile.rst:427 msgid "Added the *set_attrs* parameter." -msgstr "" +msgstr "Ajout du paramètre *set_attrs*." #: ../Doc/library/tarfile.rst:439 msgid "" @@ -677,10 +857,14 @@ msgid "" "link, an :class:`io.BufferedReader` object is returned. Otherwise, :const:" "`None` is returned." msgstr "" +"Extrait un membre de l'archive en tant qu'objet fichier. *member* peut être " +"un nom de fichier ou un objet :class:`TarInfo`. Si *member* est un fichier " +"normal ou un lien, un objet :class:`io.BufferedReader` est renvoyé. Sinon, :" +"const:`None` est renvoyé." #: ../Doc/library/tarfile.rst:444 msgid "Return an :class:`io.BufferedReader` object." -msgstr "" +msgstr "Renvoie un objet :class:`io.BufferedReader`." #: ../Doc/library/tarfile.rst:450 msgid "" @@ -694,14 +878,24 @@ msgid "" "`None` the :class:`TarInfo` object will be excluded from the archive. See :" "ref:`tar-examples` for an example." msgstr "" +"Ajoute le fichier *name* à l'archive. *name* peut être n'importe quel type " +"de fichier (répertoire, *fifo*, lien symbolique, etc.). S'il est donné, " +"*arcname* spécifie un autre nom pour le fichier dans l'archive. Les " +"répertoires sont ajoutés récursivement par défaut. Cela peut être évité en " +"définissant *récursive* sur :const:`False`. La récursivité ajoute des " +"entrées dans l'ordre trié. Si *filter* est donné, il convient que ce soit " +"une fonction qui prend un argument d'objet :class:`TarInfo` et renvoie " +"l'objet changé :class:`TarInfo`. S'il renvoie à la place :const:`None`, " +"l'objet :class:`TarInfo` sera exclu de l'archive. Voir :ref:`tar-examples` " +"pour un exemple." #: ../Doc/library/tarfile.rst:461 msgid "Added the *filter* parameter." -msgstr "" +msgstr "Ajout du paramètre *filter*." #: ../Doc/library/tarfile.rst:464 msgid "Recursion adds entries in sorted order." -msgstr "" +msgstr "La récursivité ajoute les entrées dans un ordre trié." #: ../Doc/library/tarfile.rst:470 msgid "" @@ -710,6 +904,11 @@ msgid "" "read from it and added to the archive. You can create :class:`TarInfo` " "objects directly, or by using :meth:`gettarinfo`." msgstr "" +"Ajoute l'objet :class:`TarInfo` *tarinfo* à l'archive. Si *fileobj* est " +"donné, il convient que ce soit un :term:`fichier binaire`, et les octets " +"``tarinfo.size`` sont lus à partir de celui-ci et ajoutés à l'archive. Vous " +"pouvez créer des objets :class:`TarInfo` directement, ou en utilisant :meth:" +"`gettarinfo`." #: ../Doc/library/tarfile.rst:478 msgid "" @@ -721,6 +920,13 @@ msgid "" "from *fileobj*’s :attr:`~io.FileIO.name` attribute, or the *name* argument. " "The name should be a text string." msgstr "" +"Crée un objet :class:`TarInfo` à partir du résultat de :func:`os.stat` ou " +"équivalent sur un fichier existant. Le fichier est soit nommé par *name*, " +"soit spécifié comme :term:`file object` *fileobj* avec un descripteur de " +"fichier. *name* peut être un :term:`objet` semblable à un chemin. S'il est " +"donné, *arcname* spécifie un autre nom pour le fichier dans l'archive, " +"sinon, le nom est tiré de l'attribut *fileobj* :attr:`~io.FileIO.name`, ou " +"de l'argument *name*. Le nom doit être une chaîne de texte." #: ../Doc/library/tarfile.rst:487 msgid "" @@ -731,20 +937,30 @@ msgid "" "`~gzip.GzipFile`. The :attr:`~TarInfo.name` may also be modified, in which " "case *arcname* could be a dummy string." msgstr "" +"Vous pouvez modifier certains des attributs de :class:`TarInfo` avant de les " +"ajouter en utilisant :meth:`addfile`. Si l'objet fichier n'est pas un objet " +"fichier ordinaire positionné au début du fichier, des attributs tels que :" +"attr:`~TarInfo.size` peuvent nécessiter une modification. C'est le cas pour " +"des objets tels que :class:`~gzip.GzipFile`. Le :attr:`~TarInfo.name` peut " +"également être modifié, auquel cas *arcname* pourrait être une chaîne " +"factice." #: ../Doc/library/tarfile.rst:501 msgid "" "Close the :class:`TarFile`. In write mode, two finishing zero blocks are " "appended to the archive." msgstr "" +"Ferme le :class:`TarFile`. En mode écriture, deux blocs de finition à zéro " +"sont ajoutés à l'archive." #: ../Doc/library/tarfile.rst:507 msgid "A dictionary containing key-value pairs of pax global headers." msgstr "" +"Un dictionnaire contenant des paires clé-valeur d'en-têtes globaux *pax*." #: ../Doc/library/tarfile.rst:514 msgid "TarInfo Objects" -msgstr "" +msgstr "Les objets *TarInfo*" #: ../Doc/library/tarfile.rst:516 msgid "" @@ -753,56 +969,69 @@ msgid "" "permissions, owner etc.), it provides some useful methods to determine its " "type. It does *not* contain the file's data itself." msgstr "" +"Un objet :class:`TarInfo` représente un membre dans un :class:`TarFile`. En " +"plus de stocker tous les attributs requis d'un fichier (comme le type de " +"fichier, la taille, l'heure, les autorisations, le propriétaire, etc.), il " +"fournit quelques méthodes utiles pour déterminer son type. Il ne contient " +"pas les données du fichier lui-même." #: ../Doc/library/tarfile.rst:521 msgid "" ":class:`TarInfo` objects are returned by :class:`TarFile`'s methods :meth:" "`getmember`, :meth:`getmembers` and :meth:`gettarinfo`." msgstr "" +"Les objets :class:`TarInfo` sont renvoyés par les méthodes de :class:" +"`TarFile` :meth:`getmember`, :meth:`getmembers` et :meth:`gettarinfo`." #: ../Doc/library/tarfile.rst:527 msgid "Create a :class:`TarInfo` object." -msgstr "" +msgstr "Crée un objet :class:`TarInfo`." #: ../Doc/library/tarfile.rst:532 msgid "Create and return a :class:`TarInfo` object from string buffer *buf*." msgstr "" +"Crée et renvoie un objet :class:`TarInfo` à partir de la chaîne tampon *buf*." #: ../Doc/library/tarfile.rst:534 msgid "Raises :exc:`HeaderError` if the buffer is invalid." -msgstr "" +msgstr "Lève :exc:`HeaderError` si le tampon n'est pas valide." #: ../Doc/library/tarfile.rst:539 msgid "" "Read the next member from the :class:`TarFile` object *tarfile* and return " "it as a :class:`TarInfo` object." msgstr "" +"Lit le membre suivant dans l'objet :class:`TarFile` *tarfile* et le renvoie " +"comme un objet :class:`TarInfo`." #: ../Doc/library/tarfile.rst:545 msgid "" "Create a string buffer from a :class:`TarInfo` object. For information on " "the arguments see the constructor of the :class:`TarFile` class." msgstr "" +"Crée un tampon de chaîne de caractères à partir d'un objet :class:`TarInfo`. " +"Pour plus d'informations sur les arguments, voir le constructeur de la " +"classe :class:`TarFile`." #: ../Doc/library/tarfile.rst:552 msgid "A ``TarInfo`` object has the following public data attributes:" -msgstr "" +msgstr "Un objet ``TarInfo`` a les attributs de données publics suivants :" #: ../Doc/library/tarfile.rst:557 msgid "Name of the archive member." -msgstr "" +msgstr "Nom du membre de l'archive." #: ../Doc/library/tarfile.rst:562 msgid "Size in bytes." -msgstr "" +msgstr "La taille en octets." #: ../Doc/library/tarfile.rst:567 msgid "Time of last modification." -msgstr "" +msgstr "L'heure de la dernière modification." #: ../Doc/library/tarfile.rst:572 msgid "Permission bits." -msgstr "" +msgstr "Bits d'autorisation." #: ../Doc/library/tarfile.rst:577 msgid "" @@ -812,135 +1041,161 @@ msgid "" "const:`GNUTYPE_SPARSE`. To determine the type of a :class:`TarInfo` object " "more conveniently, use the ``is*()`` methods below." msgstr "" +"Type de fichier. *type* est généralement l'une des constantes suivantes: :" +"const:`REGTYPE`, :const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :" +"const:`DIRTYPE`, :const:`FIFOTYPE`, :const:`CONTTYPE`, :const:`CHRTYPE`, :" +"const:`BLKTYPE`, :const:`GNUTYPE_SPARSE`. Pour déterminer plus facilement le " +"type d'un objet :class:`TarInfo`, utilisez les méthodes ``is*()`` ci-dessous." #: ../Doc/library/tarfile.rst:586 msgid "" "Name of the target file name, which is only present in :class:`TarInfo` " "objects of type :const:`LNKTYPE` and :const:`SYMTYPE`." msgstr "" +"Nom du fichier cible, qui n'est présent que dans les objets :class:" +"`TarInfo` de type :const:`LNKTYPE` et :const:`SYMTYPE`." #: ../Doc/library/tarfile.rst:592 msgid "User ID of the user who originally stored this member." -msgstr "" +msgstr "ID de l'utilisateur qui a initialement stocké ce membre." #: ../Doc/library/tarfile.rst:597 msgid "Group ID of the user who originally stored this member." -msgstr "" +msgstr "ID de groupe de l'utilisateur qui a initialement stocké ce membre." #: ../Doc/library/tarfile.rst:602 msgid "User name." -msgstr "" +msgstr "Nom d'utilisateur." #: ../Doc/library/tarfile.rst:607 msgid "Group name." -msgstr "" +msgstr "Nom de groupe." #: ../Doc/library/tarfile.rst:612 msgid "" "A dictionary containing key-value pairs of an associated pax extended header." msgstr "" +"Un dictionnaire contenant des paires clé-valeur d'un en-tête étendu *pax* " +"associé." #: ../Doc/library/tarfile.rst:615 msgid "A :class:`TarInfo` object also provides some convenient query methods:" msgstr "" +"Un objet :class:`TarInfo` fournit également des méthodes de requête " +"pratiques :" #: ../Doc/library/tarfile.rst:620 msgid "Return :const:`True` if the :class:`Tarinfo` object is a regular file." msgstr "" +"Renvoie :const:`True` si l'objet :class:`Tarinfo` est un fichier normal." #: ../Doc/library/tarfile.rst:625 msgid "Same as :meth:`isfile`." -msgstr "" +msgstr "Identique à :meth:`isfile`." #: ../Doc/library/tarfile.rst:630 msgid "Return :const:`True` if it is a directory." -msgstr "" +msgstr "Renvoie :const:`True` si c'est un dossier." #: ../Doc/library/tarfile.rst:635 msgid "Return :const:`True` if it is a symbolic link." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un lien symbolique." #: ../Doc/library/tarfile.rst:640 msgid "Return :const:`True` if it is a hard link." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un lien physique." #: ../Doc/library/tarfile.rst:645 msgid "Return :const:`True` if it is a character device." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un périphérique de caractères." #: ../Doc/library/tarfile.rst:650 msgid "Return :const:`True` if it is a block device." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un périphérique de bloc." #: ../Doc/library/tarfile.rst:655 msgid "Return :const:`True` if it is a FIFO." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un tube nommé (*FIFO*)." #: ../Doc/library/tarfile.rst:660 msgid "" "Return :const:`True` if it is one of character device, block device or FIFO." msgstr "" +"Renvoie :const:`True` s'il s'agit d'un périphérique de caractères, d'un " +"périphérique de bloc ou d'un tube nommé." #: ../Doc/library/tarfile.rst:667 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/tarfile.rst:671 msgid "" "The :mod:`tarfile` module provides a simple command-line interface to " "interact with tar archives." msgstr "" +"Le module :mod:`tarfile` fournit une interface de ligne de commande simple " +"pour interagir avec les archives *tar*." #: ../Doc/library/tarfile.rst:674 msgid "" "If you want to create a new tar archive, specify its name after the :option:" "`-c` option and then list the filename(s) that should be included:" msgstr "" +"Si vous souhaitez créer une nouvelle archive *tar*, spécifiez son nom après " +"l'option :option:`-c`, puis répertorie-le ou les noms de fichiers à inclure :" #: ../Doc/library/tarfile.rst:681 msgid "Passing a directory is also acceptable:" -msgstr "" +msgstr "Passer un répertoire est aussi possible :" #: ../Doc/library/tarfile.rst:687 msgid "" "If you want to extract a tar archive into the current directory, use the :" "option:`-e` option:" msgstr "" +"Si vous souhaitez extraire une archive *tar* dans le répertoire courant, " +"utilisez l'option :option:`-e`:" #: ../Doc/library/tarfile.rst:694 msgid "" "You can also extract a tar archive into a different directory by passing the " "directory's name:" msgstr "" +"Vous pouvez également extraire une archive *tar* dans un autre répertoire en " +"passant le nom du répertoire:" #: ../Doc/library/tarfile.rst:701 msgid "For a list of the files in a tar archive, use the :option:`-l` option:" msgstr "" +"Pour une liste des fichiers dans une archive *tar*, utilisez l'option :" +"option:`-l` :" #: ../Doc/library/tarfile.rst:709 msgid "Command-line options" -msgstr "" +msgstr "Options de la ligne de commande" #: ../Doc/library/tarfile.rst:714 msgid "List files in a tarfile." -msgstr "" +msgstr "Liste les fichiers dans une archive *tar*." #: ../Doc/library/tarfile.rst:719 msgid "Create tarfile from source files." -msgstr "" +msgstr "Crée une archive *tar* à partir des fichiers sources." #: ../Doc/library/tarfile.rst:724 msgid "" "Extract tarfile into the current directory if *output_dir* is not specified." msgstr "" +"Extrait l'archive *tar* dans le répertoire courant si *output_dir* n'est pas " +"spécifié." #: ../Doc/library/tarfile.rst:729 msgid "Test whether the tarfile is valid or not." -msgstr "" +msgstr "Teste si l'archive *tar* est valide ou non." #: ../Doc/library/tarfile.rst:733 msgid "Verbose output." -msgstr "" +msgstr "Sortie verbeuse." #: ../Doc/library/tarfile.rst:738 msgid "Examples" @@ -949,42 +1204,53 @@ msgstr "Exemples" #: ../Doc/library/tarfile.rst:740 msgid "How to extract an entire tar archive to the current working directory::" msgstr "" +"Comment extraire une archive *tar* dans le dossier de travail courant ::" #: ../Doc/library/tarfile.rst:747 msgid "" "How to extract a subset of a tar archive with :meth:`TarFile.extractall` " "using a generator function instead of a list::" msgstr "" +"Comment extraire un sous-ensemble d'une archive *tar* avec :meth:`TarFile." +"extractall` en utilisant une fonction de générateur au lieu d'une liste ::" #: ../Doc/library/tarfile.rst:762 msgid "How to create an uncompressed tar archive from a list of filenames::" msgstr "" +"Comment créer une archive *tar* non compressée à partir d'une liste de noms " +"de fichiers ::" #: ../Doc/library/tarfile.rst:770 msgid "The same example using the :keyword:`with` statement::" -msgstr "" +msgstr "Le même exemple en utilisant l'instruction :keyword:`with` ::" #: ../Doc/library/tarfile.rst:777 msgid "" "How to read a gzip compressed tar archive and display some member " "information::" msgstr "" +"Comment lire une archive *tar* compressée avec *gzip* et afficher des " +"informations des membres ::" #: ../Doc/library/tarfile.rst:791 msgid "" "How to create an archive and reset the user information using the *filter* " "parameter in :meth:`TarFile.add`::" msgstr "" +"Comment créer une archive et réinitialiser les informations de l'utilisateur " +"en utilisant le paramètre *filter* dans :meth:`TarFile.add` ::" #: ../Doc/library/tarfile.rst:807 msgid "Supported tar formats" -msgstr "" +msgstr "Formats *tar* pris en charge" #: ../Doc/library/tarfile.rst:809 msgid "" "There are three tar formats that can be created with the :mod:`tarfile` " "module:" msgstr "" +"Il existe trois formats *tar* qui peuvent être créés avec le module :mod:" +"`tarfile` :" #: ../Doc/library/tarfile.rst:811 msgid "" @@ -993,6 +1259,10 @@ msgid "" "The maximum file size is 8 GiB. This is an old and limited but widely " "supported format." msgstr "" +"Le format *POSIX.1-1988* *ustar* (:const:`ustar_FORMAT`). Il prend en charge " +"les noms de fichiers jusqu'à une longueur maximale de 256 caractères et les " +"noms de liens jusqu'à 100 caractères. La taille maximale du fichier est de " +"8 Go. Il s'agit d'un format ancien et limité mais largement pris en charge." #: ../Doc/library/tarfile.rst:816 msgid "" @@ -1001,6 +1271,11 @@ msgid "" "standard on GNU/Linux systems. :mod:`tarfile` fully supports the GNU tar " "extensions for long names, sparse file support is read-only." msgstr "" +"Le format GNU *tar* (:const:`GNU_FORMAT`). Il prend en charge les noms de " +"fichiers longs et les noms de liens, les fichiers supérieurs à 8 Go et les " +"fichiers discontinus. C'est la norme de facto des systèmes GNU / Linux. :mod:" +"`tarfile` prend entièrement en charge les extensions GNU *tar* pour les noms " +"longs, la prise en charge des fichiers discontinus est en lecture seule." #: ../Doc/library/tarfile.rst:821 msgid "" @@ -1025,6 +1300,8 @@ msgid "" "There are some more variants of the tar format which can be read, but not " "created:" msgstr "" +"Il existe d'autres variantes du format *tar* qui peuvent être lues, mais pas " +"créées" #: ../Doc/library/tarfile.rst:835 msgid "" @@ -1034,16 +1311,23 @@ msgid "" "archives have miscalculated header checksums in case of fields with non-" "ASCII characters." msgstr "" +"L'ancien format *V7*. Il s'agit du premier format *tar* d'*Unix Seventh " +"Edition*, ne stockant que des fichiers et répertoires normaux. Les noms ne " +"doivent pas dépasser 100 caractères, il n'y a aucune information de nom " +"d'utilisateur / groupe. Certaines archives ont des sommes de contrôle d'en-" +"tête mal calculées dans le cas de champs avec des caractères non ASCII." #: ../Doc/library/tarfile.rst:840 msgid "" "The SunOS tar extended format. This format is a variant of the POSIX.1-2001 " "pax format, but is not compatible." msgstr "" +"Format étendu *SunOS* *tar*. Ce format est une variante du format " +"*POSIX.1-2001* *pax*, mais n'est pas compatible." #: ../Doc/library/tarfile.rst:846 msgid "Unicode issues" -msgstr "" +msgstr "Problèmes *unicode*" #: ../Doc/library/tarfile.rst:848 msgid "" @@ -1059,12 +1343,30 @@ msgid "" "encoding of an archive. The pax format was designed to solve this problem. " "It stores non-ASCII metadata using the universal character encoding *UTF-8*." msgstr "" +"Le format *tar* a été initialement conçu pour effectuer des sauvegardes sur " +"des lecteurs de bande en mettant principalement l'accent sur la préservation " +"des informations du système de fichiers. De nos jours, les archives *tar* " +"sont couramment utilisées pour la distribution de fichiers et l'échange " +"d'archives sur des réseaux. Un problème du format d'origine (qui est la base " +"de tous les autres formats) est qu'il n'existe aucun concept de prise en " +"charge d'encodages de caractères différents. Par exemple, une archive *tar* " +"ordinaire créée sur un système *UTF-8* ne peut pas être lue correctement sur " +"un système *Latin-1* si elle contient des caractères non *ASCII*. Les " +"métadonnées textuelles (comme les noms de fichiers, les noms de liens, les " +"noms d'utilisateurs / de groupes) sembleront endommagées. Malheureusement, " +"il n'y a aucun moyen de détecter automatiquement l'encodage d'une archive. " +"Le format *pax* a été conçu pour résoudre ce problème. Il stocke les " +"métadonnées non ASCII en utilisant l'encodage universel des caractères " +"*UTF-8*." #: ../Doc/library/tarfile.rst:860 msgid "" "The details of character conversion in :mod:`tarfile` are controlled by the " "*encoding* and *errors* keyword arguments of the :class:`TarFile` class." msgstr "" +"Les détails de la conversion des caractères dans :mod:`tarfile` sont " +"contrôlés par les arguments de mot-clé *encoding* et *errors* de la classe :" +"class:`TarFile`." #: ../Doc/library/tarfile.rst:863 msgid "" @@ -1074,6 +1376,11 @@ msgid "" "written, the metadata must be either decoded or encoded. If *encoding* is " "not set appropriately, this conversion may fail." msgstr "" +"*encoding* définit l'encodage de caractères à utiliser pour les métadonnées " +"de l'archive. La valeur par défaut est :func:`sys.getfilesystemencoding` ou " +"``'ascii'`` comme solution de rechange. Selon que l'archive est lue ou " +"écrite, les métadonnées doivent être décodées ou encodées. Si l'encodage " +"n'est pas défini correctement, cette conversion peut échouer." #: ../Doc/library/tarfile.rst:869 msgid "" @@ -1082,6 +1389,11 @@ msgid "" "default scheme is ``'surrogateescape'`` which Python also uses for its file " "system calls, see :ref:`os-filenames`." msgstr "" +"L'argument *errors* définit le traitement des caractères qui ne peuvent pas " +"être convertis. Les valeurs possibles sont répertoriées dans la section :ref:" +"`error-handlers`. Le schéma par défaut est ``'surrogateescape'`` que Python " +"utilise également pour ses appels de système de fichiers, voir :ref:`os-" +"filenames`." #: ../Doc/library/tarfile.rst:874 msgid "" diff --git a/library/telnetlib.po b/library/telnetlib.po index 22ed8e598..d8f2f9891 100644 --- a/library/telnetlib.po +++ b/library/telnetlib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -68,7 +68,7 @@ msgstr "" #: ../Doc/library/telnetlib.rst:46 msgid "" "A :class:`Telnet` object is a context manager and can be used in a :keyword:" -"`with` statement. When the :keyword:`with` block ends, the :meth:`close` " +"`with` statement. When the :keyword:`!with` block ends, the :meth:`close` " "method is called::" msgstr "" @@ -185,7 +185,7 @@ msgstr "" #: ../Doc/library/telnetlib.rst:160 msgid "Close the connection." -msgstr "" +msgstr "Ferme la connexion." #: ../Doc/library/telnetlib.rst:165 msgid "Return the socket object used internally." diff --git a/library/tempfile.po b/library/tempfile.po index 920eafc05..7ae2ab544 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-03-27 13:37+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" #: ../Doc/library/tempfile.rst:2 msgid ":mod:`tempfile` --- Generate temporary files and directories" -msgstr "" +msgstr ":mod:`tempfile` — Génération de fichiers et répertoires temporaires" #: ../Doc/library/tempfile.rst:9 msgid "**Source code:** :source:`Lib/tempfile.py`" @@ -31,6 +32,13 @@ msgid "" "managers. :func:`mkstemp` and :func:`mkdtemp` are lower-level functions " "which require manual cleanup." msgstr "" +"Ce module crée des fichiers et répertoires temporaires. Il fonctionne sur " +"toutes les plateformes supportées. :class:`TemporaryFile`, :class:" +"`NamedTemporaryFile`, :class:`TemporaryDirectory`, et :class:" +"`SpooledTemporaryFile` sont des interfaces haut-niveau qui fournissent un " +"nettoyage automatique et peuvent être utilisées comme gestionnaire de " +"contexte. :func:`mkstemp` et :func:`mkdtemp` sont des fonctions bas-niveau " +"qui nécessitent un nettoyage manuel." #: ../Doc/library/tempfile.rst:24 msgid "" @@ -42,10 +50,20 @@ msgid "" "order is somewhat odd; it is recommended to use keyword arguments for " "clarity." msgstr "" +"Toutes les fonctions et constructeurs appelables par l'utilisateur ont des " +"arguments additionnels qui permettent de contrôler directement le chemin et " +"le nom des répertoires et fichiers. Les noms de fichiers utilisés par ce " +"module incluent une chaîne de caractères aléatoires qui leur permet d'être " +"créés de manière sécurisée dans des répertoires temporaires partagés. Afin " +"de maintenir la compatibilité descendante, l'ordre des arguments est quelque " +"peu étrange ; pour des questions de clarté, il est recommandé d'utiliser les " +"arguments nommés." #: ../Doc/library/tempfile.rst:32 msgid "The module defines the following user-callable items:" msgstr "" +"Le module définit les éléments suivants pouvant être appelés par " +"l'utilisateur :" #: ../Doc/library/tempfile.rst:36 msgid "" @@ -58,6 +76,15 @@ msgid "" "rely on a temporary file created using this function having or not having a " "visible name in the file system." msgstr "" +"Renvoie un :term:`objet fichier ` qui peut être utilisé " +"comme une zone de stockage temporaire. Le fichier est créé de manière " +"sécurisé, utilisant les mêmes règles que :func:`mkstemp`. Il sera détruit " +"dès qu'il sera fermé (y compris lorsque le fichier est implicitement fermé " +"quand il est collecté par le ramasse-miette). Sous Unix, l'entrée du " +"répertoire n'est soit pas du tout créée, ou est supprimée immédiatement " +"après sa création. Les autres plateformes ne gèrent pas cela, votre code ne " +"doit pas compter sur un fichier temporaire créé en utilisant cette fonction " +"ayant ou non un nom visible sur le système de fichier." #: ../Doc/library/tempfile.rst:44 msgid "" @@ -65,6 +92,9 @@ msgid "" "examples`). On completion of the context or destruction of the file object " "the temporary file will be removed from the filesystem." msgstr "" +"L'objet résultat peut être utilisé comme un gestionnaire de contexte (voir :" +"ref:`tempfile-examples`). Une fois le contexte ou la destruction de l'objet " +"fichier terminé, le fichier temporaire sera supprimé du système de fichiers." #: ../Doc/library/tempfile.rst:49 msgid "" @@ -74,12 +104,19 @@ msgid "" "stored. *buffering*, *encoding* and *newline* are interpreted as for :func:" "`open`." msgstr "" +"Le paramètre *mode* vaut par défaut ``'w+b'`` afin que le fichier créé " +"puisse être lu et écrit sans être fermé. Le mode binaire est utilisé afin " +"que le comportement soit le même sur toutes les plateformes quelque soit la " +"donnée qui est stockée. *buffering*, *encoding* et *newline* sont " +"interprétés de la même façon que pour :func:`open`." #: ../Doc/library/tempfile.rst:55 msgid "" "The *dir*, *prefix* and *suffix* parameters have the same meaning and " "defaults as with :func:`mkstemp`." msgstr "" +"Les paramètres *dir*, *prefix* et *suffix* ont la même signification et même " +"valeur par défaut que :func:`mkstemp`." #: ../Doc/library/tempfile.rst:58 msgid "" @@ -87,16 +124,21 @@ msgid "" "platforms, it is a file-like object whose :attr:`!file` attribute is the " "underlying true file object." msgstr "" +"L'objet renvoyé est un véritable fichier sur les plateformes POSIX. Sur les " +"autres plateformes, un objet fichier-compatible est retourné où l'attribut :" +"attr:`!file` est le véritable fichier." #: ../Doc/library/tempfile.rst:62 msgid "" "The :py:data:`os.O_TMPFILE` flag is used if it is available and works (Linux-" "specific, requires Linux kernel 3.11 or later)." msgstr "" +"L'option :py:data:`os.O_TMPFILE` est utilisé s'il est disponible et " +"fonctionne (Linux exclusivement, nécessite un noyau Linux 3.11 ou plus)." #: ../Doc/library/tempfile.rst:67 msgid "The :py:data:`os.O_TMPFILE` flag is now used if available." -msgstr "" +msgstr "L'option :py:data:`os.O_TMPFILE` est maintenant utilisé si disponible." #: ../Doc/library/tempfile.rst:72 msgid "" @@ -112,6 +154,19 @@ msgid "" "This file-like object can be used in a :keyword:`with` statement, just like " "a normal file." msgstr "" +"Cette fonction fonctionne exactement comme :func:`TemporaryFile`, à la " +"différence qu'il est garanti que le fichier soit visible dans le système de " +"fichier (sur Unix, l'entrée du répertoire est supprimée). Le nom peut être " +"récupéré depuis l'attribut :attr:`name` de l'objet fichier-compatible " +"retourné. Le fait que le nom puisse être utilisé pour ouvrir le fichier une " +"seconde fois, tant que le fichier temporaire nommé est toujours ouvert, " +"varie entre les plateformes (cela peut l'être sur Unix, mais c'est " +"impossible sur Windows NT et plus). Si *delete* est vrai (valeur par " +"défaut), le fichier est supprimé dès qu'il est fermé. L'objet retourné est " +"toujours un objet fichier-compatible où l'attribut :attr:`!file` est le " +"véritable fichier. L'objet fichier-compatible peut être utilisé dans un " +"gestionnaire de contexte (instruction :keyword:`with`), juste comme un " +"fichier normal." #: ../Doc/library/tempfile.rst:88 msgid "" @@ -120,12 +175,19 @@ msgid "" "the file's :func:`fileno` method is called, at which point the contents are " "written to disk and operation proceeds as with :func:`TemporaryFile`." msgstr "" +"Cette fonction se comporte exactement comme :func:`TemporaryFile`, à " +"l'exception que les données sont stockées en mémoire jusqu'à ce que leur " +"taille dépasse *max_size*, ou que la méthode :func:`fileno` soit appelée. À " +"ce moment, le contenu est écrit sur disque et le fonctionnement redevient " +"similaire à celui de :func:`TemporaryFile`." #: ../Doc/library/tempfile.rst:94 msgid "" "The resulting file has one additional method, :func:`rollover`, which causes " "the file to roll over to an on-disk file regardless of its size." msgstr "" +"Le fichier renvoyé a une méthode supplémentaire, :func:`rollover`, qui " +"provoque la mise en écriture sur disque quelque soit la taille du fichier." #: ../Doc/library/tempfile.rst:97 msgid "" @@ -135,10 +197,16 @@ msgid "" "depending on whether :func:`rollover` has been called. This file-like " "object can be used in a :keyword:`with` statement, just like a normal file." msgstr "" +"L'objet renvoyé est un objet fichier-compatible où l'attribut :attr:`_file` " +"est soit un objet :class:`io.BytesIO` soit un objet :class:`io.StringIO` (en " +"fonction du *mode*) soit un véritable fichier, si la fonction :func:" +"`rollover` a été appelée. Cet objet fichier-compatible peut être utilisé " +"dans un gestionnaire de contexte (instruction :keyword:`with`), comme un " +"fichier normal." #: ../Doc/library/tempfile.rst:104 msgid "the truncate method now accepts a ``size`` argument." -msgstr "" +msgstr "la méthode de troncature accepte maintenant un argument ``size``." #: ../Doc/library/tempfile.rst:110 msgid "" @@ -148,20 +216,31 @@ msgid "" "of the temporary directory object the newly created temporary directory and " "all its contents are removed from the filesystem." msgstr "" +"Cette fonction crée un répertoire temporaire de manière sécurisée utilisant " +"les mêmes règles que :func:`mkdtemp`. L'objet renvoyé peut être utilisé " +"comme un gestionnaire de contexte (voir :ref:`tempfile-examples`). À la " +"sortie du contexte d’exécution ou à la destruction de l'objet, le répertoire " +"temporaire et tout son contenu sont supprimés du système de fichiers." #: ../Doc/library/tempfile.rst:116 msgid "" "The directory name can be retrieved from the :attr:`name` attribute of the " "returned object. When the returned object is used as a context manager, " -"the :attr:`name` will be assigned to the target of the :keyword:`as` clause " +"the :attr:`name` will be assigned to the target of the :keyword:`!as` clause " "in the :keyword:`with` statement, if there is one." msgstr "" +"Le nom du répertoire peut être récupéré via l'attribut :attr:`name` de " +"l'objet renvoyé. Quand l'objet renvoyé est utilisé comme gestionnaire de " +"contexte, l'attribut :attr:`name` sera lié au nom donné à la clause :keyword:" +"`!as` de l'instruction :keyword:`with`, si elle est spécifiée." #: ../Doc/library/tempfile.rst:121 msgid "" "The directory can be explicitly cleaned up by calling the :func:`cleanup` " "method." msgstr "" +"Le répertoire peut être explicitement nettoyé en appelant la méthode :func:" +"`cleanup`." #: ../Doc/library/tempfile.rst:129 msgid "" @@ -173,12 +252,23 @@ msgid "" "executable by no one. The file descriptor is not inherited by child " "processes." msgstr "" +"Crée un fichier temporaire de la manière la plus sécurisée qui soit. Il n'y " +"a pas d'accès concurrent (``race condition``) au moment de la création du " +"fichier, en supposant que la plateforme implémente correctement l'option :" +"const:`os.O_EXCL` pour :func:`os.open`. Le fichier est seulement accessible " +"en lecture et écriture par l'ID de l'utilisateur créateur. Si la plateforme " +"utilise des bits de permissions pour indiquer si le fichier est exécutable, " +"alors le fichier n'est exécutable par personne. Le descripteur de fichier " +"n'est pas hérité par les processus fils." #: ../Doc/library/tempfile.rst:137 msgid "" "Unlike :func:`TemporaryFile`, the user of :func:`mkstemp` is responsible for " "deleting the temporary file when done with it." msgstr "" +"À la différence de :func:`TemporaryFile`, l'utilisateur de :func:`mkstemp` " +"est responsable de la suppression du fichier temporaire quand il n'en a plus " +"besoin." #: ../Doc/library/tempfile.rst:140 msgid "" @@ -187,6 +277,10 @@ msgid "" "between the file name and the suffix; if you need one, put it at the " "beginning of *suffix*." msgstr "" +"Si *suffix* ne vaut pas ``None``, le nom de fichier se terminera avec ce " +"suffixe, sinon il n'y aura pas de suffixe. :func:`mkstemp` ne met pas de " +"point entre le nom du fichier et le suffixe. Si vous en avez besoin, mettez " +"le point au début de *suffix*." #: ../Doc/library/tempfile.rst:145 msgid "" @@ -194,6 +288,9 @@ msgid "" "otherwise, a default prefix is used. The default is the return value of :" "func:`gettempprefix` or :func:`gettempprefixb`, as appropriate." msgstr "" +"Si *prefix* ne vaut pas ``None``, le nom de fichier commencera avec ce " +"préfixe, sinon un préfixe par défaut est utilisé. La valeur par défaut est " +"la valeur retournée par :func:`gettempprefix` ou :func:`gettempprefixb`." #: ../Doc/library/tempfile.rst:149 msgid "" @@ -205,6 +302,14 @@ msgid "" "any nice properties, such as not requiring quoting when passed to external " "commands via ``os.popen()``." msgstr "" +"Si *dir* ne vaut pas ``None``, le fichier sera créé dans ce répertoire, " +"autrement, un répertoire par défaut sera utilisé. Le répertoire par défaut " +"est choisi depuis une liste dépendante de la plateforme, mais l'utilisateur " +"de l'application peut contrôler l'emplacement du répertoire en spécifiant " +"les variables d'environnement *TMPDIR*, *TEMP* ou *TMP*. Il n'y a pas de " +"garantie que le nom de fichier généré aura de bonnes propriétés telles que " +"ne pas avoir besoin de le mettre entre guillemets lorsque celui-ci est passé " +"à des commandes externes via ``os.popen()``." #: ../Doc/library/tempfile.rst:157 msgid "" @@ -213,12 +318,19 @@ msgid "" "str. If you want to force a bytes return value with otherwise default " "behavior, pass ``suffix=b''``." msgstr "" +"Si l'un des paramètres *suffix*, *prefix* et *dir* n'est pas ``None``, ils " +"doivent être du même type. S'ils sont de type ``bytes``, le nom renvoyée " +"sera de type ``bytes`` plutôt que de type ``str``. Si vous voulez forcer la " +"valeur renvoyée en ``bytes``, passez ``suffix=b''``." #: ../Doc/library/tempfile.rst:163 msgid "" "If *text* is specified, it indicates whether to open the file in binary mode " "(the default) or text mode. On some platforms, this makes no difference." msgstr "" +"Si *text* est spécifié, cela indique si le fichier doit être ouvert en mode " +"binaire (par défaut) ou en mode texte. Sur certaines plateformes, cela ne " +"fait aucune différence." #: ../Doc/library/tempfile.rst:167 msgid "" @@ -226,6 +338,10 @@ msgid "" "file (as would be returned by :func:`os.open`) and the absolute pathname of " "that file, in that order." msgstr "" +":func:`mkstemp` renvoie un n-uplet contenant un descripteur (*handle* en " +"anglais) au niveau du système d'exploitation vers un fichier ouvert (le même " +"que renvoie :func:`os.open`) et le chemin d'accès absolu de ce fichier, dans " +"cet ordre." #: ../Doc/library/tempfile.rst:171 ../Doc/library/tempfile.rst:192 msgid "" @@ -234,6 +350,10 @@ msgid "" "and *prefix* now accept and default to ``None`` to cause an appropriate " "default value to be used." msgstr "" +"*suffix*, *prefix*, et *dir* peuvent maintenant être spécifiés en ``bytes`` " +"pour obtenir un résultat en ``bytes``. Avant cela, le type ``str`` était le " +"seul autorisé. *suffix* et *prefix* acceptent maintenant la valeur par " +"défaut ``None`` pour que la valeur par défaut appropriée soit utilisée." #: ../Doc/library/tempfile.rst:180 msgid "" @@ -241,86 +361,111 @@ msgid "" "no race conditions in the directory's creation. The directory is readable, " "writable, and searchable only by the creating user ID." msgstr "" +"Crée un répertoire temporaire de la manière la plus sécurisée qu'il soit. Il " +"n'y a pas d'accès concurrent (``race condition``) au moment de la création " +"du répertoire. Le répertoire est accessible en lecture, en écriture, et son " +"contenu lisible uniquement pour l'ID de l'utilisateur créateur." #: ../Doc/library/tempfile.rst:184 msgid "" "The user of :func:`mkdtemp` is responsible for deleting the temporary " "directory and its contents when done with it." msgstr "" +"L'utilisateur de :func:`mkdtemp` est responsable de la suppression du " +"répertoire temporaire et de son contenu lorsqu'il n'en a plus besoin." #: ../Doc/library/tempfile.rst:187 msgid "" "The *prefix*, *suffix*, and *dir* arguments are the same as for :func:" "`mkstemp`." msgstr "" +"Les arguments *prefix*, *suffix*, et *dir* sont les mêmes que pour :func:" +"`mkstemp`." #: ../Doc/library/tempfile.rst:190 msgid ":func:`mkdtemp` returns the absolute pathname of the new directory." -msgstr "" +msgstr ":func:`mkdtemp` renvoie le chemin absolu du nouveau répertoire." #: ../Doc/library/tempfile.rst:201 msgid "" "Return the name of the directory used for temporary files. This defines the " "default value for the *dir* argument to all functions in this module." msgstr "" +"Renvoie le nom du répertoire utilisé pour les fichiers temporaires. C'est la " +"valeur par défaut pour l'argument *dir* de toutes les fonctions de ce module." #: ../Doc/library/tempfile.rst:205 msgid "" "Python searches a standard list of directories to find one which the calling " "user can create files in. The list is:" msgstr "" +"Python cherche un répertoire parmi une liste standard de répertoires dans " +"lequel l'utilisateur final peut créer des fichiers. La liste est :" #: ../Doc/library/tempfile.rst:208 msgid "The directory named by the :envvar:`TMPDIR` environment variable." msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TMPDIR`." #: ../Doc/library/tempfile.rst:210 msgid "The directory named by the :envvar:`TEMP` environment variable." msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TEMP`." #: ../Doc/library/tempfile.rst:212 msgid "The directory named by the :envvar:`TMP` environment variable." msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TMP`." #: ../Doc/library/tempfile.rst:214 msgid "A platform-specific location:" -msgstr "" +msgstr "Un emplacement dépendant à la plateforme :" #: ../Doc/library/tempfile.rst:216 msgid "" "On Windows, the directories :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" "\\TEMP`, and :file:`\\\\TMP`, in that order." msgstr "" +"Sur Windows, les répertoires :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" +"\\TEMP`, et :file:`\\\\TMP`, dans cet ordre." #: ../Doc/library/tempfile.rst:219 msgid "" "On all other platforms, the directories :file:`/tmp`, :file:`/var/tmp`, and :" "file:`/usr/tmp`, in that order." msgstr "" +"Sur toutes les autres plate-formes, les répertoires :file:`/tmp`, :file:`/" +"var/tmp`, et :file:`/usr/tmp`, dans cet ordre." #: ../Doc/library/tempfile.rst:222 msgid "As a last resort, the current working directory." -msgstr "" +msgstr "En dernier ressort, le répertoire de travail courant." #: ../Doc/library/tempfile.rst:224 msgid "" "The result of this search is cached, see the description of :data:`tempdir` " "below." msgstr "" +"Le résultat de cette recherche est mis en cache, voir la description de :" +"data:`tempdir` dessous." #: ../Doc/library/tempfile.rst:229 msgid "Same as :func:`gettempdir` but the return value is in bytes." msgstr "" +"Similaire à :func:`gettempdir` mais la valeur retournée est en *bytes*." #: ../Doc/library/tempfile.rst:235 msgid "" "Return the filename prefix used to create temporary files. This does not " "contain the directory component." msgstr "" +"Renvoie le préfixe de nom de fichier utilisé pour créer les fichiers " +"temporaires. Cela ne contient pas le nom du répertoire." #: ../Doc/library/tempfile.rst:240 msgid "Same as :func:`gettempprefix` but the return value is in bytes." msgstr "" +"Similaire à :func:`gettempprefix` mais la valeur retournée est en *bytes*." #: ../Doc/library/tempfile.rst:244 msgid "" @@ -330,12 +475,21 @@ msgid "" "this module take a *dir* argument which can be used to specify the directory " "and this is the recommended approach." msgstr "" +"Le module utilise une variable globale pour stocker le nom du répertoire " +"utilisé pour les fichiers temporaires renvoyés par :func:`gettempdir`. Vous " +"pouvez directement utiliser la variable globale pour surcharger le processus " +"de sélection, mais ceci est déconseillé. Toutes les fonctions de ce module " +"prennent un argument *dir* qui peut être utilisé pour spécifier le " +"répertoire. Il s'agit de la méthode recommandée." #: ../Doc/library/tempfile.rst:252 msgid "" "When set to a value other than ``None``, this variable defines the default " "value for the *dir* argument to the functions defined in this module." msgstr "" +"Quand une valeur autre que ``None`` est spécifiée, cette variable définit la " +"valeur par défaut pour l'argument *dir* des fonctions définies dans ce " +"module." #: ../Doc/library/tempfile.rst:256 msgid "" @@ -343,6 +497,9 @@ msgid "" "functions except :func:`gettempprefix` it is initialized following the " "algorithm described in :func:`gettempdir`." msgstr "" +"Si ``tempdir`` vaut ``None`` (par défaut) pour n'importe quelle des " +"fonctions ci-dessus, sauf :func:`gettempprefix`, la variable est initialisée " +"suivant l'algorithme décrit dans :func:`gettempdir`." #: ../Doc/library/tempfile.rst:263 msgid "Examples" @@ -351,10 +508,11 @@ msgstr "Exemples" #: ../Doc/library/tempfile.rst:265 msgid "Here are some examples of typical usage of the :mod:`tempfile` module::" msgstr "" +"Voici quelques exemples classiques d'utilisation du module :mod:`tempfile` ::" #: ../Doc/library/tempfile.rst:296 msgid "Deprecated functions and variables" -msgstr "" +msgstr "Fonctions et variables obsolètes" #: ../Doc/library/tempfile.rst:298 msgid "" @@ -366,10 +524,18 @@ msgid "" "to combine the two steps and create the file immediately. This approach is " "used by :func:`mkstemp` and the other functions described above." msgstr "" +"Historiquement, la méthode pour créer des fichiers temporaires consistait à " +"générer un nom de fichier avec la fonction :func:`mktemp` puis créer un " +"fichier en utilisant ce nom. Malheureusement, cette méthode n'est pas fiable " +"car un autre processus peut créer un fichier avec ce nom entre l'appel à la " +"fonction :func:`mktemp` et la tentative de création de fichier par le " +"premier processus en cours. La solution est de combiner les deux étapes et " +"de créer le fichier immédiatement. Cette approche est utilisée par :func:" +"`mkstemp` et les autres fonctions décrites plus haut." #: ../Doc/library/tempfile.rst:309 msgid "Use :func:`mkstemp` instead." -msgstr "" +msgstr "Utilisez :func:`mkstemp` à la place." #: ../Doc/library/tempfile.rst:312 msgid "" @@ -378,6 +544,10 @@ msgid "" "those of :func:`mkstemp`, except that bytes file names, ``suffix=None`` and " "``prefix=None`` are not supported." msgstr "" +"Renvoie le chemin absolu d'un fichier qui n'existe pas lorsque l'appel est " +"fait. Les arguments *prefix*, *suffix*, et *dir* sont similaires à ceux de :" +"func:`mkstemp` mais les noms de fichiers en *bytes*, ``sufix=None`` et " +"``prefix=None`` ne sont pas implémentées." #: ../Doc/library/tempfile.rst:319 msgid "" @@ -387,3 +557,8 @@ msgid "" "easily with :func:`NamedTemporaryFile`, passing it the ``delete=False`` " "parameter::" msgstr "" +"Utiliser cette fonction peut introduire une faille de sécurité dans votre " +"programme. Avant que vous n'ayez le temps de faire quoi que ce soit avec le " +"nom de fichier renvoyé, quelqu'un peut l'utiliser. L'utilisation de :func:" +"`mktemp` peut être remplacée facilement avec :func:`NamedTemporaryFile` en y " +"passant le paramètre ``delete=False`` ::" diff --git a/library/termios.po b/library/termios.po index 6489e1130..814acddbb 100644 --- a/library/termios.po +++ b/library/termios.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-27 12:03+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" #: ../Doc/library/termios.rst:2 msgid ":mod:`termios` --- POSIX style tty control" -msgstr "" +msgstr ":mod:`termios` — Le style POSIX le contrôle TTY" #: ../Doc/library/termios.rst:14 msgid "" @@ -25,6 +26,11 @@ msgid "" "manual page. It is only available for those Unix versions that support " "POSIX *termios* style tty I/O control configured during installation." msgstr "" +"Ce module fournit une interface aux appels POSIX pour le contrôle des E/S " +"TTY. Pour une description complète de ces appels, voir la page du manuel " +"UNIX :manpage:`termios(3)`. C’est disponible uniquement pour les versions " +"Unix qui supportent le style POSIX *termios* et les contrôles d’entrées/" +"sorties TTY configurés à l’installation." #: ../Doc/library/termios.rst:19 msgid "" @@ -32,6 +38,10 @@ msgid "" "argument. This can be an integer file descriptor, such as returned by ``sys." "stdin.fileno()``, or a :term:`file object`, such as ``sys.stdin`` itself." msgstr "" +"Toutes les fonctions de ce module prennent un descripteur de fichier *fd* " +"comme premier argument. Ça peut être un descripteur de fichiers entier, tel " +"que le retourne ``sys.stdin.fileno()``, ou un :term:`file object`, tel que " +"``sys.stdin``." #: ../Doc/library/termios.rst:23 msgid "" @@ -40,10 +50,14 @@ msgid "" "refer to your system documentation for more information on using these " "terminal control interfaces." msgstr "" +"Ce module définit aussi toutes les constantes nécessaires pour travailler " +"avec les fonctions fournies ici; elles ont les mêmes noms que leurs " +"équivalents en C. Pour plus d’informations sur l’utilisation de ces " +"terminaux, veuillez vous référer à votre documentation système." #: ../Doc/library/termios.rst:28 msgid "The module defines the following functions:" -msgstr "" +msgstr "Le module définit les fonctions suivantes :" #: ../Doc/library/termios.rst:33 msgid "" @@ -55,6 +69,14 @@ msgid "" "as well as the indexing in the *cc* array must be done using the symbolic " "constants defined in the :mod:`termios` module." msgstr "" +"Retourne une liste contenant les attributs TTY pour le descripteur de " +"fichier *fd*, tel que: ``[iflag, oflag, cflag, lflag, ispeed, ospeed, cc]`` " +"où *cc* est une liste de caractères spéciaux TTY (chacun est une chaine de " +"caractère de longueur 1, à l’exception des éléments ayant les indices :const:" +"`VMIN` et :const:`VTIME`, ceux-ci sont alors des entiers quand ces champs " +"sont définis). L’interprétation des options (*flags* en anglais) et des " +"vitesses ainsi que l’indexation dans le tableau *cc* doit être fait en " +"utilisant les constantes symboliques définies dans le module :mod:`termios`." #: ../Doc/library/termios.rst:44 msgid "" @@ -65,17 +87,29 @@ msgid "" "output, or :const:`TCSAFLUSH` to change after transmitting all queued output " "and discarding all queued input." msgstr "" +"Définit les attributs TTY pour le descripteur de fichiers *fd* à partir des " +"*attributs*, qui est une liste comme celle retournée par :func:`tcgetattr`. " +"L’argument *when* détermine quand les attributs sont changés: :const:" +"`TCSANOW` pour un changement immédiat, :const:`TCSADRAIN` pour un changement " +"après la transmission de toute sortie en file d’attente, ou :const:" +"`TCSAFLUSH` pour un changement après avoir transmis toute sortie en file " +"d’attente et rejeté toutes entrée en file d’attente." #: ../Doc/library/termios.rst:54 msgid "" "Send a break on file descriptor *fd*. A zero *duration* sends a break for " -"0.25 --0.5 seconds; a nonzero *duration* has a system dependent meaning." +"0.25--0.5 seconds; a nonzero *duration* has a system dependent meaning." msgstr "" +"Envoie une pause sur le descripteur de fichier *fd*. Une *duration* à zéro " +"envoie une pause de 0,25 à 0,5 seconde ; une *duration* différente de zéro " +"possède une signification spécifique sur chaque système." #: ../Doc/library/termios.rst:60 msgid "" "Wait until all output written to file descriptor *fd* has been transmitted." msgstr "" +"Attends que toutes les sorties écrites dans le descripteur de fichier *fd* " +"soient transmises." #: ../Doc/library/termios.rst:65 msgid "" @@ -83,6 +117,10 @@ msgid "" "which queue: :const:`TCIFLUSH` for the input queue, :const:`TCOFLUSH` for " "the output queue, or :const:`TCIOFLUSH` for both queues." msgstr "" +"Vide la queue de données du descripteur de fichier *fd*. Le sélecteur " +"*queue* précise la queue: :const:`TCIFLUSH` pour la queue des entrées, :" +"const:`TCOFLUSH` pour la queue des sorties, ou :const:`TCIOFLUSH` pour les " +"deux queues." #: ../Doc/library/termios.rst:72 msgid "" @@ -90,14 +128,19 @@ msgid "" "argument can be :const:`TCOOFF` to suspend output, :const:`TCOON` to restart " "output, :const:`TCIOFF` to suspend input, or :const:`TCION` to restart input." msgstr "" +"Suspends ou reprends l’entrée ou la sortie du descripteur de fichier *fd*. " +"L’argument *action* peut être :const:`TCOOFF` pour suspendre la sortie, :" +"const:`TCOON` pour relancer la sortie, :const:`TCIOFF` pour suspendre " +"l’entrée, ou :const:`TCION` pour relancer l’entrée." #: ../Doc/library/termios.rst:79 msgid "Module :mod:`tty`" -msgstr "" +msgstr "Le module :mod:`tty`" #: ../Doc/library/termios.rst:80 msgid "Convenience functions for common terminal control operations." msgstr "" +"Fonctions utiles pour les opérations de contrôle communes dans le terminal." #: ../Doc/library/termios.rst:86 msgid "Example" @@ -110,3 +153,8 @@ msgid "" "`try` ... :keyword:`finally` statement to ensure that the old tty attributes " "are restored exactly no matter what happens::" msgstr "" +"Voici une fonction qui demande à l’utilisateur d’entrer un mot de passe sans " +"l’afficher. Remarquez la technique qui consiste à séparer un appel à :func:" +"`tcgetattr` et une instruction :keyword:`try`… :keyword:`finally` pour " +"s’assurer que les anciens attributs tty soient restaurés tels quels quoi " +"qu’il arrive ::" diff --git a/library/test.po b/library/test.po index b965e2b45..90940af46 100644 --- a/library/test.po +++ b/library/test.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -54,7 +54,7 @@ msgstr "" #: ../Doc/library/test.rst:35 msgid "Module :mod:`doctest`" -msgstr "" +msgstr "Module :mod:`doctest`" #: ../Doc/library/test.rst:36 msgid "Tests embedded in documentation strings." @@ -371,39 +371,43 @@ msgid "Check for presence of docstrings." msgstr "" #: ../Doc/library/test.rst:361 -msgid "The :mod:`test.support` module defines the following functions:" +msgid "Define the URL of a dedicated HTTP server for the network tests." msgstr "" #: ../Doc/library/test.rst:365 +msgid "The :mod:`test.support` module defines the following functions:" +msgstr "" + +#: ../Doc/library/test.rst:369 msgid "" "Remove the module named *module_name* from ``sys.modules`` and delete any " "byte-compiled files of the module." msgstr "" -#: ../Doc/library/test.rst:371 +#: ../Doc/library/test.rst:375 msgid "Delete *name* from ``sys.modules``." msgstr "" -#: ../Doc/library/test.rst:376 +#: ../Doc/library/test.rst:380 msgid "" "Call :func:`os.unlink` on *filename*. On Windows platforms, this is wrapped " "with a wait loop that checks for the existence fo the file." msgstr "" -#: ../Doc/library/test.rst:382 +#: ../Doc/library/test.rst:386 msgid "" "Call :func:`os.rmdir` on *filename*. On Windows platforms, this is wrapped " "with a wait loop that checks for the existence of the file." msgstr "" -#: ../Doc/library/test.rst:388 +#: ../Doc/library/test.rst:392 msgid "" "Call :func:`shutil.rmtree` on *path* or call :func:`os.lstat` and :func:`os." "rmdir` to remove a path and its contents. On Windows platforms, this is " "wrapped with a wait loop that checks for the existence of the files." msgstr "" -#: ../Doc/library/test.rst:395 +#: ../Doc/library/test.rst:399 msgid "" "Move a PEP 3147/488 pyc file to its legacy pyc location and return the file " "system path to the legacy pyc file. The *source* value is the file system " @@ -411,22 +415,22 @@ msgid "" "3147/488 pyc file must exist." msgstr "" -#: ../Doc/library/test.rst:403 +#: ../Doc/library/test.rst:407 msgid "" "Return ``True`` if *resource* is enabled and available. The list of " "available resources is only set when :mod:`test.regrtest` is executing the " "tests." msgstr "" -#: ../Doc/library/test.rst:410 +#: ../Doc/library/test.rst:414 msgid "Return ``True`` if Python was not built with ``-O0`` or ``-Og``." msgstr "" -#: ../Doc/library/test.rst:415 +#: ../Doc/library/test.rst:419 msgid "Return :data:`_testcapi.WITH_PYMALLOC`." msgstr "" -#: ../Doc/library/test.rst:420 +#: ../Doc/library/test.rst:424 msgid "" "Raise :exc:`ResourceDenied` if *resource* is not available. *msg* is the " "argument to :exc:`ResourceDenied` if it is raised. Always returns ``True`` " @@ -434,53 +438,53 @@ msgid "" "tests are executed by :mod:`test.regrtest`." msgstr "" -#: ../Doc/library/test.rst:428 +#: ../Doc/library/test.rst:432 msgid "" "Raise :exc:`unittest.SkipTest` on TLS certification validation failures." msgstr "" -#: ../Doc/library/test.rst:433 +#: ../Doc/library/test.rst:437 msgid "Return a repr of *dict* with keys sorted." msgstr "" -#: ../Doc/library/test.rst:438 +#: ../Doc/library/test.rst:442 msgid "" "Return the path to the file named *filename*. If no match is found " "*filename* is returned. This does not equal a failure since it could be the " "path to the file." msgstr "" -#: ../Doc/library/test.rst:442 +#: ../Doc/library/test.rst:446 msgid "" "Setting *subdir* indicates a relative path to use to find the file rather " "than looking directly in the path directories." msgstr "" -#: ../Doc/library/test.rst:448 +#: ../Doc/library/test.rst:452 msgid "" "Create an empty file with *filename*. If it already exists, truncate it." msgstr "" -#: ../Doc/library/test.rst:453 +#: ../Doc/library/test.rst:457 msgid "Count the number of open file descriptors." msgstr "" -#: ../Doc/library/test.rst:458 +#: ../Doc/library/test.rst:462 msgid "Match *test* to patterns set in :func:`set_match_tests`." msgstr "" -#: ../Doc/library/test.rst:463 +#: ../Doc/library/test.rst:467 msgid "Define match test with regular expression *patterns*." msgstr "" -#: ../Doc/library/test.rst:468 +#: ../Doc/library/test.rst:472 msgid "" "Execute :class:`unittest.TestCase` subclasses passed to the function. The " "function scans the classes for methods starting with the prefix ``test_`` " "and executes the tests individually." msgstr "" -#: ../Doc/library/test.rst:472 +#: ../Doc/library/test.rst:476 msgid "" "It is also legal to pass strings as parameters; these should be keys in " "``sys.modules``. Each associated module will be scanned by ``unittest." @@ -488,17 +492,17 @@ msgid "" "func:`test_main` function::" msgstr "" -#: ../Doc/library/test.rst:480 +#: ../Doc/library/test.rst:484 msgid "This will run all tests defined in the named module." msgstr "" -#: ../Doc/library/test.rst:485 +#: ../Doc/library/test.rst:489 msgid "" "Run :func:`doctest.testmod` on the given *module*. Return ``(failure_count, " "test_count)``." msgstr "" -#: ../Doc/library/test.rst:488 +#: ../Doc/library/test.rst:492 msgid "" "If *verbosity* is ``None``, :func:`doctest.testmod` is run with verbosity " "set to :data:`verbose`. Otherwise, it is run with verbosity set to " @@ -506,19 +510,19 @@ msgid "" "testmod`." msgstr "" -#: ../Doc/library/test.rst:496 +#: ../Doc/library/test.rst:500 msgid "" "Set the :func:`sys.setswitchinterval` to the given *interval*. Defines a " "minimum interval for Android systems to prevent the system from hanging." msgstr "" -#: ../Doc/library/test.rst:502 +#: ../Doc/library/test.rst:506 msgid "" "Use this check to guard CPython's implementation-specific tests or to run " "them only on the implementations guarded by the arguments::" msgstr "" -#: ../Doc/library/test.rst:512 +#: ../Doc/library/test.rst:516 msgid "" "A convenience wrapper for :func:`warnings.catch_warnings()` that makes it " "easier to test that a warning was correctly raised. It is approximately " @@ -527,7 +531,7 @@ msgid "" "automatically validate the results that are recorded." msgstr "" -#: ../Doc/library/test.rst:518 +#: ../Doc/library/test.rst:522 msgid "" "``check_warnings`` accepts 2-tuples of the form ``(\"message regexp\", " "WarningCategory)`` as positional arguments. If one or more *filters* are " @@ -539,15 +543,15 @@ msgid "" "*quiet* to ``True``." msgstr "" -#: ../Doc/library/test.rst:527 +#: ../Doc/library/test.rst:531 msgid "If no arguments are specified, it defaults to::" msgstr "" -#: ../Doc/library/test.rst:531 +#: ../Doc/library/test.rst:535 msgid "In this case all warnings are caught and no errors are raised." msgstr "" -#: ../Doc/library/test.rst:533 +#: ../Doc/library/test.rst:537 msgid "" "On entry to the context manager, a :class:`WarningRecorder` instance is " "returned. The underlying warnings list from :func:`~warnings.catch_warnings` " @@ -559,103 +563,103 @@ msgid "" "return ``None``." msgstr "" -#: ../Doc/library/test.rst:542 +#: ../Doc/library/test.rst:546 msgid "" "The recorder object also has a :meth:`reset` method, which clears the " "warnings list." msgstr "" -#: ../Doc/library/test.rst:545 +#: ../Doc/library/test.rst:549 msgid "The context manager is designed to be used like this::" msgstr "" -#: ../Doc/library/test.rst:552 +#: ../Doc/library/test.rst:556 msgid "" "In this case if either warning was not raised, or some other warning was " "raised, :func:`check_warnings` would raise an error." msgstr "" -#: ../Doc/library/test.rst:555 +#: ../Doc/library/test.rst:559 msgid "" "When a test needs to look more deeply into the warnings, rather than just " "checking whether or not they occurred, code like this can be used::" msgstr "" -#: ../Doc/library/test.rst:569 +#: ../Doc/library/test.rst:573 msgid "" "Here all warnings will be caught, and the test code tests the captured " "warnings directly." msgstr "" -#: ../Doc/library/test.rst:572 +#: ../Doc/library/test.rst:576 msgid "New optional arguments *filters* and *quiet*." msgstr "" -#: ../Doc/library/test.rst:578 +#: ../Doc/library/test.rst:582 msgid "" "Context manager to check that no :exc:`ResourceWarning` was raised. You " "must remove the object which may emit :exc:`ResourceWarning` before the end " "of the context manager." msgstr "" -#: ../Doc/library/test.rst:585 +#: ../Doc/library/test.rst:589 msgid "" "Set the values for :data:`max_memuse` and :data:`real_max_memuse` for big " "memory tests." msgstr "" -#: ../Doc/library/test.rst:591 +#: ../Doc/library/test.rst:595 msgid "" "Store the value from *stdout*. It is meant to hold the stdout at the time " "the regrtest began." msgstr "" -#: ../Doc/library/test.rst:597 +#: ../Doc/library/test.rst:601 msgid "" "Return the original stdout set by :func:`record_original_stdout` or ``sys." "stdout`` if it's not set." msgstr "" -#: ../Doc/library/test.rst:603 +#: ../Doc/library/test.rst:607 msgid "" "Strip the *stderr* of a Python process from potential debug output emitted " "by the interpreter. This will typically be run on the result of :meth:" "`subprocess.Popen.communicate`." msgstr "" -#: ../Doc/library/test.rst:610 +#: ../Doc/library/test.rst:614 msgid "" "Return a list of command line arguments reproducing the current settings in " "``sys.flags`` and ``sys.warnoptions``." msgstr "" -#: ../Doc/library/test.rst:616 +#: ../Doc/library/test.rst:620 msgid "" "Return a list of command line arguments reproducing the current optimization " "settings in ``sys.flags``." msgstr "" -#: ../Doc/library/test.rst:624 +#: ../Doc/library/test.rst:628 msgid "" "A context managers that temporarily replaces the named stream with :class:" "`io.StringIO` object." msgstr "" -#: ../Doc/library/test.rst:627 +#: ../Doc/library/test.rst:631 msgid "Example use with output streams::" msgstr "" -#: ../Doc/library/test.rst:635 +#: ../Doc/library/test.rst:639 msgid "Example use with input stream::" msgstr "" -#: ../Doc/library/test.rst:647 +#: ../Doc/library/test.rst:651 msgid "" "A context manager that creates a temporary directory at *path* and yields " "the directory." msgstr "" -#: ../Doc/library/test.rst:650 +#: ../Doc/library/test.rst:654 msgid "" "If *path* is ``None``, the temporary directory is created using :func:" "`tempfile.mkdtemp`. If *quiet* is ``False``, the context manager raises an " @@ -663,26 +667,26 @@ msgid "" "created, only a warning is issued." msgstr "" -#: ../Doc/library/test.rst:658 +#: ../Doc/library/test.rst:662 msgid "" "A context manager that temporarily changes the current working directory to " "*path* and yields the directory." msgstr "" -#: ../Doc/library/test.rst:661 +#: ../Doc/library/test.rst:665 msgid "" "If *quiet* is ``False``, the context manager raises an exception on error. " "Otherwise, it issues only a warning and keeps the current working directory " "the same." msgstr "" -#: ../Doc/library/test.rst:668 +#: ../Doc/library/test.rst:672 msgid "" "A context manager that temporarily creates a new directory and changes the " "current working directory (CWD)." msgstr "" -#: ../Doc/library/test.rst:671 +#: ../Doc/library/test.rst:675 msgid "" "The context manager creates a temporary directory in the current directory " "with name *name* before temporarily changing the current working directory. " @@ -690,28 +694,28 @@ msgid "" "`tempfile.mkdtemp`." msgstr "" -#: ../Doc/library/test.rst:676 +#: ../Doc/library/test.rst:680 msgid "" "If *quiet* is ``False`` and it is not possible to create or change the CWD, " "an error is raised. Otherwise, only a warning is raised and the original " "CWD is used." msgstr "" -#: ../Doc/library/test.rst:683 +#: ../Doc/library/test.rst:687 msgid "A context manager that temporarily sets the process umask." msgstr "" -#: ../Doc/library/test.rst:688 +#: ../Doc/library/test.rst:692 msgid "" "A context manager that raises :exc:`ResourceDenied` when various issues with " "the internet connection manifest themselves as exceptions." msgstr "" -#: ../Doc/library/test.rst:694 +#: ../Doc/library/test.rst:698 msgid "A context manager that replaces ``sys.stderr`` with ``sys.__stderr__``." msgstr "" -#: ../Doc/library/test.rst:699 +#: ../Doc/library/test.rst:703 msgid "" "Force as many objects as possible to be collected. This is needed because " "timely deallocation is not guaranteed by the garbage collector. This means " @@ -719,104 +723,104 @@ msgid "" "remain alive for longer than expected." msgstr "" -#: ../Doc/library/test.rst:707 +#: ../Doc/library/test.rst:711 msgid "" "A context manager that disables the garbage collector upon entry and " "reenables it upon exit." msgstr "" -#: ../Doc/library/test.rst:713 +#: ../Doc/library/test.rst:717 msgid "Context manager to swap out an attribute with a new object." msgstr "" -#: ../Doc/library/test.rst:715 ../Doc/library/test.rst:733 +#: ../Doc/library/test.rst:719 ../Doc/library/test.rst:737 msgid "Usage::" -msgstr "" +msgstr "Utilisation ::" -#: ../Doc/library/test.rst:720 +#: ../Doc/library/test.rst:724 msgid "" "This will set ``obj.attr`` to 5 for the duration of the ``with`` block, " "restoring the old value at the end of the block. If ``attr`` doesn't exist " "on ``obj``, it will be created and then deleted at the end of the block." msgstr "" -#: ../Doc/library/test.rst:725 ../Doc/library/test.rst:743 +#: ../Doc/library/test.rst:729 ../Doc/library/test.rst:747 msgid "" "The old value (or ``None`` if it doesn't exist) will be assigned to the " "target of the \"as\" clause, if there is one." msgstr "" -#: ../Doc/library/test.rst:731 +#: ../Doc/library/test.rst:735 msgid "Context manager to swap out an item with a new object." msgstr "" -#: ../Doc/library/test.rst:738 +#: ../Doc/library/test.rst:742 msgid "" "This will set ``obj[\"item\"]`` to 5 for the duration of the ``with`` block, " "restoring the old value at the end of the block. If ``item`` doesn't exist " "on ``obj``, it will be created and then deleted at the end of the block." msgstr "" -#: ../Doc/library/test.rst:749 +#: ../Doc/library/test.rst:753 msgid "" "Context manager to wait until all threads created in the ``with`` statement " "exit." msgstr "" -#: ../Doc/library/test.rst:755 +#: ../Doc/library/test.rst:759 msgid "" "Context manager to start *threads*. It attempts to join the threads upon " "exit." msgstr "" -#: ../Doc/library/test.rst:761 +#: ../Doc/library/test.rst:765 msgid "" "Return :func:`struct.calcsize` for ``nP{fmt}0n`` or, if ``gettotalrefcount`` " "exists, ``2PnP{fmt}0P``." msgstr "" -#: ../Doc/library/test.rst:767 +#: ../Doc/library/test.rst:771 msgid "" "Return :func:`struct.calcsize` for ``nPn{fmt}0n`` or, if " "``gettotalrefcount`` exists, ``2PnPn{fmt}0P``." msgstr "" -#: ../Doc/library/test.rst:773 +#: ../Doc/library/test.rst:777 msgid "" "For testcase *test*, assert that the ``sys.getsizeof`` for *o* plus the GC " "header size equals *size*." msgstr "" -#: ../Doc/library/test.rst:779 +#: ../Doc/library/test.rst:783 msgid "Return ``True`` if the OS supports symbolic links, ``False`` otherwise." msgstr "" -#: ../Doc/library/test.rst:785 +#: ../Doc/library/test.rst:789 msgid "Return ``True`` if the OS supports xattr, ``False`` otherwise." msgstr "" -#: ../Doc/library/test.rst:791 +#: ../Doc/library/test.rst:795 msgid "A decorator for running tests that require support for symbolic links." msgstr "" -#: ../Doc/library/test.rst:796 +#: ../Doc/library/test.rst:800 msgid "A decorator for running tests that require support for xattr." msgstr "" -#: ../Doc/library/test.rst:801 +#: ../Doc/library/test.rst:805 msgid "" "A decorator for running tests that require a functional bind() for Unix " "sockets." msgstr "" -#: ../Doc/library/test.rst:807 +#: ../Doc/library/test.rst:811 msgid "" "A decorator to conditionally mark tests with :func:`unittest." "expectedFailure`. Any use of this decorator should have an associated " "comment identifying the relevant tracker issue." msgstr "" -#: ../Doc/library/test.rst:814 +#: ../Doc/library/test.rst:818 msgid "" "A decorator for running a function in a different locale, correctly " "resetting it after it has finished. *catstr* is the locale category as a " @@ -824,73 +828,73 @@ msgid "" "sequentially, and the first valid locale will be used." msgstr "" -#: ../Doc/library/test.rst:822 +#: ../Doc/library/test.rst:826 msgid "" "A decorator for running a function in a specific timezone, correctly " "resetting it after it has finished." msgstr "" -#: ../Doc/library/test.rst:828 +#: ../Doc/library/test.rst:832 msgid "" "Decorator for the minimum version when running test on FreeBSD. If the " "FreeBSD version is less than the minimum, raise :exc:`unittest.SkipTest`." msgstr "" -#: ../Doc/library/test.rst:834 +#: ../Doc/library/test.rst:838 msgid "" "Decorator for the minimum version when running test on Linux. If the Linux " "version is less than the minimum, raise :exc:`unittest.SkipTest`." msgstr "" -#: ../Doc/library/test.rst:840 +#: ../Doc/library/test.rst:844 msgid "" "Decorator for the minimum version when running test on Mac OS X. If the MAC " "OS X version is less than the minimum, raise :exc:`unittest.SkipTest`." msgstr "" -#: ../Doc/library/test.rst:846 +#: ../Doc/library/test.rst:850 msgid "Decorator for skipping tests on non-IEEE 754 platforms." msgstr "" -#: ../Doc/library/test.rst:851 +#: ../Doc/library/test.rst:855 msgid "Decorator for skipping tests if :mod:`zlib` doesn't exist." msgstr "" -#: ../Doc/library/test.rst:856 +#: ../Doc/library/test.rst:860 msgid "Decorator for skipping tests if :mod:`gzip` doesn't exist." msgstr "" -#: ../Doc/library/test.rst:861 +#: ../Doc/library/test.rst:865 msgid "Decorator for skipping tests if :mod:`bz2` doesn't exist." msgstr "" -#: ../Doc/library/test.rst:866 +#: ../Doc/library/test.rst:870 msgid "Decorator for skipping tests if :mod:`lzma` doesn't exist." msgstr "" -#: ../Doc/library/test.rst:871 +#: ../Doc/library/test.rst:875 msgid "Decorator for skipping tests if *resource* is not available." msgstr "" -#: ../Doc/library/test.rst:876 +#: ../Doc/library/test.rst:880 msgid "Decorator for only running the test if :data:`HAVE_DOCSTRINGS`." msgstr "" -#: ../Doc/library/test.rst:881 +#: ../Doc/library/test.rst:885 msgid "Decorator for tests only applicable to CPython." msgstr "" -#: ../Doc/library/test.rst:886 +#: ../Doc/library/test.rst:890 msgid "" "Decorator for invoking :func:`check_impl_detail` on *guards*. If that " "returns ``False``, then uses *msg* as the reason for skipping the test." msgstr "" -#: ../Doc/library/test.rst:892 +#: ../Doc/library/test.rst:896 msgid "Decorator to temporarily turn off tracing for the duration of the test." msgstr "" -#: ../Doc/library/test.rst:897 +#: ../Doc/library/test.rst:901 msgid "" "Decorator for tests which involve reference counting. The decorator does " "not run the test if it is not run by CPython. Any trace function is unset " @@ -898,15 +902,15 @@ msgid "" "trace function." msgstr "" -#: ../Doc/library/test.rst:905 +#: ../Doc/library/test.rst:909 msgid "Decorator to ensure the threads are cleaned up even if the test fails." msgstr "" -#: ../Doc/library/test.rst:910 +#: ../Doc/library/test.rst:914 msgid "Decorator for bigmem tests." msgstr "" -#: ../Doc/library/test.rst:912 +#: ../Doc/library/test.rst:916 msgid "" "*size* is a requested size for the test (in arbitrary, test-interpreted " "units.) *memuse* is the number of bytes per unit for the test, or a good " @@ -914,7 +918,7 @@ msgid "" "each, could be decorated with ``@bigmemtest(size=_4G, memuse=2)``." msgstr "" -#: ../Doc/library/test.rst:917 +#: ../Doc/library/test.rst:921 msgid "" "The *size* argument is normally passed to the decorated test method as an " "extra argument. If *dry_run* is ``True``, the value passed to the test " @@ -922,19 +926,19 @@ msgid "" "means the test doesn't support dummy runs when ``-M`` is not specified." msgstr "" -#: ../Doc/library/test.rst:925 +#: ../Doc/library/test.rst:929 msgid "" "Decorator for tests that fill the address space. *f* is the function to " "wrap." msgstr "" -#: ../Doc/library/test.rst:931 +#: ../Doc/library/test.rst:935 msgid "" "Create an invalid file descriptor by opening and closing a temporary file, " "and returning its descriptor." msgstr "" -#: ../Doc/library/test.rst:937 +#: ../Doc/library/test.rst:941 msgid "" "Test for syntax errors in *statement* by attempting to compile *statement*. " "*testcase* is the :mod:`unittest` instance for the test. *errtext* is the " @@ -943,18 +947,18 @@ msgid "" "compares to the offset of the :exc:`SyntaxError`." msgstr "" -#: ../Doc/library/test.rst:946 +#: ../Doc/library/test.rst:950 msgid "Open *url*. If open fails, raises :exc:`TestFailed`." msgstr "" -#: ../Doc/library/test.rst:951 +#: ../Doc/library/test.rst:955 msgid "" "This function imports and returns the named module. Unlike a normal import, " "this function raises :exc:`unittest.SkipTest` if the module cannot be " "imported." msgstr "" -#: ../Doc/library/test.rst:955 +#: ../Doc/library/test.rst:959 msgid "" "Module and package deprecation messages are suppressed during this import if " "*deprecated* is ``True``. If a module is required on a platform but " @@ -962,7 +966,7 @@ msgid "" "which will be compared against :data:`sys.platform`." msgstr "" -#: ../Doc/library/test.rst:965 +#: ../Doc/library/test.rst:969 msgid "" "This function imports and returns a fresh copy of the named Python module by " "removing the named module from ``sys.modules`` before doing the import. Note " @@ -970,82 +974,82 @@ msgid "" "operation." msgstr "" -#: ../Doc/library/test.rst:970 +#: ../Doc/library/test.rst:974 msgid "" "*fresh* is an iterable of additional module names that are also removed from " "the ``sys.modules`` cache before doing the import." msgstr "" -#: ../Doc/library/test.rst:973 +#: ../Doc/library/test.rst:977 msgid "" "*blocked* is an iterable of module names that are replaced with ``None`` in " "the module cache during the import to ensure that attempts to import them " "raise :exc:`ImportError`." msgstr "" -#: ../Doc/library/test.rst:977 +#: ../Doc/library/test.rst:981 msgid "" "The named module and any modules named in the *fresh* and *blocked* " "parameters are saved before starting the import and then reinserted into " "``sys.modules`` when the fresh import is complete." msgstr "" -#: ../Doc/library/test.rst:981 +#: ../Doc/library/test.rst:985 msgid "" "Module and package deprecation messages are suppressed during this import if " "*deprecated* is ``True``." msgstr "" -#: ../Doc/library/test.rst:984 +#: ../Doc/library/test.rst:988 msgid "" "This function will raise :exc:`ImportError` if the named module cannot be " "imported." msgstr "" -#: ../Doc/library/test.rst:987 ../Doc/library/test.rst:1167 +#: ../Doc/library/test.rst:991 ../Doc/library/test.rst:1171 msgid "Example use::" msgstr "" -#: ../Doc/library/test.rst:1001 +#: ../Doc/library/test.rst:1005 msgid "Return a copy of :data:`sys.modules`." msgstr "" -#: ../Doc/library/test.rst:1006 +#: ../Doc/library/test.rst:1010 msgid "" "Remove modules except for *oldmodules* and ``encodings`` in order to " "preserve internal cache." msgstr "" -#: ../Doc/library/test.rst:1012 +#: ../Doc/library/test.rst:1016 msgid "Return current thread count and copy of dangling threads." msgstr "" -#: ../Doc/library/test.rst:1017 +#: ../Doc/library/test.rst:1021 msgid "" "Cleanup up threads not specified in *original_values*. Designed to emit a " "warning if a test leaves running threads in the background." msgstr "" -#: ../Doc/library/test.rst:1023 +#: ../Doc/library/test.rst:1027 msgid "" "Join a *thread* within *timeout*. Raise an :exc:`AssertionError` if thread " "is still alive after *timeout* seconds." msgstr "" -#: ../Doc/library/test.rst:1029 +#: ../Doc/library/test.rst:1033 msgid "" "Use this at the end of ``test_main`` whenever sub-processes are started. " "This will help ensure that no extra children (zombies) stick around to hog " "resources and create problems when looking for refleaks." msgstr "" -#: ../Doc/library/test.rst:1036 +#: ../Doc/library/test.rst:1040 msgid "" "Get an attribute, raising :exc:`unittest.SkipTest` if :exc:`AttributeError` " "is raised." msgstr "" -#: ../Doc/library/test.rst:1042 +#: ../Doc/library/test.rst:1046 msgid "" "Bind the socket to a free port and return the port number. Relies on " "ephemeral ports in order to ensure we are using an unbound port. This is " @@ -1058,7 +1062,7 @@ msgid "" "testing multicasting via multiple UDP sockets." msgstr "" -#: ../Doc/library/test.rst:1053 +#: ../Doc/library/test.rst:1057 msgid "" "Additionally, if the :const:`~socket.SO_EXCLUSIVEADDRUSE` socket option is " "available (i.e. on Windows), it will be set on the socket. This will " @@ -1066,13 +1070,13 @@ msgid "" "test." msgstr "" -#: ../Doc/library/test.rst:1061 +#: ../Doc/library/test.rst:1065 msgid "" "Bind a unix socket, raising :exc:`unittest.SkipTest` if :exc:" "`PermissionError` is raised." msgstr "" -#: ../Doc/library/test.rst:1067 +#: ../Doc/library/test.rst:1071 msgid "" "Returns an unused port that should be suitable for binding. This is " "achieved by creating a temporary socket with the same family and type as the " @@ -1083,7 +1087,7 @@ msgid "" "port is returned." msgstr "" -#: ../Doc/library/test.rst:1076 +#: ../Doc/library/test.rst:1080 msgid "" "Either this method or :func:`bind_port` should be used for any tests where a " "server socket needs to be bound to a particular port for the duration of the " @@ -1096,7 +1100,7 @@ msgid "" "simultaneously, which is a problem for buildbots." msgstr "" -#: ../Doc/library/test.rst:1090 +#: ../Doc/library/test.rst:1094 msgid "" "Generic implementation of the :mod:`unittest` ``load_tests`` protocol for " "use in test packages. *pkg_dir* is the root directory of the package; " @@ -1105,59 +1109,59 @@ msgid "" "the following::" msgstr "" -#: ../Doc/library/test.rst:1105 +#: ../Doc/library/test.rst:1109 msgid "Return ``True`` if the file system for *directory* is case-insensitive." msgstr "" -#: ../Doc/library/test.rst:1110 +#: ../Doc/library/test.rst:1114 msgid "" "Returns the set of attributes, functions or methods of *ref_api* not found " "on *other_api*, except for a defined list of items to be ignored in this " "check specified in *ignore*." msgstr "" -#: ../Doc/library/test.rst:1114 +#: ../Doc/library/test.rst:1118 msgid "" "By default this skips private attributes beginning with '_' but includes all " "magic methods, i.e. those starting and ending in '__'." msgstr "" -#: ../Doc/library/test.rst:1122 +#: ../Doc/library/test.rst:1126 msgid "" "Override *object_to_patch.attr_name* with *new_value*. Also add cleanup " "procedure to *test_instance* to restore *object_to_patch* for *attr_name*. " "The *attr_name* should be a valid attribute for *object_to_patch*." msgstr "" -#: ../Doc/library/test.rst:1130 +#: ../Doc/library/test.rst:1134 msgid "" "Run *code* in subinterpreter. Raise :exc:`unittest.SkipTest` if :mod:" "`tracemalloc` is enabled." msgstr "" -#: ../Doc/library/test.rst:1136 +#: ../Doc/library/test.rst:1140 msgid "Assert that *iter* is deallocated after iterating." msgstr "" -#: ../Doc/library/test.rst:1141 +#: ../Doc/library/test.rst:1145 msgid "" "Check for the existence of the compiler executables whose names are listed " "in *cmd_names* or all the compiler executables when *cmd_names* is empty and " "return the first missing executable or ``None`` when none is found missing." msgstr "" -#: ../Doc/library/test.rst:1149 +#: ../Doc/library/test.rst:1153 msgid "" "Assert that the ``__all__`` variable of *module* contains all public names." msgstr "" -#: ../Doc/library/test.rst:1151 +#: ../Doc/library/test.rst:1155 msgid "" "The module's public names (its API) are detected automatically based on " "whether they match the public name convention and were defined in *module*." msgstr "" -#: ../Doc/library/test.rst:1155 +#: ../Doc/library/test.rst:1159 msgid "" "The *name_of_module* argument can specify (as a string or tuple thereof) " "what module(s) an API could be defined in order to be detected as a public " @@ -1165,7 +1169,7 @@ msgid "" "other modules, possibly a C backend (like ``csv`` and its ``_csv``)." msgstr "" -#: ../Doc/library/test.rst:1160 +#: ../Doc/library/test.rst:1164 msgid "" "The *extra* argument can be a set of names that wouldn't otherwise be " "automatically detected as \"public\", like objects without a proper " @@ -1173,17 +1177,17 @@ msgid "" "detected ones." msgstr "" -#: ../Doc/library/test.rst:1164 +#: ../Doc/library/test.rst:1168 msgid "" "The *blacklist* argument can be a set of names that must not be treated as " "part of the public API even though their names indicate otherwise." msgstr "" -#: ../Doc/library/test.rst:1189 +#: ../Doc/library/test.rst:1193 msgid "The :mod:`test.support` module defines the following classes:" msgstr "" -#: ../Doc/library/test.rst:1193 +#: ../Doc/library/test.rst:1197 msgid "" "Instances are a context manager that raises :exc:`ResourceDenied` if the " "specified exception type is raised. Any keyword arguments are treated as " @@ -1192,7 +1196,7 @@ msgid "" "attributes on the exception is :exc:`ResourceDenied` raised." msgstr "" -#: ../Doc/library/test.rst:1202 +#: ../Doc/library/test.rst:1206 msgid "" "Class used to temporarily set or unset environment variables. Instances can " "be used as a context manager and have a complete dictionary interface for " @@ -1201,135 +1205,135 @@ msgid "" "instance will be rolled back." msgstr "" -#: ../Doc/library/test.rst:1208 +#: ../Doc/library/test.rst:1212 msgid "Added dictionary interface." msgstr "" -#: ../Doc/library/test.rst:1213 +#: ../Doc/library/test.rst:1217 msgid "" "Temporarily set the environment variable ``envvar`` to the value of " "``value``." msgstr "" -#: ../Doc/library/test.rst:1219 +#: ../Doc/library/test.rst:1223 msgid "Temporarily unset the environment variable ``envvar``." msgstr "" -#: ../Doc/library/test.rst:1224 +#: ../Doc/library/test.rst:1228 msgid "" "A context manager used to try to prevent crash dialog popups on tests that " "are expected to crash a subprocess." msgstr "" -#: ../Doc/library/test.rst:1227 +#: ../Doc/library/test.rst:1231 msgid "" "On Windows, it disables Windows Error Reporting dialogs using `SetErrorMode " "`_." msgstr "" -#: ../Doc/library/test.rst:1230 +#: ../Doc/library/test.rst:1234 msgid "" "On UNIX, :func:`resource.setrlimit` is used to set :attr:`resource." "RLIMIT_CORE`'s soft limit to 0 to prevent coredump file creation." msgstr "" -#: ../Doc/library/test.rst:1234 +#: ../Doc/library/test.rst:1238 msgid "On both platforms, the old value is restored by :meth:`__exit__`." msgstr "" -#: ../Doc/library/test.rst:1239 +#: ../Doc/library/test.rst:1243 msgid "" "A context manager to force import to return a new module reference. This is " "useful for testing module-level behaviors, such as the emission of a " "DeprecationWarning on import. Example usage::" msgstr "" -#: ../Doc/library/test.rst:1249 +#: ../Doc/library/test.rst:1253 msgid "A context manager to temporarily add directories to sys.path." msgstr "" -#: ../Doc/library/test.rst:1251 +#: ../Doc/library/test.rst:1255 msgid "" "This makes a copy of :data:`sys.path`, appends any directories given as " "positional arguments, then reverts :data:`sys.path` to the copied settings " "when the context ends." msgstr "" -#: ../Doc/library/test.rst:1255 +#: ../Doc/library/test.rst:1259 msgid "" "Note that *all* :data:`sys.path` modifications in the body of the context " "manager, including replacement of the object, will be reverted at the end of " "the block." msgstr "" -#: ../Doc/library/test.rst:1262 +#: ../Doc/library/test.rst:1266 msgid "" "Class to save and restore signal handlers registered by the Python signal " "handler." msgstr "" -#: ../Doc/library/test.rst:1270 +#: ../Doc/library/test.rst:1274 msgid "Try to match a single dict with the supplied arguments." msgstr "" -#: ../Doc/library/test.rst:1275 +#: ../Doc/library/test.rst:1279 msgid "Try to match a single stored value (*dv*) with a supplied value (*v*)." msgstr "" -#: ../Doc/library/test.rst:1280 +#: ../Doc/library/test.rst:1284 msgid "" "Class used to record warnings for unit tests. See documentation of :func:" "`check_warnings` above for more details." msgstr "" -#: ../Doc/library/test.rst:1288 +#: ../Doc/library/test.rst:1292 msgid "Run *test* and return the result." msgstr "" -#: ../Doc/library/test.rst:1293 +#: ../Doc/library/test.rst:1297 msgid "Class for logging support." msgstr "" -#: ../Doc/library/test.rst:1298 +#: ../Doc/library/test.rst:1302 msgid "" "Simple :term:`path-like object`. It implements the :meth:`__fspath__` " "method which just returns the *path* argument. If *path* is an exception, " "it will be raised in :meth:`!__fspath__`." msgstr "" -#: ../Doc/library/test.rst:1304 +#: ../Doc/library/test.rst:1308 msgid "" ":mod:`test.support.script_helper` --- Utilities for the Python execution " "tests" msgstr "" -#: ../Doc/library/test.rst:1310 +#: ../Doc/library/test.rst:1314 msgid "" "The :mod:`test.support.script_helper` module provides support for Python's " "script execution tests." msgstr "" -#: ../Doc/library/test.rst:1315 +#: ../Doc/library/test.rst:1319 msgid "" "Return ``True`` if ``sys.executable interpreter`` requires environment " "variables in order to be able to run at all." msgstr "" -#: ../Doc/library/test.rst:1318 +#: ../Doc/library/test.rst:1322 msgid "" "This is designed to be used with ``@unittest.skipIf()`` to annotate tests " "that need to use an ``assert_python*()`` function to launch an isolated mode " "(``-I``) or no environment mode (``-E``) sub-interpreter process." msgstr "" -#: ../Doc/library/test.rst:1322 +#: ../Doc/library/test.rst:1326 msgid "" "A normal build & test does not run into this situation but it can happen " "when trying to run the standard library test suite from an interpreter that " "doesn't have an obvious home with Python's current home finding logic." msgstr "" -#: ../Doc/library/test.rst:1326 +#: ../Doc/library/test.rst:1330 msgid "" "Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run " "in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONUSERSITE` are " @@ -1337,80 +1341,80 @@ msgid "" "interpreter can start." msgstr "" -#: ../Doc/library/test.rst:1334 +#: ../Doc/library/test.rst:1338 msgid "" "Set up the environment based on *env_vars* for running the interpreter in a " "subprocess. The values can include ``__isolated``, ``__cleanenv``, " "``__cwd``, and ``TERM``." msgstr "" -#: ../Doc/library/test.rst:1341 +#: ../Doc/library/test.rst:1345 msgid "" "Assert that running the interpreter with *args* and optional environment " "variables *env_vars* succeeds (``rc == 0``) and return a ``(return code, " "stdout, stderr)`` tuple." msgstr "" -#: ../Doc/library/test.rst:1345 +#: ../Doc/library/test.rst:1349 msgid "" "If the ``__cleanenv`` keyword is set, *env_vars* is used as a fresh " "environment." msgstr "" -#: ../Doc/library/test.rst:1348 +#: ../Doc/library/test.rst:1352 msgid "" "Python is started in isolated mode (command line option ``-I``), except if " "the ``__isolated`` keyword is set to ``False``." msgstr "" -#: ../Doc/library/test.rst:1354 +#: ../Doc/library/test.rst:1358 msgid "" "Assert that running the interpreter with *args* and optional environment " "variables *env_vars* fails (``rc != 0``) and return a ``(return code, " "stdout, stderr)`` tuple." msgstr "" -#: ../Doc/library/test.rst:1358 +#: ../Doc/library/test.rst:1362 msgid "See :func:`assert_python_ok` for more options." msgstr "" -#: ../Doc/library/test.rst:1363 +#: ../Doc/library/test.rst:1367 msgid "Run a Python subprocess with the given arguments." msgstr "" -#: ../Doc/library/test.rst:1365 +#: ../Doc/library/test.rst:1369 msgid "" "*kw* is extra keyword args to pass to :func:`subprocess.Popen`. Returns a :" "class:`subprocess.Popen` object." msgstr "" -#: ../Doc/library/test.rst:1371 +#: ../Doc/library/test.rst:1375 msgid "" "Run the given :class:`subprocess.Popen` process until completion and return " "stdout." msgstr "" -#: ../Doc/library/test.rst:1377 +#: ../Doc/library/test.rst:1381 msgid "" "Create script containing *source* in path *script_dir* and " "*script_basename*. If *omit_suffix* is ``False``, append ``.py`` to the " "name. Return the full script path." msgstr "" -#: ../Doc/library/test.rst:1384 +#: ../Doc/library/test.rst:1388 msgid "" "Create zip file at *zip_dir* and *zip_basename* with extension ``zip`` which " "contains the files in *script_name*. *name_in_zip* is the archive name. " "Return a tuple containing ``(full path, full path of archive name)``." msgstr "" -#: ../Doc/library/test.rst:1391 +#: ../Doc/library/test.rst:1395 msgid "" "Create a directory named *pkg_dir* containing an ``__init__`` file with " "*init_source* as its contents." msgstr "" -#: ../Doc/library/test.rst:1398 +#: ../Doc/library/test.rst:1402 msgid "" "Create a zip package directory with a path of *zip_dir* and *zip_basename* " "containing an empty ``__init__`` file and a file *script_basename* " diff --git a/library/textwrap.po b/library/textwrap.po index 723050a9a..ba0015ef4 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-04-12 15:04+0200\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.0.6\n" #: ../Doc/library/textwrap.rst:2 msgid ":mod:`textwrap` --- Text wrapping and filling" -msgstr "" +msgstr ":mod:`textwrap` --- Encapsulation et remplissage de texte" #: ../Doc/library/textwrap.rst:10 msgid "**Source code:** :source:`Lib/textwrap.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/textwrap.py`" #: ../Doc/library/textwrap.rst:14 msgid "" @@ -30,6 +31,11 @@ msgid "" "should be good enough; otherwise, you should use an instance of :class:" "`TextWrapper` for efficiency." msgstr "" +"Le module :mod:`textwrap` fournit quelques fonctions pratiques, comme :class:" +"`TextWrapper`, la classe qui fait tout le travail. Si vous ne faites que " +"formater ou ajuster une ou deux chaînes de texte, les fonctions de commodité " +"devraient être assez bonnes ; sinon, nous vous conseillons d'utiliser une " +"instance de :class:`TextWrapper` pour une meilleure efficacité." #: ../Doc/library/textwrap.rst:22 msgid "" @@ -37,34 +43,48 @@ msgid "" "*width* characters long. Returns a list of output lines, without final " "newlines." msgstr "" +"Reformate le paragraphe simple dans *text* (une chaîne de caractères) de " +"sorte que chaque ligne ait au maximum *largeur* caractères. Renvoie une " +"liste de lignes de sortie, sans ligne vide ou caractère de fin de ligne à la " +"fin." #: ../Doc/library/textwrap.rst:26 msgid "" "Optional keyword arguments correspond to the instance attributes of :class:" "`TextWrapper`, documented below. *width* defaults to ``70``." msgstr "" +"Les arguments par mot-clé optionnels correspondent aux attributs d'instance " +"de :class:`TextWrapper`, documentés ci-dessous. *width* vaut ``70`` par " +"défaut." #: ../Doc/library/textwrap.rst:29 msgid "" "See the :meth:`TextWrapper.wrap` method for additional details on how :func:" "`wrap` behaves." msgstr "" +"Consultez la méthode :meth:`TextWrapper.wrap` pour plus de détails sur le " +"comportement de :func:`wrap`." #: ../Doc/library/textwrap.rst:35 msgid "" "Wraps the single paragraph in *text*, and returns a single string containing " "the wrapped paragraph. :func:`fill` is shorthand for ::" msgstr "" +"Formate le paragraphe unique dans *text* et renvoie une seule chaîne dont le " +"contenu est le paragraphe formaté. :func:`fill` est un raccourci pour ::" #: ../Doc/library/textwrap.rst:40 msgid "" "In particular, :func:`fill` accepts exactly the same keyword arguments as :" "func:`wrap`." msgstr "" +"En particulier, :func:`fill` accepte exactement les mêmes arguments par mot-" +"clé que :func:`wrap`." #: ../Doc/library/textwrap.rst:46 msgid "Collapse and truncate the given *text* to fit in the given *width*." msgstr "" +"Réduit et tronque le *text* donné pour l'adapter à la *largeur* donnée." #: ../Doc/library/textwrap.rst:48 msgid "" @@ -73,6 +93,11 @@ msgid "" "Otherwise, enough words are dropped from the end so that the remaining words " "plus the :attr:`placeholder` fit within :attr:`width`::" msgstr "" +"Tout d'abord, les espaces dans *text* sont réduites (toutes les espaces " +"blancs sont remplacées par des espaces simples). Si le résultat tient dans " +"la *width*, il est renvoyé. Sinon, suffisamment de mots sont supprimés en " +"fin de chaîne de manière à ce que les mots restants plus le :attr:" +"`placeholder` tiennent dans :attr:`width` ::" #: ../Doc/library/textwrap.rst:60 msgid "" @@ -82,16 +107,25 @@ msgid "" "so changing the value of :attr:`.tabsize`, :attr:`.expand_tabs`, :attr:`." "drop_whitespace`, and :attr:`.replace_whitespace` will have no effect." msgstr "" +"Les arguments par mot-clé optionnels correspondent aux attributs d'instance " +"de :class:`TextWrapper`, documentés ci-dessous. Notez que l'espace blanc " +"est réduit avant que le texte ne soit passé à la fonction :meth:`fill` de :" +"class:`TextWrapper`, donc changer la valeur de :attr:`.tabsize`, :attr:`." +"expand_tabs`, :attr:`.drop_whitespace`, et :attr:`.replace_whitespace` est " +"sans effet." #: ../Doc/library/textwrap.rst:71 msgid "Remove any common leading whitespace from every line in *text*." -msgstr "" +msgstr "Supprime toutes les espaces en de tête de chaque ligne dans *text*." #: ../Doc/library/textwrap.rst:73 msgid "" "This can be used to make triple-quoted strings line up with the left edge of " "the display, while still presenting them in the source code in indented form." msgstr "" +"Ceci peut être utilisé pour aligner les chaînes à trois guillemets avec le " +"bord gauche de l'affichage, tout en les présentant sous forme indentée dans " +"le code source." #: ../Doc/library/textwrap.rst:76 msgid "" @@ -99,6 +133,9 @@ msgid "" "equal: the lines ``\" hello\"`` and ``\"\\thello\"`` are considered to have " "no common leading whitespace." msgstr "" +"Notez que les tabulations et les espaces sont traitées comme des espaces, " +"mais qu'elles ne sont pas égales : les lignes ``\" hello\"`` et ``\"\\thello" +"\"`` sont considérées comme n'ayant pas d'espaces de tête communes." #: ../Doc/library/textwrap.rst:80 ../Doc/library/textwrap.rst:101 msgid "For example::" @@ -106,17 +143,19 @@ msgstr "Par exemple ::" #: ../Doc/library/textwrap.rst:94 msgid "Add *prefix* to the beginning of selected lines in *text*." -msgstr "" +msgstr "Ajoute *prefix* au début des lignes sélectionnées dans *text*." #: ../Doc/library/textwrap.rst:96 msgid "Lines are separated by calling ``text.splitlines(True)``." -msgstr "" +msgstr "Les lignes sont séparées en appelant ``text.splitlines(True)``." #: ../Doc/library/textwrap.rst:98 msgid "" "By default, *prefix* is added to all lines that do not consist solely of " "whitespace (including any line endings)." msgstr "" +"Par défaut, *prefix* est ajouté à toutes les lignes qui ne sont pas " +"constituées uniquement d'espaces (y compris les fins de ligne)." #: ../Doc/library/textwrap.rst:107 msgid "" @@ -124,6 +163,9 @@ msgid "" "indented. For example, it is easy to add *prefix* to even empty and " "whitespace-only lines::" msgstr "" +"L'argument optionnel *predicate* peut être utilisé pour contrôler quelles " +"lignes sont en retrait. Par exemple, il est facile d'ajouter *prefix* aux " +"lignes vides et aux lignes blanches seulement ::" #: ../Doc/library/textwrap.rst:120 msgid "" @@ -133,6 +175,12 @@ msgid "" "`wrap` and/or :func:`fill`, it may be more efficient to create your own :" "class:`TextWrapper` object." msgstr "" +":func:`wrap`, :func:`fill` et :func:`shorten` travaillent en créant une " +"instance :class:`TextWrapper` et en appelant une méthode unique sur celle-" +"ci. Cette instance n'est pas réutilisée, donc pour les applications qui " +"traitent plusieurs chaînes de texte en utilisant :func:`wrap` et/ou :func:" +"`fill`, il peut être plus efficace de créer votre propre objet :class:" +"`TextWrapper`." #: ../Doc/library/textwrap.rst:126 msgid "" @@ -140,6 +188,10 @@ msgid "" "hyphenated words; only then will long words be broken if necessary, unless :" "attr:`TextWrapper.break_long_words` is set to false." msgstr "" +"Le formatage du texte s'effectue en priorité sur les espaces puis juste " +"après les traits d'union dans des mots séparés par des traits d'union ; ce " +"n'est qu'alors que les mots longs seront cassés si nécessaire, à moins que :" +"attr:`TextWrapper.break_long_words` soit défini sur *False*." #: ../Doc/library/textwrap.rst:132 msgid "" @@ -147,10 +199,13 @@ msgid "" "arguments. Each keyword argument corresponds to an instance attribute, so " "for example ::" msgstr "" +"Le constructeur :class:`TextWrapper` accepte un certain nombre d'arguments " +"par mots-clés optionnels. Chaque argument par mot-clé correspond à un " +"attribut d'instance, donc par exemple ::" #: ../Doc/library/textwrap.rst:138 msgid "is the same as ::" -msgstr "" +msgstr "est identique à ::" #: ../Doc/library/textwrap.rst:143 msgid "" @@ -158,12 +213,17 @@ msgid "" "change any of its options through direct assignment to instance attributes " "between uses." msgstr "" +"Vous pouvez réutiliser le même objet :class:`TextWrapper` plusieurs fois et " +"vous pouvez changer n'importe laquelle de ses options par assignation " +"directe aux attributs d'instance entre les utilisations." #: ../Doc/library/textwrap.rst:147 msgid "" "The :class:`TextWrapper` instance attributes (and keyword arguments to the " "constructor) are as follows:" msgstr "" +"Les attributs d'instance de la classe :class:`TextWrapper` (et les arguments " +"par mot-clé au constructeur) sont les suivants :" #: ../Doc/library/textwrap.rst:153 msgid "" @@ -172,12 +232,19 @@ msgid "" "`TextWrapper` guarantees that no output line will be longer than :attr:" "`width` characters." msgstr "" +"(par défaut : ``70```) Longueur maximale des lignes reformatées. Tant qu'il " +"n'y a pas de mots individuels dans le texte d'entrée plus longs que :attr:" +"`width`, :class:`TextWrapper` garantit qu'aucune ligne de sortie n'est plus " +"longue que :attr:`width` caractères." #: ../Doc/library/textwrap.rst:161 msgid "" "(default: ``True``) If true, then all tab characters in *text* will be " "expanded to spaces using the :meth:`expandtabs` method of *text*." msgstr "" +"(par défaut : ``True``) Si `true`, alors tous les caractères de tabulation " +"dans *text* sont transformés en espaces en utilisant la méthode :meth:" +"`expandtabs` de *text*." #: ../Doc/library/textwrap.rst:167 msgid "" @@ -185,6 +252,9 @@ msgid "" "*text* will be expanded to zero or more spaces, depending on the current " "column and the given tab size." msgstr "" +"(par défaut : ``8``) Si :attr:`expand_tabs` est `true`, alors tous les " +"caractères de tabulation dans *text* sont transformés en zéro ou plus " +"d'espaces, selon la colonne courante et la taille de tabulation donnée." #: ../Doc/library/textwrap.rst:176 msgid "" @@ -193,6 +263,11 @@ msgid "" "space. The whitespace characters replaced are as follows: tab, newline, " "vertical tab, formfeed, and carriage return (``'\\t\\n\\v\\f\\r'``)." msgstr "" +"(par défaut : ``True``) Si `true`, après l'expansion des tabulations mais " +"avant le formatage, la méthode :meth:`wrap` remplace chaque *blanc* par une " +"espace unique. Les *blancs* remplacés sont les suivants : tabulation, " +"nouvelle ligne, tabulation verticale, saut de page et retour chariot (``'\\t" +"\\n\\v\\f\\r'``)." #: ../Doc/library/textwrap.rst:184 msgid "" @@ -200,6 +275,9 @@ msgid "" "tab character will be replaced by a single space, which is *not* the same as " "tab expansion." msgstr "" +"Si :attr:`expand_tabs` est *False* et :attr:`replace_whitespace` est vrai, " +"chaque caractère de tabulation est remplacé par une espace unique, ce qui " +"*n'est pas* la même chose que l'extension des tabulations." #: ../Doc/library/textwrap.rst:190 msgid "" @@ -208,6 +286,10 @@ msgid "" "paragraphs (using :meth:`str.splitlines` or similar) which are wrapped " "separately." msgstr "" +"Si :attr:`replace_whitespace` est faux, de nouvelles lignes peuvent " +"apparaître au milieu d'une ligne et provoquer une sortie étrange. Pour cette " +"raison, le texte doit être divisé en paragraphes (en utilisant :meth:`str." +"splitlines` ou similaire) qui sont formatés séparément." #: ../Doc/library/textwrap.rst:198 msgid "" @@ -217,6 +299,11 @@ msgid "" "follows it. If whitespace being dropped takes up an entire line, the whole " "line is dropped." msgstr "" +"(par défaut : ``True``) Si *True*, l'espace au début et à la fin de chaque " +"ligne (après le formatage mais avant l'indentation) est supprimée. L'espace " +"au début du paragraphe n'est cependant pas supprimée si elle n'est pas " +"suivie par une espace. Si les espaces en cours de suppression occupent une " +"ligne entière, la ligne entière est supprimée." #: ../Doc/library/textwrap.rst:207 msgid "" @@ -224,6 +311,9 @@ msgid "" "output. Counts towards the length of the first line. The empty string is " "not indented." msgstr "" +"(par défaut : ```''```) Chaîne qui est ajoutée à la première ligne de la " +"sortie formatée. Elle compte pour le calcul de la longueur de la première " +"ligne. La chaîne vide n'est pas indentée." #: ../Doc/library/textwrap.rst:214 msgid "" @@ -231,6 +321,9 @@ msgid "" "output except the first. Counts towards the length of each line except the " "first." msgstr "" +"(par défaut : ```''```) Chaîne qui préfixe toutes les lignes de la sortie " +"formatée sauf la première. Elle compte pour le calcul de la longueur de " +"chaque ligne à l'exception de la première." #: ../Doc/library/textwrap.rst:221 msgid "" @@ -243,14 +336,23 @@ msgid "" "followed by a space. One problem with this is algorithm is that it is " "unable to detect the difference between \"Dr.\" in ::" msgstr "" +"(par défaut : ``Faux``) Si `true`, :class:`TextWrapper` tente de détecter " +"les fins de phrases et de s'assurer que les phrases sont toujours séparées " +"par exactement deux espaces. Ceci est généralement souhaité pour un texte " +"en police à chasse fixe. Cependant, l'algorithme de détection de phrase est " +"imparfait : il suppose qu'une fin de phrase consiste en une lettre minuscule " +"suivie de l'une des lettres suivantes : ``'.'``, ``'!'``, ou ``'?'``, " +"éventuellement suivie d'une des lettres ``'\"'`` ou ``\"'\"``, suivie par " +"une espace. Un problème avec cet algorithme est qu'il est incapable de " +"détecter la différence entre \"Dr\" dans ::" #: ../Doc/library/textwrap.rst:232 msgid "and \"Spot.\" in ::" -msgstr "" +msgstr "et \"Spot.\" dans ::" #: ../Doc/library/textwrap.rst:236 msgid ":attr:`fix_sentence_endings` is false by default." -msgstr "" +msgstr ":attr:`fix_sentence_endings` est *False* par défaut." #: ../Doc/library/textwrap.rst:238 msgid "" @@ -259,6 +361,11 @@ msgid "" "after a period to separate sentences on the same line, it is specific to " "English-language texts." msgstr "" +"Étant donné que l'algorithme de détection de phrases repose sur ``string." +"lowercase`` pour la définition de \"lettres minuscules\" et sur une " +"convention consistant à utiliser deux espaces après un point pour séparer " +"les phrases sur la même ligne, ceci est spécifique aux textes de langue " +"anglaise." #: ../Doc/library/textwrap.rst:246 msgid "" @@ -268,6 +375,12 @@ msgid "" "than :attr:`width`. (Long words will be put on a line by themselves, in " "order to minimize the amount by which :attr:`width` is exceeded.)" msgstr "" +"(par défaut : ``True``) Si *True*, alors les mots plus longs que :attr:" +"`width` sont cassés afin de s'assurer qu'aucune ligne ne soit plus longue " +"que :attr:`width`. Si c'est *False*, les mots longs ne sont pas cassés et " +"certaines lignes peuvent être plus longues que :attr:`width` (les mots longs " +"seront mis sur une ligne qui leur est propre, afin de minimiser le " +"dépassement de :attr:`width`)." #: ../Doc/library/textwrap.rst:255 msgid "" @@ -278,26 +391,39 @@ msgid "" "want truly insecable words. Default behaviour in previous versions was to " "always allow breaking hyphenated words." msgstr "" +"(par défaut : ``True``) Si c'est vrai, le formatage se fait de préférence " +"sur les espaces et juste après sur les traits d'union des mots composés, " +"comme il est d'usage en anglais. Si *False*, seuls les espaces sont " +"considérées comme de bons endroits pour les sauts de ligne, mais vous devez " +"définir :attr:`break_long_words` à *False* si vous voulez des mots vraiment " +"insécables. Le comportement par défaut dans les versions précédentes était " +"de toujours permettre de couper les mots avec trait d'union." #: ../Doc/library/textwrap.rst:265 msgid "" "(default: ``None``) If not ``None``, then the output will contain at most " "*max_lines* lines, with *placeholder* appearing at the end of the output." msgstr "" +"(par défaut : ``None```) Si ce n'est pas ``None```, alors la sortie contient " +"au maximum *max_lines* lignes, avec *placeholder* à la fin de la sortie." -#: ../Doc/library/textwrap.rst:273 +#: ../Doc/library/textwrap.rst:275 msgid "" "(default: ``' [...]'``) String that will appear at the end of the output " "text if it has been truncated." msgstr "" +"(par défaut : ``'' [...]'``) Chaîne qui apparaît à la fin du texte de sortie " +"s'il a été tronqué." -#: ../Doc/library/textwrap.rst:279 +#: ../Doc/library/textwrap.rst:281 msgid "" ":class:`TextWrapper` also provides some public methods, analogous to the " "module-level convenience functions:" msgstr "" +":class:`TextWrapper` fournit également quelques méthodes publiques, " +"analogues aux fonctions de commodité au niveau du module :" -#: ../Doc/library/textwrap.rst:284 +#: ../Doc/library/textwrap.rst:286 msgid "" "Wraps the single paragraph in *text* (a string) so every line is at most :" "attr:`width` characters long. All wrapping options are taken from instance " @@ -305,9 +431,17 @@ msgid "" "lines, without final newlines. If the wrapped output has no content, the " "returned list is empty." msgstr "" +"Formate le paragraphe unique dans *text* (une chaîne de caractères) de sorte " +"que chaque ligne ait au maximum :attr:`width` caractères. Toutes les " +"options de formatage sont tirées des attributs d'instance de l'instance de " +"classe :class:`TextWrapper`. Renvoie une liste de lignes de sortie, sans " +"nouvelles lignes finales. Si la sortie formatée n'a pas de contenu, la liste " +"vide est renvoyée." -#: ../Doc/library/textwrap.rst:293 +#: ../Doc/library/textwrap.rst:295 msgid "" "Wraps the single paragraph in *text*, and returns a single string containing " "the wrapped paragraph." msgstr "" +"Formate le paragraphe unique de *text* et renvoie une seule chaîne contenant " +"le paragraphe formaté." diff --git a/library/threading.po b/library/threading.po index 5862d0cef..8accec906 100644 --- a/library/threading.po +++ b/library/threading.po @@ -5,32 +5,38 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-04-12 00:15+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.1\n" #: ../Doc/library/threading.rst:2 msgid ":mod:`threading` --- Thread-based parallelism" msgstr "" +":mod:`threading` — Parallélisme basé sur les fils d’exécution (*threads*)" #: ../Doc/library/threading.rst:7 msgid "**Source code:** :source:`Lib/threading.py`" -msgstr "**Code source:** :source:`Lib/threading.py`" +msgstr "**Code source :** :source:`Lib/threading.py`" #: ../Doc/library/threading.rst:11 msgid "" "This module constructs higher-level threading interfaces on top of the lower " "level :mod:`_thread` module. See also the :mod:`queue` module." msgstr "" +"Ce module élabore des interfaces haut-niveau de fils d'exécutions multiples " +"(*threading*) conçues en s'appuyant sur le module bas-niveau :mod:`_thread`. " +"Voir aussi le module :mod:`queue`." #: ../Doc/library/threading.rst:14 msgid "This module used to be optional, it is now always available." msgstr "" +"Ce module était auparavant optionnel, il est maintenant toujours disponible." #: ../Doc/library/threading.rst:19 msgid "" @@ -38,16 +44,21 @@ msgid "" "methods and functions in this module in the Python 2.x series are still " "supported by this module." msgstr "" +"Bien qu'ils ne soient pas listés ci-dessous, ce module gère toujours les " +"noms en ``camelCase`` utilisés pour certaines méthodes et fonctions de ce " +"module dans la série Python 2.x." #: ../Doc/library/threading.rst:24 msgid "This module defines the following functions:" -msgstr "" +msgstr "Ce module définit les fonctions suivantes :" #: ../Doc/library/threading.rst:29 msgid "" "Return the number of :class:`Thread` objects currently alive. The returned " "count is equal to the length of the list returned by :func:`.enumerate`." msgstr "" +"Renvoie le nombre d'objets :class:`Thread` actuellement vivants. Le compte " +"renvoyé est égal à la longueur de la liste renvoyée par :func:`.enumerate`." #: ../Doc/library/threading.rst:35 msgid "" @@ -56,6 +67,10 @@ msgid "" "through the :mod:`threading` module, a dummy thread object with limited " "functionality is returned." msgstr "" +"Renvoie l'objet :class:`Thread` courant, correspondant au fil de contrôle de " +"l'appelant. Si le fil de contrôle de l'appelant n'a pas été créé via le " +"module :mod:`Thread`, un objet *thread* factice aux fonctionnalités limitées " +"est renvoyé." #: ../Doc/library/threading.rst:43 msgid "" @@ -65,6 +80,11 @@ msgid "" "identifiers may be recycled when a thread exits and another thread is " "created." msgstr "" +"Renvoie l'« identifiant de fil » du fil d'exécution courant. C'est un " +"entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " +"à être utilisé comme valeur magique opaque, par exemple comme clef de " +"dictionnaire de données pour chaque fil. Les identificateurs de fils peuvent " +"être recyclés lorsqu'un fil se termine et qu'un autre fil est créé." #: ../Doc/library/threading.rst:54 msgid "" @@ -73,12 +93,19 @@ msgid "" "`current_thread`, and the main thread. It excludes terminated threads and " "threads that have not yet been started." msgstr "" +"Renvoie une liste de tous les objets fil d'exécution :class:`Thread` " +"actuellement vivants. La liste inclut les fils démons, les fils factices " +"créés par :func:`current_thread` et le fil principal. Elle exclut les fils " +"terminés et les fils qui n'ont pas encore été lancés." #: ../Doc/library/threading.rst:62 msgid "" "Return the main :class:`Thread` object. In normal conditions, the main " "thread is the thread from which the Python interpreter was started." msgstr "" +"Renvoie l'objet fil d'exécution :class:`Thread` principal. Dans des " +"conditions normales, le fil principal est le fil à partir duquel " +"l'interpréteur Python a été lancé." #: ../Doc/library/threading.rst:73 msgid "" @@ -86,6 +113,10 @@ msgid "" "module. The *func* will be passed to :func:`sys.settrace` for each thread, " "before its :meth:`~Thread.run` method is called." msgstr "" +"Attache une fonction de traçage pour tous les fils d'exécution démarrés " +"depuis le module :mod:`Thread`. La fonction *func* est passée à :func:`sys." +"settrace` pour chaque fil, avant que sa méthode :meth:`~Thread.run` soit " +"appelée." #: ../Doc/library/threading.rst:82 msgid "" @@ -93,6 +124,10 @@ msgid "" "module. The *func* will be passed to :func:`sys.setprofile` for each " "thread, before its :meth:`~Thread.run` method is called." msgstr "" +"Attache une fonction de profilage pour tous les fils d'exécution démarrés " +"depuis le module :mod:`Threading`. La fonction *func* est passée à :func:" +"`sys.setprofile` pour chaque fil, avant que sa méthode :meth:`~Thread.run` " +"soit appelée." #: ../Doc/library/threading.rst:89 msgid "" @@ -110,28 +145,59 @@ msgid "" "system memory page size - platform documentation should be referred to for " "more information (4 KiB pages are common; using multiples of 4096 for the " "stack size is the suggested approach in the absence of more specific " -"information). Availability: Windows, systems with POSIX threads." -msgstr "" - -#: ../Doc/library/threading.rst:106 +"information)." +msgstr "" +"Renvoie la taille de la pile d'exécution utilisée lors de la création de " +"nouveaux fils d'exécution. L'argument optionnel *size* spécifie la taille de " +"pile à utiliser pour les fils créés ultérieurement, et doit être 0 (pour " +"utiliser la taille de la plate-forme ou la valeur configurée par défaut) ou " +"un entier positif supérieur ou égal à 32 768 (32 Kio). Si *size* n'est pas " +"spécifié, 0 est utilisé. Si la modification de la taille de la pile de fils " +"n'est pas prise en charge, une :exc:`RuntimeError` est levée. Si la taille " +"de pile spécifiée n'est pas valide, une :exc:`ValueError` est levée et la " +"taille de pile n'est pas modifiée. 32 Kio est actuellement la valeur " +"minimale de taille de pile prise en charge pour garantir un espace de pile " +"suffisant pour l'interpréteur lui-même. Notez que certaines plates-formes " +"peuvent avoir des restrictions particulières sur les valeurs de taille de la " +"pile, telles que l'exigence d'une taille de pile minimale > 32 Kio ou d'une " +"allocation en multiples de la taille de page de la mémoire du système – la " +"documentation de la plate-forme devrait être consultée pour plus " +"d'informations (4 Kio sont courantes ; en l'absence de renseignements plus " +"spécifiques, l'approche proposée est l'utilisation de multiples de 4 096 " +"pour la taille de la pile)." + +#: ../Doc/library/threading.rst:104 +msgid "" +":ref:`Availability `: Windows, systems with POSIX threads." +msgstr "" +":ref:`Disponibilité ` : Windows et systèmes gérant les fils " +"d'exécution POSIX." + +#: ../Doc/library/threading.rst:107 msgid "This module also defines the following constant:" -msgstr "" +msgstr "Ce module définit également la constante suivante :" -#: ../Doc/library/threading.rst:110 +#: ../Doc/library/threading.rst:111 msgid "" "The maximum value allowed for the *timeout* parameter of blocking functions " "(:meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Condition.wait`, etc.). " "Specifying a timeout greater than this value will raise an :exc:" "`OverflowError`." msgstr "" +"La valeur maximale autorisée pour le paramètre *timeout* des fonctions " +"bloquantes (:meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Condition." +"wait`, etc.). Spécifier un délai d'attente supérieur à cette valeur lève " +"une :exc:`OverflowError`." -#: ../Doc/library/threading.rst:118 +#: ../Doc/library/threading.rst:119 msgid "" "This module defines a number of classes, which are detailed in the sections " "below." msgstr "" +"Ce module définit un certain nombre de classes, qui sont détaillées dans les " +"sections ci-dessous." -#: ../Doc/library/threading.rst:121 +#: ../Doc/library/threading.rst:122 msgid "" "The design of this module is loosely based on Java's threading model. " "However, where Java makes locks and condition variables basic behavior of " @@ -141,41 +207,58 @@ msgid "" "stopped, suspended, resumed, or interrupted. The static methods of Java's " "Thread class, when implemented, are mapped to module-level functions." msgstr "" - -#: ../Doc/library/threading.rst:129 +"La conception de ce module est librement basée sur le modèle des fils " +"d'exécution de Java. Cependant, là où Java fait des verrous et des variables " +"de condition le comportement de base de chaque objet, ils sont des objets " +"séparés en Python. La classe Python :class:`Thread` prend en charge un sous-" +"ensemble du comportement de la classe *Thread* de Java ; actuellement, il " +"n'y a aucune priorité, aucun groupe de fils d'exécution, et les fils ne " +"peuvent être détruits, arrêtés, suspendus, repris ni interrompus. Les " +"méthodes statiques de la classe *Thread* de Java, lorsqu'elles sont " +"implémentées, correspondent à des fonctions au niveau du module." + +#: ../Doc/library/threading.rst:130 msgid "All of the methods described below are executed atomically." msgstr "" +"Toutes les méthodes décrites ci-dessous sont exécutées de manière atomique." -#: ../Doc/library/threading.rst:133 +#: ../Doc/library/threading.rst:134 msgid "Thread-Local Data" -msgstr "" +msgstr "Données locales au fil d'exécution" -#: ../Doc/library/threading.rst:135 +#: ../Doc/library/threading.rst:136 msgid "" "Thread-local data is data whose values are thread specific. To manage " "thread-local data, just create an instance of :class:`local` (or a subclass) " "and store attributes on it::" msgstr "" +"Les données locales au fil d'exécution (*thread-local data*) sont des " +"données dont les valeurs sont propres à chaque fil. Pour gérer les données " +"locales au fil, il suffit de créer une instance de :class:`local` (ou une " +"sous-classe) et d'y stocker des données ::" -#: ../Doc/library/threading.rst:142 +#: ../Doc/library/threading.rst:143 msgid "The instance's values will be different for separate threads." msgstr "" +"Les valeurs dans l'instance sont différentes pour des *threads* différents." -#: ../Doc/library/threading.rst:147 +#: ../Doc/library/threading.rst:148 msgid "A class that represents thread-local data." -msgstr "" +msgstr "Classe qui représente les données locales au fil d'exécution." -#: ../Doc/library/threading.rst:149 +#: ../Doc/library/threading.rst:150 msgid "" "For more details and extensive examples, see the documentation string of " "the :mod:`_threading_local` module." msgstr "" +"Pour plus de détails et de nombreux exemples, voir la chaîne de " +"documentation du module :mod:`_threading_local`." -#: ../Doc/library/threading.rst:156 +#: ../Doc/library/threading.rst:157 msgid "Thread Objects" -msgstr "" +msgstr "Objets *Threads*" -#: ../Doc/library/threading.rst:158 +#: ../Doc/library/threading.rst:159 msgid "" "The :class:`Thread` class represents an activity that is run in a separate " "thread of control. There are two ways to specify the activity: by passing a " @@ -184,36 +267,55 @@ msgid "" "be overridden in a subclass. In other words, *only* override the :meth:" "`~Thread.__init__` and :meth:`~Thread.run` methods of this class." msgstr "" +"La classe fil d'exécution :class:`Thread` représente une activité qui est " +"exécutée dans un fil d'exécution séparé. Il y a deux façons de spécifier " +"l'activité : en passant un objet appelable au constructeur, ou en ré-" +"implémentant la méthode :meth:`~Thread.run` dans une sous-classe. Aucune " +"autre méthode (à l'exception du constructeur) ne doit être remplacée dans " +"une sous-classe. En d'autres termes, réimplémentez *seulement* les méthodes :" +"meth:`~Thread.__init__` et :meth:`~Thread.run` de cette classe." -#: ../Doc/library/threading.rst:165 +#: ../Doc/library/threading.rst:166 msgid "" "Once a thread object is created, its activity must be started by calling the " "thread's :meth:`~Thread.start` method. This invokes the :meth:`~Thread.run` " "method in a separate thread of control." msgstr "" +"Une fois qu'un objet fil d'exécution est créé, son activité doit être lancée " +"en appelant la méthode :meth:`~Thread.start` du fil. Ceci invoque la " +"méthode :meth:`~Thread.run` dans un fil d'exécution séparé." -#: ../Doc/library/threading.rst:169 +#: ../Doc/library/threading.rst:170 msgid "" "Once the thread's activity is started, the thread is considered 'alive'. It " "stops being alive when its :meth:`~Thread.run` method terminates -- either " "normally, or by raising an unhandled exception. The :meth:`~Thread." "is_alive` method tests whether the thread is alive." msgstr "" +"Une fois que l'activité du fil d'exécution est lancée, le fil est considéré " +"comme « vivant ». Il cesse d'être vivant lorsque sa méthode :meth:`~Thread." +"run` se termine – soit normalement, soit en levant une exception non gérée. " +"La méthode :meth:`~Thread.is_alive` teste si le fil est vivant." -#: ../Doc/library/threading.rst:174 +#: ../Doc/library/threading.rst:175 msgid "" "Other threads can call a thread's :meth:`~Thread.join` method. This blocks " "the calling thread until the thread whose :meth:`~Thread.join` method is " "called is terminated." msgstr "" +"D'autres fils d'exécution peuvent appeler la méthode :meth:`~Thread.join` " +"d'un fil. Ceci bloque le fil appelant jusqu'à ce que le fil dont la méthode :" +"meth:`~Thread.join` est appelée soit terminé." -#: ../Doc/library/threading.rst:178 +#: ../Doc/library/threading.rst:179 msgid "" "A thread has a name. The name can be passed to the constructor, and read or " "changed through the :attr:`~Thread.name` attribute." msgstr "" +"Un fil d'exécution a un nom. Le nom peut être passé au constructeur, et lu " +"ou modifié via l'attribut :attr:`~Thread.name`." -#: ../Doc/library/threading.rst:181 +#: ../Doc/library/threading.rst:182 msgid "" "A thread can be flagged as a \"daemon thread\". The significance of this " "flag is that the entire Python program exits when only daemon threads are " @@ -221,22 +323,35 @@ msgid "" "can be set through the :attr:`~Thread.daemon` property or the *daemon* " "constructor argument." msgstr "" +"Un fil d'exécution peut être marqué comme « fil démon ». Un programme Python " +"se termine quand il ne reste plus que des fils démons. La valeur initiale " +"est héritée du fil d'exécution qui l'a créé. Cette option peut être définie " +"par la propriété :attr:`~Thread.daemon` ou par l'argument *daemon* du " +"constructeur." -#: ../Doc/library/threading.rst:188 +#: ../Doc/library/threading.rst:189 msgid "" "Daemon threads are abruptly stopped at shutdown. Their resources (such as " "open files, database transactions, etc.) may not be released properly. If " "you want your threads to stop gracefully, make them non-daemonic and use a " "suitable signalling mechanism such as an :class:`Event`." msgstr "" +"Les fils d'exécution démons sont brusquement terminés à l'arrêt du programme " +"Python. Leurs ressources (fichiers ouverts, transactions de base de données, " +"etc.) peuvent ne pas être libérées correctement. Si vous voulez que vos fils " +"s'arrêtent proprement, faites en sorte qu'ils ne soient pas démoniques et " +"utilisez un mécanisme de signalisation approprié tel qu'un objet évènement :" +"class:`Event`." -#: ../Doc/library/threading.rst:193 +#: ../Doc/library/threading.rst:194 msgid "" "There is a \"main thread\" object; this corresponds to the initial thread of " "control in the Python program. It is not a daemon thread." msgstr "" +"Il y a un objet \"fil principal\", qui correspond au fil de contrôle initial " +"dans le programme Python. Ce n'est pas un fil démon." -#: ../Doc/library/threading.rst:196 +#: ../Doc/library/threading.rst:197 msgid "" "There is the possibility that \"dummy thread objects\" are created. These " "are thread objects corresponding to \"alien threads\", which are threads of " @@ -245,98 +360,140 @@ msgid "" "alive and daemonic, and cannot be :meth:`~Thread.join`\\ ed. They are never " "deleted, since it is impossible to detect the termination of alien threads." msgstr "" +"Il y a une possibilité que des objets fil d'exécution « fictifs » soient " +"créés. Ce sont des objets correspondant à des fils d'exécution " +"« étrangers », qui sont des fils de contrôle démarrés en dehors du module de " +"*threading*, par exemple directement depuis du code C. Les objets fils " +"d'exécution fictifs ont des fonctionnalités limitées ; ils sont toujours " +"considérés comme vivants et démoniques, et ne peuvent pas être attendus via :" +"meth:`~Thread.join`. Ils ne sont jamais supprimés, car il est impossible de " +"détecter la fin des fils d'exécution étrangers." -#: ../Doc/library/threading.rst:207 +#: ../Doc/library/threading.rst:208 msgid "" "This constructor should always be called with keyword arguments. Arguments " "are:" msgstr "" +"Ce constructeur doit toujours être appelé avec des arguments nommés. Les " +"arguments sont :" -#: ../Doc/library/threading.rst:210 +#: ../Doc/library/threading.rst:211 msgid "" "*group* should be ``None``; reserved for future extension when a :class:" "`ThreadGroup` class is implemented." msgstr "" +"*group* doit être ``None`` ; cet argument est réservé pour une extension " +"future lorsqu'une classe :class:`ThreadGroup` sera implémentée." -#: ../Doc/library/threading.rst:213 +#: ../Doc/library/threading.rst:214 msgid "" "*target* is the callable object to be invoked by the :meth:`run` method. " "Defaults to ``None``, meaning nothing is called." msgstr "" +"*target* est l'objet appelable qui doit être invoqué par la méthode :meth:" +"`run`. La valeur par défaut est ``None``, ce qui signifie que rien n'est " +"appelé." -#: ../Doc/library/threading.rst:216 +#: ../Doc/library/threading.rst:217 msgid "" "*name* is the thread name. By default, a unique name is constructed of the " "form \"Thread-*N*\" where *N* is a small decimal number." msgstr "" +"*name* est le nom du fil d'exécution. Par défaut, un nom unique est " +"construit de la forme « Thread–*N* » où *N* est un petit nombre décimal." -#: ../Doc/library/threading.rst:219 +#: ../Doc/library/threading.rst:220 msgid "" "*args* is the argument tuple for the target invocation. Defaults to ``()``." msgstr "" +"*args* est le tuple d'arguments pour l'invocation de l'objet appelable. La " +"valeur par défaut est ``()``." -#: ../Doc/library/threading.rst:221 +#: ../Doc/library/threading.rst:222 msgid "" "*kwargs* is a dictionary of keyword arguments for the target invocation. " "Defaults to ``{}``." msgstr "" +"*kwargs* est un dictionnaire d'arguments nommés pour l'invocation de l'objet " +"appelable. La valeur par défaut est ``{}``." -#: ../Doc/library/threading.rst:224 +#: ../Doc/library/threading.rst:225 msgid "" "If not ``None``, *daemon* explicitly sets whether the thread is daemonic. If " "``None`` (the default), the daemonic property is inherited from the current " "thread." msgstr "" +"S'il ne vaut pas ``None``, *daemon* définit explicitement si le fil " +"d'exécution est démonique ou pas. S'il vaut ``None`` (par défaut), la valeur " +"est héritée du fil courant." -#: ../Doc/library/threading.rst:228 +#: ../Doc/library/threading.rst:229 msgid "" "If the subclass overrides the constructor, it must make sure to invoke the " "base class constructor (``Thread.__init__()``) before doing anything else to " "the thread." msgstr "" +"Si la sous-classe réimplémente le constructeur, elle doit s'assurer " +"d'appeler le constructeur de la classe de base (``Thread.__init__()``) avant " +"de faire autre chose au fil d'exécution." -#: ../Doc/library/threading.rst:232 +#: ../Doc/library/threading.rst:233 msgid "Added the *daemon* argument." -msgstr "" +msgstr "Ajout de l'argument *daemon*." -#: ../Doc/library/threading.rst:237 +#: ../Doc/library/threading.rst:238 msgid "Start the thread's activity." -msgstr "" +msgstr "Lance l'activité du fil d'exécution." -#: ../Doc/library/threading.rst:239 +#: ../Doc/library/threading.rst:240 msgid "" "It must be called at most once per thread object. It arranges for the " "object's :meth:`~Thread.run` method to be invoked in a separate thread of " "control." msgstr "" +"Elle ne doit être appelée qu'une fois par objet de fil. Elle fait en sorte " +"que la méthode :meth:`~Thread.run` de l'objet soit invoquée dans un fil " +"d'exécution." -#: ../Doc/library/threading.rst:243 +#: ../Doc/library/threading.rst:244 msgid "" "This method will raise a :exc:`RuntimeError` if called more than once on the " "same thread object." msgstr "" +"Cette méthode lève une :exc:`RuntimeError` si elle est appelée plus d'une " +"fois sur le même objet fil d'exécution." -#: ../Doc/library/threading.rst:248 +#: ../Doc/library/threading.rst:249 msgid "Method representing the thread's activity." -msgstr "" +msgstr "Méthode représentant l'activité du fil d'exécution." -#: ../Doc/library/threading.rst:250 +#: ../Doc/library/threading.rst:251 +#, fuzzy msgid "" "You may override this method in a subclass. The standard :meth:`run` method " "invokes the callable object passed to the object's constructor as the " -"*target* argument, if any, with sequential and keyword arguments taken from " +"*target* argument, if any, with positional and keyword arguments taken from " "the *args* and *kwargs* arguments, respectively." msgstr "" +"Vous pouvez remplacer cette méthode dans une sous-classe. La méthode " +"standard :meth:`run` invoque l'objet appelable passé au constructeur de " +"l'objet en tant qu'argument *target*, le cas échéant, avec des arguments " +"positionnels et des arguments nommés tirés respectivement des arguments " +"*args* et *kwargs*." -#: ../Doc/library/threading.rst:257 +#: ../Doc/library/threading.rst:258 msgid "" "Wait until the thread terminates. This blocks the calling thread until the " "thread whose :meth:`~Thread.join` method is called terminates -- either " "normally or through an unhandled exception -- or until the optional timeout " "occurs." msgstr "" +"Attend que le fil d'exécution se termine. Ceci bloque le fil appelant " +"jusqu'à ce que le fil dont la méthode :meth:`~Thread.join` est appelée se " +"termine – soit normalement, soit par une exception non gérée – ou jusqu'à ce " +"que le délai optionnel *timeout* soit atteint." -#: ../Doc/library/threading.rst:262 +#: ../Doc/library/threading.rst:263 msgid "" "When the *timeout* argument is present and not ``None``, it should be a " "floating point number specifying a timeout for the operation in seconds (or " @@ -345,39 +502,59 @@ msgid "" "whether a timeout happened -- if the thread is still alive, the :meth:" "`~Thread.join` call timed out." msgstr "" +"Lorsque l'argument *timeout* est présent et ne vaut pas ``None``, il doit " +"être un nombre en virgule flottante spécifiant un délai pour l'opération en " +"secondes (ou fractions de secondes). Comme :meth:`~Thread.join` renvoie " +"toujours ``None``, vous devez appeler :meth:`~Thread.is_alive` après :meth:" +"`~Thread.join` pour déterminer si le délai a expiré – si le fil d'exécution " +"est toujours vivant, c'est que l'appel à :meth:`~Thread.join` a expiré." -#: ../Doc/library/threading.rst:269 +#: ../Doc/library/threading.rst:270 msgid "" "When the *timeout* argument is not present or ``None``, the operation will " "block until the thread terminates." msgstr "" +"Lorsque l'argument *timeout* n'est pas présent ou vaut ``None``, l'opération " +"se bloque jusqu'à ce que le fil d'exécution se termine." -#: ../Doc/library/threading.rst:272 +#: ../Doc/library/threading.rst:273 msgid "A thread can be :meth:`~Thread.join`\\ ed many times." msgstr "" +"Un fil d'exécution peut être attendu via :meth:`~Thread.join` de nombreuses " +"fois." -#: ../Doc/library/threading.rst:274 +#: ../Doc/library/threading.rst:275 msgid "" ":meth:`~Thread.join` raises a :exc:`RuntimeError` if an attempt is made to " "join the current thread as that would cause a deadlock. It is also an error " "to :meth:`~Thread.join` a thread before it has been started and attempts to " "do so raise the same exception." msgstr "" +":meth:`~Thread.join` lève une :exc:`RuntimeError` si une tentative est faite " +"pour attendre le fil d'exécution courant car cela conduirait à un " +"interblocage (*deadlock* en anglais). Attendre via :meth:`~Thread.join` un " +"fil d'exécution avant son lancement est aussi une erreur et, si vous tentez " +"de le faire, lève la même exception." -#: ../Doc/library/threading.rst:281 +#: ../Doc/library/threading.rst:282 msgid "" "A string used for identification purposes only. It has no semantics. " "Multiple threads may be given the same name. The initial name is set by the " "constructor." msgstr "" +"Une chaîne de caractères utilisée à des fins d'identification seulement. " +"Elle n'a pas de sémantique. Plusieurs fils d'exécution peuvent porter le " +"même nom. Le nom initial est défini par le constructeur." -#: ../Doc/library/threading.rst:288 +#: ../Doc/library/threading.rst:289 msgid "" "Old getter/setter API for :attr:`~Thread.name`; use it directly as a " "property instead." msgstr "" +"Anciens accesseur et mutateur pour :attr:`~Thread.name` ; utilisez plutôt ce " +"dernier directement." -#: ../Doc/library/threading.rst:293 +#: ../Doc/library/threading.rst:294 msgid "" "The 'thread identifier' of this thread or ``None`` if the thread has not " "been started. This is a nonzero integer. See the :func:`get_ident` " @@ -385,19 +562,28 @@ msgid "" "another thread is created. The identifier is available even after the " "thread has exited." msgstr "" +"« L'identificateur de fil d'exécution » de ce fil ou ``None`` si le fil n'a " +"pas été lancé. C'est un entier non nul. Voyez également la fonction :func:" +"`get_ident`. Les identificateurs de fils peuvent être recyclés lorsqu'un fil " +"se termine et qu'un autre fil est créé. L'identifiant est disponible même " +"après que le fil ait terminé." -#: ../Doc/library/threading.rst:301 +#: ../Doc/library/threading.rst:302 msgid "Return whether the thread is alive." -msgstr "" +msgstr "Renvoie si le fil d'exécution est vivant ou pas." -#: ../Doc/library/threading.rst:303 +#: ../Doc/library/threading.rst:304 msgid "" "This method returns ``True`` just before the :meth:`~Thread.run` method " "starts until just after the :meth:`~Thread.run` method terminates. The " "module function :func:`.enumerate` returns a list of all alive threads." msgstr "" +"Cette méthode renvoie ``True`` depuis juste avant le démarrage de la " +"méthode :meth:`~Thread.run` et jusqu'à juste après la terminaison de la " +"méthode :meth:`~Thread.run`. La fonction :func:`.enumerate` du module " +"renvoie une liste de tous les fils d'exécution vivants." -#: ../Doc/library/threading.rst:309 +#: ../Doc/library/threading.rst:310 msgid "" "A boolean value indicating whether this thread is a daemon thread (True) or " "not (False). This must be set before :meth:`~Thread.start` is called, " @@ -406,19 +592,29 @@ msgid "" "therefore all threads created in the main thread default to :attr:`~Thread." "daemon` = ``False``." msgstr "" +"Booléen indiquant si ce fil d'exécution est un fil démon (``True``) ou non " +"(``False``). Celui-ci doit être défini avant que :meth:`~Thread.start` ne " +"soit appelé, sinon :exc:`RuntimeError` est levée. Sa valeur initiale est " +"héritée du fil d'exécution créateur ; le fil principal n'est pas un fil " +"démon et donc tous les fils créés dans ce fil principal ont par défaut la " +"valeur :attr:`~Thread.daemon` = ``False``." -#: ../Doc/library/threading.rst:316 +#: ../Doc/library/threading.rst:317 msgid "" "The entire Python program exits when no alive non-daemon threads are left." msgstr "" +"Le programme Python se termine lorsqu'il ne reste plus de fils d'exécution " +"non-démons vivants." -#: ../Doc/library/threading.rst:321 +#: ../Doc/library/threading.rst:322 msgid "" "Old getter/setter API for :attr:`~Thread.daemon`; use it directly as a " "property instead." msgstr "" +"Anciens accesseur et mutateur pour :attr:`~Thread.daemon` ; utilisez plutôt " +"ce dernier directement." -#: ../Doc/library/threading.rst:327 +#: ../Doc/library/threading.rst:328 msgid "" "In CPython, due to the :term:`Global Interpreter Lock`, only one thread can " "execute Python code at once (even though certain performance-oriented " @@ -428,20 +624,33 @@ msgid "" "ProcessPoolExecutor`. However, threading is still an appropriate model if " "you want to run multiple I/O-bound tasks simultaneously." msgstr "" - -#: ../Doc/library/threading.rst:340 +"En CPython, en raison du verrou global de l'interpréteur (:term:`Global " +"Interpreter Lock`), un seul fil d'exécution peut exécuter du code Python à " +"la fois (même si certaines bibliothèques orientées performance peuvent " +"surmonter cette limitation). Si vous voulez que votre application fasse un " +"meilleur usage des ressources de calcul des machines multi-cœurs, nous vous " +"conseillons d'utiliser :mod:`multiprocessing` ou :class:`concurrent.futures." +"ProcessPoolExecutor`. Néanmoins, les fils d'exécutions multiples restent un " +"modèle approprié si vous souhaitez exécuter simultanément plusieurs tâches " +"limitées par les performances des entrées-sorties." + +#: ../Doc/library/threading.rst:341 msgid "Lock Objects" -msgstr "" +msgstr "Verrous" -#: ../Doc/library/threading.rst:342 +#: ../Doc/library/threading.rst:343 msgid "" "A primitive lock is a synchronization primitive that is not owned by a " "particular thread when locked. In Python, it is currently the lowest level " "synchronization primitive available, implemented directly by the :mod:" "`_thread` extension module." msgstr "" +"Un verrou primitif n'appartient pas à un fil d'exécution lorsqu'il est " +"verrouillé. En Python, c'est actuellement la méthode de synchronisation la " +"plus bas-niveau qui soit disponible, implémentée directement par le module " +"d'extension :mod:`_thread`." -#: ../Doc/library/threading.rst:347 +#: ../Doc/library/threading.rst:348 msgid "" "A primitive lock is in one of two states, \"locked\" or \"unlocked\". It is " "created in the unlocked state. It has two basic methods, :meth:`~Lock." @@ -454,12 +663,23 @@ msgid "" "state to unlocked and returns immediately. If an attempt is made to release " "an unlocked lock, a :exc:`RuntimeError` will be raised." msgstr "" - -#: ../Doc/library/threading.rst:358 +"Un verrou primitif est soit « verrouillé » soit « déverrouillé ». Il est " +"créé dans un état déverrouillé. Il a deux méthodes, :meth:`~Lock.acquire` " +"et :meth:`~Lock.release`. Lorsque l'état est déverrouillé, :meth:`~Lock." +"acquire` verrouille et se termine immédiatement. Lorsque l'état est " +"verrouillé, :meth:`~Lock.acquire` bloque jusqu'à ce qu'un appel à :meth:" +"`~Lock.release` provenant d'un autre fil d'exécution le déverrouille. À ce " +"moment :meth:`~Lock.acquire` le verrouille à nouveau et rend la main. La " +"méthode :meth:`~Lock.release` ne doit être appelée que si le verrou est " +"verrouillé, elle le déverrouille alors et se termine immédiatement. " +"Déverrouiller un verrou qui n'est pas verrouillé provoque une :exc:" +"`RuntimeError`." + +#: ../Doc/library/threading.rst:359 msgid "Locks also support the :ref:`context management protocol `." msgstr "" -#: ../Doc/library/threading.rst:360 +#: ../Doc/library/threading.rst:361 msgid "" "When more than one thread is blocked in :meth:`~Lock.acquire` waiting for " "the state to turn to unlocked, only one thread proceeds when a :meth:`~Lock." @@ -467,42 +687,42 @@ msgid "" "proceeds is not defined, and may vary across implementations." msgstr "" -#: ../Doc/library/threading.rst:365 +#: ../Doc/library/threading.rst:366 msgid "All methods are executed atomically." msgstr "" -#: ../Doc/library/threading.rst:370 +#: ../Doc/library/threading.rst:371 msgid "" "The class implementing primitive lock objects. Once a thread has acquired a " "lock, subsequent attempts to acquire it block, until it is released; any " "thread may release it." msgstr "" -#: ../Doc/library/threading.rst:374 +#: ../Doc/library/threading.rst:375 msgid "" "Note that ``Lock`` is actually a factory function which returns an instance " "of the most efficient version of the concrete Lock class that is supported " "by the platform." msgstr "" -#: ../Doc/library/threading.rst:381 ../Doc/library/threading.rst:456 +#: ../Doc/library/threading.rst:382 ../Doc/library/threading.rst:457 msgid "Acquire a lock, blocking or non-blocking." -msgstr "" +msgstr "Acquiert un verrou, bloquant ou non bloquant." -#: ../Doc/library/threading.rst:383 +#: ../Doc/library/threading.rst:384 msgid "" "When invoked with the *blocking* argument set to ``True`` (the default), " "block until the lock is unlocked, then set it to locked and return ``True``." msgstr "" -#: ../Doc/library/threading.rst:386 +#: ../Doc/library/threading.rst:387 msgid "" "When invoked with the *blocking* argument set to ``False``, do not block. If " "a call with *blocking* set to ``True`` would block, return ``False`` " "immediately; otherwise, set the lock to locked and return ``True``." msgstr "" -#: ../Doc/library/threading.rst:390 +#: ../Doc/library/threading.rst:391 msgid "" "When invoked with the floating-point *timeout* argument set to a positive " "value, block for at most the number of seconds specified by *timeout* and as " @@ -511,49 +731,49 @@ msgid "" "*blocking* is false." msgstr "" -#: ../Doc/library/threading.rst:396 +#: ../Doc/library/threading.rst:397 msgid "" "The return value is ``True`` if the lock is acquired successfully, ``False`` " "if not (for example if the *timeout* expired)." msgstr "" -#: ../Doc/library/threading.rst:399 ../Doc/library/threading.rst:478 -#: ../Doc/library/threading.rst:723 +#: ../Doc/library/threading.rst:400 ../Doc/library/threading.rst:479 +#: ../Doc/library/threading.rst:724 msgid "The *timeout* parameter is new." msgstr "Le paramètre *timeout* est nouveau." -#: ../Doc/library/threading.rst:402 +#: ../Doc/library/threading.rst:403 msgid "" "Lock acquisition can now be interrupted by signals on POSIX if the " "underlying threading implementation supports it." msgstr "" -#: ../Doc/library/threading.rst:409 +#: ../Doc/library/threading.rst:410 msgid "" "Release a lock. This can be called from any thread, not only the thread " "which has acquired the lock." msgstr "" -#: ../Doc/library/threading.rst:412 +#: ../Doc/library/threading.rst:413 msgid "" "When the lock is locked, reset it to unlocked, and return. If any other " "threads are blocked waiting for the lock to become unlocked, allow exactly " "one of them to proceed." msgstr "" -#: ../Doc/library/threading.rst:416 +#: ../Doc/library/threading.rst:417 msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/threading.rst:418 ../Doc/library/threading.rst:494 +#: ../Doc/library/threading.rst:419 ../Doc/library/threading.rst:495 msgid "There is no return value." msgstr "Il n'y a pas de valeur de retour." -#: ../Doc/library/threading.rst:424 +#: ../Doc/library/threading.rst:425 msgid "RLock Objects" msgstr "" -#: ../Doc/library/threading.rst:426 +#: ../Doc/library/threading.rst:427 msgid "" "A reentrant lock is a synchronization primitive that may be acquired " "multiple times by the same thread. Internally, it uses the concepts of " @@ -562,7 +782,7 @@ msgid "" "lock; in the unlocked state, no thread owns it." msgstr "" -#: ../Doc/library/threading.rst:432 +#: ../Doc/library/threading.rst:433 msgid "" "To lock the lock, a thread calls its :meth:`~RLock.acquire` method; this " "returns once the thread owns the lock. To unlock the lock, a thread calls " @@ -573,13 +793,13 @@ msgid "" "proceed." msgstr "" -#: ../Doc/library/threading.rst:439 +#: ../Doc/library/threading.rst:440 msgid "" "Reentrant locks also support the :ref:`context management protocol `." msgstr "" -#: ../Doc/library/threading.rst:444 +#: ../Doc/library/threading.rst:445 msgid "" "This class implements reentrant lock objects. A reentrant lock must be " "released by the thread that acquired it. Once a thread has acquired a " @@ -587,14 +807,14 @@ msgid "" "thread must release it once for each time it has acquired it." msgstr "" -#: ../Doc/library/threading.rst:449 +#: ../Doc/library/threading.rst:450 msgid "" "Note that ``RLock`` is actually a factory function which returns an instance " "of the most efficient version of the concrete RLock class that is supported " "by the platform." msgstr "" -#: ../Doc/library/threading.rst:458 +#: ../Doc/library/threading.rst:459 msgid "" "When invoked without arguments: if this thread already owns the lock, " "increment the recursion level by one, and return immediately. Otherwise, if " @@ -605,20 +825,20 @@ msgid "" "ownership of the lock. There is no return value in this case." msgstr "" -#: ../Doc/library/threading.rst:466 +#: ../Doc/library/threading.rst:467 msgid "" "When invoked with the *blocking* argument set to true, do the same thing as " "when called without arguments, and return true." msgstr "" -#: ../Doc/library/threading.rst:469 +#: ../Doc/library/threading.rst:470 msgid "" "When invoked with the *blocking* argument set to false, do not block. If a " "call without an argument would block, return false immediately; otherwise, " "do the same thing as when called without arguments, and return true." msgstr "" -#: ../Doc/library/threading.rst:473 +#: ../Doc/library/threading.rst:474 msgid "" "When invoked with the floating-point *timeout* argument set to a positive " "value, block for at most the number of seconds specified by *timeout* and as " @@ -626,7 +846,7 @@ msgid "" "acquired, false if the timeout has elapsed." msgstr "" -#: ../Doc/library/threading.rst:484 +#: ../Doc/library/threading.rst:485 msgid "" "Release a lock, decrementing the recursion level. If after the decrement it " "is zero, reset the lock to unlocked (not owned by any thread), and if any " @@ -635,17 +855,17 @@ msgid "" "is still nonzero, the lock remains locked and owned by the calling thread." msgstr "" -#: ../Doc/library/threading.rst:490 +#: ../Doc/library/threading.rst:491 msgid "" "Only call this method when the calling thread owns the lock. A :exc:" "`RuntimeError` is raised if this method is called when the lock is unlocked." msgstr "" -#: ../Doc/library/threading.rst:500 +#: ../Doc/library/threading.rst:501 msgid "Condition Objects" msgstr "" -#: ../Doc/library/threading.rst:502 +#: ../Doc/library/threading.rst:503 msgid "" "A condition variable is always associated with some kind of lock; this can " "be passed in or one will be created by default. Passing one in is useful " @@ -653,7 +873,7 @@ msgid "" "of the condition object: you don't have to track it separately." msgstr "" -#: ../Doc/library/threading.rst:507 +#: ../Doc/library/threading.rst:508 msgid "" "A condition variable obeys the :ref:`context management protocol `: using the ``with`` statement acquires the associated lock for the " @@ -662,7 +882,7 @@ msgid "" "associated lock." msgstr "" -#: ../Doc/library/threading.rst:513 +#: ../Doc/library/threading.rst:514 msgid "" "Other methods must be called with the associated lock held. The :meth:" "`~Condition.wait` method releases the lock, and then blocks until another " @@ -671,14 +891,14 @@ msgid "" "and returns. It is also possible to specify a timeout." msgstr "" -#: ../Doc/library/threading.rst:519 +#: ../Doc/library/threading.rst:520 msgid "" "The :meth:`~Condition.notify` method wakes up one of the threads waiting for " "the condition variable, if any are waiting. The :meth:`~Condition." "notify_all` method wakes up all threads waiting for the condition variable." msgstr "" -#: ../Doc/library/threading.rst:523 +#: ../Doc/library/threading.rst:524 msgid "" "Note: the :meth:`~Condition.notify` and :meth:`~Condition.notify_all` " "methods don't release the lock; this means that the thread or threads " @@ -687,7 +907,7 @@ msgid "" "or :meth:`~Condition.notify_all` finally relinquishes ownership of the lock." msgstr "" -#: ../Doc/library/threading.rst:529 +#: ../Doc/library/threading.rst:530 msgid "" "The typical programming style using condition variables uses the lock to " "synchronize access to some shared state; threads that are interested in a " @@ -699,7 +919,7 @@ msgid "" "situation with unlimited buffer capacity::" msgstr "" -#: ../Doc/library/threading.rst:549 +#: ../Doc/library/threading.rst:550 msgid "" "The ``while`` loop checking for the application's condition is necessary " "because :meth:`~Condition.wait` can return after an arbitrary long time, and " @@ -709,7 +929,7 @@ msgid "" "checking, and eases the computation of timeouts::" msgstr "" -#: ../Doc/library/threading.rst:561 +#: ../Doc/library/threading.rst:562 msgid "" "To choose between :meth:`~Condition.notify` and :meth:`~Condition." "notify_all`, consider whether one state change can be interesting for only " @@ -718,45 +938,45 @@ msgid "" "thread." msgstr "" -#: ../Doc/library/threading.rst:569 +#: ../Doc/library/threading.rst:570 msgid "" "This class implements condition variable objects. A condition variable " "allows one or more threads to wait until they are notified by another thread." msgstr "" -#: ../Doc/library/threading.rst:572 +#: ../Doc/library/threading.rst:573 msgid "" "If the *lock* argument is given and not ``None``, it must be a :class:`Lock` " "or :class:`RLock` object, and it is used as the underlying lock. Otherwise, " "a new :class:`RLock` object is created and used as the underlying lock." msgstr "" -#: ../Doc/library/threading.rst:576 ../Doc/library/threading.rst:698 -#: ../Doc/library/threading.rst:741 ../Doc/library/threading.rst:793 -#: ../Doc/library/threading.rst:862 +#: ../Doc/library/threading.rst:577 ../Doc/library/threading.rst:699 +#: ../Doc/library/threading.rst:742 ../Doc/library/threading.rst:794 +#: ../Doc/library/threading.rst:863 msgid "changed from a factory function to a class." msgstr "" -#: ../Doc/library/threading.rst:581 +#: ../Doc/library/threading.rst:582 msgid "" "Acquire the underlying lock. This method calls the corresponding method on " "the underlying lock; the return value is whatever that method returns." msgstr "" -#: ../Doc/library/threading.rst:586 +#: ../Doc/library/threading.rst:587 msgid "" "Release the underlying lock. This method calls the corresponding method on " "the underlying lock; there is no return value." msgstr "" -#: ../Doc/library/threading.rst:591 +#: ../Doc/library/threading.rst:592 msgid "" "Wait until notified or until a timeout occurs. If the calling thread has not " "acquired the lock when this method is called, a :exc:`RuntimeError` is " "raised." msgstr "" -#: ../Doc/library/threading.rst:595 +#: ../Doc/library/threading.rst:596 msgid "" "This method releases the underlying lock, and then blocks until it is " "awakened by a :meth:`notify` or :meth:`notify_all` call for the same " @@ -764,14 +984,14 @@ msgid "" "Once awakened or timed out, it re-acquires the lock and returns." msgstr "" -#: ../Doc/library/threading.rst:600 +#: ../Doc/library/threading.rst:601 msgid "" "When the *timeout* argument is present and not ``None``, it should be a " "floating point number specifying a timeout for the operation in seconds (or " "fractions thereof)." msgstr "" -#: ../Doc/library/threading.rst:604 +#: ../Doc/library/threading.rst:605 msgid "" "When the underlying lock is an :class:`RLock`, it is not released using its :" "meth:`release` method, since this may not actually unlock the lock when it " @@ -781,24 +1001,24 @@ msgid "" "used to restore the recursion level when the lock is reacquired." msgstr "" -#: ../Doc/library/threading.rst:612 +#: ../Doc/library/threading.rst:613 msgid "" "The return value is ``True`` unless a given *timeout* expired, in which case " "it is ``False``." msgstr "" -#: ../Doc/library/threading.rst:615 ../Doc/library/threading.rst:827 +#: ../Doc/library/threading.rst:616 ../Doc/library/threading.rst:828 msgid "Previously, the method always returned ``None``." msgstr "" -#: ../Doc/library/threading.rst:620 +#: ../Doc/library/threading.rst:621 msgid "" "Wait until a condition evaluates to true. *predicate* should be a callable " "which result will be interpreted as a boolean value. A *timeout* may be " "provided giving the maximum time to wait." msgstr "" -#: ../Doc/library/threading.rst:624 +#: ../Doc/library/threading.rst:625 msgid "" "This utility method may call :meth:`wait` repeatedly until the predicate is " "satisfied, or until a timeout occurs. The return value is the last return " @@ -806,33 +1026,33 @@ msgid "" "out." msgstr "" -#: ../Doc/library/threading.rst:629 +#: ../Doc/library/threading.rst:630 msgid "" "Ignoring the timeout feature, calling this method is roughly equivalent to " "writing::" msgstr "" -#: ../Doc/library/threading.rst:635 +#: ../Doc/library/threading.rst:636 msgid "" "Therefore, the same rules apply as with :meth:`wait`: The lock must be held " "when called and is re-acquired on return. The predicate is evaluated with " "the lock held." msgstr "" -#: ../Doc/library/threading.rst:643 +#: ../Doc/library/threading.rst:644 msgid "" "By default, wake up one thread waiting on this condition, if any. If the " "calling thread has not acquired the lock when this method is called, a :exc:" "`RuntimeError` is raised." msgstr "" -#: ../Doc/library/threading.rst:647 +#: ../Doc/library/threading.rst:648 msgid "" "This method wakes up at most *n* of the threads waiting for the condition " "variable; it is a no-op if no threads are waiting." msgstr "" -#: ../Doc/library/threading.rst:650 +#: ../Doc/library/threading.rst:651 msgid "" "The current implementation wakes up exactly *n* threads, if at least *n* " "threads are waiting. However, it's not safe to rely on this behavior. A " @@ -840,14 +1060,14 @@ msgid "" "threads." msgstr "" -#: ../Doc/library/threading.rst:655 +#: ../Doc/library/threading.rst:656 msgid "" "Note: an awakened thread does not actually return from its :meth:`wait` call " "until it can reacquire the lock. Since :meth:`notify` does not release the " "lock, its caller should." msgstr "" -#: ../Doc/library/threading.rst:661 +#: ../Doc/library/threading.rst:662 msgid "" "Wake up all threads waiting on this condition. This method acts like :meth:" "`notify`, but wakes up all waiting threads instead of one. If the calling " @@ -855,11 +1075,11 @@ msgid "" "`RuntimeError` is raised." msgstr "" -#: ../Doc/library/threading.rst:670 +#: ../Doc/library/threading.rst:671 msgid "Semaphore Objects" msgstr "" -#: ../Doc/library/threading.rst:672 +#: ../Doc/library/threading.rst:673 msgid "" "This is one of the oldest synchronization primitives in the history of " "computer science, invented by the early Dutch computer scientist Edsger W. " @@ -867,7 +1087,7 @@ msgid "" "acquire` and :meth:`~Semaphore.release`)." msgstr "" -#: ../Doc/library/threading.rst:677 +#: ../Doc/library/threading.rst:678 msgid "" "A semaphore manages an internal counter which is decremented by each :meth:" "`~Semaphore.acquire` call and incremented by each :meth:`~Semaphore.release` " @@ -876,12 +1096,12 @@ msgid "" "meth:`~Semaphore.release`." msgstr "" -#: ../Doc/library/threading.rst:683 +#: ../Doc/library/threading.rst:684 msgid "" "Semaphores also support the :ref:`context management protocol `." msgstr "" -#: ../Doc/library/threading.rst:688 +#: ../Doc/library/threading.rst:689 msgid "" "This class implements semaphore objects. A semaphore manages an atomic " "counter representing the number of :meth:`release` calls minus the number " @@ -890,28 +1110,28 @@ msgid "" "If not given, *value* defaults to 1." msgstr "" -#: ../Doc/library/threading.rst:694 +#: ../Doc/library/threading.rst:695 msgid "" "The optional argument gives the initial *value* for the internal counter; it " "defaults to ``1``. If the *value* given is less than 0, :exc:`ValueError` is " "raised." msgstr "" -#: ../Doc/library/threading.rst:703 +#: ../Doc/library/threading.rst:704 msgid "Acquire a semaphore." msgstr "" -#: ../Doc/library/threading.rst:705 +#: ../Doc/library/threading.rst:706 msgid "When invoked without arguments:" msgstr "" -#: ../Doc/library/threading.rst:707 +#: ../Doc/library/threading.rst:708 msgid "" "If the internal counter is larger than zero on entry, decrement it by one " "and return true immediately." msgstr "" -#: ../Doc/library/threading.rst:709 +#: ../Doc/library/threading.rst:710 msgid "" "If the internal counter is zero on entry, block until awoken by a call to :" "meth:`~Semaphore.release`. Once awoken (and the counter is greater than 0), " @@ -920,28 +1140,28 @@ msgid "" "threads are awoken should not be relied on." msgstr "" -#: ../Doc/library/threading.rst:715 +#: ../Doc/library/threading.rst:716 msgid "" "When invoked with *blocking* set to false, do not block. If a call without " "an argument would block, return false immediately; otherwise, do the same " "thing as when called without arguments, and return true." msgstr "" -#: ../Doc/library/threading.rst:719 +#: ../Doc/library/threading.rst:720 msgid "" "When invoked with a *timeout* other than ``None``, it will block for at most " "*timeout* seconds. If acquire does not complete successfully in that " "interval, return false. Return true otherwise." msgstr "" -#: ../Doc/library/threading.rst:728 +#: ../Doc/library/threading.rst:729 msgid "" "Release a semaphore, incrementing the internal counter by one. When it was " "zero on entry and another thread is waiting for it to become larger than " "zero again, wake up that thread." msgstr "" -#: ../Doc/library/threading.rst:735 +#: ../Doc/library/threading.rst:736 msgid "" "Class implementing bounded semaphore objects. A bounded semaphore checks to " "make sure its current value doesn't exceed its initial value. If it does, :" @@ -950,11 +1170,11 @@ msgid "" "times it's a sign of a bug. If not given, *value* defaults to 1." msgstr "" -#: ../Doc/library/threading.rst:748 +#: ../Doc/library/threading.rst:749 msgid ":class:`Semaphore` Example" msgstr "" -#: ../Doc/library/threading.rst:750 +#: ../Doc/library/threading.rst:751 msgid "" "Semaphores are often used to guard resources with limited capacity, for " "example, a database server. In any situation where the size of the resource " @@ -962,37 +1182,37 @@ msgid "" "threads, your main thread would initialize the semaphore::" msgstr "" -#: ../Doc/library/threading.rst:759 +#: ../Doc/library/threading.rst:760 msgid "" "Once spawned, worker threads call the semaphore's acquire and release " "methods when they need to connect to the server::" msgstr "" -#: ../Doc/library/threading.rst:769 +#: ../Doc/library/threading.rst:770 msgid "" "The use of a bounded semaphore reduces the chance that a programming error " "which causes the semaphore to be released more than it's acquired will go " "undetected." msgstr "" -#: ../Doc/library/threading.rst:776 +#: ../Doc/library/threading.rst:777 msgid "Event Objects" msgstr "" -#: ../Doc/library/threading.rst:778 +#: ../Doc/library/threading.rst:779 msgid "" "This is one of the simplest mechanisms for communication between threads: " "one thread signals an event and other threads wait for it." msgstr "" -#: ../Doc/library/threading.rst:781 +#: ../Doc/library/threading.rst:782 msgid "" "An event object manages an internal flag that can be set to true with the :" "meth:`~Event.set` method and reset to false with the :meth:`~Event.clear` " "method. The :meth:`~Event.wait` method blocks until the flag is true." msgstr "" -#: ../Doc/library/threading.rst:788 +#: ../Doc/library/threading.rst:789 msgid "" "Class implementing event objects. An event manages a flag that can be set " "to true with the :meth:`~Event.set` method and reset to false with the :meth:" @@ -1000,39 +1220,39 @@ msgid "" "flag is initially false." msgstr "" -#: ../Doc/library/threading.rst:798 +#: ../Doc/library/threading.rst:799 msgid "Return true if and only if the internal flag is true." msgstr "" -#: ../Doc/library/threading.rst:802 +#: ../Doc/library/threading.rst:803 msgid "" "Set the internal flag to true. All threads waiting for it to become true are " "awakened. Threads that call :meth:`wait` once the flag is true will not " "block at all." msgstr "" -#: ../Doc/library/threading.rst:808 +#: ../Doc/library/threading.rst:809 msgid "" "Reset the internal flag to false. Subsequently, threads calling :meth:`wait` " "will block until :meth:`.set` is called to set the internal flag to true " "again." msgstr "" -#: ../Doc/library/threading.rst:814 +#: ../Doc/library/threading.rst:815 msgid "" "Block until the internal flag is true. If the internal flag is true on " "entry, return immediately. Otherwise, block until another thread calls :" "meth:`.set` to set the flag to true, or until the optional timeout occurs." msgstr "" -#: ../Doc/library/threading.rst:818 +#: ../Doc/library/threading.rst:819 msgid "" "When the timeout argument is present and not ``None``, it should be a " "floating point number specifying a timeout for the operation in seconds (or " "fractions thereof)." msgstr "" -#: ../Doc/library/threading.rst:822 +#: ../Doc/library/threading.rst:823 msgid "" "This method returns true if and only if the internal flag has been set to " "true, either before the wait call or after the wait starts, so it will " @@ -1040,11 +1260,11 @@ msgid "" "out." msgstr "" -#: ../Doc/library/threading.rst:834 +#: ../Doc/library/threading.rst:835 msgid "Timer Objects" msgstr "" -#: ../Doc/library/threading.rst:836 +#: ../Doc/library/threading.rst:837 msgid "" "This class represents an action that should be run only after a certain " "amount of time has passed --- a timer. :class:`Timer` is a subclass of :" @@ -1052,7 +1272,7 @@ msgid "" "threads." msgstr "" -#: ../Doc/library/threading.rst:840 +#: ../Doc/library/threading.rst:841 msgid "" "Timers are started, as with threads, by calling their :meth:`~Timer.start` " "method. The timer can be stopped (before its action has begun) by calling " @@ -1061,11 +1281,11 @@ msgid "" "by the user." msgstr "" -#: ../Doc/library/threading.rst:846 +#: ../Doc/library/threading.rst:847 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/threading.rst:857 +#: ../Doc/library/threading.rst:858 msgid "" "Create a timer that will run *function* with arguments *args* and keyword " "arguments *kwargs*, after *interval* seconds have passed. If *args* is " @@ -1073,17 +1293,17 @@ msgid "" "``None`` (the default) then an empty dict will be used." msgstr "" -#: ../Doc/library/threading.rst:867 +#: ../Doc/library/threading.rst:868 msgid "" "Stop the timer, and cancel the execution of the timer's action. This will " "only work if the timer is still in its waiting stage." msgstr "" -#: ../Doc/library/threading.rst:872 +#: ../Doc/library/threading.rst:873 msgid "Barrier Objects" msgstr "" -#: ../Doc/library/threading.rst:876 +#: ../Doc/library/threading.rst:877 msgid "" "This class provides a simple synchronization primitive for use by a fixed " "number of threads that need to wait for each other. Each of the threads " @@ -1092,18 +1312,18 @@ msgid "" "calls. At this point, the threads are released simultaneously." msgstr "" -#: ../Doc/library/threading.rst:882 +#: ../Doc/library/threading.rst:883 msgid "" "The barrier can be reused any number of times for the same number of threads." msgstr "" -#: ../Doc/library/threading.rst:884 +#: ../Doc/library/threading.rst:885 msgid "" "As an example, here is a simple way to synchronize a client and server " "thread::" msgstr "" -#: ../Doc/library/threading.rst:904 +#: ../Doc/library/threading.rst:905 msgid "" "Create a barrier object for *parties* number of threads. An *action*, when " "provided, is a callable to be called by one of the threads when they are " @@ -1111,7 +1331,7 @@ msgid "" "the :meth:`wait` method." msgstr "" -#: ../Doc/library/threading.rst:911 +#: ../Doc/library/threading.rst:912 msgid "" "Pass the barrier. When all the threads party to the barrier have called " "this function, they are all released simultaneously. If a *timeout* is " @@ -1119,80 +1339,80 @@ msgid "" "constructor." msgstr "" -#: ../Doc/library/threading.rst:916 +#: ../Doc/library/threading.rst:917 msgid "" "The return value is an integer in the range 0 to *parties* -- 1, different " "for each thread. This can be used to select a thread to do some special " "housekeeping, e.g.::" msgstr "" -#: ../Doc/library/threading.rst:925 +#: ../Doc/library/threading.rst:926 msgid "" "If an *action* was provided to the constructor, one of the threads will have " "called it prior to being released. Should this call raise an error, the " "barrier is put into the broken state." msgstr "" -#: ../Doc/library/threading.rst:929 +#: ../Doc/library/threading.rst:930 msgid "If the call times out, the barrier is put into the broken state." msgstr "" -#: ../Doc/library/threading.rst:931 +#: ../Doc/library/threading.rst:932 msgid "" "This method may raise a :class:`BrokenBarrierError` exception if the barrier " "is broken or reset while a thread is waiting." msgstr "" -#: ../Doc/library/threading.rst:936 +#: ../Doc/library/threading.rst:937 msgid "" "Return the barrier to the default, empty state. Any threads waiting on it " "will receive the :class:`BrokenBarrierError` exception." msgstr "" -#: ../Doc/library/threading.rst:939 +#: ../Doc/library/threading.rst:940 msgid "" "Note that using this function may can require some external synchronization " "if there are other threads whose state is unknown. If a barrier is broken " "it may be better to just leave it and create a new one." msgstr "" -#: ../Doc/library/threading.rst:945 +#: ../Doc/library/threading.rst:946 msgid "" "Put the barrier into a broken state. This causes any active or future calls " "to :meth:`wait` to fail with the :class:`BrokenBarrierError`. Use this for " "example if one of the needs to abort, to avoid deadlocking the application." msgstr "" -#: ../Doc/library/threading.rst:950 +#: ../Doc/library/threading.rst:951 msgid "" "It may be preferable to simply create the barrier with a sensible *timeout* " "value to automatically guard against one of the threads going awry." msgstr "" -#: ../Doc/library/threading.rst:956 +#: ../Doc/library/threading.rst:957 msgid "The number of threads required to pass the barrier." msgstr "" -#: ../Doc/library/threading.rst:960 +#: ../Doc/library/threading.rst:961 msgid "The number of threads currently waiting in the barrier." msgstr "" -#: ../Doc/library/threading.rst:964 +#: ../Doc/library/threading.rst:965 msgid "A boolean that is ``True`` if the barrier is in the broken state." msgstr "" -#: ../Doc/library/threading.rst:969 +#: ../Doc/library/threading.rst:970 msgid "" "This exception, a subclass of :exc:`RuntimeError`, is raised when the :class:" "`Barrier` object is reset or broken." msgstr "" -#: ../Doc/library/threading.rst:976 +#: ../Doc/library/threading.rst:977 msgid "" -"Using locks, conditions, and semaphores in the :keyword:`with` statement" +"Using locks, conditions, and semaphores in the :keyword:`!with` statement" msgstr "" -#: ../Doc/library/threading.rst:978 +#: ../Doc/library/threading.rst:979 msgid "" "All of the objects provided by this module that have :meth:`acquire` and :" "meth:`release` methods can be used as context managers for a :keyword:`with` " @@ -1201,11 +1421,11 @@ msgid "" "Hence, the following snippet::" msgstr "" -#: ../Doc/library/threading.rst:987 +#: ../Doc/library/threading.rst:988 msgid "is equivalent to::" -msgstr "" +msgstr "est équivalente à ::" -#: ../Doc/library/threading.rst:995 +#: ../Doc/library/threading.rst:996 msgid "" "Currently, :class:`Lock`, :class:`RLock`, :class:`Condition`, :class:" "`Semaphore`, and :class:`BoundedSemaphore` objects may be used as :keyword:" diff --git a/library/time.po b/library/time.po index 9971d51d9..60046619f 100644 --- a/library/time.po +++ b/library/time.po @@ -5,25 +5,28 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-28 10:12+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-03-27 13:21+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 1.8.11\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/time.rst:2 msgid ":mod:`time` --- Time access and conversions" -msgstr "" +msgstr ":mod:`time` — Accès au temps et conversions" #: ../Doc/library/time.rst:9 msgid "" "This module provides various time-related functions. For related " "functionality, see also the :mod:`datetime` and :mod:`calendar` modules." msgstr "" +"Ce module fournit différentes fonctions liées au temps. Pour les " +"fonctionnalités associées, voir aussi les modules :mod:`datetime` et :mod:" +"`calendar`." #: ../Doc/library/time.rst:12 msgid "" @@ -33,10 +36,17 @@ msgid "" "consult the platform documentation, because the semantics of these functions " "varies among platforms." msgstr "" +"Bien que ce module soit toujours disponible, toutes les fonctions ne sont " +"pas disponibles sur toutes les plateformes. La plupart des fonctions " +"définies dans ce module délèguent à des fonctions de même nom de la " +"bibliothèque C. Il peut parfois être utile de consulter la documentation de " +"la plate-forme, car la sémantique de ces fonctions peut varier." #: ../Doc/library/time.rst:18 msgid "An explanation of some terminology and conventions is in order." msgstr "" +"Vous trouvez ci-dessous, mises en ordre, quelques explications relative à la " +"terminologie et aux conventions." #: ../Doc/library/time.rst:24 msgid "" @@ -44,6 +54,10 @@ msgid "" "dependent. For Unix, the epoch is January 1, 1970, 00:00:00 (UTC). To find " "out what the epoch is on a given platform, look at ``time.gmtime(0)``." msgstr "" +"L':dfn:`epoch` est le point de départ du temps et dépend de la plate-forme. " +"Pour Unix, *epoch* est le 1er janvier 1970 à 00:00:00 (UTC). Pour savoir " +"comment est définie *epoch* sur une plate-forme donnée, regardez ``time." +"gmtime(0)``." #: ../Doc/library/time.rst:33 msgid "" @@ -51,6 +65,10 @@ msgid "" "elapsed seconds since the epoch, typically excluding `leap seconds`_. Leap " "seconds are excluded from this total on all POSIX-compliant platforms." msgstr "" +"Le terme :dfn:`secondes depuis *epoch*` désigne le nombre total de secondes " +"écoulées depuis *epoch*, souvent en excluant les secondes intercalaires " +"(`leap seconds`_). Les secondes intercalaires sont exclues de ce total sur " +"toutes les plates-formes conformes POSIX." #: ../Doc/library/time.rst:40 msgid "" @@ -58,6 +76,10 @@ msgid "" "or far in the future. The cut-off point in the future is determined by the " "C library; for 32-bit systems, it is typically in 2038." msgstr "" +"Les fonctions de ce module peuvent ne pas gérer les dates et heures " +"antérieures à *epoch* ou dans un avenir lointain. Le seuil du futur est " +"déterminé par la bibliothèque C ; pour les systèmes 32 bits, il s’agit " +"généralement de 2038." #: ../Doc/library/time.rst:50 msgid "" @@ -69,6 +91,14 @@ msgid "" "standards: values 69--99 are mapped to 1969--1999, and values 0--68 are " "mapped to 2000--2068." msgstr "" +"**Problèmes liés à l’an 2000 (Y2K)** : Python dépend de la bibliothèque C de " +"la plate-forme, qui n’a généralement pas de problèmes liés à l’an 2000, " +"étant donné que toutes les dates et heures sont représentées en interne en " +"secondes depuis *epoch*. La fonction :func:`strptime` peut analyser des " +"années à 2 chiffres lorsque le format ``%y`` est spécifié. Lorsque les " +"années à deux chiffres sont analysées, elles sont converties conformément " +"aux normes POSIX et ISO C : les valeurs 69—99 correspondent à 1969—1999 et " +"les valeurs 0—68 à 2000—2068." #: ../Doc/library/time.rst:62 msgid "" @@ -76,6 +106,9 @@ msgid "" "GMT). The acronym UTC is not a mistake but a compromise between English and " "French." msgstr "" +"UTC désigne le temps universel coordonné (*Coordinated Universal Time* en " +"anglais), anciennement l'heure de Greenwich (ou GMT). L'acronyme UTC n'est " +"pas une erreur mais un compromis entre l'anglais et le français." #: ../Doc/library/time.rst:68 msgid "" @@ -85,6 +118,12 @@ msgid "" "local rules (often it is read from a system file for flexibility) and is the " "only source of True Wisdom in this respect." msgstr "" +"Le DST (*Daylight Saving Time*) correspond à l’heure d’été, un ajustement du " +"fuseau horaire d’une heure (généralement) pendant une partie de l’année. Les " +"règles de DST sont magiques (déterminées par la loi locale) et peuvent " +"changer d’année en année. La bibliothèque C possède une table contenant les " +"règles locales (souvent, elle est lue dans un fichier système par souci de " +"souplesse) et constitue la seule source fiable." #: ../Doc/library/time.rst:74 msgid "" @@ -92,6 +131,10 @@ msgid "" "by the units in which their value or argument is expressed. E.g. on most " "Unix systems, the clock \"ticks\" only 50 or 100 times a second." msgstr "" +"La précision des diverses fonctions en temps réel peut être inférieure à " +"celle suggérée par les unités dans lesquelles leur valeur ou leur argument " +"est exprimé. Par exemple, sur la plupart des systèmes Unix, l’horloge ne « " +"bat » que 50 ou 100 fois par seconde." #: ../Doc/library/time.rst:78 msgid "" @@ -102,6 +145,12 @@ msgid "" "with a nonzero fraction (Unix :c:func:`select` is used to implement this, " "where available)." msgstr "" +"D’autre part, la précision de :func:`.time` et :func:`sleep` est meilleure " +"que leurs équivalents Unix : les temps sont exprimés en nombres à virgule " +"flottante, :func:`.time` renvoie le temps le plus précis disponible (en " +"utilisant :c:func:`gettimeofday` d'Unix si elle est disponible), et :func:" +"`sleep` accepte le temps avec une fraction non nulle (:c:func:`select` " +"d'Unix est utilisée pour l’implémenter, si elle est disponible)." #: ../Doc/library/time.rst:85 msgid "" @@ -111,10 +160,15 @@ msgid "" "`gmtime`, :func:`localtime`, and :func:`strptime` also offer attribute names " "for individual fields." msgstr "" +"La valeur temporelle renvoyée par :func:`gmtime`, :func:`localtime` et :func:" +"`strptime`, et acceptée par :func:`asctime`, :func:`mktime` et :func:" +"`strftime`, est une séquence de 9 nombres entiers. Les valeurs de retour de :" +"func:`gmtime`, :func:`localtime` et :func:`strptime` proposent également des " +"noms d’attributs pour des champs individuels." #: ../Doc/library/time.rst:91 msgid "See :class:`struct_time` for a description of these objects." -msgstr "" +msgstr "Voir :class:`struct_time` pour une description de ces objets." #: ../Doc/library/time.rst:93 msgid "" @@ -122,16 +176,23 @@ msgid "" "and :attr:`tm_zone` attributes when platform supports corresponding ``struct " "tm`` members." msgstr "" +"Le type :class:`struct_time` a été étendu pour fournir les attributs :attr:" +"`tm_gmtoff` et :attr:`tm_zone` lorsque la plateforme prend en charge les " +"membres ``struct tm`` correspondants." #: ../Doc/library/time.rst:98 msgid "" "The :class:`struct_time` attributes :attr:`tm_gmtoff` and :attr:`tm_zone` " "are now available on all platforms." msgstr "" +"Les attributs :class:`struct_time` :attr:`tm_gmtoff` et :attr:`tm_zone` sont " +"maintenant disponibles sur toutes les plateformes." #: ../Doc/library/time.rst:102 msgid "Use the following functions to convert between time representations:" msgstr "" +"Utilisez les fonctions suivantes pour convertir des représentations " +"temporelles :" #: ../Doc/library/time.rst:105 msgid "From" @@ -143,36 +204,36 @@ msgstr "À" #: ../Doc/library/time.rst:105 msgid "Use" -msgstr "" +msgstr "Utilisez" #: ../Doc/library/time.rst:107 ../Doc/library/time.rst:110 #: ../Doc/library/time.rst:113 ../Doc/library/time.rst:116 msgid "seconds since the epoch" -msgstr "" +msgstr "secondes depuis *epoch*" #: ../Doc/library/time.rst:107 ../Doc/library/time.rst:113 msgid ":class:`struct_time` in UTC" -msgstr "" +msgstr ":class:`struct_time` en UTC" #: ../Doc/library/time.rst:107 msgid ":func:`gmtime`" -msgstr "" +msgstr ":func:`gmtime`" #: ../Doc/library/time.rst:110 ../Doc/library/time.rst:116 msgid ":class:`struct_time` in local time" -msgstr "" +msgstr ":class:`struct_time` en heure locale" #: ../Doc/library/time.rst:110 msgid ":func:`localtime`" -msgstr "" +msgstr ":func:`localtime`" #: ../Doc/library/time.rst:113 msgid ":func:`calendar.timegm`" -msgstr "" +msgstr ":func:`calendar.timegm`" #: ../Doc/library/time.rst:116 msgid ":func:`mktime`" -msgstr "" +msgstr ":func:`mktime`" #: ../Doc/library/time.rst:124 msgid "Functions" @@ -186,12 +247,19 @@ msgid "" "returned by :func:`localtime` is used. Locale information is not used by :" "func:`asctime`." msgstr "" +"Convertit un *tuple* ou :class:`struct_time` représentant une heure renvoyée " +"par :func:`gmtime` ou :func:`localtime` en une chaîne de la forme suivante : " +"``'Sun Jun 20 23:21:05 1993'``. Si *t* n’est pas fourni, l’heure actuelle " +"renvoyée par :func:`localtime` est utilisée. Les informations sur les " +"paramètres régionaux ne sont pas utilisées par :func:`asctime`." #: ../Doc/library/time.rst:136 msgid "" "Unlike the C function of the same name, :func:`asctime` does not add a " "trailing newline." msgstr "" +"Contrairement à la fonction C du même nom, :func:`asctime` n’ajoute pas de " +"caractère de fin de ligne." #: ../Doc/library/time.rst:147 msgid "" @@ -200,6 +268,10 @@ msgid "" "meaning of \"processor time\", depends on that of the C function of the same " "name." msgstr "" +"Sous UNIX, renvoie le temps processeur actuel, en secondes, sous la forme " +"d'un nombre à virgule flottante exprimé en secondes. La précision, et en " +"fait la définition même de la signification de \"temps processeur\", dépend " +"de celle de la fonction C du même nom." #: ../Doc/library/time.rst:151 msgid "" @@ -208,19 +280,29 @@ msgid "" "function :c:func:`QueryPerformanceCounter`. The resolution is typically " "better than one microsecond." msgstr "" +"Sous Windows, cette fonction renvoie les secondes réelles (type horloge " +"murale) écoulées depuis le premier appel à cette fonction, en tant que " +"nombre à virgule flottante, en fonction de la fonction *Win32* :c:func:" +"`QueryPerformanceCounter`. La résolution est généralement meilleure qu'une " +"microseconde." -#: ../Doc/library/time.rst:156 +#: ../Doc/library/time.rst:159 msgid "" "The behaviour of this function depends on the platform: use :func:" "`perf_counter` or :func:`process_time` instead, depending on your " "requirements, to have a well defined behaviour." msgstr "" +"Le comportement de cette fonction dépend de la plate-forme : utilisez " +"plutôt :func:`perf_counter` ou :func:`process_time`, selon vos besoins, pour " +"avoir un comportement bien défini." #: ../Doc/library/time.rst:163 msgid "" "Return the *clk_id* of the thread-specific CPU-time clock for the specified " "*thread_id*." msgstr "" +"Renvoie le *clk_id* de l'horloge du temps CPU spécifique au fil d'exécution " +"pour le *thread_id* spécifié." #: ../Doc/library/time.rst:165 msgid "" @@ -228,52 +310,68 @@ msgid "" "attribute of :class:`threading.Thread` objects to get a suitable value for " "*thread_id*." msgstr "" +"Utilisez :func:`threading.get_ident` ou l'attribut :attr:`~threading.Thread." +"ident` de :class:`threading.Thread` pour obtenir une valeur appropriée pour " +"*thread_id*." #: ../Doc/library/time.rst:170 msgid "" "Passing an invalid or expired *thread_id* may result in undefined behavior, " "such as segmentation fault." msgstr "" +"Passer un *thread_id* invalide ou arrivé à expiration peut entraîner un " +"comportement indéfini, tel qu’une erreur de segmentation." -#: ../Doc/library/time.rst:173 +#: ../Doc/library/time.rst:175 msgid "" -"Availability: Unix (see the man page for :manpage:`pthread_getcpuclockid(3)` " -"for further information)" +":ref:`Availability `: Unix (see the man page for :manpage:" +"`pthread_getcpuclockid(3)` for further information)." msgstr "" +":ref:`Disponibilité ` : Unix (regardez la page man pour :" +"manpage:`pthread_getcpuclockid(3)` pour plus d’information)." #: ../Doc/library/time.rst:180 msgid "" "Return the resolution (precision) of the specified clock *clk_id*. Refer " "to :ref:`time-clock-id-constants` for a list of accepted values for *clk_id*." msgstr "" +"Renvoie la résolution (précision) de l’horloge *clk_id*. Référez-vous à :ref:" +"`time-clock-id-constants` pour une liste des valeurs acceptées pour *clk_id*." -#: ../Doc/library/time.rst:183 ../Doc/library/time.rst:193 -#: ../Doc/library/time.rst:202 ../Doc/library/time.rst:212 -#: ../Doc/library/time.rst:221 ../Doc/library/time.rst:650 -#: ../Doc/library/time.rst:767 ../Doc/library/time.rst:786 -#: ../Doc/library/time.rst:804 ../Doc/library/time.rst:828 -msgid "Availability: Unix." -msgstr "Disponibilité : Unix." +#: ../Doc/library/time.rst:184 ../Doc/library/time.rst:194 +#: ../Doc/library/time.rst:203 ../Doc/library/time.rst:213 +#: ../Doc/library/time.rst:222 ../Doc/library/time.rst:649 +#: ../Doc/library/time.rst:766 ../Doc/library/time.rst:785 +#: ../Doc/library/time.rst:803 ../Doc/library/time.rst:827 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." #: ../Doc/library/time.rst:190 msgid "" "Return the time of the specified clock *clk_id*. Refer to :ref:`time-clock-" "id-constants` for a list of accepted values for *clk_id*." msgstr "" +"Renvoie l’heure de l’horloge *clk_id*. Référez-vous à :ref:`time-clock-id-" +"constants` pour une liste des valeurs acceptées pour *clk_id*." #: ../Doc/library/time.rst:200 msgid "Similar to :func:`clock_gettime` but return time as nanoseconds." msgstr "" +"Similaire à :func:`clock_gettime` mais le temps renvoyé est exprimé en " +"nanosecondes." #: ../Doc/library/time.rst:209 msgid "" "Set the time of the specified clock *clk_id*. Currently, :data:" "`CLOCK_REALTIME` is the only accepted value for *clk_id*." msgstr "" +"Définit l’heure de l’horloge *clk_id*. Actuellement, :data:`CLOCK_REALTIME` " +"est la seule valeur acceptée pour *clk_id*." #: ../Doc/library/time.rst:219 msgid "Similar to :func:`clock_settime` but set time with nanoseconds." msgstr "" +"Similaire à :func:`clock_settime` mais définit l’heure avec des nanosecondes." #: ../Doc/library/time.rst:228 msgid "" @@ -283,12 +381,21 @@ msgid "" "``asctime(localtime(secs))``. Locale information is not used by :func:" "`ctime`." msgstr "" +"Convertit une heure exprimée en secondes depuis *epoch* en une chaîne " +"représentant l’heure locale. Si *secs* n’est pas fourni ou vaut :const:" +"`None`, l’heure actuelle renvoyée par :func:`.time` est utilisée. " +"``ctime(secs)`` est équivalent à ``asctime(localtime(secs))``. Les " +"informations sur les paramètres régionaux ne sont pas utilisées par :func:" +"`ctime`." #: ../Doc/library/time.rst:236 msgid "" "Get information on the specified clock as a namespace object. Supported " "clock names and the corresponding functions to read their value are:" msgstr "" +"Renvoie des informations sur l’horloge spécifiée en tant qu’objet d’espace " +"de nom. Les noms d’horloge pris en charge et les fonctions correspondantes " +"permettant de lire leur valeur sont les suivants :" #: ../Doc/library/time.rst:240 msgid "``'clock'``: :func:`time.clock`" @@ -316,28 +423,36 @@ msgstr "``'time'``: :func:`time.time`" #: ../Doc/library/time.rst:247 msgid "The result has the following attributes:" -msgstr "" +msgstr "Le résultat a les attributs suivants :" #: ../Doc/library/time.rst:249 msgid "" "*adjustable*: ``True`` if the clock can be changed automatically (e.g. by a " "NTP daemon) or manually by the system administrator, ``False`` otherwise" msgstr "" +"*adjustable* : ``True`` si l’horloge peut être changée automatiquement (par " +"exemple par un démon NTP) ou manuellement par l’administrateur système, " +"``False`` autrement" #: ../Doc/library/time.rst:251 msgid "" "*implementation*: The name of the underlying C function used to get the " "clock value. Refer to :ref:`time-clock-id-constants` for possible values." msgstr "" +"*implementation* : nom de la fonction C sous-jacente utilisée pour obtenir " +"la valeur d’horloge. Voir :ref:`time-clock-id-constants` pour les valeurs " +"possibles." #: ../Doc/library/time.rst:253 msgid "" "*monotonic*: ``True`` if the clock cannot go backward, ``False`` otherwise" msgstr "" +"*monotonic* : ``True`` si l’horloge ne peut pas revenir en arrière, " +"``False`` autrement" #: ../Doc/library/time.rst:255 msgid "*resolution*: The resolution of the clock in seconds (:class:`float`)" -msgstr "" +msgstr "*resolution* : La résolution de l’horloge en secondes (:class:`float`)" #: ../Doc/library/time.rst:262 msgid "" @@ -348,6 +463,12 @@ msgid "" "the :class:`struct_time` object. See :func:`calendar.timegm` for the inverse " "of this function." msgstr "" +"Convertit un temps exprimé en secondes depuis *epoch* en un :class:" +"`struct_time` au format UTC dans lequel le drapeau *dst* est toujours égal à " +"zéro. Si *secs* n’est pas fourni ou vaut :const:`None`, l’heure actuelle " +"renvoyée par :func:`.time` est utilisée. Les fractions de seconde sont " +"ignorées. Voir ci-dessus pour une description de l’objet :class:" +"`struct_time`. Voir :func:`calendar.timegm` pour l’inverse de cette fonction." #: ../Doc/library/time.rst:272 msgid "" @@ -355,6 +476,10 @@ msgid "" "or :const:`None`, the current time as returned by :func:`.time` is used. " "The dst flag is set to ``1`` when DST applies to the given time." msgstr "" +"Comme :func:`gmtime` mais convertit le résultat en heure locale. Si *secs* " +"n’est pas fourni ou vaut :const:`None`, l’heure actuelle renvoyée par :func:" +"`.time` est utilisée. Le drapeau *dst* est mis à ``1`` lorsque l’heure d’été " +"s’applique à l’heure indiquée." #: ../Doc/library/time.rst:279 msgid "" @@ -368,6 +493,15 @@ msgid "" "libraries). The earliest date for which it can generate a time is platform-" "dependent." msgstr "" +"C’est la fonction inverse de :func:`localtime`. Son argument est soit un :" +"class:`struct_time` soit un 9-tuple (puisque le drapeau *dst* est " +"nécessaire ; utilisez ``-1`` comme drapeau *dst* s’il est inconnu) qui " +"exprime le temps **local**, pas UTC. Il retourne un nombre à virgule " +"flottante, pour compatibilité avec :func:`.time`. Si la valeur d’entrée ne " +"peut pas être représentée comme une heure valide, soit :exc:`OverflowError` " +"ou :exc:`ValueError` sera levée (selon que la valeur non valide est " +"interceptée par Python ou par les bibliothèque C sous-jacentes). La date la " +"plus proche pour laquelle il peut générer une heure dépend de la plate-forme." #: ../Doc/library/time.rst:291 msgid "" @@ -376,27 +510,25 @@ msgid "" "updates. The reference point of the returned value is undefined, so that " "only the difference between the results of consecutive calls is valid." msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) d’une horloge " +"monotone, c’est-à-dire une horloge qui ne peut pas revenir en arrière. " +"L’horloge n’est pas affectée par les mises à jour de l’horloge système. Le " +"point de référence de la valeur renvoyée n’est pas défini, de sorte que " +"seule la différence entre les résultats d’appels consécutifs est valide." -#: ../Doc/library/time.rst:296 -msgid "" -"On Windows versions older than Vista, :func:`monotonic` detects :c:func:" -"`GetTickCount` integer overflow (32 bits, roll-over after 49.7 days). It " -"increases an internal epoch (reference time) by 2\\ :sup:`32` each time that " -"an overflow is detected. The epoch is stored in the process-local state and " -"so the value of :func:`monotonic` may be different in two Python processes " -"running for more than 49 days. On more recent versions of Windows and on " -"other operating systems, :func:`monotonic` is system-wide." +#: ../Doc/library/time.rst:297 +msgid "The function is now always available and always system-wide." msgstr "" +"La fonction est maintenant toujours disponible et toujours à l’échelle du " +"système." -#: ../Doc/library/time.rst:305 -msgid "The function is now always available." -msgstr "" - -#: ../Doc/library/time.rst:311 +#: ../Doc/library/time.rst:303 msgid "Similar to :func:`monotonic`, but return time as nanoseconds." msgstr "" +"Similaire à :func:`monotonique`, mais le temps de retour est exprimé en " +"nanosecondes." -#: ../Doc/library/time.rst:320 +#: ../Doc/library/time.rst:312 msgid "" "Return the value (in fractional seconds) of a performance counter, i.e. a " "clock with the highest available resolution to measure a short duration. It " @@ -404,12 +536,19 @@ msgid "" "point of the returned value is undefined, so that only the difference " "between the results of consecutive calls is valid." msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) d’un compteur de " +"performance, c’est-à-dire une horloge avec la résolution disponible la plus " +"élevée possible pour mesurer une courte durée. Cela inclut le temps écoulé " +"pendant le sommeil et concerne l’ensemble du système. Le point de référence " +"de la valeur renvoyée n’est pas défini, de sorte que seule la différence " +"entre les résultats d’appels consécutifs est valide." -#: ../Doc/library/time.rst:330 +#: ../Doc/library/time.rst:322 msgid "Similar to :func:`perf_counter`, but return time as nanoseconds." msgstr "" +"Similaire à :func:`perf_counter`, mais renvoie le temps en nanosecondes." -#: ../Doc/library/time.rst:342 +#: ../Doc/library/time.rst:334 msgid "" "Return the value (in fractional seconds) of the sum of the system and user " "CPU time of the current process. It does not include time elapsed during " @@ -417,12 +556,18 @@ msgid "" "returned value is undefined, so that only the difference between the results " "of consecutive calls is valid." msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) de la somme des temps " +"système et utilisateur du processus en cours. Il ne comprend pas le temps " +"écoulé pendant le sommeil. C’est un processus par définition. Le point de " +"référence de la valeur renvoyée n’est pas défini, de sorte que seule la " +"différence entre les résultats d’appels consécutifs est valide." -#: ../Doc/library/time.rst:352 +#: ../Doc/library/time.rst:344 msgid "Similar to :func:`process_time` but return time as nanoseconds." msgstr "" +"Similaire à :func:`process_time` mais renvoie le temps en nanosecondes." -#: ../Doc/library/time.rst:358 +#: ../Doc/library/time.rst:350 msgid "" "Suspend execution of the calling thread for the given number of seconds. The " "argument may be a floating point number to indicate a more precise sleep " @@ -432,15 +577,26 @@ msgid "" "requested by an arbitrary amount because of the scheduling of other activity " "in the system." msgstr "" +"Suspend l’exécution du thread appelant pendant le nombre de secondes " +"indiqué. L’argument peut être un nombre à virgule flottante pour indiquer un " +"temps de sommeil plus précis. Le temps de suspension réel peut être " +"inférieur à celui demandé, car tout signal capturé mettra fin à la commande :" +"func:`sleep` après l’exécution de la routine de capture de ce signal. En " +"outre, le temps de suspension peut être plus long que celui demandé par un " +"montant arbitraire en raison de la planification d’une autre activité dans " +"le système." -#: ../Doc/library/time.rst:366 +#: ../Doc/library/time.rst:358 msgid "" "The function now sleeps at least *secs* even if the sleep is interrupted by " "a signal, except if the signal handler raises an exception (see :pep:`475` " "for the rationale)." msgstr "" +"La fonction dort maintenant au moins *secondes* même si le sommeil est " +"interrompu par un signal, sauf si le gestionnaire de signaux lève une " +"exception (voir :pep:`475` pour la justification)." -#: ../Doc/library/time.rst:374 +#: ../Doc/library/time.rst:369 msgid "" "Convert a tuple or :class:`struct_time` representing a time as returned by :" "func:`gmtime` or :func:`localtime` to a string as specified by the *format* " @@ -448,290 +604,339 @@ msgid "" "`localtime` is used. *format* must be a string. :exc:`ValueError` is " "raised if any field in *t* is outside of the allowed range." msgstr "" +"Convertit un *tuple* ou :class:`struct_time` représentant une heure renvoyée " +"par :func:`gmtime` ou :func:`localtime` en une chaîne spécifiée par " +"l’argument *format*. Si *t* n’est pas fourni, l’heure actuelle renvoyée par :" +"func:`localtime` est utilisée. *format* doit être une chaîne. Si l’un des " +"champs de *t* se situe en dehors de la plage autorisée, une :exc:" +"`ValueError` est levée ." -#: ../Doc/library/time.rst:380 +#: ../Doc/library/time.rst:375 msgid "" "0 is a legal argument for any position in the time tuple; if it is normally " "illegal the value is forced to a correct one." msgstr "" +"0 est un argument légal pour toute position dans le *tuple* temporel ; s’il " +"est normalement illégal, la valeur est forcée à une valeur correcte." -#: ../Doc/library/time.rst:383 +#: ../Doc/library/time.rst:378 msgid "" "The following directives can be embedded in the *format* string. They are " "shown without the optional field width and precision specification, and are " "replaced by the indicated characters in the :func:`strftime` result:" msgstr "" +"Les directives suivantes peuvent être incorporées dans la chaîne *format*. " +"Ils sont affichés sans la spécification facultative de largeur de champ ni " +"de précision, et sont remplacés par les caractères indiqués dans le résultat " +"de :func:`strftime` :" -#: ../Doc/library/time.rst:388 +#: ../Doc/library/time.rst:383 msgid "Directive" msgstr "Directive" -#: ../Doc/library/time.rst:388 +#: ../Doc/library/time.rst:383 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/time.rst:388 +#: ../Doc/library/time.rst:383 msgid "Notes" msgstr "Notes" -#: ../Doc/library/time.rst:390 +#: ../Doc/library/time.rst:385 msgid "``%a``" msgstr "``%a``" -#: ../Doc/library/time.rst:390 +#: ../Doc/library/time.rst:385 msgid "Locale's abbreviated weekday name." -msgstr "" +msgstr "Nom abrégé du jour de la semaine selon les paramètres régionaux." -#: ../Doc/library/time.rst:393 +#: ../Doc/library/time.rst:388 msgid "``%A``" msgstr "``%A``" -#: ../Doc/library/time.rst:393 +#: ../Doc/library/time.rst:388 msgid "Locale's full weekday name." -msgstr "" +msgstr "Le nom de semaine complet de la région." -#: ../Doc/library/time.rst:395 +#: ../Doc/library/time.rst:390 msgid "``%b``" msgstr "``%b``" -#: ../Doc/library/time.rst:395 +#: ../Doc/library/time.rst:390 msgid "Locale's abbreviated month name." -msgstr "" +msgstr "Nom abrégé du mois de la région." -#: ../Doc/library/time.rst:398 +#: ../Doc/library/time.rst:393 msgid "``%B``" msgstr "``%B``" -#: ../Doc/library/time.rst:398 +#: ../Doc/library/time.rst:393 msgid "Locale's full month name." -msgstr "" +msgstr "Nom complet du mois de la région." -#: ../Doc/library/time.rst:400 +#: ../Doc/library/time.rst:395 msgid "``%c``" msgstr "``%c``" -#: ../Doc/library/time.rst:400 +#: ../Doc/library/time.rst:395 msgid "Locale's appropriate date and time representation." -msgstr "Représentation locale de la date et de l'heure." +msgstr "" +"Représentation appropriée de la date et de l’heure selon les paramètres " +"régionaux." -#: ../Doc/library/time.rst:403 +#: ../Doc/library/time.rst:398 msgid "``%d``" msgstr "``%d``" -#: ../Doc/library/time.rst:403 +#: ../Doc/library/time.rst:398 msgid "Day of the month as a decimal number [01,31]." -msgstr "" +msgstr "Jour du mois sous forme décimale [01,31]." -#: ../Doc/library/time.rst:406 +#: ../Doc/library/time.rst:401 msgid "``%H``" msgstr "``%H``" -#: ../Doc/library/time.rst:406 +#: ../Doc/library/time.rst:401 msgid "Hour (24-hour clock) as a decimal number [00,23]." -msgstr "" +msgstr "Heure (horloge sur 24 heures) sous forme de nombre décimal [00,23]." -#: ../Doc/library/time.rst:409 +#: ../Doc/library/time.rst:404 msgid "``%I``" msgstr "``%I``" -#: ../Doc/library/time.rst:409 +#: ../Doc/library/time.rst:404 msgid "Hour (12-hour clock) as a decimal number [01,12]." -msgstr "" +msgstr "Heure (horloge sur 12 heures) sous forme de nombre décimal [01,12]." -#: ../Doc/library/time.rst:412 +#: ../Doc/library/time.rst:407 msgid "``%j``" msgstr "``%j``" -#: ../Doc/library/time.rst:412 +#: ../Doc/library/time.rst:407 msgid "Day of the year as a decimal number [001,366]." -msgstr "" +msgstr "Jour de l’année sous forme de nombre décimal [001,366]." -#: ../Doc/library/time.rst:415 +#: ../Doc/library/time.rst:410 msgid "``%m``" msgstr "``%m``" -#: ../Doc/library/time.rst:415 +#: ../Doc/library/time.rst:410 msgid "Month as a decimal number [01,12]." -msgstr "" +msgstr "Mois sous forme décimale [01,12]." -#: ../Doc/library/time.rst:418 +#: ../Doc/library/time.rst:413 msgid "``%M``" msgstr "``%M``" -#: ../Doc/library/time.rst:418 +#: ../Doc/library/time.rst:413 msgid "Minute as a decimal number [00,59]." -msgstr "" +msgstr "Minutes sous forme décimale [00,59]." -#: ../Doc/library/time.rst:421 +#: ../Doc/library/time.rst:416 msgid "``%p``" msgstr "``%p``" -#: ../Doc/library/time.rst:421 +#: ../Doc/library/time.rst:416 msgid "Locale's equivalent of either AM or PM." -msgstr "Équivalent local à AM/PM." +msgstr "L’équivalent local de AM ou PM." -#: ../Doc/library/time.rst:421 +#: ../Doc/library/time.rst:416 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/time.rst:424 +#: ../Doc/library/time.rst:419 msgid "``%S``" msgstr "``%S``" -#: ../Doc/library/time.rst:424 +#: ../Doc/library/time.rst:419 msgid "Second as a decimal number [00,61]." -msgstr "" +msgstr "Deuxième sous forme de nombre décimal [00,61]." -#: ../Doc/library/time.rst:424 +#: ../Doc/library/time.rst:419 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/library/time.rst:427 +#: ../Doc/library/time.rst:422 msgid "``%U``" msgstr "``%U``" -#: ../Doc/library/time.rst:427 +#: ../Doc/library/time.rst:422 msgid "" "Week number of the year (Sunday as the first day of the week) as a decimal " "number [00,53]. All days in a new year preceding the first Sunday are " "considered to be in week 0." msgstr "" +"Numéro de semaine de l’année (dimanche en tant que premier jour de la " +"semaine) sous forme décimale [00,53]. Tous les jours d’une nouvelle année " +"précédant le premier dimanche sont considérés comme appartenant à la semaine " +"0." -#: ../Doc/library/time.rst:427 ../Doc/library/time.rst:438 +#: ../Doc/library/time.rst:422 ../Doc/library/time.rst:433 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/time.rst:435 +#: ../Doc/library/time.rst:430 msgid "``%w``" msgstr "``%w``" -#: ../Doc/library/time.rst:435 +#: ../Doc/library/time.rst:430 msgid "Weekday as a decimal number [0(Sunday),6]." -msgstr "" +msgstr "Jour de la semaine sous forme de nombre décimal [0 (dimanche), 6]." -#: ../Doc/library/time.rst:438 +#: ../Doc/library/time.rst:433 msgid "``%W``" msgstr "``%W``" -#: ../Doc/library/time.rst:438 +#: ../Doc/library/time.rst:433 msgid "" "Week number of the year (Monday as the first day of the week) as a decimal " "number [00,53]. All days in a new year preceding the first Monday are " "considered to be in week 0." msgstr "" +"Numéro de semaine de l’année (lundi comme premier jour de la semaine) sous " +"forme décimale [00,53]. Tous les jours d’une nouvelle année précédant le " +"premier lundi sont considérés comme appartenant à la semaine 0." -#: ../Doc/library/time.rst:446 +#: ../Doc/library/time.rst:441 msgid "``%x``" msgstr "``%x``" -#: ../Doc/library/time.rst:446 +#: ../Doc/library/time.rst:441 msgid "Locale's appropriate date representation." -msgstr "Représentation locale de la date." +msgstr "Représentation de la date appropriée par les paramètres régionaux." -#: ../Doc/library/time.rst:449 +#: ../Doc/library/time.rst:444 msgid "``%X``" msgstr "``%X``" -#: ../Doc/library/time.rst:449 +#: ../Doc/library/time.rst:444 msgid "Locale's appropriate time representation." msgstr "Représentation locale de l'heure." -#: ../Doc/library/time.rst:452 +#: ../Doc/library/time.rst:447 msgid "``%y``" msgstr "``%y``" -#: ../Doc/library/time.rst:452 +#: ../Doc/library/time.rst:447 msgid "Year without century as a decimal number [00,99]." -msgstr "" +msgstr "Année sans siècle comme un nombre décimal [00, 99]." -#: ../Doc/library/time.rst:455 +#: ../Doc/library/time.rst:450 msgid "``%Y``" msgstr "``%Y``" -#: ../Doc/library/time.rst:455 +#: ../Doc/library/time.rst:450 msgid "Year with century as a decimal number." msgstr "Année complète sur quatre chiffres." -#: ../Doc/library/time.rst:458 +#: ../Doc/library/time.rst:453 msgid "``%z``" msgstr "``%z``" -#: ../Doc/library/time.rst:458 +#: ../Doc/library/time.rst:453 msgid "" "Time zone offset indicating a positive or negative time difference from UTC/" "GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M " "represents decimal minute digits [-23:59, +23:59]." msgstr "" +"Décalage de fuseau horaire indiquant une différence de temps positive ou " +"négative par rapport à UTC / GMT de la forme *+HHMM* ou *-HHMM*, où H " +"représente les chiffres des heures décimales et M, les chiffres des minutes " +"décimales [*-23:59*, *+23:59*]." -#: ../Doc/library/time.rst:464 +#: ../Doc/library/time.rst:459 msgid "``%Z``" msgstr "``%Z``" -#: ../Doc/library/time.rst:464 +#: ../Doc/library/time.rst:459 msgid "Time zone name (no characters if no time zone exists)." msgstr "" +"Nom du fuseau horaire (pas de caractères s’il n’y a pas de fuseau horaire)." -#: ../Doc/library/time.rst:467 +#: ../Doc/library/time.rst:462 msgid "``%%``" msgstr "``%%``" -#: ../Doc/library/time.rst:467 +#: ../Doc/library/time.rst:462 msgid "A literal ``'%'`` character." msgstr "Un caractère ``'%'`` littéral." -#: ../Doc/library/time.rst:470 +#: ../Doc/library/time.rst:465 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/time.rst:473 +#: ../Doc/library/time.rst:468 msgid "" "When used with the :func:`strptime` function, the ``%p`` directive only " "affects the output hour field if the ``%I`` directive is used to parse the " "hour." msgstr "" +"Lorsqu’elle est utilisée avec la fonction :func:`strptime`, la directive ``" +"%p`` n’affecte le champ d’heure en sortie que si la directive ``%I`` est " +"utilisée pour analyser l’heure." -#: ../Doc/library/time.rst:477 +#: ../Doc/library/time.rst:472 msgid "" "The range really is ``0`` to ``61``; value ``60`` is valid in timestamps " "representing `leap seconds`_ and value ``61`` is supported for historical " "reasons." msgstr "" +"La plage est en réalité de ``0`` à ``61`` ; La valeur ``60`` est valide dans " +"les *timestamps* représentant des `leap seconds`_ et la valeur ``61`` est " +"prise en charge pour des raisons historiques." -#: ../Doc/library/time.rst:482 +#: ../Doc/library/time.rst:477 msgid "" "When used with the :func:`strptime` function, ``%U`` and ``%W`` are only " "used in calculations when the day of the week and the year are specified." msgstr "" +"Lorsqu’elles sont utilisées avec la fonction :func:`strptime`, ``%U`` et ``" +"%W`` ne sont utilisées que dans les calculs lorsque le jour de la semaine et " +"l’année sont spécifiés." -#: ../Doc/library/time.rst:485 +#: ../Doc/library/time.rst:480 msgid "" "Here is an example, a format for dates compatible with that specified in " "the :rfc:`2822` Internet email standard. [#]_ ::" msgstr "" +"Voici un exemple de format de date compatible avec celui spécifié dans la " +"norme de courrier électronique Internet suivante :rfc:`2822`. [#]_ ::" -#: ../Doc/library/time.rst:492 +#: ../Doc/library/time.rst:487 msgid "" "Additional directives may be supported on certain platforms, but only the " "ones listed here have a meaning standardized by ANSI C. To see the full set " "of format codes supported on your platform, consult the :manpage:" "`strftime(3)` documentation." msgstr "" +"Des directives supplémentaires peuvent être prises en charge sur certaines " +"plates-formes, mais seules celles énumérées ici ont une signification " +"normalisée par ANSI C. Pour voir la liste complète des codes de format pris " +"en charge sur votre plate-forme, consultez la documentation :manpage:" +"`strftime(3)`." -#: ../Doc/library/time.rst:497 +#: ../Doc/library/time.rst:492 msgid "" "On some platforms, an optional field width and precision specification can " "immediately follow the initial ``'%'`` of a directive in the following " "order; this is also not portable. The field width is normally 2 except for ``" "%j`` where it is 3." msgstr "" +"Sur certaines plates-formes, une spécification facultative de largeur et de " +"précision de champ peut suivre immédiatement le ``'%'`` initial d’une " +"directive dans l’ordre suivant ; ce n’est pas non plus portable. La largeur " +"du champ est normalement 2 sauf pour ``%j`` où il est 3." -#: ../Doc/library/time.rst:505 +#: ../Doc/library/time.rst:503 msgid "" "Parse a string representing a time according to a format. The return value " "is a :class:`struct_time` as returned by :func:`gmtime` or :func:`localtime`." msgstr "" +"Analyse une chaîne représentant une heure selon un format. La valeur " +"renvoyée est une :class:`struct_time` tel que renvoyé par :func:`gmtime` ou :" +"func:`localtime`." -#: ../Doc/library/time.rst:509 +#: ../Doc/library/time.rst:507 msgid "" "The *format* parameter uses the same directives as those used by :func:" "`strftime`; it defaults to ``\"%a %b %d %H:%M:%S %Y\"`` which matches the " @@ -741,20 +946,33 @@ msgid "" "accurate values cannot be inferred are ``(1900, 1, 1, 0, 0, 0, 0, 1, -1)``. " "Both *string* and *format* must be strings." msgstr "" +"Le paramètre *format* utilise les mêmes directives que celles utilisées par :" +"func:`strftime`; La valeur par défaut est ``\"%a %b %d %H:%M:%S %Y\"`` qui " +"correspond à la mise en forme renvoyée par :func:`ctime`. Si *string* ne " +"peut pas être analysé selon *format*, ou s’il contient trop de données après " +"l’analyse, une exception :exc:`ValueError` est levée. Les valeurs par défaut " +"utilisées pour renseigner les données manquantes lorsque des valeurs plus " +"précises ne peuvent pas être inférées sont ``(1900, 1, 1, 0, 0, 0, 0, 1, " +"-1)``. *string* et *format* doivent être des chaînes." -#: ../Doc/library/time.rst:517 +#: ../Doc/library/time.rst:515 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" -#: ../Doc/library/time.rst:524 +#: ../Doc/library/time.rst:522 msgid "" "Support for the ``%Z`` directive is based on the values contained in " "``tzname`` and whether ``daylight`` is true. Because of this, it is " "platform-specific except for recognizing UTC and GMT which are always known " "(and are considered to be non-daylight savings timezones)." msgstr "" +"La prise en charge de la directive ``%Z`` est basée sur les valeurs " +"contenues dans ``tzname`` et sur le fait de savoir si ``daylight`` est vrai. " +"Pour cette raison, il est spécifique à la plate-forme, à l’exception de la " +"reconnaissance des heures UTC et GMT, qui sont toujours connues (et " +"considérées comme des fuseaux horaires ne respectant pas l’heure d’été)." -#: ../Doc/library/time.rst:529 +#: ../Doc/library/time.rst:527 msgid "" "Only the directives specified in the documentation are supported. Because " "``strftime()`` is implemented per platform it can sometimes offer more " @@ -762,177 +980,196 @@ msgid "" "platform and thus does not necessarily support all directives available that " "are not documented as supported." msgstr "" +"Seules les directives spécifiées dans la documentation sont prises en " +"charge. Parce que ``strftime()`` peut être implémenté différemment sur " +"chaque plate-forme, il peut parfois offrir plus de directives que celles " +"listées. Mais ``strptime()`` est indépendant de toute plate-forme et ne " +"supporte donc pas nécessairement toutes les directives disponibles qui ne " +"sont pas documentées comme gérées." -#: ../Doc/library/time.rst:538 +#: ../Doc/library/time.rst:536 msgid "" "The type of the time value sequence returned by :func:`gmtime`, :func:" "`localtime`, and :func:`strptime`. It is an object with a :term:`named " "tuple` interface: values can be accessed by index and by attribute name. " "The following values are present:" msgstr "" +"Le type de la séquence de valeur temporelle renvoyé par :func:`gmtime`, :" +"func:`localtime` et :func:`strptime`. Semblable à un :term:`named tuple` : " +"ses valeurs sont accessibles par index et par nom d’attribut. Les valeurs " +"suivantes sont présentes :" -#: ../Doc/library/time.rst:544 +#: ../Doc/library/time.rst:542 msgid "Index" -msgstr "" +msgstr "Index" -#: ../Doc/library/time.rst:544 +#: ../Doc/library/time.rst:542 msgid "Attribute" msgstr "Attribut" -#: ../Doc/library/time.rst:544 +#: ../Doc/library/time.rst:542 msgid "Values" msgstr "Valeurs" -#: ../Doc/library/time.rst:546 +#: ../Doc/library/time.rst:544 msgid "0" msgstr "0" -#: ../Doc/library/time.rst:546 +#: ../Doc/library/time.rst:544 msgid ":attr:`tm_year`" msgstr ":attr:`tm_year`" -#: ../Doc/library/time.rst:546 +#: ../Doc/library/time.rst:544 msgid "(for example, 1993)" -msgstr "" +msgstr "(par exemple, 1993)" -#: ../Doc/library/time.rst:548 +#: ../Doc/library/time.rst:546 msgid "1" msgstr "1" -#: ../Doc/library/time.rst:548 +#: ../Doc/library/time.rst:546 msgid ":attr:`tm_mon`" msgstr ":attr:`tm_mon`" -#: ../Doc/library/time.rst:548 +#: ../Doc/library/time.rst:546 msgid "range [1, 12]" -msgstr "" +msgstr "plage [1, 12]" -#: ../Doc/library/time.rst:550 +#: ../Doc/library/time.rst:548 msgid "2" msgstr "2" -#: ../Doc/library/time.rst:550 +#: ../Doc/library/time.rst:548 msgid ":attr:`tm_mday`" msgstr ":attr:`tm_mday`" -#: ../Doc/library/time.rst:550 +#: ../Doc/library/time.rst:548 msgid "range [1, 31]" -msgstr "" +msgstr "plage [1, 31]" -#: ../Doc/library/time.rst:552 +#: ../Doc/library/time.rst:550 msgid "3" msgstr "3" -#: ../Doc/library/time.rst:552 +#: ../Doc/library/time.rst:550 msgid ":attr:`tm_hour`" msgstr ":attr:`tm_hour`" -#: ../Doc/library/time.rst:552 +#: ../Doc/library/time.rst:550 msgid "range [0, 23]" -msgstr "" +msgstr "plage [0, 23]" -#: ../Doc/library/time.rst:554 +#: ../Doc/library/time.rst:552 msgid "4" msgstr "4" -#: ../Doc/library/time.rst:554 +#: ../Doc/library/time.rst:552 msgid ":attr:`tm_min`" msgstr ":attr:`tm_min`" -#: ../Doc/library/time.rst:554 +#: ../Doc/library/time.rst:552 msgid "range [0, 59]" -msgstr "" +msgstr "plage [0, 59]" -#: ../Doc/library/time.rst:556 +#: ../Doc/library/time.rst:554 msgid "5" msgstr "5" -#: ../Doc/library/time.rst:556 +#: ../Doc/library/time.rst:554 msgid ":attr:`tm_sec`" msgstr ":attr:`tm_sec`" -#: ../Doc/library/time.rst:556 +#: ../Doc/library/time.rst:554 msgid "range [0, 61]; see **(2)** in :func:`strftime` description" -msgstr "" +msgstr "plage [0, 61]; voir **(2)** dans la description :func:`strftime`" -#: ../Doc/library/time.rst:559 +#: ../Doc/library/time.rst:557 msgid "6" msgstr "6" -#: ../Doc/library/time.rst:559 +#: ../Doc/library/time.rst:557 msgid ":attr:`tm_wday`" msgstr ":attr:`tm_wday`" -#: ../Doc/library/time.rst:559 +#: ../Doc/library/time.rst:557 msgid "range [0, 6], Monday is 0" -msgstr "" +msgstr "plage [0, 6], Lundi valant 0" -#: ../Doc/library/time.rst:561 +#: ../Doc/library/time.rst:559 msgid "7" msgstr "7" -#: ../Doc/library/time.rst:561 +#: ../Doc/library/time.rst:559 msgid ":attr:`tm_yday`" msgstr ":attr:`tm_yday`" -#: ../Doc/library/time.rst:561 +#: ../Doc/library/time.rst:559 msgid "range [1, 366]" -msgstr "" +msgstr "plage [1, 366]" -#: ../Doc/library/time.rst:563 +#: ../Doc/library/time.rst:561 msgid "8" msgstr "8" -#: ../Doc/library/time.rst:563 +#: ../Doc/library/time.rst:561 msgid ":attr:`tm_isdst`" msgstr ":attr:`tm_isdst`" -#: ../Doc/library/time.rst:563 +#: ../Doc/library/time.rst:561 msgid "0, 1 or -1; see below" -msgstr "" +msgstr "``0``, ``1`` or ``-1`` ; voir en bas" -#: ../Doc/library/time.rst:565 ../Doc/library/time.rst:567 +#: ../Doc/library/time.rst:563 ../Doc/library/time.rst:565 msgid "N/A" msgstr "N/A" -#: ../Doc/library/time.rst:565 +#: ../Doc/library/time.rst:563 msgid ":attr:`tm_zone`" msgstr ":attr:`tm_zone`" -#: ../Doc/library/time.rst:565 +#: ../Doc/library/time.rst:563 msgid "abbreviation of timezone name" -msgstr "" +msgstr "abréviation du nom du fuseau horaire" -#: ../Doc/library/time.rst:567 +#: ../Doc/library/time.rst:565 msgid ":attr:`tm_gmtoff`" msgstr ":attr:`tm_gmtoff`" -#: ../Doc/library/time.rst:567 +#: ../Doc/library/time.rst:565 msgid "offset east of UTC in seconds" -msgstr "" +msgstr "décalage à l’est de UTC en secondes" -#: ../Doc/library/time.rst:570 +#: ../Doc/library/time.rst:568 msgid "" "Note that unlike the C structure, the month value is a range of [1, 12], not " "[0, 11]." msgstr "" +"Notez que contrairement à la structure C, la valeur du mois est une plage de " +"[1, 12], pas de [0, 11]." -#: ../Doc/library/time.rst:573 +#: ../Doc/library/time.rst:571 msgid "" "In calls to :func:`mktime`, :attr:`tm_isdst` may be set to 1 when daylight " "savings time is in effect, and 0 when it is not. A value of -1 indicates " "that this is not known, and will usually result in the correct state being " "filled in." msgstr "" +"Dans les appels à :func:`mktime`, :attr:`tm_isdst` peut être défini sur 1 " +"lorsque l’heure d'été est en vigueur et sur 0 lorsque ce n’est pas le cas. " +"Une valeur de ``-1`` indique que cela n’est pas connu et entraînera " +"généralement le remplissage de l’état correct." -#: ../Doc/library/time.rst:577 +#: ../Doc/library/time.rst:575 msgid "" "When a tuple with an incorrect length is passed to a function expecting a :" "class:`struct_time`, or having elements of the wrong type, a :exc:" "`TypeError` is raised." msgstr "" +"Lorsqu’un *tuple* de longueur incorrecte est passé à une fonction acceptant " +"une :class:`struct_time`, ou comportant des éléments de type incorrect, une " +"exception :exc:`TypeError` est levé." -#: ../Doc/library/time.rst:583 +#: ../Doc/library/time.rst:581 msgid "" "Return the time in seconds since the epoch_ as a floating point number. The " "specific date of the epoch and the handling of `leap seconds`_ is platform " @@ -942,8 +1179,16 @@ msgid "" "wikipedia.org/wiki/Unix_time>`_. To find out what the epoch is on a given " "platform, look at ``gmtime(0)``." msgstr "" +"Renvoie le temps en secondes depuis epoch_ sous forme de nombre à virgule " +"flottante. La date spécifique de *epoch* et le traitement des secondes " +"intercalaires (`leap seconds`_) dépendent de la plate-forme. Sous Windows et " +"la plupart des systèmes Unix, *epoch* est le 1er janvier 1970, 00:00:00 " +"(UTC) et les secondes intercalaires ne sont pas comptées dans le temps en " +"secondes depuis *epoch*. Ceci est communément appelé `Heure Unix `_. Pour savoir quelle est *epoch* sur une " +"plate-forme donnée, consultez ``gmtime(0)``." -#: ../Doc/library/time.rst:593 +#: ../Doc/library/time.rst:591 msgid "" "Note that even though the time is always returned as a floating point " "number, not all systems provide time with a better precision than 1 second. " @@ -951,8 +1196,14 @@ msgid "" "lower value than a previous call if the system clock has been set back " "between the two calls." msgstr "" +"Notez que même si l’heure est toujours renvoyée sous forme de nombre à " +"virgule flottante, tous les systèmes ne fournissent pas l’heure avec une " +"précision supérieure à 1 seconde. Bien que cette fonction renvoie " +"normalement des valeurs croissantes, elle peut renvoyer une valeur " +"inférieure à celle d’un appel précédent si l’horloge système a été réglée " +"entre les deux appels." -#: ../Doc/library/time.rst:599 +#: ../Doc/library/time.rst:597 msgid "" "The number returned by :func:`.time` may be converted into a more common " "time format (i.e. year, month, day, hour, etc...) in UTC by passing it to :" @@ -961,8 +1212,14 @@ msgid "" "returned, from which the components of the calendar date may be accessed as " "attributes." msgstr "" +"Le nombre renvoyé par :func:`.time` peut être converti en un format d’heure " +"plus courant (année, mois, jour, heure, etc.) en UTC en le transmettant à la " +"fonction :func:`gmtime` ou dans heure locale en le transmettant à la " +"fonction :func:`localtime`. Dans les deux cas, un objet :class:`struct_time` " +"est renvoyé, à partir duquel les composants de la date du calendrier peuvent " +"être consultés en tant qu’attributs." -#: ../Doc/library/time.rst:614 +#: ../Doc/library/time.rst:612 msgid "" "Return the value (in fractional seconds) of the sum of the system and user " "CPU time of the current thread. It does not include time elapsed during " @@ -970,24 +1227,34 @@ msgid "" "returned value is undefined, so that only the difference between the results " "of consecutive calls in the same thread is valid." msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) de la somme des temps " +"processeur système et utilisateur du thread en cours. Il ne comprend pas le " +"temps écoulé pendant le sommeil. Il est spécifique au thread par définition. " +"Le point de référence de la valeur renvoyée est indéfini, de sorte que seule " +"la différence entre les résultats d’appels consécutifs dans le même thread " +"est valide." #: ../Doc/library/time.rst:620 msgid "" -"Availability: Windows, Linux, Unix systems supporting " +":ref:`Availability `: Windows, Linux, Unix systems supporting " "``CLOCK_THREAD_CPUTIME_ID``." msgstr "" +":ref:`Disponibilité ` : Systèmes Windows, Linux, Unix prenant " +"en charge ``CLOCK_THREAD_CPUTIME_ID``." -#: ../Doc/library/time.rst:628 +#: ../Doc/library/time.rst:626 msgid "Similar to :func:`thread_time` but return time as nanoseconds." -msgstr "" +msgstr "Similaire à :func:`thread_time` mais renvoie le temps en nanosecondes." -#: ../Doc/library/time.rst:635 +#: ../Doc/library/time.rst:633 msgid "" "Similar to :func:`time` but returns time as an integer number of nanoseconds " "since the epoch_." msgstr "" +"Similaire à :func:`time` mais renvoie le temps sous forme de nombre entier " +"de nanosecondes depuis epoch_." -#: ../Doc/library/time.rst:642 +#: ../Doc/library/time.rst:640 msgid "" "Reset the time conversion rules used by the library routines. The " "environment variable :envvar:`TZ` specifies how this is done. It will also " @@ -997,99 +1264,136 @@ msgid "" "saving time rules, or to nonzero if there is a time, past, present or future " "when daylight saving time applies)." msgstr "" +"Réinitialise les règles de conversion de temps utilisées par les routines de " +"la bibliothèque. La variable d’environnement :envvar:`TZ` spécifie comment " +"cela est effectué. La fonction définira également les variables ``tzname`` " +"(à partir de la variable d’environnement :envvar:`TZ`), ``timezone`` " +"(secondes non DST à l’ouest de l’UTC), ``altzone`` (secondes DST à l’ouest " +"de UTC) et ``daylight`` (à 0 si ce fuseau horaire ne comporte aucune règle " +"d’heure d’été, ou non nul s’il existe une heure, passée, présente ou future " +"lorsque l’heure d’été est appliquée)." -#: ../Doc/library/time.rst:654 +#: ../Doc/library/time.rst:652 msgid "" "Although in many cases, changing the :envvar:`TZ` environment variable may " "affect the output of functions like :func:`localtime` without calling :func:" "`tzset`, this behavior should not be relied on." msgstr "" +"Bien que dans de nombreux cas, la modification de la variable " +"d’environnement :envvar:`TZ` puisse affecter la sortie de fonctions telles " +"que :func:`localtime` sans appeler :func:`tzset`, ce comportement n'est pas " +"garanti." -#: ../Doc/library/time.rst:658 +#: ../Doc/library/time.rst:656 msgid "The :envvar:`TZ` environment variable should contain no whitespace." msgstr "" +"La variable d’environnement :envvar:`TZ` ne doit contenir aucun espace." -#: ../Doc/library/time.rst:660 +#: ../Doc/library/time.rst:658 msgid "" "The standard format of the :envvar:`TZ` environment variable is (whitespace " "added for clarity)::" msgstr "" +"Le format standard de la variable d’environnement :envvar:`TZ` est (espaces " +"ajoutés pour plus de clarté) ::" -#: ../Doc/library/time.rst:665 +#: ../Doc/library/time.rst:663 msgid "Where the components are:" -msgstr "" +msgstr "Où les composants sont :" -#: ../Doc/library/time.rst:669 +#: ../Doc/library/time.rst:667 msgid "``std`` and ``dst``" -msgstr "``std`` and ``dst``" +msgstr "``std`` et ``dst``" -#: ../Doc/library/time.rst:668 +#: ../Doc/library/time.rst:666 msgid "" "Three or more alphanumerics giving the timezone abbreviations. These will be " "propagated into time.tzname" msgstr "" +"Trois alphanumériques ou plus donnant les abréviations du fuseau horaire. " +"Ceux-ci seront propagés dans *time.tzname*" -#: ../Doc/library/time.rst:675 +#: ../Doc/library/time.rst:673 msgid "``offset``" msgstr "``offset``" -#: ../Doc/library/time.rst:672 +#: ../Doc/library/time.rst:670 msgid "" "The offset has the form: ``± hh[:mm[:ss]]``. This indicates the value added " "the local time to arrive at UTC. If preceded by a '-', the timezone is east " "of the Prime Meridian; otherwise, it is west. If no offset follows dst, " "summer time is assumed to be one hour ahead of standard time." msgstr "" +"Le décalage a la forme suivante : ``± hh[:mm[:ss]]``. Cela indique la valeur " +"ajoutée à l’heure locale pour arriver à UTC. S'il est précédé d’un ``'-'``, " +"le fuseau horaire est à l’est du Premier Méridien ; sinon, c’est l’ouest. Si " +"aucun décalage ne suit *dst*, l’heure d’été est supposée être en avance " +"d’une heure sur l’heure standard." -#: ../Doc/library/time.rst:697 +#: ../Doc/library/time.rst:695 msgid "``start[/time], end[/time]``" msgstr "``start[/time], end[/time]``" -#: ../Doc/library/time.rst:678 +#: ../Doc/library/time.rst:676 msgid "" "Indicates when to change to and back from DST. The format of the start and " "end dates are one of the following:" msgstr "" +"Indique quand passer à DST et en revenir. Le format des dates de début et de " +"fin est l’un des suivants :" -#: ../Doc/library/time.rst:683 +#: ../Doc/library/time.rst:681 msgid ":samp:`J{n}`" msgstr ":samp:`J{n}`" -#: ../Doc/library/time.rst:682 +#: ../Doc/library/time.rst:680 msgid "" "The Julian day *n* (1 <= *n* <= 365). Leap days are not counted, so in all " "years February 28 is day 59 and March 1 is day 60." msgstr "" +"Le jour Julien *n* (1 <= *n* <= 365). Les jours bissextiles ne sont pas " +"comptabilisés. Par conséquent, le 28 février est le 59\\ :sup:`e` jour et le " +"1\\ :sup:`er` Mars est le 60\\ :sup:`e` jour de toutes les années." -#: ../Doc/library/time.rst:687 +#: ../Doc/library/time.rst:685 msgid ":samp:`{n}`" msgstr ":samp:`{n}`" -#: ../Doc/library/time.rst:686 +#: ../Doc/library/time.rst:684 msgid "" "The zero-based Julian day (0 <= *n* <= 365). Leap days are counted, and it " "is possible to refer to February 29." msgstr "" +"Le jour Julien de base zéro (0 <= *n* <= 365). Les jours bissextiles sont " +"comptés et il est possible de se référer au 29 février." -#: ../Doc/library/time.rst:694 +#: ../Doc/library/time.rst:692 msgid ":samp:`M{m}.{n}.{d}`" msgstr ":samp:`M{m}.{n}.{d}`" -#: ../Doc/library/time.rst:690 +#: ../Doc/library/time.rst:688 msgid "" "The *d*'th day (0 <= *d* <= 6) of week *n* of month *m* of the year (1 <= " "*n* <= 5, 1 <= *m* <= 12, where week 5 means \"the last *d* day in month *m*" "\" which may occur in either the fourth or the fifth week). Week 1 is the " "first week in which the *d*'th day occurs. Day zero is a Sunday." msgstr "" +"Le *d* jour (0 <= *d* <= 6) de la semaine *n* du mois *m* de l’année (1 <= " +"*n* <= 5, 1 <= *m* <= 12, où semaine 5 signifie “le *dernier* jour du mois " +"*m*” pouvant se produire au cours de la quatrième ou de la cinquième " +"semaine). La semaine 1 est la première semaine au cours de laquelle le " +"*jour* se produit. Le jour zéro est un dimanche." -#: ../Doc/library/time.rst:696 +#: ../Doc/library/time.rst:694 msgid "" "``time`` has the same format as ``offset`` except that no leading sign ('-' " "or '+') is allowed. The default, if time is not given, is 02:00:00." msgstr "" +"``time`` a le même format que ``offset`` sauf qu’aucun signe de direction " +"(``'-'`` ou ``'+'``) n’est autorisé. La valeur par défaut, si l’heure n’est " +"pas spécifiée, est 02:00:00." -#: ../Doc/library/time.rst:710 +#: ../Doc/library/time.rst:708 msgid "" "On many Unix systems (including \\*BSD, Linux, Solaris, and Darwin), it is " "more convenient to use the system's zoneinfo (:manpage:`tzfile(5)`) " @@ -1099,127 +1403,178 @@ msgid "" "located at :file:`/usr/share/zoneinfo`. For example, ``'US/Eastern'``, " "``'Australia/Melbourne'``, ``'Egypt'`` or ``'Europe/Amsterdam'``. ::" msgstr "" +"Sur de nombreux systèmes Unix (y compris \\*BSD, Linux, Solaris et Darwin), " +"il est plus pratique d’utiliser la base de données *zoneinfo* (:manpage:" +"`tzfile (5)`) du système pour spécifier les règles de fuseau horaire. Pour " +"ce faire, définissez la variable d’environnement :envvar:`TZ` sur le chemin " +"du fichier de fuseau horaire requis, par rapport à la racine de la base de " +"données du système *zoneinfo*, généralement situé à :file:`/usr/share/" +"zoneinfo`. Par exemple, ``'US/Eastern'``, ``'Australia/Melbourne'``, " +"``'Egypt'`` ou ``'Europe/Amsterdam'``. ::" -#: ../Doc/library/time.rst:731 +#: ../Doc/library/time.rst:729 msgid "Clock ID Constants" -msgstr "" +msgstr "Constantes d’identification d’horloge" -#: ../Doc/library/time.rst:733 +#: ../Doc/library/time.rst:731 msgid "" "These constants are used as parameters for :func:`clock_getres` and :func:" "`clock_gettime`." msgstr "" +"Ces constantes sont utilisées comme paramètres pour :func:`clock_getres` et :" +"func:`clock_gettime`." -#: ../Doc/library/time.rst:738 +#: ../Doc/library/time.rst:736 msgid "" "Identical to :data:`CLOCK_MONOTONIC`, except it also includes any time that " "the system is suspended." msgstr "" +"Identique à :data:`CLOCK_MONOTONIC`, sauf qu'elle inclut également toute " +"suspension du système." -#: ../Doc/library/time.rst:741 +#: ../Doc/library/time.rst:739 msgid "" "This allows applications to get a suspend-aware monotonic clock without " "having to deal with the complications of :data:`CLOCK_REALTIME`, which may " "have discontinuities if the time is changed using ``settimeofday()`` or " "similar." msgstr "" +"Cela permet aux applications d’obtenir une horloge monotone tenant compte de " +"la suspension sans avoir à gérer les complications de :data:" +"`CLOCK_REALTIME`, qui peuvent présenter des discontinuités si l’heure est " +"modifiée à l’aide de ``settimeofday()`` ou similaire." -#: ../Doc/library/time.rst:746 -msgid "Availability: Linux 2.6.39 or later." -msgstr "Disponibilité : Linux 2.6.39 et ultérieures." +#: ../Doc/library/time.rst:745 +msgid ":ref:`Availability `: Linux 2.6.39 or later." +msgstr ":ref:`Disponibilité ` : Linux 2.6.39 et ultérieures." -#: ../Doc/library/time.rst:753 +#: ../Doc/library/time.rst:751 msgid "" "The Solaris OS has a ``CLOCK_HIGHRES`` timer that attempts to use an optimal " "hardware source, and may give close to nanosecond resolution. " "``CLOCK_HIGHRES`` is the nonadjustable, high-resolution clock." msgstr "" +"Le système d’exploitation Solaris dispose d’une horloge ``CLOCK_HIGHRES`` " +"qui tente d’utiliser une source matérielle optimale et peut donner une " +"résolution proche de la nanoseconde. ``CLOCK_HIGHRES`` est l’horloge haute " +"résolution non ajustable." -#: ../Doc/library/time.rst:757 -msgid "Availability: Solaris." -msgstr "" +#: ../Doc/library/time.rst:756 +msgid ":ref:`Availability `: Solaris." +msgstr ":ref:`Disponibilité ` : Solaris." -#: ../Doc/library/time.rst:764 +#: ../Doc/library/time.rst:762 msgid "" "Clock that cannot be set and represents monotonic time since some " "unspecified starting point." msgstr "" +"Horloge qui ne peut pas être réglée et représente l’heure monotone depuis un " +"point de départ non spécifié." -#: ../Doc/library/time.rst:774 +#: ../Doc/library/time.rst:772 msgid "" "Similar to :data:`CLOCK_MONOTONIC`, but provides access to a raw hardware-" "based time that is not subject to NTP adjustments." msgstr "" +"Similaire à :data:`CLOCK_MONOTONIC`, mais donne accès à une heure matérielle " +"brute qui n’est pas soumise aux ajustements NTP." -#: ../Doc/library/time.rst:777 -msgid "Availability: Linux 2.6.28 or later." +#: ../Doc/library/time.rst:776 +msgid "" +":ref:`Availability `: Linux 2.6.28 and newer, macOS 10.12 and " +"newer." msgstr "" +":ref:`Disponibilité `: Linux 2.6.28 et ultérieur, MacOS 10.12 " +"et ultérieur." -#: ../Doc/library/time.rst:784 ../Doc/library/time.rst:793 +#: ../Doc/library/time.rst:782 ../Doc/library/time.rst:791 msgid "High-resolution per-process timer from the CPU." -msgstr "" +msgstr "Minuterie haute résolution par processus du CPU." -#: ../Doc/library/time.rst:795 -msgid "Availability: FreeBSD, NetBSD 7 or later, OpenBSD." +#: ../Doc/library/time.rst:794 +msgid "" +":ref:`Availability `: FreeBSD, NetBSD 7 or later, OpenBSD." msgstr "" +":ref:`Disponibilité ` : FreeBSD, NetBSD 7 ou version " +"ultérieure, OpenBSD." -#: ../Doc/library/time.rst:802 +#: ../Doc/library/time.rst:800 msgid "Thread-specific CPU-time clock." -msgstr "" +msgstr "Horloge de temps CPU spécifique au thread." -#: ../Doc/library/time.rst:811 +#: ../Doc/library/time.rst:809 msgid "" "Time whose absolute value is the time the system has been running and not " "suspended, providing accurate uptime measurement, both absolute and interval." msgstr "" +"Heure dont la valeur absolue correspond à l’heure à laquelle le système a " +"été exécuté et non suspendu, fournissant une mesure précise du temps de " +"disponibilité, à la fois absolue et à intervalle." -#: ../Doc/library/time.rst:815 -msgid "Availability: FreeBSD, OpenBSD 5.5 or later." +#: ../Doc/library/time.rst:814 +msgid ":ref:`Availability `: FreeBSD, OpenBSD 5.5 or later." msgstr "" +":ref:`Disponibilité ` : FreeBSD, OpenBSD 5.5 ou version " +"ultérieure." -#: ../Doc/library/time.rst:820 +#: ../Doc/library/time.rst:818 msgid "" "The following constant is the only parameter that can be sent to :func:" "`clock_settime`." msgstr "" +"La constante suivante est le seul paramètre pouvant être envoyé à :func:" +"`clock_settime`." -#: ../Doc/library/time.rst:825 +#: ../Doc/library/time.rst:823 msgid "" "System-wide real-time clock. Setting this clock requires appropriate " "privileges." msgstr "" +"Horloge en temps réel à l’échelle du système. Le réglage de cette horloge " +"nécessite des privilèges appropriés." -#: ../Doc/library/time.rst:836 +#: ../Doc/library/time.rst:834 msgid "Timezone Constants" -msgstr "" +msgstr "Constantes de fuseau horaire" -#: ../Doc/library/time.rst:840 +#: ../Doc/library/time.rst:838 msgid "" "The offset of the local DST timezone, in seconds west of UTC, if one is " "defined. This is negative if the local DST timezone is east of UTC (as in " "Western Europe, including the UK). Only use this if ``daylight`` is " "nonzero. See note below." msgstr "" +"Décalage du fuseau horaire DST local, en secondes à l’ouest de UTC, s’il en " +"est défini un. Cela est négatif si le fuseau horaire DST local est à l’est " +"de UTC (comme en Europe occidentale, y compris le Royaume-Uni). Utilisez " +"ceci uniquement si ``daylight`` est différent de zéro. Voir note ci-dessous." -#: ../Doc/library/time.rst:846 +#: ../Doc/library/time.rst:844 msgid "Nonzero if a DST timezone is defined. See note below." -msgstr "" +msgstr "Non nul si un fuseau horaire DST est défini. Voir note ci-dessous." -#: ../Doc/library/time.rst:850 +#: ../Doc/library/time.rst:848 msgid "" "The offset of the local (non-DST) timezone, in seconds west of UTC (negative " "in most of Western Europe, positive in the US, zero in the UK). See note " "below." msgstr "" +"Décalage du fuseau horaire local (hors heure d’été), en secondes à l’ouest " +"de l’UTC (négatif dans la plupart des pays d’Europe occidentale, positif aux " +"États-Unis, nul au Royaume-Uni). Voir note ci-dessous." -#: ../Doc/library/time.rst:855 +#: ../Doc/library/time.rst:853 msgid "" "A tuple of two strings: the first is the name of the local non-DST timezone, " "the second is the name of the local DST timezone. If no DST timezone is " "defined, the second string should not be used. See note below." msgstr "" +"Un *tuple* de deux chaînes : la première est le nom du fuseau horaire local " +"autre que DST, la seconde est le nom du fuseau horaire DST local. Si aucun " +"fuseau horaire DST n’est défini, la deuxième chaîne ne doit pas être " +"utilisée. Voir note ci-dessous." -#: ../Doc/library/time.rst:861 +#: ../Doc/library/time.rst:859 msgid "" "For the above Timezone constants (:data:`altzone`, :data:`daylight`, :data:" "`timezone`, and :data:`tzname`), the value is determined by the timezone " @@ -1228,41 +1583,53 @@ msgid "" "attr:`tm_gmtoff` and :attr:`tm_zone` results from :func:`localtime` to " "obtain timezone information." msgstr "" +"Pour les constantes de fuseau horaire ci-dessus ( :data:`altzone`, :data:" +"`daylight`, :data:`timezone` et :data:`tzname`), la valeur est déterminée " +"par les règles de fuseau horaire en vigueur au moment du chargement du " +"module ou la dernière fois :func:`tzset` est appelé et peut être incorrect " +"pour des temps passés. Il est recommandé d’utiliser :attr:`tm_gmtoff` et :" +"attr:`tm_zone` résulte de :func:`localtime` pour obtenir des informations " +"sur le fuseau horaire." -#: ../Doc/library/time.rst:871 +#: ../Doc/library/time.rst:869 msgid "Module :mod:`datetime`" msgstr "Module :mod:`datetime`" -#: ../Doc/library/time.rst:871 +#: ../Doc/library/time.rst:869 msgid "More object-oriented interface to dates and times." -msgstr "" +msgstr "Interface plus orientée objet vers les dates et les heures." -#: ../Doc/library/time.rst:875 +#: ../Doc/library/time.rst:873 msgid "Module :mod:`locale`" msgstr "Module :mod:`locale`" -#: ../Doc/library/time.rst:874 +#: ../Doc/library/time.rst:872 msgid "" "Internationalization services. The locale setting affects the " "interpretation of many format specifiers in :func:`strftime` and :func:" "`strptime`." msgstr "" +"Services d’internationalisation. Les paramètres régionaux affectent " +"l’interprétation de nombreux spécificateurs de format dans :func:`strftime` " +"et :func:`strptime`." -#: ../Doc/library/time.rst:878 +#: ../Doc/library/time.rst:876 msgid "Module :mod:`calendar`" msgstr "Module :mod:`calendar`" -#: ../Doc/library/time.rst:878 +#: ../Doc/library/time.rst:876 msgid "" "General calendar-related functions. :func:`~calendar.timegm` is the " "inverse of :func:`gmtime` from this module." msgstr "" +"Fonctions générales liées au calendrier. :func:`~calendar.timegm` est " +"l’inverse de :func:`gmtime` à partir de ce module." -#: ../Doc/library/time.rst:882 +#: ../Doc/library/time.rst:880 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/time.rst:883 +#: ../Doc/library/time.rst:881 msgid "" "The use of ``%Z`` is now deprecated, but the ``%z`` escape that expands to " "the preferred hour/minute offset is not supported by all ANSI C libraries. " @@ -1272,3 +1639,11 @@ msgid "" "digit year has been first recommended by :rfc:`1123` and then mandated by :" "rfc:`2822`." msgstr "" +"L'utilisation de ``%Z`` est maintenant obsolète, mais l'échappement ``%z`` " +"qui donne le décalage horaire jusqu'à la minute et dépendant des paramètres " +"régionaux n'est pas pris en charge par toutes les bibliothèques C ANSI. En " +"outre, une lecture stricte du standard :rfc:`822` de 1982 milite pour une " +"année à deux chiffres (%y plutôt que %Y), mais la pratique a migré vers des " +"années à 4 chiffres de long avant l'année 2000. Après cela, la :rfc:`822` " +"est devenue obsolète et l'année à 4 chiffres a été recommandée pour la " +"première fois par la :rfc:`1123` puis rendue obligatoire par la :rfc:`2822`." diff --git a/library/timeit.po b/library/timeit.po index 7af36aa2e..f690146e4 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-08-20 18:10+0200\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.0.6\n" #: ../Doc/library/timeit.rst:2 msgid ":mod:`timeit` --- Measure execution time of small code snippets" -msgstr "" +msgstr ":mod:`timeit` — Mesurer le temps d'exécution de fragments de code" #: ../Doc/library/timeit.rst:7 msgid "**Source code:** :source:`Lib/timeit.py`" @@ -30,74 +31,104 @@ msgid "" "execution times. See also Tim Peters' introduction to the \"Algorithms\" " "chapter in the *Python Cookbook*, published by O'Reilly." msgstr "" +"Ce module fournit une façon simple de mesurer le temps d'exécution de " +"fragments de code Python. Il expose une :ref:`timeit-command-line-interface` " +"ainsi qu'une :ref:`interface Python `. Ce module permet " +"d'éviter un certain nombre de problèmes classiques liés à la mesure des " +"temps d'exécution. Voir par exemple à ce sujet l'introduction par Tim Peters " +"du chapitre « Algorithmes » dans le livre *Python Cookbook*, aux éditions " +"O'Reilly." #: ../Doc/library/timeit.rst:23 msgid "Basic Examples" -msgstr "" +msgstr "Exemples simples" #: ../Doc/library/timeit.rst:25 msgid "" "The following example shows how the :ref:`timeit-command-line-interface` can " "be used to compare three different expressions:" msgstr "" +"L'exemple suivant illustre l'utilisation de l':ref:`timeit-command-line-" +"interface` afin de comparer trois expressions différentes :" #: ../Doc/library/timeit.rst:37 msgid "This can be achieved from the :ref:`python-interface` with::" +msgstr "L':ref:`python-interface` peut être utilisée aux mêmes fins avec ::" + +#: ../Doc/library/timeit.rst:47 +msgid "A callable can also be passed from the :ref:`python-interface`::" msgstr "" +"Un objet appelable peut également être passé en argument à l':ref:`python-" +"interface` ::" -#: ../Doc/library/timeit.rst:48 +#: ../Doc/library/timeit.rst:52 msgid "" -"Note however that :mod:`timeit` will automatically determine the number of " +"Note however that :func:`.timeit` will automatically determine the number of " "repetitions only when the command-line interface is used. In the :ref:" "`timeit-examples` section you can find more advanced examples." msgstr "" +"Notez cependant que :func:`.timeit` détermine automatiquement le nombre de " +"répétitions seulement lorsque l'interface en ligne de commande est utilisée. " +"Vous pouvez trouver des exemples d'usages avancés dans la section :ref:" +"`timeit-examples`." -#: ../Doc/library/timeit.rst:56 +#: ../Doc/library/timeit.rst:60 msgid "Python Interface" -msgstr "" +msgstr "Interface Python" -#: ../Doc/library/timeit.rst:58 +#: ../Doc/library/timeit.rst:62 msgid "The module defines three convenience functions and a public class:" msgstr "" +"Ce module définit une classe publique ainsi que trois fonctions destinées à " +"simplifier son usage :" -#: ../Doc/library/timeit.rst:63 +#: ../Doc/library/timeit.rst:67 msgid "" "Create a :class:`Timer` instance with the given statement, *setup* code and " "*timer* function and run its :meth:`.timeit` method with *number* " "executions. The optional *globals* argument specifies a namespace in which " "to execute the code." msgstr "" +"Crée une instance d'objet :class:`Timer` à partir de l'instruction donnée, " +"du code *setup* et de la fonction *timer*, puis exécute sa méthode :meth:`." +"timeit` à *number* reprises. L'argument optionnel *globals* spécifie un " +"espace de nommage dans lequel exécuter le code." -#: ../Doc/library/timeit.rst:68 ../Doc/library/timeit.rst:79 -#: ../Doc/library/timeit.rst:116 +#: ../Doc/library/timeit.rst:72 ../Doc/library/timeit.rst:83 +#: ../Doc/library/timeit.rst:120 msgid "The optional *globals* parameter was added." -msgstr "" +msgstr "Le paramètre optionnel *globals* a été ajouté." -#: ../Doc/library/timeit.rst:74 +#: ../Doc/library/timeit.rst:78 msgid "" "Create a :class:`Timer` instance with the given statement, *setup* code and " "*timer* function and run its :meth:`.repeat` method with the given *repeat* " "count and *number* executions. The optional *globals* argument specifies a " "namespace in which to execute the code." msgstr "" +"Crée une instance d'objet :class:`Timer` à partir de l'instruction donnée, " +"du code *setup* et de la fonction *timer*, puis exécute sa méthode :meth:`." +"repeat` à *number* reprises, *repeat* fois. L'argument optionnel *globals* " +"spécifie un espace de nommage dans lequel exécuter le code." -#: ../Doc/library/timeit.rst:82 ../Doc/library/timeit.rst:177 +#: ../Doc/library/timeit.rst:86 ../Doc/library/timeit.rst:181 msgid "Default value of *repeat* changed from 3 to 5." -msgstr "" +msgstr "La valeur par défaut de *repeat* est passée de 3 à 5." -#: ../Doc/library/timeit.rst:87 +#: ../Doc/library/timeit.rst:91 msgid "The default timer, which is always :func:`time.perf_counter`." -msgstr "" +msgstr "Le minuteur par défaut, qui est toujours :func:`time.perf_counter`." -#: ../Doc/library/timeit.rst:89 +#: ../Doc/library/timeit.rst:93 msgid ":func:`time.perf_counter` is now the default timer." -msgstr "" +msgstr ":func:`time.perf_counter` est désormais le minuteur par défaut." -#: ../Doc/library/timeit.rst:95 +#: ../Doc/library/timeit.rst:99 msgid "Class for timing execution speed of small code snippets." msgstr "" +"Classe permettant de mesurer le temps d'exécution de fragments de code." -#: ../Doc/library/timeit.rst:97 +#: ../Doc/library/timeit.rst:101 msgid "" "The constructor takes a statement to be timed, an additional statement used " "for setup, and a timer function. Both statements default to ``'pass'``; the " @@ -107,29 +138,50 @@ msgid "" "will by default be executed within timeit's namespace; this behavior can be " "controlled by passing a namespace to *globals*." msgstr "" +"Ce constructeur prend en argument une instruction dont le temps d'exécution " +"doit être mesuré, une instruction additionnelle de mise en place et une " +"fonction de chronométrage. Les deux instructions valent ``'pass'`` par " +"défaut; la fonction de chronométrage dépend de la plateforme d'exécution (se " +"référer au *doc string* du module). *stmt* et *setup* peuvent contenir " +"plusieurs instructions séparées par des ``;`` ou des sauts de lignes tant " +"qu'ils ne comportent pas de littéraux sur plusieurs lignes. L'instruction " +"est exécutée dans l'espace de nommage de *timeit* par défaut ; ce " +"comportement peut être modifié en passant un espace de nommage au paramètre " +"*globals*." -#: ../Doc/library/timeit.rst:105 +#: ../Doc/library/timeit.rst:109 msgid "" "To measure the execution time of the first statement, use the :meth:`." "timeit` method. The :meth:`.repeat` and :meth:`.autorange` methods are " "convenience methods to call :meth:`.timeit` multiple times." msgstr "" +"Pour mesurer le temps d'exécution de la première instruction, utilisez la " +"méthode :meth:`.timeit`. Les méthodes :meth:`.repeat` et :meth:`.autorange` " +"sont des méthodes d'agrément permettant d'appeler :meth:`.timeit` à " +"plusieurs reprises." -#: ../Doc/library/timeit.rst:109 +#: ../Doc/library/timeit.rst:113 msgid "" "The execution time of *setup* is excluded from the overall timed execution " "run." msgstr "" +"Le temps d'exécution de *setup* n'est pas pris en compte dans le temps " +"global d'exécution." -#: ../Doc/library/timeit.rst:111 +#: ../Doc/library/timeit.rst:115 msgid "" "The *stmt* and *setup* parameters can also take objects that are callable " "without arguments. This will embed calls to them in a timer function that " "will then be executed by :meth:`.timeit`. Note that the timing overhead is " "a little larger in this case because of the extra function calls." msgstr "" +"Les paramètres *stmt* et *setup* peuvent également recevoir des objets " +"appelables sans argument. Ceci transforme alors les appels à ces objets en " +"fonction de chronométrage qui seront exécutées par :meth:`.timeit`. Notez " +"que le surcoût lié à la mesure du temps d'exécution dans ce cas est " +"légèrement supérieur en raisons des appels de fonction supplémentaires." -#: ../Doc/library/timeit.rst:121 +#: ../Doc/library/timeit.rst:125 msgid "" "Time *number* executions of the main statement. This executes the setup " "statement once, and then returns the time it takes to execute the main " @@ -138,22 +190,35 @@ msgid "" "statement, the setup statement and the timer function to be used are passed " "to the constructor." msgstr "" +"Mesure le temps *number* exécution de l'instruction principale. Ceci exécute " +"l'instruction de mise en place une seule fois puis renvoie un flottant " +"correspondant au temps nécessaire à l'exécution de l'instruction principale " +"à plusieurs reprises, mesuré en secondes. L'argument correspond au nombre " +"d'itérations dans la boucle, par défaut un million. L'instruction " +"principale, l'instruction de mise en place et la fonction de chronométrage " +"utilisée sont passées au constructeur." -#: ../Doc/library/timeit.rst:130 +#: ../Doc/library/timeit.rst:134 msgid "" "By default, :meth:`.timeit` temporarily turns off :term:`garbage collection` " "during the timing. The advantage of this approach is that it makes " -"independent timings more comparable. This disadvantage is that GC may be an " +"independent timings more comparable. The disadvantage is that GC may be an " "important component of the performance of the function being measured. If " "so, GC can be re-enabled as the first statement in the *setup* string. For " "example::" msgstr "" +"Par défaut, :meth:`.timeit` désactive temporairement le :term:`ramasse-" +"miettes` pendant le chronométrage. Cette approche a l'avantage de permettre " +"de comparer des mesures indépendantes. L'inconvénient de cette méthode est " +"que le ramasse-miettes peut avoir un impact significatif sur les " +"performances de la fonction étudiée. Dans ce cas, le ramasse-miettes peut " +"être réactivé en première instruction de la chaîne *setup*. Par exemple ::" -#: ../Doc/library/timeit.rst:142 +#: ../Doc/library/timeit.rst:146 msgid "Automatically determine how many times to call :meth:`.timeit`." -msgstr "" +msgstr "Détermine automatiquement combien de fois appeler :meth:`.timeit`." -#: ../Doc/library/timeit.rst:144 +#: ../Doc/library/timeit.rst:148 msgid "" "This is a convenience function that calls :meth:`.timeit` repeatedly so that " "the total time >= 0.2 second, returning the eventual (number of loops, time " @@ -161,26 +226,39 @@ msgid "" "numbers from the sequence 1, 2, 5, 10, 20, 50, ... until the time taken is " "at least 0.2 second." msgstr "" +"Cette fonction d'agrément appelle :meth:`.timeit` à plusieurs reprises " +"jusqu'à ce que le temps total écoulé soit supérieur à 0,2 secondes et " +"renvoie le couple (nombre de boucles, temps nécessaire pour exécuter ce " +"nombre de boucles). Elle appelle :meth:`.timeit` avec un nombre d'itérations " +"croissant selon la séquence 1, 2, 5, 10, 20, 50, … jusqu'à ce que le temps " +"d'exécution dépasse 0,2 secondes." -#: ../Doc/library/timeit.rst:150 +#: ../Doc/library/timeit.rst:154 msgid "" "If *callback* is given and is not ``None``, it will be called after each " "trial with two arguments: ``callback(number, time_taken)``." msgstr "" +"Si *callback* est spécifié et n'est pas ``None``, elle est appelée après " +"chaque itération avec deux arguments (numéro de l'itération et temps " +"écoulé) : ``callback(number, time_taken)``." -#: ../Doc/library/timeit.rst:158 +#: ../Doc/library/timeit.rst:162 msgid "Call :meth:`.timeit` a few times." -msgstr "" +msgstr "Appelle :meth:`.timeit` plusieurs fois." -#: ../Doc/library/timeit.rst:160 +#: ../Doc/library/timeit.rst:164 msgid "" "This is a convenience function that calls the :meth:`.timeit` repeatedly, " "returning a list of results. The first argument specifies how many times to " "call :meth:`.timeit`. The second argument specifies the *number* argument " "for :meth:`.timeit`." msgstr "" +"Cette fonction d'agrément appelle :meth:`.timeit` à plusieurs reprises et " +"renvoie une liste de résultats. Le premier argument spécifie le nombre " +"d'appels à :meth:`.timeit`. Le second argument spécifie l'argument *number* " +"de :meth:`.timeit`." -#: ../Doc/library/timeit.rst:167 +#: ../Doc/library/timeit.rst:171 msgid "" "It's tempting to calculate mean and standard deviation from the result " "vector and report these. However, this is not very useful. In a typical " @@ -191,81 +269,111 @@ msgid "" "only number you should be interested in. After that, you should look at the " "entire vector and apply common sense rather than statistics." msgstr "" - -#: ../Doc/library/timeit.rst:183 +"Il est tentant de vouloir calculer la moyenne et l'écart-type des résultats " +"et notifier ces valeurs. Ce n'est cependant pas très utile. En pratique, la " +"valeur la plus basse donne une estimation basse de la vitesse maximale à " +"laquelle votre machine peut exécuter le fragment de code spécifié ; les " +"valeurs hautes de la liste sont typiquement provoquées non pas par une " +"variabilité de la vitesse d'exécution de Python, mais par d'autres processus " +"interférant avec la précision du chronométrage. Le :func:`min` du résultat " +"est probablement la seule valeur à laquelle vous devriez vous intéresser. " +"Pour aller plus loin, vous devriez regarder l'intégralité des résultats et " +"utiliser le bon sens plutôt que les statistiques." + +#: ../Doc/library/timeit.rst:187 +#, fuzzy msgid "Helper to print a traceback from the timed code." -msgstr "" +msgstr "Outil permettant d'afficher la trace du code chronométré." -#: ../Doc/library/timeit.rst:185 +#: ../Doc/library/timeit.rst:189 msgid "Typical use::" -msgstr "" +msgstr "Usage typique ::" -#: ../Doc/library/timeit.rst:193 +#: ../Doc/library/timeit.rst:197 msgid "" "The advantage over the standard traceback is that source lines in the " "compiled template will be displayed. The optional *file* argument directs " "where the traceback is sent; it defaults to :data:`sys.stderr`." msgstr "" +"L'avantage par rapport à la trace standard est que les lignes sources du " +"code compilé sont affichées. Le paramètre optionnel *file* définit l'endroit " +"où la trace est envoyée, par défaut :data:`sys.stderr`." -#: ../Doc/library/timeit.rst:201 +#: ../Doc/library/timeit.rst:205 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" -#: ../Doc/library/timeit.rst:203 +#: ../Doc/library/timeit.rst:207 msgid "" "When called as a program from the command line, the following form is used::" msgstr "" +"Lorsque le module est appelé comme un programme en ligne de commande, la " +"syntaxe suivante est utilisée ::" -#: ../Doc/library/timeit.rst:207 +#: ../Doc/library/timeit.rst:211 msgid "Where the following options are understood:" -msgstr "" +msgstr "Les options suivantes sont gérées :" -#: ../Doc/library/timeit.rst:213 +#: ../Doc/library/timeit.rst:217 msgid "how many times to execute 'statement'" -msgstr "" +msgstr "nombre d'exécutions de l'instruction *statement*" -#: ../Doc/library/timeit.rst:217 +#: ../Doc/library/timeit.rst:221 msgid "how many times to repeat the timer (default 5)" -msgstr "" +msgstr "nombre de répétitions du chronomètre (5 par défaut)" -#: ../Doc/library/timeit.rst:221 +#: ../Doc/library/timeit.rst:225 msgid "statement to be executed once initially (default ``pass``)" msgstr "" +"instruction exécutée une seule fois à l'initialisation (``pass`` par défaut)" -#: ../Doc/library/timeit.rst:225 +#: ../Doc/library/timeit.rst:229 msgid "" "measure process time, not wallclock time, using :func:`time.process_time` " "instead of :func:`time.perf_counter`, which is the default" msgstr "" +"mesure le temps au niveau du processus et non au niveau du système, en " +"utilisant :func:`time.process_time` plutôt que :func:`time.perf_counter` qui " +"est utilisée par défaut" -#: ../Doc/library/timeit.rst:232 +#: ../Doc/library/timeit.rst:236 msgid "" "specify a time unit for timer output; can select nsec, usec, msec, or sec" msgstr "" +"spécifie l'unité de temps utilisée pour la sortie du chronomètre (parmi " +"*nsec*, *usec*, *msec* ou *sec*)" -#: ../Doc/library/timeit.rst:238 +#: ../Doc/library/timeit.rst:242 +#, fuzzy msgid "print raw timing results; repeat for more digits precision" -msgstr "" +msgstr "affiche les temps d'exécutions bruts, répéter pour plus de précision" -#: ../Doc/library/timeit.rst:242 +#: ../Doc/library/timeit.rst:246 msgid "print a short usage message and exit" -msgstr "" +msgstr "affiche un court message d'aide puis quitte" -#: ../Doc/library/timeit.rst:244 +#: ../Doc/library/timeit.rst:248 msgid "" "A multi-line statement may be given by specifying each line as a separate " "statement argument; indented lines are possible by enclosing an argument in " "quotes and using leading spaces. Multiple :option:`-s` options are treated " "similarly." msgstr "" +"Une instruction sur plusieurs lignes peut être donnée en entrée en " +"spécifiant chaque ligne comme un argument séparé. Indenter une ligne est " +"possible en encadrant l'argument de guillemets et en le préfixant par des " +"espaces. Plusieurs :option:`-s` sont gérées de la même façon." -#: ../Doc/library/timeit.rst:249 +#: ../Doc/library/timeit.rst:253 msgid "" "If :option:`-n` is not given, a suitable number of loops is calculated by " "trying successive powers of 10 until the total time is at least 0.2 seconds." msgstr "" +"Si :option:`-n` n'est pas donnée, le nombre de boucles adapté est déterminé " +"automatiquement en essayant les puissances de 10 successives jusqu'à ce que " +"le temps total d'exécution dépasse 0,2 secondes." -#: ../Doc/library/timeit.rst:252 +#: ../Doc/library/timeit.rst:256 msgid "" ":func:`default_timer` measurements can be affected by other programs running " "on the same machine, so the best thing to do when accurate timing is " @@ -274,45 +382,71 @@ msgid "" "probably enough in most cases. You can use :func:`time.process_time` to " "measure CPU time." msgstr "" +"Les mesures de :func:`default_timer` peuvent être altérées par d'autres " +"programmes s'exécutant sur la même machine. La meilleure approche lorsqu'un " +"chronométrage exact est nécessaire est de répéter celui-ci à plusieurs " +"reprises et considérer le meilleur temps. L'option :option:`-r` est adaptée " +"à ce fonctionnement, les cinq répétitions par défaut suffisent probablement " +"dans la plupart des cas. Vous pouvez utiliser :func:`time.process_time` pour " +"mesurer le temps processeur." -#: ../Doc/library/timeit.rst:260 +#: ../Doc/library/timeit.rst:264 msgid "" "There is a certain baseline overhead associated with executing a pass " "statement. The code here doesn't try to hide it, but you should be aware of " "it. The baseline overhead can be measured by invoking the program without " "arguments, and it might differ between Python versions." msgstr "" +"Il existe un surcoût minimal associé à l'exécution de l'instruction `pass`. " +"Le code présenté ici ne tente pas de le masquer, mais vous devez être " +"conscient de son existence. Ce surcoût minimal peut être mesuré en invoquant " +"le programme sans argument ; il peut différer en fonction des versions de " +"Python." -#: ../Doc/library/timeit.rst:269 +#: ../Doc/library/timeit.rst:273 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/timeit.rst:271 +#: ../Doc/library/timeit.rst:275 msgid "" "It is possible to provide a setup statement that is executed only once at " "the beginning:" msgstr "" +"Il est possible de fournir une instruction de mise en place exécutée une " +"seule fois au début du chronométrage :" -#: ../Doc/library/timeit.rst:288 +#: ../Doc/library/timeit.rst:292 msgid "The same can be done using the :class:`Timer` class and its methods::" msgstr "" +"La même chose peut être réalisée en utilisant la classe :class:`Timer` et " +"ses méthodes ::" -#: ../Doc/library/timeit.rst:298 +#: ../Doc/library/timeit.rst:302 msgid "" "The following examples show how to time expressions that contain multiple " "lines. Here we compare the cost of using :func:`hasattr` vs. :keyword:`try`/:" "keyword:`except` to test for missing and present object attributes:" msgstr "" +"Les exemples qui suivent montrent comment chronométrer des expressions sur " +"plusieurs lignes. Nous comparons ici le coût d'utilisation de :func:" +"`hasattr` par rapport à :keyword:`try`/:keyword:`except` pour tester la " +"présence ou l'absence d'attributs d'un objet :" -#: ../Doc/library/timeit.rst:344 +#: ../Doc/library/timeit.rst:348 msgid "" "To give the :mod:`timeit` module access to functions you define, you can " "pass a *setup* parameter which contains an import statement::" msgstr "" +"Afin de permettre à :mod:`timeit` d'accéder aux fonctions que vous avez " +"définies, vous pouvez passer au paramètre *setup* une instruction " +"d'importation ::" -#: ../Doc/library/timeit.rst:355 +#: ../Doc/library/timeit.rst:359 msgid "" "Another option is to pass :func:`globals` to the *globals* parameter, which " "will cause the code to be executed within your current global namespace. " "This can be more convenient than individually specifying imports::" msgstr "" +"Une autre possibilité est de passer :func:`globals` au paramètre *globals*, " +"ceci qui exécutera le code dans l'espace de nommage global courant. Cela " +"peut être plus pratique que de spécifier manuellement des importations ::" diff --git a/library/tkinter.po b/library/tkinter.po index 04d2e8221..dfa08aa00 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -5,23 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-04-29 00:24+0200\n" -"PO-Revision-Date: 2017-08-10 00:54+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-09-16 11:04+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 1.8.11\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/library/tkinter.rst:2 msgid ":mod:`tkinter` --- Python interface to Tcl/Tk" -msgstr "" +msgstr ":mod:`tkinter` — Interface Python pour Tcl/Tk" #: ../Doc/library/tkinter.rst:9 msgid "**Source code:** :source:`Lib/tkinter/__init__.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/tkinter/__init__.py`" #: ../Doc/library/tkinter.rst:13 msgid "" @@ -30,6 +30,10 @@ msgid "" "on most Unix platforms, as well as on Windows systems. (Tk itself is not " "part of Python; it is maintained at ActiveState.)" msgstr "" +"Le paquet :mod:`tkinter` (« interface Tk ») est l'interface Python standard " +"de la boîte à outils d'IUG Tk. Tk et :mod:`tkinter` sont disponibles sur la " +"plupart des plates-formes Unix, ainsi que sur les systèmes Windows (Tk lui-" +"même ne fait pas partie de Python ; il est maintenu par ActiveState)." #: ../Doc/library/tkinter.rst:18 msgid "" @@ -39,129 +43,151 @@ msgid "" "is installed, so you can read the Tcl/Tk documentation specific to that " "version." msgstr "" +"Exécuter ``python -m tkinter`` depuis la ligne de commande ouvre une fenêtre " +"de démonstration d'une interface Tk simple, vous indiquant que :mod:" +"`tkinter` est correctement installé sur votre système et indiquant également " +"quelle version de Tcl/Tk est installée ; vous pouvez donc lire la " +"documentation Tcl/Tk spécifique à cette version." #: ../Doc/library/tkinter.rst:25 msgid "Tkinter documentation:" -msgstr "" +msgstr "Documentation de Tkinter :" #: ../Doc/library/tkinter.rst:29 msgid "`Python Tkinter Resources `_" -msgstr "" +msgstr "`Python Tkinter Resources `_" #: ../Doc/library/tkinter.rst:28 msgid "" "The Python Tkinter Topic Guide provides a great deal of information on using " "Tk from Python and links to other sources of information on Tk." msgstr "" +"Le *Python Tkinter Topic Guide* fournit beaucoup d'informations sur " +"l'utilisation de Tk à partir de Python et des liens vers d'autres sources " +"d'information sur Tk." #: ../Doc/library/tkinter.rst:32 msgid "`TKDocs `_" -msgstr "" +msgstr "`TKDocs `_" #: ../Doc/library/tkinter.rst:32 msgid "" "Extensive tutorial plus friendlier widget pages for some of the widgets." -msgstr "" +msgstr "Tutoriel complet plus convivial pour certains des objets graphiques." #: ../Doc/library/tkinter.rst:35 msgid "" "`Tkinter reference: a GUI for Python `_" msgstr "" +"`Tkinter reference: a GUI for Python `_" #: ../Doc/library/tkinter.rst:35 msgid "On-line reference material." -msgstr "" +msgstr "Documents de référence en ligne." #: ../Doc/library/tkinter.rst:38 msgid "`Tkinter docs from effbot `_" -msgstr "" +msgstr "`Documents Tkinter sur effbot `_" #: ../Doc/library/tkinter.rst:38 msgid "Online reference for tkinter supported by effbot.org." -msgstr "" +msgstr "Référence en ligne pour *tkinter* réalisée par *effbot.org*." #: ../Doc/library/tkinter.rst:41 msgid "`Programming Python `_" -msgstr "" +msgstr "`Programming Python `_" #: ../Doc/library/tkinter.rst:41 msgid "Book by Mark Lutz, has excellent coverage of Tkinter." -msgstr "" +msgstr "Livre de Mark Lutz, qui couvre excellemment bien Tkinter." #: ../Doc/library/tkinter.rst:44 msgid "" "`Modern Tkinter for Busy Python Developers `_" msgstr "" +"`Modern Tkinter for Busy Python Developers `_" #: ../Doc/library/tkinter.rst:44 msgid "" "Book by Mark Rozerman about building attractive and modern graphical user " "interfaces with Python and Tkinter." msgstr "" +"Livre de Mark Rozerman sur la construction d'interfaces graphiques " +"esthétiques et modernes avec Python et Tkinter." #: ../Doc/library/tkinter.rst:47 msgid "" "`Python and Tkinter Programming `_" msgstr "" +"`Python and Tkinter Programming `_" #: ../Doc/library/tkinter.rst:47 msgid "Book by John Grayson (ISBN 1-884777-81-3)." -msgstr "" +msgstr "Livre de John Grayson (ISBN 1-884777-81-3)." #: ../Doc/library/tkinter.rst:49 msgid "Tcl/Tk documentation:" -msgstr "" +msgstr "Documentation de Tcl/Tk :" #: ../Doc/library/tkinter.rst:53 msgid "`Tk commands `_" -msgstr "" +msgstr "`Commandes Tk `_" #: ../Doc/library/tkinter.rst:52 msgid "" "Most commands are available as :mod:`tkinter` or :mod:`tkinter.ttk` classes. " "Change '8.6' to match the version of your Tcl/Tk installation." msgstr "" +"La plupart des commandes sont disponibles sous forme de classes :mod:" +"`tkinter` ou :mod:`tkinter.ttk`. Modifiez '8.6' pour correspondre à votre " +"version installée de Tcl/Tk." #: ../Doc/library/tkinter.rst:56 msgid "`Tcl/Tk recent man pages `_" -msgstr "" +msgstr "`Pages de manuel récentes de Tcl/Tk `_" #: ../Doc/library/tkinter.rst:56 msgid "Recent Tcl/Tk manuals on www.tcl.tk." -msgstr "" +msgstr "Manuels récents de Tcl/Tk sur *www.tcl.tk*." #: ../Doc/library/tkinter.rst:59 -msgid "`ActiveState Tcl Home Page `_" -msgstr "" +msgid "`ActiveState Tcl Home Page `_" +msgstr "`Page d'accueil Tcl `_ chez ActiveState" #: ../Doc/library/tkinter.rst:59 msgid "The Tk/Tcl development is largely taking place at ActiveState." msgstr "" +"Le développement de Tk/Tcl se déroule en grande partie au sein d'ActiveState." #: ../Doc/library/tkinter.rst:62 msgid "" "`Tcl and the Tk Toolkit `_" msgstr "" +"`Tcl and the Tk Toolkit `_" #: ../Doc/library/tkinter.rst:62 msgid "Book by John Ousterhout, the inventor of Tcl." -msgstr "" +msgstr "Livre de John Ousterhout, l'inventeur de Tcl." #: ../Doc/library/tkinter.rst:64 msgid "`Practical Programming in Tcl and Tk `_" -msgstr "" +msgstr "`Practical Programming in Tcl and Tk `_" #: ../Doc/library/tkinter.rst:65 msgid "Brent Welch's encyclopedic book." -msgstr "" +msgstr "Le livre encyclopédique de Brent Welch." #: ../Doc/library/tkinter.rst:69 msgid "Tkinter Modules" -msgstr "" +msgstr "Modules Tkinter" #: ../Doc/library/tkinter.rst:71 msgid "" @@ -172,6 +198,13 @@ msgid "" "programmers. It is usually a shared library (or DLL), but might in some " "cases be statically linked with the Python interpreter." msgstr "" +"La plupart du temps, :mod:`tkinter` est tout ce dont vous avez vraiment " +"besoin mais un certain nombre de modules supplémentaires sont également " +"disponibles. L'interface Tk est située dans un module binaire nommé :mod:" +"`_tkinter`. Ce module contient l'interface de bas niveau vers Tk et ne doit " +"jamais être utilisé directement par les développeurs. Il s'agit généralement " +"d'une bibliothèque partagée (ou DLL) mais elle peut, dans certains cas, être " +"liée statiquement à l'interpréteur Python." #: ../Doc/library/tkinter.rst:78 msgid "" @@ -180,10 +213,15 @@ msgid "" "Importing :mod:`tkinter` will automatically import :mod:`tkinter.constants`, " "so, usually, to use Tkinter all you need is a simple import statement::" msgstr "" +"En plus du module d'interface Tk, :mod:`tkinter` inclut un certain nombre de " +"modules Python, :mod:`tkinter.constants` étant l'un des plus importants. " +"Importer :mod:`tkinter` charge automatiquement :mod:`tkinter.constants` " +"donc, habituellement, pour utiliser Tkinter, tout ce dont vous avez besoin " +"est une simple commande d'importation ::" #: ../Doc/library/tkinter.rst:85 msgid "Or, more often::" -msgstr "" +msgstr "Ou, plus souvent ::" #: ../Doc/library/tkinter.rst:92 msgid "" @@ -191,6 +229,9 @@ msgid "" "toplevel widget of Tk which usually is the main window of an application. " "Each instance has its own associated Tcl interpreter." msgstr "" +"La classe :class:`Tk` est instanciée sans argument. Cela crée un widget de " +"haut niveau de Tk qui est généralement la fenêtre principale d'une " +"application. Chaque instance a son propre interpréteur Tcl associé." #: ../Doc/library/tkinter.rst:101 msgid "" @@ -203,88 +244,104 @@ msgid "" "window created (and the Tk subsystem initialized) by calling its :meth:" "`loadtk` method." msgstr "" +"La fonction :func:`Tcl` est une fonction fabrique qui crée un objet " +"similaire à celui créé par la classe :class:`Tk`, sauf qu'elle n'initialise " +"pas le sous-système Tk. Ceci est le plus souvent utile lorsque vous pilotez " +"l'interpréteur Tcl dans un environnement où vous ne voulez pas créer des " +"fenêtres de haut niveau supplémentaires, ou alors si c'est impossible (comme " +"les systèmes Unix/Linux sans un serveur X). Un objet créé par :func:`Tcl` " +"peut avoir une fenêtre de haut niveau créée (et le sous-système Tk " +"initialisé) en appelant sa méthode :meth:`loadtk`." #: ../Doc/library/tkinter.rst:110 msgid "Other modules that provide Tk support include:" -msgstr "" +msgstr "Parmi les modules qui savent gérer Tk, nous pouvons citer :" #: ../Doc/library/tkinter.rst:113 msgid ":mod:`tkinter.scrolledtext`" -msgstr "" +msgstr ":mod:`tkinter.scrolledtext`" #: ../Doc/library/tkinter.rst:113 msgid "Text widget with a vertical scroll bar built in." msgstr "" +"Outil d'affichage de texte avec une barre de défilement verticale intégrée." #: ../Doc/library/tkinter.rst:116 msgid ":mod:`tkinter.colorchooser`" -msgstr "" +msgstr ":mod:`tkinter.colorchooser`" #: ../Doc/library/tkinter.rst:116 msgid "Dialog to let the user choose a color." -msgstr "" +msgstr "Boîte de dialogue permettant à l'utilisateur de choisir une couleur." #: ../Doc/library/tkinter.rst:119 msgid ":mod:`tkinter.commondialog`" -msgstr "" +msgstr ":mod:`tkinter.commondialog`" #: ../Doc/library/tkinter.rst:119 msgid "Base class for the dialogs defined in the other modules listed here." msgstr "" +"Classe de base pour les boîtes de dialogue définies dans les autres modules " +"listés ici." #: ../Doc/library/tkinter.rst:122 msgid ":mod:`tkinter.filedialog`" -msgstr "" +msgstr ":mod:`tkinter.filedialog`" #: ../Doc/library/tkinter.rst:122 msgid "Common dialogs to allow the user to specify a file to open or save." msgstr "" +"Boîtes de dialogue standard permettant à l'utilisateur de spécifier un " +"fichier à ouvrir ou à enregistrer." #: ../Doc/library/tkinter.rst:125 msgid ":mod:`tkinter.font`" -msgstr "" +msgstr ":mod:`tkinter.font`" #: ../Doc/library/tkinter.rst:125 msgid "Utilities to help work with fonts." -msgstr "" +msgstr "Utilitaires pour gérer les polices de caractères." #: ../Doc/library/tkinter.rst:128 msgid ":mod:`tkinter.messagebox`" -msgstr "" +msgstr ":mod:`tkinter.messagebox`" #: ../Doc/library/tkinter.rst:128 msgid "Access to standard Tk dialog boxes." -msgstr "" +msgstr "Accès aux boîtes de dialogue Tk standard." #: ../Doc/library/tkinter.rst:131 msgid ":mod:`tkinter.simpledialog`" -msgstr "" +msgstr ":mod:`tkinter.simpledialog`" #: ../Doc/library/tkinter.rst:131 msgid "Basic dialogs and convenience functions." -msgstr "" +msgstr "Boîtes de dialogue simples et fonctions utilitaires." #: ../Doc/library/tkinter.rst:135 msgid ":mod:`tkinter.dnd`" -msgstr "" +msgstr ":mod:`tkinter.dnd`" #: ../Doc/library/tkinter.rst:134 msgid "" "Drag-and-drop support for :mod:`tkinter`. This is experimental and should " "become deprecated when it is replaced with the Tk DND." msgstr "" +"Support du glisser-déposer pour :mod:`tkinter`. Il s'agit d'une méthode " +"expérimentale qui ne sera plus maintenue lorsqu'elle sera remplacée par Tk " +"DND." #: ../Doc/library/tkinter.rst:139 msgid ":mod:`turtle`" -msgstr "" +msgstr ":mod:`turtle`" #: ../Doc/library/tkinter.rst:138 msgid "Turtle graphics in a Tk window." -msgstr "" +msgstr "Tortue graphique dans une fenêtre Tk." #: ../Doc/library/tkinter.rst:142 msgid "Tkinter Life Preserver" -msgstr "" +msgstr "Guide de survie Tkinter" #: ../Doc/library/tkinter.rst:147 msgid "" @@ -292,45 +349,54 @@ msgid "" "Tkinter. Rather, it is intended as a stop gap, providing some introductory " "orientation on the system." msgstr "" +"Cette section n'est pas conçue pour être un tutoriel exhaustif de Tk ou " +"Tkinter. Il s'agit plutôt d'un guide d'introduction au système." #: ../Doc/library/tkinter.rst:151 msgid "Credits:" -msgstr "" +msgstr "Crédits :" #: ../Doc/library/tkinter.rst:153 msgid "Tk was written by John Ousterhout while at Berkeley." -msgstr "" +msgstr "*Tk* a été écrit par John Ousterhout de Berkeley." #: ../Doc/library/tkinter.rst:155 msgid "Tkinter was written by Steen Lumholt and Guido van Rossum." -msgstr "" +msgstr "*Tkinter* a été écrit par Steen Lumholt et Guido van Rossum." #: ../Doc/library/tkinter.rst:157 msgid "" "This Life Preserver was written by Matt Conway at the University of Virginia." msgstr "" +"Ce guide de survie a été écrit par Matt Conway de l'Université de Virginie." #: ../Doc/library/tkinter.rst:159 msgid "" "The HTML rendering, and some liberal editing, was produced from a FrameMaker " "version by Ken Manheimer." msgstr "" +"Le rendu HTML, avec quelques modifications, a été réalisé à partir d'une " +"version FrameMaker par Ken Manheimer." #: ../Doc/library/tkinter.rst:162 msgid "" "Fredrik Lundh elaborated and revised the class interface descriptions, to " "get them current with Tk 4.2." msgstr "" +"Fredrik Lundh a élaboré et mis à jour les descriptions de l'interface des " +"classes, en cohérence avec Tk 4.2." #: ../Doc/library/tkinter.rst:165 msgid "" "Mike Clarkson converted the documentation to LaTeX, and compiled the User " "Interface chapter of the reference manual." msgstr "" +"Mike Clarkson a converti la documentation en LaTeX et a compilé le chapitre " +"*Interface utilisateur* du manuel de référence." #: ../Doc/library/tkinter.rst:170 msgid "How To Use This Section" -msgstr "" +msgstr "Mode d'emploi" #: ../Doc/library/tkinter.rst:172 msgid "" @@ -338,6 +404,9 @@ msgid "" "background material, while the second half can be taken to the keyboard as a " "handy reference." msgstr "" +"Cette section est divisée en deux parties : la première moitié (à peu près) " +"couvre la partie théorique, tandis que la seconde moitié peut être utilisée " +"comme guide pratique." #: ../Doc/library/tkinter.rst:176 msgid "" @@ -350,6 +419,14 @@ msgid "" "best we can do is point you to the best documentation that exists. Here are " "some hints:" msgstr "" +"Lorsque l'on essaie de répondre à des questions sur la manière de faire « " +"ceci ou cela », il est souvent préférable de trouver comment le faire en Tk, " +"puis de le convertir en fonction correspondante :mod:`tkinter`. Les " +"programmeurs Python peuvent souvent deviner la commande Python correcte en " +"consultant la documentation Tk. Cela signifie que pour utiliser Tkinter, " +"vous devez en savoir un peu plus sur Tk. Ce document ne peut pas remplir ce " +"rôle, alors le mieux que nous puissions faire est de vous indiquer la " +"meilleure documentation qui existe. Voici quelques conseils :" #: ../Doc/library/tkinter.rst:184 msgid "" @@ -358,6 +435,11 @@ msgid "" "``man3`` man pages describe the C interface to the Tk library and thus are " "not especially helpful for script writers." msgstr "" +"Les auteurs conseillent fortement d'obtenir une copie des pages de manuel de " +"Tk. En particulier, les pages de manuel dans le répertoire ``manN`` sont les " +"plus utiles. Les pages de manuel ``man3`` décrivent l'interface C de la " +"bibliothèque Tk et ne sont donc pas particulièrement utiles aux développeurs " +"de scripts." #: ../Doc/library/tkinter.rst:189 msgid "" @@ -366,85 +448,116 @@ msgid "" "for the novice. The book is not exhaustive, and for many details it defers " "to the man pages." msgstr "" +"Addison-Wesley a publié un livre intitulé *Tcl and the Tk Toolkit* de John " +"Ousterhout (ISBN 0-201-63337-X) qui est une bonne introduction à Tcl et Tk " +"pour débutants. Le livre n'est pas exhaustif et, pour beaucoup de détails, " +"il renvoie aux pages du manuel." #: ../Doc/library/tkinter.rst:194 msgid "" ":file:`tkinter/__init__.py` is a last resort for most, but can be a good " "place to go when nothing else makes sense." msgstr "" +":file:`tkinter/__init__.py` est souvent un dernier recours, mais peut être " +"un bon endroit où aller quand rien d'autre ne fait sens." #: ../Doc/library/tkinter.rst:199 msgid "A Simple Hello World Program" -msgstr "" +msgstr "Un simple programme *Hello World*" -#: ../Doc/library/tkinter.rst:230 +#: ../Doc/library/tkinter.rst:231 msgid "A (Very) Quick Look at Tcl/Tk" -msgstr "" +msgstr "Un (très) rapide aperçu de Tcl/Tk" -#: ../Doc/library/tkinter.rst:232 +#: ../Doc/library/tkinter.rst:233 msgid "" "The class hierarchy looks complicated, but in actual practice, application " "programmers almost always refer to the classes at the very bottom of the " "hierarchy." msgstr "" +"La hiérarchie de classes semble compliquée mais, dans la pratique, les " +"développeurs d'applications se réfèrent presque toujours aux classes situées " +"tout en bas de la hiérarchie." -#: ../Doc/library/tkinter.rst:236 +#: ../Doc/library/tkinter.rst:237 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/tkinter.rst:238 +#: ../Doc/library/tkinter.rst:239 msgid "" "These classes are provided for the purposes of organizing certain functions " "under one namespace. They aren't meant to be instantiated independently." msgstr "" +"Ces classes sont fournies dans le but d'organiser certaines fonctions sous " +"un seul espace de nommage. Elles n'ont pas vocation à être instanciées " +"indépendamment." -#: ../Doc/library/tkinter.rst:241 +#: ../Doc/library/tkinter.rst:242 msgid "" "The :class:`Tk` class is meant to be instantiated only once in an " "application. Application programmers need not instantiate one explicitly, " "the system creates one whenever any of the other classes are instantiated." msgstr "" +"La classe :class:`Tk` est destinée à être instanciée une seule fois dans une " +"application. Les développeurs d'applications n'ont pas besoin d'en " +"instancier une explicitement, Le système en crée une au besoin quand une des " +"autres classes est instanciée." -#: ../Doc/library/tkinter.rst:245 +#: ../Doc/library/tkinter.rst:246 msgid "" "The :class:`Widget` class is not meant to be instantiated, it is meant only " "for subclassing to make \"real\" widgets (in C++, this is called an " "'abstract class')." msgstr "" +"La classe :class:`Widget` n'est pas destinée à être instanciée, elle est " +"destinée uniquement au sous-classement pour faire de « vrais » objets " +"graphiques (en C++, on appelle cela une « classe abstraite »)." -#: ../Doc/library/tkinter.rst:249 +#: ../Doc/library/tkinter.rst:250 msgid "" "To make use of this reference material, there will be times when you will " "need to know how to read short passages of Tk and how to identify the " "various parts of a Tk command. (See section :ref:`tkinter-basic-mapping` " "for the :mod:`tkinter` equivalents of what's below.)" msgstr "" +"Pour comprendre cette documentation, il y aura des moments où vous aurez " +"besoin de savoir comment lire de courts passages de Tk et comment identifier " +"les différentes parties d'une commande Tk. (Voir la section :ref:`tkinter-" +"basic-mapping` pour les équivalents :mod:`tkinter` de ce qui suit)." -#: ../Doc/library/tkinter.rst:254 +#: ../Doc/library/tkinter.rst:255 msgid "" "Tk scripts are Tcl programs. Like all Tcl programs, Tk scripts are just " "lists of tokens separated by spaces. A Tk widget is just its *class*, the " "*options* that help configure it, and the *actions* that make it do useful " "things." msgstr "" +"Les scripts Tk sont des programmes Tcl. Comme tous les programmes Tcl, les " +"scripts Tk ne sont que des listes de commandes séparées par des espaces. Un " +"objet graphique Tk n'est constitué que de sa *classe*, des *options* qui " +"l'aident à se configurer et des *actions* qui lui font faire des choses " +"utiles." -#: ../Doc/library/tkinter.rst:258 +#: ../Doc/library/tkinter.rst:259 msgid "To make a widget in Tk, the command is always of the form::" msgstr "" +"Pour créer un objet graphique en Tk, la commande est toujours de la forme ::" -#: ../Doc/library/tkinter.rst:263 +#: ../Doc/library/tkinter.rst:264 msgid "*classCommand*" -msgstr "" +msgstr "*classCommand*" -#: ../Doc/library/tkinter.rst:263 +#: ../Doc/library/tkinter.rst:264 msgid "denotes which kind of widget to make (a button, a label, a menu...)" msgstr "" +"indique le type d'objet graphique à réaliser (un bouton, une étiquette, un " +"menu…)" -#: ../Doc/library/tkinter.rst:270 +#: ../Doc/library/tkinter.rst:273 msgid "*newPathname*" -msgstr "" +msgstr "*newPathname*" -#: ../Doc/library/tkinter.rst:266 +#: ../Doc/library/tkinter.rst:269 msgid "" "is the new name for this widget. All names in Tk must be unique. To help " "enforce this, widgets in Tk are named with *pathnames*, just like files in a " @@ -452,25 +565,37 @@ msgid "" "children are delimited by more periods. For example, ``.myApp.controlPanel." "okButton`` might be the name of a widget." msgstr "" +"est le nouveau nom pour cet objet graphique. Tous les noms dans Tk doivent " +"être uniques. Pour vous aider à respecter cette règle, les objets " +"graphiques dans Tk sont nommés avec des *noms d'accès*, tout comme les " +"fichiers dans le système de fichiers. L'objet graphique de niveau " +"supérieur, la racine (*root* en anglais), s'appelle ``.`` (point) et les " +"enfants sont délimités par plusieurs points. Par exemple, ``.myApp." +"controlPanel.okButton`` pourrait être le nom d'un objet graphique." -#: ../Doc/library/tkinter.rst:276 +#: ../Doc/library/tkinter.rst:279 msgid "*options*" msgstr "*options*" -#: ../Doc/library/tkinter.rst:273 +#: ../Doc/library/tkinter.rst:276 msgid "" "configure the widget's appearance and in some cases, its behavior. The " "options come in the form of a list of flags and values. Flags are preceded " "by a '-', like Unix shell command flags, and values are put in quotes if " "they are more than one word." msgstr "" +"configure l'apparence de l'objet graphique et, dans certains cas, son " +"comportement. Les options se présentent sous la forme d'une liste de " +"paramètres et de valeurs. Les paramètres sont précédés d'un « - », comme les " +"paramètres d'une ligne de commande du shell Unix, et les valeurs sont mises " +"entre guillemets si elles font plus d'un mot." -#: ../Doc/library/tkinter.rst:278 ../Doc/library/tkinter.rst:540 -#: ../Doc/library/tkinter.rst:714 +#: ../Doc/library/tkinter.rst:281 ../Doc/library/tkinter.rst:543 +#: ../Doc/library/tkinter.rst:717 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/tkinter.rst:286 +#: ../Doc/library/tkinter.rst:289 msgid "" "Once created, the pathname to the widget becomes a new command. This new " "*widget command* is the programmer's handle for getting the new widget to " @@ -478,42 +603,61 @@ msgid "" "someOptions), in C++, you would express this as fred." "someAction(someOptions), and in Tk, you say::" msgstr "" +"Une fois créé, le chemin d'accès à l'objet graphique devient une nouvelle " +"commande. Cette nouvelle *commande d'objet graphique* est l'interface du " +"programmeur pour que le nouvel objet graphique effectue une *action*. En C, " +"cela prend la forme ``someAction(fred, someOptions)``, en C++, cela prend la " +"forme `fred.someAction(someOptions)` et, en Tk, vous dites ::" -#: ../Doc/library/tkinter.rst:294 +#: ../Doc/library/tkinter.rst:297 msgid "Note that the object name, ``.fred``, starts with a dot." -msgstr "" +msgstr "Notez que le nom de l'objet, ``.fred``, commence par un point." -#: ../Doc/library/tkinter.rst:296 +#: ../Doc/library/tkinter.rst:299 msgid "" "As you'd expect, the legal values for *someAction* will depend on the " "widget's class: ``.fred disable`` works if fred is a button (fred gets " "greyed out), but does not work if fred is a label (disabling of labels is " "not supported in Tk)." msgstr "" +"Comme vous pouvez vous y attendre, les valeurs autorisées pour *someAction* " +"dépendent de la classe de l'objet graphique : ``.fred disable`` fonctionne " +"si ``fred`` est un bouton (``fred`` devient grisé), mais ne fonctionne pas " +"si ``fred`` est une étiquette (la désactivation des étiquettes n'existe pas " +"dans Tk)." -#: ../Doc/library/tkinter.rst:300 +#: ../Doc/library/tkinter.rst:303 msgid "" "The legal values of *someOptions* is action dependent. Some actions, like " "``disable``, require no arguments, others, like a text-entry box's " "``delete`` command, would need arguments to specify what range of text to " "delete." msgstr "" +"Les valeurs possibles de *someOptions* dépendent de l'action. Certaines " +"actions, comme ``disable``, ne nécessitent aucun argument ; d'autres, comme " +"la commande ``delete`` d'une zone de saisie, nécessitent des arguments pour " +"spécifier l'étendue du texte à supprimer." -#: ../Doc/library/tkinter.rst:308 +#: ../Doc/library/tkinter.rst:311 msgid "Mapping Basic Tk into Tkinter" -msgstr "" +msgstr "Correspondance entre *Basic Tk* et *Tkinter*" -#: ../Doc/library/tkinter.rst:310 +#: ../Doc/library/tkinter.rst:313 msgid "Class commands in Tk correspond to class constructors in Tkinter. ::" msgstr "" +"Les commandes de classes dans Tk correspondent aux constructeurs de classes " +"dans Tkinter. ::" -#: ../Doc/library/tkinter.rst:314 +#: ../Doc/library/tkinter.rst:317 msgid "" "The master of an object is implicit in the new name given to it at creation " "time. In Tkinter, masters are specified explicitly. ::" msgstr "" +"Le constructeur d'un objet est implicite dans le nouveau nom qui lui est " +"donné lors de la création. Dans Tkinter, les constructeurs sont spécifiés " +"explicitement. ::" -#: ../Doc/library/tkinter.rst:319 +#: ../Doc/library/tkinter.rst:322 msgid "" "The configuration options in Tk are given in lists of hyphened tags followed " "by values. In Tkinter, options are specified as keyword-arguments in the " @@ -521,8 +665,15 @@ msgid "" "indices, in dictionary style, for established instances. See section :ref:" "`tkinter-setting-options` on setting options. ::" msgstr "" +"Les options de configuration dans Tk sont données dans des listes de " +"paramètres séparés par des traits d'union suivies de leurs valeurs. Dans " +"Tkinter, les options sont spécifiées sous forme d'arguments par mots-clés " +"dans le constructeur d'instance, et d'arguments par mots-clés pour " +"configurer les appels ou sous forme d'une entrée, dans le style " +"dictionnaire, d'instance pour les instances établies. Voir la section :ref:" +"`tkinter-setting-options` pour la façon de définir les options. ::" -#: ../Doc/library/tkinter.rst:329 +#: ../Doc/library/tkinter.rst:332 msgid "" "In Tk, to perform an action on a widget, use the widget name as a command, " "and follow it with an action name, possibly with arguments (options). In " @@ -530,8 +681,14 @@ msgid "" "widget. The actions (methods) that a given widget can perform are listed " "in :file:`tkinter/__init__.py`. ::" msgstr "" +"Dans Tk, pour effectuer une action sur un objet graphique, utilisez le nom " +"de l'objet graphique comme une commande et faites-le suivre d'un nom " +"d'action, éventuellement avec des arguments (options). Dans Tkinter, vous " +"appelez des méthodes sur l'instance de classe pour invoquer des actions sur " +"l'objet graphique. Les actions (méthodes) qu'un objet graphique donné peut " +"effectuer sont listées dans :file:`tkinter/__init__.py`. ::" -#: ../Doc/library/tkinter.rst:337 +#: ../Doc/library/tkinter.rst:340 msgid "" "To give a widget to the packer (geometry manager), you call pack with " "optional arguments. In Tkinter, the Pack class holds all this " @@ -540,28 +697,36 @@ msgid "" "so inherit all the packing methods. See the :mod:`tkinter.tix` module " "documentation for additional information on the Form geometry manager. ::" msgstr "" +"Pour donner un objet graphique à l'empaqueteur (ce qui gère la disposition à " +"l'écran), appelez ``pack`` avec des arguments optionnels. Dans Tkinter, la " +"classe ``Pack`` contient toutes ces fonctionnalités et les différentes " +"formes de la commande ``pack`` sont implémentées comme méthodes. Tous les " +"objets graphiques de :mod:`tkinter` sont sous-classés depuis l'empaqueteur " +"et donc héritent de toutes les méthodes d'empaquetage. Voir la documentation " +"du module :mod:`tkinter.tix` pour plus d'informations sur le gestionnaire de " +"disposition des formulaires. ::" -#: ../Doc/library/tkinter.rst:348 +#: ../Doc/library/tkinter.rst:351 msgid "How Tk and Tkinter are Related" -msgstr "" +msgstr "Relations entre Tk et Tkinter" -#: ../Doc/library/tkinter.rst:350 +#: ../Doc/library/tkinter.rst:353 msgid "From the top down:" -msgstr "" +msgstr "De haut en bas :" -#: ../Doc/library/tkinter.rst:353 +#: ../Doc/library/tkinter.rst:356 msgid "Your App Here (Python)" -msgstr "" +msgstr "Votre application (Python)" -#: ../Doc/library/tkinter.rst:353 +#: ../Doc/library/tkinter.rst:356 msgid "A Python application makes a :mod:`tkinter` call." -msgstr "" +msgstr "Une application Python fait un appel :mod:`tkinter`." -#: ../Doc/library/tkinter.rst:360 +#: ../Doc/library/tkinter.rst:363 msgid "tkinter (Python Package)" -msgstr "" +msgstr "*tkinter* (paquet Python)" -#: ../Doc/library/tkinter.rst:356 +#: ../Doc/library/tkinter.rst:359 msgid "" "This call (say, for example, creating a button widget), is implemented in " "the :mod:`tkinter` package, which is written in Python. This Python " @@ -569,22 +734,28 @@ msgid "" "form that makes them look as if they had come from a Tk script instead of a " "Python script." msgstr "" +"Cet appel (par exemple, la création d'un objet graphique de type bouton) est " +"implémenté dans le paquet :mod:`tkinter`, qui est écrit en Python. Cette " +"fonction Python analyse les commandes et les arguments et les convertit en " +"une forme qui les fait ressembler à un script Tk au lieu d'un script Python." -#: ../Doc/library/tkinter.rst:364 +#: ../Doc/library/tkinter.rst:367 msgid "_tkinter (C)" -msgstr "" +msgstr "_tkinter (C)" -#: ../Doc/library/tkinter.rst:363 +#: ../Doc/library/tkinter.rst:366 msgid "" "These commands and their arguments will be passed to a C function in the :" "mod:`_tkinter` - note the underscore - extension module." msgstr "" +"Ces commandes et leurs arguments sont passés à une fonction C dans le module " +"d'extension :mod:`_tkinter` — notez le tiret bas." -#: ../Doc/library/tkinter.rst:371 +#: ../Doc/library/tkinter.rst:374 msgid "Tk Widgets (C and Tcl)" -msgstr "" +msgstr "Objets graphiques Tk (C et Tcl)" -#: ../Doc/library/tkinter.rst:367 +#: ../Doc/library/tkinter.rst:370 msgid "" "This C function is able to make calls into other C modules, including the C " "functions that make up the Tk library. Tk is implemented in C and some Tcl. " @@ -592,58 +763,76 @@ msgid "" "widgets, and is executed once at the point where the Python :mod:`tkinter` " "package is imported. (The user never sees this stage)." msgstr "" +"Cette fonction C est capable d'effectuer des appels vers d'autres modules C, " +"y compris les fonctions C qui composent la bibliothèque Tk. Tk est " +"implémenté en C et un peu en Tcl. La partie Tcl des objets graphiques Tk est " +"utilisée pour lier certains comportements par défaut aux objets graphiques, " +"et est exécutée une fois au moment où le paquet Python :mod:`tkinter` est " +"importé (cette étape est transparente pour l'utilisateur)." -#: ../Doc/library/tkinter.rst:374 +#: ../Doc/library/tkinter.rst:377 msgid "Tk (C)" -msgstr "" +msgstr "Tk (C)" -#: ../Doc/library/tkinter.rst:374 +#: ../Doc/library/tkinter.rst:377 msgid "The Tk part of the Tk Widgets implement the final mapping to ..." msgstr "" +"La partie Tk des objets graphiques Tk implémente la correspondance finale " +"avec …" -#: ../Doc/library/tkinter.rst:378 +#: ../Doc/library/tkinter.rst:381 msgid "Xlib (C)" -msgstr "" +msgstr "Xlib (C)" -#: ../Doc/library/tkinter.rst:377 +#: ../Doc/library/tkinter.rst:380 msgid "the Xlib library to draw graphics on the screen." msgstr "" +"la bibliothèque *Xlib* pour dessiner des éléments graphiques à l'écran." -#: ../Doc/library/tkinter.rst:381 +#: ../Doc/library/tkinter.rst:384 msgid "Handy Reference" -msgstr "" +msgstr "Guide pratique" -#: ../Doc/library/tkinter.rst:387 +#: ../Doc/library/tkinter.rst:390 msgid "Setting Options" -msgstr "" +msgstr "Définition des options" -#: ../Doc/library/tkinter.rst:389 +#: ../Doc/library/tkinter.rst:392 msgid "" "Options control things like the color and border width of a widget. Options " "can be set in three ways:" msgstr "" +"Les options contrôlent des paramètres tels que la couleur et la largeur de " +"la bordure d'un objet graphique. Les options peuvent être réglées de trois " +"façons :" -#: ../Doc/library/tkinter.rst:395 +#: ../Doc/library/tkinter.rst:398 msgid "At object creation time, using keyword arguments" -msgstr "" +msgstr "Lors de la création de l'objet, à l'aide d'arguments par mots-clés" -#: ../Doc/library/tkinter.rst:401 +#: ../Doc/library/tkinter.rst:404 msgid "After object creation, treating the option name like a dictionary index" msgstr "" +"Après la création de l'objet, en manipulant le nom de l'option comme une " +"entrée de dictionnaire" -#: ../Doc/library/tkinter.rst:406 +#: ../Doc/library/tkinter.rst:409 msgid "" "Use the config() method to update multiple attrs subsequent to object " "creation" msgstr "" +"Utilisez la méthode ``config()`` pour mettre à jour plusieurs attributs " +"après la création de l'objet" -#: ../Doc/library/tkinter.rst:408 +#: ../Doc/library/tkinter.rst:411 msgid "" "For a complete explanation of a given option and its behavior, see the Tk " "man pages for the widget in question." msgstr "" +"Pour l'explication complète d'une option donnée et de son comportement, voir " +"les pages de manuel Tk de l'objet graphique en question." -#: ../Doc/library/tkinter.rst:411 +#: ../Doc/library/tkinter.rst:414 msgid "" "Note that the man pages list \"STANDARD OPTIONS\" and \"WIDGET SPECIFIC " "OPTIONS\" for each widget. The former is a list of options that are common " @@ -651,16 +840,28 @@ msgid "" "particular widget. The Standard Options are documented on the :manpage:" "`options(3)` man page." msgstr "" +"Notez que les pages de manuel listent « OPTIONS STANDARD » et « OPTIONS " +"SPÉCIFIQUES D'OBJETS GRAPHIQUES » pour chaque objet graphique. La première " +"est une liste d'options communes à de nombreux objets graphiques, la seconde " +"est une liste d'options propres à cet objet graphique particulier. Les " +"options standard sont documentées sur la page de manuel :manpage:" +"`options(3)`." -#: ../Doc/library/tkinter.rst:417 +#: ../Doc/library/tkinter.rst:420 msgid "" "No distinction between standard and widget-specific options is made in this " "document. Some options don't apply to some kinds of widgets. Whether a " "given widget responds to a particular option depends on the class of the " "widget; buttons have a ``command`` option, labels do not." msgstr "" +"Aucune distinction n'est faite dans ce document entre les options standard " +"et les options spécifiques à un objet graphique. Certaines options ne " +"s'appliquent pas à certains types d'objets graphiques. La réaction d'un " +"objet graphique donné à une option particulière dépend de la classe de " +"l'objet graphique ; les boutons possèdent une option ``command``, pas les " +"étiquettes." -#: ../Doc/library/tkinter.rst:422 +#: ../Doc/library/tkinter.rst:425 msgid "" "The options supported by a given widget are listed in that widget's man " "page, or can be queried at runtime by calling the :meth:`config` method " @@ -668,8 +869,14 @@ msgid "" "The return value of these calls is a dictionary whose key is the name of the " "option as a string (for example, ``'relief'``) and whose values are 5-tuples." msgstr "" +"Les options gérées par un objet graphique donné sont listées dans la page de " +"manuel de cet objet graphique, ou peuvent être interrogées à l'exécution en " +"appelant la méthode :meth:`config` sans argument, ou en appelant la méthode :" +"meth:`keys` sur cet objet graphique. La valeur de retour de ces appels est " +"un dictionnaire dont la clé est le nom de l'option sous forme de chaîne (par " +"exemple, ``'relief'``) et dont les valeurs sont des *5-uplets*." -#: ../Doc/library/tkinter.rst:428 +#: ../Doc/library/tkinter.rst:431 msgid "" "Some options, like ``bg`` are synonyms for common options with long names " "(``bg`` is shorthand for \"background\"). Passing the ``config()`` method " @@ -677,90 +884,97 @@ msgid "" "tuple passed back will contain the name of the synonym and the \"real\" " "option (such as ``('bg', 'background')``)." msgstr "" +"Certaines options, comme ``bg``, sont des synonymes d'options communes qui " +"ont des noms longs (``bg`` est une abréviation pour ``background`` « arrière-" +"plan »). Passer le nom abrégé d'une option à la méthode ``config()`` renvoie " +"un couple, pas un quintuplet. Le couple renvoyé contient le nom abrégé et le " +"nom *réel* de l'option, par exemple ``('bg','background')``." -#: ../Doc/library/tkinter.rst:435 +#: ../Doc/library/tkinter.rst:438 msgid "Index" -msgstr "" +msgstr "Index" -#: ../Doc/library/tkinter.rst:435 +#: ../Doc/library/tkinter.rst:438 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/tkinter.rst:435 +#: ../Doc/library/tkinter.rst:438 msgid "Example" msgstr "Exemple" -#: ../Doc/library/tkinter.rst:437 +#: ../Doc/library/tkinter.rst:440 msgid "0" msgstr "0" -#: ../Doc/library/tkinter.rst:437 +#: ../Doc/library/tkinter.rst:440 msgid "option name" -msgstr "" +msgstr "nom des options" -#: ../Doc/library/tkinter.rst:437 ../Doc/library/tkinter.rst:439 +#: ../Doc/library/tkinter.rst:440 ../Doc/library/tkinter.rst:442 msgid "``'relief'``" msgstr "``'relief'``" -#: ../Doc/library/tkinter.rst:439 +#: ../Doc/library/tkinter.rst:442 msgid "1" msgstr "1" -#: ../Doc/library/tkinter.rst:439 +#: ../Doc/library/tkinter.rst:442 msgid "option name for database lookup" -msgstr "" +msgstr "nom de l'option pour la recherche dans la base de données" -#: ../Doc/library/tkinter.rst:441 +#: ../Doc/library/tkinter.rst:444 msgid "2" msgstr "2" -#: ../Doc/library/tkinter.rst:441 +#: ../Doc/library/tkinter.rst:444 msgid "option class for database lookup" -msgstr "" +msgstr "classe de l'option pour la recherche dans la base de données" -#: ../Doc/library/tkinter.rst:441 +#: ../Doc/library/tkinter.rst:444 msgid "``'Relief'``" msgstr "``'Relief'``" -#: ../Doc/library/tkinter.rst:444 +#: ../Doc/library/tkinter.rst:447 msgid "3" msgstr "3" -#: ../Doc/library/tkinter.rst:444 +#: ../Doc/library/tkinter.rst:447 msgid "default value" -msgstr "Valeur par défaut" +msgstr "valeur par défaut" -#: ../Doc/library/tkinter.rst:444 +#: ../Doc/library/tkinter.rst:447 msgid "``'raised'``" msgstr "``'raised'``" -#: ../Doc/library/tkinter.rst:446 +#: ../Doc/library/tkinter.rst:449 msgid "4" msgstr "4" -#: ../Doc/library/tkinter.rst:446 +#: ../Doc/library/tkinter.rst:449 msgid "current value" -msgstr "" +msgstr "valeur actuelle" -#: ../Doc/library/tkinter.rst:446 +#: ../Doc/library/tkinter.rst:449 msgid "``'groove'``" msgstr "``'groove'``" -#: ../Doc/library/tkinter.rst:449 +#: ../Doc/library/tkinter.rst:452 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/tkinter.rst:454 +#: ../Doc/library/tkinter.rst:457 msgid "" "Of course, the dictionary printed will include all the options available and " "their values. This is meant only as an example." msgstr "" +"Bien sûr, le dictionnaire affiché contient toutes les options disponibles et " +"leurs valeurs. Ceci n'est donné qu'à titre d'exemple." -#: ../Doc/library/tkinter.rst:459 +#: ../Doc/library/tkinter.rst:462 msgid "The Packer" -msgstr "" +msgstr "L'empaqueteur" -#: ../Doc/library/tkinter.rst:463 +#: ../Doc/library/tkinter.rst:466 msgid "" "The packer is one of Tk's geometry-management mechanisms. Geometry " "managers are used to specify the relative positioning of the positioning of " @@ -770,8 +984,16 @@ msgid "" "*to the left of*, *filling*, etc - and works everything out to determine the " "exact placement coordinates for you." msgstr "" +"L'empaqueteur est l'un des mécanismes de Tk pour la gestion de la " +"disposition des éléments sur l'écran. Les gestionnaires de géométrie sont " +"utilisés pour spécifier le positionnement relatif du positionnement des " +"objets graphiques dans leur conteneur — leur *constructeur* mutuel. " +"Contrairement au plus encombrant *placeur* (qui est utilisé moins souvent, " +"et nous n'en parlons pas ici), l'empaqueteur prend les spécifications " +"qualitatives de relation — *above*, *to the left of*, *filling*, etc — et " +"calcule tout pour déterminer les coordonnées exactes du placement pour vous." -#: ../Doc/library/tkinter.rst:471 +#: ../Doc/library/tkinter.rst:474 msgid "" "The size of any *master* widget is determined by the size of the \"slave " "widgets\" inside. The packer is used to control where slave widgets appear " @@ -780,8 +1002,16 @@ msgid "" "you desire. Additionally, the arrangement is dynamically adjusted to " "accommodate incremental changes to the configuration, once it is packed." msgstr "" +"La taille d'un objet graphique *constructeur* est déterminée par la taille " +"des « objets graphiques hérités » à l'intérieur. L'empaqueteur est utilisé " +"pour contrôler l'endroit où les objets graphiques hérités apparaissent à " +"l'intérieur du constructeur dans lequel ils sont empaquetés. Vous pouvez " +"regrouper des objets graphiques dans des cadres, et des cadres dans d'autres " +"cadres, afin d'obtenir le type de mise en page souhaité. De plus, " +"l'arrangement est ajusté dynamiquement pour s'adapter aux changements " +"incrémentiels de la configuration, une fois qu'elle est empaquetées." -#: ../Doc/library/tkinter.rst:478 +#: ../Doc/library/tkinter.rst:481 msgid "" "Note that widgets do not appear until they have had their geometry specified " "with a geometry manager. It's a common early mistake to leave out the " @@ -789,80 +1019,98 @@ msgid "" "nothing appears. A widget will appear only after it has had, for example, " "the packer's :meth:`pack` method applied to it." msgstr "" +"Notez que les objets graphiques n'apparaissent pas tant que leur disposition " +"n'a pas été spécifiée avec un gestionnaire de géométrie. C'est une erreur " +"de débutant courante de ne pas tenir compte de la spécification de la " +"géométrie, puis d'être surpris lorsque l'objet graphique est créé mais que " +"rien n'apparaît. Un objet graphique n'apparaît qu'après que, par exemple, " +"la méthode :meth:`pack` de l'empaqueteur lui ait été appliquée." -#: ../Doc/library/tkinter.rst:484 +#: ../Doc/library/tkinter.rst:487 msgid "" "The pack() method can be called with keyword-option/value pairs that control " "where the widget is to appear within its container, and how it is to behave " "when the main application window is resized. Here are some examples::" msgstr "" +"La méthode `pack()` peut être appelée avec des paires mot-clé-option/valeur " +"qui contrôlent où l'objet graphique doit apparaître dans son conteneur et " +"comment il doit se comporter lorsque la fenêtre principale de l'application " +"est redimensionnée. En voici quelques exemples ::" -#: ../Doc/library/tkinter.rst:494 +#: ../Doc/library/tkinter.rst:497 msgid "Packer Options" -msgstr "" +msgstr "Options de l'empaqueteur" -#: ../Doc/library/tkinter.rst:496 +#: ../Doc/library/tkinter.rst:499 msgid "" "For more extensive information on the packer and the options that it can " "take, see the man pages and page 183 of John Ousterhout's book." msgstr "" +"Pour de plus amples informations sur l'empaqueteur et les options qu'il peut " +"prendre, voir les pages de manuel et la page 183 du livre de John Ousterhout." -#: ../Doc/library/tkinter.rst:500 ../Doc/library/tkinter.rst:616 +#: ../Doc/library/tkinter.rst:503 ../Doc/library/tkinter.rst:619 msgid "anchor" -msgstr "" +msgstr "*anchor*" -#: ../Doc/library/tkinter.rst:500 +#: ../Doc/library/tkinter.rst:503 msgid "" "Anchor type. Denotes where the packer is to place each slave in its parcel." msgstr "" +"Type d'ancrage. Indique l'endroit où l'empaqueteur doit placer chaque " +"enfant dans son espace." -#: ../Doc/library/tkinter.rst:503 +#: ../Doc/library/tkinter.rst:506 msgid "expand" -msgstr "" +msgstr "*expand*" -#: ../Doc/library/tkinter.rst:503 +#: ../Doc/library/tkinter.rst:506 msgid "Boolean, ``0`` or ``1``." -msgstr "" +msgstr "Booléen, ``0`` ou ``1``." -#: ../Doc/library/tkinter.rst:506 +#: ../Doc/library/tkinter.rst:509 msgid "fill" -msgstr "" +msgstr "*fill*" -#: ../Doc/library/tkinter.rst:506 +#: ../Doc/library/tkinter.rst:509 msgid "Legal values: ``'x'``, ``'y'``, ``'both'``, ``'none'``." -msgstr "" +msgstr "Valeurs acceptées : ``'x'``, ``'y'``, ``'both'``, ``'none'``." -#: ../Doc/library/tkinter.rst:509 +#: ../Doc/library/tkinter.rst:512 msgid "ipadx and ipady" -msgstr "" +msgstr "*ipadx* et *ipady*" -#: ../Doc/library/tkinter.rst:509 +#: ../Doc/library/tkinter.rst:512 msgid "" "A distance - designating internal padding on each side of the slave widget." msgstr "" +"Une distance — désignant l'écart interne de chaque côté de l'objet graphique " +"hérité." -#: ../Doc/library/tkinter.rst:512 +#: ../Doc/library/tkinter.rst:515 msgid "padx and pady" -msgstr "" +msgstr "*padx* et *pady*" -#: ../Doc/library/tkinter.rst:512 +#: ../Doc/library/tkinter.rst:515 msgid "" "A distance - designating external padding on each side of the slave widget." msgstr "" +"Une distance — désignant l'écart externe de chaque côté de l'objet graphique " +"hérité." -#: ../Doc/library/tkinter.rst:516 +#: ../Doc/library/tkinter.rst:519 msgid "side" -msgstr "" +msgstr "*side*" -#: ../Doc/library/tkinter.rst:515 +#: ../Doc/library/tkinter.rst:518 msgid "Legal values are: ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." -msgstr "" +msgstr "Valeurs acceptées : ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." -#: ../Doc/library/tkinter.rst:519 +#: ../Doc/library/tkinter.rst:522 msgid "Coupling Widget Variables" -msgstr "" +msgstr "Association des variables de l'objet graphique" -#: ../Doc/library/tkinter.rst:521 +#: ../Doc/library/tkinter.rst:524 msgid "" "The current-value setting of some widgets (like text entry widgets) can be " "connected directly to application variables by using special options. These " @@ -871,8 +1119,15 @@ msgid "" "reason, the widget it's connected to will be updated to reflect the new " "value." msgstr "" +"L'assignation d'une valeur à certains objets graphiques (comme les objets " +"graphique de saisie de texte) peut être liée directement aux variables de " +"votre application à l'aide d'options spéciales. Ces options sont " +"``variable``, ``textvariable``, ``onvalue``, ``offvalue`` et ``value``. Ce " +"lien fonctionne dans les deux sens : si la variable change pour une raison " +"ou pour une autre, l'objet graphique auquel elle est connectée est mis à " +"jour pour refléter la nouvelle valeur." -#: ../Doc/library/tkinter.rst:527 +#: ../Doc/library/tkinter.rst:530 msgid "" "Unfortunately, in the current implementation of :mod:`tkinter` it is not " "possible to hand over an arbitrary Python variable to a widget through a " @@ -880,8 +1135,14 @@ msgid "" "which this works are variables that are subclassed from a class called " "Variable, defined in :mod:`tkinter`." msgstr "" +"Malheureusement, dans l'implémentation actuelle de :mod:`tkinter` il n'est " +"pas possible de passer une variable Python arbitraire à un objet graphique " +"via une option ``variable`` ou ``textvariable``. Les seuls types de " +"variables pour lesquels cela fonctionne sont les variables qui sont sous-" +"classées à partir d'une classe appelée `Variable`, définie dans :mod:" +"`tkinter`." -#: ../Doc/library/tkinter.rst:533 +#: ../Doc/library/tkinter.rst:536 msgid "" "There are many useful subclasses of Variable already defined: :class:" "`StringVar`, :class:`IntVar`, :class:`DoubleVar`, and :class:`BooleanVar`. " @@ -890,12 +1151,18 @@ msgid "" "this protocol, the widget will always track the value of the variable, with " "no further intervention on your part." msgstr "" +"Il existe de nombreuses sous-classes utiles de `Variable` déjà définies : :" +"class:`StringVar`, :class:`IntVar`, :class:`DoubleVar` et :class:" +"`BooleanVar`. Pour lire la valeur courante d'une telle variable, appelez la " +"méthode :meth:`get` dessus et, pour changer sa valeur, appelez la méthode :" +"meth:`!set`. Si vous suivez ce protocole, l'objet graphique suivra toujours " +"la valeur de la variable, sans autre intervention de votre part." -#: ../Doc/library/tkinter.rst:569 +#: ../Doc/library/tkinter.rst:572 msgid "The Window Manager" -msgstr "" +msgstr "Le gestionnaire de fenêtres" -#: ../Doc/library/tkinter.rst:573 +#: ../Doc/library/tkinter.rst:576 msgid "" "In Tk, there is a utility command, ``wm``, for interacting with the window " "manager. Options to the ``wm`` command allow you to control things like " @@ -904,8 +1171,15 @@ msgid "" "Toplevel widgets are subclassed from the :class:`Wm` class, and so can call " "the :class:`Wm` methods directly." msgstr "" +"Dans Tk, il y a une commande pratique, ``wm``, pour interagir avec le " +"gestionnaire de fenêtres. Les options de la commande ``wm`` vous permettent " +"de contrôler les titres, le placement, les icônes en mode *bitmap* et encore " +"d'autres choses du même genre. Dans :mod:`tkinter`, ces commandes ont été " +"implémentées en tant que méthodes sur la classe :class:`Wm`. Les objets " +"graphiques de haut niveau sont sous-classés à partir de la classe :class:" +"`Wm`, ils peuvent donc appeler directement les méthodes de :class:`Wm`." -#: ../Doc/library/tkinter.rst:580 +#: ../Doc/library/tkinter.rst:583 msgid "" "To get at the toplevel window that contains a given widget, you can often " "just refer to the widget's master. Of course if the widget has been packed " @@ -915,55 +1189,75 @@ msgid "" "fact that this function is part of the implementation, and not an interface " "to Tk functionality." msgstr "" - -#: ../Doc/library/tkinter.rst:587 +"Pour accéder à la fenêtre du plus haut niveau qui contient un objet " +"graphique donné, vous pouvez souvent simplement vous référer au parent de " +"cet objet graphique. Bien sûr, si l'objet graphique a été empaqueté à " +"l'intérieur d'un cadre, le parent ne représentera pas la fenêtre de plus " +"haut niveau. Pour accéder à la fenêtre du plus haut niveau qui contient un " +"objet graphique arbitraire, vous pouvez appeler la méthode :meth:`_root`. " +"Cette méthode commence par un soulignement pour indiquer que cette fonction " +"fait partie de l'implémentation, et non d'une interface avec la " +"fonctionnalité Tk." + +#: ../Doc/library/tkinter.rst:590 msgid "Here are some examples of typical usage::" -msgstr "" +msgstr "Voici quelques exemples d'utilisation courante ::" -#: ../Doc/library/tkinter.rst:610 +#: ../Doc/library/tkinter.rst:613 msgid "Tk Option Data Types" -msgstr "" +msgstr "Types de données des options Tk" -#: ../Doc/library/tkinter.rst:615 +#: ../Doc/library/tkinter.rst:618 msgid "" "Legal values are points of the compass: ``\"n\"``, ``\"ne\"``, ``\"e\"``, ``" "\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also ``\"center" "\"``." msgstr "" +"Les valeurs acceptées sont des points cardinaux : ``« n »``, ``« ne »``, ``« " +"e »``, ``« se »``, ``« s »``, ``« sw »``, ``« w »``, ``« nw »`` et ``« " +"center »``." -#: ../Doc/library/tkinter.rst:622 +#: ../Doc/library/tkinter.rst:625 msgid "bitmap" -msgstr "" +msgstr "*bitmap*" -#: ../Doc/library/tkinter.rst:619 +#: ../Doc/library/tkinter.rst:622 msgid "" "There are eight built-in, named bitmaps: ``'error'``, ``'gray25'``, " "``'gray50'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, " "``'warning'``. To specify an X bitmap filename, give the full path to the " "file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgstr "" +"Il y a huit bitmaps intégrés nommés : ``« error »``, ``« gray25 »``, ``« " +"gray50 »``, ``« hourglass »``, ``« info »``, ``« questhead »``, ``« question " +"»``, ``« warning »'``. Pour spécifier un nom de fichier bitmap X, indiquez " +"le chemin complet du fichier, précédé de ``@``, comme dans ``\"@/usr/contrib/" +"bitmap/gumby.bit\"``." -#: ../Doc/library/tkinter.rst:625 +#: ../Doc/library/tkinter.rst:628 msgid "boolean" -msgstr "" +msgstr "*boolean*" -#: ../Doc/library/tkinter.rst:625 +#: ../Doc/library/tkinter.rst:628 msgid "You can pass integers 0 or 1 or the strings ``\"yes\"`` or ``\"no\"``." msgstr "" +"Vous pouvez lui donner les entiers 0 ou 1 ou les chaînes de caractères ``" +"\"yes\"`` ou ``\"no\"``." -#: ../Doc/library/tkinter.rst:632 +#: ../Doc/library/tkinter.rst:635 msgid "callback" -msgstr "" +msgstr "*callback*" -#: ../Doc/library/tkinter.rst:628 +#: ../Doc/library/tkinter.rst:631 msgid "This is any Python function that takes no arguments. For example::" msgstr "" +"N'importe quelle fonction Python qui ne prend pas d'argument. Par exemple ::" -#: ../Doc/library/tkinter.rst:638 +#: ../Doc/library/tkinter.rst:641 msgid "color" -msgstr "" +msgstr "*color*" -#: ../Doc/library/tkinter.rst:635 +#: ../Doc/library/tkinter.rst:638 msgid "" "Colors can be given as the names of X colors in the rgb.txt file, or as " "strings representing RGB values in 4 bit: ``\"#RGB\"``, 8 bit: ``\"#RRGGBB" @@ -971,24 +1265,35 @@ msgid "" "where R,G,B here represent any legal hex digit. See page 160 of " "Ousterhout's book for details." msgstr "" +"Les couleurs peuvent être données sous forme de noms de couleurs Xorg dans " +"le fichier *rgb.txt*, ou sous forme de chaînes représentant les valeurs RVB " +"en 4 bits : ``« #RGB »``, 8 bits : ``« #RRVVBB »``, 12 bits``« #RRRVVVBBB " +"»``, ou 16 bits ``« #RRRRVVVVBBBB »``, où R,V,B représente ici tout chiffre " +"hexadécimal valide. Voir page 160 du livre d'Ousterhout pour plus de " +"détails." -#: ../Doc/library/tkinter.rst:644 +#: ../Doc/library/tkinter.rst:647 msgid "cursor" -msgstr "" +msgstr "*cursor*" -#: ../Doc/library/tkinter.rst:641 +#: ../Doc/library/tkinter.rst:644 msgid "" "The standard X cursor names from :file:`cursorfont.h` can be used, without " "the ``XC_`` prefix. For example to get a hand cursor (:const:`XC_hand2`), " "use the string ``\"hand2\"``. You can also specify a bitmap and mask file " "of your own. See page 179 of Ousterhout's book." msgstr "" +"Les noms de curseurs Xorg standard que l'on trouve dans :file:`cursorfont.h` " +"peuvent être utilisés, sans le préfixe ``XC_``. Par exemple pour obtenir un " +"curseur en forme de main (:const:`XC_hand2`), utilisez la chaîne ``« hand2 " +"»``. Vous pouvez également spécifier votre propre bitmap et fichier masque. " +"Voir page 179 du livre d'Ousterhout." -#: ../Doc/library/tkinter.rst:651 +#: ../Doc/library/tkinter.rst:654 msgid "distance" -msgstr "" +msgstr "*distance*" -#: ../Doc/library/tkinter.rst:647 +#: ../Doc/library/tkinter.rst:650 msgid "" "Screen distances can be specified in either pixels or absolute distances. " "Pixels are given as numbers and absolute distances as strings, with the " @@ -996,128 +1301,169 @@ msgid "" "``m`` for millimetres, ``p`` for printer's points. For example, 3.5 inches " "is expressed as ``\"3.5i\"``." msgstr "" +"Les distances à l'écran peuvent être spécifiées en pixels ou en distances " +"absolues. Les pixels sont donnés sous forme de nombres et les distances " +"absolues sous forme de chaînes de caractères, le dernier caractère indiquant " +"les unités : ``c`` pour les centimètres, ``i`` pour les pouces (*inches* en " +"anglais), ``m`` pour les millimètres, ``p`` pour les points d'impression. " +"Par exemple, 3,5 pouces est noté ``« 3.5i »``." -#: ../Doc/library/tkinter.rst:656 +#: ../Doc/library/tkinter.rst:659 msgid "font" -msgstr "" +msgstr "*font*" -#: ../Doc/library/tkinter.rst:654 +#: ../Doc/library/tkinter.rst:657 msgid "" "Tk uses a list font name format, such as ``{courier 10 bold}``. Font sizes " "with positive numbers are measured in points; sizes with negative numbers " "are measured in pixels." msgstr "" +"*Tk* utilise un format de nom de police sous forme de liste, tel que " +"``{courier 10 bold}``. Les tailles de polices avec des nombres positifs sont " +"mesurées en points ; les tailles avec des nombres négatifs sont mesurées en " +"pixels." -#: ../Doc/library/tkinter.rst:661 +#: ../Doc/library/tkinter.rst:664 msgid "geometry" -msgstr "" +msgstr "*geometry*" -#: ../Doc/library/tkinter.rst:659 +#: ../Doc/library/tkinter.rst:662 msgid "" "This is a string of the form ``widthxheight``, where width and height are " "measured in pixels for most widgets (in characters for widgets displaying " "text). For example: ``fred[\"geometry\"] = \"200x100\"``." msgstr "" +"Il s'agit d'une chaîne de caractères de la forme ``largeurxhauteur``, où la " +"largeur et la hauteur sont mesurées en pixels pour la plupart des objets " +"graphiques (en caractères pour les objets graphiques affichant du texte). " +"Par exemple : ``fred[\"geometry\"] = \"200x100\"``." -#: ../Doc/library/tkinter.rst:665 +#: ../Doc/library/tkinter.rst:668 msgid "justify" -msgstr "" +msgstr "*justify*" -#: ../Doc/library/tkinter.rst:664 +#: ../Doc/library/tkinter.rst:667 msgid "" "Legal values are the strings: ``\"left\"``, ``\"center\"``, ``\"right\"``, " "and ``\"fill\"``." msgstr "" +"Les valeurs acceptées sont les chaînes de caractères : `« left »``, ``« " +"center »``, ``« right »`` et ``« fill »``." -#: ../Doc/library/tkinter.rst:670 +#: ../Doc/library/tkinter.rst:673 msgid "region" -msgstr "" +msgstr "*region*" -#: ../Doc/library/tkinter.rst:668 +#: ../Doc/library/tkinter.rst:671 msgid "" "This is a string with four space-delimited elements, each of which is a " "legal distance (see above). For example: ``\"2 3 4 5\"`` and ``\"3i 2i 4.5i " "2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." msgstr "" +"c'est une chaîne de caractères avec quatre éléments séparés par des espaces, " +"chacun d'eux étant une distance valide (voir ci-dessus). Par exemple : ``" +"\"2 3 4 5\"``et ``\" 3i 2i 4.5i 2i\"``et ``\"3c 2c 4c 10.43c\"`` sont toutes " +"des régions valides." -#: ../Doc/library/tkinter.rst:674 +#: ../Doc/library/tkinter.rst:677 msgid "relief" -msgstr "" +msgstr "*relief*" -#: ../Doc/library/tkinter.rst:673 +#: ../Doc/library/tkinter.rst:676 msgid "" "Determines what the border style of a widget will be. Legal values are: ``" "\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, and ``\"ridge" "\"``." msgstr "" +"Détermine le style de bordure d'un objet graphique. Les valeurs valides " +"sont : ``\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, et ``" +"\"ridge\"``." -#: ../Doc/library/tkinter.rst:678 +#: ../Doc/library/tkinter.rst:681 msgid "scrollcommand" -msgstr "" +msgstr "*scrollcommand*" -#: ../Doc/library/tkinter.rst:677 +#: ../Doc/library/tkinter.rst:680 msgid "" "This is almost always the :meth:`!set` method of some scrollbar widget, but " "can be any widget method that takes a single argument." msgstr "" +"C'est presque toujours la méthode :meth:`!set` d'un objet graphique de " +"défilement, mais peut être n'importe quelle méthode d'objet graphique qui " +"prend un seul argument." -#: ../Doc/library/tkinter.rst:682 +#: ../Doc/library/tkinter.rst:685 msgid "wrap:" -msgstr "" +msgstr "*wrap*" -#: ../Doc/library/tkinter.rst:681 +#: ../Doc/library/tkinter.rst:684 msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." -msgstr "" +msgstr "Doit être l'un d'eux : ``\"none\"``, ``\"char\"``, ou ``\"word\"``." -#: ../Doc/library/tkinter.rst:685 +#: ../Doc/library/tkinter.rst:688 msgid "Bindings and Events" -msgstr "" +msgstr "Liaisons et événements" -#: ../Doc/library/tkinter.rst:691 +#: ../Doc/library/tkinter.rst:694 msgid "" "The bind method from the widget command allows you to watch for certain " "events and to have a callback function trigger when that event type occurs. " "The form of the bind method is::" msgstr "" +"La méthode `bind` de la commande d'objet graphique vous permet de surveiller " +"certains événements et d'avoir un déclencheur de fonction de rappel lorsque " +"ce type d'événement se produit. La forme de la méthode de liaison est la " +"suivante ::" -#: ../Doc/library/tkinter.rst:697 +#: ../Doc/library/tkinter.rst:700 msgid "where:" -msgstr "" +msgstr "où :" -#: ../Doc/library/tkinter.rst:701 +#: ../Doc/library/tkinter.rst:704 msgid "sequence" -msgstr "séquence" +msgstr "*sequence*" -#: ../Doc/library/tkinter.rst:700 +#: ../Doc/library/tkinter.rst:703 msgid "" "is a string that denotes the target kind of event. (See the bind man page " "and page 201 of John Ousterhout's book for details)." msgstr "" +"est une chaîne de caractères qui indique le type d'événement cible. (Voir " +"la page du manuel de *bind* et la page 201 du livre de John Ousterhout pour " +"plus de détails)." -#: ../Doc/library/tkinter.rst:706 +#: ../Doc/library/tkinter.rst:709 msgid "func" -msgstr "func" +msgstr "*func*" -#: ../Doc/library/tkinter.rst:704 +#: ../Doc/library/tkinter.rst:707 msgid "" "is a Python function, taking one argument, to be invoked when the event " "occurs. An Event instance will be passed as the argument. (Functions " "deployed this way are commonly known as *callbacks*.)" msgstr "" +"est une fonction Python, prenant un argument, à invoquer lorsque l'événement " +"se produit. Une instance d’évènement sera passée en argument. (Les fonctions " +"déployées de cette façon sont communément appelées *callbacks* ou « " +"fonctions de rappel » en français)." -#: ../Doc/library/tkinter.rst:712 +#: ../Doc/library/tkinter.rst:715 msgid "add" -msgstr "" +msgstr "*add*" -#: ../Doc/library/tkinter.rst:709 +#: ../Doc/library/tkinter.rst:712 msgid "" "is optional, either ``''`` or ``'+'``. Passing an empty string denotes that " "this binding is to replace any other bindings that this event is associated " "with. Passing a ``'+'`` means that this function is to be added to the list " "of functions bound to this event type." msgstr "" +"est facultative, soit ``''`` ou ``'+'``. L'envoi d'une chaîne de caractères " +"vide indique que cette liaison doit remplacer toute autre liaison à laquelle " +"cet événement est associé. L'envoi de``«+»`` signifie que cette fonction " +"doit être ajoutée à la liste des fonctions liées à ce type d'événement." -#: ../Doc/library/tkinter.rst:721 +#: ../Doc/library/tkinter.rst:724 msgid "" "Notice how the widget field of the event is being accessed in the " "``turn_red()`` callback. This field contains the widget that caught the X " @@ -1125,214 +1471,246 @@ msgid "" "how they are denoted in Tk, which can be useful when referring to the Tk man " "pages." msgstr "" +"Remarquez comment on accède au champ *objet graphique* de l'événement dans " +"la fonction de rappel ``turn_red()``. Ce champ contient l'objet graphique " +"qui a capturé l'événement Xorg. Le tableau suivant répertorie les autres " +"champs d'événements auxquels vous pouvez accéder, et comment ils sont nommés " +"dans Tk, ce qui peut être utile lorsque vous vous référez aux pages de " +"manuel Tk." -#: ../Doc/library/tkinter.rst:727 +#: ../Doc/library/tkinter.rst:730 msgid "Tk" msgstr "Tk" -#: ../Doc/library/tkinter.rst:727 +#: ../Doc/library/tkinter.rst:730 msgid "Tkinter Event Field" -msgstr "" +msgstr "Champ *évènement* de Tkinter" -#: ../Doc/library/tkinter.rst:729 +#: ../Doc/library/tkinter.rst:732 msgid "%f" msgstr "%f" -#: ../Doc/library/tkinter.rst:729 +#: ../Doc/library/tkinter.rst:732 msgid "focus" msgstr "focus" -#: ../Doc/library/tkinter.rst:729 +#: ../Doc/library/tkinter.rst:732 msgid "%A" msgstr "%A" -#: ../Doc/library/tkinter.rst:729 +#: ../Doc/library/tkinter.rst:732 msgid "char" msgstr "char" -#: ../Doc/library/tkinter.rst:731 +#: ../Doc/library/tkinter.rst:734 msgid "%h" msgstr "%h" -#: ../Doc/library/tkinter.rst:731 +#: ../Doc/library/tkinter.rst:734 msgid "height" -msgstr "height" +msgstr "hauteur" -#: ../Doc/library/tkinter.rst:731 +#: ../Doc/library/tkinter.rst:734 msgid "%E" msgstr "%E" -#: ../Doc/library/tkinter.rst:731 +#: ../Doc/library/tkinter.rst:734 msgid "send_event" msgstr "send_event" -#: ../Doc/library/tkinter.rst:733 +#: ../Doc/library/tkinter.rst:736 msgid "%k" msgstr "%k" -#: ../Doc/library/tkinter.rst:733 +#: ../Doc/library/tkinter.rst:736 msgid "keycode" msgstr "keycode" -#: ../Doc/library/tkinter.rst:733 +#: ../Doc/library/tkinter.rst:736 msgid "%K" msgstr "%K" -#: ../Doc/library/tkinter.rst:733 +#: ../Doc/library/tkinter.rst:736 msgid "keysym" msgstr "keysym" -#: ../Doc/library/tkinter.rst:735 +#: ../Doc/library/tkinter.rst:738 msgid "%s" msgstr "%s" -#: ../Doc/library/tkinter.rst:735 +#: ../Doc/library/tkinter.rst:738 msgid "state" msgstr "state" -#: ../Doc/library/tkinter.rst:735 +#: ../Doc/library/tkinter.rst:738 msgid "%N" msgstr "%N" -#: ../Doc/library/tkinter.rst:735 +#: ../Doc/library/tkinter.rst:738 msgid "keysym_num" msgstr "keysym_num" -#: ../Doc/library/tkinter.rst:737 +#: ../Doc/library/tkinter.rst:740 msgid "%t" msgstr "%t" -#: ../Doc/library/tkinter.rst:737 +#: ../Doc/library/tkinter.rst:740 msgid "time" msgstr "time" -#: ../Doc/library/tkinter.rst:737 +#: ../Doc/library/tkinter.rst:740 msgid "%T" msgstr "%T" -#: ../Doc/library/tkinter.rst:737 +#: ../Doc/library/tkinter.rst:740 msgid "type" msgstr "type" -#: ../Doc/library/tkinter.rst:739 +#: ../Doc/library/tkinter.rst:742 msgid "%w" msgstr "%w" -#: ../Doc/library/tkinter.rst:739 +#: ../Doc/library/tkinter.rst:742 msgid "width" msgstr "width" -#: ../Doc/library/tkinter.rst:739 +#: ../Doc/library/tkinter.rst:742 msgid "%W" msgstr "%W" -#: ../Doc/library/tkinter.rst:739 +#: ../Doc/library/tkinter.rst:742 msgid "widget" msgstr "widget" -#: ../Doc/library/tkinter.rst:741 +#: ../Doc/library/tkinter.rst:744 msgid "%x" msgstr "%x" -#: ../Doc/library/tkinter.rst:741 +#: ../Doc/library/tkinter.rst:744 msgid "x" msgstr "x" -#: ../Doc/library/tkinter.rst:741 +#: ../Doc/library/tkinter.rst:744 msgid "%X" msgstr "%X" -#: ../Doc/library/tkinter.rst:741 +#: ../Doc/library/tkinter.rst:744 msgid "x_root" msgstr "x_root" -#: ../Doc/library/tkinter.rst:743 +#: ../Doc/library/tkinter.rst:746 msgid "%y" msgstr "%y" -#: ../Doc/library/tkinter.rst:743 +#: ../Doc/library/tkinter.rst:746 msgid "y" msgstr "y" -#: ../Doc/library/tkinter.rst:743 +#: ../Doc/library/tkinter.rst:746 msgid "%Y" msgstr "%Y" -#: ../Doc/library/tkinter.rst:743 +#: ../Doc/library/tkinter.rst:746 msgid "y_root" msgstr "y_root" -#: ../Doc/library/tkinter.rst:748 +#: ../Doc/library/tkinter.rst:751 msgid "The index Parameter" -msgstr "" +msgstr "Le paramètre index" -#: ../Doc/library/tkinter.rst:750 +#: ../Doc/library/tkinter.rst:753 msgid "" "A number of widgets require \"index\" parameters to be passed. These are " "used to point at a specific place in a Text widget, or to particular " "characters in an Entry widget, or to particular menu items in a Menu widget." msgstr "" +"Un certain nombre d'objets graphiques nécessitent le passage de paramètres « " +"indicés ». Ils sont utilisés pour pointer vers un endroit spécifique dans " +"un objet graphique de type *Texte*, ou vers des caractères particuliers dans " +"un objet graphique de type *Entrée*, ou vers des éléments de menu " +"particuliers dans un objet graphique de type *Menu*." -#: ../Doc/library/tkinter.rst:757 +#: ../Doc/library/tkinter.rst:760 msgid "Entry widget indexes (index, view index, etc.)" msgstr "" +"Index des objets graphique de type *Entrée* (``index``, ``view index``, etc.)" -#: ../Doc/library/tkinter.rst:755 +#: ../Doc/library/tkinter.rst:758 msgid "" "Entry widgets have options that refer to character positions in the text " "being displayed. You can use these :mod:`tkinter` functions to access these " "special points in text widgets:" msgstr "" +"Les objets graphiques de type *Entrée* ont des options qui se réfèrent à la " +"position des caractères dans le texte affiché. Vous pouvez utiliser ces " +"fonctions :mod:`tkinter` pour accéder à ces points spéciaux dans les objets " +"graphiques texte :" -#: ../Doc/library/tkinter.rst:761 +#: ../Doc/library/tkinter.rst:764 msgid "Text widget indexes" -msgstr "" +msgstr "Index des objets graphiques texte" -#: ../Doc/library/tkinter.rst:760 +#: ../Doc/library/tkinter.rst:763 msgid "" "The index notation for Text widgets is very rich and is best described in " "the Tk man pages." msgstr "" +"La notation de l'index des objets graphiques de type *Texte* est très riche " +"et mieux décrite dans les pages du manuel Tk." -#: ../Doc/library/tkinter.rst:786 +#: ../Doc/library/tkinter.rst:789 msgid "Menu indexes (menu.invoke(), menu.entryconfig(), etc.)" -msgstr "" +msgstr "Index menu (`menu.invoke()`, `menu.entryconfig()`, etc.)" -#: ../Doc/library/tkinter.rst:764 +#: ../Doc/library/tkinter.rst:767 msgid "" "Some options and methods for menus manipulate specific menu entries. Anytime " "a menu index is needed for an option or a parameter, you may pass in:" msgstr "" +"Certaines options et méthodes pour manipuler les menus nécessitent des " +"éléments de spécifiques. Chaque fois qu'un index de menu est nécessaire pour " +"une option ou un paramètre, vous pouvez utiliser :" -#: ../Doc/library/tkinter.rst:767 +#: ../Doc/library/tkinter.rst:770 msgid "" "an integer which refers to the numeric position of the entry in the widget, " "counted from the top, starting with 0;" msgstr "" +"un entier qui fait référence à la position numérique de l'entrée dans " +"l'objet graphique, comptée à partir du haut, en commençant par 0 ;" -#: ../Doc/library/tkinter.rst:770 +#: ../Doc/library/tkinter.rst:773 msgid "" "the string ``\"active\"``, which refers to the menu position that is " "currently under the cursor;" msgstr "" +"la chaîne de caractères ``\"active\"``, qui fait référence à la position du " +"menu qui se trouve actuellement sous le curseur ;" -#: ../Doc/library/tkinter.rst:773 +#: ../Doc/library/tkinter.rst:776 msgid "the string ``\"last\"`` which refers to the last menu item;" msgstr "" +"la chaîne de caractères ``\"last\"`` qui fait référence au dernier élément " +"du menu ;" -#: ../Doc/library/tkinter.rst:775 +#: ../Doc/library/tkinter.rst:778 msgid "" "An integer preceded by ``@``, as in ``@6``, where the integer is interpreted " "as a y pixel coordinate in the menu's coordinate system;" msgstr "" +"un entier précédé de ``@``, comme dans ``@6``, où l'entier est interprété " +"comme une coordonnée y de pixels dans le système de coordonnées du menu ;" -#: ../Doc/library/tkinter.rst:778 +#: ../Doc/library/tkinter.rst:781 msgid "" "the string ``\"none\"``, which indicates no menu entry at all, most often " "used with menu.activate() to deactivate all entries, and finally," msgstr "" +"la chaîne de caractères ``\"none\"``, qui n'indique aucune entrée du menu, " +"le plus souvent utilisée avec ``menu.activate()`` pour désactiver toutes les " +"entrées, et enfin," -#: ../Doc/library/tkinter.rst:781 +#: ../Doc/library/tkinter.rst:784 msgid "" "a text string that is pattern matched against the label of the menu entry, " "as scanned from the top of the menu to the bottom. Note that this index " @@ -1340,34 +1718,45 @@ msgid "" "items labelled ``last``, ``active``, or ``none`` may be interpreted as the " "above literals, instead." msgstr "" +"une chaîne de texte dont le motif correspond à l'étiquette de l'entrée de " +"menu, telle qu'elle est balayée du haut vers le bas du menu. Notez que ce " +"type d'index est considéré après tous les autres, ce qui signifie que les " +"correspondances pour les éléments de menu étiquetés ``last``, ``active`` ou " +"``none`` peuvent être interprétés comme les littéraux ci-dessus, plutôt." -#: ../Doc/library/tkinter.rst:789 +#: ../Doc/library/tkinter.rst:792 msgid "Images" -msgstr "" +msgstr "Images" -#: ../Doc/library/tkinter.rst:791 +#: ../Doc/library/tkinter.rst:794 msgid "" "Images of different formats can be created through the corresponding " "subclass of :class:`tkinter.Image`:" msgstr "" +"Des images de différents formats peuvent être créées à travers la sous-" +"classe correspondante de :class:`tkinter.Image` :" -#: ../Doc/library/tkinter.rst:794 +#: ../Doc/library/tkinter.rst:797 msgid ":class:`BitmapImage` for images in XBM format." -msgstr "" +msgstr ":class:`BitmapImage` pour les images au format *XBM*." -#: ../Doc/library/tkinter.rst:796 +#: ../Doc/library/tkinter.rst:799 msgid "" ":class:`PhotoImage` for images in PGM, PPM, GIF and PNG formats. The latter " "is supported starting with Tk 8.6." msgstr "" +":class:`PhotoImage` pour les images aux formats *PGM*, *PPM*, *GIF* et " +"*PNG*. Ce dernier est géré à partir de Tk 8.6." -#: ../Doc/library/tkinter.rst:799 +#: ../Doc/library/tkinter.rst:802 msgid "" "Either type of image is created through either the ``file`` or the ``data`` " "option (other options are available as well)." msgstr "" +"L'un ou l'autre type d'image est créé par l'option ``file`` ou ``data`` " +"(d'autres options sont également disponibles)." -#: ../Doc/library/tkinter.rst:802 +#: ../Doc/library/tkinter.rst:805 msgid "" "The image object can then be used wherever an ``image`` option is supported " "by some widget (e.g. labels, buttons, menus). In these cases, Tk will not " @@ -1375,29 +1764,41 @@ msgid "" "object is deleted, the image data is deleted as well, and Tk will display an " "empty box wherever the image was used." msgstr "" +"L'objet image peut alors être utilisé partout où un objet graphique sait " +"gérer une option ``image`` (par ex. étiquettes, boutons, menus). Dans ces " +"cas, Tk ne conserve pas de référence à l'image. Lorsque la dernière " +"référence Python à l'objet image est supprimée, les données de l'image sont " +"également supprimées, et Tk affiche une boite vide à l'endroit où l'image " +"était utilisée." -#: ../Doc/library/tkinter.rst:810 +#: ../Doc/library/tkinter.rst:813 msgid "" "The `Pillow `_ package adds support for formats " "such as BMP, JPEG, TIFF, and WebP, among others." msgstr "" +"Le paquet `Pillow `_ ajoute la prise en charge de " +"formats tels que *BMP*, *JPEG*, *TIFF* et *WebP*, entre autres." -#: ../Doc/library/tkinter.rst:816 +#: ../Doc/library/tkinter.rst:819 msgid "File Handlers" -msgstr "" +msgstr "Gestionnaires de fichiers" -#: ../Doc/library/tkinter.rst:818 +#: ../Doc/library/tkinter.rst:821 msgid "" "Tk allows you to register and unregister a callback function which will be " "called from the Tk mainloop when I/O is possible on a file descriptor. Only " "one handler may be registered per file descriptor. Example code::" msgstr "" +"*Tk* vous permet d'enregistrer et de *désenregistrer* une fonction de rappel " +"qui est appelée depuis la boucle principale de Tk lorsque des entrées-" +"sorties sont possibles sur un descripteur de fichier. Un seul gestionnaire " +"peut être enregistré par descripteur de fichier. Exemple de code ::" -#: ../Doc/library/tkinter.rst:829 +#: ../Doc/library/tkinter.rst:832 msgid "This feature is not available on Windows." -msgstr "" +msgstr "Cette fonction n'est pas disponible sous Windows." -#: ../Doc/library/tkinter.rst:831 +#: ../Doc/library/tkinter.rst:834 msgid "" "Since you don't know how many bytes are available for reading, you may not " "want to use the :class:`~io.BufferedIOBase` or :class:`~io.TextIOBase` :meth:" @@ -1407,8 +1808,16 @@ msgid "" "work fine; for other files, use raw reads or ``os.read(file.fileno(), " "maxbytecount)``." msgstr "" +"Dans la mesure où vous ne savez pas combien d'octets sont disponibles en " +"lecture, il ne faut pas utiliser les méthodes :class:`~io.BufferedIOBase` " +"ou :class:`~io.TextIOBase` :meth:`~io.BufferedIOBase.read` ou :meth:`~io." +"IOBase.readline`, car elles requièrent d'indiquer le nombre de *bytes* à " +"lire. Pour les connecteurs, les méthodes :meth:`~socket.socket.socket.recv` " +"ou :meth:`~socket.socket.recvfrom` fonctionnent bien ; pour les autres " +"fichiers, utilisez des lectures brutes ou ``os.read(file.fileno(), " +"maxbytecount)``." -#: ../Doc/library/tkinter.rst:842 +#: ../Doc/library/tkinter.rst:845 msgid "" "Registers the file handler callback function *func*. The *file* argument may " "either be an object with a :meth:`~io.IOBase.fileno` method (such as a file " @@ -1416,11 +1825,17 @@ msgid "" "ORed combination of any of the three constants below. The callback is called " "as follows::" msgstr "" +"Enregistre la fonction de rappel du gestionnaire de fichiers *func*. " +"L'argument ``file`` peut être soit un objet avec une méthode :meth:`~io." +"IOBase.fileno` (comme un objet fichier ou connecteur), soit un descripteur " +"de fichier de type entier. L'argument ``mask`` est une combinaison *OU* de " +"l'une des trois constantes ci-dessous. La fonction de rappel s'utilise comme " +"suit ::" -#: ../Doc/library/tkinter.rst:853 +#: ../Doc/library/tkinter.rst:856 msgid "Unregisters a file handler." -msgstr "" +msgstr "Désenregistre un gestionnaire de fichiers." -#: ../Doc/library/tkinter.rst:860 +#: ../Doc/library/tkinter.rst:863 msgid "Constants used in the *mask* arguments." -msgstr "" +msgstr "Constantes utilisées dans les arguments ``mask``." diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index cbeffda02..99af91dc0 100644 --- a/library/tkinter.scrolledtext.po +++ b/library/tkinter.scrolledtext.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/tkinter.scrolledtext.rst:2 msgid ":mod:`tkinter.scrolledtext` --- Scrolled Text Widget" -msgstr ":mod:`tkinter.scrolledtext` --- Gadget texte avec barre de défilement" +msgstr ":mod:`tkinter.scrolledtext` — Gadget texte avec barre de défilement" #: ../Doc/library/tkinter.scrolledtext.rst:10 msgid "**Source code:** :source:`Lib/tkinter/scrolledtext.py`" diff --git a/library/tkinter.tix.po b/library/tkinter.tix.po index 0470bcbdc..8bea7e313 100644 --- a/library/tkinter.tix.po +++ b/library/tkinter.tix.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -116,33 +116,21 @@ msgid "" "try the following::" msgstr "" -#: ../Doc/library/tkinter.tix.rst:79 -msgid "" -"If this fails, you have a Tk installation problem which must be resolved " -"before proceeding. Use the environment variable :envvar:`TIX_LIBRARY` to " -"point to the installed Tix library directory, and make sure you have the " -"dynamic object library (:file:`tix8183.dll` or :file:`libtix8183.so`) in " -"the same directory that contains your Tk dynamic object library (:file:" -"`tk8183.dll` or :file:`libtk8183.so`). The directory with the dynamic object " -"library should also have a file called :file:`pkgIndex.tcl` (case " -"sensitive), which contains the line::" -msgstr "" - -#: ../Doc/library/tkinter.tix.rst:92 +#: ../Doc/library/tkinter.tix.rst:81 msgid "Tix Widgets" msgstr "" -#: ../Doc/library/tkinter.tix.rst:94 +#: ../Doc/library/tkinter.tix.rst:83 msgid "" "`Tix `_ introduces over 40 widget classes to the :mod:`tkinter` repertoire." msgstr "" -#: ../Doc/library/tkinter.tix.rst:99 +#: ../Doc/library/tkinter.tix.rst:88 msgid "Basic Widgets" msgstr "" -#: ../Doc/library/tkinter.tix.rst:104 +#: ../Doc/library/tkinter.tix.rst:93 msgid "" "A `Balloon `_ that pops up over a widget to provide help. When the user " @@ -150,14 +138,14 @@ msgid "" "small pop-up window with a descriptive message will be shown on the screen." msgstr "" -#: ../Doc/library/tkinter.tix.rst:116 +#: ../Doc/library/tkinter.tix.rst:105 msgid "" "The `ButtonBox `_ widget creates a box of buttons, such as is commonly " "used for ``Ok Cancel``." msgstr "" -#: ../Doc/library/tkinter.tix.rst:126 +#: ../Doc/library/tkinter.tix.rst:115 msgid "" "The `ComboBox `_ widget is similar to the combo box control in MS Windows. " @@ -165,7 +153,7 @@ msgid "" "selecting from the listbox subwidget." msgstr "" -#: ../Doc/library/tkinter.tix.rst:138 +#: ../Doc/library/tkinter.tix.rst:127 msgid "" "The `Control `_ widget is also known as the :class:`SpinBox` widget. The " @@ -174,7 +162,7 @@ msgid "" "user-defined upper and lower limits." msgstr "" -#: ../Doc/library/tkinter.tix.rst:151 +#: ../Doc/library/tkinter.tix.rst:140 msgid "" "The `LabelEntry `_ widget packages an entry widget and a label into one " @@ -182,7 +170,7 @@ msgid "" "of interface." msgstr "" -#: ../Doc/library/tkinter.tix.rst:162 +#: ../Doc/library/tkinter.tix.rst:151 msgid "" "The `LabelFrame `_ widget packages a frame widget and a label into one " @@ -191,20 +179,20 @@ msgid "" "the :attr:`frame` subwidget." msgstr "" -#: ../Doc/library/tkinter.tix.rst:174 +#: ../Doc/library/tkinter.tix.rst:163 msgid "" "The `Meter `_ widget can be used to show the progress of a background job which may " "take a long time to execute." msgstr "" -#: ../Doc/library/tkinter.tix.rst:185 +#: ../Doc/library/tkinter.tix.rst:174 msgid "" "The `OptionMenu `_ creates a menu button of options." msgstr "" -#: ../Doc/library/tkinter.tix.rst:195 +#: ../Doc/library/tkinter.tix.rst:184 msgid "" "The `PopupMenu `_ widget can be used as a replacement of the ``tk_popup`` " @@ -212,25 +200,25 @@ msgid "" "requires less application code to manipulate." msgstr "" -#: ../Doc/library/tkinter.tix.rst:207 +#: ../Doc/library/tkinter.tix.rst:196 msgid "" "The `Select `_ widget is a container of button subwidgets. It can be used " "to provide radio-box or check-box style of selection options for the user." msgstr "" -#: ../Doc/library/tkinter.tix.rst:218 +#: ../Doc/library/tkinter.tix.rst:207 msgid "" "The `StdButtonBox `_ widget is a group of standard buttons for Motif-like " "dialog boxes." msgstr "" -#: ../Doc/library/tkinter.tix.rst:227 +#: ../Doc/library/tkinter.tix.rst:216 msgid "File Selectors" msgstr "" -#: ../Doc/library/tkinter.tix.rst:232 +#: ../Doc/library/tkinter.tix.rst:221 msgid "" "The `DirList `_ widget displays a list view of a directory, its previous " @@ -238,7 +226,7 @@ msgid "" "directories displayed in the list or change to another directory." msgstr "" -#: ../Doc/library/tkinter.tix.rst:244 +#: ../Doc/library/tkinter.tix.rst:233 msgid "" "The `DirTree `_ widget displays a tree view of a directory, its previous " @@ -246,7 +234,7 @@ msgid "" "directories displayed in the list or change to another directory." msgstr "" -#: ../Doc/library/tkinter.tix.rst:256 +#: ../Doc/library/tkinter.tix.rst:245 msgid "" "The `DirSelectDialog `_ widget presents the directories in the file " @@ -254,7 +242,7 @@ msgid "" "through the file system to select the desired directory." msgstr "" -#: ../Doc/library/tkinter.tix.rst:268 +#: ../Doc/library/tkinter.tix.rst:257 msgid "" "The :class:`DirSelectBox` is similar to the standard Motif(TM) directory-" "selection box. It is generally used for the user to choose a directory. " @@ -262,7 +250,7 @@ msgid "" "widget so that they can be quickly selected again." msgstr "" -#: ../Doc/library/tkinter.tix.rst:276 +#: ../Doc/library/tkinter.tix.rst:265 msgid "" "The `ExFileSelectBox `_ widget is usually embedded in a " @@ -271,7 +259,7 @@ msgid "" "similar to the standard file dialog on MS Windows 3.1." msgstr "" -#: ../Doc/library/tkinter.tix.rst:289 +#: ../Doc/library/tkinter.tix.rst:278 msgid "" "The `FileSelectBox `_ is similar to the standard Motif(TM) file-selection " @@ -280,7 +268,7 @@ msgid "" "that they can be quickly selected again." msgstr "" -#: ../Doc/library/tkinter.tix.rst:302 +#: ../Doc/library/tkinter.tix.rst:291 msgid "" "The `FileEntry `_ widget can be used to input a filename. The user can " @@ -289,11 +277,11 @@ msgid "" "dialog." msgstr "" -#: ../Doc/library/tkinter.tix.rst:313 +#: ../Doc/library/tkinter.tix.rst:302 msgid "Hierarchical ListBox" msgstr "" -#: ../Doc/library/tkinter.tix.rst:318 +#: ../Doc/library/tkinter.tix.rst:307 msgid "" "The `HList `_ widget can be used to display any data that have a hierarchical " @@ -302,7 +290,7 @@ msgid "" "hierarchy." msgstr "" -#: ../Doc/library/tkinter.tix.rst:330 +#: ../Doc/library/tkinter.tix.rst:319 msgid "" "The `CheckList `_ widget displays a list of items to be selected by the " @@ -311,18 +299,18 @@ msgid "" "radiobuttons." msgstr "" -#: ../Doc/library/tkinter.tix.rst:346 +#: ../Doc/library/tkinter.tix.rst:335 msgid "" "The `Tree `_ widget can be used to display hierarchical data in a tree form. The " "user can adjust the view of the tree by opening or closing parts of the tree." msgstr "" -#: ../Doc/library/tkinter.tix.rst:358 +#: ../Doc/library/tkinter.tix.rst:347 msgid "Tabular ListBox" msgstr "" -#: ../Doc/library/tkinter.tix.rst:363 +#: ../Doc/library/tkinter.tix.rst:352 msgid "" "The `TList `_ widget can be used to display data in a tabular format. The list " @@ -332,11 +320,11 @@ msgid "" "graphical images as well as multiple colors and fonts for the list entries." msgstr "" -#: ../Doc/library/tkinter.tix.rst:386 +#: ../Doc/library/tkinter.tix.rst:375 msgid "Manager Widgets" msgstr "" -#: ../Doc/library/tkinter.tix.rst:391 +#: ../Doc/library/tkinter.tix.rst:380 msgid "" "The `PanedWindow `_ widget allows the user to interactively manipulate the " @@ -345,7 +333,7 @@ msgid "" "resize handle between two panes." msgstr "" -#: ../Doc/library/tkinter.tix.rst:403 +#: ../Doc/library/tkinter.tix.rst:392 msgid "" "The `ListNoteBook `_ widget is very similar to the :class:`TixNoteBook` " @@ -356,7 +344,7 @@ msgid "" "`hlist` subwidget." msgstr "" -#: ../Doc/library/tkinter.tix.rst:417 +#: ../Doc/library/tkinter.tix.rst:406 msgid "" "The `NoteBook `_ widget can be used to display many windows in a limited " @@ -366,22 +354,22 @@ msgid "" "the NoteBook widget." msgstr "" -#: ../Doc/library/tkinter.tix.rst:439 +#: ../Doc/library/tkinter.tix.rst:428 msgid "Image Types" msgstr "" -#: ../Doc/library/tkinter.tix.rst:441 +#: ../Doc/library/tkinter.tix.rst:430 msgid "The :mod:`tkinter.tix` module adds:" msgstr "" -#: ../Doc/library/tkinter.tix.rst:443 +#: ../Doc/library/tkinter.tix.rst:432 msgid "" "`pixmap `_ capabilities to all :mod:`tkinter.tix` and :mod:`tkinter` widgets to " "create color images from XPM files." msgstr "" -#: ../Doc/library/tkinter.tix.rst:452 +#: ../Doc/library/tkinter.tix.rst:441 msgid "" "`Compound `_ image types can be used to create images that consists of multiple " @@ -391,36 +379,36 @@ msgid "" "simultaneously in a Tk :class:`Button` widget." msgstr "" -#: ../Doc/library/tkinter.tix.rst:471 +#: ../Doc/library/tkinter.tix.rst:460 msgid "Miscellaneous Widgets" msgstr "" -#: ../Doc/library/tkinter.tix.rst:476 +#: ../Doc/library/tkinter.tix.rst:465 msgid "" "The `InputOnly `_ widgets are to accept inputs from the user, which can be " "done with the ``bind`` command (Unix only)." msgstr "" -#: ../Doc/library/tkinter.tix.rst:483 +#: ../Doc/library/tkinter.tix.rst:472 msgid "Form Geometry Manager" msgstr "" -#: ../Doc/library/tkinter.tix.rst:485 +#: ../Doc/library/tkinter.tix.rst:474 msgid "In addition, :mod:`tkinter.tix` augments :mod:`tkinter` by providing:" msgstr "" -#: ../Doc/library/tkinter.tix.rst:490 +#: ../Doc/library/tkinter.tix.rst:479 msgid "" "The `Form `_ geometry manager based on attachment rules for all Tk widgets." msgstr "" -#: ../Doc/library/tkinter.tix.rst:496 +#: ../Doc/library/tkinter.tix.rst:485 msgid "Tix Commands" msgstr "" -#: ../Doc/library/tkinter.tix.rst:501 +#: ../Doc/library/tkinter.tix.rst:490 msgid "" "The `tix commands `_ provide access to miscellaneous elements of :mod:`Tix`'s internal " @@ -429,11 +417,11 @@ msgid "" "screen or display, rather than to a particular window." msgstr "" -#: ../Doc/library/tkinter.tix.rst:508 +#: ../Doc/library/tkinter.tix.rst:497 msgid "To view the current settings, the common usage is::" msgstr "" -#: ../Doc/library/tkinter.tix.rst:517 +#: ../Doc/library/tkinter.tix.rst:506 msgid "" "Query or modify the configuration options of the Tix application context. If " "no option is specified, returns a dictionary all of the available options. " @@ -445,13 +433,13 @@ msgid "" "an empty string. Option may be any of the configuration options." msgstr "" -#: ../Doc/library/tkinter.tix.rst:529 +#: ../Doc/library/tkinter.tix.rst:518 msgid "" "Returns the current value of the configuration option given by *option*. " "Option may be any of the configuration options." msgstr "" -#: ../Doc/library/tkinter.tix.rst:535 +#: ../Doc/library/tkinter.tix.rst:524 msgid "" "Locates a bitmap file of the name ``name.xpm`` or ``name`` in one of the " "bitmap directories (see the :meth:`tix_addbitmapdir` method). By using :" @@ -461,7 +449,7 @@ msgid "" "can be used to configure the ``bitmap`` option of the Tk and Tix widgets." msgstr "" -#: ../Doc/library/tkinter.tix.rst:545 +#: ../Doc/library/tkinter.tix.rst:534 msgid "" "Tix maintains a list of directories under which the :meth:`tix_getimage` " "and :meth:`tix_getbitmap` methods will search for image files. The standard " @@ -471,7 +459,7 @@ msgid "" "meth:`tix_getimage` or :meth:`tix_getbitmap` method." msgstr "" -#: ../Doc/library/tkinter.tix.rst:555 +#: ../Doc/library/tkinter.tix.rst:544 msgid "" "Returns the file selection dialog that may be shared among different calls " "from this application. This method will create a file selection dialog " @@ -482,7 +470,7 @@ msgid "" "``tixExFileSelectDialog``." msgstr "" -#: ../Doc/library/tkinter.tix.rst:565 +#: ../Doc/library/tkinter.tix.rst:554 msgid "" "Locates an image file of the name :file:`name.xpm`, :file:`name.xbm` or :" "file:`name.ppm` in one of the bitmap directories (see the :meth:" @@ -496,11 +484,11 @@ msgid "" "and Tix widgets." msgstr "" -#: ../Doc/library/tkinter.tix.rst:578 +#: ../Doc/library/tkinter.tix.rst:567 msgid "Gets the options maintained by the Tix scheme mechanism." msgstr "" -#: ../Doc/library/tkinter.tix.rst:583 +#: ../Doc/library/tkinter.tix.rst:572 msgid "" "Resets the scheme and fontset of the Tix application to *newScheme* and " "*newFontSet*, respectively. This affects only those widgets created after " @@ -508,13 +496,13 @@ msgid "" "creation of any widgets in a Tix application." msgstr "" -#: ../Doc/library/tkinter.tix.rst:588 +#: ../Doc/library/tkinter.tix.rst:577 msgid "" "The optional parameter *newScmPrio* can be given to reset the priority level " "of the Tk options set by the Tix schemes." msgstr "" -#: ../Doc/library/tkinter.tix.rst:591 +#: ../Doc/library/tkinter.tix.rst:580 msgid "" "Because of the way Tk handles the X option database, after Tix has been has " "imported and inited, it is not possible to reset the color schemes and font " diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index b4ff8d759..7b36224f1 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -180,7 +180,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:121 msgid "cursor" -msgstr "" +msgstr "*cursor*" #: ../Doc/library/tkinter.ttk.rst:121 msgid "" @@ -541,7 +541,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:325 msgid "justify" -msgstr "" +msgstr "*justify*" #: ../Doc/library/tkinter.ttk.rst:325 msgid "" @@ -699,7 +699,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:430 msgid "format" -msgstr "" +msgstr "format" #: ../Doc/library/tkinter.ttk.rst:430 msgid "" @@ -1028,7 +1028,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:679 msgid "mode" -msgstr "" +msgstr "mode" #: ../Doc/library/tkinter.ttk.rst:679 msgid "One of \"determinate\" or \"indeterminate\"." @@ -1359,7 +1359,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:895 msgid "font" -msgstr "" +msgstr "*font*" #: ../Doc/library/tkinter.ttk.rst:895 msgid "Specifies the font to use when drawing text." @@ -1663,7 +1663,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:1083 msgid "region" -msgstr "" +msgstr "*region*" #: ../Doc/library/tkinter.ttk.rst:1083 msgid "meaning" @@ -1687,7 +1687,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:1089 msgid "tree" -msgstr "" +msgstr "*tree* (arbre)" #: ../Doc/library/tkinter.ttk.rst:1089 msgid "The tree area." diff --git a/library/token.po b/library/token.po index 135ac4d84..b7261eb72 100644 --- a/library/token.po +++ b/library/token.po @@ -56,7 +56,7 @@ msgid "" msgstr "" "Dictionnaire faisant correspondre les valeurs numériques des constantes " "définies dans ce module à leurs noms, permettant de générer une " -"représentation plus humaine des *parse trees*." +"représentation plus humaine des arbres syntaxiques." #: ../Doc/library/token.rst:32 msgid "Return true for terminal token values." diff --git a/library/tokenize.po b/library/tokenize.po index a2c679c12..b5bf3f956 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2018-09-28 10:08+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" -"Plural-Forms: nplurals=2; plural=n > 1;\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" #: ../Doc/library/tokenize.rst:2 msgid ":mod:`tokenize` --- Tokenizer for Python source" -msgstr ":mod:`tokenize` --- Analyseur lexical de Python" +msgstr ":mod:`tokenize` — Analyseur lexical de Python" #: ../Doc/library/tokenize.rst:10 msgid "**Source code:** :source:`Lib/tokenize.py`" @@ -243,7 +243,7 @@ msgstr "" #: ../Doc/library/tokenize.rst:125 msgid "or::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/library/tokenize.rst:131 msgid "" @@ -297,7 +297,7 @@ msgid "" "objects::" msgstr "" "Exemple d'un script qui transforme les littéraux de type *float* en type " -"*Decimal* ::" +"*Decimal* ::" #: ../Doc/library/tokenize.rst:210 msgid "Example of tokenizing from the command line. The script::" diff --git a/library/trace.po b/library/trace.po index d1fad17cd..3e61acfd2 100644 --- a/library/trace.po +++ b/library/trace.po @@ -42,7 +42,7 @@ msgstr "" #: ../Doc/library/trace.rst:25 msgid "Command-Line Usage" -msgstr "" +msgstr "Utilisation en ligne de commande." #: ../Doc/library/trace.rst:27 msgid "" diff --git a/library/traceback.po b/library/traceback.po index f12326021..d8ad57902 100644 --- a/library/traceback.po +++ b/library/traceback.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -40,7 +40,7 @@ msgstr "" #: ../Doc/library/traceback.rst:23 msgid "The module defines the following functions:" -msgstr "" +msgstr "Le module définit les fonctions suivantes :" #: ../Doc/library/traceback.rst:28 msgid "" @@ -52,7 +52,7 @@ msgid "" "the output." msgstr "" -#: ../Doc/library/traceback.rst:35 ../Doc/library/traceback.rst:85 +#: ../Doc/library/traceback.rst:35 ../Doc/library/traceback.rst:89 msgid "Added negative *limit* support." msgstr "" @@ -68,18 +68,18 @@ msgid "" "last):``" msgstr "" -#: ../Doc/library/traceback.rst:47 +#: ../Doc/library/traceback.rst:48 msgid "it prints the exception *etype* and *value* after the stack trace" msgstr "" -#: ../Doc/library/traceback.rst:48 +#: ../Doc/library/traceback.rst:52 msgid "" "if *type(value)* is :exc:`SyntaxError` and *value* has the appropriate " "format, it prints the line where the syntax error occurred with a caret " "indicating the approximate position of the error." msgstr "" -#: ../Doc/library/traceback.rst:52 +#: ../Doc/library/traceback.rst:56 msgid "" "The optional *limit* argument has the same meaning as for :func:`print_tb`. " "If *chain* is true (the default), then chained exceptions (the :attr:" @@ -88,24 +88,24 @@ msgid "" "exception." msgstr "" -#: ../Doc/library/traceback.rst:58 ../Doc/library/traceback.rst:139 +#: ../Doc/library/traceback.rst:62 ../Doc/library/traceback.rst:143 msgid "The *etype* argument is ignored and inferred from the type of *value*." msgstr "" -#: ../Doc/library/traceback.rst:64 +#: ../Doc/library/traceback.rst:68 msgid "" "This is a shorthand for ``print_exception(*sys.exc_info(), limit, file, " "chain)``." msgstr "" -#: ../Doc/library/traceback.rst:70 +#: ../Doc/library/traceback.rst:74 msgid "" "This is a shorthand for ``print_exception(sys.last_type, sys.last_value, sys." "last_traceback, limit, file, chain)``. In general it will work only after " "an exception has reached an interactive prompt (see :data:`sys.last_type`)." msgstr "" -#: ../Doc/library/traceback.rst:78 +#: ../Doc/library/traceback.rst:82 msgid "" "Print up to *limit* stack trace entries (starting from the invocation point) " "if *limit* is positive. Otherwise, print the last ``abs(limit)`` entries. " @@ -114,7 +114,7 @@ msgid "" "optional *file* argument has the same meaning as for :func:`print_tb`." msgstr "" -#: ../Doc/library/traceback.rst:91 +#: ../Doc/library/traceback.rst:95 msgid "" "Return a :class:`StackSummary` object representing a list of \"pre-processed" "\" stack trace entries extracted from the traceback object *tb*. It is " @@ -128,14 +128,14 @@ msgid "" "stripped; if the source is not available it is ``None``." msgstr "" -#: ../Doc/library/traceback.rst:105 +#: ../Doc/library/traceback.rst:109 msgid "" "Extract the raw traceback from the current stack frame. The return value " "has the same format as for :func:`extract_tb`. The optional *f* and *limit* " "arguments have the same meaning as for :func:`print_stack`." msgstr "" -#: ../Doc/library/traceback.rst:112 +#: ../Doc/library/traceback.rst:116 msgid "" "Given a list of tuples or :class:`FrameSummary` objects as returned by :func:" "`extract_tb` or :func:`extract_stack`, return a list of strings ready for " @@ -145,7 +145,7 @@ msgid "" "text line is not ``None``." msgstr "" -#: ../Doc/library/traceback.rst:122 +#: ../Doc/library/traceback.rst:126 msgid "" "Format the exception part of a traceback. The arguments are the exception " "type and value such as given by ``sys.last_type`` and ``sys.last_value``. " @@ -156,7 +156,7 @@ msgid "" "which exception occurred is the always last string in the list." msgstr "" -#: ../Doc/library/traceback.rst:133 +#: ../Doc/library/traceback.rst:137 msgid "" "Format a stack trace and the exception information. The arguments have the " "same meaning as the corresponding arguments to :func:`print_exception`. The " @@ -165,158 +165,158 @@ msgid "" "printed, exactly the same text is printed as does :func:`print_exception`." msgstr "" -#: ../Doc/library/traceback.rst:145 +#: ../Doc/library/traceback.rst:149 msgid "" "This is like ``print_exc(limit)`` but returns a string instead of printing " "to a file." msgstr "" -#: ../Doc/library/traceback.rst:151 +#: ../Doc/library/traceback.rst:155 msgid "A shorthand for ``format_list(extract_tb(tb, limit))``." msgstr "" -#: ../Doc/library/traceback.rst:156 +#: ../Doc/library/traceback.rst:160 msgid "A shorthand for ``format_list(extract_stack(f, limit))``." msgstr "" -#: ../Doc/library/traceback.rst:160 +#: ../Doc/library/traceback.rst:164 msgid "" "Clears the local variables of all the stack frames in a traceback *tb* by " "calling the :meth:`clear` method of each frame object." msgstr "" -#: ../Doc/library/traceback.rst:167 +#: ../Doc/library/traceback.rst:171 msgid "" "Walk a stack following ``f.f_back`` from the given frame, yielding the frame " "and line number for each frame. If *f* is ``None``, the current stack is " "used. This helper is used with :meth:`StackSummary.extract`." msgstr "" -#: ../Doc/library/traceback.rst:175 +#: ../Doc/library/traceback.rst:179 msgid "" "Walk a traceback following ``tb_next`` yielding the frame and line number " "for each frame. This helper is used with :meth:`StackSummary.extract`." msgstr "" -#: ../Doc/library/traceback.rst:180 +#: ../Doc/library/traceback.rst:184 msgid "The module also defines the following classes:" msgstr "" -#: ../Doc/library/traceback.rst:183 +#: ../Doc/library/traceback.rst:187 msgid ":class:`TracebackException` Objects" msgstr "" -#: ../Doc/library/traceback.rst:187 +#: ../Doc/library/traceback.rst:191 msgid "" ":class:`TracebackException` objects are created from actual exceptions to " "capture data for later printing in a lightweight fashion." msgstr "" -#: ../Doc/library/traceback.rst:192 ../Doc/library/traceback.rst:239 +#: ../Doc/library/traceback.rst:196 ../Doc/library/traceback.rst:243 msgid "" "Capture an exception for later rendering. *limit*, *lookup_lines* and " "*capture_locals* are as for the :class:`StackSummary` class." msgstr "" -#: ../Doc/library/traceback.rst:195 ../Doc/library/traceback.rst:242 +#: ../Doc/library/traceback.rst:199 ../Doc/library/traceback.rst:246 msgid "" "Note that when locals are captured, they are also shown in the traceback." msgstr "" -#: ../Doc/library/traceback.rst:199 +#: ../Doc/library/traceback.rst:203 msgid "A :class:`TracebackException` of the original ``__cause__``." msgstr "" -#: ../Doc/library/traceback.rst:203 +#: ../Doc/library/traceback.rst:207 msgid "A :class:`TracebackException` of the original ``__context__``." msgstr "" -#: ../Doc/library/traceback.rst:207 +#: ../Doc/library/traceback.rst:211 msgid "The ``__suppress_context__`` value from the original exception." msgstr "" -#: ../Doc/library/traceback.rst:211 +#: ../Doc/library/traceback.rst:215 msgid "A :class:`StackSummary` representing the traceback." msgstr "" -#: ../Doc/library/traceback.rst:215 +#: ../Doc/library/traceback.rst:219 msgid "The class of the original traceback." msgstr "" -#: ../Doc/library/traceback.rst:219 +#: ../Doc/library/traceback.rst:223 msgid "For syntax errors - the file name where the error occurred." msgstr "" -#: ../Doc/library/traceback.rst:223 +#: ../Doc/library/traceback.rst:227 msgid "For syntax errors - the line number where the error occurred." msgstr "" -#: ../Doc/library/traceback.rst:227 +#: ../Doc/library/traceback.rst:231 msgid "For syntax errors - the text where the error occurred." msgstr "" -#: ../Doc/library/traceback.rst:231 +#: ../Doc/library/traceback.rst:235 msgid "For syntax errors - the offset into the text where the error occurred." msgstr "" -#: ../Doc/library/traceback.rst:235 +#: ../Doc/library/traceback.rst:239 msgid "For syntax errors - the compiler error message." msgstr "" -#: ../Doc/library/traceback.rst:246 +#: ../Doc/library/traceback.rst:250 msgid "Format the exception." msgstr "" -#: ../Doc/library/traceback.rst:248 +#: ../Doc/library/traceback.rst:252 msgid "" "If *chain* is not ``True``, ``__cause__`` and ``__context__`` will not be " "formatted." msgstr "" -#: ../Doc/library/traceback.rst:251 +#: ../Doc/library/traceback.rst:255 msgid "" "The return value is a generator of strings, each ending in a newline and " "some containing internal newlines. :func:`~traceback.print_exception` is a " "wrapper around this method which just prints the lines to a file." msgstr "" -#: ../Doc/library/traceback.rst:255 ../Doc/library/traceback.rst:269 +#: ../Doc/library/traceback.rst:259 ../Doc/library/traceback.rst:273 msgid "" "The message indicating which exception occurred is always the last string in " "the output." msgstr "" -#: ../Doc/library/traceback.rst:260 +#: ../Doc/library/traceback.rst:264 msgid "Format the exception part of the traceback." msgstr "" -#: ../Doc/library/traceback.rst:262 +#: ../Doc/library/traceback.rst:266 msgid "The return value is a generator of strings, each ending in a newline." msgstr "" -#: ../Doc/library/traceback.rst:264 +#: ../Doc/library/traceback.rst:268 msgid "" "Normally, the generator emits a single string; however, for :exc:" "`SyntaxError` exceptions, it emits several lines that (when printed) display " "detailed information about where the syntax error occurred." msgstr "" -#: ../Doc/library/traceback.rst:274 +#: ../Doc/library/traceback.rst:278 msgid ":class:`StackSummary` Objects" msgstr "" -#: ../Doc/library/traceback.rst:278 +#: ../Doc/library/traceback.rst:282 msgid "" ":class:`StackSummary` objects represent a call stack ready for formatting." msgstr "" -#: ../Doc/library/traceback.rst:284 +#: ../Doc/library/traceback.rst:288 msgid "" "Construct a :class:`StackSummary` object from a frame generator (such as is " "returned by :func:`~traceback.walk_stack` or :func:`~traceback.walk_tb`)." msgstr "" -#: ../Doc/library/traceback.rst:288 +#: ../Doc/library/traceback.rst:292 msgid "" "If *limit* is supplied, only this many frames are taken from *frame_gen*. If " "*lookup_lines* is ``False``, the returned :class:`FrameSummary` objects will " @@ -326,14 +326,14 @@ msgid "" "class:`FrameSummary` are captured as object representations." msgstr "" -#: ../Doc/library/traceback.rst:298 +#: ../Doc/library/traceback.rst:302 msgid "" "Construct a :class:`StackSummary` object from a supplied list of :class:" "`FrameSummary` objects or old-style list of tuples. Each tuple should be a " "4-tuple with filename, lineno, name, line as the elements." msgstr "" -#: ../Doc/library/traceback.rst:304 +#: ../Doc/library/traceback.rst:308 msgid "" "Returns a list of strings ready for printing. Each string in the resulting " "list corresponds to a single frame from the stack. Each string ends in a " @@ -341,26 +341,26 @@ msgid "" "with source text lines." msgstr "" -#: ../Doc/library/traceback.rst:309 +#: ../Doc/library/traceback.rst:313 msgid "" "For long sequences of the same frame and line, the first few repetitions are " "shown, followed by a summary line stating the exact number of further " "repetitions." msgstr "" -#: ../Doc/library/traceback.rst:313 +#: ../Doc/library/traceback.rst:317 msgid "Long sequences of repeated frames are now abbreviated." msgstr "" -#: ../Doc/library/traceback.rst:318 +#: ../Doc/library/traceback.rst:322 msgid ":class:`FrameSummary` Objects" msgstr "" -#: ../Doc/library/traceback.rst:322 +#: ../Doc/library/traceback.rst:326 msgid ":class:`FrameSummary` objects represent a single frame in a traceback." msgstr "" -#: ../Doc/library/traceback.rst:326 +#: ../Doc/library/traceback.rst:330 msgid "" "Represent a single frame in the traceback or stack that is being formatted " "or printed. It may optionally have a stringified version of the frames " @@ -373,11 +373,11 @@ msgid "" "display." msgstr "" -#: ../Doc/library/traceback.rst:339 +#: ../Doc/library/traceback.rst:343 msgid "Traceback Examples" msgstr "" -#: ../Doc/library/traceback.rst:341 +#: ../Doc/library/traceback.rst:345 msgid "" "This simple example implements a basic read-eval-print loop, similar to (but " "less useful than) the standard Python interactive interpreter loop. For a " @@ -385,22 +385,22 @@ msgid "" "`code` module. ::" msgstr "" -#: ../Doc/library/traceback.rst:363 +#: ../Doc/library/traceback.rst:367 msgid "" "The following example demonstrates the different ways to print and format " "the exception and traceback:" msgstr "" -#: ../Doc/library/traceback.rst:402 +#: ../Doc/library/traceback.rst:406 msgid "The output for the example would look similar to this:" msgstr "" -#: ../Doc/library/traceback.rst:444 +#: ../Doc/library/traceback.rst:448 msgid "" "The following example shows the different ways to print and format the " "stack::" msgstr "" -#: ../Doc/library/traceback.rst:470 +#: ../Doc/library/traceback.rst:474 msgid "This last example demonstrates the final few formatting functions:" msgstr "" diff --git a/library/tracemalloc.po b/library/tracemalloc.po index 05ccac6dd..15f3df8bd 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -149,7 +149,7 @@ msgstr "" #: ../Doc/library/tracemalloc.rst:256 msgid "API" -msgstr "" +msgstr "API" #: ../Doc/library/tracemalloc.rst:259 msgid "Functions" @@ -332,7 +332,7 @@ msgstr "" #: ../Doc/library/tracemalloc.rst:395 msgid "Examples:" -msgstr "Exemples : ::" +msgstr "Exemples :" #: ../Doc/library/tracemalloc.rst:397 msgid "" diff --git a/library/tty.po b/library/tty.po index 1f16a4ad9..00b1f7861 100644 --- a/library/tty.po +++ b/library/tty.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/tty.rst:2 msgid ":mod:`tty` --- Terminal control functions" -msgstr ":mod:`tty` --- Fonctions de gestion du terminal" +msgstr ":mod:`tty` — Fonctions de gestion du terminal" #: ../Doc/library/tty.rst:11 msgid "**Source code:** :source:`Lib/tty.py`" diff --git a/library/turtle.po b/library/turtle.po index a7d78a3c2..1074040b5 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -5,34 +5,38 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2017-08-10 00:54+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-01-14 15:47+0100\n" +"Last-Translator: Pablo Abril \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\n" #: ../Doc/library/turtle.rst:3 msgid ":mod:`turtle` --- Turtle graphics" -msgstr "" +msgstr ":mod:`turtle` — Tortue graphique" #: ../Doc/library/turtle.rst:10 msgid "**Source code:** :source:`Lib/turtle.py`" -msgstr "" +msgstr "**Code Source :** :source:`Lib/turtle.py`" #: ../Doc/library/turtle.rst:20 msgid "Introduction" msgstr "Introduction" #: ../Doc/library/turtle.rst:22 +#, fuzzy msgid "" "Turtle graphics is a popular way for introducing programming to kids. It " "was part of the original Logo programming language developed by Wally " -"Feurzig and Seymour Papert in 1966." +"Feurzeig, Seymour Papert and Cynthia Solomon in 1967." msgstr "" +"Une façon populaire pour initier les enfants au monde du développement est " +"le module Tortue graphique. Ce dernier faisait partie du langage de " +"programmation Logo créé par Wally Feurzig et Seymout Papert en 1966." #: ../Doc/library/turtle.rst:26 msgid "" @@ -42,23 +46,33 @@ msgid "" "moves. Give it the command ``turtle.right(25)``, and it rotates in-place 25 " "degrees clockwise." msgstr "" +"Imaginez un robot sous forme de tortue partant au centre (0, 0) d'un plan " +"cartésien x-y. Après un ``import turtle``, exécutez la commande ``turtle." +"forward(15)`` et la tortue se déplace (sur l'écran) de 15 pixels en face " +"d'elle, en dessinant une ligne." #: ../Doc/library/turtle.rst:33 msgid "" "Turtle can draw intricate shapes using programs that repeat simple moves." msgstr "" +"La tortue permet de dessiner des formes complexes en utilisant un programme " +"qui répète des actions élémentaires." #: ../Doc/library/turtle.rst:41 msgid "" "By combining together these and similar commands, intricate shapes and " "pictures can easily be drawn." msgstr "" +"On peut donc facilement construire des formes et images à partir de " +"commandes simples." #: ../Doc/library/turtle.rst:44 msgid "" "The :mod:`turtle` module is an extended reimplementation of the same-named " "module from the Python standard distribution up to version Python 2.5." msgstr "" +"Le module :mod:`turtle` est une version étendue du module homonyme " +"appartenant à la distribution standard de Python jusqu'à la version 2.5." #: ../Doc/library/turtle.rst:47 msgid "" @@ -67,6 +81,11 @@ msgid "" "programmer to use all the commands, classes and methods interactively when " "using the module from within IDLE run with the ``-n`` switch." msgstr "" +"Cette bibliothèque essaye de garder les avantages de l'ancien module et " +"d'être (presque) 100% compatible avec celui-ci. Cela permet à l'apprenti " +"développeur d'utiliser toutes les commandes, classes et méthodes de façon " +"interactive pendant qu'il utilise le module depuis IDLE lancé avec l'option " +"``-n``." #: ../Doc/library/turtle.rst:52 msgid "" @@ -75,10 +94,16 @@ msgid "" "the underlying graphics, it needs a version of Python installed with Tk " "support." msgstr "" +"*Turtle* permet d'utiliser des primitives graphiques en utilisant un style " +"de programmation orienté objet ou procédural. Du fait qu'il utilise la " +"bibliothèque graphique :mod:`tkinter`, *Turtle* a besoin d'une version de " +"python implémentant *Tk*." +# two+two ?? #: ../Doc/library/turtle.rst:56 msgid "The object-oriented interface uses essentially two+two classes:" msgstr "" +"L'interface orientée objet utilise essentiellement deux + deux classes :" #: ../Doc/library/turtle.rst:58 msgid "" @@ -87,6 +112,11 @@ msgid "" "class:`ScrolledCanvas` as argument. It should be used when :mod:`turtle` is " "used as part of some application." msgstr "" +"La classe :class:`TurtleScreen` définit une fenêtre graphique utilisé comme " +"un terrain de jeu pour les dessins de la tortue. Le constructeur de cette " +"classe a besoin d'un :class:`tkinter.Canvas` ou :class:`ScrolledCanvas` " +"comme argument. Cette classe doit être utilisée seulement si :mod:`turtle` " +"fait partie intégrante d'une autre application." #: ../Doc/library/turtle.rst:63 msgid "" @@ -95,12 +125,19 @@ msgid "" "used as a standalone tool for doing graphics. As a singleton object, " "inheriting from its class is not possible." msgstr "" +"La fonction :func:`Screen` renvoie un singleton d'une sous-classe de :class:" +"`TurtleScreen`. Elle doit être utilisée quand le module :mod:`turtle` est " +"utilisé de façon autonome pour dessiner. Le singleton renvoyé ne peut " +"hériter de sa classe." #: ../Doc/library/turtle.rst:68 msgid "" "All methods of TurtleScreen/Screen also exist as functions, i.e. as part of " "the procedure-oriented interface." msgstr "" +"Toutes les méthodes de *TurtleScreen*/*Screen* existent également sous la " +"forme de fonctions, c'est-à-dire que ces dernières peuvent être utilisées " +"dans un style procédural." #: ../Doc/library/turtle.rst:71 msgid "" @@ -109,6 +146,10 @@ msgid "" "ScrolledCanvas or TurtleScreen as argument, so the RawTurtle objects know " "where to draw." msgstr "" +"La classe :class:`RawTurtle` (alias :class:`RawPen`) définit des objets " +"*Turtle* qui peuvent dessiner sur la classe :class:`TurtleScreen`. Son " +"constructeur prend en paramètre un *Canvas*, un *ScrolledCanvas* ou un " +"*TurtleScreen* permettant à l'objet *RawTurtle* de savoir où écrire." #: ../Doc/library/turtle.rst:75 msgid "" @@ -116,12 +157,18 @@ msgid "" "`Pen`), which draws on \"the\" :class:`Screen` instance which is " "automatically created, if not already present." msgstr "" +"La sous-classe :class:`Turtle` (alias: :class:`Pen`), dérivée de " +"*RawTurtle*, dessine sur l'instance :class:`Screen` qui est créée " +"automatiquement si elle n'est pas déjà présente." #: ../Doc/library/turtle.rst:79 msgid "" "All methods of RawTurtle/Turtle also exist as functions, i.e. part of the " "procedure-oriented interface." msgstr "" +"Toutes les méthodes de *RawTurtle*/*Turtle* existent également sous la forme " +"de fonctions, c'est-à-dire que ces dernières pourront être utilisées en " +"style procédural." #: ../Doc/library/turtle.rst:82 msgid "" @@ -132,12 +179,20 @@ msgid "" "(unnamed) turtle object is automatically created whenever any of the " "functions derived from a Turtle method is called." msgstr "" +"L'interface procédurale met à disposition des fonctions équivalentes à " +"celles des méthodes des classes :class:`Screen` et :class:`Turtle`. Le nom " +"d'une fonction est le même que la méthode équivalente. Un objet *Screen* est " +"créé automatiquement dès qu'une fonction dérivée d'une méthode *Screen* est " +"appelée. Un objet *Turtle* (sans nom) est créé automatiquement dès qu'une " +"fonction dérivée d'une méthode *Turtle* est appelée." #: ../Doc/library/turtle.rst:89 msgid "" "To use multiple turtles on a screen one has to use the object-oriented " "interface." msgstr "" +"Afin de pouvoir utiliser plusieurs tortues simultanément sur l'écran, vous " +"devez utiliser l'interface orientée-objet." #: ../Doc/library/turtle.rst:92 msgid "" @@ -145,22 +200,25 @@ msgid "" "Methods, of course, have the additional first argument *self* which is " "omitted here." msgstr "" +"La liste des paramètres des fonctions est donnée dans cette documentation. " +"Les méthodes ont, évidemment, le paramètre *self* comme premier argument, " +"mais ce dernier n'est pas indiqué ici." #: ../Doc/library/turtle.rst:98 msgid "Overview of available Turtle and Screen methods" -msgstr "" +msgstr "Résumé des méthodes de *Turtle* et *Screen*" #: ../Doc/library/turtle.rst:101 msgid "Turtle methods" -msgstr "" +msgstr "Les méthodes du module *Turtle*" #: ../Doc/library/turtle.rst:132 ../Doc/library/turtle.rst:242 msgid "Turtle motion" -msgstr "" +msgstr "Les mouvements dans le module *Turtle*" #: ../Doc/library/turtle.rst:120 msgid "Move and draw" -msgstr "" +msgstr "Bouger et dessiner" #: ../Doc/library/turtle.rst:0 msgid ":func:`forward` | :func:`fd`" @@ -228,7 +286,7 @@ msgstr ":func:`speed`" #: ../Doc/library/turtle.rst:128 ../Doc/library/turtle.rst:623 msgid "Tell Turtle's state" -msgstr "" +msgstr "Connaître l'état de la tortue" #: ../Doc/library/turtle.rst:0 msgid ":func:`position` | :func:`pos`" @@ -256,7 +314,7 @@ msgstr ":func:`distance`" #: ../Doc/library/turtle.rst:132 msgid "Setting and measurement" -msgstr "" +msgstr "Paramétrage et mesure" #: ../Doc/library/turtle.rst:0 msgid ":func:`degrees`" @@ -268,11 +326,11 @@ msgstr ":func:`radians`" #: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:765 msgid "Pen control" -msgstr "" +msgstr "Réglage des pinceaux" #: ../Doc/library/turtle.rst:140 ../Doc/library/turtle.rst:768 msgid "Drawing state" -msgstr "" +msgstr "État des pinceaux" #: ../Doc/library/turtle.rst:0 msgid ":func:`pendown` | :func:`pd` | :func:`down`" @@ -296,7 +354,7 @@ msgstr ":func:`isdown`" #: ../Doc/library/turtle.rst:145 ../Doc/library/turtle.rst:857 msgid "Color control" -msgstr "" +msgstr "Réglage des couleurs" #: ../Doc/library/turtle.rst:0 msgid ":func:`color`" @@ -312,7 +370,7 @@ msgstr ":func:`fillcolor`" #: ../Doc/library/turtle.rst:150 ../Doc/library/turtle.rst:986 msgid "Filling" -msgstr "" +msgstr "Remplissage" #: ../Doc/library/turtle.rst:0 msgid ":func:`filling`" @@ -328,7 +386,7 @@ msgstr ":func:`end_fill`" #: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:1025 msgid "More drawing control" -msgstr "" +msgstr "Plus des réglages pour le dessin" #: ../Doc/library/turtle.rst:0 msgid ":func:`reset`" @@ -344,11 +402,11 @@ msgstr ":func:`write`" #: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1070 msgid "Turtle state" -msgstr "" +msgstr "État de la tortue" #: ../Doc/library/turtle.rst:161 ../Doc/library/turtle.rst:1073 msgid "Visibility" -msgstr "" +msgstr "Visibilité" #: ../Doc/library/turtle.rst:0 msgid ":func:`showturtle` | :func:`st`" @@ -364,7 +422,7 @@ msgstr ":func:`isvisible`" #: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1110 msgid "Appearance" -msgstr "" +msgstr "Apparence" #: ../Doc/library/turtle.rst:0 msgid ":func:`shape`" @@ -404,7 +462,7 @@ msgstr ":func:`get_shapepoly`" #: ../Doc/library/turtle.rst:177 ../Doc/library/turtle.rst:1306 msgid "Using events" -msgstr "" +msgstr "Utilisation des événements" #: ../Doc/library/turtle.rst:0 ../Doc/library/turtle.rst:2342 msgid ":func:`onclick`" @@ -420,7 +478,7 @@ msgstr ":func:`ondrag`" #: ../Doc/library/turtle.rst:188 ../Doc/library/turtle.rst:1376 msgid "Special Turtle methods" -msgstr "" +msgstr "Méthodes spéciales de la tortue" #: ../Doc/library/turtle.rst:0 msgid ":func:`begin_poly`" @@ -456,11 +514,11 @@ msgstr ":func:`undobufferentries`" #: ../Doc/library/turtle.rst:191 msgid "Methods of TurtleScreen/Screen" -msgstr "" +msgstr "Méthodes de *TurtleScreen*/*Screen*" #: ../Doc/library/turtle.rst:199 ../Doc/library/turtle.rst:1521 msgid "Window control" -msgstr "" +msgstr "Réglage de la fenêtre" #: ../Doc/library/turtle.rst:0 msgid ":func:`bgcolor`" @@ -488,7 +546,7 @@ msgstr ":func:`setworldcoordinates`" #: ../Doc/library/turtle.rst:204 ../Doc/library/turtle.rst:1635 msgid "Animation control" -msgstr "" +msgstr "Réglage de l'animation" #: ../Doc/library/turtle.rst:0 msgid ":func:`delay`" @@ -504,7 +562,7 @@ msgstr ":func:`update`" #: ../Doc/library/turtle.rst:212 ../Doc/library/turtle.rst:1686 msgid "Using screen events" -msgstr "" +msgstr "Utilisation des événements concernant l'écran" #: ../Doc/library/turtle.rst:0 msgid ":func:`listen`" @@ -532,11 +590,11 @@ msgstr ":func:`mainloop` | :func:`done`" #: ../Doc/library/turtle.rst:222 ../Doc/library/turtle.rst:1827 msgid "Settings and special methods" -msgstr "" +msgstr "Paramétrages et méthodes spéciales" #: ../Doc/library/turtle.rst:0 msgid ":func:`mode`" -msgstr "" +msgstr ":func:`mode`" #: ../Doc/library/turtle.rst:0 msgid ":func:`colormode`" @@ -568,7 +626,7 @@ msgstr ":func:`window_width`" #: ../Doc/library/turtle.rst:226 ../Doc/library/turtle.rst:1791 msgid "Input methods" -msgstr "" +msgstr "Méthodes de saisie" #: ../Doc/library/turtle.rst:0 msgid ":func:`textinput`" @@ -580,7 +638,7 @@ msgstr ":func:`numinput`" #: ../Doc/library/turtle.rst:233 msgid "Methods specific to Screen" -msgstr "" +msgstr "Méthodes spécifiques de *Screen*" #: ../Doc/library/turtle.rst:0 msgid ":func:`bye`" @@ -600,41 +658,47 @@ msgstr ":func:`title`" #: ../Doc/library/turtle.rst:236 msgid "Methods of RawTurtle/Turtle and corresponding functions" -msgstr "" +msgstr "Méthodes de *RawTurtle*/*Turtle* et leurs fonctions correspondantes" #: ../Doc/library/turtle.rst:238 msgid "" "Most of the examples in this section refer to a Turtle instance called " "``turtle``." msgstr "" +"La plupart des exemples de cette section se réfèrent à une instance de " +"*Turtle* appelée ``turtle``." #: ../Doc/library/turtle.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/turtle.rst:247 ../Doc/library/turtle.rst:290 #: ../Doc/library/turtle.rst:313 ../Doc/library/turtle.rst:369 #: ../Doc/library/turtle.rst:390 ../Doc/library/turtle.rst:411 msgid "a number (integer or float)" -msgstr "" +msgstr "un nombre (entier ou flottant)" #: ../Doc/library/turtle.rst:249 msgid "" "Move the turtle forward by the specified *distance*, in the direction the " "turtle is headed." msgstr "" +"Avance la tortue de la *distance* spécifiée, dans la direction où elle se " +"dirige." #: ../Doc/library/turtle.rst:268 ../Doc/library/turtle.rst:458 #: ../Doc/library/turtle.rst:721 ../Doc/library/turtle.rst:1205 #: ../Doc/library/turtle.rst:1223 msgid "a number" -msgstr "" +msgstr "un nombre" #: ../Doc/library/turtle.rst:270 msgid "" "Move the turtle backward by *distance*, opposite to the direction the turtle " "is headed. Do not change the turtle's heading." msgstr "" +"Déplace la tortue de *distance* vers l'arrière (dans le sens opposé à celui " +"vers lequel elle pointe). Ne change pas le cap de la tortue." #: ../Doc/library/turtle.rst:292 msgid "" @@ -642,6 +706,10 @@ msgid "" "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" +"Tourne la tortue à droite de *angle* unités (les unités sont par défaut des " +"degrés, mais peuvent être définies via les fonctions :func:`degrees` et :" +"func:`radians`). L'orientation de l'angle dépend du mode de la tortue, voir :" +"func:`mode`." #: ../Doc/library/turtle.rst:315 msgid "" @@ -649,96 +717,112 @@ msgid "" "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" +"Tourne la tortue à gauche d'une valeur de *angle* unités (les unités sont " +"par défaut des degrés, mais peuvent être définies via les fonctions :func:" +"`degrees` et :func:`radians`). L'orientation de l'angle dépend du mode de la " +"tortue, voir :func:`mode`." #: ../Doc/library/turtle.rst:337 msgid "a number or a pair/vector of numbers" -msgstr "" +msgstr "un nombre ou une paire / un vecteur de nombres" #: ../Doc/library/turtle.rst:338 msgid "a number or ``None``" -msgstr "" +msgstr "un nombre ou ``None``" #: ../Doc/library/turtle.rst:340 msgid "" "If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` (e." "g. as returned by :func:`pos`)." msgstr "" +"Si *y* est ``None``, *x* doit être une paire de coordonnées, ou bien une " +"instance de :class:`Vec2D` (par exemple, tel que renvoyé par :func:`pos`)." #: ../Doc/library/turtle.rst:343 msgid "" "Move turtle to an absolute position. If the pen is down, draw line. Do not " "change the turtle's orientation." msgstr "" +"Déplace la tortue vers une position absolue. Si le pinceau est en bas, trace " +"une ligne. Ne change pas l'orientation de la tortue." #: ../Doc/library/turtle.rst:371 msgid "" "Set the turtle's first coordinate to *x*, leave second coordinate unchanged." msgstr "" +"Définit la première coordonnée de la tortue à *x*, en laissant la deuxième " +"coordonnée inchangée." #: ../Doc/library/turtle.rst:392 msgid "" "Set the turtle's second coordinate to *y*, leave first coordinate unchanged." msgstr "" +"Définit la deuxième coordonnée de la tortue à *y*, en laissant la première " +"coordonnée inchangée." #: ../Doc/library/turtle.rst:413 msgid "" "Set the orientation of the turtle to *to_angle*. Here are some common " "directions in degrees:" msgstr "" +"Règle l'orientation de la tortue à la valeur `to_angle`. Voici quelques " +"orientations courantes en degrés :" #: ../Doc/library/turtle.rst:417 msgid "standard mode" -msgstr "" +msgstr "mode standard" #: ../Doc/library/turtle.rst:417 msgid "logo mode" -msgstr "" +msgstr "mode logo" #: ../Doc/library/turtle.rst:419 msgid "0 - east" -msgstr "" +msgstr "0 – Est" #: ../Doc/library/turtle.rst:419 msgid "0 - north" -msgstr "" +msgstr "0 – Nord" #: ../Doc/library/turtle.rst:420 msgid "90 - north" -msgstr "" +msgstr "90 – Nord" #: ../Doc/library/turtle.rst:420 msgid "90 - east" -msgstr "" +msgstr "90 – Est" #: ../Doc/library/turtle.rst:421 msgid "180 - west" -msgstr "" +msgstr "180 – Ouest" #: ../Doc/library/turtle.rst:421 msgid "180 - south" -msgstr "" +msgstr "180 – Sud" #: ../Doc/library/turtle.rst:422 msgid "270 - south" -msgstr "" +msgstr "270 – Sud" #: ../Doc/library/turtle.rst:422 msgid "270 - west" -msgstr "" +msgstr "270 – Ouest" #: ../Doc/library/turtle.rst:434 msgid "" "Move turtle to the origin -- coordinates (0,0) -- and set its heading to its " "start-orientation (which depends on the mode, see :func:`mode`)." msgstr "" +"Déplace la tortue à l'origine — coordonnées (0,0) — et l'oriente à son cap " +"initial (qui dépend du mode, voir :func:`mode`)." #: ../Doc/library/turtle.rst:459 msgid "a number (or ``None``)" -msgstr "" +msgstr "un nombre (ou ``None``)" #: ../Doc/library/turtle.rst:460 ../Doc/library/turtle.rst:550 msgid "an integer (or ``None``)" -msgstr "" +msgstr "un entier (ou ``None``)" #: ../Doc/library/turtle.rst:462 msgid "" @@ -750,6 +834,15 @@ msgid "" "otherwise in clockwise direction. Finally the direction of the turtle is " "changed by the amount of *extent*." msgstr "" +"Dessine un cercle de rayon `radius`. Le centre se trouve à une distance de " +"`radius` à gauche de la tortue ; l'angle `extent` détermine quelle partie du " +"cercle est dessinée. Si `extent` n'est pas fourni, dessine le cercle en " +"entier. Si `extent` ne correspond pas à un cercle entier, la position " +"actuelle du stylo est donnée par l'un des points d'extrémité de l'arc de " +"cercle. Si la valeur de `radius` est positive, dessine l'arc de cercle dans " +"le sens inverse des aiguilles d'une montre, sinon le dessine dans le sens " +"des aiguilles d'une montre. Enfin, la direction de la tortue peut être " +"modifiée en réglant la valeur de `extent`." #: ../Doc/library/turtle.rst:470 msgid "" @@ -757,20 +850,27 @@ msgid "" "determines the number of steps to use. If not given, it will be calculated " "automatically. May be used to draw regular polygons." msgstr "" +"Comme le cercle est approximé par un polygone régulier inscrit, `steps` " +"détermine le nombre de pas à utiliser. Si cette valeur n'est pas donnée, " +"elle sera calculée automatiquement. Elle peut être utilisée pour dessiner " +"des polygones réguliers." #: ../Doc/library/turtle.rst:495 msgid "an integer >= 1 (if given)" -msgstr "" +msgstr "un entier supérieur ou égal à 1 (si fourni)" #: ../Doc/library/turtle.rst:496 msgid "a colorstring or a numeric color tuple" -msgstr "" +msgstr "une chaîne qui désigne une couleur ou un n-uplet de couleur numérique" #: ../Doc/library/turtle.rst:498 msgid "" "Draw a circular dot with diameter *size*, using *color*. If *size* is not " "given, the maximum of pensize+4 and 2*pensize is used." msgstr "" +"Dessine un point circulaire de diamètre `size`, de la couleur `color`. Si le " +"paramètre `size` n'est pas indiqué, utilise la valeur maximum de la taille " +"du pinceau plus 4 et de la taille du pinceau multiplié par 2." #: ../Doc/library/turtle.rst:515 msgid "" @@ -778,14 +878,19 @@ msgid "" "position. Return a stamp_id for that stamp, which can be used to delete it " "by calling ``clearstamp(stamp_id)``." msgstr "" +"Tamponne une copie de la forme de la tortue sur le canevas à la position " +"actuelle de la tortue. Renvoie un *stamp_id* pour ce tampon, qui peut être " +"utilisé pour le supprimer en appelant ``clearstamp(stamp_id)``." #: ../Doc/library/turtle.rst:529 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" +"un entier, doit être la valeur renvoyée par l'appel précédent de :func:" +"`stamp`" #: ../Doc/library/turtle.rst:532 msgid "Delete stamp with given *stampid*." -msgstr "" +msgstr "Supprime le tampon dont le *stampid* est donné." #: ../Doc/library/turtle.rst:552 msgid "" @@ -793,73 +898,94 @@ msgid "" "all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last " "*n* stamps." msgstr "" +"Supprime tous, les *n* premiers ou les *n* derniers tampons de la tortue. Si " +"*n* est ``None``, supprime tous les tampons, si *n* > 0, supprime les *n* " +"premiers tampons et si n < 0, supprime les *n* derniers tampons." #: ../Doc/library/turtle.rst:575 msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." msgstr "" +"Annule la ou les dernières (si répété) actions de la tortue. Le nombre " +"d'annulations disponible est déterminé par la taille de la mémoire tampon " +"d'annulations." #: ../Doc/library/turtle.rst:589 msgid "an integer in the range 0..10 or a speedstring (see below)" msgstr "" +"un nombre entier compris dans l’intervalle entre 0 et 10 inclus, ou une " +"chaîne de vitesse (voir ci-dessous)" #: ../Doc/library/turtle.rst:591 msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." msgstr "" +"Règle la vitesse de la tortue à une valeur entière comprise entre 0 et 10 " +"inclus. Si aucun argument n'est donné, renvoie la vitesse actuelle." #: ../Doc/library/turtle.rst:594 msgid "" "If input is a number greater than 10 or smaller than 0.5, speed is set to " "0. Speedstrings are mapped to speedvalues as follows:" msgstr "" +"Si l'entrée est un nombre supérieur à 10 ou inférieur à 0,5, la vitesse est " +"fixée à 0. Les chaînes de vitesse sont mises en correspondance avec les " +"valeurs de vitesse comme suit :" #: ../Doc/library/turtle.rst:597 msgid "\"fastest\": 0" -msgstr "" +msgstr "« le plus rapide » : 0" #: ../Doc/library/turtle.rst:598 msgid "\"fast\": 10" -msgstr "" +msgstr "« rapide » : 10" #: ../Doc/library/turtle.rst:599 msgid "\"normal\": 6" -msgstr "" +msgstr "« vitesse normale » : 6" #: ../Doc/library/turtle.rst:600 msgid "\"slow\": 3" -msgstr "" +msgstr "« lent » : 3" #: ../Doc/library/turtle.rst:601 msgid "\"slowest\": 1" -msgstr "" +msgstr "« le plus lent » : 1" #: ../Doc/library/turtle.rst:603 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." msgstr "" +"Les vitesses de 1 à 10 permettent une animation de plus en plus rapide du " +"trait du dessin et de la rotation des tortues." #: ../Doc/library/turtle.rst:606 msgid "" "Attention: *speed* = 0 means that *no* animation takes place. forward/back " "makes turtle jump and likewise left/right make the turtle turn instantly." msgstr "" +"Attention : *speed* = 0 signifie qu'il n'y a *aucune* animation. *forward*/" +"*back* font sauter la tortue et, de même, *left*/*right* font tourner la " +"tortue instantanément." #: ../Doc/library/turtle.rst:628 msgid "" "Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." msgstr "" +"Renvoie la position actuelle de la tortue (x,y) (en tant qu'un vecteur :" +"class:`Vec2d`)." #: ../Doc/library/turtle.rst:638 ../Doc/library/turtle.rst:697 msgid "a number or a pair/vector of numbers or a turtle instance" msgstr "" +"un nombre, ou une paire / un vecteur de nombres, ou une instance de tortue" #: ../Doc/library/turtle.rst:639 ../Doc/library/turtle.rst:698 msgid "a number if *x* is a number, else ``None``" -msgstr "" +msgstr "un nombre si `x` est un nombre, sinon ``None``" #: ../Doc/library/turtle.rst:641 msgid "" @@ -871,51 +997,59 @@ msgstr "" #: ../Doc/library/turtle.rst:654 msgid "Return the turtle's x coordinate." -msgstr "" +msgstr "Renvoie la coordonnée x de la tortue." #: ../Doc/library/turtle.rst:669 msgid "Return the turtle's y coordinate." -msgstr "" +msgstr "Renvoie la coordonnée y de la tortue." #: ../Doc/library/turtle.rst:684 msgid "" "Return the turtle's current heading (value depends on the turtle mode, see :" "func:`mode`)." msgstr "" +"Renvoie le cap de la tortue (la valeur dépend du mode de la tortue, voir :" +"func:`mode`)." #: ../Doc/library/turtle.rst:700 msgid "" "Return the distance from the turtle to (x,y), the given vector, or the given " "other turtle, in turtle step units." msgstr "" +"Renvoie la distance entre la tortue et (x,y), le vecteur donné ou l'autre " +"tortue donnée. La valeur est exprimée en unités de pas de tortue." #: ../Doc/library/turtle.rst:717 msgid "Settings for measurement" -msgstr "" +msgstr "Paramètres de mesure" #: ../Doc/library/turtle.rst:723 msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." msgstr "" +"Définit les unités de mesure des angles, c.-à-d. fixe le nombre de " +"« degrés » pour un cercle complet. La valeur par défaut est de 360 degrés." #: ../Doc/library/turtle.rst:745 msgid "" "Set the angle measurement units to radians. Equivalent to ``degrees(2*math." "pi)``." msgstr "" +"Règle l'unité de mesure des angles sur radians. Équivalent à " +"``degrees(2*math.pi)``." #: ../Doc/library/turtle.rst:774 msgid "Pull the pen down -- drawing when moving." -msgstr "" +msgstr "Baisse la pointe du stylo — dessine quand il se déplace." #: ../Doc/library/turtle.rst:781 msgid "Pull the pen up -- no drawing when moving." -msgstr "" +msgstr "Lève la pointe du stylo — pas de dessin quand il se déplace." #: ../Doc/library/turtle.rst:787 msgid "a positive number" -msgstr "" +msgstr "un nombre positif" #: ../Doc/library/turtle.rst:789 msgid "" @@ -923,60 +1057,72 @@ msgid "" "\"auto\" and turtleshape is a polygon, that polygon is drawn with the same " "line thickness. If no argument is given, the current pensize is returned." msgstr "" +"Règle l'épaisseur de la ligne à *width* ou la renvoie. Si *resizemode* est " +"défini à \"auto\" et que *turtleshape* (la forme de la tortue) est un " +"polygone, le polygone est dessiné avec cette épaisseur. Si aucun argument " +"n'est passé, la taille actuelle du stylo (*pensize*) est renvoyée." #: ../Doc/library/turtle.rst:802 msgid "a dictionary with some or all of the below listed keys" -msgstr "" +msgstr "un dictionnaire avec certaines ou toutes les clés énumérées ci-dessous" #: ../Doc/library/turtle.rst:803 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" +"un ou plusieurs arguments par mots-clés avec les clés suivantes comme mots-" +"clés" #: ../Doc/library/turtle.rst:805 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" msgstr "" +"Renvoie ou définit les attributs du pinceau dans un `\"pen-dictionary\"` " +"avec les paires clés / valeurs suivantes :" #: ../Doc/library/turtle.rst:808 msgid "\"shown\": True/False" -msgstr "" +msgstr "`\"shown\"` : ``True`` / ``False``" #: ../Doc/library/turtle.rst:809 msgid "\"pendown\": True/False" -msgstr "" +msgstr "`\"pendown\"` : ``True`` / ``False``" #: ../Doc/library/turtle.rst:810 msgid "\"pencolor\": color-string or color-tuple" msgstr "" +"`\"pencolor\"` : chaîne de caractères ou n-uplet désignant la couleur du " +"pinceau" #: ../Doc/library/turtle.rst:811 msgid "\"fillcolor\": color-string or color-tuple" msgstr "" +"`\"fillcolor\"` : chaîne de caractères ou n-uplet pour la couleur de " +"remplissage" #: ../Doc/library/turtle.rst:812 msgid "\"pensize\": positive number" -msgstr "" +msgstr "`\"pensize\"` : nombre positif" #: ../Doc/library/turtle.rst:813 msgid "\"speed\": number in range 0..10" -msgstr "" +msgstr "`\"speed\"` : nombre compris dans intervalle 0 et 10" #: ../Doc/library/turtle.rst:814 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" -msgstr "" +msgstr "`\"resizemode\"` : `\"auto\"`, `\"user\"` ou `\"noresize\"`" #: ../Doc/library/turtle.rst:815 msgid "\"stretchfactor\": (positive number, positive number)" -msgstr "" +msgstr "`\"stretchfactor\"` : (nombre positif, nombre positif)" #: ../Doc/library/turtle.rst:816 msgid "\"outline\": positive number" -msgstr "" +msgstr "`\"outline\"` : nombre positif" #: ../Doc/library/turtle.rst:817 msgid "\"tilt\": number" -msgstr "" +msgstr "`\"tilt\"` : nombre" #: ../Doc/library/turtle.rst:819 msgid "" @@ -985,18 +1131,24 @@ msgid "" "can be provided as keyword-arguments. This can be used to set several pen " "attributes in one statement." msgstr "" +"Ce dictionnaire peut être utilisé comme argument pour un appel ultérieur à :" +"func:`pen` pour restaurer l'ancien état du stylo. En outre, un ou plus de " +"ces attributs peuvent est passés en tant qu'arguments nommés. Cela peut être " +"utilisé pour définir plusieurs attributs du stylo en une instruction." #: ../Doc/library/turtle.rst:844 msgid "Return ``True`` if pen is down, ``False`` if it's up." msgstr "" +"Renvoie ``True`` si la pointe du stylo est en bas et ``False`` si elle est " +"en haut." #: ../Doc/library/turtle.rst:861 msgid "Return or set the pencolor." -msgstr "" +msgstr "Renvoie ou règle la couleur du pinceau" #: ../Doc/library/turtle.rst:863 ../Doc/library/turtle.rst:911 msgid "Four input formats are allowed:" -msgstr "" +msgstr "Quatre formats d'entrée sont autorisés :" #: ../Doc/library/turtle.rst:868 msgid "``pencolor()``" @@ -1007,6 +1159,9 @@ msgid "" "Return the current pencolor as color specification string or as a tuple (see " "example). May be used as input to another color/pencolor/fillcolor call." msgstr "" +"Renvoie la couleur du stylo actuelle en tant que chaine de spécification de " +"couleurs ou en tant qu'un *n*-uplet (voir l'exemple). Peut être utilisée " +"comme entrée à un autre appel de *color*/*pencolor*/*fillcolor*." #: ../Doc/library/turtle.rst:872 msgid "``pencolor(colorstring)``" @@ -1017,6 +1172,9 @@ msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" +"Définit la couleur du pinceau à `colorstring`, qui est une chaîne de " +"spécification de couleur *Tk*, telle que ``\"red\"``, ``\"yellow\"``, ou ``" +"\"#33cc8c\"``." #: ../Doc/library/turtle.rst:877 msgid "``pencolor((r, g, b))``" @@ -1028,6 +1186,9 @@ msgid "" "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" +"Définit la couleur du stylo à la couleur RGB représentée par le *n*-uplet de " +"*r*, *g* et *b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle ``0.." +"colormode``, où *colormode* est vaut 1.0 ou 255 (voir :func:`colormode`)." #: ../Doc/library/turtle.rst:884 msgid "``pencolor(r, g, b)``" @@ -1038,16 +1199,20 @@ msgid "" "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" +"Définit la couleur du stylo à la couleur RGB représentée par *r*, *g* et " +"*b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle ``0..colormode``." #: ../Doc/library/turtle.rst:883 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." msgstr "" +"Si la forme de la tortue est un polygone, le contour de ce polygone est " +"dessiné avec la nouvelle couleur du pinceau." #: ../Doc/library/turtle.rst:909 msgid "Return or set the fillcolor." -msgstr "" +msgstr "Renvoie ou règle la couleur de remplissage" #: ../Doc/library/turtle.rst:916 msgid "``fillcolor()``" @@ -1059,6 +1224,10 @@ msgid "" "tuple format (see example). May be used as input to another color/pencolor/" "fillcolor call." msgstr "" +"Renvoie la couleur de remplissage actuelle (*fillcolor*) en tant que chaine " +"de spécification, possiblement en format *n*-uplet (voir l'exemple). Peut " +"être utilisée en entrée pour un autre appel de *color*/*pencolor*/" +"*fillcolor*." #: ../Doc/library/turtle.rst:920 msgid "``fillcolor(colorstring)``" @@ -1069,6 +1238,9 @@ msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" +"Définit la couleur de remplissage (*fillcolor*) à *colorstring*, qui est une " +"chaine de spécification de couleur *Tk* comme par exemple ``\"red\"``, ``" +"\"yellow\"`` ou ``\"#33cc8c\"``." #: ../Doc/library/turtle.rst:925 msgid "``fillcolor((r, g, b))``" @@ -1080,6 +1252,10 @@ msgid "" "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" +"Définit la couleur du remplissage (*fillcolor*) à la couleur RGB représentée " +"par le *n*-uplet *r*, *g*, *b*. Chacun des *r*, *g* et *b* doit être dans " +"l'intervalle ``0..colormode`` où *colormode* vaut 1.0 ou 255 (voir :func:" +"`colormode`)." #: ../Doc/library/turtle.rst:932 msgid "``fillcolor(r, g, b)``" @@ -1090,21 +1266,28 @@ msgid "" "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" +"Définit la couleur du remplissage(*fillcolor*) à la couleur RGB représentée " +"par *r*, *g* et *b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle " +"``0..colormode``." #: ../Doc/library/turtle.rst:931 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." msgstr "" +"Si la forme de la tortue est un polygone, l'intérieur de ce polygone sera " +"dessiné avec la nouvelle couleur de remplissage." #: ../Doc/library/turtle.rst:951 msgid "Return or set pencolor and fillcolor." -msgstr "" +msgstr "Renvoie ou règle la couleur du pinceau et la couleur de remplissage." #: ../Doc/library/turtle.rst:953 msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" +"Plusieurs formats d'entrée sont autorisés. Ils peuvent avoir de zéro jusqu'à " +"trois arguments, employés comme suit :" #: ../Doc/library/turtle.rst:959 msgid "``color()``" @@ -1116,55 +1299,69 @@ msgid "" "specification strings or tuples as returned by :func:`pencolor` and :func:" "`fillcolor`." msgstr "" +"Renvoie la couleur du stylo actuelle et la couleur de remplissage actuelle " +"sous forme de paire, soit de chaines de spécification de couleur, soit de " +"*n*-uplets comme renvoyés par :func:`pencolor` et :func:`fillcolor`." #: ../Doc/library/turtle.rst:963 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" -msgstr "" +msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" #: ../Doc/library/turtle.rst:962 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." msgstr "" +"Les formats d'entrée sont comme dans :func:`pencolor`. Définit à la fois la " +"couleur de remplissage et la couleur du stylo à la valeur passée." #: ../Doc/library/turtle.rst:970 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" +"``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" #: ../Doc/library/turtle.rst:966 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." msgstr "" +"Équivalent à ``pencolor(colorstring1)`` et ``fillcolor(colorstring2)`` et de " +"manière analogue si un autre format d'entrée est utilisé." #: ../Doc/library/turtle.rst:969 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." msgstr "" +"Si la forme de la tortue est un polygone, le contour et l'intérieur de ce " +"polygone sont dessinés avec les nouvelles couleurs." #: ../Doc/library/turtle.rst:982 msgid "See also: Screen method :func:`colormode`." -msgstr "" +msgstr "Voir aussi : la méthode :func:`colormode` de *Screen*." #: ../Doc/library/turtle.rst:995 msgid "Return fillstate (``True`` if filling, ``False`` else)." msgstr "" +"Renvoie l'état de remplissage (``True`` signifie en train de faire un " +"remplissage, ``False`` sinon)." #: ../Doc/library/turtle.rst:1009 msgid "To be called just before drawing a shape to be filled." -msgstr "" +msgstr "À appeler juste avant de dessiner une forme à remplir." #: ../Doc/library/turtle.rst:1014 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." -msgstr "" +msgstr "Remplit la forme dessinée après le dernier appel à :func:`begin_fill`." #: ../Doc/library/turtle.rst:1029 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." msgstr "" +"Supprime les dessins de la tortue de l'écran, recentre la tortue et assigne " +"les variables aux valeurs par défaut." #: ../Doc/library/turtle.rst:1049 msgid "" @@ -1172,22 +1369,27 @@ msgid "" "and position of the turtle as well as drawings of other turtles are not " "affected." msgstr "" +"Supprime les dessins de la tortue de l'écran. Ne déplace pas la tortue. " +"L'état et la position de la tortue ainsi que les dessins des autres tortues " +"ne sont pas affectés." #: ../Doc/library/turtle.rst:1055 msgid "object to be written to the TurtleScreen" -msgstr "" +msgstr "objet à écrire sur le *TurtleScreen*" #: ../Doc/library/turtle.rst:1056 msgid "True/False" -msgstr "" +msgstr "``True`` / ``False``" #: ../Doc/library/turtle.rst:1057 msgid "one of the strings \"left\", \"center\" or right\"" msgstr "" +"l'une des chaînes de caractères suivantes : `\"left\"`, `\"center\"` ou `" +"\"right\"`" #: ../Doc/library/turtle.rst:1058 msgid "a triple (fontname, fontsize, fonttype)" -msgstr "" +msgstr "triplet (nom de police, taille de police, type de police)" #: ../Doc/library/turtle.rst:1060 msgid "" @@ -1203,18 +1405,21 @@ msgid "" "middle of doing some complex drawing, because hiding the turtle speeds up " "the drawing observably." msgstr "" +"Rend la tortue invisible. C'est recommandé lorsque vous êtes en train de " +"faire un dessin complexe, vous observerez alors une accélération notable." #: ../Doc/library/turtle.rst:1090 msgid "Make the turtle visible." -msgstr "" +msgstr "Rend la tortue visible." #: ../Doc/library/turtle.rst:1099 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgstr "" +"Renvoie ``True`` si la tortue est visible, et ``False`` si elle est cachée." #: ../Doc/library/turtle.rst:1114 msgid "a string which is a valid shapename" -msgstr "" +msgstr "une chaîne de caractères qui correspond à un nom de forme valide" #: ../Doc/library/turtle.rst:1116 msgid "" @@ -1224,10 +1429,16 @@ msgid "" "\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". To learn " "about how to deal with shapes see Screen method :func:`register_shape`." msgstr "" +"La tortue prend la forme *name* donnée, ou, si *name* n'est pas donné, " +"renvoie le nom de la forme actuelle. Le nom *name* donné doit exister dans " +"le dictionnaire de formes de *TurtleScreen*. Initialement, il y a les " +"polygones suivants : \"*arrow*\", \"*turtle*\", \"*circle*\", \"*square*\", " +"\"*triangle*\", \"*classic*\". Pour en apprendre plus sur comment gérer les " +"formes, voir la méthode de *Screen* :func:`register_shape`." #: ../Doc/library/turtle.rst:1133 msgid "one of the strings \"auto\", \"user\", \"noresize\"" -msgstr "" +msgstr "l'une des chaînes suivantes : `\"auto\"`, `\"user\"`, `\"noresize\"`" #: ../Doc/library/turtle.rst:1135 msgid "" @@ -1235,22 +1446,31 @@ msgid "" "*rmode* is not given, return current resizemode. Different resizemodes have " "the following effects:" msgstr "" +"Définit *resizemode* à l'une des valeurs suivantes : \"*auto*\", \"*user*\", " +"\"*noresize*\". Si \"*rmode*\" n'est pas donné, renvoie le *resizemode* " +"actuel. Les différents *resizemode* ont les effets suivants :" #: ../Doc/library/turtle.rst:1139 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." msgstr "" +"*\"auto\"* : adapte l'apparence de la tortue en fonction de la largeur du " +"pinceau (*value of pensize* en anglais)." #: ../Doc/library/turtle.rst:1140 msgid "" "\"user\": adapts the appearance of the turtle according to the values of " "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." msgstr "" +"*\"user\"* : adapte l'apparence de la tortue en fonction des valeurs du " +"paramètre d'étirement et de la largeur des contours, déterminés par :func:" +"`shapesize`." #: ../Doc/library/turtle.rst:1143 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "" +"*\"noresize\"* : il n'y a pas de modification de l'apparence de la tortue." #: ../Doc/library/turtle.rst:1145 msgid "" @@ -1260,7 +1480,7 @@ msgstr "" #: ../Doc/library/turtle.rst:1159 ../Doc/library/turtle.rst:1160 #: ../Doc/library/turtle.rst:1161 msgid "positive number" -msgstr "" +msgstr "nombre positif" #: ../Doc/library/turtle.rst:1163 msgid "" @@ -1271,11 +1491,18 @@ msgid "" "*stretch_len* is stretchfactor in direction of its orientation, *outline* " "determines the width of the shapes's outline." msgstr "" +"Renvoie ou définit les attributs x/y-stretchfactors* et/ou contour du stylo. " +"Définit *resizemode* à \"user\". Si et seulement si *resizemode* est à \"user" +"\", la tortue sera affichée étirée en fonction de ses facteurs d'étirements " +"(*stretchfactors*) : *stretch_wid* est le facteur d'étirement " +"perpendiculaire à son orientation, *stretch_len* est le facteur d'étirement " +"en direction de son orientation, *outlline* détermine la largeur de la " +"bordure de la forme." #: ../Doc/library/turtle.rst:1185 ../Doc/library/turtle.rst:1810 #: ../Doc/library/turtle.rst:1811 ../Doc/library/turtle.rst:1812 msgid "number (optional)" -msgstr "" +msgstr "un nombre (facultatif)" #: ../Doc/library/turtle.rst:1187 msgid "" @@ -1285,12 +1512,21 @@ msgid "" "given: return the current shearfactor, i. e. the tangent of the shear angle, " "by which lines parallel to the heading of the turtle are sheared." msgstr "" +"Définit ou renvoie le paramétrage de cisaillement actuel. Déforme la tortue " +"en fonction du paramètre *shear* donné, qui est la tangente de l'angle de " +"cisaillement. Ne change pas le sens de déplacement de la tortue. Si le " +"paramètre *shear* n'est pas indiqué, renvoie la valeur actuelle du " +"cisaillement, c.-à-d. la valeur de la tangente de l'angle de cisaillement, " +"celui par rapport auquel les lignes parallèles à la direction de la tortue " +"sont cisaillées." #: ../Doc/library/turtle.rst:1207 msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." msgstr "" +"Tourne la forme de la tortue de *angle* depuis son angle d'inclinaison " +"actuel, mais *ne change pas* le cap de la tortue (direction du mouvement)." #: ../Doc/library/turtle.rst:1225 msgid "" @@ -1298,12 +1534,15 @@ msgid "" "regardless of its current tilt-angle. *Do not* change the turtle's heading " "(direction of movement)." msgstr "" +"Tourne la forme de la tortue pour pointer dans la direction spécifiée par " +"*angle*, indépendamment de son angle d'inclinaison actuel. *Ne change pas* " +"le cap de la tortue (direction du mouvement)." #: ../Doc/library/turtle.rst:1244 ../Doc/library/turtle.rst:1266 #: ../Doc/library/turtle.rst:1267 ../Doc/library/turtle.rst:1268 #: ../Doc/library/turtle.rst:1269 msgid "a number (optional)" -msgstr "" +msgstr "un nombre (facultatif)" #: ../Doc/library/turtle.rst:1246 msgid "" @@ -1314,10 +1553,18 @@ msgid "" "angle between the orientation of the turtleshape and the heading of the " "turtle (its direction of movement)." msgstr "" +"Définit ou renvoie l'angle d'inclinaison actuel. Si l'angle est donné, la " +"forme de la tortue est tournée pour pointer dans direction spécifiée par " +"l'angle, indépendamment de son angle d'inclinaison actuel. *Ne change pas* " +"le cap de la tortue (direction du mouvement). Si l'angle n'est pas donné, " +"renvoie l'angle d'inclinaison actuel (L'angle entre l'orientation de la " +"forme de la tortue et le cap de la tortue (sa direction de mouvement))." #: ../Doc/library/turtle.rst:1271 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" +"Définit ou renvoie la matrice de transformation actuelle de la forme de la " +"tortue." #: ../Doc/library/turtle.rst:1273 msgid "" @@ -1334,6 +1581,9 @@ msgid "" "Return the current shape polygon as tuple of coordinate pairs. This can be " "used to define a new shape or components of a compound shape." msgstr "" +"Renvoie la forme actuelle du polygone en *n*-uplet de paires de coordonnées. " +"Vous pouvez l'utiliser afin de définir une nouvelle forme ou en tant que " +"composant pour une forme plus complexe." #: ../Doc/library/turtle.rst:1310 ../Doc/library/turtle.rst:1331 #: ../Doc/library/turtle.rst:1355 ../Doc/library/turtle.rst:1736 @@ -1341,11 +1591,13 @@ msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" msgstr "" +"une fonction à deux arguments qui sera appelée avec les coordonnées du point " +"cliqué sur le canevas" #: ../Doc/library/turtle.rst:1312 ../Doc/library/turtle.rst:1333 #: ../Doc/library/turtle.rst:1357 ../Doc/library/turtle.rst:1738 msgid "number of the mouse-button, defaults to 1 (left mouse button)" -msgstr "" +msgstr "numéro du bouton de la souris, par défaut 1 (bouton de gauche)" #: ../Doc/library/turtle.rst:1313 ../Doc/library/turtle.rst:1334 #: ../Doc/library/turtle.rst:1358 ../Doc/library/turtle.rst:1739 @@ -1353,6 +1605,8 @@ msgid "" "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " "it will replace a former binding" msgstr "" +"``True`` ou ``False`` — si``True``, un nouveau lien est ajouté, sinon il " +"remplace un ancien lien" #: ../Doc/library/turtle.rst:1316 msgid "" @@ -1360,68 +1614,93 @@ msgid "" "existing bindings are removed. Example for the anonymous turtle, i.e. the " "procedural way:" msgstr "" +"Crée un lien vers *fun* pour les événements de clics de la souris sur cette " +"tortue. Si *fun* est ``None``, les liens existants sont supprimés. Exemple " +"pour la tortue anonyme, c'est-à-dire la manière procédurale :" #: ../Doc/library/turtle.rst:1337 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de relâchement d'un clic de la " +"souris sur cette tortue. Si *fun* est ``None``, les liens existants sont " +"supprimés." #: ../Doc/library/turtle.rst:1361 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de mouvement de la souris sur " +"cette tortue. Si *fun* est ``None``, les liens existants sont supprimés." #: ../Doc/library/turtle.rst:1364 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." msgstr "" +"Remarque : toutes les séquences d'événements de mouvement de la souris sur " +"une tortue sont précédées par un événement de clic de la souris sur cette " +"tortue." #: ../Doc/library/turtle.rst:1371 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." msgstr "" +"Par la suite, un cliquer-glisser sur la tortue la fait se déplacer au " +"travers de l'écran, produisant ainsi des dessins « à la main » (si le stylo " +"est posé)." #: ../Doc/library/turtle.rst:1380 msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." msgstr "" +"Démarre l'enregistrement des sommets d'un polygone. La position actuelle de " +"la tortue est le premier sommet du polygone." #: ../Doc/library/turtle.rst:1386 msgid "" "Stop recording the vertices of a polygon. Current turtle position is last " "vertex of polygon. This will be connected with the first vertex." msgstr "" +"Arrête l'enregistrement des sommets d'un polygone. La position actuelle de " +"la tortue sera le dernier sommet du polygone. Il sera connecté au premier " +"sommet." #: ../Doc/library/turtle.rst:1392 msgid "Return the last recorded polygon." -msgstr "" +msgstr "Renvoie le dernier polygone sauvegardé." #: ../Doc/library/turtle.rst:1410 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." msgstr "" +"Crée et renvoie un clone de la tortue avec les mêmes position, cap et " +"propriétés." #: ../Doc/library/turtle.rst:1422 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" msgstr "" +"Renvoie l'objet *Turtle* lui-même. Sa seule utilisation : comme fonction " +"pour renvoyer la \"tortue anonyme\" :" #: ../Doc/library/turtle.rst:1435 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." msgstr "" +"Renvoie l'objet :class:`TurtleScreen` sur lequel la tortue dessine. Les " +"méthodes de TurtleScreen peuvent être appelées pour cet objet." #: ../Doc/library/turtle.rst:1448 msgid "an integer or ``None``" -msgstr "" +msgstr "un entier ou ``None``" #: ../Doc/library/turtle.rst:1450 msgid "" @@ -1433,11 +1712,11 @@ msgstr "" #: ../Doc/library/turtle.rst:1462 msgid "Return number of entries in the undobuffer." -msgstr "" +msgstr "Renvoie le nombre d'entrées dans la mémoire d'annulation." #: ../Doc/library/turtle.rst:1474 msgid "Compound shapes" -msgstr "" +msgstr "Formes composées" #: ../Doc/library/turtle.rst:1476 msgid "" @@ -1445,24 +1724,31 @@ msgid "" "different color, you must use the helper class :class:`Shape` explicitly as " "described below:" msgstr "" +"Pour utiliser des formes de tortues combinées, qui sont composées de " +"polygones de différentes couleurs, vous devez utiliser la classe utilitaire :" +"class:`Shape` explicitement comme décrit ci-dessous :" #: ../Doc/library/turtle.rst:1480 msgid "Create an empty Shape object of type \"compound\"." -msgstr "" +msgstr "Créez un objet Shape vide de type \"compound\"." #: ../Doc/library/turtle.rst:1481 msgid "" "Add as many components to this object as desired, using the :meth:" "`addcomponent` method." msgstr "" +"Ajoutez autant de composants que désirés à cet objet, en utilisant la " +"méthode :meth:`addcomponent`." #: ../Doc/library/turtle.rst:1484 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/turtle.rst:1494 msgid "Now add the Shape to the Screen's shapelist and use it:" msgstr "" +"Maintenant ajoutez la *Shape* à la liste des formes de *Screen* et utilisez " +"la :" #: ../Doc/library/turtle.rst:1504 msgid "" @@ -1470,30 +1756,42 @@ msgid "" "method in different ways. The application programmer has to deal with the " "Shape class *only* when using compound shapes like shown above!" msgstr "" +"La classe :class:`Shape` est utilisée en interne par la méthode :func:" +"`register_shape` de différentes façons. Le développeur n'interagit avec la " +"classe Shape *que* lorsqu'il utilise des formes composées comme montré ci-" +"dessus !" #: ../Doc/library/turtle.rst:1510 msgid "Methods of TurtleScreen/Screen and corresponding functions" -msgstr "" +msgstr "Méthodes de TurtleScreen/Screen et leurs fonctions correspondantes" #: ../Doc/library/turtle.rst:1512 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." msgstr "" +"La plupart des exemples dans cette section font référence à une instance de " +"TurtleScreen appelée ``screen``." #: ../Doc/library/turtle.rst:1525 msgid "" "a color string or three numbers in the range 0..colormode or a 3-tuple of " "such numbers" msgstr "" +"chaîne spécifiant une couleur ou trois nombres dans l'intervalle *0.." +"colormode* ou *n*-uplet de ces trois nombres" #: ../Doc/library/turtle.rst:1529 msgid "Set or return background color of the TurtleScreen." msgstr "" +"Définit ou renvoie la couleur de fond de l'écran de la tortue " +"(*TurtleScreen* en anglais)." #: ../Doc/library/turtle.rst:1543 msgid "a string, name of a gif-file or ``\"nopic\"``, or ``None``" msgstr "" +"une chaîne de caractères, le nom d'un fichier *gif*, ou ``\"nopic\"``, ou " +"``None``" #: ../Doc/library/turtle.rst:1545 msgid "" @@ -1502,6 +1800,10 @@ msgid "" "*picname* is ``\"nopic\"``, delete background image, if present. If " "*picname* is ``None``, return the filename of the current backgroundimage. ::" msgstr "" +"Défini l'image de fond ou renvoie l'image de fond actuelle. Si *picname* est " +"un nom de fichier, cette image et mis en image de fond. Si *picname* est ``" +"\"nopic\"``, l'image de fond sera supprimée si présente. SI *picname* est " +"``None``, le nom du fichier de l'image de fond actuelle est renvoyé. ::" #: ../Doc/library/turtle.rst:1560 msgid "" @@ -1509,6 +1811,9 @@ msgid "" "empty TurtleScreen to its initial state: white background, no background " "image, no event bindings and tracing on." msgstr "" +"Supprime tous les dessins et toutes les tortues du TurtleScreen. " +"Réinitialise le TurtleScreen maintenant vide à son état initial : fond " +"blanc, pas d'image de fond, pas d'événement liés, et traçage activé." #: ../Doc/library/turtle.rst:1565 msgid "" @@ -1516,10 +1821,13 @@ msgid "" "name ``clearscreen``. The global function ``clear`` is a different one " "derived from the Turtle method ``clear``." msgstr "" +"Cette méthode TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom ``clearscreen``. La fonction globale ``clear`` est une " +"fonction différente dérivée de la méthode Turtle ``clear``." #: ../Doc/library/turtle.rst:1573 msgid "Reset all Turtles on the Screen to their initial state." -msgstr "" +msgstr "Remet toutes les tortues à l'écran dans leur état initial." #: ../Doc/library/turtle.rst:1576 msgid "" @@ -1527,18 +1835,25 @@ msgid "" "name ``resetscreen``. The global function ``reset`` is another one derived " "from the Turtle method ``reset``." msgstr "" +"Cette méthode TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom ``resetscreen``. La fonction globale ``reset`` est une " +"fonction différente dérivée de la méthode Turtle ``reset``." #: ../Doc/library/turtle.rst:1583 msgid "positive integer, new width of canvas in pixels" msgstr "" +"nombre entier positif, nouvelle largeur du canevas (zone sur laquelle se " +"déplace la tortue), en pixels" #: ../Doc/library/turtle.rst:1584 msgid "positive integer, new height of canvas in pixels" -msgstr "" +msgstr "nombre entier positif, nouvelle hauteur du canevas, en pixels" #: ../Doc/library/turtle.rst:1585 msgid "colorstring or color-tuple, new background color" msgstr "" +"chaîne de caractères indiquant la couleur ou n-uplet de couleurs, nouvelle " +"couleur de fond" #: ../Doc/library/turtle.rst:1587 msgid "" @@ -1548,26 +1863,32 @@ msgid "" "this method, one can make visible those parts of a drawing which were " "outside the canvas before." msgstr "" +"Si aucun arguments ne sont passés, renvoie l'actuel *(canvaswidth, " +"canvasheight)*. Sinon, redimensionne le canevas sur lequel les tortues " +"dessinent. Ne modifiez pas la fenêtre de dessin. Pour observer les parties " +"cachées du canevas, utilisez les barres de défilement. Avec cette méthode, " +"on peut rendre visible les parties d'un dessin qui étaient en dehors du " +"canevas précédemment." #: ../Doc/library/turtle.rst:1599 msgid "e.g. to search for an erroneously escaped turtle ;-)" -msgstr "" +msgstr "par exemple, chercher une tortue échappée de manière erronée" #: ../Doc/library/turtle.rst:1604 msgid "a number, x-coordinate of lower left corner of canvas" -msgstr "" +msgstr "un nombre, coordonnée x du coin inférieur gauche du canevas" #: ../Doc/library/turtle.rst:1605 msgid "a number, y-coordinate of lower left corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée y du coin inférieur gauche du canevas" #: ../Doc/library/turtle.rst:1606 msgid "a number, x-coordinate of upper right corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée x du coin supérieur droit du canevas" #: ../Doc/library/turtle.rst:1607 msgid "a number, y-coordinate of upper right corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée y du coin supérieur droit du canevas" #: ../Doc/library/turtle.rst:1609 msgid "" @@ -1575,16 +1896,22 @@ msgid "" "necessary. This performs a ``screen.reset()``. If mode \"world\" is " "already active, all drawings are redrawn according to the new coordinates." msgstr "" +"Configure un système de coordonnées défini par l'utilisateur et bascule vers " +"le mode \"world\" si nécessaire. Cela effectuera un ``screen.reset()``. Si " +"le mode \"world\" est déjà actif, tous les dessins sont re-déssinés par " +"rapport aux nouveaux coordonnées." #: ../Doc/library/turtle.rst:1613 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." msgstr "" +"**ATTENTION** : dans les systèmes de coordonnées définis par l'utilisateur, " +"les angles peuvent apparaître déformés." #: ../Doc/library/turtle.rst:1639 msgid "positive integer" -msgstr "" +msgstr "entier positif" #: ../Doc/library/turtle.rst:1641 msgid "" @@ -1592,14 +1919,17 @@ msgid "" "the time interval between two consecutive canvas updates.) The longer the " "drawing delay, the slower the animation." msgstr "" +"Défini ou renvoie le délai (*delay*) de dessin en millisecondes. (Cet " +"approximativement le temps passé entre deux mises à jour du canevas.) Plus " +"le délai est long, plus l'animation sera lente." #: ../Doc/library/turtle.rst:1645 msgid "Optional argument:" -msgstr "" +msgstr "Argument facultatif :" #: ../Doc/library/turtle.rst:1658 ../Doc/library/turtle.rst:1659 msgid "nonnegative integer" -msgstr "" +msgstr "entier non-négatif" #: ../Doc/library/turtle.rst:1661 msgid "" @@ -1609,14 +1939,22 @@ msgid "" "arguments, returns the currently stored value of n. Second argument sets " "delay value (see :func:`delay`)." msgstr "" +"Active/désactive les animations des tortues et défini le délai pour mettre à " +"jour les dessins.Si *n* est passé, seulement les n-ièmes mises à jours " +"régulières de l'écran seront vraiment effectuées. (Peut être utilisé pour " +"accélérer le dessin de graphiques complexes.) Lorsqu'appelé sans arguments, " +"renvoie la valeur actuelle de *n*. Le deuxième argument défini la valeur du " +"délai (voir :func:`delay`)." #: ../Doc/library/turtle.rst:1680 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" +"Effectue une mise à jour de *TurtleScreen*. À utiliser lorsque le traceur " +"est désactivé." #: ../Doc/library/turtle.rst:1682 msgid "See also the RawTurtle/Turtle method :func:`speed`." -msgstr "" +msgstr "Voir aussi la méthode :func:`speed` de *RawTurtle*/*Turtle*." #: ../Doc/library/turtle.rst:1690 msgid "" @@ -1624,14 +1962,19 @@ msgid "" "are provided in order to be able to pass :func:`listen` to the onclick " "method." msgstr "" +"Donne le focus à *TurtleScreen* (afin de collecter les événements clés). Des " +"arguments factices sont fournis afin de pouvoir passer :func:`listen` à la " +"méthode *onclick*." #: ../Doc/library/turtle.rst:1697 ../Doc/library/turtle.rst:1716 msgid "a function with no arguments or ``None``" -msgstr "" +msgstr "une fonction sans arguments ou ``None``" #: ../Doc/library/turtle.rst:1698 ../Doc/library/turtle.rst:1717 msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" msgstr "" +"une chaîne : clé (par exemple \"*a*\") ou clé symbole (Par exemple \"*space*" +"\")" #: ../Doc/library/turtle.rst:1700 msgid "" @@ -1639,6 +1982,10 @@ msgid "" "bindings are removed. Remark: in order to be able to register key-events, " "TurtleScreen must have the focus. (See method :func:`listen`.)" msgstr "" +"Lie *fun* à l'événement d'un relâchement d'une touche. Si *fun* est " +"``None``, les événements liés sont supprimés. Remarque : Pour pouvoir " +"enregistrer les événements lié au touches, TurtleScreen doit avoir le " +"*focus* (fenêtre en premier plan). (Voir la méthode :func:`listen`.)" #: ../Doc/library/turtle.rst:1719 msgid "" @@ -1646,12 +1993,18 @@ msgid "" "event if no key is given. Remark: in order to be able to register key-" "events, TurtleScreen must have focus. (See method :func:`listen`.)" msgstr "" +"Lie *fun* à l'événement d'un pressement de touche si *key* (touche) est " +"donné, ou n'importe quelle touche si aucune touche n'est passée. Remarque : " +"Pour pouvoir enregistrer des événements liés au touches, TurtleScreen doit " +"être en premier plan. (voir la méthode :func:`listen`.)" #: ../Doc/library/turtle.rst:1742 msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de clique de la souris sur cet " +"écran. Si *fun* est ``None``, les liens existants sont supprimés." #: ../Doc/library/turtle.rst:1745 msgid "" @@ -1665,18 +2018,21 @@ msgid "" "name ``onscreenclick``. The global function ``onclick`` is another one " "derived from the Turtle method ``onclick``." msgstr "" +"Cette méthode de TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom de ``onscreenclick``. La fonction globale ``onclick`` " +"est une autre fonction dérivée de la méthode Turtle ``onclick``." #: ../Doc/library/turtle.rst:1762 msgid "a function with no arguments" -msgstr "" +msgstr "une fonction sans arguments" #: ../Doc/library/turtle.rst:1763 msgid "a number >= 0" -msgstr "" +msgstr "un nombre supérieur ou égal à 0" #: ../Doc/library/turtle.rst:1765 msgid "Install a timer that calls *fun* after *t* milliseconds." -msgstr "" +msgstr "Installe un minuteur qui appelle *fun* après *t* millisecondes." #: ../Doc/library/turtle.rst:1782 msgid "" @@ -1685,6 +2041,11 @@ msgid "" "run from within IDLE in -n mode (No subprocess) - for interactive use of " "turtle graphics. ::" msgstr "" +"Démarre la boucle d'événements - appelle la boucle principale de Tkinter. " +"Doit être la dernière opération dan un programme graphique *turtle*. **Ne " +"dois pas** être utilisé si un script est lancé depuis IDLE avec le mode `-n` " +"(pas de sous processus) - pour une utilisation interactive des graphiques " +"*turtle* ::" #: ../Doc/library/turtle.rst:1795 ../Doc/library/turtle.rst:1796 #: ../Doc/library/turtle.rst:1808 ../Doc/library/turtle.rst:1809 @@ -1698,6 +2059,10 @@ msgid "" "input. Return the string input. If the dialog is canceled, return " "``None``. ::" msgstr "" +"Fait apparaitre une fenêtre pour entrer une chaine de caractères. Le " +"paramètre *title* est le titre de la fenêtre, *prompt* est le texte " +"expliquant quelle information écrire. Renvoie l'entrée utilisateur sous " +"forme de chaîne. Si le dialogue est annulé, renvoie ``None``. ::" #: ../Doc/library/turtle.rst:1814 msgid "" @@ -1709,16 +2074,27 @@ msgid "" "open for correction. Return the number input. If the dialog is canceled, " "return ``None``. ::" msgstr "" +"Fait apparaitre une fenêtre pour entrer un nombre. Le paramètre *title* est " +"le titre de la fenêtre, *prompt* est le texte expliquant quelle information " +"numérique écrire. *default* : Valeur par défaut, *minval* : valeur minimale " +"d'entrée, *maxval* : Valeur maximale d'entrée. Le nombre entré doit être " +"dans la gamme *minval..maxval* si ces valeurs sont données. Sinon, un indice " +"apparait et le dialogue reste ouvert pour corriger le nombre. Renvoie " +"l'entrée utilisateur sous forme de nombre. Si le dialogue est annulé, " +"renvoie ``None``. ::" #: ../Doc/library/turtle.rst:1831 msgid "one of the strings \"standard\", \"logo\" or \"world\"" msgstr "" +"l'une des chaînes de caractères : `\"standard\"`, `\"logo\"` ou `\"world\"`" #: ../Doc/library/turtle.rst:1833 msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." msgstr "" +"Règle le mode de la tortue (\"*standard*\", \"*logo*\" ou \"*world*\") et la " +"réinitialise. Si le mode n'est pas donné, le mode actuel est renvoyé." #: ../Doc/library/turtle.rst:1836 msgid "" @@ -1727,116 +2103,138 @@ msgid "" "\"world coordinates\". **Attention**: in this mode angles appear distorted " "if ``x/y`` unit-ratio doesn't equal 1." msgstr "" +"Le mode \"*standard*\" est compatible avec l'ancien :mod:`turtle`. Le mode " +"\"*logo*\" est compatible avec la plupart des graphiques *turtle* Logo. Le " +"mode \"*world*\" utilise des \"coordonnées monde\" (*world coordinates*) " +"définis par l'utilisateur. **Attention** : Dans ce mode, les angles " +"apparaissent déformés si le ratio unitaire de ``x/y`` n'est pas 1." #: ../Doc/library/turtle.rst:1842 msgid "Mode" -msgstr "" +msgstr "Mode" #: ../Doc/library/turtle.rst:1842 msgid "Initial turtle heading" -msgstr "" +msgstr "Orientation initiale de la tortue" #: ../Doc/library/turtle.rst:1842 msgid "positive angles" -msgstr "" +msgstr "angles positifs" #: ../Doc/library/turtle.rst:1844 msgid "\"standard\"" -msgstr "" +msgstr "\"standard\"" #: ../Doc/library/turtle.rst:1844 msgid "to the right (east)" -msgstr "" +msgstr "vers la droite (vers l'Est)" #: ../Doc/library/turtle.rst:1844 msgid "counterclockwise" -msgstr "" +msgstr "dans le sens inverse des aiguilles d'une montre" #: ../Doc/library/turtle.rst:1845 msgid "\"logo\"" -msgstr "" +msgstr "\"logo\"" #: ../Doc/library/turtle.rst:1845 msgid "upward (north)" -msgstr "" +msgstr "vers le haut (vers le Nord)" #: ../Doc/library/turtle.rst:1845 msgid "clockwise" -msgstr "" +msgstr "dans le sens des aiguilles d'une montre" #: ../Doc/library/turtle.rst:1857 msgid "one of the values 1.0 or 255" -msgstr "" +msgstr "l'une des valeurs suivantes : 1.0 ou 255" #: ../Doc/library/turtle.rst:1859 msgid "" "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* " "values of color triples have to be in the range 0..\\ *cmode*." msgstr "" +"Renvoie le mode de couleur (*colormode*) ou le défini à 1.0 ou 255. Les " +"valeurs *r*, *g* et *b* doivent aussi être dans la gamme `0..*cmode*`." #: ../Doc/library/turtle.rst:1879 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." msgstr "" +"Renvoie le canevas de ce TurtleScreen. Utile pour les initiés qui savent " +"quoi faire avec un canevas Tkinter." #: ../Doc/library/turtle.rst:1891 msgid "Return a list of names of all currently available turtle shapes." msgstr "" +"Renvoie une liste de noms de toutes les formes actuellement disponibles pour " +"les tortues." #: ../Doc/library/turtle.rst:1902 msgid "There are three different ways to call this function:" -msgstr "" +msgstr "Il existe trois façons différentes d’appeler cette fonction :" #: ../Doc/library/turtle.rst:1904 msgid "" "*name* is the name of a gif-file and *shape* is ``None``: Install the " "corresponding image shape. ::" msgstr "" +"*name* est le nom d'un fichier *gif* et *shape* est ``None`` : Installe la " +"forme d'image correspondante. ::" #: ../Doc/library/turtle.rst:1910 msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" msgstr "" +"Les formes d'images *ne tournent pas* lorsque la tortue tourne, donc elles " +"n'indiquent pas le cap de la tortue !" #: ../Doc/library/turtle.rst:1913 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." msgstr "" +"*name* est une chaîne de caractères arbitraire et *shape* est un *n*-uplet " +"de paires de coordonnées : Installe le polygone correspondant." #: ../Doc/library/turtle.rst:1920 msgid "" "*name* is an arbitrary string and shape is a (compound) :class:`Shape` " "object: Install the corresponding compound shape." msgstr "" +"*name* est une chaîne de caractères arbitraire et *shape* est un objet :" +"class:`Shape` (composé) : Installe la forme composée correspondante." #: ../Doc/library/turtle.rst:1923 msgid "" "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " "shapes can be used by issuing the command ``shape(shapename)``." msgstr "" +"Ajoute une forme de tortue a la liste des formes du TurtleScreen. Seulement " +"les formes enregistrées de cette façon peuvent être utilisée avec la " +"commande ``shape(shapename)``." #: ../Doc/library/turtle.rst:1929 msgid "Return the list of turtles on the screen." -msgstr "" +msgstr "Renvoie la liste des tortues présentes sur l'écran." #: ../Doc/library/turtle.rst:1939 msgid "Return the height of the turtle window. ::" -msgstr "" +msgstr "Renvoie la hauteur de la fenêtre de la tortue. ::" #: ../Doc/library/turtle.rst:1947 msgid "Return the width of the turtle window. ::" -msgstr "" +msgstr "Renvoie la largeur de la fenêtre de la tortue. ::" #: ../Doc/library/turtle.rst:1956 msgid "Methods specific to Screen, not inherited from TurtleScreen" -msgstr "" +msgstr "Méthodes spécifiques à Screen, non héritées de TurtleScreen" #: ../Doc/library/turtle.rst:1960 msgid "Shut the turtlegraphics window." -msgstr "" +msgstr "Éteins la fenêtre *turtlegraphics*." #: ../Doc/library/turtle.rst:1965 msgid "Bind bye() method to mouse clicks on the Screen." @@ -1850,6 +2248,12 @@ msgid "" "file:`turtle.cfg`. In this case IDLE's own mainloop is active also for the " "client script." msgstr "" +"Si la valeur de \"*using_IDLE*\" dans le dictionnaire de configuration est " +"``False`` (valeur par défaut), démarre aussi la boucle principale. " +"Remarque : Si IDLE est lancé avec l'option ``-n`` (Pas de sous processus), " +"Cette valeur devrait être définie à ``True`` dans :file:`turtle.cfg`. Dans " +"ce cas, la boucle principale d'IDLE est active aussi pour le script du " +"client." #: ../Doc/library/turtle.rst:1977 msgid "" @@ -1857,97 +2261,133 @@ msgid "" "are stored in the configuration dictionary and can be changed via a :file:" "`turtle.cfg` file." msgstr "" +"Définit la taille et la position de la fenêtre principale. Les valeurs par " +"défaut des arguments sont stockées dans le dictionnaire de configuration et " +"peuvent être modifiées via un fichier :file:`turtle.cfg`." #: ../Doc/library/turtle.rst:1981 msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " "default is 50% of screen" msgstr "" +"s'il s'agit d'un nombre entier, une taille en pixels, s'il s'agit d'un " +"nombre flottant, une fraction de l'écran ; la valeur par défaut est de 50 % " +"de l'écran" #: ../Doc/library/turtle.rst:1983 msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " "default is 75% of screen" msgstr "" +"s'il s'agit d'un nombre entier, la hauteur en pixels, s'il s'agit d'un " +"nombre flottant, une fraction de l'écran ; la valeur par défaut est 75 % de " +"l'écran" #: ../Doc/library/turtle.rst:1985 msgid "" "if positive, starting position in pixels from the left edge of the screen, " "if negative from the right edge, if ``None``, center window horizontally" msgstr "" +"s'il s'agit d'un nombre positif, position de départ en pixels à partir du " +"bord gauche de l'écran, s'il s'agit d'un nombre négatif, position de départ " +"en pixels à partir du bord droit, si c'est ``None``, centre la fenêtre " +"horizontalement" #: ../Doc/library/turtle.rst:1988 msgid "" "if positive, starting position in pixels from the top edge of the screen, if " "negative from the bottom edge, if ``None``, center window vertically" msgstr "" +"si positif, la position de départ en pixels depuis le haut de l'écran. Si " +"négatif, depuis de bas de l'écran. Si ``None``, Le centre de la fenêtre " +"verticalement" #: ../Doc/library/turtle.rst:2002 msgid "a string that is shown in the titlebar of the turtle graphics window" msgstr "" +"chaîne de caractères affichée dans la barre de titre de la fenêtre graphique " +"de la tortue" #: ../Doc/library/turtle.rst:2005 msgid "Set title of turtle window to *titlestring*." -msgstr "" +msgstr "Défini le titre de la fenêtre de la tortue à *titlestring*." #: ../Doc/library/turtle.rst:2013 msgid "Public classes" -msgstr "" +msgstr "Classes publiques" #: ../Doc/library/turtle.rst:2019 msgid "" "a :class:`tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" "`TurtleScreen`" msgstr "" +"un :class:`tkinter.Canvas`, un :class:`ScrolledCanvas` ou un :class:" +"`TurtleScreen`" #: ../Doc/library/turtle.rst:2022 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." msgstr "" +"Crée une tortue. Cette tortue à toutes les méthodes décrites ci-dessus comme " +"\"Méthode de Turtle/RawTurtle\"." #: ../Doc/library/turtle.rst:2028 msgid "" "Subclass of RawTurtle, has the same interface but draws on a default :class:" "`Screen` object created automatically when needed for the first time." msgstr "" +"Sous-classe de RawTurtle, à la même interface mais dessine sur un objet :" +"class:`screen` par défaut créé automatiquement lorsque nécessaire pour la " +"première fois." #: ../Doc/library/turtle.rst:2034 msgid "a :class:`tkinter.Canvas`" -msgstr "" +msgstr "un :class:`tkinter.Canvas`" #: ../Doc/library/turtle.rst:2036 msgid "" "Provides screen oriented methods like :func:`setbg` etc. that are described " "above." msgstr "" +"Fournis les méthodes liées à l'écran comme :func:`setbg`, etc. qui sont " +"décrites ci-dessus." #: ../Doc/library/turtle.rst:2041 msgid "" "Subclass of TurtleScreen, with :ref:`four methods added `." msgstr "" +"Sous-classess de TurtleScreen, avec :ref:`quatre nouvelles méthodes " +"`." #: ../Doc/library/turtle.rst:2046 msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" msgstr "" +"certain modules Tkinter pour contenir le ScrolledCanvas, c'est à dire, un " +"canevas Tkinter avec des barres de défilement ajoutées" #: ../Doc/library/turtle.rst:2049 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." msgstr "" +"Utilisé par la classe Screen, qui fournit donc automatiquement un " +"ScrolledCanvas comme terrain de jeu pour les tortues." #: ../Doc/library/turtle.rst:2054 msgid "one of the strings \"polygon\", \"image\", \"compound\"" msgstr "" +"l'une des chaînes suivantes : `\"polygon\"`, `\"image\"` ou `\"compound\"`" #: ../Doc/library/turtle.rst:2056 msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" msgstr "" +"Formes de modélisation de la structure des données. La paire ``(type_, " +"data)`` doit suivre cette spécification :" #: ../Doc/library/turtle.rst:2061 msgid "*type_*" @@ -1959,41 +2399,45 @@ msgstr "*data*" #: ../Doc/library/turtle.rst:2063 msgid "\"polygon\"" -msgstr "" +msgstr "\"polygon\"" #: ../Doc/library/turtle.rst:2063 msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" msgstr "" +"un polygone n-uplet, c'est-à-dire un n-uplet constitué de paires (chaque " +"paire définissant des coordonnées)" #: ../Doc/library/turtle.rst:2064 msgid "\"image\"" -msgstr "" +msgstr "\"image\"" #: ../Doc/library/turtle.rst:2064 msgid "an image (in this form only used internally!)" -msgstr "" +msgstr "une image (utilisée uniquement en interne sous ce format !)" #: ../Doc/library/turtle.rst:2065 msgid "\"compound\"" -msgstr "" +msgstr "\"compound\"" #: ../Doc/library/turtle.rst:2065 msgid "" "``None`` (a compound shape has to be constructed using the :meth:" "`addcomponent` method)" msgstr "" +"``None`` (une forme composée doit être construite en utilisant la méthode :" +"meth:`addcomponent`)" #: ../Doc/library/turtle.rst:2071 msgid "a polygon, i.e. a tuple of pairs of numbers" -msgstr "" +msgstr "un polygone, c.-à-d. un n-uplet de paires de nombres" #: ../Doc/library/turtle.rst:2072 msgid "a color the *poly* will be filled with" -msgstr "" +msgstr "une couleur de remplissage pour *poly*" #: ../Doc/library/turtle.rst:2073 msgid "a color for the poly's outline (if given)" -msgstr "" +msgstr "une couleur pour le contour du polygone (si elle est donnée)" #: ../Doc/library/turtle.rst:2075 msgid "Example:" @@ -2001,7 +2445,7 @@ msgstr "Exemple :" #: ../Doc/library/turtle.rst:2084 msgid "See :ref:`compoundshapes`." -msgstr "" +msgstr "Voir :ref:`compoundshapes`." #: ../Doc/library/turtle.rst:2089 msgid "" @@ -2009,42 +2453,46 @@ msgid "" "turtle graphics. May be useful for turtle graphics programs too. Derived " "from tuple, so a vector is a tuple!" msgstr "" +"Une classe de vecteur bidimensionnel, utilisée en tant que classe auxiliaire " +"pour implémenter les graphiques *turtle*. Peut être utile pour les " +"programmes graphiques faits avec *turtle*. Dérivé des *n*-uplets, donc un " +"vecteur est un *n*-uplet !" #: ../Doc/library/turtle.rst:2093 msgid "Provides (for *a*, *b* vectors, *k* number):" -msgstr "" +msgstr "Permet (pour les vecteurs *a*, *b* et le nombre *k*) :" #: ../Doc/library/turtle.rst:2095 msgid "``a + b`` vector addition" -msgstr "" +msgstr "``a + b`` addition de vecteurs" #: ../Doc/library/turtle.rst:2096 msgid "``a - b`` vector subtraction" -msgstr "" +msgstr "``a - b`` soustraction de deux vecteurs" #: ../Doc/library/turtle.rst:2097 msgid "``a * b`` inner product" -msgstr "" +msgstr "``a * b`` produit scalaire" #: ../Doc/library/turtle.rst:2098 msgid "``k * a`` and ``a * k`` multiplication with scalar" -msgstr "" +msgstr "``k * a`` et ``a * k`` multiplication avec un scalaire" #: ../Doc/library/turtle.rst:2099 msgid "``abs(a)`` absolute value of a" -msgstr "" +msgstr "``abs(a)`` valeur absolue de a" #: ../Doc/library/turtle.rst:2100 msgid "``a.rotate(angle)`` rotation" -msgstr "" +msgstr "``a.rotate(angle)`` rotation" #: ../Doc/library/turtle.rst:2104 msgid "Help and configuration" -msgstr "" +msgstr "Aide et configuration" #: ../Doc/library/turtle.rst:2107 msgid "How to use help" -msgstr "" +msgstr "Utilisation de l'aide" #: ../Doc/library/turtle.rst:2109 msgid "" @@ -2052,32 +2500,44 @@ msgid "" "extensively via docstrings. So these can be used as online-help via the " "Python help facilities:" msgstr "" +"Les méthodes publiques des classes *Screen* et *Turtle* sont largement " +"documentées dans les *docstrings*. Elles peuvent donc être utilisées comme " +"aide en ligne via les fonctions d'aide de Python :" #: ../Doc/library/turtle.rst:2113 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." msgstr "" +"Lors de l'utilisation d'IDLE, des info-bulles apparaissent avec la signature " +"et les premières lignes de *docstring* de la fonction/méthode appelée." #: ../Doc/library/turtle.rst:2116 msgid "Calling :func:`help` on methods or functions displays the docstrings::" msgstr "" +"L'appel de :func:`help` sur les méthodes ou fonctions affichera les " +"*docstrings* ::" #: ../Doc/library/turtle.rst:2147 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" msgstr "" +"Les *docstrings* des fonctions qui sont dérivées des méthodes ont une forme " +"modifiée ::" #: ../Doc/library/turtle.rst:2181 msgid "" "These modified docstrings are created automatically together with the " "function definitions that are derived from the methods at import time." msgstr "" +"Ces chaînes de documents modifiées sont créées automatiquement avec les " +"définitions de fonctions qui sont dérivées des méthodes au moment de " +"l'importation." #: ../Doc/library/turtle.rst:2186 msgid "Translation of docstrings into different languages" -msgstr "" +msgstr "Traduction de chaînes de documents en différentes langues" #: ../Doc/library/turtle.rst:2188 msgid "" @@ -2085,10 +2545,13 @@ msgid "" "names and the values of which are the docstrings of the public methods of " "the classes Screen and Turtle." msgstr "" +"Il est utile de créer un dictionnaire dont les clés sont les noms des " +"méthodes et les valeurs sont les *docstrings* de méthodes publiques des " +"classes Screen et Turtle." #: ../Doc/library/turtle.rst:2194 msgid "a string, used as filename" -msgstr "" +msgstr "une chaîne de caractères, utilisée en tant que nom de fichier" #: ../Doc/library/turtle.rst:2196 msgid "" @@ -2098,6 +2561,11 @@ msgid "" "Python script :file:`{filename}.py`. It is intended to serve as a template " "for translation of the docstrings into different languages." msgstr "" +"Crée et écrit un dictionnaire de *docstrings* dans un script Python avec le " +"nom donné. Cette fonction doit être appelée explicitement (elle n'est pas " +"utilisée par les classes graphiques de *turtle*). Ce dictionnaire de " +"*doctrings* sera écrit dans le script Python :file:`{filename}.py`. Il sert " +"de modèle pour la traduction des *docstrings* dans différentes langues." #: ../Doc/library/turtle.rst:2202 msgid "" @@ -2105,6 +2573,10 @@ msgid "" "native language, you have to translate the docstrings and save the resulting " "file as e.g. :file:`turtle_docstringdict_german.py`." msgstr "" +"Si vous (ou vos étudiants) veulent utiliser :mod:`turtle` avec de l'aide en " +"ligne dans votre langue natale, vous devez traduire les *docstrings* et " +"sauvegarder les fichiers résultants en, par exemple, :file:" +"`turtle_docstringdict_german.py`." #: ../Doc/library/turtle.rst:2206 msgid "" @@ -2112,22 +2584,31 @@ msgid "" "dictionary will be read in at import time and will replace the original " "English docstrings." msgstr "" +"Si vous avez une entrée appropriée dans votre fichier :file:`turtle.cfg`, ce " +"dictionnaire est lu au moment de l'importation et remplace la *docstrings* " +"originale en anglais par cette entrée." #: ../Doc/library/turtle.rst:2209 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" msgstr "" +"Au moment de l'écriture de cette documentation, il n'existe seulement que " +"des *docstrings* en Allemand et Italien. (Merci de faire vos demandes à " +"glingl@aon.at.)" #: ../Doc/library/turtle.rst:2215 msgid "How to configure Screen and Turtles" -msgstr "" +msgstr "Comment configurer *Screen* et *Turtle*" #: ../Doc/library/turtle.rst:2217 msgid "" "The built-in default configuration mimics the appearance and behaviour of " "the old turtle module in order to retain best possible compatibility with it." msgstr "" +"La configuration par défaut imite l'apparence et le comportement de l'ancien " +"module *turtle* pour pouvoir maintenir la meilleure compatibilité avec celui-" +"ci." #: ../Doc/library/turtle.rst:2220 msgid "" @@ -2137,33 +2618,44 @@ msgid "" "be read at import time and modify the configuration according to its " "settings." msgstr "" +"Si vous voulez utiliser une configuration différente qui reflète mieux les " +"fonctionnalités de ce module ou qui correspond mieux à vos besoins, par " +"exemple pour un cours, vous pouvez préparer un ficher de configuration " +"``turtle.cfg`` qui sera lu au moment de l'importation et qui modifiera la " +"configuration en utilisant les paramètres du fichier." #: ../Doc/library/turtle.rst:2225 msgid "" "The built in configuration would correspond to the following turtle.cfg::" -msgstr "" +msgstr "La configuration native correspondrait au *turtle.cfg* suivant ::" #: ../Doc/library/turtle.rst:2248 msgid "Short explanation of selected entries:" -msgstr "" +msgstr "Brève explication des entrées sélectionnées :" #: ../Doc/library/turtle.rst:2250 msgid "" "The first four lines correspond to the arguments of the :meth:`Screen.setup` " "method." msgstr "" +"Les quatre premières lignes correspondent aux arguments de la méthode :meth:" +"`Screen.setup`." #: ../Doc/library/turtle.rst:2252 msgid "" "Line 5 and 6 correspond to the arguments of the method :meth:`Screen." "screensize`." msgstr "" +"Les lignes 5 et 6 correspondent aux arguments de la méthode :meth:`Screen." +"screensize`." #: ../Doc/library/turtle.rst:2254 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." msgstr "" +"*shape* peut être n'importe quelle forme native, par exemple *arrow*, " +"*turtle* etc. Pour plus d'informations, essayez ``help(shape)``." #: ../Doc/library/turtle.rst:2256 msgid "" @@ -2171,12 +2663,18 @@ msgid "" "to write ``fillcolor = \"\"`` (but all nonempty strings must not have quotes " "in the cfg-file)." msgstr "" +"Si vous ne voulez utiliser aucune couleur de remplissage (c'est-à-dire " +"rendre la tortue transparente), vous devez écrire ``fillcolor = \"\"`` (mais " +"toutes les chaînes non vides ne doivent pas avoir de guillemets dans le " +"fichier *cfg*)." #: ../Doc/library/turtle.rst:2259 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" +"Si vous voulez refléter l'état de la tortue, vous devez utiliser " +"``resizemode = auto``." #: ../Doc/library/turtle.rst:2261 msgid "" @@ -2184,6 +2682,10 @@ msgid "" "`turtle_docstringdict_italian.py` will be loaded at import time (if present " "on the import path, e.g. in the same directory as :mod:`turtle`." msgstr "" +"Si vous définissez par exemple ``language = italian``, le dictionnaire de " +"*docstrings* :file:`turtle.docstringdict_italian.py` sera chargé au moment " +"de l'importation (si présent dans les chemins d'importations, par exemple " +"dans le même dossier que :mod:`turtle`)." #: ../Doc/library/turtle.rst:2264 msgid "" @@ -2192,6 +2694,10 @@ msgid "" "docstrings to function-docstrings will delete these names from the " "docstrings." msgstr "" +"Les entrées *exampleturtle* et *examplescreen* définissent les noms de ces " +"objets tels qu'ils apparaissent dans les *docstrings*. La transformation des " +"méthodes-*docstrings* vers fonction-*docstrings* supprimera ces noms des " +"*docstrings*." #: ../Doc/library/turtle.rst:2268 msgid "" @@ -2199,6 +2705,9 @@ msgid "" "n switch (\"no subprocess\"). This will prevent :func:`exitonclick` to " "enter the mainloop." msgstr "" +"*using_IDLE* : définissez ceci à ``True`` si vous travaillez régulièrement " +"avec IDLE et son option ``-n`` (pas de sous processus). Cela évitera " +"l'entrée de :func:`exitonclick` dans la boucle principale." #: ../Doc/library/turtle.rst:2272 msgid "" @@ -2206,6 +2715,9 @@ msgid "" "is stored and an additional one in the current working directory. The " "latter will override the settings of the first one." msgstr "" +"Il peut y avoir un :file:turtle.cfg` dans le dossier où se situe :mod:" +"`turtle` et un autre dans le dossier de travail courant. Ce dernier prendra " +"le dessus." #: ../Doc/library/turtle.rst:2276 msgid "" @@ -2213,31 +2725,42 @@ msgid "" "You can study it as an example and see its effects when running the demos " "(preferably not from within the demo-viewer)." msgstr "" +"Le dossier :file:`Lib/turtledemo` contient un fichier :file:`turtle.cfg`. " +"Vous pouvez le prendre comme exemple et voir ses effets lorsque vous lancez " +"les démos (il est préférable de ne pas le faire depuis la visionneuse de " +"démos)." #: ../Doc/library/turtle.rst:2282 msgid ":mod:`turtledemo` --- Demo scripts" -msgstr "" +msgstr ":mod:`turtledemo` — Scripts de démonstration" #: ../Doc/library/turtle.rst:2287 msgid "" "The :mod:`turtledemo` package includes a set of demo scripts. These scripts " "can be run and viewed using the supplied demo viewer as follows::" msgstr "" +"Le paquet :mod:`turtledemo` inclut un ensemble de scripts de démonstration. " +"Ces scripts peuvent être lancés et observés en utilisant la visionneuse de " +"démos comme suit ::" #: ../Doc/library/turtle.rst:2292 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" +"Alternativement, vous pouvez lancer les scripts de démo individuellement. " +"Par exemple ::" #: ../Doc/library/turtle.rst:2296 msgid "The :mod:`turtledemo` package directory contains:" -msgstr "" +msgstr "Le paquet :mod:`turtledemo` contient :" #: ../Doc/library/turtle.rst:2298 msgid "" "A demo viewer :file:`__main__.py` which can be used to view the sourcecode " "of the scripts and run them at the same time." msgstr "" +"Une visionneuse :file:`__main__.py` qui peut être utilisée pour lire le code " +"source de ces scripts et pour les faire tourner en même temps." #: ../Doc/library/turtle.rst:2300 msgid "" @@ -2245,16 +2768,21 @@ msgid "" "module. Examples can be accessed via the Examples menu. They can also be " "run standalone." msgstr "" +"Plusieurs script présentent les différentes fonctionnalités du module :mod:" +"`turtle`. Les exemples peuvent être consultés via le menu *Examples*. Ils " +"peuvent aussi être lancés de manière autonome." #: ../Doc/library/turtle.rst:2303 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." msgstr "" +"Un fichier exemple :file:`turtle.cfg` montrant comment rédiger de tels " +"fichiers." #: ../Doc/library/turtle.rst:2306 msgid "The demo scripts are:" -msgstr "" +msgstr "Les scripts de démonstration sont :" #: ../Doc/library/turtle.rst:2311 msgid "Name" @@ -2266,226 +2794,236 @@ msgstr "Description" #: ../Doc/library/turtle.rst:2311 msgid "Features" -msgstr "" +msgstr "Caractéristiques" #: ../Doc/library/turtle.rst:2313 msgid "bytedesign" -msgstr "" +msgstr "*bytedesign*" #: ../Doc/library/turtle.rst:2313 msgid "complex classical turtle graphics pattern" -msgstr "" +msgstr "motif complexe de la tortue graphique classique" #: ../Doc/library/turtle.rst:2313 msgid ":func:`tracer`, delay, :func:`update`" -msgstr "" +msgstr ":func:`tracer`, temps mort, :func:`update`" #: ../Doc/library/turtle.rst:2316 msgid "chaos" -msgstr "" +msgstr "chaos" #: ../Doc/library/turtle.rst:2316 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" msgstr "" +"graphiques dynamiques de Verhulst, cela démontre que les calculs de " +"l'ordinateur peuvent générer des résultats qui vont parfois à l'encontre du " +"bon sens" #: ../Doc/library/turtle.rst:2316 msgid "world coordinates" -msgstr "" +msgstr "*world coordinates*" #: ../Doc/library/turtle.rst:2322 msgid "clock" -msgstr "" +msgstr "*clock*" #: ../Doc/library/turtle.rst:2322 msgid "analog clock showing time of your computer" -msgstr "" +msgstr "horloge analogique indiquant l'heure de votre ordinateur" #: ../Doc/library/turtle.rst:2322 msgid "turtles as clock's hands, ontimer" -msgstr "" +msgstr "tortues sous forme des aiguilles d'horloge, sur minuterie" #: ../Doc/library/turtle.rst:2325 msgid "colormixer" -msgstr "" +msgstr "*colormixer* (mélangeur de couleurs)" #: ../Doc/library/turtle.rst:2325 msgid "experiment with r, g, b" -msgstr "" +msgstr "des expériences en rouge, vert, bleu" #: ../Doc/library/turtle.rst:2327 msgid "forest" -msgstr "" +msgstr "*forest* (forêt)" #: ../Doc/library/turtle.rst:2327 msgid "3 breadth-first trees" -msgstr "" +msgstr "3 arbres tracés par un parcours en largeur" #: ../Doc/library/turtle.rst:2327 msgid "randomization" -msgstr "" +msgstr "*randomization* (répartition aléatoire)" #: ../Doc/library/turtle.rst:2329 msgid "fractalcurves" -msgstr "" +msgstr "*fractalcurves*" #: ../Doc/library/turtle.rst:2329 msgid "Hilbert & Koch curves" -msgstr "" +msgstr "Courbes de Hilbert et de Koch" #: ../Doc/library/turtle.rst:2329 msgid "recursion" -msgstr "" +msgstr "récursivité" #: ../Doc/library/turtle.rst:2331 msgid "lindenmayer" -msgstr "" +msgstr "*lindenmayer*" #: ../Doc/library/turtle.rst:2331 msgid "ethnomathematics (indian kolams)" -msgstr "" +msgstr "ethnomathématiques (kolams indiens)" #: ../Doc/library/turtle.rst:2331 msgid "L-System" -msgstr "" +msgstr "*L-Système*" #: ../Doc/library/turtle.rst:2334 msgid "minimal_hanoi" -msgstr "" +msgstr "*minimal_hanoi*" #: ../Doc/library/turtle.rst:2334 msgid "Towers of Hanoi" -msgstr "" +msgstr "Tours de Hanoï" #: ../Doc/library/turtle.rst:2334 msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" msgstr "" +"Des tortues rectangulaires à la place des disques (*shape*, *shapesize*)" #: ../Doc/library/turtle.rst:2338 msgid "nim" -msgstr "" +msgstr "*nim*" #: ../Doc/library/turtle.rst:2338 msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" +"jouez au classique jeu de *nim* avec trois piles de bâtons contre " +"l'ordinateur." #: ../Doc/library/turtle.rst:2338 msgid "turtles as nimsticks, event driven (mouse, keyboard)" msgstr "" +"tortues en tant que bâtons de *nim*, géré par des événements (clavier et " +"souris)" #: ../Doc/library/turtle.rst:2342 msgid "paint" -msgstr "" +msgstr "*paint* (peinture)" #: ../Doc/library/turtle.rst:2342 msgid "super minimalistic drawing program" -msgstr "" +msgstr "programme de dessin extra minimaliste" #: ../Doc/library/turtle.rst:2345 msgid "peace" -msgstr "" +msgstr "*peace* (paix)" #: ../Doc/library/turtle.rst:2345 msgid "elementary" -msgstr "" +msgstr "basique" #: ../Doc/library/turtle.rst:2345 msgid "turtle: appearance and animation" -msgstr "" +msgstr "tortue : apparence et animation" #: ../Doc/library/turtle.rst:2348 msgid "penrose" -msgstr "" +msgstr "*penrose*" #: ../Doc/library/turtle.rst:2348 msgid "aperiodic tiling with kites and darts" -msgstr "" +msgstr "tuiles apériodiques avec cerfs-volants et fléchettes" #: ../Doc/library/turtle.rst:2351 msgid "planet_and_moon" -msgstr "" +msgstr "*planet_and_moon* (planète et lune)" #: ../Doc/library/turtle.rst:2351 msgid "simulation of gravitational system" -msgstr "" +msgstr "simulation d'un système gravitationnel" #: ../Doc/library/turtle.rst:2351 msgid "compound shapes, :class:`Vec2D`" -msgstr "" +msgstr "formes composées, :class:`Vec2D`" #: ../Doc/library/turtle.rst:2354 msgid "round_dance" -msgstr "" +msgstr "*round_dance*" #: ../Doc/library/turtle.rst:2354 msgid "dancing turtles rotating pairwise in opposite direction" -msgstr "" +msgstr "tortues dansantes tournant par paires en sens inverse" #: ../Doc/library/turtle.rst:2354 msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" msgstr "" +"formes composées, clones de la forme (*shapesize*), rotation, " +"*get_shapepoly*, *update*" #: ../Doc/library/turtle.rst:2358 msgid "sorting_animate" -msgstr "" +msgstr "*sorting_animate*" #: ../Doc/library/turtle.rst:2358 msgid "visual demonstration of different sorting methods" -msgstr "" +msgstr "démonstration visuelle des différentes méthodes de classement" #: ../Doc/library/turtle.rst:2358 msgid "simple alignment, randomization" -msgstr "" +msgstr "alignement simple, répartition aléatoire" #: ../Doc/library/turtle.rst:2361 msgid "tree" -msgstr "" +msgstr "*tree* (arbre)" #: ../Doc/library/turtle.rst:2361 msgid "a (graphical) breadth first tree (using generators)" -msgstr "" +msgstr "un arbre (tracé) par un parcours en largeur (à l’aide de générateurs)" #: ../Doc/library/turtle.rst:2364 msgid "two_canvases" -msgstr "" +msgstr "*two_canvases* (deux toiles)" #: ../Doc/library/turtle.rst:2364 msgid "simple design" -msgstr "" +msgstr "design simple" #: ../Doc/library/turtle.rst:2364 msgid "turtles on two canvases" -msgstr "" +msgstr "tortues sur deux canevas" #: ../Doc/library/turtle.rst:2367 msgid "wikipedia" -msgstr "" +msgstr "*wikipedia*" #: ../Doc/library/turtle.rst:2367 msgid "a pattern from the wikipedia article on turtle graphics" -msgstr "" +msgstr "un motif issu de l'article de *wikipedia* sur la tortue graphique" #: ../Doc/library/turtle.rst:2367 msgid ":func:`clone`, :func:`undo`" -msgstr "" +msgstr ":func:`clone`, :func:`undo`" #: ../Doc/library/turtle.rst:2370 msgid "yinyang" -msgstr "" +msgstr "*yinyang*" #: ../Doc/library/turtle.rst:2370 msgid "another elementary example" -msgstr "" +msgstr "un autre exemple élémentaire" #: ../Doc/library/turtle.rst:2373 msgid "Have fun!" -msgstr "" +msgstr "Amusez-vous !" #: ../Doc/library/turtle.rst:2377 msgid "Changes since Python 2.6" -msgstr "" +msgstr "Modifications depuis Python 2.6" #: ../Doc/library/turtle.rst:2379 msgid "" @@ -2496,6 +3034,12 @@ msgid "" "2.6 these methods were merely duplications of the corresponding :class:" "`TurtleScreen`/:class:`Screen`-methods.)" msgstr "" +"Les méthodes :meth:`Turtle.tracer`, :meth:`Turtle.window_width` et :meth:" +"`Turtle.window_height` ont été supprimées. Seule :class:`Screen` définit " +"maintenant des méthodes avec ces noms et fonctionnalités. Les fonction " +"dérivées de ces méthodes restent disponibles. (En réalité, déjà en Python " +"2.6 ces méthodes n'étaient que de simples duplicatas des méthodes " +"correspondantes des classes :class:`TurtleScreen`/:class:`Screen`)" #: ../Doc/library/turtle.rst:2387 msgid "" @@ -2503,6 +3047,9 @@ msgid "" "`begin_fill` and :meth:`end_fill` have changed slightly: now every filling-" "process must be completed with an ``end_fill()`` call." msgstr "" +"La méthode :meth:`Turtle.fill` à été supprimée. Le fonctionnement de :meth:" +"`begin_fill` et :meth:`end_fill` a légèrement changé : chaque opération de " +"remplissage doit maintenant se terminer par un appel à ``end_fill()``." #: ../Doc/library/turtle.rst:2392 msgid "" @@ -2510,10 +3057,13 @@ msgid "" "``True`` if a filling process is under way, ``False`` otherwise. This " "behaviour corresponds to a ``fill()`` call without arguments in Python 2.6." msgstr "" +"La méthode :meth:`Turtle.filling` a été ajoutée. Elle renvoie le booléen " +"``True`` si une opération de remplissage est en cours,``False`` sinon. Ce " +"comportement correspond à un appel à ``fill()`` sans argument en Python 2.6." #: ../Doc/library/turtle.rst:2398 msgid "Changes since Python 3.0" -msgstr "" +msgstr "Modifications depuis Python 3.0" #: ../Doc/library/turtle.rst:2400 msgid "" @@ -2523,6 +3073,12 @@ msgid "" "`Turtle.tiltangle` has been enhanced in functionality: it now can be used to " "get or set the tiltangle. :meth:`Turtle.settiltangle` has been deprecated." msgstr "" +"Les méthodes :meth:`Turtle.shearfactor`, :meth:`Turtle.shapetransform` et :" +"meth:`Turtle.get_shapepoly` on été ajoutées. Ainsi, la gamme complète des " +"transformations linéaires habituelles est maintenant disponible pour " +"modifier les formes de la tortue. La méthode :meth:`Turtle.tiltangle` a été " +"améliorée : Elle peut maintenant récupérer ou définir l'angle " +"d'inclinaison. :meth:`Turtle.settiltangle` est désormais obsolète." #: ../Doc/library/turtle.rst:2407 msgid "" @@ -2530,6 +3086,10 @@ msgid "" "`Screen.onkey` which in fact binds actions to the keyrelease event. " "Accordingly the latter has got an alias: :meth:`Screen.onkeyrelease`." msgstr "" +"La méthode :meth:`Screen.onkeypress` a été ajoutée en complément à :meth:" +"`Screen.onkey` qui lie des actions à des relâchements de touches. En " +"conséquence, ce dernier s'est vu doté d'un alias : :meth:`Screen." +"onkeyrelease`." #: ../Doc/library/turtle.rst:2411 msgid "" @@ -2537,6 +3097,9 @@ msgid "" "with Screen and Turtle objects one must not additionally import :func:" "`mainloop` anymore." msgstr "" +"La méthode :meth:`Screen.mainloop` à été ajoutée. Ainsi, lorsque vous " +"travaillez uniquement avec des objets Screen et Turtle, vous n'avez plus " +"besoin d'importer :func:`mainloop`." #: ../Doc/library/turtle.rst:2415 msgid "" @@ -2544,9 +3107,14 @@ msgid "" "numinput`. These popup input dialogs and return strings and numbers " "respectively." msgstr "" +"Deux méthodes d'entrées ont été ajoutées : :meth:`Screen.textinput` et :meth:" +"`Screen.numinput`. Ces dialogues d'entrées renvoient des chaînes de " +"caractères et des nombres respectivement." #: ../Doc/library/turtle.rst:2419 msgid "" "Two example scripts :file:`tdemo_nim.py` and :file:`tdemo_round_dance.py` " "have been added to the :file:`Lib/turtledemo` directory." msgstr "" +"Deux exemples de scripts :file:`tdemo_nim.py` et :file:`tdemo_round_dance." +"py` ont été ajoutés au répertoire :file:`Lib/turtledemo`." diff --git a/library/types.po b/library/types.po index d500ea53a..2ea986027 100644 --- a/library/types.po +++ b/library/types.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" "PO-Revision-Date: 2018-09-28 10:04+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -24,7 +24,7 @@ msgstr "**Code source :** :source:`Lib/types.py`" #: ../Doc/library/types.rst:11 msgid "" -"This module defines utility function to assist in dynamic creation of new " +"This module defines utility functions to assist in dynamic creation of new " "types." msgstr "" @@ -104,12 +104,13 @@ msgstr "" #: ../Doc/library/types.rst:69 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr ":pep:`3115` --- Méta-classes dans Python 3000" +msgstr ":pep:`3115` — Méta-classes dans Python 3000" #: ../Doc/library/types.rst:70 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" -"introduction de la fonction automatique ``__prepare__`` de l'espace de noms" +"introduction de la fonction automatique ``__prepare__`` de l'espace de " +"nommage" #: ../Doc/library/types.rst:74 msgid "Resolve MRO entries dynamically as specified by :pep:`560`." @@ -128,6 +129,7 @@ msgstr "" #: ../Doc/library/types.rst:87 msgid ":pep:`560` - Core support for typing module and generic types" msgstr "" +":pep:`560` — Gestion de base pour les types modules et les types génériques" #: ../Doc/library/types.rst:91 msgid "Standard Interpreter Types" diff --git a/library/typing.po b/library/typing.po index 7f265ea52..3735711ca 100644 --- a/library/typing.po +++ b/library/typing.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-13 15:13+0200\n" +"POT-Creation-Date: 2019-06-19 22:32+0200\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/typing.rst:2 msgid ":mod:`typing` --- Support for type hints" -msgstr "" +msgstr ":mod:`typing` — Prise en charge des annotations de type" #: ../Doc/library/typing.rst:9 msgid "**Source code:** :source:`Lib/typing.py`" @@ -43,6 +43,8 @@ msgstr "" msgid "" "The function below takes and returns a string and is annotated as follows::" msgstr "" +"La fonction ci-dessous prend et renvoie une chaîne de caractères, et est " +"annotée comme suit ::" #: ../Doc/library/typing.rst:32 msgid "" @@ -50,10 +52,13 @@ msgid "" "type :class:`str` and the return type :class:`str`. Subtypes are accepted as " "arguments." msgstr "" +"La fonction ``greeting`` s'attend à ce que l'argument ``name`` soit de type :" +"class:`str` et le type de retour :class:`str`. Les sous-types sont acceptés " +"comme arguments." #: ../Doc/library/typing.rst:37 msgid "Type aliases" -msgstr "" +msgstr "Alias de type" #: ../Doc/library/typing.rst:39 msgid "" @@ -66,26 +71,34 @@ msgid "" "Type aliases are useful for simplifying complex type signatures. For " "example::" msgstr "" +"Les alias de type sont utiles pour simplifier les signatures complexes. Par " +"exemple ::" #: ../Doc/library/typing.rst:69 msgid "" "Note that ``None`` as a type hint is a special case and is replaced by " "``type(None)``." msgstr "" +"Notez que ``None`` comme indication de type est un cas particulier et est " +"remplacé par ``type(None)``." #: ../Doc/library/typing.rst:75 msgid "NewType" -msgstr "" +msgstr "*NewType*" #: ../Doc/library/typing.rst:77 msgid "Use the :func:`NewType` helper function to create distinct types::" msgstr "" +"Aidez-vous de la fonction :func:`NewType` pour créer des types distincts ::" #: ../Doc/library/typing.rst:84 msgid "" "The static type checker will treat the new type as if it were a subclass of " "the original type. This is useful in helping catch logical errors::" msgstr "" +"Le vérificateur de type statique traite le nouveau type comme s'il " +"s'agissait d'une sous-classe du type original. C'est utile pour aider à " +"détecter les erreurs logiques ::" #: ../Doc/library/typing.rst:96 msgid "" @@ -94,6 +107,11 @@ msgid "" "pass in a ``UserId`` wherever an ``int`` might be expected, but will prevent " "you from accidentally creating a ``UserId`` in an invalid way::" msgstr "" +"Vous pouvez toujours effectuer toutes les opérations applicables à un entier " +"(type ``int``) sur une variable de type ``UserId``, mais le résultat sera " +"toujours de type ``int``. Ceci vous permet de passer un ``UserId`` partout " +"où un ``int`` est attendu, mais vous empêche de créer accidentellement un " +"``UserId`` d'une manière invalide ::" #: ../Doc/library/typing.rst:104 msgid "" @@ -109,26 +127,33 @@ msgid "" "More precisely, the expression ``some_value is Derived(some_value)`` is " "always true at runtime." msgstr "" +"Plus précisément, l'expression ``some_value is Derived(some_value)`` est " +"toujours vraie au moment de l'exécution." #: ../Doc/library/typing.rst:113 msgid "" "This also means that it is not possible to create a subtype of ``Derived`` " "since it is an identity function at runtime, not an actual type::" msgstr "" +"Cela signifie également qu'il n'est pas possible de créer un sous-type de " +"``Derived`` puisqu'il s'agit d'une fonction d'identité au moment de " +"l'exécution, pas d'un type réel ::" #: ../Doc/library/typing.rst:123 msgid "" "However, it is possible to create a :func:`NewType` based on a 'derived' " "``NewType``::" msgstr "" +"Cependant, il est possible de créer un :func:`NewType` basé sur un " +"``NewType`` « dérivé » ::" #: ../Doc/library/typing.rst:131 msgid "and typechecking for ``ProUserId`` will work as expected." -msgstr "" +msgstr "et la vérification de type pour ``ProUserId`` fonctionne comme prévu." #: ../Doc/library/typing.rst:133 msgid "See :pep:`484` for more details." -msgstr "" +msgstr "Voir la :pep:`484` pour plus de détails." #: ../Doc/library/typing.rst:137 msgid "" @@ -137,6 +162,11 @@ msgid "" "treat ``Alias`` as being *exactly equivalent* to ``Original`` in all cases. " "This is useful when you want to simplify complex type signatures." msgstr "" +"Rappelons que l'utilisation d'un alias de type déclare que deux types sont " +"*équivalents* l'un à l'autre. Écrire ``Alias = Original`` fait que le " +"vérificateur de type statique traite ``Alias`` comme étant *exactement " +"équivalent* à ``Original`` dans tous les cas. C'est utile lorsque vous " +"voulez simplifier des signatures complexes." #: ../Doc/library/typing.rst:142 msgid "" @@ -147,16 +177,26 @@ msgid "" "``Derived`` is expected. This is useful when you want to prevent logic " "errors with minimal runtime cost." msgstr "" +"En revanche, ``NewType`` déclare qu'un type est un *sous-type* d'un autre. " +"Écrire ``Derived = NewType('Derived', Original)`` fait en sorte que le " +"vérificateur de type statique traite ``Derived`` comme une *sous-classe* de " +"``Original``, ce qui signifie qu'une valeur de type ``Original`` ne peut " +"être utilisée dans les endroits où une valeur de type ``Derived`` est " +"prévue. C'est utile lorsque vous voulez éviter les erreurs logiques avec un " +"coût d'exécution minimal." #: ../Doc/library/typing.rst:152 msgid "Callable" -msgstr "" +msgstr "Appelable" #: ../Doc/library/typing.rst:154 msgid "" "Frameworks expecting callback functions of specific signatures might be type " "hinted using ``Callable[[Arg1Type, Arg2Type], ReturnType]``." msgstr "" +"Les cadriciels (*frameworks* en anglais) qui attendent des fonctions de " +"rappel ayant des signatures spécifiques peuvent être typés en utilisant " +"``Callable[[Arg1Type, Arg2Type], ReturnType]``." #: ../Doc/library/typing.rst:157 msgid "For example::" @@ -168,82 +208,109 @@ msgid "" "the call signature by substituting a literal ellipsis for the list of " "arguments in the type hint: ``Callable[..., ReturnType]``." msgstr "" +"Il est possible de déclarer le type de retour d'un appelable sans spécifier " +"la signature de l'appel en indiquant des points de suspension à la liste des " +"arguments dans l'indice de type : ``Callable[..., ReturnType]``." -#: ../Doc/library/typing.rst:173 +#: ../Doc/library/typing.rst:175 msgid "Generics" -msgstr "" +msgstr "Génériques" -#: ../Doc/library/typing.rst:175 +#: ../Doc/library/typing.rst:177 msgid "" "Since type information about objects kept in containers cannot be statically " "inferred in a generic way, abstract base classes have been extended to " "support subscription to denote expected types for container elements." msgstr "" +"Comme les informations de type sur les objets conservés dans des conteneurs " +"ne peuvent pas être déduites statiquement de manière générique, les classes " +"de base abstraites ont été étendues pour prendre en charge la sélection " +"(*subscription* en anglais) et indiquer les types attendus pour les éléments " +"de conteneur." -#: ../Doc/library/typing.rst:186 +#: ../Doc/library/typing.rst:188 msgid "" -"Generics can be parametrized by using a new factory available in typing " +"Generics can be parameterized by using a new factory available in typing " "called :class:`TypeVar`." msgstr "" +"Les génériques peuvent être paramétrés en utilisant une nouvelle fabrique " +"(au sens des patrons de conception) disponible en tapant :class:`TypeVar`." -#: ../Doc/library/typing.rst:200 +#: ../Doc/library/typing.rst:202 msgid "User-defined generic types" -msgstr "" +msgstr "Types génériques définis par l'utilisateur" -#: ../Doc/library/typing.rst:202 +#: ../Doc/library/typing.rst:204 msgid "A user-defined class can be defined as a generic class." msgstr "" +"Une classe définie par l'utilisateur peut être définie comme une classe " +"générique." -#: ../Doc/library/typing.rst:228 +#: ../Doc/library/typing.rst:230 msgid "" "``Generic[T]`` as a base class defines that the class ``LoggedVar`` takes a " "single type parameter ``T`` . This also makes ``T`` valid as a type within " "the class body." msgstr "" +"``Generic[T]`` en tant que classe de base définit que la classe " +"``LoggedVar`` prend un paramètre de type unique ``T``. Ceci rend également " +"``T`` valide en tant que type dans le corps de la classe." -#: ../Doc/library/typing.rst:232 +#: ../Doc/library/typing.rst:234 msgid "" "The :class:`Generic` base class uses a metaclass that defines :meth:" "`__getitem__` so that ``LoggedVar[t]`` is valid as a type::" msgstr "" -#: ../Doc/library/typing.rst:241 +#: ../Doc/library/typing.rst:243 msgid "" "A generic type can have any number of type variables, and type variables may " "be constrained::" msgstr "" +"Un type générique peut avoir un nombre quelconque de variables de type et " +"vous pouvez fixer des contraintes sur les variables de type ::" -#: ../Doc/library/typing.rst:253 +#: ../Doc/library/typing.rst:255 msgid "" "Each type variable argument to :class:`Generic` must be distinct. This is " "thus invalid::" msgstr "" +"Chaque argument de variable de type :class:`Generic` doit être distinct. " +"Ceci n'est donc pas valable ::" -#: ../Doc/library/typing.rst:264 +#: ../Doc/library/typing.rst:266 msgid "You can use multiple inheritance with :class:`Generic`::" -msgstr "" +msgstr "Vous pouvez utiliser l'héritage multiple avec :class:`Generic` ::" -#: ../Doc/library/typing.rst:273 +#: ../Doc/library/typing.rst:275 msgid "" "When inheriting from generic classes, some type variables could be fixed::" msgstr "" +"Lors de l'héritage de classes génériques, certaines variables de type " +"peuvent être corrigées ::" -#: ../Doc/library/typing.rst:282 +#: ../Doc/library/typing.rst:284 msgid "In this case ``MyDict`` has a single parameter, ``T``." -msgstr "" +msgstr "Dans ce cas, ``MyDict`` a un seul paramètre, ``T``." -#: ../Doc/library/typing.rst:284 +#: ../Doc/library/typing.rst:286 msgid "" "Using a generic class without specifying type parameters assumes :data:`Any` " "for each position. In the following example, ``MyIterable`` is not generic " "but implicitly inherits from ``Iterable[Any]``::" msgstr "" +"L'utilisation d'une classe générique sans spécifier de paramètres de type " +"suppose :data:`Any` pour chaque position. Dans l'exemple suivant, " +"``MyIterable`` n'est pas générique mais hérite implicitement de " +"``Iterable[Any]`` ::" -#: ../Doc/library/typing.rst:292 +#: ../Doc/library/typing.rst:294 msgid "User defined generic type aliases are also supported. Examples::" msgstr "" +"Les alias de type générique définis par l'utilisateur sont également pris en " +"charge. Exemples ::" -#: ../Doc/library/typing.rst:308 +#: ../Doc/library/typing.rst:310 msgid "" "The metaclass used by :class:`Generic` is a subclass of :class:`abc." "ABCMeta`. A generic class can be an ABC by including abstract methods or " @@ -253,24 +320,27 @@ msgid "" "hashable and comparable for equality." msgstr "" -#: ../Doc/library/typing.rst:317 +#: ../Doc/library/typing.rst:319 msgid "The :data:`Any` type" -msgstr "" +msgstr "Le type :data:`Any`" -#: ../Doc/library/typing.rst:319 +#: ../Doc/library/typing.rst:321 msgid "" "A special kind of type is :data:`Any`. A static type checker will treat " "every type as being compatible with :data:`Any` and :data:`Any` as being " "compatible with every type." msgstr "" +"Un type particulier est :data:`Any`. Un vérificateur de type statique traite " +"chaque type comme étant compatible avec :data:`Any` et :data:`Any` comme " +"étant compatible avec chaque type." -#: ../Doc/library/typing.rst:323 +#: ../Doc/library/typing.rst:325 msgid "" "This means that it is possible to perform any operation or method call on a " "value of type on :data:`Any` and assign it to any variable::" msgstr "" -#: ../Doc/library/typing.rst:341 +#: ../Doc/library/typing.rst:343 msgid "" "Notice that no typechecking is performed when assigning a value of type :" "data:`Any` to a more precise type. For example, the static type checker did " @@ -278,80 +348,112 @@ msgid "" "declared to be of type :class:`str` and receives an :class:`int` value at " "runtime!" msgstr "" +"Notez qu'aucun contrôle de typage n'est effectué lors de l'affectation d'une " +"valeur de type :data:`Any` à un type plus précis. Par exemple, le " +"vérificateur de type statique ne signale pas d'erreur lors de l'affectation " +"de ``a`` à ``s`` même si ``s`` était déclaré être de type :class:`str` et " +"reçoit une valeur :class:`int` au moment de son exécution !" -#: ../Doc/library/typing.rst:347 +#: ../Doc/library/typing.rst:349 msgid "" "Furthermore, all functions without a return type or parameter types will " "implicitly default to using :data:`Any`::" msgstr "" +"De plus, toutes les fonctions sans type de retour ni type de paramètre sont " +"considérées comme utilisant :data:`Any` implicitement par défaut ::" -#: ../Doc/library/typing.rst:360 +#: ../Doc/library/typing.rst:362 msgid "" "This behavior allows :data:`Any` to be used as an *escape hatch* when you " "need to mix dynamically and statically typed code." msgstr "" +"Ce comportement permet à :data:`Any` d'être utilisé comme succédané lorsque " +"vous avez besoin de mélanger du code typé dynamiquement et statiquement." -#: ../Doc/library/typing.rst:363 +#: ../Doc/library/typing.rst:365 msgid "" "Contrast the behavior of :data:`Any` with the behavior of :class:`object`. " "Similar to :data:`Any`, every type is a subtype of :class:`object`. However, " "unlike :data:`Any`, the reverse is not true: :class:`object` is *not* a " "subtype of every other type." msgstr "" +"Comparons le comportement de :data:`Any` avec celui de :class:`object`. De " +"la même manière que pour :data:`Any`, chaque type est un sous-type de :class:" +"`object`. Cependant, contrairement à :data:`Any`, l'inverse n'est pas " +"vrai : :class:`object` n'est *pas* un sous-type de chaque autre type." -#: ../Doc/library/typing.rst:368 +#: ../Doc/library/typing.rst:370 msgid "" "That means when the type of a value is :class:`object`, a type checker will " "reject almost all operations on it, and assigning it to a variable (or using " "it as a return value) of a more specialized type is a type error. For " "example::" msgstr "" +"Cela signifie que lorsque le type d'une valeur est :class:`object`, un " +"vérificateur de type rejette presque toutes les opérations sur celle-ci, et " +"l'affecter à une variable (ou l'utiliser comme une valeur de retour) d'un " +"type plus spécialisé est une erreur de typage. Par exemple ::" -#: ../Doc/library/typing.rst:390 +#: ../Doc/library/typing.rst:392 msgid "" "Use :class:`object` to indicate that a value could be any type in a typesafe " "manner. Use :data:`Any` to indicate that a value is dynamically typed." msgstr "" +"Utilisez :class:`object` pour indiquer qu'une valeur peut être de n'importe " +"quel type de manière sûre. Utiliser :data:`Any` pour indiquer qu'une valeur " +"est typée dynamiquement." -#: ../Doc/library/typing.rst:394 +#: ../Doc/library/typing.rst:396 msgid "Classes, functions, and decorators" msgstr "" -#: ../Doc/library/typing.rst:396 +#: ../Doc/library/typing.rst:398 msgid "The module defines the following classes, functions and decorators:" msgstr "" -#: ../Doc/library/typing.rst:400 +#: ../Doc/library/typing.rst:402 msgid "Type variable." -msgstr "" +msgstr "Variables de type." -#: ../Doc/library/typing.rst:402 ../Doc/library/typing.rst:809 +#: ../Doc/library/typing.rst:404 ../Doc/library/typing.rst:833 msgid "Usage::" -msgstr "" +msgstr "Utilisation ::" -#: ../Doc/library/typing.rst:407 +#: ../Doc/library/typing.rst:409 msgid "" "Type variables exist primarily for the benefit of static type checkers. " "They serve as the parameters for generic types as well as for generic " "function definitions. See class Generic for more information on generic " "types. Generic functions work as follows::" msgstr "" +"Les variables de type existent principalement dans l'intérêt des contrôleurs " +"de type statiques. Elles servent de paramètres pour les types génériques " +"ainsi que pour les définitions de fonctions génériques. Voir la classe " +"``Generic`` pour plus d'informations sur les types génériques. Les fonctions " +"génériques fonctionnent comme suit ::" -#: ../Doc/library/typing.rst:420 +#: ../Doc/library/typing.rst:422 msgid "" "The latter example's signature is essentially the overloading of ``(str, " "str) -> str`` and ``(bytes, bytes) -> bytes``. Also note that if the " "arguments are instances of some subclass of :class:`str`, the return type is " "still plain :class:`str`." msgstr "" +"La signature de ce dernier exemple est essentiellement la surcharge de " +"``(str, str) -> str`` et ``(bytes, bytes) -> bytes``. Notez également que si " +"les arguments sont des instances d'une sous-classe de la classe :class:" +"`str`, le type de retour est toujours la classe :class:`str`." -#: ../Doc/library/typing.rst:425 +#: ../Doc/library/typing.rst:427 msgid "" "At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`. In general, :" "func:`isinstance` and :func:`issubclass` should not be used with types." msgstr "" +"Au moment de l'exécution, ``isinstance(x, T)`` va lever :exc:`TypeError`. En " +"général, :func:`isinstance` et :func:`issubclass` ne devraient pas être " +"utilisés avec les types." -#: ../Doc/library/typing.rst:428 +#: ../Doc/library/typing.rst:430 msgid "" "Type variables may be marked covariant or contravariant by passing " "``covariant=True`` or ``contravariant=True``. See :pep:`484` for more " @@ -360,35 +462,49 @@ msgid "" "an actual type substituted (explicitly or implicitly) for the type variable " "must be a subclass of the boundary type, see :pep:`484`." msgstr "" +"Les variables de type peuvent être marquées covariantes ou contravariantes " +"en passant ``covariant=True`` ou ``contravariant=True``. Voir la :pep:`484` " +"pour plus de détails. Par défaut, les variables de type sont invariantes. " +"Sinon, une variable de type peut spécifier une limite supérieure en " +"utilisant ``bound=``. Cela signifie qu'un type réel substitué " +"(explicitement ou implicitement) à la variable type doit être une sous-" +"classe du type frontière (*boundary* en anglais), voir la :pep:`484`." -#: ../Doc/library/typing.rst:438 +#: ../Doc/library/typing.rst:440 msgid "Abstract base class for generic types." -msgstr "" +msgstr "Classe de base abstraite pour les types génériques." -#: ../Doc/library/typing.rst:440 +#: ../Doc/library/typing.rst:442 msgid "" "A generic type is typically declared by inheriting from an instantiation of " "this class with one or more type variables. For example, a generic mapping " "type might be defined as::" msgstr "" +"Un type générique est généralement déclaré en héritant d'une instanciation " +"de cette classe avec une ou plusieurs variables de type. Par exemple, un " +"type de correspondance générique peut être défini comme suit ::" -#: ../Doc/library/typing.rst:449 +#: ../Doc/library/typing.rst:451 msgid "This class can then be used as follows::" -msgstr "" +msgstr "Cette classe peut alors être utilisée comme suit ::" -#: ../Doc/library/typing.rst:462 +#: ../Doc/library/typing.rst:464 msgid "" "A variable annotated with ``C`` may accept a value of type ``C``. In " "contrast, a variable annotated with ``Type[C]`` may accept values that are " "classes themselves -- specifically, it will accept the *class object* of " "``C``. For example::" msgstr "" +"Une variable annotée de ``C`` peut accepter une valeur de type ``C``. En " +"revanche, une variable annotée avec ``Type[C]`` peut accepter des valeurs " +"qui sont elles-mêmes des classes — plus précisément, elle accepte l'objet " +"*class* de ``C``. Par exemple ::" -#: ../Doc/library/typing.rst:471 +#: ../Doc/library/typing.rst:473 msgid "Note that ``Type[C]`` is covariant::" -msgstr "" +msgstr "Notez que ``Type[C]`` est covariant ::" -#: ../Doc/library/typing.rst:483 +#: ../Doc/library/typing.rst:485 msgid "" "The fact that ``Type[C]`` is covariant implies that all subclasses of ``C`` " "should implement the same constructor signature and class method signatures " @@ -397,315 +513,371 @@ msgid "" "the indicated base class. How the type checker is required to handle this " "particular case may change in future revisions of :pep:`484`." msgstr "" +"Le fait que ``Type[C]`` soit covariant implique que toutes les sous-classes " +"de ``C`` doivent implémenter la même signature de constructeur et les " +"signatures de méthode de classe que ``C``. Le vérificateur de type doit " +"signaler les manquements à cette règle. Il doit également autoriser les " +"appels du constructeur dans les sous-classes qui correspondent aux appels du " +"constructeur dans la classe de base indiquée. La façon dont le vérificateur " +"de type est tenu de traiter ce cas particulier peut changer dans les futures " +"révisions de :pep:`484`." -#: ../Doc/library/typing.rst:491 +#: ../Doc/library/typing.rst:493 msgid "" -"The only legal parameters for :class:`Type` are classes, unions of classes, " -"and :data:`Any`. For example::" +"The only legal parameters for :class:`Type` are classes, :data:`Any`, :ref:" +"`type variables `, and unions of any of these types. For example::" msgstr "" +"Les seuls paramètres légitimes pour :class:`Type` sont les classes, :data:" +"`Any`, :ref:`type variables `, et les unions de ces types. Par " +"exemple ::" -#: ../Doc/library/typing.rst:496 +#: ../Doc/library/typing.rst:499 msgid "" "``Type[Any]`` is equivalent to ``Type`` which in turn is equivalent to " "``type``, which is the root of Python's metaclass hierarchy." msgstr "" +"``Type[Any]`` est équivalent à ``Type`` qui à son tour est équivalent à " +"``type``, qui est la racine de la hiérarchie des métaclasses de Python." -#: ../Doc/library/typing.rst:503 +#: ../Doc/library/typing.rst:506 msgid "A generic version of :class:`collections.abc.Iterable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Iterable`." -#: ../Doc/library/typing.rst:507 +#: ../Doc/library/typing.rst:510 msgid "A generic version of :class:`collections.abc.Iterator`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Iterator`." -#: ../Doc/library/typing.rst:511 +#: ../Doc/library/typing.rst:514 msgid "A generic version of :class:`collections.abc.Reversible`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Reversible`." -#: ../Doc/library/typing.rst:515 +#: ../Doc/library/typing.rst:518 msgid "An ABC with one abstract method ``__int__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__int__``." -#: ../Doc/library/typing.rst:519 +#: ../Doc/library/typing.rst:522 msgid "An ABC with one abstract method ``__float__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__float__``." -#: ../Doc/library/typing.rst:523 +#: ../Doc/library/typing.rst:526 msgid "An ABC with one abstract method ``__complex__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__complex__``." -#: ../Doc/library/typing.rst:527 +#: ../Doc/library/typing.rst:530 msgid "An ABC with one abstract method ``__bytes__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__bytes__``." -#: ../Doc/library/typing.rst:531 +#: ../Doc/library/typing.rst:534 msgid "" "An ABC with one abstract method ``__abs__`` that is covariant in its return " "type." msgstr "" +"Une ABC avec une méthode abstraite ``__abs__`` qui est covariante dans son " +"type de retour." -#: ../Doc/library/typing.rst:536 +#: ../Doc/library/typing.rst:539 msgid "" "An ABC with one abstract method ``__round__`` that is covariant in its " "return type." msgstr "" +"Une ABC avec une méthode abstraite ``__round__`` qui est covariante dans son " +"type de retour." -#: ../Doc/library/typing.rst:541 +#: ../Doc/library/typing.rst:544 msgid "A generic version of :class:`collections.abc.Container`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Container`." -#: ../Doc/library/typing.rst:545 +#: ../Doc/library/typing.rst:548 msgid "An alias to :class:`collections.abc.Hashable`" -msgstr "" +msgstr "Un alias pour :class:`collections.abc.Hashable`" -#: ../Doc/library/typing.rst:549 +#: ../Doc/library/typing.rst:552 msgid "An alias to :class:`collections.abc.Sized`" -msgstr "" +msgstr "Un alias pour :class:`collections.abc.Sized`" -#: ../Doc/library/typing.rst:553 +#: ../Doc/library/typing.rst:556 msgid "A generic version of :class:`collections.abc.Collection`" -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Collection`" -#: ../Doc/library/typing.rst:559 +#: ../Doc/library/typing.rst:562 msgid "A generic version of :class:`collections.abc.Set`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Set`." -#: ../Doc/library/typing.rst:563 +#: ../Doc/library/typing.rst:566 msgid "A generic version of :class:`collections.abc.MutableSet`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableSet`." -#: ../Doc/library/typing.rst:567 -msgid "A generic version of :class:`collections.abc.Mapping`." +#: ../Doc/library/typing.rst:570 +msgid "" +"A generic version of :class:`collections.abc.Mapping`. This type can be used " +"as follows::" msgstr "" +"Une version générique de :class:`collections.abc.Mapping`. Ce type peut être " +"utilisé comme suit ::" -#: ../Doc/library/typing.rst:571 +#: ../Doc/library/typing.rst:578 msgid "A generic version of :class:`collections.abc.MutableMapping`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableMapping`." -#: ../Doc/library/typing.rst:575 +#: ../Doc/library/typing.rst:582 msgid "A generic version of :class:`collections.abc.Sequence`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Sequence`." -#: ../Doc/library/typing.rst:579 +#: ../Doc/library/typing.rst:586 msgid "A generic version of :class:`collections.abc.MutableSequence`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableSequence`." -#: ../Doc/library/typing.rst:583 +#: ../Doc/library/typing.rst:590 msgid "A generic version of :class:`collections.abc.ByteString`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ByteString`." -#: ../Doc/library/typing.rst:585 +#: ../Doc/library/typing.rst:592 msgid "" "This type represents the types :class:`bytes`, :class:`bytearray`, and :" "class:`memoryview`." msgstr "" -#: ../Doc/library/typing.rst:588 +#: ../Doc/library/typing.rst:595 msgid "" "As a shorthand for this type, :class:`bytes` can be used to annotate " "arguments of any of the types mentioned above." msgstr "" +"Comme abréviation pour ce type, :class:`bytes` peut être utilisé pour " +"annoter des arguments de n'importe quel type mentionné ci-dessus." -#: ../Doc/library/typing.rst:593 +#: ../Doc/library/typing.rst:600 msgid "A generic version of :class:`collections.deque`." -msgstr "" +msgstr "Une version générique de :class:`collections.deque`." -#: ../Doc/library/typing.rst:599 +#: ../Doc/library/typing.rst:607 msgid "" "Generic version of :class:`list`. Useful for annotating return types. To " -"annotate arguments it is preferred to use abstract collection types such as :" -"class:`Mapping`, :class:`Sequence`, or :class:`AbstractSet`." +"annotate arguments it is preferred to use an abstract collection type such " +"as :class:`Sequence` or :class:`Iterable`." msgstr "" +"Version générique de :class:`list`. Utile pour annoter les types de retour. " +"Pour annoter les arguments, il est préférable d'utiliser un type de " +"collection abstraite tel que :class:`Sequence` ou :class:`Iterable`." -#: ../Doc/library/typing.rst:604 +#: ../Doc/library/typing.rst:612 msgid "This type may be used as follows::" -msgstr "" +msgstr "Ce type peut être utilisé comme suit ::" -#: ../Doc/library/typing.rst:616 -msgid "A generic version of :class:`builtins.set `." +#: ../Doc/library/typing.rst:624 +msgid "" +"A generic version of :class:`builtins.set `. Useful for annotating " +"return types. To annotate arguments it is preferred to use an abstract " +"collection type such as :class:`AbstractSet`." msgstr "" +"Une version générique de :class:`builtins.set `. Utile pour annoter les " +"types de retour. Pour annoter les arguments, il est préférable d'utiliser un " +"type de collection abstraite tel que :class:`AbstractSet`." -#: ../Doc/library/typing.rst:620 +#: ../Doc/library/typing.rst:630 msgid "A generic version of :class:`builtins.frozenset `." -msgstr "" +msgstr "Une version générique de :class:`builtins.frozenset `." -#: ../Doc/library/typing.rst:624 +#: ../Doc/library/typing.rst:634 msgid "A generic version of :class:`collections.abc.MappingView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MappingView`." -#: ../Doc/library/typing.rst:628 +#: ../Doc/library/typing.rst:638 msgid "A generic version of :class:`collections.abc.KeysView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.KeysView`." -#: ../Doc/library/typing.rst:632 +#: ../Doc/library/typing.rst:642 msgid "A generic version of :class:`collections.abc.ItemsView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ItemsView`." -#: ../Doc/library/typing.rst:636 +#: ../Doc/library/typing.rst:646 msgid "A generic version of :class:`collections.abc.ValuesView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ValuesView`." -#: ../Doc/library/typing.rst:640 +#: ../Doc/library/typing.rst:650 msgid "A generic version of :class:`collections.abc.Awaitable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Awaitable`." -#: ../Doc/library/typing.rst:644 +#: ../Doc/library/typing.rst:656 msgid "" "A generic version of :class:`collections.abc.Coroutine`. The variance and " "order of type variables correspond to those of :class:`Generator`, for " "example::" msgstr "" +"Une version générique de :class:`collections.abc.Coroutine`. La variance et " +"l'ordre des variables de type correspondent à ceux de la classe :class:" +"`Generator`, par exemple ::" -#: ../Doc/library/typing.rst:657 +#: ../Doc/library/typing.rst:671 msgid "A generic version of :class:`collections.abc.AsyncIterable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.AsyncIterable`." -#: ../Doc/library/typing.rst:661 +#: ../Doc/library/typing.rst:677 msgid "A generic version of :class:`collections.abc.AsyncIterator`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.AsyncIterator`." -#: ../Doc/library/typing.rst:665 +#: ../Doc/library/typing.rst:683 msgid "A generic version of :class:`contextlib.AbstractContextManager`." -msgstr "" +msgstr "Une version générique de :class:`contextlib.AbstractContextManager`." -#: ../Doc/library/typing.rst:671 +#: ../Doc/library/typing.rst:690 msgid "A generic version of :class:`contextlib.AbstractAsyncContextManager`." msgstr "" +"Une version générique de :class:`contextlib.AbstractAsyncContextManager`." -#: ../Doc/library/typing.rst:677 +#: ../Doc/library/typing.rst:697 msgid "" -"A generic version of :class:`dict`. The usage of this type is as follows::" +"A generic version of :class:`dict`. Useful for annotating return types. To " +"annotate arguments it is preferred to use an abstract collection type such " +"as :class:`Mapping`." msgstr "" +"Une version générique de :class:`dict`. Utile pour annoter les types de " +"retour. Pour annoter les arguments, il est préférable d'utiliser un type de " +"collection abstraite tel que :class:`Mapping`." + +#: ../Doc/library/typing.rst:701 +msgid "This type can be used as follows::" +msgstr "Ce type peut être utilisé comme suit ::" -#: ../Doc/library/typing.rst:685 +#: ../Doc/library/typing.rst:708 msgid "A generic version of :class:`collections.defaultdict`." -msgstr "" +msgstr "Une version générique de :class:`collections.defaultdict`." + +#: ../Doc/library/typing.rst:714 +msgid "A generic version of :class:`collections.OrderedDict`." +msgstr "Une version générique de :class:`collections.OrderedDict`." -#: ../Doc/library/typing.rst:691 +#: ../Doc/library/typing.rst:720 msgid "A generic version of :class:`collections.Counter`." -msgstr "" +msgstr "Une version générique de :class:`collections.Counter`." -#: ../Doc/library/typing.rst:697 +#: ../Doc/library/typing.rst:727 msgid "A generic version of :class:`collections.ChainMap`." -msgstr "" +msgstr "Une version générique de :class:`collections.ChainMap`." -#: ../Doc/library/typing.rst:703 +#: ../Doc/library/typing.rst:734 msgid "" "A generator can be annotated by the generic type ``Generator[YieldType, " "SendType, ReturnType]``. For example::" msgstr "" +"Un générateur peut être annoté par le type générique ``Generator[YieldType, " +"SendType, ReturnType]``. Par exemple ::" -#: ../Doc/library/typing.rst:712 +#: ../Doc/library/typing.rst:743 msgid "" "Note that unlike many other generics in the typing module, the ``SendType`` " "of :class:`Generator` behaves contravariantly, not covariantly or " "invariantly." msgstr "" +"Notez que contrairement à beaucoup d'autres génériques dans le module " +"*typing*, le ``SendType`` de :class:`Generator` se comporte de manière " +"contravariante, pas de manière covariante ou invariante." -#: ../Doc/library/typing.rst:716 +#: ../Doc/library/typing.rst:747 msgid "" "If your generator will only yield values, set the ``SendType`` and " "``ReturnType`` to ``None``::" msgstr "" +"Si votre générateur ne donne que des valeurs, réglez les paramètres " +"``SendType`` et ``ReturnType`` sur ``None`` ::" -#: ../Doc/library/typing.rst:724 +#: ../Doc/library/typing.rst:755 msgid "" "Alternatively, annotate your generator as having a return type of either " "``Iterable[YieldType]`` or ``Iterator[YieldType]``::" msgstr "" +"Alternativement, annotez votre générateur comme ayant un type de retour soit " +"``Iterable[YieldType]`` ou ``Iterator[YieldType]`` ::" -#: ../Doc/library/typing.rst:734 +#: ../Doc/library/typing.rst:765 msgid "" "An async generator can be annotated by the generic type " "``AsyncGenerator[YieldType, SendType]``. For example::" msgstr "" +"Un générateur asynchrone peut être annoté par le type générique " +"``AsyncGenerator[YieldType, SendType]``. Par exemple ::" -#: ../Doc/library/typing.rst:743 +#: ../Doc/library/typing.rst:774 msgid "" "Unlike normal generators, async generators cannot return a value, so there " "is no ``ReturnType`` type parameter. As with :class:`Generator`, the " "``SendType`` behaves contravariantly." msgstr "" +"Contrairement aux générateurs normaux, les générateurs asynchrones ne " +"peuvent pas renvoyer une valeur, il n'y a donc pas de paramètre de type " +"``ReturnType``. Comme avec :class:`Generator`, le ``SendType`` se comporte " +"de manière contravariante." -#: ../Doc/library/typing.rst:747 +#: ../Doc/library/typing.rst:778 msgid "" "If your generator will only yield values, set the ``SendType`` to ``None``::" msgstr "" +"Si votre générateur ne donne que des valeurs, réglez le paramètre " +"``SendType`` sur ``None`` ::" -#: ../Doc/library/typing.rst:755 +#: ../Doc/library/typing.rst:786 msgid "" "Alternatively, annotate your generator as having a return type of either " "``AsyncIterable[YieldType]`` or ``AsyncIterator[YieldType]``::" msgstr "" +"Alternativement, annotez votre générateur comme ayant un type de retour soit " +"``AsyncIterable[YieldType]`` ou ``AsyncIterator[YieldType]`` ::" -#: ../Doc/library/typing.rst:767 +#: ../Doc/library/typing.rst:798 msgid "" "``Text`` is an alias for ``str``. It is provided to supply a forward " "compatible path for Python 2 code: in Python 2, ``Text`` is an alias for " "``unicode``." msgstr "" +"``Text`` est un alias pour ``str``. Il est fourni pour obtenir une " +"compatibilité ascendante du code Python 2 : en Python 2, ``Text`` est un " +"alias pour ``unicode``." -#: ../Doc/library/typing.rst:771 +#: ../Doc/library/typing.rst:802 msgid "" "Use ``Text`` to indicate that a value must contain a unicode string in a " "manner that is compatible with both Python 2 and Python 3::" msgstr "" +"Utilisez ``Text`` pour indiquer qu'une valeur doit contenir une chaîne " +"Unicode d'une manière compatible avec Python 2 et Python 3 ::" -#: ../Doc/library/typing.rst:781 -msgid "Wrapper namespace for I/O stream types." -msgstr "" - -#: ../Doc/library/typing.rst:783 -msgid "" -"This defines the generic type ``IO[AnyStr]`` and subclasses ``TextIO`` and " -"``BinaryIO``, deriving from ``IO[str]`` and ``IO[bytes]``, respectively. " -"These represent the types of I/O streams such as returned by :func:`open`." -msgstr "" - -#: ../Doc/library/typing.rst:788 +#: ../Doc/library/typing.rst:814 msgid "" -"These types are also accessible directly as ``typing.IO``, ``typing." -"TextIO``, and ``typing.BinaryIO``." +"Generic type ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])`` and " +"``BinaryIO(IO[bytes])`` represent the types of I/O streams such as returned " +"by :func:`open`." msgstr "" -#: ../Doc/library/typing.rst:793 -msgid "Wrapper namespace for regular expression matching types." -msgstr "" - -#: ../Doc/library/typing.rst:795 +#: ../Doc/library/typing.rst:822 msgid "" -"This defines the type aliases ``Pattern`` and ``Match`` which correspond to " -"the return types from :func:`re.compile` and :func:`re.match`. These types " -"(and the corresponding functions) are generic in ``AnyStr`` and can be made " -"specific by writing ``Pattern[str]``, ``Pattern[bytes]``, ``Match[str]``, or " -"``Match[bytes]``." +"These type aliases correspond to the return types from :func:`re.compile` " +"and :func:`re.match`. These types (and the corresponding functions) are " +"generic in ``AnyStr`` and can be made specific by writing ``Pattern[str]``, " +"``Pattern[bytes]``, ``Match[str]``, or ``Match[bytes]``." msgstr "" -#: ../Doc/library/typing.rst:802 -msgid "" -"These types are also accessible directly as ``typing.Pattern`` and ``typing." -"Match``." -msgstr "" +#: ../Doc/library/typing.rst:831 +msgid "Typed version of :func:`collections.namedtuple`." +msgstr "Version typée de :func:`collections.namedtuple`." -#: ../Doc/library/typing.rst:807 -msgid "Typed version of namedtuple." -msgstr "" - -#: ../Doc/library/typing.rst:815 +#: ../Doc/library/typing.rst:839 msgid "This is equivalent to::" msgstr "C’est équivalent à ::" -#: ../Doc/library/typing.rst:819 +#: ../Doc/library/typing.rst:843 msgid "" "To give a field a default value, you can assign to it in the class body::" msgstr "" +"Pour assigner une valeur par défaut à un champ, vous pouvez lui donner dans " +"le corps de classe ::" -#: ../Doc/library/typing.rst:828 +#: ../Doc/library/typing.rst:852 msgid "" "Fields with a default value must come after any fields without a default." msgstr "" +"Les champs avec une valeur par défaut doivent venir après tous les champs " +"sans valeur par défaut." -#: ../Doc/library/typing.rst:830 +#: ../Doc/library/typing.rst:854 msgid "" "The resulting class has two extra attributes: ``_field_types``, giving a " "dict mapping field names to types, and ``_field_defaults``, a dict mapping " @@ -713,47 +885,72 @@ msgid "" "attribute, which is part of the namedtuple API.)" msgstr "" -#: ../Doc/library/typing.rst:835 +#: ../Doc/library/typing.rst:859 msgid "``NamedTuple`` subclasses can also have docstrings and methods::" msgstr "" +"Les sous-classes de ``NamedTuple`` peuvent aussi avoir des *docstrings* et " +"des méthodes ::" -#: ../Doc/library/typing.rst:845 +#: ../Doc/library/typing.rst:869 msgid "Backward-compatible usage::" -msgstr "" +msgstr "Utilisation rétrocompatible ::" -#: ../Doc/library/typing.rst:849 +#: ../Doc/library/typing.rst:873 msgid "Added support for :pep:`526` variable annotation syntax." msgstr "" +"Ajout de la gestion de la syntaxe d'annotation variable de la :pep:`526`." -#: ../Doc/library/typing.rst:852 +#: ../Doc/library/typing.rst:876 msgid "Added support for default values, methods, and docstrings." msgstr "" +"Ajout de la prise en charge des valeurs par défaut, des méthodes et des " +"chaînes de caractères *docstrings*." + +#: ../Doc/library/typing.rst:881 +msgid "" +"A class used for internal typing representation of string forward " +"references. For example, ``List[\"SomeClass\"]`` is implicitly transformed " +"into ``List[ForwardRef(\"SomeClass\")]``. This class should not be " +"instantiated by a user, but may be used by introspection tools." +msgstr "" +"Une classe utilisée pour le typage interne de la représentation des " +"références directes des chaînes de caractères. Par exemple, " +"``Liste[\"SomeClass\"]`` est implicitement transformé en " +"``Liste[ForwardRef(\"SomeClass\")]``. Cette classe ne doit pas être " +"instanciée par un utilisateur, mais peut être utilisée par des outils " +"d'introspection." -#: ../Doc/library/typing.rst:857 +#: ../Doc/library/typing.rst:888 msgid "" "A helper function to indicate a distinct types to a typechecker, see :ref:" "`distinct`. At runtime it returns a function that returns its argument. " "Usage::" msgstr "" -#: ../Doc/library/typing.rst:868 +#: ../Doc/library/typing.rst:899 msgid "Cast a value to a type." -msgstr "" +msgstr "Convertit une valeur en un type." -#: ../Doc/library/typing.rst:870 +#: ../Doc/library/typing.rst:901 msgid "" "This returns the value unchanged. To the type checker this signals that the " "return value has the designated type, but at runtime we intentionally don't " "check anything (we want this to be as fast as possible)." msgstr "" +"Ceci renvoie la valeur inchangée. Pour le vérificateur de type, cela " +"signifie que la valeur de retour a le type désigné mais, à l'exécution, " +"intentionnellement, rien n'est vérifié (afin que cela soit aussi rapide que " +"possible)." -#: ../Doc/library/typing.rst:877 +#: ../Doc/library/typing.rst:908 msgid "" "Return a dictionary containing type hints for a function, method, module or " "class object." msgstr "" +"renvoie un dictionnaire contenant des indications de type pour une fonction, " +"une méthode, un module ou un objet de classe." -#: ../Doc/library/typing.rst:880 +#: ../Doc/library/typing.rst:911 msgid "" "This is often the same as ``obj.__annotations__``. In addition, forward " "references encoded as string literals are handled by evaluating them in " @@ -762,8 +959,15 @@ msgid "" "``None`` is set. For a class ``C``, return a dictionary constructed by " "merging all the ``__annotations__`` along ``C.__mro__`` in reverse order." msgstr "" +"C'est souvent équivalent à ``obj.__annotations__``. De plus, les références " +"directes encodées sous forme de chaîne littérales sont traitées en les " +"évaluant dans les espaces de nommage ``globals`` et ``locals``. Si " +"nécessaire, ``Optional[t]`` est ajouté pour les annotations de fonction et " +"de méthode si une valeur par défaut égale à ``None`` est définie. Pour une " +"classe ``C``, renvoie un dictionnaire construit en fusionnant toutes les " +"``__annotations__`` en parcourant ``C.__mro__`` en ordre inverse." -#: ../Doc/library/typing.rst:890 +#: ../Doc/library/typing.rst:921 msgid "" "The ``@overload`` decorator allows describing functions and methods that " "support multiple different combinations of argument types. A series of " @@ -773,155 +977,226 @@ msgid "" "only, since they will be overwritten by the non-``@overload``-decorated " "definition, while the latter is used at runtime but should be ignored by a " "type checker. At runtime, calling a ``@overload``-decorated function " -"directly will raise ``NotImplementedError``. An example of overload that " +"directly will raise :exc:`NotImplementedError`. An example of overload that " "gives a more precise type than can be expressed using a union or a type " "variable::" msgstr "" - -#: ../Doc/library/typing.rst:914 +"Le décorateur ``@overload``` permet de décrire des fonctions et des méthodes " +"qui acceptent plusieurs combinaisons différentes de types d'arguments. Une " +"série de définitions décorées avec ``overload`` doit être suivie d'une seule " +"définition non décorée de ``overload`` (pour la même fonction/méthode). Les " +"définitions décorées de ``@overload`` ne sont destinées qu'au vérificateur " +"de type, puisqu'elles sont écrasées par la définition non décorée de " +"``@overload`` ; cette dernière, en revanche, est utilisée à l'exécution mais " +"qu'il convient que le vérificateur de type l'ignore. Lors de l'exécution, " +"l'appel direct d'une fonction décorée avec ``@overload`` lèvera :exc:" +"`NotImplementedError`. Un exemple de surcharge qui donne un type plus précis " +"que celui qui peut être exprimé à l'aide d'une variable union ou type ::" + +#: ../Doc/library/typing.rst:945 msgid "See :pep:`484` for details and comparison with other typing semantics." msgstr "" +"Voir la :pep:`484` pour plus de détails et la comparaison avec d'autres " +"sémantiques de typage." -#: ../Doc/library/typing.rst:918 +#: ../Doc/library/typing.rst:949 msgid "Decorator to indicate that annotations are not type hints." msgstr "" +"Décorateur pour indiquer que les annotations ne sont pas des indications de " +"type." -#: ../Doc/library/typing.rst:920 +#: ../Doc/library/typing.rst:951 msgid "" "This works as class or function :term:`decorator`. With a class, it applies " "recursively to all methods defined in that class (but not to methods defined " "in its superclasses or subclasses)." msgstr "" +"Cela fonctionne en tant que classe ou fonction :term:`décoratrice " +"`. Avec une classe, elle s'applique récursivement à toutes les " +"méthodes définies dans cette classe (mais pas aux méthodes définies dans ses " +"superclasses ou sous-classes)." -#: ../Doc/library/typing.rst:924 +#: ../Doc/library/typing.rst:955 msgid "This mutates the function(s) in place." -msgstr "" +msgstr "Cela fait muter la ou les fonctions en place." -#: ../Doc/library/typing.rst:928 +#: ../Doc/library/typing.rst:959 msgid "Decorator to give another decorator the :func:`no_type_check` effect." msgstr "" +"Décorateur pour donner à un autre décorateur l'effet :func:`no_type_check`." -#: ../Doc/library/typing.rst:930 +#: ../Doc/library/typing.rst:961 msgid "" "This wraps the decorator with something that wraps the decorated function " "in :func:`no_type_check`." msgstr "" +"Ceci enveloppe le décorateur avec quelque chose qui enveloppe la fonction " +"décorée dans :func:`no_type_check`." -#: ../Doc/library/typing.rst:935 -msgid "Special type indicating an unconstrained type." +#: ../Doc/library/typing.rst:966 +msgid "Decorator to mark a class or function to be unavailable at runtime." msgstr "" +"Décorateur pour marquer une classe ou une fonction comme étant indisponible " +"au moment de l'exécution." -#: ../Doc/library/typing.rst:937 -msgid "Every type is compatible with :data:`Any`." +#: ../Doc/library/typing.rst:968 +msgid "" +"This decorator is itself not available at runtime. It is mainly intended to " +"mark classes that are defined in type stub files if an implementation " +"returns an instance of a private class::" msgstr "" +"Ce décorateur n'est pas disponible à l'exécution. Il est principalement " +"destiné à marquer les classes qui sont définies dans des fichiers séparés " +"d'annotations de type (*type stub file*, en anglais) si une implémentation " +"renvoie une instance d'une classe privée ::" -#: ../Doc/library/typing.rst:938 -msgid ":data:`Any` is compatible with every type." +#: ../Doc/library/typing.rst:979 +msgid "" +"Note that returning instances of private classes is not recommended. It is " +"usually preferable to make such classes public." msgstr "" +"Notez qu'il n'est pas recommandé de renvoyer les instances des classes " +"privées. Il est généralement préférable de rendre ces classes publiques." + +#: ../Doc/library/typing.rst:984 +msgid "Special type indicating an unconstrained type." +msgstr "Type spécial indiquant un type non contraint." -#: ../Doc/library/typing.rst:942 +#: ../Doc/library/typing.rst:986 +msgid "Every type is compatible with :data:`Any`." +msgstr "Chaque type est compatible avec :data:`Any`." + +#: ../Doc/library/typing.rst:987 +msgid ":data:`Any` is compatible with every type." +msgstr ":data:`Any` est compatible avec tous les types." + +#: ../Doc/library/typing.rst:991 msgid "Special type indicating that a function never returns. For example::" -msgstr "" +msgstr "Type spécial indiquant qu'une fonction ne renvoie rien. Par exemple ::" -#: ../Doc/library/typing.rst:954 +#: ../Doc/library/typing.rst:1004 msgid "Union type; ``Union[X, Y]`` means either X or Y." -msgstr "" +msgstr "Type « union » ; ``Union[X, Y]`` signifie X ou Y." -#: ../Doc/library/typing.rst:956 +#: ../Doc/library/typing.rst:1006 msgid "To define a union, use e.g. ``Union[int, str]``. Details:" msgstr "" +"Pour définir une union, utilisez par exemple ``Union[int, str]``. Détail :" -#: ../Doc/library/typing.rst:958 +#: ../Doc/library/typing.rst:1008 msgid "The arguments must be types and there must be at least one." msgstr "" +"Les arguments doivent être des types et il doit y en avoir au moins un." -#: ../Doc/library/typing.rst:960 +#: ../Doc/library/typing.rst:1010 msgid "Unions of unions are flattened, e.g.::" -msgstr "" +msgstr "Les unions d'unions sont aplanies, par exemple ::" -#: ../Doc/library/typing.rst:964 +#: ../Doc/library/typing.rst:1014 msgid "Unions of a single argument vanish, e.g.::" -msgstr "" +msgstr "Les unions d'un seul argument disparaissent, par exemple ::" -#: ../Doc/library/typing.rst:968 +#: ../Doc/library/typing.rst:1018 msgid "Redundant arguments are skipped, e.g.::" -msgstr "" +msgstr "Les arguments redondants sont ignorés, par exemple ::" -#: ../Doc/library/typing.rst:972 +#: ../Doc/library/typing.rst:1022 msgid "When comparing unions, the argument order is ignored, e.g.::" msgstr "" +"Lors de la comparaison d'unions, l'ordre des arguments est ignoré, par " +"exemple ::" -#: ../Doc/library/typing.rst:976 +#: ../Doc/library/typing.rst:1026 msgid "You cannot subclass or instantiate a union." -msgstr "" +msgstr "Vous ne pouvez pas sous-classer ou instancier une union." -#: ../Doc/library/typing.rst:978 +#: ../Doc/library/typing.rst:1028 msgid "You cannot write ``Union[X][Y]``." -msgstr "" +msgstr "Vous ne pouvez pas écrire ``Union[X][Y]``." -#: ../Doc/library/typing.rst:980 +#: ../Doc/library/typing.rst:1030 msgid "You can use ``Optional[X]`` as a shorthand for ``Union[X, None]``." msgstr "" +"Vous pouvez utiliser l'abréviation ``Optional[X]`` pour ``Union[X, None]``." -#: ../Doc/library/typing.rst:982 +#: ../Doc/library/typing.rst:1032 msgid "Don't remove explicit subclasses from unions at runtime." -msgstr "" +msgstr "Ne supprime pas les sous-classes explicites des unions à l'exécution." -#: ../Doc/library/typing.rst:987 +#: ../Doc/library/typing.rst:1037 msgid "Optional type." -msgstr "" +msgstr "Type « optionnel »." -#: ../Doc/library/typing.rst:989 +#: ../Doc/library/typing.rst:1039 msgid "``Optional[X]`` is equivalent to ``Union[X, None]``." -msgstr "" +msgstr "``Optional[X]`` équivaut à ``Union[X, None]``." -#: ../Doc/library/typing.rst:991 +#: ../Doc/library/typing.rst:1041 msgid "" "Note that this is not the same concept as an optional argument, which is one " "that has a default. An optional argument with a default does not require " "the ``Optional`` qualifier on its type annotation just because it is " "optional. For example::" msgstr "" +"Notez que ce n'est pas le même concept qu'un argument optionnel, qui est un " +"argument qui possède une valeur par défaut. Un argument optionnel (qui a une " +"valeur par défaut) ne nécessite pas, à ce titre, le qualificatif " +"``Optional`` sur son annotation de type. Par exemple ::" -#: ../Doc/library/typing.rst:999 +#: ../Doc/library/typing.rst:1049 msgid "" "On the other hand, if an explicit value of ``None`` is allowed, the use of " "``Optional`` is appropriate, whether the argument is optional or not. For " "example::" msgstr "" +"Par contre, si une valeur explicite de ``None`` est permise, l'utilisation " +"de ``Optional`` est appropriée, que l'argument soit facultatif ou non. Par " +"exemple ::" -#: ../Doc/library/typing.rst:1008 +#: ../Doc/library/typing.rst:1058 msgid "" "Tuple type; ``Tuple[X, Y]`` is the type of a tuple of two items with the " "first item of type X and the second of type Y." msgstr "" -#: ../Doc/library/typing.rst:1011 +#: ../Doc/library/typing.rst:1061 msgid "" "Example: ``Tuple[T1, T2]`` is a tuple of two elements corresponding to type " "variables T1 and T2. ``Tuple[int, float, str]`` is a tuple of an int, a " "float and a string." msgstr "" +"Exemple : ``Tuple[T1, T2]`` est une paire correspondant aux variables de " +"type ``T1`` et ``T2``. ``Tuple[int, float, str]`` est un triplet composé " +"d'un entier, d'un flottant et d'une chaîne de caractères." -#: ../Doc/library/typing.rst:1015 +#: ../Doc/library/typing.rst:1065 msgid "" "To specify a variable-length tuple of homogeneous type, use literal " "ellipsis, e.g. ``Tuple[int, ...]``. A plain :data:`Tuple` is equivalent to " "``Tuple[Any, ...]``, and in turn to :class:`tuple`." msgstr "" +"Pour spécifier un n-uplet de longueur variable et de type homogène, utilisez " +"une ellipse, par exemple ``Tuple[int, ....]``. Un n-uplet :data:`Tuple` est " +"équivalent à ``Tuple[Any, ....]`` et, à son tour, à :class:`tuple`." -#: ../Doc/library/typing.rst:1021 +#: ../Doc/library/typing.rst:1071 msgid "Callable type; ``Callable[[int], str]`` is a function of (int) -> str." msgstr "" +"Type Appelable. ``Callable[[int], str]`` est une fonction de type ``(int) -> " +"str``." -#: ../Doc/library/typing.rst:1023 +#: ../Doc/library/typing.rst:1073 msgid "" "The subscription syntax must always be used with exactly two values: the " "argument list and the return type. The argument list must be a list of " "types or an ellipsis; the return type must be a single type." msgstr "" +"La syntaxe de sélection (*subscription* en anglais) doit toujours être " +"utilisée avec exactement deux valeurs : la liste d'arguments et le type de " +"retour. La liste d'arguments doit être une liste de types ou une ellipse ; " +"il doit y avoir un seul type de retour." -#: ../Doc/library/typing.rst:1028 +#: ../Doc/library/typing.rst:1078 msgid "" "There is no syntax to indicate optional or keyword arguments; such function " "types are rarely used as callback types. ``Callable[..., ReturnType]`` " @@ -930,49 +1205,73 @@ msgid "" "equivalent to ``Callable[..., Any]``, and in turn to :class:`collections.abc." "Callable`." msgstr "" +"Il n'y a pas de syntaxe pour indiquer les arguments optionnels ou les " +"arguments par mots-clés ; de tels types de fonctions sont rarement utilisés " +"comme types de rappel. ``Callable[..., ReturnType]`` (ellipse) peut être " +"utilisé pour annoter le type d'un appelable, prenant un nombre quelconque " +"d'arguments et renvoyant ``ReturnType``. Un simple :data:`Callable` est " +"équivalent à ``Callable[..., Any]`` et, à son tour, à :class:`collections." +"abc.Callable`." -#: ../Doc/library/typing.rst:1038 +#: ../Doc/library/typing.rst:1088 msgid "Special type construct to mark class variables." msgstr "" +"Construction de type particulière pour indiquer les variables de classe." -#: ../Doc/library/typing.rst:1040 +#: ../Doc/library/typing.rst:1090 msgid "" "As introduced in :pep:`526`, a variable annotation wrapped in ClassVar " "indicates that a given attribute is intended to be used as a class variable " "and should not be set on instances of that class. Usage::" msgstr "" +"Telle qu'introduite dans la :pep:`526`, une annotation de variable " +"enveloppée dans ClassVar indique qu'un attribut donné est destiné à être " +"utilisé comme une variable de classe et ne doit pas être défini sur des " +"instances de cette classe. Utilisation ::" -#: ../Doc/library/typing.rst:1048 +#: ../Doc/library/typing.rst:1098 msgid ":data:`ClassVar` accepts only types and cannot be further subscribed." -msgstr "" +msgstr ":data:`ClassVar` n'accepte que les types et ne peut plus être dérivé." -#: ../Doc/library/typing.rst:1050 +#: ../Doc/library/typing.rst:1100 msgid "" ":data:`ClassVar` is not a class itself, and should not be used with :func:" "`isinstance` or :func:`issubclass`. :data:`ClassVar` does not change Python " "runtime behavior, but it can be used by third-party type checkers. For " "example, a type checker might flag the following code as an error::" msgstr "" +":data:`ClassVar` n'est pas une classe en soi, et ne devrait pas être " +"utilisée avec :func:`isinstance` ou :func:`issubclass`. :data:`ClassVar` ne " +"modifie pas le comportement d'exécution Python, mais il peut être utilisé " +"par des vérificateurs tiers. Par exemple, un vérificateur de type peut " +"marquer le code suivant comme une erreur ::" -#: ../Doc/library/typing.rst:1064 +#: ../Doc/library/typing.rst:1114 msgid "" "``AnyStr`` is a type variable defined as ``AnyStr = TypeVar('AnyStr', str, " "bytes)``." msgstr "" +"``AnyStr`` est une variable de type définie comme ``AnyStr = " +"TypeVar('AnyStr', str, bytes)``." -#: ../Doc/library/typing.rst:1067 +#: ../Doc/library/typing.rst:1117 msgid "" "It is meant to be used for functions that may accept any kind of string " "without allowing different kinds of strings to mix. For example::" msgstr "" +"Cela est destiné à être utilisé pour des fonctions qui peuvent accepter " +"n'importe quel type de chaîne de caractères sans permettre à différents " +"types de chaînes de caractères de se mélanger. Par exemple ::" -#: ../Doc/library/typing.rst:1079 +#: ../Doc/library/typing.rst:1129 msgid "" "A special constant that is assumed to be ``True`` by 3rd party static type " "checkers. It is ``False`` at runtime. Usage::" msgstr "" +"Constante spéciale qui vaut ``True`` pour les vérificateurs de type " +"statiques tiers et ``False`` à l'exécution. Utilisation ::" -#: ../Doc/library/typing.rst:1088 +#: ../Doc/library/typing.rst:1138 msgid "" "Note that the first type annotation must be enclosed in quotes, making it a " "\"forward reference\", to hide the ``expensive_mod`` reference from the " diff --git a/library/unicodedata.po b/library/unicodedata.po index 9a1fdc19a..941cbf5bf 100644 --- a/library/unicodedata.po +++ b/library/unicodedata.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-29 19:35+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-11 17:16+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/unicodedata.rst:2 msgid ":mod:`unicodedata` --- Unicode Database" -msgstr ":mod:`unicodedata` --- Base de données Unicode" +msgstr ":mod:`unicodedata` — Base de données Unicode" #: ../Doc/library/unicodedata.rst:18 msgid "" @@ -38,18 +38,18 @@ msgid "" "Annex #44, `\"Unicode Character Database\" `_. It defines the following functions:" msgstr "" -"Ce module utilise les noms et symboles définis dans l'annexe 44 du standard " -"Unicode (*Unicode Standard Annex*), `\"Unicode Character Database\" `_. Il définit les fonctions " -"suivantes :" +"Ce module utilise les mêmes noms et symboles définis dans l'annexe 44 du " +"standard Unicode (*Unicode Standard Annex*), `\"Unicode Character Database\" " +"`_. Il définit les " +"fonctions suivantes :" #: ../Doc/library/unicodedata.rst:31 msgid "" "Look up character by name. If a character with the given name is found, " "return the corresponding character. If not found, :exc:`KeyError` is raised." msgstr "" -"Retrouver un caractère par nom. Si un caractère correspondant au nom passé " -"en paramètre est trouvé, renvoyer ce caractère. S'il n'est pas trouvé, :exc:" +"Retrouver un caractère par nom. Si un caractère avec le nom donné est " +"trouvé, renvoyer le caractère correspondant. S'il n'est pas trouvé, :exc:" "`KeyError` est levée." #: ../Doc/library/unicodedata.rst:34 @@ -62,9 +62,9 @@ msgid "" "defined, *default* is returned, or, if not given, :exc:`ValueError` is " "raised." msgstr "" -"Renvoie le nom correspondant au caractère *chr* comme une chaîne de " -"caractères. Si aucun nom est défini, *default* est renvoyé, ou, si ce " -"dernier n'est pas renseigné :exc:`ValueError` est levée." +"Renvoie le nom assigné au caractère *chr* comme une chaîne de caractères. Si " +"aucun nom n'est défini, *default* est renvoyé, ou, si ce dernier n'est pas " +"renseigné :exc:`ValueError` est levée." #: ../Doc/library/unicodedata.rst:47 msgid "" @@ -72,9 +72,9 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" -"Renvoie la valeur décimale correspondante au caractère *chr* comme un " -"entier. Si aucune valeur de ce type n'est définie, *default* est renvoyé, " -"ou, si ce dernier n'est pas renseigné, :exc:`ValueError` est levée." +"Renvoie la valeur décimale assignée au caractère *chr* comme un entier. Si " +"aucune valeur de ce type n'est définie, *default* est renvoyé, ou, si ce " +"dernier n'est pas renseigné, :exc:`ValueError` est levée." #: ../Doc/library/unicodedata.rst:54 msgid "" @@ -82,9 +82,9 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" -"Renvoie le chiffre correspondant au caractère *chr* comme un entier. Si " -"aucune valeur de ce type n'est définie, *default* est renvoyé, ou, si ce " -"dernier n'est pas renseigné, :exc:`ValueError` est levée." +"Renvoie le chiffre assigné au caractère *chr* comme un entier. Si aucune " +"valeur de ce type n'est définie, *default* est renvoyé, ou, si ce dernier " +"n'est pas renseigné, :exc:`ValueError` est levée." #: ../Doc/library/unicodedata.rst:61 msgid "" @@ -92,38 +92,38 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" -"Renvoie la valeur numérique correspondante au caractère *chr* comme un " -"entier. Si aucune valeur de ce type n'est définie, *default* est renvoyé, " -"ou, si ce dernier n'est pas renseigné, :exc:`ValueError` est levée." +"Renvoie la valeur numérique assignée au caractère *chr* comme un entier. Si " +"aucune valeur de ce type n'est définie, *default* est renvoyé, ou, si ce " +"dernier n'est pas renseigné, :exc:`ValueError` est levée." #: ../Doc/library/unicodedata.rst:68 msgid "Returns the general category assigned to the character *chr* as string." msgstr "" -"Renvoie la catégorie générale correspondante au caractère *chr* comme une " -"chaîne de caractères." +"Renvoie la catégorie générale assignée au caractère *chr* comme une chaîne " +"de caractères." #: ../Doc/library/unicodedata.rst:74 msgid "" "Returns the bidirectional class assigned to the character *chr* as string. " "If no such value is defined, an empty string is returned." msgstr "" -"Renvoie la classe bidirectionnelle correspondante au caractère *chr* comme " -"une chaîne de caractères. Si aucune valeur de ce type n'est définie, une " -"chaîne de caractères vide est renvoyée." +"Renvoie la classe bidirectionnelle assignée au caractère *chr* comme une " +"chaîne de caractères. Si aucune valeur de ce type n'est définie, une chaîne " +"de caractères vide est renvoyée." #: ../Doc/library/unicodedata.rst:80 msgid "" "Returns the canonical combining class assigned to the character *chr* as " "integer. Returns ``0`` if no combining class is defined." msgstr "" -"Renvoie la classe de combinaison canonique correspondante au caractère *chr* " -"comme un entier. Envoie ``0`` si aucune classe de combinaison n'est définie." +"Renvoie la classe de combinaison canonique assignée au caractère *chr* comme " +"un entier. Envoie ``0`` si aucune classe de combinaison n'est définie." #: ../Doc/library/unicodedata.rst:86 msgid "Returns the east asian width assigned to the character *chr* as string." msgstr "" -"Renvoie la largeur est-asiatique correspondante à un caractère *chr* comme " -"une chaîne de caractères." +"Renvoie la largeur est-asiatique assignée à un caractère *chr* comme une " +"chaîne de caractères." #: ../Doc/library/unicodedata.rst:92 msgid "" @@ -131,16 +131,16 @@ msgid "" "Returns ``1`` if the character has been identified as a \"mirrored\" " "character in bidirectional text, ``0`` otherwise." msgstr "" -"Renvoie la propriété miroir correspondante au caractère *chr* comme un " -"entier. Renvoie ``1`` si le caractère a été identifié comme un caractère " -"\"réfléchi\" dans du texte bidirectionnel, sinon ``0``." +"Renvoie la propriété miroir assignée au caractère *chr* comme un entier. " +"Renvoie ``1`` si le caractère a été identifié comme un caractère \"réfléchi" +"\" dans du texte bidirectionnel, sinon ``0``." #: ../Doc/library/unicodedata.rst:99 msgid "" "Returns the character decomposition mapping assigned to the character *chr* " "as string. An empty string is returned in case no such mapping is defined." msgstr "" -"Renvoie le tableau associatif de décomposition de caractère correspondant au " +"Renvoie le tableau associatif de décomposition de caractère assigné au " "caractère *chr* comme une chaîne de caractères. Une chaîne de caractère vide " "est renvoyée dans le cas où aucun tableau associatif de ce type n'est défini." @@ -218,7 +218,7 @@ msgid "" "compare equal." msgstr "" "Même si deux chaînes de caractères Unicode sont normalisées et ont la même " -"apparence pour un lecteur humain , si un a des caractères combinés alors que " +"apparence pour un lecteur humain , si un a des caractères combinés et " "l'autre n'en a pas, elles peuvent ne pas être égales lors d'une comparaison." #: ../Doc/library/unicodedata.rst:137 @@ -242,7 +242,7 @@ msgstr "" #: ../Doc/library/unicodedata.rst:150 msgid "Examples:" -msgstr "Exemples : ::" +msgstr "Exemples :" #: ../Doc/library/unicodedata.rst:170 msgid "Footnotes" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index f67f582c9..182ebc438 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -20,35 +20,40 @@ msgstr "" #: ../Doc/library/unittest.mock-examples.rst:13 msgid "Using Mock" -msgstr "" +msgstr "Utilisation de Mock ou l'art de singer" #: ../Doc/library/unittest.mock-examples.rst:16 msgid "Mock Patching Methods" -msgstr "" +msgstr "Simulation des méthodes" #: ../Doc/library/unittest.mock-examples.rst:18 msgid "Common uses for :class:`Mock` objects include:" -msgstr "" +msgstr "Usages courant de :class:`Mock` :" #: ../Doc/library/unittest.mock-examples.rst:20 msgid "Patching methods" -msgstr "" +msgstr "Substitution des méthodes" #: ../Doc/library/unittest.mock-examples.rst:21 msgid "Recording method calls on objects" -msgstr "" +msgstr "Enregistrement des appels faits sur les objets" #: ../Doc/library/unittest.mock-examples.rst:23 msgid "" "You might want to replace a method on an object to check that it is called " "with the correct arguments by another part of the system:" msgstr "" +"On peut remplacer une méthode sur un objet pour contrôler qu'elle est bien " +"appelée avec le nombre correct d'arguments :" #: ../Doc/library/unittest.mock-examples.rst:31 msgid "" "Once our mock has been used (``real.method`` in this example) it has methods " "and attributes that allow you to make assertions about how it has been used." msgstr "" +"Une fois notre objet simulacre appelé (via ``real.method`` dans notre " +"exemple), il fournit des méthodes et attributs permettant de valider comment " +"il a été appelé." #: ../Doc/library/unittest.mock-examples.rst:36 msgid "" @@ -56,6 +61,10 @@ msgid "" "are interchangeable. As the ``MagicMock`` is the more capable class it makes " "a sensible one to use by default." msgstr "" +"Dans la majeure partie des exemples donnés ici, les classes :class:`Mock` " +"et :class:`MagicMock` sont interchangeables. Étant donné que ``MagicMock`` " +"est la classe la plus puissante des deux, cela fait sens de l'utiliser par " +"défaut." #: ../Doc/library/unittest.mock-examples.rst:40 msgid "" @@ -64,16 +73,22 @@ msgid "" "or :meth:`~Mock.assert_called_once_with` method to check that it was called " "with the correct arguments." msgstr "" +"Une fois l'objet Mock appelé, son attribut :attr:`~Mock.called` est défini à " +"``True``. Qui plus est, nous pouvons utiliser les méthodes :meth:`~Mock." +"assert_called_with` ou :meth:`~Mock.assert_called_once_with` pour contrôler " +"qu'il a été appelé avec les bons arguments." #: ../Doc/library/unittest.mock-examples.rst:45 msgid "" "This example tests that calling ``ProductionClass().method`` results in a " "call to the ``something`` method:" msgstr "" +"Cet exemple teste que l'appel de la méthode ``ProductionClass().method`` " +"implique bien celui de la méthode ``something`` :" #: ../Doc/library/unittest.mock-examples.rst:62 msgid "Mock for Method Calls on an Object" -msgstr "" +msgstr "S'assurer de la bonne utilisation d'un objet" #: ../Doc/library/unittest.mock-examples.rst:64 msgid "" @@ -82,18 +97,27 @@ msgid "" "method (or some part of the system under test) and then check that it is " "used in the correct way." msgstr "" +"Dans l'exemple précédent, nous avons directement remplacé une méthode par un " +"objet (afin de valider que l'appel était correct). Une autre façon de faire " +"est de passer un objet Mock en argument d'une méthode (ou de tout autre " +"partie du code à tester) et ensuite de contrôler que notre objet a été " +"utilisé de la façon attendue." #: ../Doc/library/unittest.mock-examples.rst:69 msgid "" "The simple ``ProductionClass`` below has a ``closer`` method. If it is " "called with an object then it calls ``close`` on it." msgstr "" +"Ci-dessous, ``ProductionClass`` dispose d'une méthode ``closer``. Si on " +"l'appelle avec un objet, alors elle appelle la méthode ``close`` dessus." #: ../Doc/library/unittest.mock-examples.rst:77 msgid "" "So to test it we need to pass in an object with a ``close`` method and check " "that it was called correctly." msgstr "" +"Ainsi, pour tester cette classe, nous devons lui passer un objet ayant une " +"méthode ``close``, puis vérifier qu'elle a bien été appelée." #: ../Doc/library/unittest.mock-examples.rst:85 msgid "" @@ -102,10 +126,15 @@ msgid "" "accessing it in the test will create it, but :meth:`~Mock." "assert_called_with` will raise a failure exception." msgstr "" +"En fait, nous n'avons pas à nous soucier de fournir la méthode ``close`` " +"dans notre objet « simulé ». Le simple fait d'accéder à la méthode ``close`` " +"l'a crée. Si par contre la méthode ``close`` n'a pas été appelée alors, bien " +"que le test la créée en y accédant, :meth:`~Mock.assert_called_with` lèvera " +"une exception." #: ../Doc/library/unittest.mock-examples.rst:92 msgid "Mocking Classes" -msgstr "" +msgstr "Simulation des classes" #: ../Doc/library/unittest.mock-examples.rst:94 msgid "" @@ -114,6 +143,11 @@ msgid "" "Instances are created by *calling the class*. This means you access the " "\"mock instance\" by looking at the return value of the mocked class." msgstr "" +"Un cas d'utilisation courant consiste à émuler les classes instanciées par " +"le code que nous testons. Quand on *patch* une classe, alors cette classe " +"est remplacée par un objet *mock*. Les instances de la classe étant créées " +"en *appelant la classe*, on accède à « l'instance *mock* » via la valeur de " +"retour de la classe émulée." #: ../Doc/library/unittest.mock-examples.rst:99 msgid "" @@ -159,61 +193,68 @@ msgid "" "``mock_calls``:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:158 +#: ../Doc/library/unittest.mock-examples.rst:156 +msgid "" +"However, parameters to calls that return mocks are not recorded, which means " +"it is not possible to track nested calls where the parameters used to create " +"ancestors are important:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:167 msgid "Setting Return Values and Attributes" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:160 +#: ../Doc/library/unittest.mock-examples.rst:169 msgid "Setting the return values on a mock object is trivially easy:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:167 +#: ../Doc/library/unittest.mock-examples.rst:176 msgid "Of course you can do the same for methods on the mock:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:174 +#: ../Doc/library/unittest.mock-examples.rst:183 msgid "The return value can also be set in the constructor:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:180 +#: ../Doc/library/unittest.mock-examples.rst:189 msgid "If you need an attribute setting on your mock, just do it:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:187 +#: ../Doc/library/unittest.mock-examples.rst:196 msgid "" "Sometimes you want to mock up a more complex situation, like for example " "``mock.connection.cursor().execute(\"SELECT 1\")``. If we wanted this call " "to return a list, then we have to configure the result of the nested call." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:191 +#: ../Doc/library/unittest.mock-examples.rst:200 msgid "" "We can use :data:`call` to construct the set of calls in a \"chained call\" " "like this for easy assertion afterwards:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:205 +#: ../Doc/library/unittest.mock-examples.rst:214 msgid "" "It is the call to ``.call_list()`` that turns our call object into a list of " "calls representing the chained calls." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:210 +#: ../Doc/library/unittest.mock-examples.rst:219 msgid "Raising exceptions with mocks" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:212 +#: ../Doc/library/unittest.mock-examples.rst:221 msgid "" "A useful attribute is :attr:`~Mock.side_effect`. If you set this to an " "exception class or instance then the exception will be raised when the mock " "is called." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:224 +#: ../Doc/library/unittest.mock-examples.rst:233 msgid "Side effect functions and iterables" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:226 +#: ../Doc/library/unittest.mock-examples.rst:235 msgid "" "``side_effect`` can also be set to a function or an iterable. The use case " "for ``side_effect`` as an iterable is where your mock is going to be called " @@ -222,7 +263,7 @@ msgid "" "value from the iterable:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:241 +#: ../Doc/library/unittest.mock-examples.rst:250 msgid "" "For more advanced use cases, like dynamically varying the return values " "depending on what the mock is called with, ``side_effect`` can be a " @@ -230,11 +271,11 @@ msgid "" "Whatever the function returns is what the call returns:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:258 +#: ../Doc/library/unittest.mock-examples.rst:267 msgid "Creating a Mock from an Existing Object" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:260 +#: ../Doc/library/unittest.mock-examples.rst:269 msgid "" "One problem with over use of mocking is that it couples your tests to the " "implementation of your mocks rather than your real code. Suppose you have a " @@ -244,7 +285,7 @@ msgid "" "then your tests will continue to pass even though your code is now broken!" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:267 +#: ../Doc/library/unittest.mock-examples.rst:276 msgid "" ":class:`Mock` allows you to provide an object as a specification for the " "mock, using the *spec* keyword argument. Accessing methods / attributes on " @@ -254,38 +295,41 @@ msgid "" "without you having to instantiate the class in those tests." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:280 +#: ../Doc/library/unittest.mock-examples.rst:289 msgid "" "Using a specification also enables a smarter matching of calls made to the " "mock, regardless of whether some parameters were passed as positional or " "named arguments::" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:291 +#: ../Doc/library/unittest.mock-examples.rst:300 msgid "" "If you want this smarter matching to also work with method calls on the " "mock, you can use :ref:`auto-speccing `." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:294 +#: ../Doc/library/unittest.mock-examples.rst:303 msgid "" "If you want a stronger form of specification that prevents the setting of " "arbitrary attributes as well as the getting of them then you can use " "*spec_set* instead of *spec*." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:301 +#: ../Doc/library/unittest.mock-examples.rst:310 msgid "Patch Decorators" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:305 +#: ../Doc/library/unittest.mock-examples.rst:314 msgid "" "With :func:`patch` it matters that you patch objects in the namespace where " "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" +"Avec :func:`patch`, il est important de *patcher* les objets dans l'espace " +"de nommage où ils sont recherchés. C'est ce qui se fait normalement, mais " +"pour un guide rapide, lisez :ref:`où patcher `." -#: ../Doc/library/unittest.mock-examples.rst:310 +#: ../Doc/library/unittest.mock-examples.rst:319 msgid "" "A common need in tests is to patch a class attribute or a module attribute, " "for example patching a builtin or patching a class in a module to test that " @@ -294,7 +338,7 @@ msgid "" "tests and cause hard to diagnose problems." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:316 +#: ../Doc/library/unittest.mock-examples.rst:325 msgid "" "mock provides three convenient decorators for this: :func:`patch`, :func:" "`patch.object` and :func:`patch.dict`. ``patch`` takes a single string, of " @@ -305,37 +349,37 @@ msgid "" "to patch it with." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:324 +#: ../Doc/library/unittest.mock-examples.rst:333 msgid "``patch.object``:" msgstr "``patch.object``:" -#: ../Doc/library/unittest.mock-examples.rst:341 +#: ../Doc/library/unittest.mock-examples.rst:350 msgid "" "If you are patching a module (including :mod:`builtins`) then use :func:" "`patch` instead of :func:`patch.object`:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:351 +#: ../Doc/library/unittest.mock-examples.rst:360 msgid "" "The module name can be 'dotted', in the form ``package.module`` if needed:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:360 +#: ../Doc/library/unittest.mock-examples.rst:369 msgid "A nice pattern is to actually decorate test methods themselves:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:371 +#: ../Doc/library/unittest.mock-examples.rst:380 msgid "" "If you want to patch with a Mock, you can use :func:`patch` with only one " "argument (or :func:`patch.object` with two arguments). The mock will be " "created for you and passed into the test function / method:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:383 +#: ../Doc/library/unittest.mock-examples.rst:392 msgid "You can stack up multiple patch decorators using this pattern:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:394 +#: ../Doc/library/unittest.mock-examples.rst:403 msgid "" "When you nest patch decorators the mocks are passed in to the decorated " "function in the same order they applied (the normal *Python* order that " @@ -343,45 +387,48 @@ msgid "" "above the mock for ``test_module.ClassName2`` is passed in first." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:399 +#: ../Doc/library/unittest.mock-examples.rst:408 msgid "" "There is also :func:`patch.dict` for setting values in a dictionary just " "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" +"Il existe également :func:`patch.dict` pour définir des valeurs d'un " +"dictionnaire au sein d'une portée et restaurer ce dictionnaire à son état " +"d'origine lorsque le test se termine ::" -#: ../Doc/library/unittest.mock-examples.rst:410 +#: ../Doc/library/unittest.mock-examples.rst:419 msgid "" "``patch``, ``patch.object`` and ``patch.dict`` can all be used as context " "managers." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:412 +#: ../Doc/library/unittest.mock-examples.rst:421 msgid "" "Where you use :func:`patch` to create a mock for you, you can get a " "reference to the mock using the \"as\" form of the with statement:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:427 +#: ../Doc/library/unittest.mock-examples.rst:436 msgid "" "As an alternative ``patch``, ``patch.object`` and ``patch.dict`` can be used " "as class decorators. When used in this way it is the same as applying the " "decorator individually to every method whose name starts with \"test\"." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:435 +#: ../Doc/library/unittest.mock-examples.rst:444 msgid "Further Examples" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:438 +#: ../Doc/library/unittest.mock-examples.rst:447 msgid "Here are some more examples for some slightly more advanced scenarios." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:442 +#: ../Doc/library/unittest.mock-examples.rst:451 msgid "Mocking chained calls" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:444 +#: ../Doc/library/unittest.mock-examples.rst:453 msgid "" "Mocking chained calls is actually straightforward with mock once you " "understand the :attr:`~Mock.return_value` attribute. When a mock is called " @@ -389,31 +436,31 @@ msgid "" "called, a new :class:`Mock` is created." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:449 +#: ../Doc/library/unittest.mock-examples.rst:458 msgid "" "This means that you can see how the object returned from a call to a mocked " "object has been used by interrogating the ``return_value`` mock:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:457 +#: ../Doc/library/unittest.mock-examples.rst:466 msgid "" "From here it is a simple step to configure and then make assertions about " "chained calls. Of course another alternative is writing your code in a more " "testable way in the first place..." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:461 +#: ../Doc/library/unittest.mock-examples.rst:470 msgid "So, suppose we have some code that looks a little bit like this:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:470 +#: ../Doc/library/unittest.mock-examples.rst:479 msgid "" "Assuming that ``BackendProvider`` is already well tested, how do we test " "``method()``? Specifically, we want to test that the code section ``# more " "code`` uses the response object in the correct way." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:474 +#: ../Doc/library/unittest.mock-examples.rst:483 msgid "" "As this chain of calls is made from an instance attribute we can monkey " "patch the ``backend`` attribute on a ``Something`` instance. In this " @@ -423,26 +470,26 @@ msgid "" "response object uses the builtin :func:`open` as its ``spec``." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:481 +#: ../Doc/library/unittest.mock-examples.rst:490 msgid "" "To do this we create a mock instance as our mock backend and create a mock " "response object for it. To set the response as the return value for that " "final ``start_call`` we could do this::" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:487 +#: ../Doc/library/unittest.mock-examples.rst:496 msgid "" "We can do that in a slightly nicer way using the :meth:`~Mock." "configure_mock` method to directly set the return value for us:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:496 +#: ../Doc/library/unittest.mock-examples.rst:505 msgid "" "With these we monkey patch the \"mock backend\" in place and can make the " "real call:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:502 +#: ../Doc/library/unittest.mock-examples.rst:511 msgid "" "Using :attr:`~Mock.mock_calls` we can check the chained call with a single " "assert. A chained call is several calls in one line of code, so there will " @@ -450,11 +497,11 @@ msgid "" "create this list of calls for us:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:513 +#: ../Doc/library/unittest.mock-examples.rst:522 msgid "Partial mocking" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:515 +#: ../Doc/library/unittest.mock-examples.rst:524 msgid "" "In some tests I wanted to mock out a call to :meth:`datetime.date.today` to " "return a known date, but I didn't want to prevent the code under test from " @@ -463,14 +510,14 @@ msgid "" "method." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:520 +#: ../Doc/library/unittest.mock-examples.rst:529 msgid "" "I found a simple way of doing this that involved effectively wrapping the " "date class with a mock, but passing through calls to the constructor to the " "real class (and returning real instances)." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:524 +#: ../Doc/library/unittest.mock-examples.rst:533 msgid "" "The :func:`patch decorator ` is used here to mock out the ``date`` " "class in the module under test. The :attr:`side_effect` attribute on the " @@ -479,13 +526,13 @@ msgid "" "returned by ``side_effect``." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:539 +#: ../Doc/library/unittest.mock-examples.rst:548 msgid "" "Note that we don't patch :class:`datetime.date` globally, we patch ``date`` " "in the module that *uses* it. See :ref:`where to patch `." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:542 +#: ../Doc/library/unittest.mock-examples.rst:551 msgid "" "When ``date.today()`` is called a known date is returned, but calls to the " "``date(...)`` constructor still return normal dates. Without this you can " @@ -493,30 +540,30 @@ msgid "" "algorithm as the code under test, which is a classic testing anti-pattern." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:547 +#: ../Doc/library/unittest.mock-examples.rst:556 msgid "" "Calls to the date constructor are recorded in the ``mock_date`` attributes " "(``call_count`` and friends) which may also be useful for your tests." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:550 +#: ../Doc/library/unittest.mock-examples.rst:559 msgid "" "An alternative way of dealing with mocking dates, or other builtin classes, " "is discussed in `this blog entry `_." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:556 +#: ../Doc/library/unittest.mock-examples.rst:565 msgid "Mocking a Generator Method" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:558 +#: ../Doc/library/unittest.mock-examples.rst:567 msgid "" "A Python generator is a function or method that uses the :keyword:`yield` " "statement to return a series of values when iterated over [#]_." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:561 +#: ../Doc/library/unittest.mock-examples.rst:570 msgid "" "A generator method / function is called to return the generator object. It " "is the generator object that is then iterated over. The protocol method for " @@ -524,23 +571,23 @@ msgid "" "`MagicMock`." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:566 +#: ../Doc/library/unittest.mock-examples.rst:575 msgid "" "Here's an example class with an \"iter\" method implemented as a generator:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:578 +#: ../Doc/library/unittest.mock-examples.rst:587 msgid "How would we mock this class, and in particular its \"iter\" method?" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:580 +#: ../Doc/library/unittest.mock-examples.rst:589 msgid "" "To configure the values returned from the iteration (implicit in the call " "to :class:`list`), we need to configure the object returned by the call to " "``foo.iter()``." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:588 +#: ../Doc/library/unittest.mock-examples.rst:597 msgid "" "There are also generator expressions and more `advanced uses `_ of generators, but we aren't concerned " @@ -549,11 +596,11 @@ msgid "" "com/generators/>`_." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:596 +#: ../Doc/library/unittest.mock-examples.rst:605 msgid "Applying the same patch to every test method" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:598 +#: ../Doc/library/unittest.mock-examples.rst:607 msgid "" "If you want several patches in place for multiple test methods the obvious " "way is to apply the patch decorators to every method. This can feel like " @@ -563,14 +610,14 @@ msgid "" "methods whose names start with ``test``:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:622 +#: ../Doc/library/unittest.mock-examples.rst:631 msgid "" "An alternative way of managing patches is to use the :ref:`start-and-stop`. " "These allow you to move the patching into your ``setUp`` and ``tearDown`` " "methods." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:638 +#: ../Doc/library/unittest.mock-examples.rst:647 msgid "" "If you use this technique you must ensure that the patching is \"undone\" by " "calling ``stop``. This can be fiddlier than you might think, because if an " @@ -578,11 +625,11 @@ msgid "" "`unittest.TestCase.addCleanup` makes this easier:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:656 +#: ../Doc/library/unittest.mock-examples.rst:665 msgid "Mocking Unbound Methods" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:658 +#: ../Doc/library/unittest.mock-examples.rst:667 msgid "" "Whilst writing tests today I needed to patch an *unbound method* (patching " "the method on the class rather than on the instance). I needed self to be " @@ -596,7 +643,7 @@ msgid "" "becomes a nuisance." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:669 +#: ../Doc/library/unittest.mock-examples.rst:678 msgid "" "If you pass ``autospec=True`` to patch then it does the patching with a " "*real* function object. This function object has the same signature as the " @@ -608,30 +655,30 @@ msgid "" "exactly what I wanted:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:690 +#: ../Doc/library/unittest.mock-examples.rst:699 msgid "" "If we don't use ``autospec=True`` then the unbound method is patched out " "with a Mock instance instead, and isn't called with ``self``." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:695 +#: ../Doc/library/unittest.mock-examples.rst:704 msgid "Checking multiple calls with mock" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:697 +#: ../Doc/library/unittest.mock-examples.rst:706 msgid "" "mock has a nice API for making assertions about how your mock objects are " "used." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:704 +#: ../Doc/library/unittest.mock-examples.rst:713 msgid "" "If your mock is only being called once you can use the :meth:" "`assert_called_once_with` method that also asserts that the :attr:" "`call_count` is one." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:715 +#: ../Doc/library/unittest.mock-examples.rst:724 msgid "" "Both ``assert_called_with`` and ``assert_called_once_with`` make assertions " "about the *most recent* call. If your mock is going to be called several " @@ -639,7 +686,7 @@ msgid "" "attr:`~Mock.call_args_list`:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:727 +#: ../Doc/library/unittest.mock-examples.rst:736 msgid "" "The :data:`call` helper makes it easy to make assertions about these calls. " "You can build up a list of expected calls and compare it to " @@ -647,11 +694,11 @@ msgid "" "``call_args_list``:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:737 +#: ../Doc/library/unittest.mock-examples.rst:746 msgid "Coping with mutable arguments" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:739 +#: ../Doc/library/unittest.mock-examples.rst:748 msgid "" "Another situation is rare, but can bite you, is when your mock is called " "with mutable arguments. ``call_args`` and ``call_args_list`` store " @@ -660,26 +707,26 @@ msgid "" "when the mock was called." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:744 +#: ../Doc/library/unittest.mock-examples.rst:753 msgid "" "Here's some example code that shows the problem. Imagine the following " "functions defined in 'mymodule'::" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:755 +#: ../Doc/library/unittest.mock-examples.rst:764 msgid "" "When we try to test that ``grob`` calls ``frob`` with the correct argument " "look what happens:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:770 +#: ../Doc/library/unittest.mock-examples.rst:779 msgid "" "One possibility would be for mock to copy the arguments you pass in. This " "could then cause problems if you do assertions that rely on object identity " "for equality." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:774 +#: ../Doc/library/unittest.mock-examples.rst:783 msgid "" "Here's one solution that uses the :attr:`side_effect` functionality. If you " "provide a ``side_effect`` function for a mock then ``side_effect`` will be " @@ -689,28 +736,28 @@ msgid "" "doing the assertion. Again a helper function sets this up for me." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:803 +#: ../Doc/library/unittest.mock-examples.rst:812 msgid "" "``copy_call_args`` is called with the mock that will be called. It returns a " "new mock that we do the assertion on. The ``side_effect`` function makes a " "copy of the args and calls our ``new_mock`` with the copy." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:809 +#: ../Doc/library/unittest.mock-examples.rst:818 msgid "" "If your mock is only going to be used once there is an easier way of " "checking arguments at the point they are called. You can simply do the " "checking inside a ``side_effect`` function." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:823 +#: ../Doc/library/unittest.mock-examples.rst:832 msgid "" "An alternative approach is to create a subclass of :class:`Mock` or :class:" "`MagicMock` that copies (using :func:`copy.deepcopy`) the arguments. Here's " "an example implementation:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:847 +#: ../Doc/library/unittest.mock-examples.rst:856 msgid "" "When you subclass ``Mock`` or ``MagicMock`` all dynamically created " "attributes, and the ``return_value`` will use your subclass automatically. " @@ -718,18 +765,18 @@ msgid "" "``CopyingMock``." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:853 +#: ../Doc/library/unittest.mock-examples.rst:862 msgid "Nesting Patches" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:855 +#: ../Doc/library/unittest.mock-examples.rst:864 msgid "" "Using patch as a context manager is nice, but if you do multiple patches you " "can end up with nested with statements indenting further and further to the " "right:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:873 +#: ../Doc/library/unittest.mock-examples.rst:882 msgid "" "With unittest ``cleanup`` functions and the :ref:`start-and-stop` we can " "achieve the same effect without the nested indentation. A simple helper " @@ -737,24 +784,24 @@ msgid "" "mock for us:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:901 +#: ../Doc/library/unittest.mock-examples.rst:910 msgid "Mocking a dictionary with MagicMock" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:903 +#: ../Doc/library/unittest.mock-examples.rst:912 msgid "" "You may want to mock a dictionary, or other container object, recording all " "access to it whilst having it still behave like a dictionary." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:906 +#: ../Doc/library/unittest.mock-examples.rst:915 msgid "" "We can do this with :class:`MagicMock`, which will behave like a dictionary, " "and using :data:`~Mock.side_effect` to delegate dictionary access to a real " "underlying dictionary that is under our control." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:910 +#: ../Doc/library/unittest.mock-examples.rst:919 msgid "" "When the :meth:`__getitem__` and :meth:`__setitem__` methods of our " "``MagicMock`` are called (normal dictionary access) then ``side_effect`` is " @@ -762,49 +809,49 @@ msgid "" "can also control what is returned." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:914 +#: ../Doc/library/unittest.mock-examples.rst:923 msgid "" "After the ``MagicMock`` has been used we can use attributes like :data:" "`~Mock.call_args_list` to assert about how the dictionary was used:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:930 +#: ../Doc/library/unittest.mock-examples.rst:939 msgid "" "An alternative to using ``MagicMock`` is to use ``Mock`` and *only* provide " "the magic methods you specifically want:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:937 +#: ../Doc/library/unittest.mock-examples.rst:946 msgid "" "A *third* option is to use ``MagicMock`` but passing in ``dict`` as the " "*spec* (or *spec_set*) argument so that the ``MagicMock`` created only has " "dictionary magic methods available:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:945 +#: ../Doc/library/unittest.mock-examples.rst:954 msgid "" "With these side effect functions in place, the ``mock`` will behave like a " "normal dictionary but recording the access. It even raises a :exc:`KeyError` " "if you try to access a key that doesn't exist." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:964 +#: ../Doc/library/unittest.mock-examples.rst:973 msgid "" "After it has been used you can make assertions about the access using the " "normal mock methods and attributes:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:976 +#: ../Doc/library/unittest.mock-examples.rst:985 msgid "Mock subclasses and their attributes" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:978 +#: ../Doc/library/unittest.mock-examples.rst:987 msgid "" "There are various reasons why you might want to subclass :class:`Mock`. One " "reason might be to add helper methods. Here's a silly example:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:994 +#: ../Doc/library/unittest.mock-examples.rst:1003 msgid "" "The standard behaviour for ``Mock`` instances is that attributes and the " "return value mocks are of the same type as the mock they are accessed on. " @@ -814,7 +861,7 @@ msgid "" "mock of instances of your subclass." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1010 +#: ../Doc/library/unittest.mock-examples.rst:1019 msgid "" "Sometimes this is inconvenient. For example, `one user `_ is subclassing mock to created a `Twisted " @@ -823,7 +870,7 @@ msgid "" "errors." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1016 +#: ../Doc/library/unittest.mock-examples.rst:1025 msgid "" "``Mock`` (in all its flavours) uses a method called ``_get_child_mock`` to " "create these \"sub-mocks\" for attributes and return values. You can prevent " @@ -832,25 +879,25 @@ msgid "" "are then passed onto the mock constructor:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1033 +#: ../Doc/library/unittest.mock-examples.rst:1042 msgid "" "An exception to this rule are the non-callable mocks. Attributes use the " "callable variant because otherwise non-callable mocks couldn't have callable " "methods." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1039 +#: ../Doc/library/unittest.mock-examples.rst:1048 msgid "Mocking imports with patch.dict" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1041 +#: ../Doc/library/unittest.mock-examples.rst:1050 msgid "" "One situation where mocking can be hard is where you have a local import " "inside a function. These are harder to mock because they aren't using an " "object from the module namespace that we can patch out." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1045 +#: ../Doc/library/unittest.mock-examples.rst:1054 msgid "" "Generally local imports are to be avoided. They are sometimes done to " "prevent circular dependencies, for which there is *usually* a much better " @@ -860,7 +907,7 @@ msgid "" "and only do the import on first use)." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1052 +#: ../Doc/library/unittest.mock-examples.rst:1061 msgid "" "That aside there is a way to use ``mock`` to affect the results of an " "import. Importing fetches an *object* from the :data:`sys.modules` " @@ -870,7 +917,7 @@ msgid "" "back. This need not be the case however." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1059 +#: ../Doc/library/unittest.mock-examples.rst:1068 msgid "" "This means you can use :func:`patch.dict` to *temporarily* put a mock in " "place in :data:`sys.modules`. Any imports whilst this patch is active will " @@ -879,29 +926,29 @@ msgid "" "whatever was there previously will be restored safely." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1065 +#: ../Doc/library/unittest.mock-examples.rst:1074 msgid "Here's an example that mocks out the 'fooble' module." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1076 +#: ../Doc/library/unittest.mock-examples.rst:1085 msgid "" "As you can see the ``import fooble`` succeeds, but on exit there is no " "'fooble' left in :data:`sys.modules`." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1079 +#: ../Doc/library/unittest.mock-examples.rst:1088 msgid "This also works for the ``from module import name`` form:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1089 +#: ../Doc/library/unittest.mock-examples.rst:1098 msgid "With slightly more work you can also mock package imports:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1102 +#: ../Doc/library/unittest.mock-examples.rst:1111 msgid "Tracking order of calls and less verbose call assertions" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1104 +#: ../Doc/library/unittest.mock-examples.rst:1113 msgid "" "The :class:`Mock` class allows you to track the *order* of method calls on " "your mock objects through the :attr:`~Mock.method_calls` attribute. This " @@ -909,7 +956,7 @@ msgid "" "however we can use :attr:`~Mock.mock_calls` to achieve the same effect." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1109 +#: ../Doc/library/unittest.mock-examples.rst:1118 msgid "" "Because mocks track calls to child mocks in ``mock_calls``, and accessing an " "arbitrary attribute of a mock creates a child mock, we can create our " @@ -917,20 +964,20 @@ msgid "" "recorded, in order, in the ``mock_calls`` of the parent:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1126 +#: ../Doc/library/unittest.mock-examples.rst:1135 msgid "" "We can then assert about the calls, including the order, by comparing with " "the ``mock_calls`` attribute on the manager mock:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1133 +#: ../Doc/library/unittest.mock-examples.rst:1142 msgid "" "If ``patch`` is creating, and putting in place, your mocks then you can " "attach them to a manager mock using the :meth:`~Mock.attach_mock` method. " "After attaching calls will be recorded in ``mock_calls`` of the manager." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1153 +#: ../Doc/library/unittest.mock-examples.rst:1162 msgid "" "If many calls have been made, but you're only interested in a particular " "sequence of them then an alternative is to use the :meth:`~Mock." @@ -939,13 +986,13 @@ msgid "" "mock_calls` then the assert succeeds." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1167 +#: ../Doc/library/unittest.mock-examples.rst:1176 msgid "" "Even though the chained call ``m.one().two().three()`` aren't the only calls " "that have been made to the mock, the assert still succeeds." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1170 +#: ../Doc/library/unittest.mock-examples.rst:1179 msgid "" "Sometimes a mock may have several calls made to it, and you are only " "interested in asserting about *some* of those calls. You may not even care " @@ -953,17 +1000,17 @@ msgid "" "``assert_has_calls``:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1182 +#: ../Doc/library/unittest.mock-examples.rst:1191 msgid "More complex argument matching" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1184 +#: ../Doc/library/unittest.mock-examples.rst:1193 msgid "" "Using the same basic concept as :data:`ANY` we can implement matchers to do " "more complex assertions on objects used as arguments to mocks." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1187 +#: ../Doc/library/unittest.mock-examples.rst:1196 msgid "" "Suppose we expect some object to be passed to a mock that by default " "compares equal based on object identity (which is the Python default for " @@ -973,28 +1020,28 @@ msgid "" "attributes for us." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1194 +#: ../Doc/library/unittest.mock-examples.rst:1203 msgid "" "You can see in this example how a 'standard' call to ``assert_called_with`` " "isn't sufficient:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1209 +#: ../Doc/library/unittest.mock-examples.rst:1218 msgid "" "A comparison function for our ``Foo`` class might look something like this:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1221 +#: ../Doc/library/unittest.mock-examples.rst:1230 msgid "" "And a matcher object that can use comparison functions like this for its " "equality operation would look something like this:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1232 +#: ../Doc/library/unittest.mock-examples.rst:1241 msgid "Putting all this together:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1237 +#: ../Doc/library/unittest.mock-examples.rst:1246 msgid "" "The ``Matcher`` is instantiated with our compare function and the ``Foo`` " "object we want to compare against. In ``assert_called_with`` the ``Matcher`` " @@ -1004,13 +1051,13 @@ msgid "" "raised:" msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1250 +#: ../Doc/library/unittest.mock-examples.rst:1259 msgid "" "With a bit of tweaking you could have the comparison function raise the :exc:" "`AssertionError` directly and provide a more useful failure message." msgstr "" -#: ../Doc/library/unittest.mock-examples.rst:1253 +#: ../Doc/library/unittest.mock-examples.rst:1262 msgid "" "As of version 1.5, the Python testing library `PyHamcrest `_ provides similar functionality, that may be " diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 9953f0da3..9d8d43b06 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-04-22 12:07+0200\n" +"Last-Translator: Bousquié Pierre \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/unittest.mock.rst:3 msgid ":mod:`unittest.mock` --- mock object library" -msgstr "" +msgstr ":mod:`unittest.mock` — Bibliothèque d'objets simulacres" #: ../Doc/library/unittest.mock.rst:13 msgid "**Source code:** :source:`Lib/unittest/mock.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/unittest/mock.py`" #: ../Doc/library/unittest.mock.rst:17 msgid "" @@ -28,6 +29,9 @@ msgid "" "replace parts of your system under test with mock objects and make " "assertions about how they have been used." msgstr "" +":mod:`unittest.mock` est une bibliothèque pour tester en Python. Elle permet " +"de remplacer des parties du système sous tests par des objets simulacres et " +"faire des assertions sur la façon dont ces objets ont été utilisés." #: ../Doc/library/unittest.mock.rst:21 msgid "" @@ -37,6 +41,12 @@ msgid "" "and arguments they were called with. You can also specify return values and " "set needed attributes in the normal way." msgstr "" +":mod:`unittest.mock` fournit une classe :class:`Mock` pour ne pas avoir " +"besoin de créer manuellement des objets factices dans la suite de tests. " +"Après avoir effectué une action, on peut faire des assertions sur les " +"méthodes / attributs utilisés et les arguments avec lesquels ils ont été " +"appelés. On peut également spécifier des valeurs renvoyées et définir les " +"attributs nécessaires aux tests." #: ../Doc/library/unittest.mock.rst:27 msgid "" @@ -46,6 +56,11 @@ msgid "" "some examples of how to use :class:`Mock`, :class:`MagicMock` and :func:" "`patch`." msgstr "" +"De plus, *mock* fournit un décorateur :func:`patch` qui est capable de " +"*patcher* les modules et les classes dans la portée d'un test, ainsi que :" +"const:`sentinel` pour créer des objets uniques. Voir le guide rapide `quick " +"guide`_ pour quelques exemples d'utilisation de :class:`Mock`, :class:" +"`MagicMock` et :func:`patch`." #: ../Doc/library/unittest.mock.rst:33 msgid "" @@ -53,16 +68,22 @@ msgid "" "is based on the 'action -> assertion' pattern instead of 'record -> replay' " "used by many mocking frameworks." msgstr "" +"*Mock* est très facile à utiliser et est conçu pour être utilisé avec :mod:" +"`unittest`. *Mock* est basé sur le modèle *action -> assertion* au lieu de " +"*enregistrement -> rejouer* utilisé par de nombreux cadriciels d'objets " +"simulacres." #: ../Doc/library/unittest.mock.rst:37 msgid "" "There is a backport of :mod:`unittest.mock` for earlier versions of Python, " "available as `mock on PyPI `_." msgstr "" +"Il y a un portage de :mod:`unittest.mock` pour les versions antérieures de " +"Python, disponible `sur PyPI `_." #: ../Doc/library/unittest.mock.rst:42 msgid "Quick Guide" -msgstr "" +msgstr "Guide rapide" #: ../Doc/library/unittest.mock.rst:44 msgid "" @@ -71,12 +92,19 @@ msgid "" "can configure them, to specify return values or limit what attributes are " "available, and then make assertions about how they have been used:" msgstr "" +"Les classes :class:`Mock` et :class:`MagicMock` créent tous les attributs et " +"méthodes au fur et à mesure des accès et stockent les détails de la façon " +"dont ils ont été utilisés. On peut les configurer, pour spécifier des " +"valeurs de renvoi ou limiter les attributs utilisables, puis faire des " +"assertions sur la façon dont ils ont été utilisés ::" #: ../Doc/library/unittest.mock.rst:56 msgid "" ":attr:`side_effect` allows you to perform side effects, including raising an " "exception when a mock is called:" msgstr "" +"L'attribut :attr:`side_effect` permet de spécifier des effets de bords, y " +"compris la levée d'une exception lorsqu'un objet simulacre est appelé ::" #: ../Doc/library/unittest.mock.rst:76 msgid "" @@ -85,6 +113,11 @@ msgid "" "from another object. Attempting to access attributes or methods on the mock " "that don't exist on the spec will fail with an :exc:`AttributeError`." msgstr "" +"Il existe beaucoup d'autres façons de configurer et de contrôler le " +"comportement de *Mock*. Par exemple, l'argument *spec* configure le *mock* " +"pour qu'il utilise les spécifications d'un autre objet. Tenter d'accéder à " +"des attributs ou méthodes sur le *mock* qui n'existent pas sur l'objet " +"*spec* lève une :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:81 msgid "" @@ -93,6 +126,10 @@ msgid "" "with a mock (or other object) during the test and restored when the test " "ends:" msgstr "" +"Le décorateur / gestionnaire de contexte :func:`patch` permet de simuler " +"facilement des classes ou des objets dans un module sous tests. L'objet " +"spécifié est remplacé par un objet simulacre (ou autre) pendant le test et " +"est restauré à la fin du test ::" #: ../Doc/library/unittest.mock.rst:100 msgid "" @@ -101,6 +138,11 @@ msgid "" "decorators are applied). This means from the bottom up, so in the example " "above the mock for ``module.ClassName1`` is passed in first." msgstr "" +"Lorsque l'on imbrique des décorateurs de patchs, les *mocks* sont transmis à " +"la fonction décorée dans le même ordre qu'ils ont été déclarés (l'ordre " +"normal *Python* des décorateurs est appliqué). Cela signifie du bas vers le " +"haut, donc dans l'exemple ci-dessus, l'objet simulacre pour ``module." +"ClassName1`` est passé en premier." #: ../Doc/library/unittest.mock.rst:105 msgid "" @@ -108,12 +150,17 @@ msgid "" "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" +"Avec :func:`patch`, il est important de *patcher* les objets dans l'espace " +"de nommage où ils sont recherchés. C'est ce qui se fait normalement, mais " +"pour un guide rapide, lisez :ref:`où patcher `." #: ../Doc/library/unittest.mock.rst:109 msgid "" "As well as a decorator :func:`patch` can be used as a context manager in a " "with statement:" msgstr "" +"Comme tout décorateur, :func:`patch` peut être utilisé comme gestionnaire de " +"contexte avec une instruction *with* ::" #: ../Doc/library/unittest.mock.rst:119 msgid "" @@ -121,6 +168,9 @@ msgid "" "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" +"Il existe également :func:`patch.dict` pour définir des valeurs d'un " +"dictionnaire au sein d'une portée et restaurer ce dictionnaire à son état " +"d'origine lorsque le test se termine ::" #: ../Doc/library/unittest.mock.rst:130 msgid "" @@ -128,6 +178,9 @@ msgid "" "The easiest way of using magic methods is with the :class:`MagicMock` class. " "It allows you to do things like:" msgstr "" +"*Mock* gère le remplacement des :ref:`méthodes magiques ` de " +"Python. La façon la plus simple d'utiliser les méthodes magiques est la " +"classe :class:`MagicMock`. Elle permet de faire des choses comme ::" #: ../Doc/library/unittest.mock.rst:140 msgid "" @@ -136,12 +189,18 @@ msgid "" "is just a Mock variant that has all of the magic methods pre-created for you " "(well, all the useful ones anyway)." msgstr "" +"*Mock* permet d'assigner des fonctions (ou d'autres instances *Mock*) à des " +"méthodes magiques et elles seront appelées correctement. La classe :class:" +"`MagicMock` est juste une variante de *Mock* qui a toutes les méthodes " +"magiques pré-créées (enfin, toutes les méthodes utiles)." #: ../Doc/library/unittest.mock.rst:145 msgid "" "The following is an example of using magic methods with the ordinary Mock " "class:" msgstr "" +"L'exemple suivant est un exemple de création de méthodes magiques avec la " +"classe *Mock* ordinaire ::" #: ../Doc/library/unittest.mock.rst:153 msgid "" @@ -153,12 +212,21 @@ msgid "" "replacing, and any functions and methods (including constructors) have the " "same call signature as the real object." msgstr "" +"Pour être sûr que les objets simulacres dans vos tests ont la même API que " +"les objets qu'ils remplacent, utilisez :ref:`l'auto-spécification `. L'auto-spécification peut se faire via l'argument *autospec* de " +"patch ou par la fonction :func:`create_autospec`. L'auto-spécification crée " +"des objets simulacres qui ont les mêmes attributs et méthodes que les objets " +"qu'ils remplacent, et toutes les fonctions et méthodes (y compris les " +"constructeurs) ont les mêmes signatures d'appel que l'objet réel." #: ../Doc/library/unittest.mock.rst:161 msgid "" "This ensures that your mocks will fail in the same way as your production " "code if they are used incorrectly:" msgstr "" +"Ceci garantit que vos objets simulacres échouent de la même manière que " +"votre code de production s'ils ne sont pas utilisés correctement ::" #: ../Doc/library/unittest.mock.rst:177 msgid "" @@ -166,10 +234,13 @@ msgid "" "signature of the ``__init__`` method, and on callable objects where it " "copies the signature of the ``__call__`` method." msgstr "" +"La fonction :func:`create_autospec` peut aussi être utilisée sur les " +"classes, où elle copie la signature de la méthode ``__init__``, et sur les " +"objets appelables où elle copie la signature de la méthode ``__call__``." #: ../Doc/library/unittest.mock.rst:184 msgid "The Mock Class" -msgstr "" +msgstr "La classe *Mock*" #: ../Doc/library/unittest.mock.rst:187 msgid "" @@ -179,6 +250,12 @@ msgid "" "attribute will always return the same mock. Mocks record how you use them, " "allowing you to make assertions about what your code has done to them." msgstr "" +"La classe :class:`Mock` est un objet simulacre flexible destiné à remplacer " +"l'utilisation d'objets bouchons et factices dans votre code. Les Mocks sont " +"appelables et créent des attributs comme de nouveaux *Mocks* lorsque l'on y " +"accède [#]_. L'accès au même attribut renvoie toujours le même *mock*. Les " +"simulacres enregistrent la façon dont ils sont utilisés, ce qui permet de " +"faire des assertions sur ce que le code leur a fait." #: ../Doc/library/unittest.mock.rst:193 msgid "" @@ -187,6 +264,11 @@ msgid "" "when you are mocking out objects that aren't callable: :class:" "`NonCallableMock` and :class:`NonCallableMagicMock`" msgstr "" +"La classe :class:`MagicMock` est une sous-classe de :class:`Mock` avec " +"toutes les méthodes magiques pré-créées et prête à l'emploi. Il existe " +"également des variantes non appelables, utiles lorsque l'on simule des " +"objets qui ne sont pas appelables : :class:`NonCallableMock` et :class:" +"`NonCallableMagicMock`" #: ../Doc/library/unittest.mock.rst:198 msgid "" @@ -195,12 +277,18 @@ msgid "" "will create a :class:`MagicMock` for you. You can specify an alternative " "class of :class:`Mock` using the *new_callable* argument to :func:`patch`." msgstr "" +"Le décorateur :func:`patch` facilite le remplacement temporaire de classes " +"d'un module avec un objet :class:`Mock`. Par défaut :func:`patch` crée un :" +"class:`MagicMock`. On peut spécifier une classe alternative de :class:`Mock` " +"en utilisant le paramètre *new_callable* de :func:`patch`." #: ../Doc/library/unittest.mock.rst:206 msgid "" "Create a new :class:`Mock` object. :class:`Mock` takes several optional " "arguments that specify the behaviour of the Mock object:" msgstr "" +"Crée un nouvel objet :class:`Mock`. :class:`Mock` prend plusieurs arguments " +"optionnels qui spécifient le comportement de l'objet *Mock* ::" #: ../Doc/library/unittest.mock.rst:209 msgid "" @@ -210,6 +298,12 @@ msgid "" "(excluding unsupported magic attributes and methods). Accessing any " "attribute not in this list will raise an :exc:`AttributeError`." msgstr "" +"*spec* : une liste de chaînes de caractères ou un objet existant (une classe " +"ou une instance) qui sert de spécification pour l'objet simulacre. Si on " +"passe un objet, alors une liste de chaînes de caractères est formée en " +"appelant la fonction *dir* sur l'objet (à l'exclusion des attributs et " +"méthodes magiques non pris en charge). L'accès à un attribut qui n'est pas " +"dans cette liste entraîne la levée d'une exception :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:215 msgid "" @@ -217,6 +311,9 @@ msgid "" "__class__` returns the class of the spec object. This allows mocks to pass :" "func:`isinstance` tests." msgstr "" +"Si *spec* est un objet (plutôt qu'une liste de chaînes de caractères) alors :" +"attr:`~instance.__class__` renvoie la classe de l'objet spécifié. Ceci " +"permet aux *mocks* de passer les tests :func:`isinstance`." #: ../Doc/library/unittest.mock.rst:219 msgid "" @@ -224,6 +321,10 @@ msgid "" "get an attribute on the mock that isn't on the object passed as *spec_set* " "will raise an :exc:`AttributeError`." msgstr "" +"*spec_set* : variante plus stricte de *spec*. S'il est utilisé, essayer " +"d'utiliser la fonction *set* ou tenter d’accéder à un attribut sur le *mock* " +"qui n'est pas sur l'objet passé comme *spec_set* lève une exception :exc:" +"`AttributeError`." #: ../Doc/library/unittest.mock.rst:223 msgid "" @@ -233,22 +334,32 @@ msgid "" "arguments as the mock, and unless it returns :data:`DEFAULT`, the return " "value of this function is used as the return value." msgstr "" +"*side_effect* : fonction à appeler à chaque fois que le *Mock* est appelé. " +"Voir l'attribut :attr:`~Mock.side_effect`. Utile pour lever des exceptions " +"ou modifier dynamiquement les valeurs de retour. La fonction est appelée " +"avec les mêmes arguments que la fonction simulée et, à moins qu'elle ne " +"renvoie :data:`DEFAULT`, la valeur de retour de cette fonction devient la " +"valeur de retour de la fonction simulée." #: ../Doc/library/unittest.mock.rst:229 msgid "" "Alternatively *side_effect* can be an exception class or instance. In this " "case the exception will be raised when the mock is called." msgstr "" +"*side_effect* peut être soit une classe, soit une instance d'exception. Dans " +"ce cas, l'exception est levée lors de l'appel de l'objet simulacre." #: ../Doc/library/unittest.mock.rst:232 msgid "" "If *side_effect* is an iterable then each call to the mock will return the " "next value from the iterable." msgstr "" +"Si *side_effect* est un itérable alors chaque appel au *mock* renvoie la " +"valeur suivante de l’itérable." #: ../Doc/library/unittest.mock.rst:235 msgid "A *side_effect* can be cleared by setting it to ``None``." -msgstr "" +msgstr "Utilisez ``None`` pour remettre à zéro un *side_effect*." #: ../Doc/library/unittest.mock.rst:237 msgid "" @@ -256,6 +367,9 @@ msgid "" "is a new Mock (created on first access). See the :attr:`return_value` " "attribute." msgstr "" +"*return_value* : valeur renvoyée lors de l'appel de l'objet simulacre. Par " +"défaut, il s'agit d'un nouveau *Mock* (créé lors du premier accès). Voir " +"l'attribut :attr:`return_value`." #: ../Doc/library/unittest.mock.rst:241 msgid "" @@ -263,6 +377,9 @@ msgid "" "raise an :exc:`AttributeError`. Passing ``unsafe=True`` will allow access to " "these attributes." msgstr "" +"*unsafe* : par défaut, si un attribut commence par *assert* ou *assret*, une " +"exception :exc:`AttributeError` est levée. Le fait de passer ``unsafe=True`` " +"permet d'accéder à ces attributs." #: ../Doc/library/unittest.mock.rst:247 msgid "" @@ -273,18 +390,30 @@ msgid "" "to access an attribute that doesn't exist will raise an :exc:" "`AttributeError`)." msgstr "" +"*wraps* : élément que le simulacre doit simuler. Si *wraps* n'est pas " +"``None`` alors appeler *Mock* passe l'appel à l'objet simulé (renvoyant le " +"résultat réel). L'accès à un attribut sur le *mock* renvoie un objet *Mock* " +"qui simule l'attribut correspondant de l'objet simulé (donc essayer " +"d'accéder à un attribut qui n'existe pas lève une exception :exc:" +"`AttributeError`)." #: ../Doc/library/unittest.mock.rst:254 msgid "" "If the mock has an explicit *return_value* set then calls are not passed to " "the wrapped object and the *return_value* is returned instead." msgstr "" +"Si l'objet simulacre a un ensemble explicite de *return_value* alors les " +"appels ne sont pas passés à l'objet simulé et c'est *return_value* qui est " +"renvoyée à la place." #: ../Doc/library/unittest.mock.rst:257 msgid "" "*name*: If the mock has a name then it will be used in the repr of the mock. " "This can be useful for debugging. The name is propagated to child mocks." msgstr "" +"*name* : Si le *mock* a un nom, il est alors utilisé par la fonction *repr* " +"du *mock*. C'est utile pour le débogage. Le nom est propagé aux enfants de " +"l'objet *mock*." #: ../Doc/library/unittest.mock.rst:261 msgid "" @@ -292,30 +421,38 @@ msgid "" "used to set attributes on the mock after it is created. See the :meth:" "`configure_mock` method for details." msgstr "" +"Les *mocks* peuvent aussi être appelés avec des arguments par mots-clés " +"arbitraires. Ceux-ci sont utilisés pour définir les attributs sur le *mock* " +"après sa création. Voir la méthode :meth:`configure_mock` pour plus de " +"détails." #: ../Doc/library/unittest.mock.rst:267 msgid "Assert that the mock was called at least once." -msgstr "" +msgstr "Asserter que le *mock* a été appelé au moins une fois." #: ../Doc/library/unittest.mock.rst:278 msgid "Assert that the mock was called exactly once." -msgstr "" +msgstr "Asserter que le *mock* a été appelé exactement une fois." #: ../Doc/library/unittest.mock.rst:296 msgid "" "This method is a convenient way of asserting that calls are made in a " "particular way:" msgstr "" +"Cette méthode est un moyen pratique d'asserter que les appels sont effectués " +"d'une manière particulière ::" #: ../Doc/library/unittest.mock.rst:306 msgid "" "Assert that the mock was called exactly once and that that call was with the " "specified arguments." msgstr "" +"Asserter que le simulacre a été appelé exactement une fois et que cet appel " +"était avec les arguments spécifiés." #: ../Doc/library/unittest.mock.rst:321 msgid "assert the mock has been called with the specified arguments." -msgstr "" +msgstr "Asserter que le simulacre a été appelé avec les arguments spécifiés." #: ../Doc/library/unittest.mock.rst:323 msgid "" @@ -324,36 +461,50 @@ msgid "" "the call is the most recent one, and in the case of :meth:" "`assert_called_once_with` it must also be the only call." msgstr "" +"Asserter que le simulacre a *bien* été appelé avec les arguments au cours de " +"la vie du simulacre. Contrairement à :meth:`assert_called_with` et :meth:" +"`assert_called_once_with` qui passent seulement si l'appel demandé " +"correspond bien au dernier appel, et dans le cas de :meth:" +"`assert_called_once_with` l'appel au simulacre doit être unique." #: ../Doc/library/unittest.mock.rst:336 msgid "" "assert the mock has been called with the specified calls. The :attr:" "`mock_calls` list is checked for the calls." msgstr "" +"Asserter que le simulacre a été appelé avec les appels spécifiés. " +"L'attribut :attr:`mock_calls` est comparé à la liste des appels." #: ../Doc/library/unittest.mock.rst:339 msgid "" "If *any_order* is false (the default) then the calls must be sequential. " "There can be extra calls before or after the specified calls." msgstr "" +"Si *any_order* est faux (la valeur par défaut) alors les appels doivent être " +"séquentiels. Il peut y avoir des appels supplémentaires avant ou après les " +"appels spécifiés." #: ../Doc/library/unittest.mock.rst:343 msgid "" "If *any_order* is true then the calls can be in any order, but they must all " "appear in :attr:`mock_calls`." msgstr "" +"Si *any_order* est vrai alors les appels peuvent être dans n'importe quel " +"ordre, mais ils doivent tous apparaître dans :attr:`mock_calls`." #: ../Doc/library/unittest.mock.rst:358 msgid "Assert the mock was never called." -msgstr "" +msgstr "Asserter que le simulacre n'a jamais été appelé." #: ../Doc/library/unittest.mock.rst:373 msgid "The reset_mock method resets all the call attributes on a mock object:" msgstr "" +"La méthode *reset_mock* réinitialise tous les attributs d'appel sur un " +"simulacre :" #: ../Doc/library/unittest.mock.rst:383 msgid "Added two keyword only argument to the reset_mock function." -msgstr "" +msgstr "Ajout de deux arguments nommés à la fonction *reset_mock*." #: ../Doc/library/unittest.mock.rst:386 msgid "" @@ -364,20 +515,34 @@ msgid "" "`side_effect`, then pass the corresponding parameter as ``True``. Child " "mocks and the return value mock (if any) are reset as well." msgstr "" +"Utile pour faire une série d'assertions qui réutilisent le même objet. " +"Attention :meth:`reset_mock` *ne réinitialise pas* la valeur de retour, les :" +"attr:`side_effect` ou tout attribut enfant que vous avez défini en utilisant " +"l'affectation normale par défaut. Pour réinitialiser *return_value* ou :attr:" +"`side_effect`, utiliser les paramètres correspondants avec la valeur " +"``True``. Les simulacres enfants et le simulacre de valeur de retour (le cas " +"échéant) seront également réinitialisés." #: ../Doc/library/unittest.mock.rst:394 msgid "*return_value*, and :attr:`side_effect` are keyword only argument." msgstr "" +"*return_value*, et :attr:`side_effect` sont utilisable uniquement par " +"arguments nommés." #: ../Doc/library/unittest.mock.rst:400 msgid "" "Add a spec to a mock. *spec* can either be an object or a list of strings. " "Only attributes on the *spec* can be fetched as attributes from the mock." msgstr "" +"Ajoute une spécification à un simulacre. *spec* peut être un objet ou une " +"liste de chaînes de caractères. Seuls les attributs de la spécification " +"*spec* peuvent être récupérés en tant qu'attributs du simulacre." #: ../Doc/library/unittest.mock.rst:404 msgid "If *spec_set* is true then only attributes on the spec can be set." msgstr "" +"Si *spec_set* est vrai, seuls les attributs de la spécification peuvent être " +"définis." #: ../Doc/library/unittest.mock.rst:409 msgid "" @@ -385,26 +550,37 @@ msgid "" "Calls to the attached mock will be recorded in the :attr:`method_calls` and :" "attr:`mock_calls` attributes of this one." msgstr "" +"Attache un simulacre comme attribut de l'instance courante, en remplaçant " +"son nom et son parent. Les appels au simulacre attaché sont enregistrés dans " +"les attributs :attr:`method_calls` et :attr:`mock_calls` de l'instance " +"courante." #: ../Doc/library/unittest.mock.rst:416 msgid "Set attributes on the mock through keyword arguments." -msgstr "" +msgstr "Définir les attributs sur le simulacre à l'aide d'arguments nommés." #: ../Doc/library/unittest.mock.rst:418 msgid "" "Attributes plus return values and side effects can be set on child mocks " "using standard dot notation and unpacking a dictionary in the method call:" msgstr "" +"Les attributs, les valeurs de retour et les effets de bords peuvent être " +"définis sur des simulacres enfants en utilisant la notation par points " +"standard et en dépaquetant un dictionnaire dans l'appel de méthode :" #: ../Doc/library/unittest.mock.rst:432 msgid "The same thing can be achieved in the constructor call to mocks:" msgstr "" +"La même chose peut être réalisée en utilisant le constructeur des " +"simulacres :" #: ../Doc/library/unittest.mock.rst:445 msgid "" ":meth:`configure_mock` exists to make it easier to do configuration after " "the mock has been created." msgstr "" +":meth:`configure_mock` existe pour faciliter la configuration après la " +"création du simulacre." #: ../Doc/library/unittest.mock.rst:451 msgid "" @@ -412,12 +588,17 @@ msgid "" "results. For mocks with a *spec* this includes all the permitted attributes " "for the mock." msgstr "" +"Les objets :class:`Mock` limitent les résultats de ``dir(un_mock)`` à des " +"résultats utiles. Pour les simulacres avec une spécification *spec*, cela " +"inclut tous les attributs autorisés du simulacre." #: ../Doc/library/unittest.mock.rst:455 msgid "" "See :data:`FILTER_DIR` for what this filtering does, and how to switch it " "off." msgstr "" +"Voir :data:`FILTER_DIR` pour savoir ce que fait ce filtrage, et comment le " +"désactiver." #: ../Doc/library/unittest.mock.rst:461 msgid "" @@ -425,40 +606,53 @@ msgid "" "mocks will be the same type as the parent. Subclasses of Mock may want to " "override this to customize the way child mocks are made." msgstr "" +"Crée les simulacres enfants pour les attributs et la valeur de retour. Par " +"défaut, les objets simulacre enfants sont du même type que le parent. Les " +"sous-classes de *Mock* peuvent surcharger cette méthode pour personnaliser " +"la façon dont les simulacres enfants sont créés." #: ../Doc/library/unittest.mock.rst:466 msgid "" "For non-callable mocks the callable variant will be used (rather than any " "custom subclass)." msgstr "" +"Pour les simulacres non appelables, la variante appelable est utilisée " +"(plutôt qu'une sous-classe personnalisée)." #: ../Doc/library/unittest.mock.rst:472 msgid "A boolean representing whether or not the mock object has been called:" -msgstr "" +msgstr "Un booléen représentant si le simulacre a bien été appelé ou non :" #: ../Doc/library/unittest.mock.rst:483 msgid "An integer telling you how many times the mock object has been called:" -msgstr "" +msgstr "Un entier indiquant combien de fois le simulacre a été appelé :" #: ../Doc/library/unittest.mock.rst:496 msgid "Set this to configure the value returned by calling the mock:" msgstr "" +"Définir cette option pour configurer la valeur renvoyé par appel du " +"simulacre :" #: ../Doc/library/unittest.mock.rst:503 msgid "" "The default return value is a mock object and you can configure it in the " "normal way:" msgstr "" +"La valeur de revoie par défaut est un simulacre configurable normalement :" #: ../Doc/library/unittest.mock.rst:512 msgid ":attr:`return_value` can also be set in the constructor:" msgstr "" +"L'attribut :attr:`return_value` peut également être défini dans le " +"constructeur :" #: ../Doc/library/unittest.mock.rst:523 msgid "" "This can either be a function to be called when the mock is called, an " "iterable or an exception (class or instance) to be raised." msgstr "" +"C'est soit une fonction à appeler lors de l'appel du simulacre, soit une " +"exception (classe ou instance) à lever." #: ../Doc/library/unittest.mock.rst:526 msgid "" @@ -468,6 +662,11 @@ msgid "" "returns :data:`DEFAULT` then the mock will return its normal value (from " "the :attr:`return_value`)." msgstr "" +"Si vous passez une fonction, elle est appelée avec les mêmes arguments que " +"la fonction simulée et à moins que la fonction ne renvoie le singleton :data:" +"`DEFAULT` l'appel le la fonction simulée renvoie ce que la fonction renvoie. " +"Si la fonction renvoie :data:`DEFAULT` alors le simulacre renvoie sa valeur " +"normale (celle de :attr:`return_value`)." #: ../Doc/library/unittest.mock.rst:532 msgid "" @@ -476,30 +675,39 @@ msgid "" "to be raised, or a value to be returned from the call to the mock (:data:" "`DEFAULT` handling is identical to the function case)." msgstr "" +"Si vous passez un itérable, il est utilisé pour récupérer un itérateur qui " +"doit renvoyer une valeur à chaque appel. Cette valeur peut être soit une " +"instance d'exception à lever, soit une valeur à renvoyer à l'appel au " +"simulacre (le traitement :data:`DEFAULT` est identique au renvoie de la " +"fonction simulée)." #: ../Doc/library/unittest.mock.rst:537 msgid "" "An example of a mock that raises an exception (to test exception handling of " "an API):" msgstr "" +"Un exemple d'un simulacre qui lève une exception (pour tester la gestion des " +"exceptions d'une API) :" #: ../Doc/library/unittest.mock.rst:547 msgid "Using :attr:`side_effect` to return a sequence of values:" -msgstr "" +msgstr "Utiliser :attr:`side_effect` pour renvoyer une séquence de valeurs :" #: ../Doc/library/unittest.mock.rst:554 msgid "Using a callable:" -msgstr "" +msgstr "Utilisation d'un objet appelable :" #: ../Doc/library/unittest.mock.rst:564 msgid "" ":attr:`side_effect` can be set in the constructor. Here's an example that " "adds one to the value the mock is called with and returns it:" msgstr "" +"Un attribut :attr:`side_effect` peut être défini dans le constructeur. Voici " +"un exemple qui ajoute un à la valeur du simulacre appelé et qui le renvoie :" #: ../Doc/library/unittest.mock.rst:574 msgid "Setting :attr:`side_effect` to ``None`` clears it:" -msgstr "" +msgstr "Positionner :attr:`side_effect` sur ``None`` l'efface :" #: ../Doc/library/unittest.mock.rst:588 msgid "" @@ -509,6 +717,11 @@ msgid "" "tuple) and the second member is any keyword arguments (or an empty " "dictionary)." msgstr "" +"C'est soit ``None`` (si le simulacre n'a pas été appelé), soit les arguments " +"avec lesquels le simulacre a été appelé en dernier. Le retour est sous la " +"forme d'un tuple : le premier élément est l'ensemble des arguments ordonnés " +"avec lequel le simulacre a été appelé (ou un tuple vide) et le second " +"élément est l'ensemble des arguments nommés (ou un dictionnaire vide)." #: ../Doc/library/unittest.mock.rst:611 msgid "" @@ -517,6 +730,11 @@ msgid "" "are tuples, so they can be unpacked to get at the individual arguments and " "make more complex assertions. See :ref:`calls as tuples `." msgstr "" +"L'attribut :attr:`call_args`, ainsi que les éléments des listes :attr:" +"`call_args_list`, :attr:`method_calls` et :attr:`mock_calls` sont des " +"objets :data:`call`. Ce sont des tuples, que l'on peut dépaqueter afin de " +"faire des affirmations plus complexes sur chacun des arguments. Voir :ref:" +"`appels comme tuples `." #: ../Doc/library/unittest.mock.rst:620 msgid "" @@ -560,7 +778,14 @@ msgid "" "tuples `." msgstr "" -#: ../Doc/library/unittest.mock.rst:686 +#: ../Doc/library/unittest.mock.rst:685 +msgid "" +"The way :attr:`mock_calls` are recorded means that where nested calls are " +"made, the parameters of ancestor calls are not recorded and so will always " +"compare equal:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:699 msgid "" "Normally the :attr:`__class__` attribute of an object will return its type. " "For a mock object with a :attr:`spec`, ``__class__`` returns the spec class " @@ -568,32 +793,32 @@ msgid "" "object they are replacing / masquerading as:" msgstr "" -#: ../Doc/library/unittest.mock.rst:695 +#: ../Doc/library/unittest.mock.rst:708 msgid "" ":attr:`__class__` is assignable to, this allows a mock to pass an :func:" "`isinstance` check without forcing you to use a spec:" msgstr "" -#: ../Doc/library/unittest.mock.rst:705 +#: ../Doc/library/unittest.mock.rst:718 msgid "" "A non-callable version of :class:`Mock`. The constructor parameters have the " "same meaning of :class:`Mock`, with the exception of *return_value* and " "*side_effect* which have no meaning on a non-callable mock." msgstr "" -#: ../Doc/library/unittest.mock.rst:709 +#: ../Doc/library/unittest.mock.rst:722 msgid "" "Mock objects that use a class or an instance as a :attr:`spec` or :attr:" "`spec_set` are able to pass :func:`isinstance` tests:" msgstr "" -#: ../Doc/library/unittest.mock.rst:719 +#: ../Doc/library/unittest.mock.rst:732 msgid "" "The :class:`Mock` classes have support for mocking magic methods. See :ref:" "`magic methods ` for the full details." msgstr "" -#: ../Doc/library/unittest.mock.rst:722 +#: ../Doc/library/unittest.mock.rst:735 msgid "" "The mock classes and the :func:`patch` decorators all take arbitrary keyword " "arguments for configuration. For the :func:`patch` decorators the keywords " @@ -601,14 +826,14 @@ msgid "" "arguments are for configuring attributes of the mock:" msgstr "" -#: ../Doc/library/unittest.mock.rst:733 +#: ../Doc/library/unittest.mock.rst:746 msgid "" "The return value and side effect of child mocks can be set in the same way, " "using dotted notation. As you can't use dotted names directly in a call you " "have to create a dictionary and unpack it using ``**``:" msgstr "" -#: ../Doc/library/unittest.mock.rst:748 +#: ../Doc/library/unittest.mock.rst:761 msgid "" "A callable mock which was created with a *spec* (or a *spec_set*) will " "introspect the specification object's signature when matching calls to the " @@ -616,7 +841,7 @@ msgid "" "whether they were passed positionally or by name::" msgstr "" -#: ../Doc/library/unittest.mock.rst:761 +#: ../Doc/library/unittest.mock.rst:774 msgid "" "This applies to :meth:`~Mock.assert_called_with`, :meth:`~Mock." "assert_called_once_with`, :meth:`~Mock.assert_has_calls` and :meth:`~Mock." @@ -624,35 +849,35 @@ msgid "" "calls on the mock object." msgstr "" -#: ../Doc/library/unittest.mock.rst:766 +#: ../Doc/library/unittest.mock.rst:779 msgid "Added signature introspection on specced and autospecced mock objects." msgstr "" -#: ../Doc/library/unittest.mock.rst:772 +#: ../Doc/library/unittest.mock.rst:785 msgid "" "A mock intended to be used as a property, or other descriptor, on a class. :" "class:`PropertyMock` provides :meth:`__get__` and :meth:`__set__` methods so " "you can specify a return value when it is fetched." msgstr "" -#: ../Doc/library/unittest.mock.rst:776 +#: ../Doc/library/unittest.mock.rst:789 msgid "" "Fetching a :class:`PropertyMock` instance from an object calls the mock, " "with no args. Setting it calls the mock with the value being set." msgstr "" -#: ../Doc/library/unittest.mock.rst:797 +#: ../Doc/library/unittest.mock.rst:810 msgid "" "Because of the way mock attributes are stored you can't directly attach a :" "class:`PropertyMock` to a mock object. Instead you can attach it to the mock " "type object::" msgstr "" -#: ../Doc/library/unittest.mock.rst:810 +#: ../Doc/library/unittest.mock.rst:823 msgid "Calling" msgstr "" -#: ../Doc/library/unittest.mock.rst:812 +#: ../Doc/library/unittest.mock.rst:825 msgid "" "Mock objects are callable. The call will return the value set as the :attr:" "`~Mock.return_value` attribute. The default return value is a new Mock " @@ -661,26 +886,26 @@ msgid "" "returned each time." msgstr "" -#: ../Doc/library/unittest.mock.rst:818 +#: ../Doc/library/unittest.mock.rst:831 msgid "" "Calls made to the object will be recorded in the attributes like :attr:" "`~Mock.call_args` and :attr:`~Mock.call_args_list`." msgstr "" -#: ../Doc/library/unittest.mock.rst:821 +#: ../Doc/library/unittest.mock.rst:834 msgid "" "If :attr:`~Mock.side_effect` is set then it will be called after the call " "has been recorded, so if :attr:`side_effect` raises an exception the call is " "still recorded." msgstr "" -#: ../Doc/library/unittest.mock.rst:825 +#: ../Doc/library/unittest.mock.rst:838 msgid "" "The simplest way to make a mock raise an exception when called is to make :" "attr:`~Mock.side_effect` an exception class or instance:" msgstr "" -#: ../Doc/library/unittest.mock.rst:843 +#: ../Doc/library/unittest.mock.rst:856 msgid "" "If :attr:`side_effect` is a function then whatever that function returns is " "what calls to the mock return. The :attr:`side_effect` function is called " @@ -688,7 +913,7 @@ msgid "" "value of the call dynamically, based on the input:" msgstr "" -#: ../Doc/library/unittest.mock.rst:859 +#: ../Doc/library/unittest.mock.rst:872 msgid "" "If you want the mock to still return the default return value (a new mock), " "or any set return value, then there are two ways of doing this. Either " @@ -696,36 +921,36 @@ msgid "" "data:`DEFAULT`:" msgstr "" -#: ../Doc/library/unittest.mock.rst:878 +#: ../Doc/library/unittest.mock.rst:891 msgid "" "To remove a :attr:`side_effect`, and return to the default behaviour, set " "the :attr:`side_effect` to ``None``:" msgstr "" -#: ../Doc/library/unittest.mock.rst:892 +#: ../Doc/library/unittest.mock.rst:905 msgid "" "The :attr:`side_effect` can also be any iterable object. Repeated calls to " "the mock will return values from the iterable (until the iterable is " "exhausted and a :exc:`StopIteration` is raised):" msgstr "" -#: ../Doc/library/unittest.mock.rst:908 +#: ../Doc/library/unittest.mock.rst:921 msgid "" "If any members of the iterable are exceptions they will be raised instead of " "returned::" msgstr "" -#: ../Doc/library/unittest.mock.rst:926 +#: ../Doc/library/unittest.mock.rst:939 msgid "Deleting Attributes" msgstr "" -#: ../Doc/library/unittest.mock.rst:928 +#: ../Doc/library/unittest.mock.rst:941 msgid "" "Mock objects create attributes on demand. This allows them to pretend to be " "objects of any type." msgstr "" -#: ../Doc/library/unittest.mock.rst:931 +#: ../Doc/library/unittest.mock.rst:944 msgid "" "You may want a mock object to return ``False`` to a :func:`hasattr` call, or " "raise an :exc:`AttributeError` when an attribute is fetched. You can do this " @@ -733,17 +958,17 @@ msgid "" "convenient." msgstr "" -#: ../Doc/library/unittest.mock.rst:935 +#: ../Doc/library/unittest.mock.rst:948 msgid "" "You \"block\" attributes by deleting them. Once deleted, accessing an " "attribute will raise an :exc:`AttributeError`." msgstr "" -#: ../Doc/library/unittest.mock.rst:952 +#: ../Doc/library/unittest.mock.rst:965 msgid "Mock names and the name attribute" msgstr "" -#: ../Doc/library/unittest.mock.rst:954 +#: ../Doc/library/unittest.mock.rst:967 msgid "" "Since \"name\" is an argument to the :class:`Mock` constructor, if you want " "your mock object to have a \"name\" attribute you can't just pass it in at " @@ -751,17 +976,17 @@ msgid "" "configure_mock`::" msgstr "" -#: ../Doc/library/unittest.mock.rst:964 +#: ../Doc/library/unittest.mock.rst:977 msgid "" "A simpler option is to simply set the \"name\" attribute after mock " "creation::" msgstr "" -#: ../Doc/library/unittest.mock.rst:971 +#: ../Doc/library/unittest.mock.rst:984 msgid "Attaching Mocks as Attributes" msgstr "" -#: ../Doc/library/unittest.mock.rst:973 +#: ../Doc/library/unittest.mock.rst:986 msgid "" "When you attach a mock as an attribute of another mock (or as the return " "value) it becomes a \"child\" of that mock. Calls to the child are recorded " @@ -772,20 +997,20 @@ msgid "" "calls between mocks:" msgstr "" -#: ../Doc/library/unittest.mock.rst:991 +#: ../Doc/library/unittest.mock.rst:1004 msgid "" "The exception to this is if the mock has a name. This allows you to prevent " "the \"parenting\" if for some reason you don't want it to happen." msgstr "" -#: ../Doc/library/unittest.mock.rst:1002 +#: ../Doc/library/unittest.mock.rst:1015 msgid "" "Mocks created for you by :func:`patch` are automatically given names. To " "attach mocks that have names to a parent you use the :meth:`~Mock." "attach_mock` method:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1020 +#: ../Doc/library/unittest.mock.rst:1033 msgid "" "The only exceptions are magic methods and attributes (those that have " "leading and trailing double underscores). Mock doesn't create these but " @@ -795,11 +1020,11 @@ msgid "" "support see :ref:`magic methods `." msgstr "" -#: ../Doc/library/unittest.mock.rst:1029 +#: ../Doc/library/unittest.mock.rst:1042 msgid "The patchers" msgstr "" -#: ../Doc/library/unittest.mock.rst:1031 +#: ../Doc/library/unittest.mock.rst:1044 msgid "" "The patch decorators are used for patching objects only within the scope of " "the function they decorate. They automatically handle the unpatching for " @@ -807,17 +1032,17 @@ msgid "" "in with statements or as class decorators." msgstr "" -#: ../Doc/library/unittest.mock.rst:1038 +#: ../Doc/library/unittest.mock.rst:1051 msgid "patch" msgstr "" -#: ../Doc/library/unittest.mock.rst:1042 +#: ../Doc/library/unittest.mock.rst:1055 msgid "" ":func:`patch` is straightforward to use. The key is to do the patching in " "the right namespace. See the section `where to patch`_." msgstr "" -#: ../Doc/library/unittest.mock.rst:1047 +#: ../Doc/library/unittest.mock.rst:1060 msgid "" ":func:`patch` acts as a function decorator, class decorator or a context " "manager. Inside the body of the function or with statement, the *target* is " @@ -825,7 +1050,7 @@ msgid "" "patch is undone." msgstr "" -#: ../Doc/library/unittest.mock.rst:1052 +#: ../Doc/library/unittest.mock.rst:1065 msgid "" "If *new* is omitted, then the target is replaced with a :class:`MagicMock`. " "If :func:`patch` is used as a decorator and *new* is omitted, the created " @@ -834,7 +1059,7 @@ msgid "" "context manager." msgstr "" -#: ../Doc/library/unittest.mock.rst:1058 +#: ../Doc/library/unittest.mock.rst:1071 msgid "" "*target* should be a string in the form ``'package.module.ClassName'``. The " "*target* is imported and the specified object replaced with the *new* " @@ -843,26 +1068,26 @@ msgid "" "function is executed, not at decoration time." msgstr "" -#: ../Doc/library/unittest.mock.rst:1064 +#: ../Doc/library/unittest.mock.rst:1077 msgid "" "The *spec* and *spec_set* keyword arguments are passed to the :class:" "`MagicMock` if patch is creating one for you." msgstr "" -#: ../Doc/library/unittest.mock.rst:1067 +#: ../Doc/library/unittest.mock.rst:1080 msgid "" "In addition you can pass ``spec=True`` or ``spec_set=True``, which causes " "patch to pass in the object being mocked as the spec/spec_set object." msgstr "" -#: ../Doc/library/unittest.mock.rst:1070 +#: ../Doc/library/unittest.mock.rst:1083 msgid "" "*new_callable* allows you to specify a different class, or callable object, " "that will be called to create the *new* object. By default :class:" "`MagicMock` is used." msgstr "" -#: ../Doc/library/unittest.mock.rst:1074 +#: ../Doc/library/unittest.mock.rst:1087 msgid "" "A more powerful form of *spec* is *autospec*. If you set ``autospec=True`` " "then the mock will be created with a spec from the object being replaced. " @@ -874,30 +1099,30 @@ msgid "" "func:`create_autospec` function and :ref:`auto-speccing`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1084 +#: ../Doc/library/unittest.mock.rst:1097 msgid "" "Instead of ``autospec=True`` you can pass ``autospec=some_object`` to use an " "arbitrary object as the spec instead of the one being replaced." msgstr "" -#: ../Doc/library/unittest.mock.rst:1087 +#: ../Doc/library/unittest.mock.rst:1100 msgid "" "By default :func:`patch` will fail to replace attributes that don't exist. " "If you pass in ``create=True``, and the attribute doesn't exist, patch will " "create the attribute for you when the patched function is called, and delete " -"it again afterwards. This is useful for writing tests against attributes " -"that your production code creates at runtime. It is off by default because " -"it can be dangerous. With it switched on you can write passing tests against " -"APIs that don't actually exist!" +"it again after the patched function has exited. This is useful for writing " +"tests against attributes that your production code creates at runtime. It is " +"off by default because it can be dangerous. With it switched on you can " +"write passing tests against APIs that don't actually exist!" msgstr "" -#: ../Doc/library/unittest.mock.rst:1097 +#: ../Doc/library/unittest.mock.rst:1110 msgid "" "If you are patching builtins in a module then you don't need to pass " "``create=True``, it will be added by default." msgstr "" -#: ../Doc/library/unittest.mock.rst:1101 +#: ../Doc/library/unittest.mock.rst:1114 msgid "" "Patch can be used as a :class:`TestCase` class decorator. It works by " "decorating each test method in the class. This reduces the boilerplate code " @@ -908,7 +1133,7 @@ msgid "" "TEST_PREFIX``." msgstr "" -#: ../Doc/library/unittest.mock.rst:1108 +#: ../Doc/library/unittest.mock.rst:1121 msgid "" "Patch can be used as a context manager, with the with statement. Here the " "patching applies to the indented block after the with statement. If you use " @@ -916,64 +1141,64 @@ msgid "" "very useful if :func:`patch` is creating a mock object for you." msgstr "" -#: ../Doc/library/unittest.mock.rst:1113 +#: ../Doc/library/unittest.mock.rst:1126 msgid "" ":func:`patch` takes arbitrary keyword arguments. These will be passed to " "the :class:`Mock` (or *new_callable*) on construction." msgstr "" -#: ../Doc/library/unittest.mock.rst:1116 +#: ../Doc/library/unittest.mock.rst:1129 msgid "" "``patch.dict(...)``, ``patch.multiple(...)`` and ``patch.object(...)`` are " "available for alternate use-cases." msgstr "" -#: ../Doc/library/unittest.mock.rst:1119 +#: ../Doc/library/unittest.mock.rst:1132 msgid "" ":func:`patch` as function decorator, creating the mock for you and passing " "it into the decorated function:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1129 +#: ../Doc/library/unittest.mock.rst:1142 msgid "" "Patching a class replaces the class with a :class:`MagicMock` *instance*. If " "the class is instantiated in the code under test then it will be the :attr:" "`~Mock.return_value` of the mock that will be used." msgstr "" -#: ../Doc/library/unittest.mock.rst:1133 +#: ../Doc/library/unittest.mock.rst:1146 msgid "" "If the class is instantiated multiple times you could use :attr:`~Mock." "side_effect` to return a new mock each time. Alternatively you can set the " "*return_value* to be anything you want." msgstr "" -#: ../Doc/library/unittest.mock.rst:1137 +#: ../Doc/library/unittest.mock.rst:1150 msgid "" "To configure return values on methods of *instances* on the patched class " "you must do this on the :attr:`return_value`. For example:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1151 +#: ../Doc/library/unittest.mock.rst:1164 msgid "" "If you use *spec* or *spec_set* and :func:`patch` is replacing a *class*, " "then the return value of the created mock will have the same spec." msgstr "" -#: ../Doc/library/unittest.mock.rst:1161 +#: ../Doc/library/unittest.mock.rst:1174 msgid "" "The *new_callable* argument is useful where you want to use an alternative " "class to the default :class:`MagicMock` for the created mock. For example, " "if you wanted a :class:`NonCallableMock` to be used:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1174 +#: ../Doc/library/unittest.mock.rst:1187 msgid "" "Another use case might be to replace an object with an :class:`io.StringIO` " "instance:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1187 +#: ../Doc/library/unittest.mock.rst:1200 msgid "" "When :func:`patch` is creating a mock for you, it is common that the first " "thing you need to do is to configure the mock. Some of that configuration " @@ -981,7 +1206,7 @@ msgid "" "call will be used to set attributes on the created mock:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1199 +#: ../Doc/library/unittest.mock.rst:1212 msgid "" "As well as attributes on the created mock attributes, like the :attr:`~Mock." "return_value` and :attr:`~Mock.side_effect`, of child mocks can also be " @@ -990,17 +1215,30 @@ msgid "" "func:`patch` call using ``**``:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1217 +#: ../Doc/library/unittest.mock.rst:1228 +msgid "" +"By default, attempting to patch a function in a module (or a method or an " +"attribute in a class) that does not exist will fail with :exc:" +"`AttributeError`::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1240 +msgid "" +"but adding ``create=True`` in the call to :func:`patch` will make the " +"previous example work as expected::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1251 msgid "patch.object" msgstr "" -#: ../Doc/library/unittest.mock.rst:1221 +#: ../Doc/library/unittest.mock.rst:1255 msgid "" "patch the named member (*attribute*) on an object (*target*) with a mock " "object." msgstr "" -#: ../Doc/library/unittest.mock.rst:1224 +#: ../Doc/library/unittest.mock.rst:1258 msgid "" ":func:`patch.object` can be used as a decorator, class decorator or a " "context manager. Arguments *new*, *spec*, *create*, *spec_set*, *autospec* " @@ -1009,94 +1247,94 @@ msgid "" "configuring the mock object it creates." msgstr "" -#: ../Doc/library/unittest.mock.rst:1230 +#: ../Doc/library/unittest.mock.rst:1264 msgid "" "When used as a class decorator :func:`patch.object` honours ``patch." "TEST_PREFIX`` for choosing which methods to wrap." msgstr "" -#: ../Doc/library/unittest.mock.rst:1233 +#: ../Doc/library/unittest.mock.rst:1267 msgid "" "You can either call :func:`patch.object` with three arguments or two " "arguments. The three argument form takes the object to be patched, the " "attribute name and the object to replace the attribute with." msgstr "" -#: ../Doc/library/unittest.mock.rst:1237 +#: ../Doc/library/unittest.mock.rst:1271 msgid "" "When calling with the two argument form you omit the replacement object, and " "a mock is created for you and passed in as an extra argument to the " "decorated function:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1248 +#: ../Doc/library/unittest.mock.rst:1282 msgid "" "*spec*, *create* and the other arguments to :func:`patch.object` have the " "same meaning as they do for :func:`patch`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1253 +#: ../Doc/library/unittest.mock.rst:1287 msgid "patch.dict" msgstr "" -#: ../Doc/library/unittest.mock.rst:1257 +#: ../Doc/library/unittest.mock.rst:1291 msgid "" "Patch a dictionary, or dictionary like object, and restore the dictionary to " "its original state after the test." msgstr "" -#: ../Doc/library/unittest.mock.rst:1260 +#: ../Doc/library/unittest.mock.rst:1294 msgid "" "*in_dict* can be a dictionary or a mapping like container. If it is a " "mapping then it must at least support getting, setting and deleting items " "plus iterating over keys." msgstr "" -#: ../Doc/library/unittest.mock.rst:1264 +#: ../Doc/library/unittest.mock.rst:1298 msgid "" "*in_dict* can also be a string specifying the name of the dictionary, which " "will then be fetched by importing it." msgstr "" -#: ../Doc/library/unittest.mock.rst:1267 +#: ../Doc/library/unittest.mock.rst:1301 msgid "" "*values* can be a dictionary of values to set in the dictionary. *values* " "can also be an iterable of ``(key, value)`` pairs." msgstr "" -#: ../Doc/library/unittest.mock.rst:1270 +#: ../Doc/library/unittest.mock.rst:1304 msgid "" "If *clear* is true then the dictionary will be cleared before the new values " "are set." msgstr "" -#: ../Doc/library/unittest.mock.rst:1273 +#: ../Doc/library/unittest.mock.rst:1307 msgid "" ":func:`patch.dict` can also be called with arbitrary keyword arguments to " "set values in the dictionary." msgstr "" -#: ../Doc/library/unittest.mock.rst:1276 +#: ../Doc/library/unittest.mock.rst:1310 msgid "" ":func:`patch.dict` can be used as a context manager, decorator or class " "decorator. When used as a class decorator :func:`patch.dict` honours ``patch." "TEST_PREFIX`` for choosing which methods to wrap." msgstr "" -#: ../Doc/library/unittest.mock.rst:1280 +#: ../Doc/library/unittest.mock.rst:1314 msgid "" ":func:`patch.dict` can be used to add members to a dictionary, or simply let " "a test change a dictionary, and ensure the dictionary is restored when the " "test ends." msgstr "" -#: ../Doc/library/unittest.mock.rst:1297 +#: ../Doc/library/unittest.mock.rst:1331 msgid "" "Keywords can be used in the :func:`patch.dict` call to set values in the " "dictionary:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1307 +#: ../Doc/library/unittest.mock.rst:1341 msgid "" ":func:`patch.dict` can be used with dictionary like objects that aren't " "actually dictionaries. At the very minimum they must support item getting, " @@ -1105,18 +1343,18 @@ msgid "" "`__delitem__` and either :meth:`__iter__` or :meth:`__contains__`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1336 +#: ../Doc/library/unittest.mock.rst:1370 msgid "patch.multiple" msgstr "" -#: ../Doc/library/unittest.mock.rst:1340 +#: ../Doc/library/unittest.mock.rst:1374 msgid "" "Perform multiple patches in a single call. It takes the object to be patched " "(either as an object or a string to fetch the object by importing) and " "keyword arguments for the patches::" msgstr "" -#: ../Doc/library/unittest.mock.rst:1347 +#: ../Doc/library/unittest.mock.rst:1381 msgid "" "Use :data:`DEFAULT` as the value if you want :func:`patch.multiple` to " "create mocks for you. In this case the created mocks are passed into a " @@ -1124,7 +1362,7 @@ msgid "" "`patch.multiple` is used as a context manager." msgstr "" -#: ../Doc/library/unittest.mock.rst:1352 +#: ../Doc/library/unittest.mock.rst:1386 msgid "" ":func:`patch.multiple` can be used as a decorator, class decorator or a " "context manager. The arguments *spec*, *spec_set*, *create*, *autospec* and " @@ -1132,13 +1370,13 @@ msgid "" "will be applied to *all* patches done by :func:`patch.multiple`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1357 +#: ../Doc/library/unittest.mock.rst:1391 msgid "" "When used as a class decorator :func:`patch.multiple` honours ``patch." "TEST_PREFIX`` for choosing which methods to wrap." msgstr "" -#: ../Doc/library/unittest.mock.rst:1360 +#: ../Doc/library/unittest.mock.rst:1394 msgid "" "If you want :func:`patch.multiple` to create mocks for you, then you can " "use :data:`DEFAULT` as the value. If you use :func:`patch.multiple` as a " @@ -1146,31 +1384,32 @@ msgid "" "keyword." msgstr "" -#: ../Doc/library/unittest.mock.rst:1374 +#: ../Doc/library/unittest.mock.rst:1408 msgid "" ":func:`patch.multiple` can be nested with other ``patch`` decorators, but " "put arguments passed by keyword *after* any of the standard arguments " "created by :func:`patch`:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1386 +#: ../Doc/library/unittest.mock.rst:1420 msgid "" "If :func:`patch.multiple` is used as a context manager, the value returned " -"by the context manger is a dictionary where created mocks are keyed by name:" +"by the context manager is a dictionary where created mocks are keyed by " +"name::" msgstr "" -#: ../Doc/library/unittest.mock.rst:1400 +#: ../Doc/library/unittest.mock.rst:1434 msgid "patch methods: start and stop" msgstr "" -#: ../Doc/library/unittest.mock.rst:1402 +#: ../Doc/library/unittest.mock.rst:1436 msgid "" "All the patchers have :meth:`start` and :meth:`stop` methods. These make it " "simpler to do patching in ``setUp`` methods or where you want to do multiple " "patches without nesting decorators or with statements." msgstr "" -#: ../Doc/library/unittest.mock.rst:1406 +#: ../Doc/library/unittest.mock.rst:1440 msgid "" "To use them call :func:`patch`, :func:`patch.object` or :func:`patch.dict` " "as normal and keep a reference to the returned ``patcher`` object. You can " @@ -1178,19 +1417,19 @@ msgid "" "it." msgstr "" -#: ../Doc/library/unittest.mock.rst:1410 +#: ../Doc/library/unittest.mock.rst:1444 msgid "" "If you are using :func:`patch` to create a mock for you then it will be " "returned by the call to ``patcher.start``." msgstr "" -#: ../Doc/library/unittest.mock.rst:1424 +#: ../Doc/library/unittest.mock.rst:1458 msgid "" "A typical use case for this might be for doing multiple patches in the " "``setUp`` method of a :class:`TestCase`:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1446 +#: ../Doc/library/unittest.mock.rst:1480 msgid "" "If you use this technique you must ensure that the patching is \"undone\" by " "calling ``stop``. This can be fiddlier than you might think, because if an " @@ -1198,37 +1437,37 @@ msgid "" "`unittest.TestCase.addCleanup` makes this easier:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1461 +#: ../Doc/library/unittest.mock.rst:1495 msgid "" "As an added bonus you no longer need to keep a reference to the ``patcher`` " "object." msgstr "" -#: ../Doc/library/unittest.mock.rst:1464 +#: ../Doc/library/unittest.mock.rst:1498 msgid "" "It is also possible to stop all patches which have been started by using :" "func:`patch.stopall`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1469 +#: ../Doc/library/unittest.mock.rst:1503 msgid "Stop all active patches. Only stops patches started with ``start``." msgstr "" -#: ../Doc/library/unittest.mock.rst:1475 +#: ../Doc/library/unittest.mock.rst:1509 msgid "patch builtins" msgstr "" -#: ../Doc/library/unittest.mock.rst:1476 +#: ../Doc/library/unittest.mock.rst:1510 msgid "" "You can patch any builtins within a module. The following example patches " "builtin :func:`ord`:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1489 +#: ../Doc/library/unittest.mock.rst:1523 msgid "TEST_PREFIX" msgstr "" -#: ../Doc/library/unittest.mock.rst:1491 +#: ../Doc/library/unittest.mock.rst:1525 msgid "" "All of the patchers can be used as class decorators. When used in this way " "they wrap every test method on the class. The patchers recognise methods " @@ -1236,39 +1475,39 @@ msgid "" "the :class:`unittest.TestLoader` finds test methods by default." msgstr "" -#: ../Doc/library/unittest.mock.rst:1496 +#: ../Doc/library/unittest.mock.rst:1530 msgid "" "It is possible that you want to use a different prefix for your tests. You " "can inform the patchers of the different prefix by setting ``patch." "TEST_PREFIX``:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1519 +#: ../Doc/library/unittest.mock.rst:1553 msgid "Nesting Patch Decorators" msgstr "" -#: ../Doc/library/unittest.mock.rst:1521 +#: ../Doc/library/unittest.mock.rst:1555 msgid "" "If you want to perform multiple patches then you can simply stack up the " "decorators." msgstr "" -#: ../Doc/library/unittest.mock.rst:1524 +#: ../Doc/library/unittest.mock.rst:1558 msgid "You can stack up multiple patch decorators using this pattern:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1540 +#: ../Doc/library/unittest.mock.rst:1574 msgid "" "Note that the decorators are applied from the bottom upwards. This is the " "standard way that Python applies decorators. The order of the created mocks " "passed into your test function matches this order." msgstr "" -#: ../Doc/library/unittest.mock.rst:1548 +#: ../Doc/library/unittest.mock.rst:1582 msgid "Where to patch" msgstr "" -#: ../Doc/library/unittest.mock.rst:1550 +#: ../Doc/library/unittest.mock.rst:1584 msgid "" ":func:`patch` works by (temporarily) changing the object that a *name* " "points to with another one. There can be many names pointing to any " @@ -1276,19 +1515,19 @@ msgid "" "the name used by the system under test." msgstr "" -#: ../Doc/library/unittest.mock.rst:1555 +#: ../Doc/library/unittest.mock.rst:1589 msgid "" "The basic principle is that you patch where an object is *looked up*, which " "is not necessarily the same place as where it is defined. A couple of " "examples will help to clarify this." msgstr "" -#: ../Doc/library/unittest.mock.rst:1559 +#: ../Doc/library/unittest.mock.rst:1593 msgid "" "Imagine we have a project that we want to test with the following structure::" msgstr "" -#: ../Doc/library/unittest.mock.rst:1568 +#: ../Doc/library/unittest.mock.rst:1602 msgid "" "Now we want to test ``some_function`` but we want to mock out ``SomeClass`` " "using :func:`patch`. The problem is that when we import module b, which we " @@ -1298,7 +1537,7 @@ msgid "" "like our patching had no effect." msgstr "" -#: ../Doc/library/unittest.mock.rst:1575 +#: ../Doc/library/unittest.mock.rst:1609 msgid "" "The key is to patch out ``SomeClass`` where it is used (or where it is " "looked up). In this case ``some_function`` will actually look up " @@ -1306,7 +1545,7 @@ msgid "" "look like::" msgstr "" -#: ../Doc/library/unittest.mock.rst:1581 +#: ../Doc/library/unittest.mock.rst:1615 msgid "" "However, consider the alternative scenario where instead of ``from a import " "SomeClass`` module b does ``import a`` and ``some_function`` uses ``a." @@ -1315,11 +1554,11 @@ msgid "" "``a.SomeClass`` instead::" msgstr "" -#: ../Doc/library/unittest.mock.rst:1590 +#: ../Doc/library/unittest.mock.rst:1624 msgid "Patching Descriptors and Proxy Objects" msgstr "" -#: ../Doc/library/unittest.mock.rst:1592 +#: ../Doc/library/unittest.mock.rst:1626 msgid "" "Both patch_ and patch.object_ correctly patch and restore descriptors: class " "methods, static methods and properties. You should patch these on the " @@ -1328,22 +1567,22 @@ msgid "" "voidspace.org.uk/python/weblog/arch_d7_2010_12_04.shtml#e1198>`_." msgstr "" -#: ../Doc/library/unittest.mock.rst:1600 +#: ../Doc/library/unittest.mock.rst:1634 msgid "MagicMock and magic method support" msgstr "" -#: ../Doc/library/unittest.mock.rst:1605 +#: ../Doc/library/unittest.mock.rst:1639 msgid "Mocking Magic Methods" msgstr "" -#: ../Doc/library/unittest.mock.rst:1607 +#: ../Doc/library/unittest.mock.rst:1641 msgid "" ":class:`Mock` supports mocking the Python protocol methods, also known as " "\"magic methods\". This allows mock objects to replace containers or other " "objects that implement Python protocols." msgstr "" -#: ../Doc/library/unittest.mock.rst:1611 +#: ../Doc/library/unittest.mock.rst:1645 msgid "" "Because magic methods are looked up differently from normal methods [#]_, " "this support has been specially implemented. This means that only specific " @@ -1351,70 +1590,70 @@ msgid "" "them. If there are any missing that you need please let us know." msgstr "" -#: ../Doc/library/unittest.mock.rst:1616 +#: ../Doc/library/unittest.mock.rst:1650 msgid "" "You mock magic methods by setting the method you are interested in to a " "function or a mock instance. If you are using a function then it *must* take " "``self`` as the first argument [#]_." msgstr "" -#: ../Doc/library/unittest.mock.rst:1639 +#: ../Doc/library/unittest.mock.rst:1673 msgid "" "One use case for this is for mocking objects used as context managers in a :" "keyword:`with` statement:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1651 +#: ../Doc/library/unittest.mock.rst:1685 msgid "" "Calls to magic methods do not appear in :attr:`~Mock.method_calls`, but they " "are recorded in :attr:`~Mock.mock_calls`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1656 +#: ../Doc/library/unittest.mock.rst:1690 msgid "" "If you use the *spec* keyword argument to create a mock then attempting to " "set a magic method that isn't in the spec will raise an :exc:" "`AttributeError`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1659 +#: ../Doc/library/unittest.mock.rst:1693 msgid "The full list of supported magic methods is:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1661 +#: ../Doc/library/unittest.mock.rst:1695 msgid "``__hash__``, ``__sizeof__``, ``__repr__`` and ``__str__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1662 +#: ../Doc/library/unittest.mock.rst:1696 msgid "``__dir__``, ``__format__`` and ``__subclasses__``" msgstr "``__dir__``, ``__format__`` et ``__subclasses__``" -#: ../Doc/library/unittest.mock.rst:1663 +#: ../Doc/library/unittest.mock.rst:1697 msgid "``__floor__``, ``__trunc__`` and ``__ceil__``" msgstr "``__floor__``, ``__trunc__`` et ``__ceil__``" -#: ../Doc/library/unittest.mock.rst:1664 +#: ../Doc/library/unittest.mock.rst:1698 msgid "" "Comparisons: ``__lt__``, ``__gt__``, ``__le__``, ``__ge__``, ``__eq__`` and " "``__ne__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1666 +#: ../Doc/library/unittest.mock.rst:1700 msgid "" "Container methods: ``__getitem__``, ``__setitem__``, ``__delitem__``, " "``__contains__``, ``__len__``, ``__iter__``, ``__reversed__`` and " "``__missing__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1669 +#: ../Doc/library/unittest.mock.rst:1703 msgid "Context manager: ``__enter__`` and ``__exit__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1670 +#: ../Doc/library/unittest.mock.rst:1704 msgid "Unary numeric methods: ``__neg__``, ``__pos__`` and ``__invert__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1671 +#: ../Doc/library/unittest.mock.rst:1705 msgid "" "The numeric methods (including right hand and in-place variants): " "``__add__``, ``__sub__``, ``__mul__``, ``__matmul__``, ``__div__``, " @@ -1423,82 +1662,82 @@ msgid "" "``__pow__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1675 +#: ../Doc/library/unittest.mock.rst:1709 msgid "" "Numeric conversion methods: ``__complex__``, ``__int__``, ``__float__`` and " "``__index__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1677 +#: ../Doc/library/unittest.mock.rst:1711 msgid "Descriptor methods: ``__get__``, ``__set__`` and ``__delete__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1678 +#: ../Doc/library/unittest.mock.rst:1712 msgid "" "Pickling: ``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, " "``__getnewargs__``, ``__getstate__`` and ``__setstate__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1682 +#: ../Doc/library/unittest.mock.rst:1716 msgid "" "The following methods exist but are *not* supported as they are either in " "use by mock, can't be set dynamically, or can cause problems:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1685 +#: ../Doc/library/unittest.mock.rst:1719 msgid "``__getattr__``, ``__setattr__``, ``__init__`` and ``__new__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1686 +#: ../Doc/library/unittest.mock.rst:1720 msgid "" "``__prepare__``, ``__instancecheck__``, ``__subclasscheck__``, ``__del__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1691 +#: ../Doc/library/unittest.mock.rst:1725 msgid "Magic Mock" msgstr "" -#: ../Doc/library/unittest.mock.rst:1693 +#: ../Doc/library/unittest.mock.rst:1727 msgid "" "There are two ``MagicMock`` variants: :class:`MagicMock` and :class:" "`NonCallableMagicMock`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1698 +#: ../Doc/library/unittest.mock.rst:1732 msgid "" "``MagicMock`` is a subclass of :class:`Mock` with default implementations of " "most of the magic methods. You can use ``MagicMock`` without having to " "configure the magic methods yourself." msgstr "" -#: ../Doc/library/unittest.mock.rst:1702 +#: ../Doc/library/unittest.mock.rst:1736 msgid "The constructor parameters have the same meaning as for :class:`Mock`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1704 +#: ../Doc/library/unittest.mock.rst:1738 msgid "" "If you use the *spec* or *spec_set* arguments then *only* magic methods that " "exist in the spec will be created." msgstr "" -#: ../Doc/library/unittest.mock.rst:1710 +#: ../Doc/library/unittest.mock.rst:1744 msgid "A non-callable version of :class:`MagicMock`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1712 +#: ../Doc/library/unittest.mock.rst:1746 msgid "" "The constructor parameters have the same meaning as for :class:`MagicMock`, " "with the exception of *return_value* and *side_effect* which have no meaning " "on a non-callable mock." msgstr "" -#: ../Doc/library/unittest.mock.rst:1716 +#: ../Doc/library/unittest.mock.rst:1750 msgid "" "The magic methods are setup with :class:`MagicMock` objects, so you can " "configure them and use them in the usual way:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1726 +#: ../Doc/library/unittest.mock.rst:1760 msgid "" "By default many of the protocol methods are required to return objects of a " "specific type. These methods are preconfigured with a default return value, " @@ -1507,79 +1746,79 @@ msgid "" "manually if you want to change the default." msgstr "" -#: ../Doc/library/unittest.mock.rst:1732 +#: ../Doc/library/unittest.mock.rst:1766 msgid "Methods and their defaults:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1734 +#: ../Doc/library/unittest.mock.rst:1768 msgid "``__lt__``: NotImplemented" msgstr "``__lt__``: NotImplemented" -#: ../Doc/library/unittest.mock.rst:1735 +#: ../Doc/library/unittest.mock.rst:1769 msgid "``__gt__``: NotImplemented" msgstr "``__gt__``: NotImplemented" -#: ../Doc/library/unittest.mock.rst:1736 +#: ../Doc/library/unittest.mock.rst:1770 msgid "``__le__``: NotImplemented" msgstr "``__le__``: NotImplemented" -#: ../Doc/library/unittest.mock.rst:1737 +#: ../Doc/library/unittest.mock.rst:1771 msgid "``__ge__``: NotImplemented" msgstr "``__ge__``: NotImplemented" -#: ../Doc/library/unittest.mock.rst:1738 +#: ../Doc/library/unittest.mock.rst:1772 msgid "``__int__``: 1" msgstr "``__int__``: 1" -#: ../Doc/library/unittest.mock.rst:1739 +#: ../Doc/library/unittest.mock.rst:1773 msgid "``__contains__``: False" msgstr "``__contains__``: False" -#: ../Doc/library/unittest.mock.rst:1740 +#: ../Doc/library/unittest.mock.rst:1774 msgid "``__len__``: 0" msgstr "" -#: ../Doc/library/unittest.mock.rst:1741 +#: ../Doc/library/unittest.mock.rst:1775 msgid "``__iter__``: iter([])" msgstr "``__iter__``: iter([])" -#: ../Doc/library/unittest.mock.rst:1742 +#: ../Doc/library/unittest.mock.rst:1776 msgid "``__exit__``: False" msgstr "``__exit__``: False" -#: ../Doc/library/unittest.mock.rst:1743 +#: ../Doc/library/unittest.mock.rst:1777 msgid "``__complex__``: 1j" msgstr "``__complex__``: 1j" -#: ../Doc/library/unittest.mock.rst:1744 +#: ../Doc/library/unittest.mock.rst:1778 msgid "``__float__``: 1.0" msgstr "``__float__``: 1.0" -#: ../Doc/library/unittest.mock.rst:1745 +#: ../Doc/library/unittest.mock.rst:1779 msgid "``__bool__``: True" msgstr "``__bool__``: True" -#: ../Doc/library/unittest.mock.rst:1746 +#: ../Doc/library/unittest.mock.rst:1780 msgid "``__index__``: 1" msgstr "``__index__``: 1" -#: ../Doc/library/unittest.mock.rst:1747 +#: ../Doc/library/unittest.mock.rst:1781 msgid "``__hash__``: default hash for the mock" msgstr "" -#: ../Doc/library/unittest.mock.rst:1748 +#: ../Doc/library/unittest.mock.rst:1782 msgid "``__str__``: default str for the mock" msgstr "" -#: ../Doc/library/unittest.mock.rst:1749 +#: ../Doc/library/unittest.mock.rst:1783 msgid "``__sizeof__``: default sizeof for the mock" msgstr "" -#: ../Doc/library/unittest.mock.rst:1751 +#: ../Doc/library/unittest.mock.rst:1785 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" -#: ../Doc/library/unittest.mock.rst:1763 +#: ../Doc/library/unittest.mock.rst:1797 msgid "" "The two equality methods, :meth:`__eq__` and :meth:`__ne__`, are special. " "They do the default equality comparison on identity, using the :attr:`~Mock." @@ -1587,102 +1826,102 @@ msgid "" "something else::" msgstr "" -#: ../Doc/library/unittest.mock.rst:1777 +#: ../Doc/library/unittest.mock.rst:1811 msgid "" "The return value of :meth:`MagicMock.__iter__` can be any iterable object " "and isn't required to be an iterator:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1787 +#: ../Doc/library/unittest.mock.rst:1821 msgid "" "If the return value *is* an iterator, then iterating over it once will " "consume it and subsequent iterations will result in an empty list:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1796 +#: ../Doc/library/unittest.mock.rst:1830 msgid "" "``MagicMock`` has all of the supported magic methods configured except for " "some of the obscure and obsolete ones. You can still set these up if you " "want." msgstr "" -#: ../Doc/library/unittest.mock.rst:1799 +#: ../Doc/library/unittest.mock.rst:1833 msgid "" "Magic methods that are supported but not setup by default in ``MagicMock`` " "are:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1801 +#: ../Doc/library/unittest.mock.rst:1835 msgid "``__subclasses__``" msgstr "``__subclasses__``" -#: ../Doc/library/unittest.mock.rst:1802 +#: ../Doc/library/unittest.mock.rst:1836 msgid "``__dir__``" msgstr "``__dir__``" -#: ../Doc/library/unittest.mock.rst:1803 +#: ../Doc/library/unittest.mock.rst:1837 msgid "``__format__``" msgstr "``__format__``" -#: ../Doc/library/unittest.mock.rst:1804 +#: ../Doc/library/unittest.mock.rst:1838 msgid "``__get__``, ``__set__`` and ``__delete__``" msgstr "``__get__``, ``__set__`` et ``__delete__``" -#: ../Doc/library/unittest.mock.rst:1805 +#: ../Doc/library/unittest.mock.rst:1839 msgid "``__reversed__`` and ``__missing__``" msgstr "``__reversed__`` et ``__missing__``" -#: ../Doc/library/unittest.mock.rst:1806 +#: ../Doc/library/unittest.mock.rst:1840 msgid "" "``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, ``__getnewargs__``, " "``__getstate__`` and ``__setstate__``" msgstr "" -#: ../Doc/library/unittest.mock.rst:1808 +#: ../Doc/library/unittest.mock.rst:1842 msgid "``__getformat__`` and ``__setformat__``" msgstr "``__getformat__`` et ``__setformat__``" -#: ../Doc/library/unittest.mock.rst:1812 +#: ../Doc/library/unittest.mock.rst:1846 msgid "" "Magic methods *should* be looked up on the class rather than the instance. " "Different versions of Python are inconsistent about applying this rule. The " "supported protocol methods should work with all supported versions of Python." msgstr "" -#: ../Doc/library/unittest.mock.rst:1816 +#: ../Doc/library/unittest.mock.rst:1850 msgid "" "The function is basically hooked up to the class, but each ``Mock`` instance " "is kept isolated from the others." msgstr "" -#: ../Doc/library/unittest.mock.rst:1821 +#: ../Doc/library/unittest.mock.rst:1855 msgid "Helpers" msgstr "" -#: ../Doc/library/unittest.mock.rst:1824 +#: ../Doc/library/unittest.mock.rst:1858 msgid "sentinel" msgstr "" -#: ../Doc/library/unittest.mock.rst:1828 +#: ../Doc/library/unittest.mock.rst:1862 msgid "" "The ``sentinel`` object provides a convenient way of providing unique " "objects for your tests." msgstr "" -#: ../Doc/library/unittest.mock.rst:1831 +#: ../Doc/library/unittest.mock.rst:1865 msgid "" "Attributes are created on demand when you access them by name. Accessing the " "same attribute will always return the same object. The objects returned have " "a sensible repr so that test failure messages are readable." msgstr "" -#: ../Doc/library/unittest.mock.rst:1835 +#: ../Doc/library/unittest.mock.rst:1869 msgid "" "The ``sentinel`` attributes now preserve their identity when they are :mod:" "`copied ` or :mod:`pickled `." msgstr "" -#: ../Doc/library/unittest.mock.rst:1839 +#: ../Doc/library/unittest.mock.rst:1873 msgid "" "Sometimes when testing you need to test that a specific object is passed as " "an argument to another method, or returned. It can be common to create named " @@ -1690,28 +1929,28 @@ msgid "" "creating and testing the identity of objects like this." msgstr "" -#: ../Doc/library/unittest.mock.rst:1844 +#: ../Doc/library/unittest.mock.rst:1878 msgid "" "In this example we monkey patch ``method`` to return ``sentinel." "some_object``:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1856 +#: ../Doc/library/unittest.mock.rst:1890 msgid "DEFAULT" msgstr "" -#: ../Doc/library/unittest.mock.rst:1861 +#: ../Doc/library/unittest.mock.rst:1895 msgid "" "The :data:`DEFAULT` object is a pre-created sentinel (actually ``sentinel." "DEFAULT``). It can be used by :attr:`~Mock.side_effect` functions to " "indicate that the normal return value should be used." msgstr "" -#: ../Doc/library/unittest.mock.rst:1867 +#: ../Doc/library/unittest.mock.rst:1901 msgid "call" msgstr "" -#: ../Doc/library/unittest.mock.rst:1871 +#: ../Doc/library/unittest.mock.rst:1905 msgid "" ":func:`call` is a helper object for making simpler assertions, for comparing " "with :attr:`~Mock.call_args`, :attr:`~Mock.call_args_list`, :attr:`~Mock." @@ -1719,13 +1958,13 @@ msgid "" "with :meth:`~Mock.assert_has_calls`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1884 +#: ../Doc/library/unittest.mock.rst:1918 msgid "" "For a call object that represents multiple calls, :meth:`call_list` returns " "a list of all the intermediate calls as well as the final call." msgstr "" -#: ../Doc/library/unittest.mock.rst:1888 +#: ../Doc/library/unittest.mock.rst:1922 msgid "" "``call_list`` is particularly useful for making assertions on \"chained calls" "\". A chained call is multiple calls on a single line of code. This results " @@ -1733,13 +1972,13 @@ msgid "" "constructing the sequence of calls can be tedious." msgstr "" -#: ../Doc/library/unittest.mock.rst:1893 +#: ../Doc/library/unittest.mock.rst:1927 msgid "" ":meth:`~call.call_list` can construct the sequence of calls from the same " "chained call:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1910 +#: ../Doc/library/unittest.mock.rst:1944 msgid "" "A ``call`` object is either a tuple of (positional args, keyword args) or " "(name, positional args, keyword args) depending on how it was constructed. " @@ -1749,7 +1988,7 @@ msgid "" "to get at the individual arguments they contain." msgstr "" -#: ../Doc/library/unittest.mock.rst:1917 +#: ../Doc/library/unittest.mock.rst:1951 msgid "" "The ``call`` objects in :attr:`Mock.call_args` and :attr:`Mock." "call_args_list` are two-tuples of (positional args, keyword args) whereas " @@ -1758,7 +1997,7 @@ msgid "" "args)." msgstr "" -#: ../Doc/library/unittest.mock.rst:1922 +#: ../Doc/library/unittest.mock.rst:1956 msgid "" "You can use their \"tupleness\" to pull out the individual arguments for " "more complex introspection and assertions. The positional arguments are a " @@ -1766,29 +2005,29 @@ msgid "" "arguments are a dictionary:" msgstr "" -#: ../Doc/library/unittest.mock.rst:1956 +#: ../Doc/library/unittest.mock.rst:1990 msgid "create_autospec" msgstr "" -#: ../Doc/library/unittest.mock.rst:1960 +#: ../Doc/library/unittest.mock.rst:1994 msgid "" "Create a mock object using another object as a spec. Attributes on the mock " "will use the corresponding attribute on the *spec* object as their spec." msgstr "" -#: ../Doc/library/unittest.mock.rst:1964 +#: ../Doc/library/unittest.mock.rst:1998 msgid "" "Functions or methods being mocked will have their arguments checked to " "ensure that they are called with the correct signature." msgstr "" -#: ../Doc/library/unittest.mock.rst:1967 +#: ../Doc/library/unittest.mock.rst:2001 msgid "" "If *spec_set* is ``True`` then attempting to set attributes that don't exist " "on the spec object will raise an :exc:`AttributeError`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1970 +#: ../Doc/library/unittest.mock.rst:2004 msgid "" "If a class is used as a spec then the return value of the mock (the instance " "of the class) will have the same spec. You can use a class as the spec for " @@ -1796,23 +2035,23 @@ msgid "" "be callable if instances of the mock are callable." msgstr "" -#: ../Doc/library/unittest.mock.rst:1975 +#: ../Doc/library/unittest.mock.rst:2009 msgid "" ":func:`create_autospec` also takes arbitrary keyword arguments that are " "passed to the constructor of the created mock." msgstr "" -#: ../Doc/library/unittest.mock.rst:1978 +#: ../Doc/library/unittest.mock.rst:2012 msgid "" "See :ref:`auto-speccing` for examples of how to use auto-speccing with :func:" "`create_autospec` and the *autospec* argument to :func:`patch`." msgstr "" -#: ../Doc/library/unittest.mock.rst:1983 +#: ../Doc/library/unittest.mock.rst:2017 msgid "ANY" msgstr "" -#: ../Doc/library/unittest.mock.rst:1987 +#: ../Doc/library/unittest.mock.rst:2021 msgid "" "Sometimes you may need to make assertions about *some* of the arguments in a " "call to mock, but either not care about some of the arguments or want to " @@ -1820,24 +2059,24 @@ msgid "" "assertions on them." msgstr "" -#: ../Doc/library/unittest.mock.rst:1992 +#: ../Doc/library/unittest.mock.rst:2026 msgid "" "To ignore certain arguments you can pass in objects that compare equal to " "*everything*. Calls to :meth:`~Mock.assert_called_with` and :meth:`~Mock." "assert_called_once_with` will then succeed no matter what was passed in." msgstr "" -#: ../Doc/library/unittest.mock.rst:2001 +#: ../Doc/library/unittest.mock.rst:2035 msgid "" ":data:`ANY` can also be used in comparisons with call lists like :attr:" "`~Mock.mock_calls`:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2014 +#: ../Doc/library/unittest.mock.rst:2048 msgid "FILTER_DIR" msgstr "" -#: ../Doc/library/unittest.mock.rst:2018 +#: ../Doc/library/unittest.mock.rst:2052 msgid "" ":data:`FILTER_DIR` is a module level variable that controls the way mock " "objects respond to :func:`dir` (only for Python 2.6 or more recent). The " @@ -1846,7 +2085,7 @@ msgid "" "diagnostic purposes, then set ``mock.FILTER_DIR = False``." msgstr "" -#: ../Doc/library/unittest.mock.rst:2024 +#: ../Doc/library/unittest.mock.rst:2058 msgid "" "With filtering on, ``dir(some_mock)`` shows only useful attributes and will " "include any dynamically created attributes that wouldn't normally be shown. " @@ -1855,7 +2094,7 @@ msgid "" "yet:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2045 +#: ../Doc/library/unittest.mock.rst:2079 msgid "" "Many of the not-very-useful (private to :class:`Mock` rather than the thing " "being mocked) underscore and double underscore prefixed attributes have been " @@ -1864,31 +2103,31 @@ msgid "" "switch :data:`FILTER_DIR`:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2063 +#: ../Doc/library/unittest.mock.rst:2097 msgid "" "Alternatively you can just use ``vars(my_mock)`` (instance members) and " "``dir(type(my_mock))`` (type members) to bypass the filtering irrespective " "of :data:`mock.FILTER_DIR`." msgstr "" -#: ../Doc/library/unittest.mock.rst:2069 +#: ../Doc/library/unittest.mock.rst:2103 msgid "mock_open" msgstr "" -#: ../Doc/library/unittest.mock.rst:2073 +#: ../Doc/library/unittest.mock.rst:2107 msgid "" "A helper function to create a mock to replace the use of :func:`open`. It " "works for :func:`open` called directly or used as a context manager." msgstr "" -#: ../Doc/library/unittest.mock.rst:2076 +#: ../Doc/library/unittest.mock.rst:2110 msgid "" "The *mock* argument is the mock object to configure. If ``None`` (the " "default) then a :class:`MagicMock` will be created for you, with the API " "limited to methods or attributes available on standard file handles." msgstr "" -#: ../Doc/library/unittest.mock.rst:2080 +#: ../Doc/library/unittest.mock.rst:2114 msgid "" "*read_data* is a string for the :meth:`~io.IOBase.read`, :meth:`~io.IOBase." "readline`, and :meth:`~io.IOBase.readlines` methods of the file handle to " @@ -1901,51 +2140,51 @@ msgid "" "realistic filesystem for testing." msgstr "" -#: ../Doc/library/unittest.mock.rst:2090 +#: ../Doc/library/unittest.mock.rst:2124 msgid "" "Added :meth:`~io.IOBase.readline` and :meth:`~io.IOBase.readlines` support. " "The mock of :meth:`~io.IOBase.read` changed to consume *read_data* rather " "than returning it on each call." msgstr "" -#: ../Doc/library/unittest.mock.rst:2095 +#: ../Doc/library/unittest.mock.rst:2129 msgid "*read_data* is now reset on each call to the *mock*." msgstr "" -#: ../Doc/library/unittest.mock.rst:2098 +#: ../Doc/library/unittest.mock.rst:2132 msgid "" "Added :meth:`__iter__` to implementation so that iteration (such as in for " "loops) correctly consumes *read_data*." msgstr "" -#: ../Doc/library/unittest.mock.rst:2102 +#: ../Doc/library/unittest.mock.rst:2136 msgid "" "Using :func:`open` as a context manager is a great way to ensure your file " "handles are closed properly and is becoming common::" msgstr "" -#: ../Doc/library/unittest.mock.rst:2108 +#: ../Doc/library/unittest.mock.rst:2142 msgid "" "The issue is that even if you mock out the call to :func:`open` it is the " "*returned object* that is used as a context manager (and has :meth:" "`__enter__` and :meth:`__exit__` called)." msgstr "" -#: ../Doc/library/unittest.mock.rst:2112 +#: ../Doc/library/unittest.mock.rst:2146 msgid "" "Mocking context managers with a :class:`MagicMock` is common enough and " "fiddly enough that a helper function is useful." msgstr "" -#: ../Doc/library/unittest.mock.rst:2129 +#: ../Doc/library/unittest.mock.rst:2163 msgid "And for reading files:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2142 +#: ../Doc/library/unittest.mock.rst:2176 msgid "Autospeccing" msgstr "" -#: ../Doc/library/unittest.mock.rst:2144 +#: ../Doc/library/unittest.mock.rst:2178 msgid "" "Autospeccing is based on the existing :attr:`spec` feature of mock. It " "limits the api of mocks to the api of an original object (the spec), but it " @@ -1955,11 +2194,11 @@ msgid "" "`TypeError` if they are called incorrectly." msgstr "" -#: ../Doc/library/unittest.mock.rst:2151 +#: ../Doc/library/unittest.mock.rst:2185 msgid "Before I explain how auto-speccing works, here's why it is needed." msgstr "" -#: ../Doc/library/unittest.mock.rst:2153 +#: ../Doc/library/unittest.mock.rst:2187 msgid "" ":class:`Mock` is a very powerful and flexible object, but it suffers from " "two flaws when used to mock out objects from a system under test. One of " @@ -1967,25 +2206,25 @@ msgid "" "general problem with using mock objects." msgstr "" -#: ../Doc/library/unittest.mock.rst:2158 +#: ../Doc/library/unittest.mock.rst:2192 msgid "" "First the problem specific to :class:`Mock`. :class:`Mock` has two assert " "methods that are extremely handy: :meth:`~Mock.assert_called_with` and :meth:" "`~Mock.assert_called_once_with`." msgstr "" -#: ../Doc/library/unittest.mock.rst:2171 +#: ../Doc/library/unittest.mock.rst:2205 msgid "" "Because mocks auto-create attributes on demand, and allow you to call them " "with arbitrary arguments, if you misspell one of these assert methods then " "your assertion is gone:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2181 +#: ../Doc/library/unittest.mock.rst:2215 msgid "Your tests can pass silently and incorrectly because of the typo." msgstr "" -#: ../Doc/library/unittest.mock.rst:2183 +#: ../Doc/library/unittest.mock.rst:2217 msgid "" "The second issue is more general to mocking. If you refactor some of your " "code, rename members and so on, any tests for code that is still using the " @@ -1993,7 +2232,7 @@ msgid "" "means your tests can all pass even though your code is broken." msgstr "" -#: ../Doc/library/unittest.mock.rst:2188 +#: ../Doc/library/unittest.mock.rst:2222 msgid "" "Note that this is another reason why you need integration tests as well as " "unit tests. Testing everything in isolation is all fine and dandy, but if " @@ -2001,20 +2240,20 @@ msgid "" "room for bugs that tests might have caught." msgstr "" -#: ../Doc/library/unittest.mock.rst:2193 +#: ../Doc/library/unittest.mock.rst:2227 msgid "" ":mod:`mock` already provides a feature to help with this, called speccing. " "If you use a class or instance as the :attr:`spec` for a mock then you can " "only access attributes on the mock that exist on the real class:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2204 +#: ../Doc/library/unittest.mock.rst:2238 msgid "" "The spec only applies to the mock itself, so we still have the same issue " "with any methods on the mock:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2213 +#: ../Doc/library/unittest.mock.rst:2247 msgid "" "Auto-speccing solves this problem. You can either pass ``autospec=True`` to :" "func:`patch` / :func:`patch.object` or use the :func:`create_autospec` " @@ -2026,24 +2265,24 @@ msgid "" "import modules) without a big performance hit." msgstr "" -#: ../Doc/library/unittest.mock.rst:2222 +#: ../Doc/library/unittest.mock.rst:2256 msgid "Here's an example of it in use:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2232 +#: ../Doc/library/unittest.mock.rst:2266 msgid "" "You can see that :class:`request.Request` has a spec. :class:`request." "Request` takes two arguments in the constructor (one of which is *self*). " "Here's what happens if we try to call it incorrectly:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2241 +#: ../Doc/library/unittest.mock.rst:2275 msgid "" "The spec also applies to instantiated classes (i.e. the return value of " "specced mocks):" msgstr "" -#: ../Doc/library/unittest.mock.rst:2248 +#: ../Doc/library/unittest.mock.rst:2282 msgid "" ":class:`Request` objects are not callable, so the return value of " "instantiating our mocked out :class:`request.Request` is a non-callable " @@ -2051,20 +2290,20 @@ msgid "" "error:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2260 +#: ../Doc/library/unittest.mock.rst:2294 msgid "" "In many cases you will just be able to add ``autospec=True`` to your " "existing :func:`patch` calls and then be protected against bugs due to typos " "and api changes." msgstr "" -#: ../Doc/library/unittest.mock.rst:2264 +#: ../Doc/library/unittest.mock.rst:2298 msgid "" "As well as using *autospec* through :func:`patch` there is a :func:" "`create_autospec` for creating autospecced mocks directly:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2272 +#: ../Doc/library/unittest.mock.rst:2306 msgid "" "This isn't without caveats and limitations however, which is why it is not " "the default behaviour. In order to know what attributes are available on the " @@ -2076,7 +2315,7 @@ msgid "" "objects so that introspection is safe [#]_." msgstr "" -#: ../Doc/library/unittest.mock.rst:2281 +#: ../Doc/library/unittest.mock.rst:2315 msgid "" "A more serious problem is that it is common for instance attributes to be " "created in the :meth:`__init__` method and not to exist on the class at all. " @@ -2084,7 +2323,7 @@ msgid "" "the api to visible attributes." msgstr "" -#: ../Doc/library/unittest.mock.rst:2298 +#: ../Doc/library/unittest.mock.rst:2332 msgid "" "There are a few different ways of resolving this problem. The easiest, but " "not necessarily the least annoying, way is to simply set the required " @@ -2093,7 +2332,7 @@ msgid "" "setting them:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2309 +#: ../Doc/library/unittest.mock.rst:2343 msgid "" "There is a more aggressive version of both *spec* and *autospec* that *does* " "prevent you setting non-existent attributes. This is useful if you want to " @@ -2101,7 +2340,7 @@ msgid "" "this particular scenario:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2322 +#: ../Doc/library/unittest.mock.rst:2356 msgid "" "Probably the best way of solving the problem is to add class attributes as " "default values for instance members initialised in :meth:`__init__`. Note " @@ -2110,7 +2349,7 @@ msgid "" "faster too. e.g." msgstr "" -#: ../Doc/library/unittest.mock.rst:2332 +#: ../Doc/library/unittest.mock.rst:2366 msgid "" "This brings up another issue. It is relatively common to provide a default " "value of ``None`` for members that will later be an object of a different " @@ -2121,7 +2360,7 @@ msgid "" "These will just be ordinary mocks (well - MagicMocks):" msgstr "" -#: ../Doc/library/unittest.mock.rst:2347 +#: ../Doc/library/unittest.mock.rst:2381 msgid "" "If modifying your production classes to add defaults isn't to your liking " "then there are more options. One of these is simply to use an instance as " @@ -2132,27 +2371,27 @@ msgid "" "alternative object as the *autospec* argument:" msgstr "" -#: ../Doc/library/unittest.mock.rst:2368 +#: ../Doc/library/unittest.mock.rst:2402 msgid "" "This only applies to classes or already instantiated objects. Calling a " "mocked class to create a mock instance *does not* create a real instance. It " "is only attribute lookups - along with calls to :func:`dir` - that are done." msgstr "" -#: ../Doc/library/unittest.mock.rst:2373 +#: ../Doc/library/unittest.mock.rst:2407 msgid "Sealing mocks" msgstr "" -#: ../Doc/library/unittest.mock.rst:2377 +#: ../Doc/library/unittest.mock.rst:2411 msgid "" -"Seal will disable the creation of mock children by preventing getting or " -"setting of any new attribute on the sealed mock. The sealing process is " -"performed recursively." +"Seal will disable the automatic creation of mocks when accessing an " +"attribute of the mock being sealed or any of its attributes that are already " +"mocks recursively." msgstr "" -#: ../Doc/library/unittest.mock.rst:2380 +#: ../Doc/library/unittest.mock.rst:2414 msgid "" -"If a mock instance is assigned to an attribute instead of being dynamically " -"created it won't be considered in the sealing chain. This allows one to " -"prevent seal from fixing part of the mock object." +"If a mock instance with a name or a spec is assigned to an attribute it " +"won't be considered in the sealing chain. This allows one to prevent seal " +"from fixing part of the mock object." msgstr "" diff --git a/library/unittest.po b/library/unittest.po index 016f7f8bb..272e502b8 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-09-27 11:28+0200\n" -"Last-Translator: Lowic Mangin \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-16 23:24+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 1.5.4\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/library/unittest.rst:2 msgid ":mod:`unittest` --- Unit testing framework" -msgstr ":mod:`unittest` --- *Framework* de tests unitaires" +msgstr ":mod:`unittest` — *Framework* de tests unitaires" #: ../Doc/library/unittest.rst:12 msgid "**Source code:** :source:`Lib/unittest/__init__.py`" @@ -141,7 +141,7 @@ msgstr "" #: ../Doc/library/unittest.rst:61 msgid "" -"`Nose `_ and `py.test `_ and `pytest `_" msgstr "" "`Nose `_ et `py.test `)." msgstr "" +"*Unittest* prend en charge une découverte simple des tests. Afin d'être " +"compatible avec le système de découverte de tests, tous les fichiers de test " +"doivent être des :ref:`modules ` ou des :ref:`paquets ` (incluant des :term:`paquets-espaces de nommage `) importables du répertoire du projet (cela signifie que leurs noms " +"doivent être des :ref:`identifiants ` valables)." #: ../Doc/library/unittest.rst:269 msgid "" "Test discovery is implemented in :meth:`TestLoader.discover`, but can also " "be used from the command line. The basic command-line usage is::" msgstr "" +"La découverte de tests est implémentée dans :meth:`TestLoader.discover`, " +"mais peut également être utilisée depuis la ligne de commande. Par exemple ::" #: ../Doc/library/unittest.rst:277 msgid "" @@ -449,26 +502,29 @@ msgid "" "unittest discover``. If you want to pass arguments to test discovery the " "``discover`` sub-command must be used explicitly." msgstr "" +"Comme raccourci, ``python -m unittest`` est l'équivalent de ``python -m " +"unittest discover``. Pour passer des arguments au système de découverte des " +"tests, la sous-commande ``discover`` doit être utilisée explicitement." #: ../Doc/library/unittest.rst:281 msgid "The ``discover`` sub-command has the following options:" -msgstr "" +msgstr "La sous-commande ``discover`` a les options suivantes  ::" #: ../Doc/library/unittest.rst:287 msgid "Verbose output" -msgstr "" +msgstr "Affichage plus détaillé" #: ../Doc/library/unittest.rst:291 msgid "Directory to start discovery (``.`` default)" -msgstr "" +msgstr "Répertoire racine pour démarrer la découverte (``.`` par défaut)." #: ../Doc/library/unittest.rst:295 msgid "Pattern to match test files (``test*.py`` default)" -msgstr "" +msgstr "Motif de détection des fichiers de test (``test*.py`` par défaut)" #: ../Doc/library/unittest.rst:299 msgid "Top level directory of project (defaults to start directory)" -msgstr "" +msgstr "Dossier du premier niveau du projet (Par défaut le dossier de départ)" #: ../Doc/library/unittest.rst:301 msgid "" @@ -476,6 +532,9 @@ msgid "" "positional arguments in that order. The following two command lines are " "equivalent::" msgstr "" +"Les options :option:`-s`, :option:`-p` et :option:`-t` peuvent être passées " +"en arguments positionnels dans cet ordre. Les deux lignes de commande " +"suivantes sont équivalentes ::" #: ../Doc/library/unittest.rst:308 msgid "" @@ -484,6 +543,10 @@ msgid "" "supply will then be imported and its location on the filesystem will be used " "as the start directory." msgstr "" +"Il est aussi possible de passer un nom de paquet plutôt qu'un chemin, par " +"exemple ``monprojet.souspaquet.test``, comme répertoire racine. Le nom du " +"paquet fourni est alors importé et son emplacement sur le système de " +"fichiers est utilisé comme répertoire racine." #: ../Doc/library/unittest.rst:315 msgid "" @@ -492,6 +555,11 @@ msgid "" "into package names to import. For example :file:`foo/bar/baz.py` will be " "imported as ``foo.bar.baz``." msgstr "" +"Le mécanisme de découverte charge les tests en les important. Une fois que " +"le système a trouvé tous les fichiers de tests du répertoire de démarrage " +"spécifié, il transforme les chemins en noms de paquets à importer. Par " +"exemple :file:`truc/bidule/machin.py` est importé sous ``truc.bidule." +"machin``." #: ../Doc/library/unittest.rst:320 msgid "" @@ -499,6 +567,10 @@ msgid "" "different copy of the package then the import *could* happen from the wrong " "place. If this happens test discovery will warn you and exit." msgstr "" +"Si un paquet est installé globalement et que le mécanisme de découverte de " +"tests est effectué sur une copie différente du paquet, l'importation *peut* " +"se produire à partir du mauvais endroit. Si cela arrive, le système émet un " +"avertissement et se termine." #: ../Doc/library/unittest.rst:324 msgid "" @@ -506,20 +578,28 @@ msgid "" "directory then discover assumes that whichever location it imports from is " "the location you intended, so you will not get the warning." msgstr "" +"Si vous donnez le répertoire racine sous la forme d'un nom de paquet plutôt " +"que d'un chemin d'accès à un répertoire, alors Python suppose que " +"l'emplacement à partir duquel il importe est l'emplacement que vous voulez, " +"vous ne verrez donc pas l'avertissement." #: ../Doc/library/unittest.rst:329 msgid "" "Test modules and packages can customize test loading and discovery by " "through the `load_tests protocol`_." msgstr "" +"Les modules de test et les paquets peuvent adapter le chargement et la " +"découverte des tests en utilisant le protocole `load_tests protocol`_." #: ../Doc/library/unittest.rst:332 msgid "Test discovery supports :term:`namespace packages `." msgstr "" +"La découverte de tests prend en charge :term:`les paquets-espaces de nommage " +"`." #: ../Doc/library/unittest.rst:339 msgid "Organizing test code" -msgstr "" +msgstr "Organiser le code de test" #: ../Doc/library/unittest.rst:341 msgid "" @@ -529,6 +609,12 @@ msgid "" "instances. To make your own test cases you must write subclasses of :class:" "`TestCase` or use :class:`FunctionTestCase`." msgstr "" +"Les éléments de base des tests unitaires sont les :dfn:`scénarios de tests` " +"(*test cases* en anglais) --- Des scénarios uniques qui sont mis en place et " +"exécutés pour vérifier qu'ils sont corrects. Dans :mod:`unittest`, les " +"scénarios de test sont représentés par des instances de :class:`unittest." +"TestCase`. Pour créer vos propres scénarios de test, vous devez écrire des " +"sous-classes de :class:`TestCase` ou utiliser :class:`FunctionTestCase`." #: ../Doc/library/unittest.rst:347 msgid "" @@ -536,6 +622,9 @@ msgid "" "contained, such that it can be run either in isolation or in arbitrary " "combination with any number of other test cases." msgstr "" +"Le code de test d'une instance de :class:`TestCase` doit être entièrement " +"autonome, de sorte qu'il puisse être exécuté soit de manière isolée, soit en " +"combinaison arbitraire avec un nombre quelconque d'autres scénarios de test." #: ../Doc/library/unittest.rst:351 msgid "" @@ -543,6 +632,9 @@ msgid "" "(i.e. a method whose name starts with ``test``) in order to perform specific " "testing code::" msgstr "" +"La sous-classe :class:`TestCase` la plus simple va tout simplement " +"implémenter une méthode de test (c'est-à-dire une méthode dont le nom " +"commence par ``test``) afin d'exécuter un code de test spécifique ::" #: ../Doc/library/unittest.rst:362 msgid "" @@ -552,6 +644,11 @@ msgid "" "will identify the test case as a :dfn:`failure`. Any other exceptions will " "be treated as :dfn:`errors`." msgstr "" +"Notez que pour tester quelque chose, on utilise l'une des méthodes :meth:" +"`assert\\*` fournies par la classe de base :class:`TestCase`. Si le test " +"échoue, une exception est levée avec un message explicatif, et :mod:" +"`unittest` identifie ce scénario de test comme un :dfn:`échec`. Toute autre " +"exception est traitée comme une :dfn:`erreur`." #: ../Doc/library/unittest.rst:368 msgid "" @@ -560,12 +657,19 @@ msgid "" "setUp`, which the testing framework will automatically call for every single " "test we run::" msgstr "" +"Les tests peuvent être nombreux et leur mise en place peut être répétitive. " +"Heureusement, on peut factoriser le code de mise en place en implémentant " +"une méthode appelée :meth:`~TestCase.setUp`, que le système de test appelle " +"automatiquement pour chaque test exécuté ::" #: ../Doc/library/unittest.rst:389 msgid "" "The order in which the various tests will be run is determined by sorting " "the test method names with respect to the built-in ordering for strings." msgstr "" +"L'ordre dans lequel les différents tests sont exécutés est déterminé en " +"classant les noms des méthodes de test en fonction de la relation d'ordre " +"des chaines de caractères ." #: ../Doc/library/unittest.rst:393 msgid "" @@ -573,18 +677,25 @@ msgid "" "running, the framework will consider the test to have suffered an error, and " "the test method will not be executed." msgstr "" +"Si la méthode :meth:`~TestCase.setUp` lève une exception pendant l'exécution " +"du test, le système considère que le test a subi une erreur, et la méthode " +"test n'est pas exécutée." #: ../Doc/library/unittest.rst:397 msgid "" "Similarly, we can provide a :meth:`~TestCase.tearDown` method that tidies up " "after the test method has been run::" msgstr "" +"De même, on peut fournir une méthode :meth:`~TestCase.tearDown` qui nettoie " +"après l'exécution de la méthode de test ::" #: ../Doc/library/unittest.rst:409 msgid "" "If :meth:`~TestCase.setUp` succeeded, :meth:`~TestCase.tearDown` will be run " "whether the test method succeeded or not." msgstr "" +"Si :meth:`~TestCase.setUp` a réussi, :meth:`~TestCase.tearDown` est " +"exécutée, que la méthode de test ait réussi ou non." #: ../Doc/library/unittest.rst:412 msgid "" @@ -594,6 +705,12 @@ msgid "" "`~TestCase.tearDown`, and :meth:`~TestCase.__init__` will be called once per " "test." msgstr "" +"Un tel environnement de travail pour le code de test s'appelle un :dfn:" +"`aménagement de test` (*fixture* en anglais). Une nouvelle instance de " +"*TestCase* est créée sous la forme d'un dispositif de test unique utilisé " +"pour exécuter chaque méthode de test individuelle. Ainsi :meth:`~TestCase." +"setUp`, :meth:`~TestCase.tearDown` et :meth:`~TestCase.__init__` ne sont " +"appelées qu'une fois par test." #: ../Doc/library/unittest.rst:418 msgid "" @@ -604,12 +721,20 @@ msgid "" "do the right thing and collect all the module's test cases for you and " "execute them." msgstr "" +"Il est recommandé d'utiliser *TestCase* pour regrouper les tests en fonction " +"des fonctionnalités qu'ils testent. :mod:`unittest` fournit un mécanisme " +"pour cela : la :dfn:`suite de tests`, représentée par :class:`TestSuite` du " +"module :mod:`unittest`. Dans la plupart des cas, appeler :func:`unittest." +"main` fait correctement les choses et trouve tous les scénarios de test du " +"module pour vous et les exécute." #: ../Doc/library/unittest.rst:425 msgid "" "However, should you want to customize the building of your test suite, you " "can do it yourself::" msgstr "" +"Cependant, si vous voulez personnaliser la construction de votre suite de " +"tests, vous pouvez le faire vous-même ::" #: ../Doc/library/unittest.rst:438 msgid "" @@ -618,44 +743,58 @@ msgid "" "are several advantages to placing the test code in a separate module, such " "as :file:`test_widget.py`:" msgstr "" +"Vous pouvez placer les définitions des scénarios de test et des suites de " +"test dans le même module que le code à tester (tel que :file:`composant." +"py`), mais il y a plusieurs avantages à placer le code de test dans un " +"module séparé, tel que :file:`test_composant.py` :" #: ../Doc/library/unittest.rst:443 msgid "The test module can be run standalone from the command line." msgstr "" +"Le module de test peut être exécuté indépendamment depuis la ligne de " +"commande." #: ../Doc/library/unittest.rst:445 msgid "The test code can more easily be separated from shipped code." -msgstr "" +msgstr "Le code de test est plus facilement séparable du code livré." #: ../Doc/library/unittest.rst:447 msgid "" "There is less temptation to change test code to fit the code it tests " "without a good reason." msgstr "" +"La tentation est moins grande de changer le code de test pour l'adapter au " +"code qu'il teste sans avoir une bonne raison." #: ../Doc/library/unittest.rst:450 msgid "" "Test code should be modified much less frequently than the code it tests." msgstr "" +"Le code de test doit être modifié beaucoup moins souvent que le code qu'il " +"teste." #: ../Doc/library/unittest.rst:452 msgid "Tested code can be refactored more easily." -msgstr "" +msgstr "Le code testé peut être réusiné plus facilement." #: ../Doc/library/unittest.rst:454 msgid "" "Tests for modules written in C must be in separate modules anyway, so why " "not be consistent?" msgstr "" +"Les tests pour les modules écrits en C doivent de toute façon être dans des " +"modules séparés, alors pourquoi ne pas être cohérent ?" #: ../Doc/library/unittest.rst:457 msgid "" "If the testing strategy changes, there is no need to change the source code." msgstr "" +"Si la stratégie de test change, il n'est pas nécessaire de changer le code " +"source." #: ../Doc/library/unittest.rst:463 msgid "Re-using old test code" -msgstr "" +msgstr "Réutilisation d'ancien code de test" #: ../Doc/library/unittest.rst:465 msgid "" @@ -663,6 +802,9 @@ msgid "" "to run from :mod:`unittest`, without converting every old test function to " "a :class:`TestCase` subclass." msgstr "" +"Certains utilisateurs constatent qu'ils ont du code de test existant qu'ils " +"souhaitent exécuter à partir de :mod:`unittest`, sans convertir chaque " +"ancienne fonction de test en une sous-classe de :class:`TestCase`." #: ../Doc/library/unittest.rst:469 msgid "" @@ -670,16 +812,23 @@ msgid "" "This subclass of :class:`TestCase` can be used to wrap an existing test " "function. Set-up and tear-down functions can also be provided." msgstr "" +"Pour cette raison, :mod:`unittest` fournit une classe :class:" +"`FunctionTestCase`. Cette sous-classe de :class:`TestCase` peut être " +"utilisée pour encapsuler une fonction de test existante. Des fonctions de " +"mise en place (*setUp*) et de démantèlement (*tearDown*) peuvent également " +"être fournies." #: ../Doc/library/unittest.rst:473 msgid "Given the following test function::" -msgstr "" +msgstr "Étant donnée la fonction de test suivante ::" #: ../Doc/library/unittest.rst:480 msgid "" "one can create an equivalent test case instance as follows, with optional " "set-up and tear-down methods::" msgstr "" +"on peut créer une instance de scénario de test équivalente, avec des " +"méthodes optionnelles de mise en place et de démantèlement ::" #: ../Doc/library/unittest.rst:489 msgid "" @@ -688,6 +837,11 @@ msgid "" "is not recommended. Taking the time to set up proper :class:`TestCase` " "subclasses will make future test refactorings infinitely easier." msgstr "" +"Même si la classe :class:`FunctionTestCase` peut être utilisée pour " +"convertir rapidement une base de test existante vers un système basé sur :" +"mod:`unittest`, cette approche n'est pas recommandée. Prendre le temps de " +"bien configurer les sous-classes de :class:`TestCase` simplifiera " +"considérablement les futurs réusinages des tests." #: ../Doc/library/unittest.rst:494 msgid "" @@ -696,10 +850,15 @@ msgid "" "class that can automatically build :class:`unittest.TestSuite` instances " "from the existing :mod:`doctest`\\ -based tests." msgstr "" +"Dans certains cas, les tests déjà existants ont pu être écrits avec le " +"module :mod:`doctest`. Dans ce cas, :mod:`doctest` fournit une classe :" +"class:`DocTestSuite` qui peut construire automatiquement des instances de la " +"classe :class:`unittest.TestSuite` depuis des tests basés sur le module :mod:" +"`doctest`." #: ../Doc/library/unittest.rst:503 msgid "Skipping tests and expected failures" -msgstr "" +msgstr "Ignorer des tests et des erreurs prévisibles" #: ../Doc/library/unittest.rst:507 msgid "" @@ -708,123 +867,163 @@ msgid "" "a test that is broken and will fail, but shouldn't be counted as a failure " "on a :class:`TestResult`." msgstr "" +"*Unittest* permet d'ignorer des méthodes de test individuelles et même des " +"classes entières de tests. De plus, il prend en charge le marquage d'un test " +"comme étant une \"erreur prévue\". Un test qui est cassé et qui échoue, mais " +"qui ne doit pas être considéré comme un échec dans la classe :class:" +"`TestResult`." #: ../Doc/library/unittest.rst:512 msgid "" "Skipping a test is simply a matter of using the :func:`skip` :term:" -"`decorator` or one of its conditional variants." +"`decorator` or one of its conditional variants, calling :meth:`TestCase." +"skipTest` within a :meth:`~TestCase.setUp` or test method, or raising :exc:" +"`SkipTest` directly." msgstr "" +"Ignorer un test consiste à soit utiliser le :term:`décorateur ` :" +"func:`skip` ou une de ses variantes conditionnelles, soit appeler :meth:" +"`TestCase.skipTest` à l'intérieur d'une méthode :meth:`~TestCase.setUp` ou " +"de test, soit lever :exc:`SkipTest` directement." -#: ../Doc/library/unittest.rst:515 +#: ../Doc/library/unittest.rst:516 msgid "Basic skipping looks like this::" -msgstr "" +msgstr "Un exemple de tests à ignorer ::" -#: ../Doc/library/unittest.rst:534 +#: ../Doc/library/unittest.rst:541 msgid "This is the output of running the example above in verbose mode::" msgstr "" +"Ceci est le résultat de l'exécution de l'exemple ci-dessus en mode verbeux ::" -#: ../Doc/library/unittest.rst:545 +#: ../Doc/library/unittest.rst:553 msgid "Classes can be skipped just like methods::" -msgstr "" +msgstr "Les classes peuvent être ignorées tout comme les méthodes ::" -#: ../Doc/library/unittest.rst:552 +#: ../Doc/library/unittest.rst:560 msgid "" ":meth:`TestCase.setUp` can also skip the test. This is useful when a " "resource that needs to be set up is not available." msgstr "" +"La méthode :meth:`TestCase.setUp` permet également d'ignorer le test. Ceci " +"est utile lorsqu'une ressource qui doit être configurée n'est pas disponible." -#: ../Doc/library/unittest.rst:555 +#: ../Doc/library/unittest.rst:563 msgid "Expected failures use the :func:`expectedFailure` decorator. ::" msgstr "" +"Les erreurs prévisibles utilisent le décorateur :func:`expectedFailure` ::" -#: ../Doc/library/unittest.rst:562 +#: ../Doc/library/unittest.rst:570 msgid "" "It's easy to roll your own skipping decorators by making a decorator that " "calls :func:`skip` on the test when it wants it to be skipped. This " "decorator skips the test unless the passed object has a certain attribute::" msgstr "" +"Il est facile de faire ses propres décorateurs en créant un décorateur qui " +"appelle :func:`skip` sur le test que vous voulez ignorer. Par exemple, ce " +"décorateur ignore le test à moins que l'objet passé ne possède un certain " +"attribut ::" -#: ../Doc/library/unittest.rst:571 -msgid "The following decorators implement test skipping and expected failures:" +#: ../Doc/library/unittest.rst:579 +msgid "" +"The following decorators and exception implement test skipping and expected " +"failures:" msgstr "" +"Les décorateurs et exceptions suivants implémentent le système d'omission " +"des tests et les erreurs prévisibles  ::" -#: ../Doc/library/unittest.rst:575 +#: ../Doc/library/unittest.rst:583 msgid "" "Unconditionally skip the decorated test. *reason* should describe why the " "test is being skipped." msgstr "" +"Ignore sans condition le test décoré. *La raison* doit décrire la raison " +"pour laquelle le test est omis." -#: ../Doc/library/unittest.rst:580 +#: ../Doc/library/unittest.rst:588 msgid "Skip the decorated test if *condition* is true." -msgstr "" +msgstr "Ignore le test décoré si la *condition* est vraie." -#: ../Doc/library/unittest.rst:584 +#: ../Doc/library/unittest.rst:592 msgid "Skip the decorated test unless *condition* is true." -msgstr "" +msgstr "Ignore le test décoré sauf si la *condition* est vraie." -#: ../Doc/library/unittest.rst:588 +#: ../Doc/library/unittest.rst:596 msgid "" -"Mark the test as an expected failure. If the test fails when run, the test " -"is not counted as a failure." +"Mark the test as an expected failure. If the test fails it will be " +"considered a success. If the test passes, it will be considered a failure." msgstr "" +"Marque le test comme étant un erreur attendue. Si le test échoue il est " +"considéré comme un succès. S'il passe, il est considéré comme étant en échec." -#: ../Doc/library/unittest.rst:593 +#: ../Doc/library/unittest.rst:601 msgid "This exception is raised to skip a test." -msgstr "" +msgstr "Cette exception est levée pour ignorer un test." -#: ../Doc/library/unittest.rst:595 +#: ../Doc/library/unittest.rst:603 msgid "" "Usually you can use :meth:`TestCase.skipTest` or one of the skipping " "decorators instead of raising this directly." msgstr "" +"Habituellement, on utilise :meth:`TestCase.skipTest` ou l'un des décorateurs " +"d'omission au lieu de le lever une exception directement." -#: ../Doc/library/unittest.rst:598 +#: ../Doc/library/unittest.rst:606 msgid "" "Skipped tests will not have :meth:`~TestCase.setUp` or :meth:`~TestCase." "tearDown` run around them. Skipped classes will not have :meth:`~TestCase." "setUpClass` or :meth:`~TestCase.tearDownClass` run. Skipped modules will not " "have :func:`setUpModule` or :func:`tearDownModule` run." msgstr "" +"Les tests ignorés ne lancent ni :meth:`~TestCase.setUp` ni :meth:`~TestCase." +"tearDown`. Les classes ignorées ne lancent ni :meth:`~TestCase.setUpClass` " +"ni :meth:`~TestCase.tearDownClass`. Les modules sautés n'ont pas :func:" +"`setUpModule` ou :func:`tearDownModule` d'exécutés." -#: ../Doc/library/unittest.rst:606 +#: ../Doc/library/unittest.rst:614 msgid "Distinguishing test iterations using subtests" -msgstr "" +msgstr "Distinguer les itérations de test à l'aide de sous-tests" -#: ../Doc/library/unittest.rst:610 +#: ../Doc/library/unittest.rst:618 msgid "" -"When some of your tests differ only by a some very small differences, for " -"instance some parameters, unittest allows you to distinguish them inside the " -"body of a test method using the :meth:`~TestCase.subTest` context manager." +"When there are very small differences among your tests, for instance some " +"parameters, unittest allows you to distinguish them inside the body of a " +"test method using the :meth:`~TestCase.subTest` context manager." msgstr "" +"Lorsque certains de vos tests ne diffèrent que par de très petites " +"différences, par exemple certains paramètres, *unittest* vous permet de les " +"distinguer en utilisant le gestionnaire de contexte :meth:`~TestCase." +"subTest` dans le corps d'une méthode de test." -#: ../Doc/library/unittest.rst:614 +#: ../Doc/library/unittest.rst:622 msgid "For example, the following test::" -msgstr "" +msgstr "Par exemple, le test suivant ::" -#: ../Doc/library/unittest.rst:626 +#: ../Doc/library/unittest.rst:634 msgid "will produce the following output::" -msgstr "" +msgstr "produit le résultat suivant ::" -#: ../Doc/library/unittest.rst:652 +#: ../Doc/library/unittest.rst:660 msgid "" "Without using a subtest, execution would stop after the first failure, and " "the error would be less easy to diagnose because the value of ``i`` wouldn't " "be displayed::" msgstr "" +"Sans l'utilisation d'un sous-test, l'exécution se termine après le premier " +"échec, et l'erreur est moins facile à diagnostiquer car la valeur de ``i`` " +"ne s'affiche pas ::" -#: ../Doc/library/unittest.rst:668 +#: ../Doc/library/unittest.rst:676 msgid "Classes and functions" -msgstr "" +msgstr "Classes et fonctions" -#: ../Doc/library/unittest.rst:670 +#: ../Doc/library/unittest.rst:678 msgid "This section describes in depth the API of :mod:`unittest`." -msgstr "" +msgstr "Cette section décrit en détail l'API de :mod:`unittest`." -#: ../Doc/library/unittest.rst:676 +#: ../Doc/library/unittest.rst:684 msgid "Test cases" -msgstr "" +msgstr "Scénarios de tests" -#: ../Doc/library/unittest.rst:680 +#: ../Doc/library/unittest.rst:688 msgid "" "Instances of the :class:`TestCase` class represent the logical test units in " "the :mod:`unittest` universe. This class is intended to be used as a base " @@ -833,42 +1032,66 @@ msgid "" "drive the tests, and methods that the test code can use to check for and " "report various kinds of failure." msgstr "" +"Les instances de la classe :class:`TestCase` représentent des tests logiques " +"unitaires dans l'univers :mod:`unittest`. Cette classe est conçue pour être " +"utilisée comme classe de base. Les scénarios de tests sont à implémenter en " +"héritant de cette classe. La classe implémente l'interface nécessaire au " +"lanceur de tests pour lui permettre de les exécuter ainsi que les méthodes " +"que le code de test peut utiliser pour vérifier et signaler les différents " +"types d'erreurs." -#: ../Doc/library/unittest.rst:687 +#: ../Doc/library/unittest.rst:695 msgid "" "Each instance of :class:`TestCase` will run a single base method: the method " "named *methodName*. In most uses of :class:`TestCase`, you will neither " "change the *methodName* nor reimplement the default ``runTest()`` method." msgstr "" +"Chaque instance de la classe :class:`TestCase` n'exécute qu'une seule " +"méthode de base : la méthode nommée *methodName* . Dans la plupart des " +"utilisations de la classe :class:`TestCase`, vous n'avez pas à changer le " +"nom de la méthode, ni à réimplémenter la méthode ``runTest()``." -#: ../Doc/library/unittest.rst:692 +#: ../Doc/library/unittest.rst:700 msgid "" ":class:`TestCase` can be instantiated successfully without providing a " "*methodName*. This makes it easier to experiment with :class:`TestCase` from " "the interactive interpreter." msgstr "" +"La classe :class:`TestCase` peut désormais être utilisée sans passer de " +"paramètre *methodName*. Cela facilite l'usage de :class:`TestCase` dans " +"l'interpréteur interactif." -#: ../Doc/library/unittest.rst:697 +#: ../Doc/library/unittest.rst:705 msgid "" ":class:`TestCase` instances provide three groups of methods: one group used " "to run the test, another used by the test implementation to check conditions " "and report failures, and some inquiry methods allowing information about the " "test itself to be gathered." msgstr "" +"Les instances de la classe :class:`TestCase` fournissent trois groupes de " +"méthodes : un groupe utilisé pour exécuter le test, un autre utilisé par " +"l'implémentation du test pour vérifier les conditions et signaler les " +"échecs, et quelques méthodes de recherche permettant de recueillir des " +"informations sur le test lui-même." -#: ../Doc/library/unittest.rst:702 +#: ../Doc/library/unittest.rst:710 msgid "Methods in the first group (running the test) are:" -msgstr "" +msgstr "Les méthodes du premier groupe (exécution du test) sont :" -#: ../Doc/library/unittest.rst:706 +#: ../Doc/library/unittest.rst:714 msgid "" "Method called to prepare the test fixture. This is called immediately " "before calling the test method; other than :exc:`AssertionError` or :exc:" "`SkipTest`, any exception raised by this method will be considered an error " "rather than a test failure. The default implementation does nothing." msgstr "" +"Méthode appelée pour réaliser la mise en place du test. Elle est exécutée " +"immédiatement avant l'appel de la méthode de test ; à l'exception de :exc:" +"`AssertionError` ou :exc:`SkipTest`, toute exception levée par cette méthode " +"est considérée comme une erreur et non pas comme un échec du test. " +"L'implémentation par défaut ne fait rien." -#: ../Doc/library/unittest.rst:714 +#: ../Doc/library/unittest.rst:722 msgid "" "Method called immediately after the test method has been called and the " "result recorded. This is called even if the test method raised an " @@ -880,211 +1103,252 @@ msgid "" "the :meth:`setUp` succeeds, regardless of the outcome of the test method. " "The default implementation does nothing." msgstr "" +"Méthode appelée immédiatement après l'appel de la méthode de test et " +"l'enregistrement du résultat. Elle est appelée même si la méthode de test a " +"levé une exception. De fait, l'implémentation d'un sous-classes doit être " +"fait avec précaution si vous vérifiez l'état interne de la classe. Toute " +"exception, autre que :exc:`AssertionError` ou :exc:`SkipTest`, levée par " +"cette méthode est considérée comme une erreur supplémentaire plutôt que " +"comme un échec du test (augmentant ainsi le nombre total des erreurs " +"signalées). Cette méthode est appelée uniquement si l'exécution de :meth:" +"`setUp` est réussie quel que soit le résultat de la méthode de test. " +"L'implémentation par défaut ne fait rien." -#: ../Doc/library/unittest.rst:727 +#: ../Doc/library/unittest.rst:735 msgid "" "A class method called before tests in an individual class are run. " "``setUpClass`` is called with the class as the only argument and must be " "decorated as a :func:`classmethod`::" msgstr "" +"Méthode de classe appelée avant l'exécution des tests dans la classe en " +"question. ``setUpClass`` est appelée avec la classe comme seul argument et " +"doit être décorée comme une :func:`classmethod` ::" -#: ../Doc/library/unittest.rst:735 ../Doc/library/unittest.rst:750 +#: ../Doc/library/unittest.rst:743 ../Doc/library/unittest.rst:758 msgid "See `Class and Module Fixtures`_ for more details." -msgstr "" +msgstr "Voir `Class and Module Fixtures`_ pour plus de détails." -#: ../Doc/library/unittest.rst:742 +#: ../Doc/library/unittest.rst:750 msgid "" "A class method called after tests in an individual class have run. " "``tearDownClass`` is called with the class as the only argument and must be " "decorated as a :meth:`classmethod`::" msgstr "" +"Méthode de classe appelée après l'exécution des tests de la classe en " +"question. ``tearDownClass`` est appelée avec la classe comme seul argument " +"et doit être décorée comme une :meth:`classmethod` ::" -#: ../Doc/library/unittest.rst:757 +#: ../Doc/library/unittest.rst:765 msgid "" "Run the test, collecting the result into the :class:`TestResult` object " "passed as *result*. If *result* is omitted or ``None``, a temporary result " "object is created (by calling the :meth:`defaultTestResult` method) and " "used. The result object is returned to :meth:`run`'s caller." msgstr "" +"Exécute le test, en collectant le résultat dans l'objet :class:`TestResult` " +"passé comme *result*. Si *result* est omis ou vaut ``None``, un objet " +"temporaire de résultat est créé (en appelant la méthode :meth:" +"`defaultTestResult`) et utilisé. L'objet résultat est renvoyé à l'appelant " +"de :meth:`run`." -#: ../Doc/library/unittest.rst:763 +#: ../Doc/library/unittest.rst:771 msgid "" "The same effect may be had by simply calling the :class:`TestCase` instance." msgstr "" +"Le même effet peut être obtenu en appelant simplement l'instance :class:" +"`TestCase`." -#: ../Doc/library/unittest.rst:766 +#: ../Doc/library/unittest.rst:774 msgid "" "Previous versions of ``run`` did not return the result. Neither did calling " "an instance." msgstr "" +"Les versions précédentes de ``run`` ne renvoyaient pas le résultat. Pas plus " +"que l'appel d'une instance." -#: ../Doc/library/unittest.rst:772 +#: ../Doc/library/unittest.rst:780 msgid "" "Calling this during a test method or :meth:`setUp` skips the current test. " "See :ref:`unittest-skipping` for more information." msgstr "" +"Appeler cette fonction pendant l'exécution d'une méthode de test ou de :meth:" +"`setUp` permet d'ignorer le test en cours. Voir :ref:`unittest-skipping` " +"pour plus d'informations." -#: ../Doc/library/unittest.rst:780 +#: ../Doc/library/unittest.rst:788 msgid "" "Return a context manager which executes the enclosed code block as a " "subtest. *msg* and *params* are optional, arbitrary values which are " "displayed whenever a subtest fails, allowing you to identify them clearly." msgstr "" +"Renvoie un gestionnaire de contexte qui exécute le bloc de code du contexte " +"comme un sous-test. *msg* et *params* sont des valeurs optionnelles et " +"arbitraires qui sont affichées chaque fois qu'un sous-test échoue, " +"permettant de les identifier clairement." -#: ../Doc/library/unittest.rst:785 +#: ../Doc/library/unittest.rst:793 msgid "" "A test case can contain any number of subtest declarations, and they can be " "arbitrarily nested." msgstr "" +"Un scénario de test peut contenir un nombre quelconque de déclarations de " +"sous-test, et elles peuvent être imbriquées librement." -#: ../Doc/library/unittest.rst:788 +#: ../Doc/library/unittest.rst:796 msgid "See :ref:`subtests` for more information." -msgstr "" +msgstr "Voir :ref:`subtests` pour plus d'informations." -#: ../Doc/library/unittest.rst:795 +#: ../Doc/library/unittest.rst:803 msgid "" "Run the test without collecting the result. This allows exceptions raised " "by the test to be propagated to the caller, and can be used to support " "running tests under a debugger." msgstr "" +"Lance le test sans collecter le résultat. Ceci permet aux exceptions levées " +"par le test d'être propagées à l'appelant, et donc peut être utilisé pour " +"exécuter des tests sous un débogueur." -#: ../Doc/library/unittest.rst:801 +#: ../Doc/library/unittest.rst:809 msgid "" "The :class:`TestCase` class provides several assert methods to check for and " "report failures. The following table lists the most commonly used methods " "(see the tables below for more assert methods):" msgstr "" +"La classe :class:`TestCase` fournit plusieurs méthodes d'assertion pour " +"vérifier et signaler les échecs. Le tableau suivant énumère les méthodes " +"les plus couramment utilisées (voir les tableaux ci-dessous pour plus de " +"méthodes d'assertion) :" -#: ../Doc/library/unittest.rst:806 ../Doc/library/unittest.rst:928 -#: ../Doc/library/unittest.rst:1120 ../Doc/library/unittest.rst:1247 +#: ../Doc/library/unittest.rst:814 ../Doc/library/unittest.rst:936 +#: ../Doc/library/unittest.rst:1128 ../Doc/library/unittest.rst:1255 msgid "Method" msgstr "Méthode" -#: ../Doc/library/unittest.rst:806 ../Doc/library/unittest.rst:928 -#: ../Doc/library/unittest.rst:1120 +#: ../Doc/library/unittest.rst:814 ../Doc/library/unittest.rst:936 +#: ../Doc/library/unittest.rst:1128 msgid "Checks that" -msgstr "" +msgstr "Vérifie que" -#: ../Doc/library/unittest.rst:806 ../Doc/library/unittest.rst:928 -#: ../Doc/library/unittest.rst:1120 ../Doc/library/unittest.rst:1247 +#: ../Doc/library/unittest.rst:814 ../Doc/library/unittest.rst:936 +#: ../Doc/library/unittest.rst:1128 ../Doc/library/unittest.rst:1255 msgid "New in" -msgstr "" +msgstr "Disponible en" -#: ../Doc/library/unittest.rst:808 +#: ../Doc/library/unittest.rst:816 msgid ":meth:`assertEqual(a, b) `" msgstr ":meth:`assertEqual(a, b) `" -#: ../Doc/library/unittest.rst:808 +#: ../Doc/library/unittest.rst:816 msgid "``a == b``" msgstr "``a == b``" -#: ../Doc/library/unittest.rst:811 +#: ../Doc/library/unittest.rst:819 msgid ":meth:`assertNotEqual(a, b) `" msgstr ":meth:`assertNotEqual(a, b) `" -#: ../Doc/library/unittest.rst:811 +#: ../Doc/library/unittest.rst:819 msgid "``a != b``" msgstr "``a != b``" -#: ../Doc/library/unittest.rst:814 +#: ../Doc/library/unittest.rst:822 msgid ":meth:`assertTrue(x) `" msgstr ":meth:`assertTrue(x) `" -#: ../Doc/library/unittest.rst:814 +#: ../Doc/library/unittest.rst:822 msgid "``bool(x) is True``" msgstr "``bool(x) is True``" -#: ../Doc/library/unittest.rst:817 +#: ../Doc/library/unittest.rst:825 msgid ":meth:`assertFalse(x) `" msgstr ":meth:`assertFalse(x) `" -#: ../Doc/library/unittest.rst:817 +#: ../Doc/library/unittest.rst:825 msgid "``bool(x) is False``" msgstr "``bool(x) is False``" -#: ../Doc/library/unittest.rst:820 +#: ../Doc/library/unittest.rst:828 msgid ":meth:`assertIs(a, b) `" msgstr ":meth:`assertIs(a, b) `" -#: ../Doc/library/unittest.rst:820 +#: ../Doc/library/unittest.rst:828 msgid "``a is b``" msgstr "``a is b``" -#: ../Doc/library/unittest.rst:820 ../Doc/library/unittest.rst:823 -#: ../Doc/library/unittest.rst:826 ../Doc/library/unittest.rst:829 -#: ../Doc/library/unittest.rst:832 ../Doc/library/unittest.rst:835 -#: ../Doc/library/unittest.rst:933 ../Doc/library/unittest.rst:1128 -#: ../Doc/library/unittest.rst:1131 ../Doc/library/unittest.rst:1134 -#: ../Doc/library/unittest.rst:1137 ../Doc/library/unittest.rst:1140 -#: ../Doc/library/unittest.rst:1249 ../Doc/library/unittest.rst:1252 -#: ../Doc/library/unittest.rst:1255 ../Doc/library/unittest.rst:1258 -#: ../Doc/library/unittest.rst:1261 ../Doc/library/unittest.rst:1264 +#: ../Doc/library/unittest.rst:828 ../Doc/library/unittest.rst:831 +#: ../Doc/library/unittest.rst:834 ../Doc/library/unittest.rst:837 +#: ../Doc/library/unittest.rst:840 ../Doc/library/unittest.rst:843 +#: ../Doc/library/unittest.rst:941 ../Doc/library/unittest.rst:1136 +#: ../Doc/library/unittest.rst:1139 ../Doc/library/unittest.rst:1142 +#: ../Doc/library/unittest.rst:1145 ../Doc/library/unittest.rst:1148 +#: ../Doc/library/unittest.rst:1257 ../Doc/library/unittest.rst:1260 +#: ../Doc/library/unittest.rst:1263 ../Doc/library/unittest.rst:1266 +#: ../Doc/library/unittest.rst:1269 ../Doc/library/unittest.rst:1272 msgid "3.1" msgstr "3.1" -#: ../Doc/library/unittest.rst:823 +#: ../Doc/library/unittest.rst:831 msgid ":meth:`assertIsNot(a, b) `" msgstr ":meth:`assertIsNot(a, b) `" -#: ../Doc/library/unittest.rst:823 +#: ../Doc/library/unittest.rst:831 msgid "``a is not b``" msgstr "``a is not b``" -#: ../Doc/library/unittest.rst:826 +#: ../Doc/library/unittest.rst:834 msgid ":meth:`assertIsNone(x) `" msgstr ":meth:`assertIsNone(x) `" -#: ../Doc/library/unittest.rst:826 +#: ../Doc/library/unittest.rst:834 msgid "``x is None``" msgstr "``x is None``" -#: ../Doc/library/unittest.rst:829 +#: ../Doc/library/unittest.rst:837 msgid ":meth:`assertIsNotNone(x) `" msgstr ":meth:`assertIsNotNone(x) `" -#: ../Doc/library/unittest.rst:829 +#: ../Doc/library/unittest.rst:837 msgid "``x is not None``" msgstr "``x is not None``" -#: ../Doc/library/unittest.rst:832 +#: ../Doc/library/unittest.rst:840 msgid ":meth:`assertIn(a, b) `" msgstr ":meth:`assertIn(a, b) `" -#: ../Doc/library/unittest.rst:832 +#: ../Doc/library/unittest.rst:840 msgid "``a in b``" msgstr "``a in b``" -#: ../Doc/library/unittest.rst:835 +#: ../Doc/library/unittest.rst:843 msgid ":meth:`assertNotIn(a, b) `" msgstr ":meth:`assertNotIn(a, b) `" -#: ../Doc/library/unittest.rst:835 +#: ../Doc/library/unittest.rst:843 msgid "``a not in b``" msgstr "``a not in b``" -#: ../Doc/library/unittest.rst:838 +#: ../Doc/library/unittest.rst:846 msgid ":meth:`assertIsInstance(a, b) `" msgstr ":meth:`assertIsInstance(a, b) `" -#: ../Doc/library/unittest.rst:838 +#: ../Doc/library/unittest.rst:846 msgid "``isinstance(a, b)``" msgstr "``isinstance(a, b)``" -#: ../Doc/library/unittest.rst:838 ../Doc/library/unittest.rst:841 -#: ../Doc/library/unittest.rst:936 ../Doc/library/unittest.rst:939 -#: ../Doc/library/unittest.rst:1143 ../Doc/library/unittest.rst:1146 +#: ../Doc/library/unittest.rst:846 ../Doc/library/unittest.rst:849 +#: ../Doc/library/unittest.rst:944 ../Doc/library/unittest.rst:947 +#: ../Doc/library/unittest.rst:1151 ../Doc/library/unittest.rst:1154 msgid "3.2" msgstr "3.2" -#: ../Doc/library/unittest.rst:841 +#: ../Doc/library/unittest.rst:849 msgid ":meth:`assertNotIsInstance(a, b) `" msgstr ":meth:`assertNotIsInstance(a, b) `" -#: ../Doc/library/unittest.rst:841 +#: ../Doc/library/unittest.rst:849 msgid "``not isinstance(a, b)``" msgstr "``not isinstance(a, b)``" -#: ../Doc/library/unittest.rst:845 +#: ../Doc/library/unittest.rst:853 msgid "" "All the assert methods accept a *msg* argument that, if specified, is used " "as the error message on failure (see also :data:`longMessage`). Note that " @@ -1092,14 +1356,22 @@ msgid "" "`assertRaisesRegex`, :meth:`assertWarns`, :meth:`assertWarnsRegex` only when " "they are used as a context manager." msgstr "" +"Toutes les méthodes *assert* prennent en charge un argument *msg* qui, s'il " +"est spécifié, est utilisé comme message d'erreur en cas d'échec (voir aussi :" +"data:`longMessage`). Notez que l'argument mot-clé *msg* peut être passé à :" +"meth:`assertRaises`, :meth:`assertRaisesRegex`, :meth:`assertWarns`, :meth:" +"`assertWarnsRegex`, seulement quand elles sont utilisées comme gestionnaire " +"de contexte." -#: ../Doc/library/unittest.rst:853 +#: ../Doc/library/unittest.rst:861 msgid "" "Test that *first* and *second* are equal. If the values do not compare " "equal, the test will fail." msgstr "" +"Vérifie que *first* et *second* sont égaux. Si les valeurs ne sont pas " +"égales, le test échouera." -#: ../Doc/library/unittest.rst:856 +#: ../Doc/library/unittest.rst:864 msgid "" "In addition, if *first* and *second* are the exact same type and one of " "list, tuple, dict, set, frozenset or str or any type that a subclass " @@ -1108,28 +1380,39 @@ msgid "" "message (see also the :ref:`list of type-specific methods `)." msgstr "" +"En outre, si *first* et *second* ont exactement le même type et sont de type " +"*liste*, *tuple*, *dict*, *set*, *frozenset* ou *str* ou tout autre type de " +"sous classe enregistrée dans :meth:`addTypeEqualityFunc`. La fonction " +"égalité spécifique au type sera appelée pour générer une erreur plus utile " +"(voir aussi :ref:`liste des méthodes spécifiques de type `)." -#: ../Doc/library/unittest.rst:863 +#: ../Doc/library/unittest.rst:871 msgid "Added the automatic calling of type-specific equality function." msgstr "" +"Ajout de l'appel automatique de la fonction d'égalité spécifique au type." -#: ../Doc/library/unittest.rst:866 +#: ../Doc/library/unittest.rst:874 msgid "" ":meth:`assertMultiLineEqual` added as the default type equality function for " "comparing strings." msgstr "" +"Ajout de :meth:`assertMultiLineEqual` comme fonction d'égalité de type par " +"défaut pour comparer les chaînes." -#: ../Doc/library/unittest.rst:873 +#: ../Doc/library/unittest.rst:881 msgid "" "Test that *first* and *second* are not equal. If the values do compare " "equal, the test will fail." msgstr "" +"Vérifie que *first* et *second* ne sont pas égaux. Si les valeurs sont " +"égales, le test échouera." -#: ../Doc/library/unittest.rst:879 +#: ../Doc/library/unittest.rst:887 msgid "Test that *expr* is true (or false)." -msgstr "" +msgstr "Vérifie que *expr* est vraie (ou fausse)." -#: ../Doc/library/unittest.rst:881 +#: ../Doc/library/unittest.rst:889 msgid "" "Note that this is equivalent to ``bool(expr) is True`` and not to ``expr is " "True`` (use ``assertIs(expr, True)`` for the latter). This method should " @@ -1137,83 +1420,106 @@ msgid "" "``assertEqual(a, b)`` instead of ``assertTrue(a == b)``), because they " "provide a better error message in case of failure." msgstr "" +"Notez que cela revient à utiliser ``bool(expr) is True`` et non à ``expr is " +"True`` (utilisez ``assertIs(expr, True)`` pour cette dernière). Cette " +"méthode doit également être évitée lorsque des méthodes plus spécifiques " +"sont disponibles (par exemple ``assertEqual(a, b)`` au lieu de " +"``assertTrue(a == b)``), car elles fournissent un meilleur message d'erreur " +"en cas d' échec." -#: ../Doc/library/unittest.rst:891 +#: ../Doc/library/unittest.rst:899 msgid "" "Test that *first* and *second* evaluate (or don't evaluate) to the same " "object." msgstr "" +"Vérifie que *first* et *second* évaluent (ou n'évaluent pas) le même objet." -#: ../Doc/library/unittest.rst:900 +#: ../Doc/library/unittest.rst:908 msgid "Test that *expr* is (or is not) ``None``." -msgstr "" +msgstr "Vérifie que *expr* est (ou n'est pas) la valeur ``None``." -#: ../Doc/library/unittest.rst:908 +#: ../Doc/library/unittest.rst:916 msgid "Test that *first* is (or is not) in *second*." -msgstr "" +msgstr "Vérifie que *first* est (ou n'est pas) dans *second*." -#: ../Doc/library/unittest.rst:916 +#: ../Doc/library/unittest.rst:924 msgid "" "Test that *obj* is (or is not) an instance of *cls* (which can be a class or " "a tuple of classes, as supported by :func:`isinstance`). To check for the " "exact type, use :func:`assertIs(type(obj), cls) `." msgstr "" +"Vérifie que *obj* est (ou n'est pas) une instance de *cls* (Ce qui peut être " +"une classe ou un tuple de classes, comme utilisée par :func:`isinstance`). " +"Pour vérifier le type exact, utilisez :func:`assertIs(type(obj), cls) " +"`." -#: ../Doc/library/unittest.rst:924 +#: ../Doc/library/unittest.rst:932 msgid "" "It is also possible to check the production of exceptions, warnings, and log " "messages using the following methods:" msgstr "" +"Il est également possible de vérifier la production des exceptions, des " +"avertissements et des messages de journaux à l'aide des méthodes suivantes :" -#: ../Doc/library/unittest.rst:930 +#: ../Doc/library/unittest.rst:938 msgid ":meth:`assertRaises(exc, fun, *args, **kwds) `" -msgstr "" +msgstr ":meth:`assertRaises(exc, fun, *args, **kwds) `" -#: ../Doc/library/unittest.rst:930 +#: ../Doc/library/unittest.rst:938 msgid "``fun(*args, **kwds)`` raises *exc*" -msgstr "" +msgstr "``fun(*args, **kwds)`` lève bien l'exception *exc*" -#: ../Doc/library/unittest.rst:933 +#: ../Doc/library/unittest.rst:941 msgid "" ":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" msgstr "" +":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" -#: ../Doc/library/unittest.rst:933 +#: ../Doc/library/unittest.rst:941 msgid "``fun(*args, **kwds)`` raises *exc* and the message matches regex *r*" msgstr "" +"``fun(*args, **kwds)`` lève bien l'exception *exc* et que le message " +"correspond au motif de l'expression régulière *r*" -#: ../Doc/library/unittest.rst:936 +#: ../Doc/library/unittest.rst:944 msgid ":meth:`assertWarns(warn, fun, *args, **kwds) `" -msgstr "" +msgstr ":meth:`assertWarns(warn, fun, *args, **kwds) `" -#: ../Doc/library/unittest.rst:936 +#: ../Doc/library/unittest.rst:944 msgid "``fun(*args, **kwds)`` raises *warn*" -msgstr "" +msgstr "``fun(*args, **kwds)`` lève bien l'avertissement *warn*" -#: ../Doc/library/unittest.rst:939 +#: ../Doc/library/unittest.rst:947 msgid "" ":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" msgstr "" +":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" -#: ../Doc/library/unittest.rst:939 +#: ../Doc/library/unittest.rst:947 msgid "``fun(*args, **kwds)`` raises *warn* and the message matches regex *r*" msgstr "" +"``fun(*args, **kwds)`` lève bien l'avertissement *warn* et que le message " +"correspond au motif de l'expression régulière *r*" -#: ../Doc/library/unittest.rst:942 +#: ../Doc/library/unittest.rst:950 msgid ":meth:`assertLogs(logger, level) `" -msgstr "" +msgstr ":meth:`assertLogs(logger, level) `" -#: ../Doc/library/unittest.rst:942 +#: ../Doc/library/unittest.rst:950 msgid "The ``with`` block logs on *logger* with minimum *level*" msgstr "" +"Le bloc ``with`` écrit dans le *logger* avec un niveau minimum égal à " +"*level*" -#: ../Doc/library/unittest.rst:942 +#: ../Doc/library/unittest.rst:950 msgid "3.4" msgstr "3.4" -#: ../Doc/library/unittest.rst:949 +#: ../Doc/library/unittest.rst:957 msgid "" "Test that an exception is raised when *callable* is called with any " "positional or keyword arguments that are also passed to :meth:" @@ -1222,61 +1528,84 @@ msgid "" "any of a group of exceptions, a tuple containing the exception classes may " "be passed as *exception*." msgstr "" +"Vérifie qu'une exception est levée lorsque *callable* est appelé avec " +"n'importe quel argument positionnel ou mot-clé qui est également passé à :" +"meth:`assertRaises`. Le test réussit si *exception* est levée, est en " +"erreur si une autre exception est levée, ou en échec si aucune exception " +"n'est levée. Pour capturer une exception d'un groupe d'exceptions, un couple " +"contenant les classes d'exceptions peut être passé à *exception*." -#: ../Doc/library/unittest.rst:956 +#: ../Doc/library/unittest.rst:964 msgid "" "If only the *exception* and possibly the *msg* arguments are given, return a " "context manager so that the code under test can be written inline rather " "than as a function::" msgstr "" +"Si seuls les arguments *exception* et éventuellement *msg* sont donnés, " +"renvoie un gestionnaire de contexte pour que le code sous test puisse être " +"écrit en ligne plutôt que comme une fonction ::" -#: ../Doc/library/unittest.rst:963 +#: ../Doc/library/unittest.rst:971 msgid "" "When used as a context manager, :meth:`assertRaises` accepts the additional " "keyword argument *msg*." msgstr "" +"Lorsqu'il est utilisé comme gestionnaire de contexte, :meth:`assertRaises` " +"accepte l'argument de mot-clé supplémentaire *msg*." -#: ../Doc/library/unittest.rst:966 +#: ../Doc/library/unittest.rst:974 msgid "" "The context manager will store the caught exception object in its :attr:" "`exception` attribute. This can be useful if the intention is to perform " "additional checks on the exception raised::" msgstr "" +"Le gestionnaire de contexte enregistre l'exception capturée dans son " +"attribut :attr:`exception`. Ceci est particulièrement utile si l'intention " +"est d'effectuer des contrôles supplémentaires sur l'exception levée ::" -#: ../Doc/library/unittest.rst:976 +#: ../Doc/library/unittest.rst:984 msgid "Added the ability to use :meth:`assertRaises` as a context manager." msgstr "" +"Ajout de la possibilité d'utiliser :meth:`assertRaises` comme gestionnaire " +"de contexte." -#: ../Doc/library/unittest.rst:979 +#: ../Doc/library/unittest.rst:987 msgid "Added the :attr:`exception` attribute." -msgstr "" +msgstr "Ajout de l'attribut :attr:`exception`." -#: ../Doc/library/unittest.rst:982 ../Doc/library/unittest.rst:1008 -#: ../Doc/library/unittest.rst:1049 ../Doc/library/unittest.rst:1072 +#: ../Doc/library/unittest.rst:990 ../Doc/library/unittest.rst:1016 +#: ../Doc/library/unittest.rst:1057 ../Doc/library/unittest.rst:1080 msgid "Added the *msg* keyword argument when used as a context manager." msgstr "" +"Ajout de l'argument *msg* comme mot-clé lorsqu'il est utilisé comme " +"gestionnaire de contexte." -#: ../Doc/library/unittest.rst:989 +#: ../Doc/library/unittest.rst:997 msgid "" "Like :meth:`assertRaises` but also tests that *regex* matches on the string " "representation of the raised exception. *regex* may be a regular expression " "object or a string containing a regular expression suitable for use by :func:" "`re.search`. Examples::" msgstr "" +"Comme :meth:`assertRaises` mais vérifie aussi que *regex* correspond à la " +"représentation de la chaîne de caractères de l'exception levée. *regex* " +"peut être un objet d'expression rationnelle ou une chaîne contenant une " +"expression rationnelle appropriée pour être utilisée par :func:`re.search`. " +"Exemples ::" -#: ../Doc/library/unittest.rst:997 ../Doc/library/unittest.rst:1065 +#: ../Doc/library/unittest.rst:1005 ../Doc/library/unittest.rst:1073 msgid "or::" -msgstr "ou : ::" +msgstr "ou ::" -#: ../Doc/library/unittest.rst:1002 -msgid "under the name ``assertRaisesRegexp``." -msgstr "" +#: ../Doc/library/unittest.rst:1010 +msgid "Added under the name ``assertRaisesRegexp``." +msgstr "Sous le nom ``assertRaisesRegexp``." -#: ../Doc/library/unittest.rst:1005 +#: ../Doc/library/unittest.rst:1013 msgid "Renamed to :meth:`assertRaisesRegex`." -msgstr "" +msgstr "Renommé en :meth:`assertRaisesRegex`." -#: ../Doc/library/unittest.rst:1015 +#: ../Doc/library/unittest.rst:1023 msgid "" "Test that a warning is triggered when *callable* is called with any " "positional or keyword arguments that are also passed to :meth:" @@ -1284,169 +1613,213 @@ msgid "" "isn't. Any exception is an error. To catch any of a group of warnings, a " "tuple containing the warning classes may be passed as *warnings*." msgstr "" +"Test qu'un avertissement est déclenché lorsque *callable* est appelé avec " +"n'importe quel argument positionnel ou mot-clé qui est également passé à :" +"meth:`assertWarns`. Le test passe si *warning* est déclenché et échoue s'il " +"ne l'est pas. Toute exception est une erreur. Pour capturer un avertissement " +"dans un ensemble d'avertissements, un couple contenant les classes " +"d'avertissement peut être passé à *warnings*." -#: ../Doc/library/unittest.rst:1022 +#: ../Doc/library/unittest.rst:1030 msgid "" "If only the *warning* and possibly the *msg* arguments are given, return a " "context manager so that the code under test can be written inline rather " "than as a function::" msgstr "" +"Si seuls les arguments * warning* et éventuellement *msg* sont donnés, " +"renvoie un gestionnaire de contexte pour que le code testé puisse être écrit " +"en ligne plutôt que comme une fonction ::" -#: ../Doc/library/unittest.rst:1029 +#: ../Doc/library/unittest.rst:1037 msgid "" "When used as a context manager, :meth:`assertWarns` accepts the additional " "keyword argument *msg*." msgstr "" +"Lorsqu'il est utilisé comme gestionnaire de contexte, :meth:`assertWarns` " +"accepte l'argument de mot-clé supplémentaire *msg*." -#: ../Doc/library/unittest.rst:1032 +#: ../Doc/library/unittest.rst:1040 msgid "" "The context manager will store the caught warning object in its :attr:" "`warning` attribute, and the source line which triggered the warnings in " "the :attr:`filename` and :attr:`lineno` attributes. This can be useful if " "the intention is to perform additional checks on the warning caught::" msgstr "" +"Le gestionnaire de contexte stocke l'avertissement capturé dans son " +"attribut :attr:`warning`, et la ligne source qui a déclenché les " +"avertissements dans les attributs :attr:`filename` et :attr:`lineno`. Cette " +"fonction peut être utile si l'intention est d'effectuer des contrôles " +"supplémentaires sur l'avertissement capturé ::" -#: ../Doc/library/unittest.rst:1044 +#: ../Doc/library/unittest.rst:1052 msgid "" "This method works regardless of the warning filters in place when it is " "called." msgstr "" +"Cette méthode fonctionne indépendamment des filtres d'avertissement en place " +"lorsqu'elle est appelée." -#: ../Doc/library/unittest.rst:1056 +#: ../Doc/library/unittest.rst:1064 msgid "" "Like :meth:`assertWarns` but also tests that *regex* matches on the message " "of the triggered warning. *regex* may be a regular expression object or a " "string containing a regular expression suitable for use by :func:`re." "search`. Example::" msgstr "" +"Comme :meth:`assertWarns` mais vérifie aussi qu'une *regex* corresponde au " +"message de l'avertissement. *regex* peut être un objet d'expression " +"régulière ou une chaîne contenant une expression régulière appropriée pour " +"être utilisée par :func:`re.search`. Exemple ::" -#: ../Doc/library/unittest.rst:1077 +#: ../Doc/library/unittest.rst:1085 msgid "" "A context manager to test that at least one message is logged on the " "*logger* or one of its children, with at least the given *level*." msgstr "" +"Un gestionnaire de contexte pour tester qu'au moins un message est " +"enregistré sur le *logger* ou un de ses enfants, avec au moins le *niveau* " +"donné." -#: ../Doc/library/unittest.rst:1081 +#: ../Doc/library/unittest.rst:1089 msgid "" "If given, *logger* should be a :class:`logging.Logger` object or a :class:" "`str` giving the name of a logger. The default is the root logger, which " "will catch all messages." msgstr "" +"Si donné, *logger* doit être une classe :class:`logging.logger` objet ou une " +"classe :class:`str` donnant le nom d'un journal. La valeur par défaut est le " +"journal racine *root*, qui capture tous les messages." -#: ../Doc/library/unittest.rst:1085 +#: ../Doc/library/unittest.rst:1093 msgid "" "If given, *level* should be either a numeric logging level or its string " "equivalent (for example either ``\"ERROR\"`` or :attr:`logging.ERROR`). The " "default is :attr:`logging.INFO`." msgstr "" +"S'il est donné, *level* doit être soit un entier, soit son équivalent sous " +"forme de chaîne (par exemple ``\"ERROR\"`` ou :attr:`logging.ERROR`). La " +"valeur par défaut est :attr:`logging.INFO`." -#: ../Doc/library/unittest.rst:1089 +#: ../Doc/library/unittest.rst:1097 msgid "" "The test passes if at least one message emitted inside the ``with`` block " "matches the *logger* and *level* conditions, otherwise it fails." msgstr "" +"Le test passe si au moins un message émis à l'intérieur du bloc ``with`` " +"correspond aux conditions *logger* et *level*, sinon il échoue." -#: ../Doc/library/unittest.rst:1092 +#: ../Doc/library/unittest.rst:1100 msgid "" "The object returned by the context manager is a recording helper which keeps " "tracks of the matching log messages. It has two attributes:" msgstr "" +"L'objet retourné par le gestionnaire de contexte est une aide à " +"l'enregistrement qui garde la trace des messages de journal correspondants. " +"Il a deux attributs  ::" -#: ../Doc/library/unittest.rst:1098 +#: ../Doc/library/unittest.rst:1106 msgid "" "A list of :class:`logging.LogRecord` objects of the matching log messages." msgstr "" +"Une liste d'objets :class:`logging.LogRecord` de messages de log " +"correspondants." -#: ../Doc/library/unittest.rst:1103 +#: ../Doc/library/unittest.rst:1111 msgid "" "A list of :class:`str` objects with the formatted output of matching " "messages." msgstr "" +"Une liste d'objets :class:`str` avec la sortie formatée des messages " +"correspondants." -#: ../Doc/library/unittest.rst:1106 +#: ../Doc/library/unittest.rst:1114 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/unittest.rst:1117 +#: ../Doc/library/unittest.rst:1125 msgid "" "There are also other methods used to perform more specific checks, such as:" msgstr "" +"Il existe également d'autres méthodes utilisées pour effectuer des contrôles " +"plus spécifiques, telles que  ::" -#: ../Doc/library/unittest.rst:1122 +#: ../Doc/library/unittest.rst:1130 msgid ":meth:`assertAlmostEqual(a, b) `" msgstr ":meth:`assertAlmostEqual(a, b) `" -#: ../Doc/library/unittest.rst:1122 +#: ../Doc/library/unittest.rst:1130 msgid "``round(a-b, 7) == 0``" msgstr "``round(a-b, 7) == 0``" -#: ../Doc/library/unittest.rst:1125 +#: ../Doc/library/unittest.rst:1133 msgid ":meth:`assertNotAlmostEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertNotAlmostEqual(a, b) `" -#: ../Doc/library/unittest.rst:1125 +#: ../Doc/library/unittest.rst:1133 msgid "``round(a-b, 7) != 0``" msgstr "``round(a-b, 7) != 0``" -#: ../Doc/library/unittest.rst:1128 +#: ../Doc/library/unittest.rst:1136 msgid ":meth:`assertGreater(a, b) `" msgstr ":meth:`assertGreater(a, b) `" -#: ../Doc/library/unittest.rst:1128 +#: ../Doc/library/unittest.rst:1136 msgid "``a > b``" msgstr "``a > b``" -#: ../Doc/library/unittest.rst:1131 +#: ../Doc/library/unittest.rst:1139 msgid ":meth:`assertGreaterEqual(a, b) `" msgstr ":meth:`assertGreaterEqual(a, b) `" -#: ../Doc/library/unittest.rst:1131 +#: ../Doc/library/unittest.rst:1139 msgid "``a >= b``" msgstr "``a >= b``" -#: ../Doc/library/unittest.rst:1134 +#: ../Doc/library/unittest.rst:1142 msgid ":meth:`assertLess(a, b) `" msgstr ":meth:`assertLess(a, b) `" -#: ../Doc/library/unittest.rst:1134 +#: ../Doc/library/unittest.rst:1142 msgid "``a < b``" msgstr "``a < b``" -#: ../Doc/library/unittest.rst:1137 +#: ../Doc/library/unittest.rst:1145 msgid ":meth:`assertLessEqual(a, b) `" msgstr ":meth:`assertLessEqual(a, b) `" -#: ../Doc/library/unittest.rst:1137 +#: ../Doc/library/unittest.rst:1145 msgid "``a <= b``" msgstr "``a <= b``" -#: ../Doc/library/unittest.rst:1140 +#: ../Doc/library/unittest.rst:1148 msgid ":meth:`assertRegex(s, r) `" msgstr ":meth:`assertRegex(s, r) `" -#: ../Doc/library/unittest.rst:1140 +#: ../Doc/library/unittest.rst:1148 msgid "``r.search(s)``" msgstr "``r.search(s)``" -#: ../Doc/library/unittest.rst:1143 +#: ../Doc/library/unittest.rst:1151 msgid ":meth:`assertNotRegex(s, r) `" msgstr ":meth:`assertNotRegex(s, r) `" -#: ../Doc/library/unittest.rst:1143 +#: ../Doc/library/unittest.rst:1151 msgid "``not r.search(s)``" msgstr "``not r.search(s)``" -#: ../Doc/library/unittest.rst:1146 +#: ../Doc/library/unittest.rst:1154 msgid ":meth:`assertCountEqual(a, b) `" msgstr ":meth:`assertCountEqual(a, b) `" -#: ../Doc/library/unittest.rst:1146 +#: ../Doc/library/unittest.rst:1154 msgid "" "*a* and *b* have the same elements in the same number, regardless of their " -"order" +"order." msgstr "" +"*a* et *b* ont les mêmes éléments dans le même nombre, quel que soit leur " +"ordre." -#: ../Doc/library/unittest.rst:1155 +#: ../Doc/library/unittest.rst:1163 msgid "" "Test that *first* and *second* are approximately (or not approximately) " "equal by computing the difference, rounding to the given number of decimal " @@ -1454,31 +1827,45 @@ msgid "" "the values to the given number of *decimal places* (i.e. like the :func:" "`round` function) and not *significant digits*." msgstr "" +"Vérifie que *first* et *second* sont approximativement (ou pas " +"approximativement) égaux en calculant la différence, en arrondissant au " +"nombre donné de décimales *places* (par défaut 7), et en comparant à zéro. " +"Notez que ces méthodes arrondissent les valeurs au nombre donné de " +"*décimales* (par exemple comme la fonction :func:`round`) et non aux " +"*chiffres significatifs*." -#: ../Doc/library/unittest.rst:1161 +#: ../Doc/library/unittest.rst:1169 msgid "" "If *delta* is supplied instead of *places* then the difference between " "*first* and *second* must be less or equal to (or greater than) *delta*." msgstr "" +"Si *delta* est fourni au lieu de *places*, la différence entre *first* et " +"*second* doit être inférieure ou égale (ou supérieure) à *delta*." -#: ../Doc/library/unittest.rst:1164 -msgid "Supplying both *delta* and *places* raises a ``TypeError``." -msgstr "" +#: ../Doc/library/unittest.rst:1172 +msgid "Supplying both *delta* and *places* raises a :exc:`TypeError`." +msgstr "Fournir à la fois *delta* et *places* lève une :exc:`TypeError`." -#: ../Doc/library/unittest.rst:1166 +#: ../Doc/library/unittest.rst:1174 msgid "" ":meth:`assertAlmostEqual` automatically considers almost equal objects that " "compare equal. :meth:`assertNotAlmostEqual` automatically fails if the " "objects compare equal. Added the *delta* keyword argument." msgstr "" +":meth:`assertAlmostEqual` considère automatiquement des objets presque égaux " +"qui se comparent égaux. :meth:`assertNotNotAlmostEqual` échoue " +"automatiquement si les objets qui se comparent sont égaux. Ajout de " +"l'argument mot-clé *delta*." -#: ../Doc/library/unittest.rst:1177 +#: ../Doc/library/unittest.rst:1185 msgid "" "Test that *first* is respectively >, >=, < or <= than *second* depending on " "the method name. If not, the test will fail::" msgstr "" +"Vérifie que *first* est respectivement >, >=, >=, < ou <= à *second* selon " +"le nom de la méthode. Sinon, le test échouera ::" -#: ../Doc/library/unittest.rst:1189 +#: ../Doc/library/unittest.rst:1197 msgid "" "Test that a *regex* search matches (or does not match) *text*. In case of " "failure, the error message will include the pattern and the *text* (or the " @@ -1486,51 +1873,73 @@ msgid "" "regular expression object or a string containing a regular expression " "suitable for use by :func:`re.search`." msgstr "" +"Vérifie qu'une recherche par motif *regex* correspond (ou ne correspond " +"pas) à *text*. En cas d'échec, le message d'erreur inclura le motif et le " +"*texte* (ou le motif et la partie du *texte* qui correspond de manière " +"inattendue). *regex* peut être un objet d'expression régulière ou une " +"chaîne contenant une expression régulière appropriée pour être utilisée par :" +"func:`re.search`." -#: ../Doc/library/unittest.rst:1195 -msgid "under the name ``assertRegexpMatches``." -msgstr "" +#: ../Doc/library/unittest.rst:1203 +msgid "Added under the name ``assertRegexpMatches``." +msgstr "Ajouté sous le nom ``assertRegexpMatches``." -#: ../Doc/library/unittest.rst:1197 +#: ../Doc/library/unittest.rst:1205 msgid "" "The method ``assertRegexpMatches()`` has been renamed to :meth:`." "assertRegex`." msgstr "" +"La méthode ``assertRegexpMatches()`` a été renommé en :meth:`.assertRegex`." -#: ../Doc/library/unittest.rst:1200 +#: ../Doc/library/unittest.rst:1208 msgid ":meth:`.assertNotRegex`." msgstr ":meth:`.assertNotRegex`." -#: ../Doc/library/unittest.rst:1202 +#: ../Doc/library/unittest.rst:1210 msgid "" "The name ``assertNotRegexpMatches`` is a deprecated alias for :meth:`." "assertNotRegex`." msgstr "" +"Le nom ``assertNotRegexpMatches``` est un alias obsolète pour :meth:`." +"assertNotRegex`." -#: ../Doc/library/unittest.rst:1209 +#: ../Doc/library/unittest.rst:1217 msgid "" "Test that sequence *first* contains the same elements as *second*, " "regardless of their order. When they don't, an error message listing the " "differences between the sequences will be generated." msgstr "" +"Vérifie que la séquence *first* contient les mêmes éléments que *second*, " +"quel que soit leur ordre. Si ce n'est pas le cas, un message d'erreur " +"indiquant les différences entre les séquences est généré." -#: ../Doc/library/unittest.rst:1213 +#: ../Doc/library/unittest.rst:1221 msgid "" "Duplicate elements are *not* ignored when comparing *first* and *second*. It " "verifies whether each element has the same count in both sequences. " "Equivalent to: ``assertEqual(Counter(list(first)), Counter(list(second)))`` " "but works with sequences of unhashable objects as well." msgstr "" +"Les éléments en double ne sont *pas* ignorés lors de la comparaison entre " +"*first* et *second*. Il vérifie si chaque élément a le même nombre dans les " +"deux séquences. Équivalent à : ``assertEqual(Counter(list(first))), " +"Counter(list(second)))`` mais fonctionne aussi avec des séquences d'objets " +"non *hachables*." -#: ../Doc/library/unittest.rst:1224 +#: ../Doc/library/unittest.rst:1232 msgid "" "The :meth:`assertEqual` method dispatches the equality check for objects of " "the same type to different type-specific methods. These methods are already " "implemented for most of the built-in types, but it's also possible to " "register new methods using :meth:`addTypeEqualityFunc`:" msgstr "" +"La méthode :meth:`assertEqual` envoie le contrôle d'égalité pour les objets " +"du même type à différentes méthodes spécifiques au type. Ces méthodes sont " +"déjà implémentées pour la plupart des types intégrés, mais il est également " +"possible d'enregistrer de nouvelles méthodes en utilisant :meth:" +"`addTypeEqualityFunc`  ::" -#: ../Doc/library/unittest.rst:1231 +#: ../Doc/library/unittest.rst:1239 msgid "" "Registers a type-specific method called by :meth:`assertEqual` to check if " "two objects of exactly the same *typeobj* (not subclasses) compare equal. " @@ -1540,128 +1949,169 @@ msgid "" "two parameters is detected -- possibly providing useful information and " "explaining the inequalities in details in the error message." msgstr "" +"Enregistre une méthode spécifique appelée par :meth:`assertEqual` pour " +"vérifier si deux objets exactement du même *typeobj* (et non leurs sous-" +"classes) sont égaux. *function* doit prendre deux arguments positionnels et " +"un troisième argument mot-clé *msg=None* tout comme :meth:`assertEqual` le " +"fait. Il doit lever :data:`self.failureException(msg) ` " +"lorsqu'une inégalité entre les deux premiers paramètres est détectée en " +"fournissant éventuellement des informations utiles et expliquant l'inégalité " +"en détail dans le message d'erreur." -#: ../Doc/library/unittest.rst:1242 +#: ../Doc/library/unittest.rst:1250 msgid "" "The list of type-specific methods automatically used by :meth:`~TestCase." "assertEqual` are summarized in the following table. Note that it's usually " "not necessary to invoke these methods directly." msgstr "" +"La liste des méthodes spécifiques utilisées automatiquement par :meth:" +"`~TestCase.assertEqual` est résumée dans le tableau suivant. Notez qu'il " +"n'est généralement pas nécessaire d'invoquer ces méthodes directement." -#: ../Doc/library/unittest.rst:1247 +#: ../Doc/library/unittest.rst:1255 msgid "Used to compare" -msgstr "" +msgstr "Utilisé pour comparer" -#: ../Doc/library/unittest.rst:1249 +#: ../Doc/library/unittest.rst:1257 msgid ":meth:`assertMultiLineEqual(a, b) `" msgstr ":meth:`assertMultiLineEqual(a, b) `" -#: ../Doc/library/unittest.rst:1249 +#: ../Doc/library/unittest.rst:1257 msgid "strings" msgstr "chaînes" -#: ../Doc/library/unittest.rst:1252 +#: ../Doc/library/unittest.rst:1260 msgid ":meth:`assertSequenceEqual(a, b) `" msgstr ":meth:`assertSequenceEqual(a, b) `" -#: ../Doc/library/unittest.rst:1252 +#: ../Doc/library/unittest.rst:1260 msgid "sequences" msgstr "séquences" -#: ../Doc/library/unittest.rst:1255 +#: ../Doc/library/unittest.rst:1263 msgid ":meth:`assertListEqual(a, b) `" msgstr ":meth:`assertListEqual(a, b) `" -#: ../Doc/library/unittest.rst:1255 +#: ../Doc/library/unittest.rst:1263 msgid "lists" -msgstr "" +msgstr "listes" -#: ../Doc/library/unittest.rst:1258 +#: ../Doc/library/unittest.rst:1266 msgid ":meth:`assertTupleEqual(a, b) `" msgstr ":meth:`assertTupleEqual(a, b) `" -#: ../Doc/library/unittest.rst:1258 +#: ../Doc/library/unittest.rst:1266 msgid "tuples" -msgstr "" +msgstr "n-uplets" -#: ../Doc/library/unittest.rst:1261 +#: ../Doc/library/unittest.rst:1269 msgid ":meth:`assertSetEqual(a, b) `" msgstr ":meth:`assertSetEqual(a, b) `" -#: ../Doc/library/unittest.rst:1261 +#: ../Doc/library/unittest.rst:1269 msgid "sets or frozensets" -msgstr "" +msgstr "*sets* ou *frozensets*" -#: ../Doc/library/unittest.rst:1264 +#: ../Doc/library/unittest.rst:1272 msgid ":meth:`assertDictEqual(a, b) `" msgstr ":meth:`assertDictEqual(a, b) `" -#: ../Doc/library/unittest.rst:1264 +#: ../Doc/library/unittest.rst:1272 msgid "dicts" -msgstr "" +msgstr "dictionnaires" -#: ../Doc/library/unittest.rst:1272 +#: ../Doc/library/unittest.rst:1280 msgid "" "Test that the multiline string *first* is equal to the string *second*. When " "not equal a diff of the two strings highlighting the differences will be " "included in the error message. This method is used by default when comparing " "strings with :meth:`assertEqual`." msgstr "" +"Vérifie que la chaîne sur plusieurs lignes *first* est égale à la chaîne " +"*second*. Si les deux chaînes de caractères ne sont pas égales, un *diff* " +"mettant en évidence les différences est inclus dans le message d'erreur. " +"Cette méthode est utilisée par défaut pour comparer les chaînes avec :meth:" +"`assertEqual`." -#: ../Doc/library/unittest.rst:1282 +#: ../Doc/library/unittest.rst:1290 msgid "" "Tests that two sequences are equal. If a *seq_type* is supplied, both " "*first* and *second* must be instances of *seq_type* or a failure will be " "raised. If the sequences are different an error message is constructed that " "shows the difference between the two." msgstr "" +"Vérifie que deux séquences sont égales. Si un *seq_type* est fourni, *first* " +"et *second* doivent tous deux être des instances de *seq_type* ou un échec " +"est levé. Si les séquences sont différentes, un message d'erreur indiquant " +"la différence entre les deux est généré." -#: ../Doc/library/unittest.rst:1287 +#: ../Doc/library/unittest.rst:1295 msgid "" "This method is not called directly by :meth:`assertEqual`, but it's used to " "implement :meth:`assertListEqual` and :meth:`assertTupleEqual`." msgstr "" +"Cette méthode n'est pas appelée directement par :meth:`assertEqual`, mais " +"sert à implémenter :meth:`assertListEqual` et :meth:`assertTupleEqual`." -#: ../Doc/library/unittest.rst:1297 +#: ../Doc/library/unittest.rst:1305 msgid "" "Tests that two lists or tuples are equal. If not, an error message is " "constructed that shows only the differences between the two. An error is " "also raised if either of the parameters are of the wrong type. These methods " "are used by default when comparing lists or tuples with :meth:`assertEqual`." msgstr "" +"Vérifie que deux listes ou deux n-uplets sont égaux. Si ce n'est pas le " +"cas, un message d'erreur qui ne montre que les différences entre les deux " +"est généré. Une erreur est également signalée si l'un ou l'autre des " +"paramètres n'est pas du bon type. Ces méthodes sont utilisées par défaut " +"pour comparer des listes ou des couples avec :meth:`assertEqual`." -#: ../Doc/library/unittest.rst:1308 +#: ../Doc/library/unittest.rst:1316 msgid "" "Tests that two sets are equal. If not, an error message is constructed that " "lists the differences between the sets. This method is used by default when " "comparing sets or frozensets with :meth:`assertEqual`." msgstr "" +"Vérifie que deux ensembles sont égaux. Si ce n'est pas le cas, un message " +"d'erreur s'affiche et indique les différences entre les *sets*. Cette " +"méthode est utilisée par défaut lors de la comparaison de *sets* ou de " +"*frozensets* avec :meth:`assertEqual`." -#: ../Doc/library/unittest.rst:1312 +#: ../Doc/library/unittest.rst:1320 msgid "" "Fails if either of *first* or *second* does not have a :meth:`set." "difference` method." msgstr "" +"Échoue si l'un des objets *first* ou *second* n'a pas de méthode :meth:`set." +"difference`." -#: ../Doc/library/unittest.rst:1320 +#: ../Doc/library/unittest.rst:1328 msgid "" "Test that two dictionaries are equal. If not, an error message is " "constructed that shows the differences in the dictionaries. This method will " "be used by default to compare dictionaries in calls to :meth:`assertEqual`." msgstr "" +"Vérifie que deux dictionnaires sont égaux. Si ce n'est pas le cas, un " +"message d'erreur qui montre les différences dans les dictionnaires est " +"généré. Cette méthode est utilisée par défaut pour comparer les " +"dictionnaires dans les appels à :meth:`assertEqual`." -#: ../Doc/library/unittest.rst:1331 +#: ../Doc/library/unittest.rst:1339 msgid "" "Finally the :class:`TestCase` provides the following methods and attributes:" msgstr "" +"Enfin, la classe :class:`TestCase` fournit les méthodes et attributs " +"suivants :" -#: ../Doc/library/unittest.rst:1336 +#: ../Doc/library/unittest.rst:1344 msgid "" "Signals a test failure unconditionally, with *msg* or ``None`` for the error " "message." msgstr "" +"Indique un échec du test sans condition, avec *msg* ou ``None`` pour le " +"message d'erreur." -#: ../Doc/library/unittest.rst:1342 +#: ../Doc/library/unittest.rst:1350 msgid "" "This class attribute gives the exception raised by the test method. If a " "test framework needs to use a specialized exception, possibly to carry " @@ -1669,8 +2119,13 @@ msgid "" "fair\" with the framework. The initial value of this attribute is :exc:" "`AssertionError`." msgstr "" +"Cet attribut de classe donne l'exception levée par la méthode de test. Si " +"un *framework* de tests doit utiliser une exception spécialisée, " +"probablement pour enrichir l'exception d'informations additionnels., il doit " +"hériter de cette classe d'exception pour *bien fonctionner* avec le " +"*framework*. La valeur initiale de cet attribut est :exc:`AssertionError`." -#: ../Doc/library/unittest.rst:1351 +#: ../Doc/library/unittest.rst:1359 msgid "" "This class attribute determines what happens when a custom failure message " "is passed as the msg argument to an assertXYY call that fails. ``True`` is " @@ -1678,19 +2133,28 @@ msgid "" "of the standard failure message. When set to ``False``, the custom message " "replaces the standard message." msgstr "" +"Cet attribut de classe détermine ce qui se passe lorsqu'un message d'échec " +"personnalisé est passé en argument au paramètre *msg* à un appel " +"*assertXYYY* qui échoue. ``True`` est la valeur par défaut. Dans ce cas, le " +"message personnalisé est ajouté à la fin du message d'erreur standard. " +"Lorsqu'il est réglé sur ``False``, le message personnalisé remplace le " +"message standard." -#: ../Doc/library/unittest.rst:1357 +#: ../Doc/library/unittest.rst:1365 msgid "" "The class setting can be overridden in individual test methods by assigning " "an instance attribute, self.longMessage, to ``True`` or ``False`` before " "calling the assert methods." msgstr "" +"Le paramétrage de la classe peut être écrasé dans les méthodes de test " +"individuelles en assignant un attribut d'instance, *self.longMessage*, à " +"``True`` ou ``False`` avant d'appeler les méthodes d'assertion." -#: ../Doc/library/unittest.rst:1361 +#: ../Doc/library/unittest.rst:1369 msgid "The class setting gets reset before each test call." -msgstr "" +msgstr "Le réglage de la classe est réinitialisé avant chaque appel de test." -#: ../Doc/library/unittest.rst:1368 +#: ../Doc/library/unittest.rst:1376 msgid "" "This attribute controls the maximum length of diffs output by assert methods " "that report diffs on failure. It defaults to 80*8 characters. Assert methods " @@ -1698,61 +2162,89 @@ msgid "" "the sequence comparison methods that delegate to it), :meth:" "`assertDictEqual` and :meth:`assertMultiLineEqual`." msgstr "" +"Cet attribut contrôle la longueur maximale des *diffs* en sortie des " +"méthodes qui génèrent des *diffs* en cas d'échec. La valeur par défaut est " +"80*8 caractères. Les méthodes d'assertions affectées par cet attribut sont :" +"meth:`assertSequenceEqual` (y compris toutes les méthodes de comparaison de " +"séquences qui lui sont déléguées), :meth:`assertDictEqual` et :meth:" +"`assertMultiLineEqual`." -#: ../Doc/library/unittest.rst:1375 +#: ../Doc/library/unittest.rst:1383 msgid "" "Setting ``maxDiff`` to ``None`` means that there is no maximum length of " "diffs." msgstr "" +"Régler ``maxDiff`` sur ``None``` signifie qu'il n'y a pas de longueur " +"maximale pour les *diffs*." -#: ../Doc/library/unittest.rst:1381 +#: ../Doc/library/unittest.rst:1389 msgid "" "Testing frameworks can use the following methods to collect information on " "the test:" msgstr "" +"Les *frameworks* de test peuvent utiliser les méthodes suivantes pour " +"recueillir des informations sur le test :" -#: ../Doc/library/unittest.rst:1387 +#: ../Doc/library/unittest.rst:1395 msgid "" "Return the number of tests represented by this test object. For :class:" "`TestCase` instances, this will always be ``1``." msgstr "" +"Renvoie le nombre de tests représentés par cet objet test. Pour les " +"instances de :class:`TestCase`, c'est toujours ``1``." -#: ../Doc/library/unittest.rst:1393 +#: ../Doc/library/unittest.rst:1401 msgid "" "Return an instance of the test result class that should be used for this " "test case class (if no other result instance is provided to the :meth:`run` " "method)." msgstr "" +"Retourne une instance de la classe de résultat de test qui doit être " +"utilisée pour cette classe de cas de test (si aucune autre instance de " +"résultat n'est fournie à la méthode :meth:`run`)." -#: ../Doc/library/unittest.rst:1397 +#: ../Doc/library/unittest.rst:1405 msgid "" "For :class:`TestCase` instances, this will always be an instance of :class:" "`TestResult`; subclasses of :class:`TestCase` should override this as " "necessary." msgstr "" +"Pour les instances de :class:`TestCase`, c'est toujours une instance de :" +"class:`TestResult` ; les sous-classes de :class:`TestCase` peuvent la " +"remplacer au besoin." -#: ../Doc/library/unittest.rst:1404 +#: ../Doc/library/unittest.rst:1412 msgid "" "Return a string identifying the specific test case. This is usually the " "full name of the test method, including the module and class name." msgstr "" +"Retourne une chaîne identifiant le cas de test spécifique. Il s'agit " +"généralement du nom complet de la méthode de test, y compris le nom du " +"module et de la classe." -#: ../Doc/library/unittest.rst:1410 +#: ../Doc/library/unittest.rst:1418 msgid "" "Returns a description of the test, or ``None`` if no description has been " "provided. The default implementation of this method returns the first line " "of the test method's docstring, if available, or ``None``." msgstr "" +"Renvoie une description du test, ou ``None`` si aucune description n'a été " +"fournie. L'implémentation par défaut de cette méthode renvoie la première " +"ligne de la *docstring* de la méthode de test, si disponible, ou ``None``." -#: ../Doc/library/unittest.rst:1415 +#: ../Doc/library/unittest.rst:1423 msgid "" "In 3.1 this was changed to add the test name to the short description even " "in the presence of a docstring. This caused compatibility issues with " "unittest extensions and adding the test name was moved to the :class:" "`TextTestResult` in Python 3.2." msgstr "" +"En 3.1, ceci a été modifié pour ajouter le nom du test à la description " +"courte, même en présence d'une *docstring*. Cela a causé des problèmes de " +"compatibilité avec les extensions *unittest* et l'ajout du nom du test a été " +"déplacé dans la classe :class:`TextTestResult` dans Python 3.2." -#: ../Doc/library/unittest.rst:1424 +#: ../Doc/library/unittest.rst:1432 msgid "" "Add a function to be called after :meth:`tearDown` to cleanup resources used " "during the test. Functions will be called in reverse order to the order they " @@ -1760,33 +2252,51 @@ msgid "" "arguments and keyword arguments passed into :meth:`addCleanup` when they are " "added." msgstr "" +"Ajout d'une fonction à appeler après :meth:`tearDown` pour nettoyer les " +"ressources utilisées pendant le test. Les fonctions seront appelées dans " +"l'ordre inverse de l'ordre dans lequel elles ont été ajoutées (:abbr:`LIFO " +"(dernier entré, premier sorti)`). Elles sont appelées avec tous les " +"arguments et arguments de mots-clés passés à :meth:`addCleanup` quand elles " +"sont ajoutées." -#: ../Doc/library/unittest.rst:1430 +#: ../Doc/library/unittest.rst:1438 msgid "" "If :meth:`setUp` fails, meaning that :meth:`tearDown` is not called, then " "any cleanup functions added will still be called." msgstr "" +"Si :meth:`setUp` échoue, cela signifie que :meth:`tearDown` n'est pas " +"appelé, alors que les fonctions de nettoyage ajoutées seront toujours " +"appelées." -#: ../Doc/library/unittest.rst:1438 +#: ../Doc/library/unittest.rst:1446 msgid "" "This method is called unconditionally after :meth:`tearDown`, or after :meth:" "`setUp` if :meth:`setUp` raises an exception." msgstr "" +"Cette méthode est appelée sans conditions après :meth:`tearDown`, ou après :" +"meth:`setUp` si :meth:`setUp` lève une exception." -#: ../Doc/library/unittest.rst:1441 +#: ../Doc/library/unittest.rst:1449 msgid "" "It is responsible for calling all the cleanup functions added by :meth:" "`addCleanup`. If you need cleanup functions to be called *prior* to :meth:" "`tearDown` then you can call :meth:`doCleanups` yourself." msgstr "" +"Cette méthode est chargée d'appeler toutes les fonctions de nettoyage " +"ajoutées par :meth:`addCleanup`. Si vous avez besoin de fonctions de " +"nettoyage à appeler *avant* l'appel à :meth:`tearDown` alors vous pouvez " +"appeler :meth:`doCleanups` vous-même." -#: ../Doc/library/unittest.rst:1446 +#: ../Doc/library/unittest.rst:1454 msgid "" ":meth:`doCleanups` pops methods off the stack of cleanup functions one at a " "time, so it can be called at any time." msgstr "" +":meth:`doCleanups` extrait les méthodes de la pile des fonctions de " +"nettoyage une à la fois, de sorte qu'elles peuvent être appelées à tout " +"moment." -#: ../Doc/library/unittest.rst:1454 +#: ../Doc/library/unittest.rst:1462 msgid "" "This class implements the portion of the :class:`TestCase` interface which " "allows the test runner to drive the test, but does not provide the methods " @@ -1794,165 +2304,188 @@ msgid "" "test cases using legacy test code, allowing it to be integrated into a :mod:" "`unittest`-based test framework." msgstr "" +"Cette classe implémente la partie de l'interface :class:`TestCase` qui " +"permet au lanceur de test de piloter le scénario de test, mais ne fournit " +"pas les méthodes que le code test peut utiliser pour vérifier et signaler " +"les erreurs. Ceci est utilisé pour créer des scénario de test utilisant du " +"code de test existant afin de faciliter l'intégration dans un *framework* de " +"test basé sur :mod:`unittest`." -#: ../Doc/library/unittest.rst:1464 +#: ../Doc/library/unittest.rst:1472 msgid "Deprecated aliases" -msgstr "" +msgstr "Alias obsolètes" -#: ../Doc/library/unittest.rst:1466 +#: ../Doc/library/unittest.rst:1474 msgid "" "For historical reasons, some of the :class:`TestCase` methods had one or " "more aliases that are now deprecated. The following table lists the correct " "names along with their deprecated aliases:" msgstr "" +"Pour des raisons historiques, certaines méthodes de la classe :class:" +"`TestCase` avaient un ou plusieurs alias qui sont maintenant obsolètes. Le " +"tableau suivant énumère les noms corrects ainsi que leurs alias obsolètes  ::" -#: ../Doc/library/unittest.rst:1471 +#: ../Doc/library/unittest.rst:1479 msgid "Method Name" msgstr "Nom de méthode" -#: ../Doc/library/unittest.rst:1471 +#: ../Doc/library/unittest.rst:1479 msgid "Deprecated alias" -msgstr "" +msgstr "Alias obsolètes" -#: ../Doc/library/unittest.rst:1473 +#: ../Doc/library/unittest.rst:1481 msgid ":meth:`.assertEqual`" msgstr ":meth:`.assertEqual`" -#: ../Doc/library/unittest.rst:1473 +#: ../Doc/library/unittest.rst:1481 msgid "failUnlessEqual" msgstr "failUnlessEqual" -#: ../Doc/library/unittest.rst:1473 +#: ../Doc/library/unittest.rst:1481 msgid "assertEquals" msgstr "assertEquals" -#: ../Doc/library/unittest.rst:1474 +#: ../Doc/library/unittest.rst:1482 msgid ":meth:`.assertNotEqual`" msgstr ":meth:`.assertNotEqual`" -#: ../Doc/library/unittest.rst:1474 +#: ../Doc/library/unittest.rst:1482 msgid "failIfEqual" msgstr "failIfEqual" -#: ../Doc/library/unittest.rst:1474 +#: ../Doc/library/unittest.rst:1482 msgid "assertNotEquals" msgstr "assertNotEquals" -#: ../Doc/library/unittest.rst:1475 +#: ../Doc/library/unittest.rst:1483 msgid ":meth:`.assertTrue`" msgstr ":meth:`.assertTrue`" -#: ../Doc/library/unittest.rst:1475 +#: ../Doc/library/unittest.rst:1483 msgid "failUnless" msgstr "failUnless" -#: ../Doc/library/unittest.rst:1475 +#: ../Doc/library/unittest.rst:1483 msgid "assert\\_" msgstr "assert\\_" -#: ../Doc/library/unittest.rst:1476 +#: ../Doc/library/unittest.rst:1484 msgid ":meth:`.assertFalse`" msgstr ":meth:`.assertFalse`" -#: ../Doc/library/unittest.rst:1476 +#: ../Doc/library/unittest.rst:1484 msgid "failIf" msgstr "failIf" -#: ../Doc/library/unittest.rst:1477 +#: ../Doc/library/unittest.rst:1485 msgid ":meth:`.assertRaises`" msgstr ":meth:`.assertRaises`" -#: ../Doc/library/unittest.rst:1477 +#: ../Doc/library/unittest.rst:1485 msgid "failUnlessRaises" msgstr "failUnlessRaises" -#: ../Doc/library/unittest.rst:1478 +#: ../Doc/library/unittest.rst:1486 msgid ":meth:`.assertAlmostEqual`" msgstr ":meth:`.assertAlmostEqual`" -#: ../Doc/library/unittest.rst:1478 +#: ../Doc/library/unittest.rst:1486 msgid "failUnlessAlmostEqual" msgstr "failUnlessAlmostEqual" -#: ../Doc/library/unittest.rst:1478 +#: ../Doc/library/unittest.rst:1486 msgid "assertAlmostEquals" msgstr "assertAlmostEquals" -#: ../Doc/library/unittest.rst:1479 +#: ../Doc/library/unittest.rst:1487 msgid ":meth:`.assertNotAlmostEqual`" msgstr ":meth:`.assertNotAlmostEqual`" -#: ../Doc/library/unittest.rst:1479 +#: ../Doc/library/unittest.rst:1487 msgid "failIfAlmostEqual" msgstr "failIfAlmostEqual" -#: ../Doc/library/unittest.rst:1479 +#: ../Doc/library/unittest.rst:1487 msgid "assertNotAlmostEquals" msgstr "assertNotAlmostEquals" -#: ../Doc/library/unittest.rst:1480 +#: ../Doc/library/unittest.rst:1488 msgid ":meth:`.assertRegex`" msgstr ":meth:`.assertRegex`" -#: ../Doc/library/unittest.rst:1480 +#: ../Doc/library/unittest.rst:1488 msgid "assertRegexpMatches" msgstr "assertRegexpMatches" -#: ../Doc/library/unittest.rst:1481 +#: ../Doc/library/unittest.rst:1489 msgid ":meth:`.assertNotRegex`" msgstr ":meth:`.assertNotRegex`" -#: ../Doc/library/unittest.rst:1481 +#: ../Doc/library/unittest.rst:1489 msgid "assertNotRegexpMatches" msgstr "assertNotRegexpMatches" -#: ../Doc/library/unittest.rst:1482 +#: ../Doc/library/unittest.rst:1490 msgid ":meth:`.assertRaisesRegex`" msgstr ":meth:`.assertRaisesRegex`" -#: ../Doc/library/unittest.rst:1482 +#: ../Doc/library/unittest.rst:1490 msgid "assertRaisesRegexp" msgstr "assertRaisesRegexp" -#: ../Doc/library/unittest.rst:1485 -msgid "the fail* aliases listed in the second column." -msgstr "" +#: ../Doc/library/unittest.rst:1493 +msgid "The fail* aliases listed in the second column have been deprecated." +msgstr "Les alias ``fail*`` sont énumérés dans la deuxième colonne." -#: ../Doc/library/unittest.rst:1487 -msgid "the assert* aliases listed in the third column." -msgstr "" +#: ../Doc/library/unittest.rst:1495 +msgid "The assert* aliases listed in the third column have been deprecated." +msgstr "Les alias ``assert*`` sont énumérés dans la troisième colonne." -#: ../Doc/library/unittest.rst:1489 +#: ../Doc/library/unittest.rst:1497 msgid "" "``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to :" "meth:`.assertRegex` and :meth:`.assertRaisesRegex`." msgstr "" +"Les expressions ``assertRegexpMatches`` et ``assertRaisesRegexp`` ont été " +"renommées en :meth:`.assertRegex` et :meth:`.assertRaisesRegex`." -#: ../Doc/library/unittest.rst:1492 +#: ../Doc/library/unittest.rst:1500 msgid "" -"the ``assertNotRegexpMatches`` name in favor of :meth:`.assertNotRegex`." -msgstr "``assertNotRegexpMatches`` en faveur de :meth:`.assertNotRegex`." +"The ``assertNotRegexpMatches`` name is deprecated in favor of :meth:`." +"assertNotRegex`." +msgstr "" +"Le nom ``assertNotRegexpMatches`` est obsolète en faveur de :meth:`." +"assertNotRegex`." -#: ../Doc/library/unittest.rst:1498 +#: ../Doc/library/unittest.rst:1506 msgid "Grouping tests" -msgstr "" +msgstr "Regroupement des tests" -#: ../Doc/library/unittest.rst:1502 +#: ../Doc/library/unittest.rst:1510 msgid "" "This class represents an aggregation of individual test cases and test " "suites. The class presents the interface needed by the test runner to allow " "it to be run as any other test case. Running a :class:`TestSuite` instance " "is the same as iterating over the suite, running each test individually." msgstr "" +"Cette classe représente une agrégation de cas de test individuels et de " +"suites de tests. La classe présente l'interface requise par le lanceur de " +"test pour être exécutée comme tout autre cas de test. L'exécution d'une " +"instance de :class:`TestSuite` est identique à l'itération sur la suite, en " +"exécutant chaque test indépendamment." -#: ../Doc/library/unittest.rst:1507 +#: ../Doc/library/unittest.rst:1515 msgid "" "If *tests* is given, it must be an iterable of individual test cases or " "other test suites that will be used to build the suite initially. Additional " "methods are provided to add test cases and suites to the collection later on." msgstr "" +"Si *tests* est fourni, il doit s'agir d'un itérable de cas de test " +"individuels ou d'autres suites de test qui seront utilisés pour construire " +"la suite initial. Des méthodes supplémentaires sont fournies pour ajouter " +"ultérieurement des cas de test et des suites à la collection." -#: ../Doc/library/unittest.rst:1511 +#: ../Doc/library/unittest.rst:1519 msgid "" ":class:`TestSuite` objects behave much like :class:`TestCase` objects, " "except they do not actually implement a test. Instead, they are used to " @@ -1960,48 +2493,68 @@ msgid "" "additional methods are available to add tests to :class:`TestSuite` " "instances:" msgstr "" +"Les objets :class:`TestSuite` se comportent comme les objets :class:" +"`TestCase`, sauf qu'ils n'implémentent pas réellement un test. Au lieu de " +"cela, ils sont utilisés pour regrouper les tests en groupes de tests qui " +"doivent être exécutés ensemble. Des méthodes supplémentaires sont " +"disponibles pour ajouter des tests aux instances de :class:`TestSuite` :" -#: ../Doc/library/unittest.rst:1519 +#: ../Doc/library/unittest.rst:1527 msgid "Add a :class:`TestCase` or :class:`TestSuite` to the suite." msgstr "" +"Ajouter un objet :class:`TestCase` ou :class:`TestSuite` à la suite de tests." -#: ../Doc/library/unittest.rst:1524 +#: ../Doc/library/unittest.rst:1532 msgid "" "Add all the tests from an iterable of :class:`TestCase` and :class:" "`TestSuite` instances to this test suite." msgstr "" +"Ajouter tous les tests d'un itérable d'instances de :class:`TestCase` et de :" +"class:`TestSuite` à cette suite de tests." -#: ../Doc/library/unittest.rst:1527 +#: ../Doc/library/unittest.rst:1535 msgid "" "This is equivalent to iterating over *tests*, calling :meth:`addTest` for " "each element." msgstr "" +"C'est l'équivalent d'une itération sur *tests*, appelant :meth:`addTest` " +"pour chaque élément." -#: ../Doc/library/unittest.rst:1530 +#: ../Doc/library/unittest.rst:1538 msgid ":class:`TestSuite` shares the following methods with :class:`TestCase`:" msgstr "" +":class:`TestSuite` partage les méthodes suivantes avec :class:`TestCase` :" -#: ../Doc/library/unittest.rst:1535 +#: ../Doc/library/unittest.rst:1543 msgid "" "Run the tests associated with this suite, collecting the result into the " "test result object passed as *result*. Note that unlike :meth:`TestCase." "run`, :meth:`TestSuite.run` requires the result object to be passed in." msgstr "" +"Exécute les tests associés à cette suite, en collectant le résultat dans " +"l'objet de résultat de test passé par *result*. Remarquer que contrairement " +"à :meth:`TestCase.run`, :meth:`TestSuite.run` nécessite que l'objet résultat " +"soit passé." -#: ../Doc/library/unittest.rst:1543 +#: ../Doc/library/unittest.rst:1551 msgid "" "Run the tests associated with this suite without collecting the result. This " "allows exceptions raised by the test to be propagated to the caller and can " "be used to support running tests under a debugger." msgstr "" +"Exécute les tests associés à cette suite sans collecter le résultat. Ceci " +"permet aux exceptions levées par le test d'être propagées à l'appelant et " +"peut être utilisé pour exécuter des tests sous un débogueur." -#: ../Doc/library/unittest.rst:1550 +#: ../Doc/library/unittest.rst:1558 msgid "" "Return the number of tests represented by this test object, including all " "individual tests and sub-suites." msgstr "" +"Renvoie le nombre de tests représentés par cet objet de test, y compris tous " +"les tests individuels et les sous-suites." -#: ../Doc/library/unittest.rst:1556 +#: ../Doc/library/unittest.rst:1564 msgid "" "Tests grouped by a :class:`TestSuite` are always accessed by iteration. " "Subclasses can lazily provide tests by overriding :meth:`__iter__`. Note " @@ -2012,32 +2565,52 @@ msgid "" "tests returned by this method unless the caller uses a subclass that " "overrides :meth:`TestSuite._removeTestAtIndex` to preserve test references." msgstr "" +"Les tests groupés par une classe :class:`TestSuite` sont toujours " +"accessibles par itération. Les sous-classes peuvent fournir paresseusement " +"des tests en surchargeant :meth:`__iter__`. Notez que cette méthode peut " +"être appelée plusieurs fois sur une même suite (par exemple lors du comptage " +"des tests ou de la comparaison pour l'égalité) et que les tests retournés " +"par itérations répétées avant :meth:`TestSuite.run` doivent être les mêmes " +"pour chaque itération. Après :meth:`TestSuite.run`, les appelants ne " +"devraient pas se fier aux tests retournés par cette méthode à moins qu'ils " +"n'utilisent une sous-classe qui remplace :meth:`TestSuite." +"_removeTestAtIndex` pour préserver les références des tests." -#: ../Doc/library/unittest.rst:1566 +#: ../Doc/library/unittest.rst:1574 msgid "" "In earlier versions the :class:`TestSuite` accessed tests directly rather " "than through iteration, so overriding :meth:`__iter__` wasn't sufficient for " "providing tests." msgstr "" +"Dans les versions précédentes, la classe :class:`TestSuite` accédait aux " +"tests directement plutôt que par itération, donc surcharger la méthode :meth:" +"`__iter__` n'était pas suffisante pour fournir les tests." -#: ../Doc/library/unittest.rst:1571 +#: ../Doc/library/unittest.rst:1579 msgid "" "In earlier versions the :class:`TestSuite` held references to each :class:" "`TestCase` after :meth:`TestSuite.run`. Subclasses can restore that behavior " "by overriding :meth:`TestSuite._removeTestAtIndex`." msgstr "" +"Dans les versions précédentes, la classe :class:`TestSuite` contenait des " +"références à chaque :class:`TestCase` après l'appel à :meth:`TestSuite.run`. " +"Les sous-classes peuvent restaurer ce comportement en surchargeant :meth:" +"`TestSuite._removeTestAtIndex`." -#: ../Doc/library/unittest.rst:1576 +#: ../Doc/library/unittest.rst:1584 msgid "" "In the typical usage of a :class:`TestSuite` object, the :meth:`run` method " "is invoked by a :class:`TestRunner` rather than by the end-user test harness." msgstr "" +"Dans l'utilisation typique de l'objet :class:`TestSuite`, la méthode :meth:" +"`run` est invoquée par une classe :class:`TestRunner` plutôt que par le " +"système de test de l'utilisateur." -#: ../Doc/library/unittest.rst:1581 +#: ../Doc/library/unittest.rst:1589 msgid "Loading and running tests" -msgstr "" +msgstr "Chargement et exécution des tests" -#: ../Doc/library/unittest.rst:1585 +#: ../Doc/library/unittest.rst:1593 msgid "" "The :class:`TestLoader` class is used to create test suites from classes and " "modules. Normally, there is no need to create an instance of this class; " @@ -2045,30 +2618,45 @@ msgid "" "`unittest.defaultTestLoader`. Using a subclass or instance, however, allows " "customization of some configurable properties." msgstr "" +"La classe :class:`TestLoader` est utilisée pour créer des suites de tests à " +"partir de classes et de modules. Normalement, il n'est pas nécessaire de " +"créer une instance de cette classe ; le module :mod:`unittest` fournit une " +"instance qui peut être partagée comme :data:`unittest.defaultTestLoader`. " +"L'utilisation d'une sous-classe ou d'une instance permet cependant de " +"personnaliser certaines propriétés configurables." -#: ../Doc/library/unittest.rst:1591 +#: ../Doc/library/unittest.rst:1599 msgid ":class:`TestLoader` objects have the following attributes:" msgstr "" +"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" -#: ../Doc/library/unittest.rst:1596 +#: ../Doc/library/unittest.rst:1604 msgid "" "A list of the non-fatal errors encountered while loading tests. Not reset by " "the loader at any point. Fatal errors are signalled by the relevant a method " "raising an exception to the caller. Non-fatal errors are also indicated by a " "synthetic test that will raise the original error when run." msgstr "" +"Une liste des erreurs non fatales rencontrées lors du chargement des tests. " +"Il est impossible de faire une remise à zéro pendant le chargement. Les " +"erreurs fatales sont signalées par la méthode correspondante qui lève une " +"exception à l'appelant. Les erreurs non fatales sont également indiquées par " +"un test synthétique qui lève l'erreur initiale lors de l'exécution." -#: ../Doc/library/unittest.rst:1605 +#: ../Doc/library/unittest.rst:1613 msgid ":class:`TestLoader` objects have the following methods:" msgstr "" +"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" -#: ../Doc/library/unittest.rst:1610 +#: ../Doc/library/unittest.rst:1618 msgid "" "Return a suite of all test cases contained in the :class:`TestCase`\\ -" "derived :class:`testCaseClass`." msgstr "" +"Renvoie une suite de tous les cas de test contenus dans la classe :class:" +"`TestCaseClass`\\ dérivée de :class:`testCase`." -#: ../Doc/library/unittest.rst:1613 +#: ../Doc/library/unittest.rst:1621 msgid "" "A test case instance is created for each method named by :meth:" "`getTestCaseNames`. By default these are the method names beginning with " @@ -2076,15 +2664,24 @@ msgid "" "`runTest` method is implemented, a single test case is created for that " "method instead." msgstr "" +"Une instance de cas de test est créée pour chaque méthode nommée par :meth:" +"`getTestCaseNames`. Par défaut, ce sont les noms des méthodes commençant par " +"\"test\". Si :meth:`getTestTestCaseNames` ne renvoie aucune méthode, mais " +"que la méthode :meth:`runTest` est implémentée, un seul cas de test est créé " +"pour cette méthode à la place." -#: ../Doc/library/unittest.rst:1622 +#: ../Doc/library/unittest.rst:1630 msgid "" "Return a suite of all test cases contained in the given module. This method " "searches *module* for classes derived from :class:`TestCase` and creates an " "instance of the class for each test method defined for the class." msgstr "" +"Renvoie une suite de tous les cas de test contenus dans le module donné. " +"Cette méthode recherche *module* pour les classes dérivées de :class:" +"`TestCase` et crée une instance de la classe pour chaque méthode de test " +"définie pour cette classe." -#: ../Doc/library/unittest.rst:1629 +#: ../Doc/library/unittest.rst:1637 msgid "" "While using a hierarchy of :class:`TestCase`\\ -derived classes can be " "convenient in sharing fixtures and helper functions, defining test methods " @@ -2092,32 +2689,48 @@ msgid "" "play well with this method. Doing so, however, can be useful when the " "fixtures are different and defined in subclasses." msgstr "" +"Bien que l'utilisation d'une hiérarchie de classes :class:`TestCase` (les " +"classes dérivées de *TestCase*) peut être un moyen pratique de partager des " +"*fixtures* et des fonctions utilitaires, définir une méthode de test pour " +"des classes de base non destinées à être directement instanciée ne marche " +"pas bien avec cette méthode. Cela peut toutefois s'avérer utile lorsque les " +"*fixtures* sont différentes et définies dans des sous-classes." -#: ../Doc/library/unittest.rst:1635 +#: ../Doc/library/unittest.rst:1643 msgid "" "If a module provides a ``load_tests`` function it will be called to load the " "tests. This allows modules to customize test loading. This is the " "`load_tests protocol`_. The *pattern* argument is passed as the third " "argument to ``load_tests``." msgstr "" +"Si un module fournit une fonction ``load_tests``, il est appelé pour charger " +"les tests. Cela permet aux modules de personnaliser le chargement des tests. " +"C'est le protocole `load_tests protocol`_. L'argument *pattern* est passé " +"comme troisième argument à ``load_tests``." -#: ../Doc/library/unittest.rst:1640 +#: ../Doc/library/unittest.rst:1648 msgid "Support for ``load_tests`` added." -msgstr "" +msgstr "Ajout de la prise en charge de ``load_tests``." -#: ../Doc/library/unittest.rst:1643 +#: ../Doc/library/unittest.rst:1651 msgid "" "The undocumented and unofficial *use_load_tests* default argument is " "deprecated and ignored, although it is still accepted for backward " "compatibility. The method also now accepts a keyword-only argument " "*pattern* which is passed to ``load_tests`` as the third argument." msgstr "" +"L'argument par défaut non documenté et non officiel *use_load_tests* est " +"déprécié et ignoré, bien qu'il soit toujours accepté pour la compatibilité " +"descendante. La méthode accepte aussi maintenant un argument *pattern* qui " +"est passé à ``load_tests`` comme troisième argument." -#: ../Doc/library/unittest.rst:1652 +#: ../Doc/library/unittest.rst:1660 msgid "Return a suite of all test cases given a string specifier." msgstr "" +"Renvoie une suite de tous les cas de test en fonction d'un spécificateur de " +"chaîne de caractères." -#: ../Doc/library/unittest.rst:1654 +#: ../Doc/library/unittest.rst:1662 msgid "" "The specifier *name* is a \"dotted name\" that may resolve either to a " "module, a test case class, a test method within a test case class, a :class:" @@ -2127,8 +2740,16 @@ msgid "" "up as \"a test method within a test case class\", rather than \"a callable " "object\"." msgstr "" +"Le spécificateur *name* est un \"nom pointillé\" qui peut être résolu soit " +"par un module, une classe de cas de test, une méthode de test dans une " +"classe de cas de test, une instance de :class:`TestSuite`, ou un objet " +"appelable qui retourne une instance de classe :class:`TestCase` ou de " +"classe :class:`TestSuite`. Ces contrôles sont appliqués dans l'ordre indiqué " +"ici, c'est-à-dire qu'une méthode sur une classe de cas de test possible sera " +"choisie comme \"méthode de test dans une classe de cas de test\", plutôt que " +"comme \"un objet appelable\"." -#: ../Doc/library/unittest.rst:1662 +#: ../Doc/library/unittest.rst:1670 msgid "" "For example, if you have a module :mod:`SampleTests` containing a :class:" "`TestCase`\\ -derived class :class:`SampleTestCase` with three test methods " @@ -2140,32 +2761,50 @@ msgid "" "modules and packages which have not been imported; they will be imported as " "a side-effect." msgstr "" - -#: ../Doc/library/unittest.rst:1672 +"Par exemple, si vous avez un module :mod:`SampleTests` contenant une classe :" +"class:`TestCase` (classe dérivée de la classe :class:`SampleTestCase`) avec " +"trois méthodes de test (:meth:`test_one`, :meth:`test_two` et :meth:" +"`test_three`), l'élément spécificateur `SampleTests.sampleTestCase` renvoie " +"une suite qui va exécuter les trois méthodes de tests. L'utilisation du " +"spécificateur `SampleTests.SampleTestCase.test_two` permettrait de retourner " +"une suite de tests qui ne lancerait que la méthode test :meth:`test_two`. Le " +"spécificateur peut se référer à des modules et packages qui n'ont pas été " +"importés. Ils seront importés par un effet de bord." + +#: ../Doc/library/unittest.rst:1680 msgid "The method optionally resolves *name* relative to the given *module*." -msgstr "" +msgstr "La méthode résout facultativement *name* relatif au *module* donné." -#: ../Doc/library/unittest.rst:1674 +#: ../Doc/library/unittest.rst:1682 msgid "" "If an :exc:`ImportError` or :exc:`AttributeError` occurs while traversing " "*name* then a synthetic test that raises that error when run will be " "returned. These errors are included in the errors accumulated by self.errors." msgstr "" +"Si une :exc:`ImportError` ou :exc:`AttributeError` se produit pendant la " +"traversée de *name*, un test synthétique qui enrichie l'erreur produite lors " +"de l'exécution est renvoyé. Ces erreurs sont incluses dans les erreurs " +"accumulées par *self.errors*." -#: ../Doc/library/unittest.rst:1683 +#: ../Doc/library/unittest.rst:1691 msgid "" "Similar to :meth:`loadTestsFromName`, but takes a sequence of names rather " "than a single name. The return value is a test suite which supports all the " "tests defined for each name." msgstr "" +"Similaire à :meth:`loadTestsFromName`, mais prend une séquence de noms " +"plutôt qu'un seul nom. La valeur renvoyée est une suite de tests qui gère " +"tous les tests définis pour chaque nom." -#: ../Doc/library/unittest.rst:1690 +#: ../Doc/library/unittest.rst:1698 msgid "" "Return a sorted sequence of method names found within *testCaseClass*; this " "should be a subclass of :class:`TestCase`." msgstr "" +"Renvoie une séquence triée de noms de méthodes trouvés dans " +"*testCaseClass* ; ceci doit être une sous-classe de :class:`TestCase`." -#: ../Doc/library/unittest.rst:1696 +#: ../Doc/library/unittest.rst:1704 msgid "" "Find all the test modules by recursing into subdirectories from the " "specified start directory, and return a TestSuite object containing them. " @@ -2173,23 +2812,36 @@ msgid "" "pattern matching.) Only module names that are importable (i.e. are valid " "Python identifiers) will be loaded." msgstr "" +"Trouve tous les modules de test en parcourant les sous-répertoires du " +"répertoire de démarrage spécifié, et renvoie un objet *TestSuite* qui les " +"contient. Seuls les fichiers de test qui correspondent à *pattern* sont " +"chargés. Seuls les noms de modules qui sont importables (c'est-à-dire qui " +"sont des identifiants Python valides) sont chargés." -#: ../Doc/library/unittest.rst:1702 +#: ../Doc/library/unittest.rst:1710 msgid "" "All test modules must be importable from the top level of the project. If " "the start directory is not the top level directory then the top level " "directory must be specified separately." msgstr "" +"Tous les modules de test doivent être importables depuis la racine du " +"projet. Si le répertoire de démarrage n'est pas la racine, le répertoire " +"racine doit être spécifié séparément." -#: ../Doc/library/unittest.rst:1706 +#: ../Doc/library/unittest.rst:1714 msgid "" "If importing a module fails, for example due to a syntax error, then this " "will be recorded as a single error and discovery will continue. If the " "import failure is due to :exc:`SkipTest` being raised, it will be recorded " "as a skip instead of an error." msgstr "" +"Si l'importation d'un module échoue, par exemple en raison d'une erreur de " +"syntaxe, celle-ci est alors enregistrée comme une erreur unique et la " +"découverte se poursuit. Si l'échec de l'importation est dû au fait que :exc:" +"`SkipTest` est levé, il est enregistré comme un saut plutôt que comme un " +"message d'erreur." -#: ../Doc/library/unittest.rst:1711 +#: ../Doc/library/unittest.rst:1719 msgid "" "If a package (a directory containing a file named :file:`__init__.py`) is " "found, the package will be checked for a ``load_tests`` function. If this " @@ -2198,26 +2850,39 @@ msgid "" "checked for tests once during an invocation, even if the load_tests function " "itself calls ``loader.discover``." msgstr "" +"Si un paquet (un répertoire contenant un fichier nommé :file:`__init__.py`) " +"est trouvé, le paquet est alors vérifié pour une fonction ``load_tests``. Si " +"elle existe, elle s'appellera ``package.load_tests(loader, tests, " +"pattern)``. Le mécanisme de découverte de test prend soin de s'assurer qu'un " +"paquet n'est vérifié qu'une seule fois au cours d'une invocation, même si la " +"fonction *load_tests* appelle elle-même ``loader.discover``." -#: ../Doc/library/unittest.rst:1719 +#: ../Doc/library/unittest.rst:1727 msgid "" "If ``load_tests`` exists then discovery does *not* recurse into the package, " "``load_tests`` is responsible for loading all tests in the package." msgstr "" +"Si ``load_tests`` existe alors la découverte ne poursuit pas la récursion " +"dans le paquet, ``load_tests`` a la responsabilité de charger tous les tests " +"dans le paquet." -#: ../Doc/library/unittest.rst:1723 +#: ../Doc/library/unittest.rst:1731 msgid "" "The pattern is deliberately not stored as a loader attribute so that " "packages can continue discovery themselves. *top_level_dir* is stored so " "``load_tests`` does not need to pass this argument in to ``loader." "discover()``." msgstr "" +"Le motif n'est délibérément pas stocké en tant qu'attribut du chargeur afin " +"que les paquets puissent continuer à être découverts eux-mêmes. " +"*top_level_dir* est stocké de sorte que ``load_tests`` n'a pas besoin de " +"passer cet argument a ``loader. discover()``." -#: ../Doc/library/unittest.rst:1728 +#: ../Doc/library/unittest.rst:1736 msgid "*start_dir* can be a dotted module name as well as a directory." -msgstr "" +msgstr "*start_dir* peut être un nom de module ainsi qu'un répertoire." -#: ../Doc/library/unittest.rst:1732 +#: ../Doc/library/unittest.rst:1740 msgid "" "Modules that raise :exc:`SkipTest` on import are recorded as skips, not " "errors. Discovery works for :term:`namespace packages `. " @@ -2225,56 +2890,81 @@ msgid "" "even if the underlying file system's ordering is not dependent on file " "name." msgstr "" +"Les modules qui lèvent :exc:`SkipTest` lors de l'importation sont " +"enregistrés comme des sauts et non des erreurs. Le mécanisme de découverte " +"fonctionne pour les :term:`paquets-espaces de nommage `. " +"Les chemins sont triés avant d'être importés pour que l'ordre d'exécution " +"soit le même, même si l'ordre du système de fichiers sous-jacent ne dépend " +"pas du nom du fichier." -#: ../Doc/library/unittest.rst:1740 +#: ../Doc/library/unittest.rst:1748 msgid "" "Found packages are now checked for ``load_tests`` regardless of whether " "their path matches *pattern*, because it is impossible for a package name to " "match the default pattern." msgstr "" +"Les paquets trouvés sont maintenant vérifiés pour ``load_tests`` " +"indépendamment du fait que leur chemin d'accès corresponde ou non à " +"*pattern*, car il est impossible pour un nom de paquet de correspondre au " +"motif par défaut." -#: ../Doc/library/unittest.rst:1746 +#: ../Doc/library/unittest.rst:1754 msgid "" "The following attributes of a :class:`TestLoader` can be configured either " "by subclassing or assignment on an instance:" msgstr "" +"Les attributs suivants d'une classe :class:`TestLoader` peuvent être " +"configurés soit par héritage, soit par affectation sur une instance  ::" -#: ../Doc/library/unittest.rst:1752 +#: ../Doc/library/unittest.rst:1760 msgid "" "String giving the prefix of method names which will be interpreted as test " "methods. The default value is ``'test'``." msgstr "" +"Chaîne donnant le préfixe des noms de méthodes qui seront interprétés comme " +"méthodes de test. La valeur par défaut est ``'test'``." -#: ../Doc/library/unittest.rst:1755 +#: ../Doc/library/unittest.rst:1763 msgid "" "This affects :meth:`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` " "methods." msgstr "" +"Ceci affecte les méthodes :meth:`getTestCaseNames` et toutes les méthodes :" +"meth:`loadTestsFrom\\*`." -#: ../Doc/library/unittest.rst:1761 +#: ../Doc/library/unittest.rst:1769 msgid "" "Function to be used to compare method names when sorting them in :meth:" "`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` methods." msgstr "" +"Fonction à utiliser pour comparer les noms de méthodes lors de leur tri dans " +"les méthodes :meth:`getTestCaseNames` et toutes les méthodes :meth:" +"`loadTestsFrom\\*`." -#: ../Doc/library/unittest.rst:1767 +#: ../Doc/library/unittest.rst:1775 msgid "" "Callable object that constructs a test suite from a list of tests. No " "methods on the resulting object are needed. The default value is the :class:" "`TestSuite` class." msgstr "" +"Objet appelable qui construit une suite de tests à partir d'une liste de " +"tests. Aucune méthode sur l'objet résultant n'est nécessaire. La valeur par " +"défaut est la classe :class:`TestSuite`." -#: ../Doc/library/unittest.rst:1771 ../Doc/library/unittest.rst:1784 +#: ../Doc/library/unittest.rst:1779 ../Doc/library/unittest.rst:1792 msgid "This affects all the :meth:`loadTestsFrom\\*` methods." -msgstr "" +msgstr "Cela affecte toutes les méthodes :meth:`loadTestsFrom\\*`." -#: ../Doc/library/unittest.rst:1775 +#: ../Doc/library/unittest.rst:1783 msgid "" "List of Unix shell-style wildcard test name patterns that test methods have " "to match to be included in test suites (see ``-v`` option)." msgstr "" +"Liste des motifs de noms de test de type joker de style *Unix* que les " +"méthodes de test doivent valider pour être incluses dans les suites de test " +"(voir l'option ``-v``)." -#: ../Doc/library/unittest.rst:1778 +#: ../Doc/library/unittest.rst:1786 msgid "" "If this attribute is not ``None`` (the default), all test methods to be " "included in test suites must match one of the patterns in this list. Note " @@ -2282,78 +2972,114 @@ msgid "" "unlike patterns passed to the ``-v`` option, simple substring patterns will " "have to be converted using ``*`` wildcards." msgstr "" +"Si cet attribut n'est pas ``None`` (par défaut), toutes les méthodes de test " +"à inclure dans les suites de test doivent correspondre à l'un des modèles de " +"cette liste. Remarquez que les correspondances sont toujours effectuées en " +"utilisant :meth:`fnmatch.fnmatchcase`, donc contrairement aux modèles passés " +"à l'option ``-v``, les motifs de sous-chaînes simples doivent être convertis " +"avec le joker ``*``." -#: ../Doc/library/unittest.rst:1791 +#: ../Doc/library/unittest.rst:1799 msgid "" "This class is used to compile information about which tests have succeeded " "and which have failed." msgstr "" +"Cette classe est utilisée pour compiler des informations sur les tests qui " +"ont réussi et ceux qui ont échoué." -#: ../Doc/library/unittest.rst:1794 +#: ../Doc/library/unittest.rst:1802 msgid "" "A :class:`TestResult` object stores the results of a set of tests. The :" "class:`TestCase` and :class:`TestSuite` classes ensure that results are " "properly recorded; test authors do not need to worry about recording the " "outcome of tests." msgstr "" +"Un objet :class:`TestResult` stocke les résultats d'un ensemble de tests. " +"Les classes :class:`TestCase` et :class:`TestSuite` s'assurent que les " +"résultats sont correctement enregistrés. Les auteurs du test n'ont pas à se " +"soucier de l'enregistrement des résultats des tests." -#: ../Doc/library/unittest.rst:1799 +#: ../Doc/library/unittest.rst:1807 msgid "" "Testing frameworks built on top of :mod:`unittest` may want access to the :" "class:`TestResult` object generated by running a set of tests for reporting " "purposes; a :class:`TestResult` instance is returned by the :meth:" "`TestRunner.run` method for this purpose." msgstr "" +"Les cadriciels de test construits sur :mod:`unittest` peuvent nécessiter " +"l'accès à l'objet :class:`TestResult` généré en exécutant un ensemble de " +"tests à des fins de génération de comptes-rendu. Une instance de :class:" +"`TestResult` est alors renvoyée par la méthode :meth:`TestRunner.run` à " +"cette fin." -#: ../Doc/library/unittest.rst:1804 +#: ../Doc/library/unittest.rst:1812 msgid "" ":class:`TestResult` instances have the following attributes that will be of " "interest when inspecting the results of running a set of tests:" msgstr "" +"Les instance de :class:`TestResult` ont les attributs suivants qui sont " +"intéressant pour l'inspection des résultats de l'exécution d'un ensemble de " +"tests  ::" -#: ../Doc/library/unittest.rst:1810 +#: ../Doc/library/unittest.rst:1818 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents a test which raised an " "unexpected exception." msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant des traces formatées. Chaque couple " +"représente un test qui a levé une exception inattendue." -#: ../Doc/library/unittest.rst:1816 +#: ../Doc/library/unittest.rst:1824 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents a test where a failure " "was explicitly signalled using the :meth:`TestCase.assert\\*` methods." msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant des traces formatées. Chaque tuple " +"représente un test où un échec a été explicitement signalé en utilisant les " +"méthodes :meth:`TestCase.assert\\*`." -#: ../Doc/library/unittest.rst:1822 +#: ../Doc/library/unittest.rst:1830 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding the reason for skipping the test." msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant la raison de l'omission du test." -#: ../Doc/library/unittest.rst:1829 +#: ../Doc/library/unittest.rst:1837 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents an expected failure of " "the test case." msgstr "" +"Une liste contenant un couple d'instance :class:`TestCase` et une chaînes de " +"caractères contenant des traces formatées. Chaque coulpe représente un échec " +"attendu du scénario de test." -#: ../Doc/library/unittest.rst:1835 +#: ../Doc/library/unittest.rst:1843 msgid "" "A list containing :class:`TestCase` instances that were marked as expected " "failures, but succeeded." msgstr "" +"Une liste contenant les instances :class:`TestCase` qui ont été marquées " +"comme des échecs attendus, mais qui ont réussi." -#: ../Doc/library/unittest.rst:1840 +#: ../Doc/library/unittest.rst:1848 msgid "" "Set to ``True`` when the execution of tests should stop by :meth:`stop`." msgstr "" +"A positionner sur ``True`` quand l'exécution des tests doit être arrêter " +"par :meth:`stop`." -#: ../Doc/library/unittest.rst:1844 +#: ../Doc/library/unittest.rst:1852 msgid "The total number of tests run so far." -msgstr "" +msgstr "Le nombre total de tests effectués jusqu'à présent." -#: ../Doc/library/unittest.rst:1848 +#: ../Doc/library/unittest.rst:1856 msgid "" "If set to true, ``sys.stdout`` and ``sys.stderr`` will be buffered in " "between :meth:`startTest` and :meth:`stopTest` being called. Collected " @@ -2361,183 +3087,253 @@ msgid "" "if the test fails or errors. Any output is also attached to the failure / " "error message." msgstr "" +"S'il est défini sur *true*, ``sys.stdout`` et ``sys.stderr`` sont mis dans " +"un tampon entre les appels de :meth:`startTest` et :meth:`stopTest`. La " +"sortie collectée est répercutée sur les sorties ``sys.stdout`` et ``sys." +"stderr`` réels uniquement en cas d'échec ou d'erreur du test. Toute sortie " +"est également attachée au message d'erreur." -#: ../Doc/library/unittest.rst:1857 +#: ../Doc/library/unittest.rst:1865 msgid "" "If set to true :meth:`stop` will be called on the first failure or error, " "halting the test run." msgstr "" +"Si la valeur est *true* :meth:`stop` est appelée lors de la première " +"défaillance ou erreur, ce qui interrompt le test en cours d'exécution." -#: ../Doc/library/unittest.rst:1864 +#: ../Doc/library/unittest.rst:1872 msgid "If set to true then local variables will be shown in tracebacks." msgstr "" +"Si la valeur est *true*, les variables locales sont affichées dans les " +"traces d'appels." -#: ../Doc/library/unittest.rst:1870 +#: ../Doc/library/unittest.rst:1878 msgid "" "Return ``True`` if all tests run so far have passed, otherwise returns " "``False``." msgstr "" +"Renvoie ``True`` si tous les tests effectués jusqu'à présent ont réussi, " +"sinon renvoie ``False``." -#: ../Doc/library/unittest.rst:1873 +#: ../Doc/library/unittest.rst:1881 msgid "" "Returns ``False`` if there were any :attr:`unexpectedSuccesses` from tests " "marked with the :func:`expectedFailure` decorator." msgstr "" +"Renvoie ``False`` s'il y a eu des :attr:`unexpectedSuccesses` dans les tests " +"annotés avec le décorateur :func:`expectedFailure`." -#: ../Doc/library/unittest.rst:1879 +#: ../Doc/library/unittest.rst:1887 msgid "" "This method can be called to signal that the set of tests being run should " "be aborted by setting the :attr:`shouldStop` attribute to ``True``. :class:" "`TestRunner` objects should respect this flag and return without running any " "additional tests." msgstr "" +"Cette méthode peut être appelée pour signaler que l'ensemble des tests en " +"cours d'exécution doit être annulé en définissant l'attribut :attr:" +"`shouldStop` sur ``True``. Les instances de :class:`TestRunner` doivent " +"respecter ce signal et se terminer sans exécuter de tests supplémentaires." -#: ../Doc/library/unittest.rst:1884 +#: ../Doc/library/unittest.rst:1892 msgid "" "For example, this feature is used by the :class:`TextTestRunner` class to " "stop the test framework when the user signals an interrupt from the " "keyboard. Interactive tools which provide :class:`TestRunner` " "implementations can use this in a similar manner." msgstr "" +"Par exemple, cette fonctionnalité est utilisée par la classe :class:" +"`TextTestRunner` pour arrêter le cadriciel de test lorsque l'utilisateur " +"lance une interruption clavier. Les outils interactifs qui fournissent des " +"implémentations de :class:`TestRunner` peuvent l'utiliser de la même manière." -#: ../Doc/library/unittest.rst:1889 +#: ../Doc/library/unittest.rst:1897 msgid "" "The following methods of the :class:`TestResult` class are used to maintain " "the internal data structures, and may be extended in subclasses to support " "additional reporting requirements. This is particularly useful in building " "tools which support interactive reporting while tests are being run." msgstr "" +"Les méthodes suivantes de la classe :class:`TestResult` sont utilisées pour " +"maintenir les structures de données internes, et peuvent être étendues dans " +"des sous-classes pour gérer des exigences supplémentaires en termes de " +"compte-rendu. Cette fonction est particulièrement utile pour créer des " +"outils qui prennent en charge la génération de rapports interactifs pendant " +"l'exécution des tests." -#: ../Doc/library/unittest.rst:1897 +#: ../Doc/library/unittest.rst:1905 msgid "Called when the test case *test* is about to be run." msgstr "" +"Appelé lorsque le scénario de test *test* est sur le point d'être exécuté." -#: ../Doc/library/unittest.rst:1901 +#: ../Doc/library/unittest.rst:1909 msgid "" "Called after the test case *test* has been executed, regardless of the " "outcome." msgstr "" +"Appelé après l'exécution du cas de test *test*, quel qu'en soit le résultat." -#: ../Doc/library/unittest.rst:1906 +#: ../Doc/library/unittest.rst:1914 msgid "Called once before any tests are executed." -msgstr "" +msgstr "Appelé une fois avant l'exécution des tests." -#: ../Doc/library/unittest.rst:1913 +#: ../Doc/library/unittest.rst:1921 msgid "Called once after all tests are executed." -msgstr "" +msgstr "Appelé une fois après l'exécution des tests." -#: ../Doc/library/unittest.rst:1920 +#: ../Doc/library/unittest.rst:1928 msgid "" "Called when the test case *test* raises an unexpected exception. *err* is a " "tuple of the form returned by :func:`sys.exc_info`: ``(type, value, " "traceback)``." msgstr "" +"Appelé lorsque le cas de test *test* soulève une exception inattendue. *err* " +"est un couple du formulaire renvoyé par :func:`sys.exc_info` : ``(type, " +"valeur, traceback)``." -#: ../Doc/library/unittest.rst:1924 +#: ../Doc/library/unittest.rst:1932 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`errors` attribute, where *formatted_err* is a formatted " "traceback derived from *err*." msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." -#: ../Doc/library/unittest.rst:1931 +#: ../Doc/library/unittest.rst:1939 msgid "" "Called when the test case *test* signals a failure. *err* is a tuple of the " "form returned by :func:`sys.exc_info`: ``(type, value, traceback)``." msgstr "" +"Appelé lorsque le cas de test *test* soulève une exception inattendue. *err* " +"est un triplet de la même forme que celui renvoyé par :func:`sys.exc_info` : " +"``(type, valeur, traceback)``." -#: ../Doc/library/unittest.rst:1934 +#: ../Doc/library/unittest.rst:1942 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`failures` attribute, where *formatted_err* is a formatted " "traceback derived from *err*." msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." -#: ../Doc/library/unittest.rst:1941 +#: ../Doc/library/unittest.rst:1949 msgid "Called when the test case *test* succeeds." -msgstr "" +msgstr "Appelé lorsque le scénario de test *test* réussit." -#: ../Doc/library/unittest.rst:1943 +#: ../Doc/library/unittest.rst:1951 msgid "The default implementation does nothing." -msgstr "" +msgstr "L'implémentation par défaut ne fait rien." -#: ../Doc/library/unittest.rst:1948 +#: ../Doc/library/unittest.rst:1956 msgid "" "Called when the test case *test* is skipped. *reason* is the reason the " "test gave for skipping." msgstr "" +"Appelé lorsque le scénario de test *test* est ignoré. *raison* est la raison " +"pour laquelle le test donné à été ignoré." -#: ../Doc/library/unittest.rst:1951 +#: ../Doc/library/unittest.rst:1959 msgid "" "The default implementation appends a tuple ``(test, reason)`` to the " "instance's :attr:`skipped` attribute." msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, raison)`` à " +"l'attribut :attr:`skipped` de l'instance." -#: ../Doc/library/unittest.rst:1957 +#: ../Doc/library/unittest.rst:1965 msgid "" "Called when the test case *test* fails, but was marked with the :func:" "`expectedFailure` decorator." msgstr "" +"Appelé lorsque le scénario de test *test* échoue, mais qui a été marqué avec " +"le décorateur :func:`expectedFailure`." -#: ../Doc/library/unittest.rst:1960 +#: ../Doc/library/unittest.rst:1968 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`expectedFailures` attribute, where *formatted_err* is a " "formatted traceback derived from *err*." msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." -#: ../Doc/library/unittest.rst:1967 +#: ../Doc/library/unittest.rst:1975 msgid "" "Called when the test case *test* was marked with the :func:`expectedFailure` " "decorator, but succeeded." msgstr "" +"Appelé lorsque le scénario de test *test* réussit, mais que ce scénario a " +"été marqué avec le décorateur :func:`expectedFailure`." -#: ../Doc/library/unittest.rst:1970 +#: ../Doc/library/unittest.rst:1978 msgid "" "The default implementation appends the test to the instance's :attr:" "`unexpectedSuccesses` attribute." msgstr "" +"L'implémentation par défaut ajoute le test à l'attribut :attr:" +"`unexpectedSuccesses` de l'instance." -#: ../Doc/library/unittest.rst:1976 +#: ../Doc/library/unittest.rst:1984 msgid "" "Called when a subtest finishes. *test* is the test case corresponding to " "the test method. *subtest* is a custom :class:`TestCase` instance " "describing the subtest." msgstr "" +"Appelé à la fin d'un sous-test. *test* est le cas de test correspondant à la " +"méthode de test. *subtest* est une instance dérivée de :class:`TestCase` " +"décrivant le sous-test." -#: ../Doc/library/unittest.rst:1980 +#: ../Doc/library/unittest.rst:1988 msgid "" "If *outcome* is :const:`None`, the subtest succeeded. Otherwise, it failed " "with an exception where *outcome* is a tuple of the form returned by :func:" "`sys.exc_info`: ``(type, value, traceback)``." msgstr "" +"Si *outcome* est :const:`None`, le sous-test a réussi. Sinon, il a échoué " +"avec une exception où *outcome* est un triplet du formulaire renvoyé par :" +"func:`sys.exc_info` : ``(type, valeur, traceback)``." -#: ../Doc/library/unittest.rst:1984 +#: ../Doc/library/unittest.rst:1992 msgid "" "The default implementation does nothing when the outcome is a success, and " "records subtest failures as normal failures." msgstr "" +"L'implémentation par défaut ne fait rien lorsque le résultat est un succès, " +"et enregistre les échecs de sous-test comme des échecs normaux." -#: ../Doc/library/unittest.rst:1992 +#: ../Doc/library/unittest.rst:2000 msgid "" "A concrete implementation of :class:`TestResult` used by the :class:" "`TextTestRunner`." msgstr "" +"Une implémentation concrète de :class:`TestResult` utilisé par la classe :" +"class:`TextTestRunner`." -#: ../Doc/library/unittest.rst:1995 +#: ../Doc/library/unittest.rst:2003 msgid "" "This class was previously named ``_TextTestResult``. The old name still " "exists as an alias but is deprecated." msgstr "" +"Cette classe s'appelait auparavant ``_TextTestResult``. L'ancien nom existe " +"toujours en tant qu'alias, mais il est obsolète." -#: ../Doc/library/unittest.rst:2002 +#: ../Doc/library/unittest.rst:2010 msgid "" "Instance of the :class:`TestLoader` class intended to be shared. If no " "customization of the :class:`TestLoader` is needed, this instance can be " "used instead of repeatedly creating new instances." msgstr "" +"Instance de la classe :class:`TestLoader` destinée à être partagée. Si " +"aucune personnalisation de la classe :class:`TestLoader` n'est nécessaire, " +"cette instance peut être utilisée au lieu de créer plusieurs fois de " +"nouvelles instances." -#: ../Doc/library/unittest.rst:2010 +#: ../Doc/library/unittest.rst:2018 msgid "" "A basic test runner implementation that outputs results to a stream. If " "*stream* is ``None``, the default, :data:`sys.stderr` is used as the output " @@ -2547,8 +3343,16 @@ msgid "" "as the interface to construct runners changes when features are added to " "unittest." msgstr "" +"Une implémentation de base d'un lanceur de test qui fournit les résultats " +"dans un flux. Si *stream* est ``None``, par défaut, :data:`sys.stderr` est " +"utilisé comme flux de sortie. Cette classe a quelques paramètres " +"configurables, mais est essentiellement très simple. Les applications " +"graphiques qui exécutent des suites de tests doivent fournir des " +"implémentations alternatives. De telles implémentations doivent accepter " +"``**kwargs`` car l'interface pour construire les lanceurs change lorsque des " +"fonctionnalités sont ajoutées à *unittest*." -#: ../Doc/library/unittest.rst:2017 +#: ../Doc/library/unittest.rst:2025 msgid "" "By default this runner shows :exc:`DeprecationWarning`, :exc:" "`PendingDeprecationWarning`, :exc:`ResourceWarning` and :exc:`ImportWarning` " @@ -2560,100 +3364,148 @@ msgid "" "option:`!-Wd` or :option:`!-Wa` options (see :ref:`Warning control `) and leaving *warnings* to ``None``." msgstr "" - -#: ../Doc/library/unittest.rst:2028 +"Par défaut, ce lanceur affiche :exc:`DeprecationWarning`, :exc:" +"`PendingDeprecationWarning`, :exc:`ResourceWarning` et :exc:`ImportWarning` " +"même si elles sont :ref:`ignorées par défaut `. Les " +"avertissements causés par :ref:`des méthodes *unittest* dépréciées " +"` sont également spéciaux et, lorsque les filtres " +"d'avertissement sont ``default`` ou ``always``, ils n'apparaissent qu'une " +"fois par module, afin d'éviter trop de messages d'alerte. Ce comportement " +"peut être annulé en utilisant les options :option:`!-Wd` ou :option:`!-Wa` " +"de Python (voir :ref:`Gestion des avertissements `) et en " +"laissant *warnings* à ``None``." + +#: ../Doc/library/unittest.rst:2036 msgid "Added the ``warnings`` argument." -msgstr "" +msgstr "Ajout du paramètre ``warnings``." -#: ../Doc/library/unittest.rst:2031 +#: ../Doc/library/unittest.rst:2039 msgid "" "The default stream is set to :data:`sys.stderr` at instantiation time rather " "than import time." msgstr "" +"Le flux par défaut est défini sur :data:`sys.stderr` au moment de " +"l'instanciation plutôt qu'à l'importation." -#: ../Doc/library/unittest.rst:2035 +#: ../Doc/library/unittest.rst:2043 msgid "Added the tb_locals parameter." -msgstr "" +msgstr "Ajout du paramètre *tb_locals*." -#: ../Doc/library/unittest.rst:2040 +#: ../Doc/library/unittest.rst:2048 msgid "" "This method returns the instance of ``TestResult`` used by :meth:`run`. It " "is not intended to be called directly, but can be overridden in subclasses " "to provide a custom ``TestResult``." msgstr "" +"Cette méthode renvoie l'instance de ``TestResult`` utilisée par :meth:`run`. " +"Il n'est pas destiné à être appelé directement, mais peut être surchargée " +"dans des sous-classes pour fournir un ``TestResult`` personnalisé." -#: ../Doc/library/unittest.rst:2044 +#: ../Doc/library/unittest.rst:2052 msgid "" "``_makeResult()`` instantiates the class or callable passed in the " "``TextTestRunner`` constructor as the ``resultclass`` argument. It defaults " "to :class:`TextTestResult` if no ``resultclass`` is provided. The result " "class is instantiated with the following arguments::" msgstr "" +"``_makeResult()`` instancie la classe ou l'appelable passé dans le " +"constructeur ``TextTestRunner`` comme argument ``resultclass``. Il vaut par " +"défaut :class:`TextTestResult` si aucune ``resultclass`` n'est fournie. La " +"classe de résultat est instanciée avec les arguments suivants ::" -#: ../Doc/library/unittest.rst:2053 +#: ../Doc/library/unittest.rst:2061 msgid "" -"This method is the main public interface to the `TextTestRunner`. This " +"This method is the main public interface to the ``TextTestRunner``. This " "method takes a :class:`TestSuite` or :class:`TestCase` instance. A :class:" "`TestResult` is created by calling :func:`_makeResult` and the test(s) are " "run and the results printed to stdout." msgstr "" +"Cette méthode est l'interface publique principale du ``TextTestRunner``. " +"Cette méthode prend une instance :class:`TestSuite` ou :class:`TestCase`. " +"Un :class:`TestResult` est créé en appelant :func:`_makeResult` et le ou les " +"tests sont exécutés et les résultats affichés sur la sortie standard." -#: ../Doc/library/unittest.rst:2064 +#: ../Doc/library/unittest.rst:2072 msgid "" "A command-line program that loads a set of tests from *module* and runs " "them; this is primarily for making test modules conveniently executable. The " "simplest use for this function is to include the following line at the end " "of a test script::" msgstr "" +"Un programme en ligne de commande qui charge un ensemble de tests à partir " +"du *module* et les exécute. L'utilisation principale est de rendre les " +"modules de test facilement exécutables. L'utilisation la plus simple pour " +"cette fonction est d'inclure la ligne suivante à la fin d'un script de " +"test ::" -#: ../Doc/library/unittest.rst:2072 +#: ../Doc/library/unittest.rst:2080 msgid "" "You can run tests with more detailed information by passing in the verbosity " "argument::" msgstr "" +"Vous pouvez exécuter des tests avec des informations plus détaillées en " +"utilisant l'option de verbosité ::" -#: ../Doc/library/unittest.rst:2078 +#: ../Doc/library/unittest.rst:2086 msgid "" "The *defaultTest* argument is either the name of a single test or an " "iterable of test names to run if no test names are specified via *argv*. If " "not specified or ``None`` and no test names are provided via *argv*, all " "tests found in *module* are run." msgstr "" +"L'argument *defaultTest* est soit le nom d'un seul test, soit un itérable de " +"noms de test à exécuter si aucun nom de test n'est spécifié via *argv*. Si " +"aucun nom de test n'est fourni via *argv*, tous les tests trouvés dans " +"*module* sont exécutés." -#: ../Doc/library/unittest.rst:2083 +#: ../Doc/library/unittest.rst:2091 msgid "" "The *argv* argument can be a list of options passed to the program, with the " "first element being the program name. If not specified or ``None``, the " "values of :data:`sys.argv` are used." msgstr "" +"L'argument *argv* peut être une liste d'options passées au programme, le " +"premier élément étant le nom du programme. S'il n'est pas spécifié ou vaut " +"``None``, les valeurs de :data:`sys.argv` sont utilisées." -#: ../Doc/library/unittest.rst:2087 +#: ../Doc/library/unittest.rst:2095 msgid "" "The *testRunner* argument can either be a test runner class or an already " "created instance of it. By default ``main`` calls :func:`sys.exit` with an " "exit code indicating success or failure of the tests run." msgstr "" +"L'argument *testRunner* peut être soit une classe de lanceur de test, soit " +"une instance déjà créée de celle-ci. Par défaut, ``main`` appelle :func:`sys." +"exit` avec un code de sortie indiquant le succès ou l'échec des tests " +"exécutés." -#: ../Doc/library/unittest.rst:2091 +#: ../Doc/library/unittest.rst:2099 msgid "" "The *testLoader* argument has to be a :class:`TestLoader` instance, and " "defaults to :data:`defaultTestLoader`." msgstr "" +"L'argument *testLoader* doit être une instance de :class:`TestLoader`, et " +"par défaut de :data:`defaultTestLoader`." -#: ../Doc/library/unittest.rst:2094 +#: ../Doc/library/unittest.rst:2102 msgid "" "``main`` supports being used from the interactive interpreter by passing in " "the argument ``exit=False``. This displays the result on standard output " "without calling :func:`sys.exit`::" msgstr "" +"Les ``main`` sont utilisés à partir de l'interpréteur interactif en passant " +"dans l'argument ``exit=False``. Ceci affiche le résultat sur la sortie " +"standard sans appeler :func:`sys.exit` ::" -#: ../Doc/library/unittest.rst:2101 +#: ../Doc/library/unittest.rst:2109 msgid "" "The *failfast*, *catchbreak* and *buffer* parameters have the same effect as " "the same-name `command-line options`_." msgstr "" +"Les paramètres *failfast*, *catchbreak* et *buffer* ont le même effet que la " +"même option en ligne de commande `command-line options`_." -#: ../Doc/library/unittest.rst:2104 +#: ../Doc/library/unittest.rst:2112 msgid "" "The *warnings* argument specifies the :ref:`warning filter ` " "that should be used while running the tests. If it's not specified, it will " @@ -2661,57 +3513,77 @@ msgid "" "(see :ref:`Warning control `), otherwise it will be set " "to ``'default'``." msgstr "" +"L'argument *warnings* spécifie l'argument :ref:`filtre d'avertissement " +"` qui doit être utilisé lors de l'exécution des tests. Si " +"elle n'est pas spécifiée, elle reste réglée sur ``None`` si une option :" +"option:`!-W'` est passée à :program:`python` (voir :ref:`Utilisation des " +"avertissements `), sinon elle sera réglée sur " +"``'default'``." -#: ../Doc/library/unittest.rst:2110 +#: ../Doc/library/unittest.rst:2118 msgid "" "Calling ``main`` actually returns an instance of the ``TestProgram`` class. " "This stores the result of the tests run as the ``result`` attribute." msgstr "" +"L'appel de ``main`` renvoie en fait une instance de la classe " +"``TestProgram``. Le résultat des tests effectués est enregistré sous " +"l'attribut ``result``." -#: ../Doc/library/unittest.rst:2113 +#: ../Doc/library/unittest.rst:2121 msgid "The *exit* parameter was added." -msgstr "" +msgstr "Ajout du paramètre *exit*." -#: ../Doc/library/unittest.rst:2116 +#: ../Doc/library/unittest.rst:2124 msgid "" "The *verbosity*, *failfast*, *catchbreak*, *buffer* and *warnings* " "parameters were added." msgstr "" +"Ajout des paramètres *verbosity*, *failfast*, *catchbreak*, *buffer* et " +"*warnings*." -#: ../Doc/library/unittest.rst:2120 +#: ../Doc/library/unittest.rst:2128 msgid "" "The *defaultTest* parameter was changed to also accept an iterable of test " "names." msgstr "" +"Le paramètre *defaultTest* a été modifié pour accepter également un itérable " +"de noms de test." -#: ../Doc/library/unittest.rst:2126 +#: ../Doc/library/unittest.rst:2134 msgid "load_tests Protocol" -msgstr "" +msgstr "Protocole de chargement des tests (*load_tests Protocol*)" -#: ../Doc/library/unittest.rst:2130 +#: ../Doc/library/unittest.rst:2138 msgid "" "Modules or packages can customize how tests are loaded from them during " "normal test runs or test discovery by implementing a function called " "``load_tests``." msgstr "" +"Les modules ou paquets peuvent personnaliser la façon dont les tests sont " +"chargés à partir de ceux-ci pendant l'exécution des tests ou pendant la " +"découverte de tests en implémentant une fonction appelée ``load_tests``." -#: ../Doc/library/unittest.rst:2133 +#: ../Doc/library/unittest.rst:2141 msgid "" "If a test module defines ``load_tests`` it will be called by :meth:" "`TestLoader.loadTestsFromModule` with the following arguments::" msgstr "" +"Si un module de test définit ``load_tests`` il est appelé par :meth:" +"`TestLoader.loadTestsFromModule` avec les arguments suivants ::" -#: ../Doc/library/unittest.rst:2138 +#: ../Doc/library/unittest.rst:2146 msgid "" "where *pattern* is passed straight through from ``loadTestsFromModule``. It " "defaults to ``None``." msgstr "" +"où *pattern* est passé directement depuis ``loadTestsFromModule``. La valeur " +"par défaut est ``None``." -#: ../Doc/library/unittest.rst:2141 +#: ../Doc/library/unittest.rst:2149 msgid "It should return a :class:`TestSuite`." -msgstr "" +msgstr "Elle doit renvoyer une classe :class:`TestSuite`." -#: ../Doc/library/unittest.rst:2143 +#: ../Doc/library/unittest.rst:2151 msgid "" "*loader* is the instance of :class:`TestLoader` doing the loading. " "*standard_tests* are the tests that would be loaded by default from the " @@ -2719,14 +3591,22 @@ msgid "" "from the standard set of tests. The third argument is used when loading " "packages as part of test discovery." msgstr "" +"*loader* est l'instance de :class:`TestLoader` qui effectue le chargement. " +"*standard_tests* sont les tests qui sont chargés par défaut depuis le " +"module. Il est courant que les modules de test veuillent seulement ajouter " +"ou supprimer des tests de l'ensemble standard de tests. Le troisième " +"argument est utilisé lors du chargement de paquets dans le cadre de la " +"découverte de tests." -#: ../Doc/library/unittest.rst:2149 +#: ../Doc/library/unittest.rst:2157 msgid "" "A typical ``load_tests`` function that loads tests from a specific set of :" "class:`TestCase` classes may look like::" msgstr "" +"Une fonction typique de ``load_tests`` qui charge les tests d'un ensemble " +"spécifique de classes :class:`TestCase` peut ressembler à ::" -#: ../Doc/library/unittest.rst:2161 +#: ../Doc/library/unittest.rst:2169 msgid "" "If discovery is started in a directory containing a package, either from the " "command line or by calling :meth:`TestLoader.discover`, then the package :" @@ -2735,60 +3615,88 @@ msgid "" "just another directory. Otherwise, discovery of the package's tests will be " "left up to ``load_tests`` which is called with the following arguments::" msgstr "" +"Si la découverte est lancée dans un répertoire contenant un paquet, soit à " +"partir de la ligne de commande, soit en appelant :meth:`TestLoader." +"discover`, alors le système recherche dans le fichier du paquet :file:" +"`__init__.py` la fonction ``load_tests``. Si cette fonction n'existe pas, la " +"découverte se poursuit dans le paquet comme si c'était juste un autre " +"répertoire. Sinon, la découverte des tests du paquet est effectuée par " +"``load_tests`` qui est appelé avec les arguments suivants ::" -#: ../Doc/library/unittest.rst:2170 +#: ../Doc/library/unittest.rst:2178 msgid "" "This should return a :class:`TestSuite` representing all the tests from the " "package. (``standard_tests`` will only contain tests collected from :file:" "`__init__.py`.)" msgstr "" +"Doit renvoyer une classe :class:`TestSuite` représentant tous les tests du " +"paquet. (``standard_tests`` ne contient que les tests collectés dans le " +"fichier :file:`__init__.py`)." -#: ../Doc/library/unittest.rst:2174 +#: ../Doc/library/unittest.rst:2182 msgid "" "Because the pattern is passed into ``load_tests`` the package is free to " "continue (and potentially modify) test discovery. A 'do nothing' " "``load_tests`` function for a test package would look like::" msgstr "" +"Comme le motif est passé à ``load_tests``, le paquet est libre de continuer " +"(et potentiellement de modifier) la découverte des tests. Une fonction « ne " +"rien faire » ``load_tests`` pour un paquet de test ressemblerait à ::" -#: ../Doc/library/unittest.rst:2185 +#: ../Doc/library/unittest.rst:2193 msgid "" "Discovery no longer checks package names for matching *pattern* due to the " "impossibility of package names matching the default pattern." msgstr "" +"La découverte de test ne vérifie plus que les noms de paquets correspondent " +"à *pattern* en raison de l'impossibilité de trouver des noms de paquets " +"correspondant au motif par défaut." -#: ../Doc/library/unittest.rst:2192 +#: ../Doc/library/unittest.rst:2200 msgid "Class and Module Fixtures" -msgstr "" +msgstr "Classes et modules d'aménagements des tests" -#: ../Doc/library/unittest.rst:2194 +#: ../Doc/library/unittest.rst:2202 msgid "" "Class and module level fixtures are implemented in :class:`TestSuite`. When " "the test suite encounters a test from a new class then :meth:`tearDownClass` " "from the previous class (if there is one) is called, followed by :meth:" "`setUpClass` from the new class." msgstr "" +"Les classes et modules d'aménagements des tests sont implémentés dans :class:" +"`TestSuite`. Lorsque la suite de tests rencontre un test d'une nouvelle " +"classe, alors :meth:`tearDownClass` de la classe précédente (s'il y en a " +"une) est appelé, suivi de :meth:`setUpClass` de la nouvelle classe." -#: ../Doc/library/unittest.rst:2199 +#: ../Doc/library/unittest.rst:2207 msgid "" "Similarly if a test is from a different module from the previous test then " "``tearDownModule`` from the previous module is run, followed by " "``setUpModule`` from the new module." msgstr "" +"De même, si un test provient d'un module différent du test précédent, alors " +"``tearDownModule`` du module précédent est exécuté, suivi par " +"``setUpModule`` du nouveau module." -#: ../Doc/library/unittest.rst:2203 +#: ../Doc/library/unittest.rst:2211 msgid "" "After all the tests have run the final ``tearDownClass`` and " "``tearDownModule`` are run." msgstr "" +"Après que tous les tests ont été exécutés, les ``tearDownClass`` et " +"``tearDownModule`` finaux sont exécutés." -#: ../Doc/library/unittest.rst:2206 +#: ../Doc/library/unittest.rst:2214 msgid "" "Note that shared fixtures do not play well with [potential] features like " "test parallelization and they break test isolation. They should be used with " "care." msgstr "" +"Notez que les aménagements de tests partagés ne fonctionnent pas bien avec " +"de « potentielles » fonctions comme la parallélisation de test et qu'ils " +"brisent l'isolation des tests. Ils doivent être utilisés avec parcimonie." -#: ../Doc/library/unittest.rst:2209 +#: ../Doc/library/unittest.rst:2217 msgid "" "The default ordering of tests created by the unittest test loaders is to " "group all tests from the same modules and classes together. This will lead " @@ -2797,15 +3705,26 @@ msgid "" "modules and classes are adjacent to each other, then these shared fixture " "functions may be called multiple times in a single test run." msgstr "" +"L'ordre par défaut des tests créés par les chargeurs de tests unitaires est " +"de regrouper tous les tests des mêmes modules et classes. Cela à pour " +"conséquence que ``setUpClass`` / ``setUpModule`` (etc) sont appelé " +"exactement une fois par classe et module. Si vous rendez l'ordre aléatoire, " +"de sorte que les tests de différents modules et classes soient adjacents les " +"uns aux autres, alors ces fonctions d'aménagements partagées peuvent être " +"appelées plusieurs fois dans un même test." -#: ../Doc/library/unittest.rst:2216 +#: ../Doc/library/unittest.rst:2224 msgid "" "Shared fixtures are not intended to work with suites with non-standard " "ordering. A ``BaseTestSuite`` still exists for frameworks that don't want to " "support shared fixtures." msgstr "" +"Les aménagements de tests partagés ne sont pas conçus pour fonctionner avec " +"des suites dont la commande n'est pas standard. Une ``BaseTestSuite`` existe " +"toujours pour les cadriciels qui ne veulent pas gérer les aménagements de " +"tests partagés." -#: ../Doc/library/unittest.rst:2220 +#: ../Doc/library/unittest.rst:2228 msgid "" "If there are any exceptions raised during one of the shared fixture " "functions the test is reported as an error. Because there is no " @@ -2814,23 +3733,35 @@ msgid "" "are just using the standard unittest test runner then this detail doesn't " "matter, but if you are a framework author it may be relevant." msgstr "" +"S'il y a des exceptions levées pendant l'une des fonctions d'aménagement de " +"tests partagés, le test est signalé comme étant en erreur. Parce qu'il n'y a " +"pas d'instance de test correspondante, un objet ``_ErrorHolder`` (qui a la " +"même interface qu'une classe :class:`TestCase`) est créé pour représenter " +"l'erreur. Si vous n'utilisez que le lanceur de test unitaire standard, ce " +"détail n'a pas d'importance, mais si vous êtes un auteur de cadriciel de " +"test, il peut être pertinent." -#: ../Doc/library/unittest.rst:2229 +#: ../Doc/library/unittest.rst:2237 msgid "setUpClass and tearDownClass" msgstr "" +"Classes de mise en place (*setUpClass*) et de démantèlement des tests " +"(*tearDownClass*)" -#: ../Doc/library/unittest.rst:2231 +#: ../Doc/library/unittest.rst:2239 msgid "These must be implemented as class methods::" -msgstr "" +msgstr "Elles doivent être implémentées en tant que méthodes de classe ::" -#: ../Doc/library/unittest.rst:2244 +#: ../Doc/library/unittest.rst:2252 msgid "" "If you want the ``setUpClass`` and ``tearDownClass`` on base classes called " "then you must call up to them yourself. The implementations in :class:" "`TestCase` are empty." msgstr "" +"Si vous voulez que les classes de base ``setUpClass`` et ``tearDownClass`` " +"soient appelées, vous devez les appeler vous-même. Les implémentations dans :" +"class:`TestCase` sont vides." -#: ../Doc/library/unittest.rst:2248 +#: ../Doc/library/unittest.rst:2256 msgid "" "If an exception is raised during a ``setUpClass`` then the tests in the " "class are not run and the ``tearDownClass`` is not run. Skipped classes will " @@ -2838,28 +3769,41 @@ msgid "" "`SkipTest` exception then the class will be reported as having been skipped " "instead of as an error." msgstr "" +"Si une exception est levée pendant l'exécution de ``setUpClass`` alors les " +"tests dans la classe ne sont pas exécutés et la classe ``tearDownClass`` " +"n'est pas exécutée. Les classes ignorées n'auront pas d'exécution de " +"``setUpClass`` ou ``tearDownClass``. Si l'exception est une exception :exc:" +"`SkipTest` alors la classe est signalée comme ayant été ignorée au lieu " +"d'être en échec." -#: ../Doc/library/unittest.rst:2256 +#: ../Doc/library/unittest.rst:2264 msgid "setUpModule and tearDownModule" msgstr "" +"Module de mise en place (*setUpModule*) et de démantèlement des tests " +"(*tearDownModule*)" -#: ../Doc/library/unittest.rst:2258 +#: ../Doc/library/unittest.rst:2266 msgid "These should be implemented as functions::" -msgstr "" +msgstr "Elles doivent être implémentées en tant que fonctions ::" -#: ../Doc/library/unittest.rst:2266 +#: ../Doc/library/unittest.rst:2274 msgid "" "If an exception is raised in a ``setUpModule`` then none of the tests in the " "module will be run and the ``tearDownModule`` will not be run. If the " "exception is a :exc:`SkipTest` exception then the module will be reported as " "having been skipped instead of as an error." msgstr "" +"Si une exception est levée pendant l'exécution de la fonction " +"``setUpModule`` alors aucun des tests du module ne sera exécuté et la " +"fonction ``tearDownModule`` ne sera pas exécutée. Si l'exception est une " +"exception :exc:`SkipTest` alors le module est signalé comme ayant été ignoré " +"au lieu d'être en échec." -#: ../Doc/library/unittest.rst:2273 +#: ../Doc/library/unittest.rst:2281 msgid "Signal Handling" -msgstr "" +msgstr "Traitement des signaux" -#: ../Doc/library/unittest.rst:2277 +#: ../Doc/library/unittest.rst:2285 msgid "" "The :option:`-c/--catch ` command-line option to unittest, " "along with the ``catchbreak`` parameter to :func:`unittest.main()`, provide " @@ -2868,8 +3812,15 @@ msgid "" "complete, and the test run will then end and report all the results so far. " "A second control-c will raise a :exc:`KeyboardInterrupt` in the usual way." msgstr "" +"L'option :option:`-c/--catch ` en ligne de commande pour " +"*unittest*, ainsi que le paramètre ``catchbreak`` vers :func:`unittest." +"main()`, permettent une utilisation simplifiée du contrôle-C pendant un " +"test. Avec l'activation de ``catchbreak``, l'utilisation du contrôle-C " +"permet de terminer le test en cours d'exécution, et le test se termine et " +"rapporte tous les résultats obtenus jusqu'à présent. Un deuxième contrôle-C " +"lève une exception classique :exc:`KeyboardInterrupt`." -#: ../Doc/library/unittest.rst:2284 +#: ../Doc/library/unittest.rst:2292 msgid "" "The control-c handling signal handler attempts to remain compatible with " "code or tests that install their own :const:`signal.SIGINT` handler. If the " @@ -2880,44 +3831,83 @@ msgid "" "to it. For individual tests that need ``unittest`` control-c handling " "disabled the :func:`removeHandler` decorator can be used." msgstr "" +"Le gestionnaire du signal *contrôle-C* tente de rester compatible avec le " +"code ou les tests qui installent leur propre gestionnaire :const:`signal." +"SIGINT`. Si le gestionnaire ``unittest`` est appelé mais *n'est pas* le " +"gestionnaire installé :const:`signal.SIGINT`, c'est-à-dire qu'il a été " +"remplacé par le système sous test et délégué, alors il appelle le " +"gestionnaire par défaut. C'est normalement le comportement attendu par un " +"code qui remplace un gestionnaire installé et lui délègue. Pour les tests " +"individuels qui ont besoin que le signal *contrôle-C* \"*unittest*\" soit " +"désactivée, le décorateur :func:`removeHandler` peut être utilisé." -#: ../Doc/library/unittest.rst:2293 +#: ../Doc/library/unittest.rst:2301 msgid "" "There are a few utility functions for framework authors to enable control-c " "handling functionality within test frameworks." msgstr "" +"Il existe quelques fonctions de support pour les auteurs de cadriciel afin " +"d'activer la fonctionnalité de gestion des *contrôle-C* dans les cadriciels " +"de test." -#: ../Doc/library/unittest.rst:2298 +#: ../Doc/library/unittest.rst:2306 msgid "" "Install the control-c handler. When a :const:`signal.SIGINT` is received " "(usually in response to the user pressing control-c) all registered results " "have :meth:`~TestResult.stop` called." msgstr "" +"Installe le gestionnaire *contrôle-c*. Quand un :const:`signal.SIGINT` est " +"reçu (généralement en réponse à l'utilisateur appuyant sur *contrôle-c*) " +"tous les résultats enregistrés vont appeler la méthode :meth:`~TestResult." +"stop`." -#: ../Doc/library/unittest.rst:2305 +#: ../Doc/library/unittest.rst:2313 msgid "" "Register a :class:`TestResult` object for control-c handling. Registering a " "result stores a weak reference to it, so it doesn't prevent the result from " "being garbage collected." msgstr "" +"Enregistre un objet :class:`TestResult` pour la gestion du *contrôle-C*. " +"L'enregistrement d'un résultat stocke une référence faible sur celui-ci, de " +"sorte qu'il n'empêche pas que le résultat soit collecté par le ramasse-" +"miette." -#: ../Doc/library/unittest.rst:2309 +#: ../Doc/library/unittest.rst:2317 msgid "" "Registering a :class:`TestResult` object has no side-effects if control-c " "handling is not enabled, so test frameworks can unconditionally register all " "results they create independently of whether or not handling is enabled." msgstr "" +"L'enregistrement d'un objet :class:`TestResult` n'a pas d'effets de bord si " +"la gestion du *contrôle-c* n'est pas activée, donc les cadriciels de test " +"peuvent enregistrer sans condition tous les résultats qu'ils créent " +"indépendamment du fait que la gestion soit activée ou non." -#: ../Doc/library/unittest.rst:2316 +#: ../Doc/library/unittest.rst:2324 msgid "" "Remove a registered result. Once a result has been removed then :meth:" "`~TestResult.stop` will no longer be called on that result object in " "response to a control-c." msgstr "" +"Supprime un résultat enregistré. Une fois qu'un résultat a été supprimé, :" +"meth:`~TestResult.stop` n'est plus appelé sur cet objet résultat en réponse " +"à un *contrôle-c*." -#: ../Doc/library/unittest.rst:2323 +#: ../Doc/library/unittest.rst:2331 msgid "" "When called without arguments this function removes the control-c handler if " "it has been installed. This function can also be used as a test decorator to " "temporarily remove the handler while the test is being executed::" msgstr "" +"Lorsqu'elle est appelée sans arguments, cette fonction supprime le " +"gestionnaire *contrôle-c* s'il a été installé. Cette fonction peut également " +"être utilisée comme décorateur de test pour supprimer temporairement le " +"gestionnaire pendant l'exécution du test ::" + +#~ msgid "" +#~ "Top level directory of project (defaults to start directory)Répertoire de " +#~ "premier niveau du projet (répertoire racine, c'est-à-dire *start-" +#~ "directory*, par défaut)" +#~ msgstr "" +#~ "Répertoire de premier niveau du projet (répertoire racine, c'est-à-dire " +#~ "*start-directory*, par défaut)" diff --git a/library/urllib.parse.po b/library/urllib.parse.po index e79ee10f5..d9b2f3f33 100644 --- a/library/urllib.parse.po +++ b/library/urllib.parse.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -59,23 +59,23 @@ msgstr "" #: ../Doc/library/urllib.parse.rst:42 msgid "" -"Parse a URL into six components, returning a 6-tuple. This corresponds to " -"the general structure of a URL: ``scheme://netloc/path;parameters?" -"query#fragment``. Each tuple item is a string, possibly empty. The " -"components are not broken up in smaller parts (for example, the network " +"Parse a URL into six components, returning a 6-item :term:`named tuple`. " +"This corresponds to the general structure of a URL: ``scheme://netloc/path;" +"parameters?query#fragment``. Each tuple item is a string, possibly empty. " +"The components are not broken up in smaller parts (for example, the network " "location is a single string), and % escapes are not expanded. The delimiters " "as shown above are not part of the result, except for a leading slash in the " "*path* component, which is retained if present. For example:" msgstr "" -#: ../Doc/library/urllib.parse.rst:62 +#: ../Doc/library/urllib.parse.rst:63 msgid "" "Following the syntax specifications in :rfc:`1808`, urlparse recognizes a " "netloc only if it is properly introduced by '//'. Otherwise the input is " "presumed to be a relative URL and thus to start with a path component." msgstr "" -#: ../Doc/library/urllib.parse.rst:81 +#: ../Doc/library/urllib.parse.rst:82 msgid "" "The *scheme* argument gives the default addressing scheme, to be used only " "if the URL does not specify one. It should be the same type (text or bytes) " @@ -83,7 +83,7 @@ msgid "" "is automatically converted to ``b''`` if appropriate." msgstr "" -#: ../Doc/library/urllib.parse.rst:86 +#: ../Doc/library/urllib.parse.rst:87 msgid "" "If the *allow_fragments* argument is false, fragment identifiers are not " "recognized. Instead, they are parsed as part of the path, parameters or " @@ -91,192 +91,213 @@ msgid "" "return value." msgstr "" -#: ../Doc/library/urllib.parse.rst:91 ../Doc/library/urllib.parse.rst:215 -#: ../Doc/library/urllib.parse.rst:303 +#: ../Doc/library/urllib.parse.rst:92 msgid "" -"The return value is actually an instance of a subclass of :class:`tuple`. " -"This class has the following additional read-only convenience attributes:" +"The return value is a :term:`named tuple`, which means that its items can be " +"accessed by index or as named attributes, which are:" msgstr "" -#: ../Doc/library/urllib.parse.rst:95 ../Doc/library/urllib.parse.rst:219 -#: ../Doc/library/urllib.parse.rst:307 +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 msgid "Attribute" msgstr "Attribut" -#: ../Doc/library/urllib.parse.rst:95 ../Doc/library/urllib.parse.rst:219 -#: ../Doc/library/urllib.parse.rst:307 +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 msgid "Index" -msgstr "" +msgstr "Index" -#: ../Doc/library/urllib.parse.rst:95 ../Doc/library/urllib.parse.rst:219 -#: ../Doc/library/urllib.parse.rst:307 +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 msgid "Value" msgstr "Valeur" -#: ../Doc/library/urllib.parse.rst:95 ../Doc/library/urllib.parse.rst:219 -#: ../Doc/library/urllib.parse.rst:307 +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 msgid "Value if not present" msgstr "" -#: ../Doc/library/urllib.parse.rst:97 ../Doc/library/urllib.parse.rst:221 +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 msgid ":attr:`scheme`" msgstr ":attr:`scheme`" -#: ../Doc/library/urllib.parse.rst:97 ../Doc/library/urllib.parse.rst:221 -#: ../Doc/library/urllib.parse.rst:309 +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 +#: ../Doc/library/urllib.parse.rst:360 msgid "0" msgstr "0" -#: ../Doc/library/urllib.parse.rst:97 ../Doc/library/urllib.parse.rst:221 +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 msgid "URL scheme specifier" msgstr "" -#: ../Doc/library/urllib.parse.rst:97 ../Doc/library/urllib.parse.rst:221 +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 msgid "*scheme* parameter" msgstr "" -#: ../Doc/library/urllib.parse.rst:99 ../Doc/library/urllib.parse.rst:223 +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 msgid ":attr:`netloc`" msgstr ":attr:`netloc`" -#: ../Doc/library/urllib.parse.rst:99 ../Doc/library/urllib.parse.rst:223 -#: ../Doc/library/urllib.parse.rst:311 +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:362 msgid "1" msgstr "1" -#: ../Doc/library/urllib.parse.rst:99 ../Doc/library/urllib.parse.rst:223 +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 msgid "Network location part" msgstr "" -#: ../Doc/library/urllib.parse.rst:99 ../Doc/library/urllib.parse.rst:101 -#: ../Doc/library/urllib.parse.rst:103 ../Doc/library/urllib.parse.rst:106 -#: ../Doc/library/urllib.parse.rst:108 ../Doc/library/urllib.parse.rst:223 -#: ../Doc/library/urllib.parse.rst:225 ../Doc/library/urllib.parse.rst:227 -#: ../Doc/library/urllib.parse.rst:229 ../Doc/library/urllib.parse.rst:309 -#: ../Doc/library/urllib.parse.rst:311 +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:102 +#: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:107 +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:267 ../Doc/library/urllib.parse.rst:269 +#: ../Doc/library/urllib.parse.rst:271 ../Doc/library/urllib.parse.rst:360 +#: ../Doc/library/urllib.parse.rst:362 msgid "empty string" msgstr "" -#: ../Doc/library/urllib.parse.rst:101 ../Doc/library/urllib.parse.rst:225 +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 msgid ":attr:`path`" msgstr ":attr:`path`" -#: ../Doc/library/urllib.parse.rst:101 ../Doc/library/urllib.parse.rst:225 +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 msgid "2" msgstr "2" -#: ../Doc/library/urllib.parse.rst:101 ../Doc/library/urllib.parse.rst:225 +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 msgid "Hierarchical path" msgstr "" -#: ../Doc/library/urllib.parse.rst:103 +#: ../Doc/library/urllib.parse.rst:104 msgid ":attr:`params`" msgstr ":attr:`params`" -#: ../Doc/library/urllib.parse.rst:103 ../Doc/library/urllib.parse.rst:227 +#: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:269 msgid "3" msgstr "3" -#: ../Doc/library/urllib.parse.rst:103 +#: ../Doc/library/urllib.parse.rst:104 msgid "Parameters for last path element" msgstr "" -#: ../Doc/library/urllib.parse.rst:106 ../Doc/library/urllib.parse.rst:227 +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:269 msgid ":attr:`query`" msgstr ":attr:`query`" -#: ../Doc/library/urllib.parse.rst:106 ../Doc/library/urllib.parse.rst:229 +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:271 msgid "4" msgstr "4" -#: ../Doc/library/urllib.parse.rst:106 ../Doc/library/urllib.parse.rst:227 +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:269 msgid "Query component" msgstr "" -#: ../Doc/library/urllib.parse.rst:108 ../Doc/library/urllib.parse.rst:229 -#: ../Doc/library/urllib.parse.rst:311 +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:362 msgid ":attr:`fragment`" msgstr ":attr:`fragment`" -#: ../Doc/library/urllib.parse.rst:108 +#: ../Doc/library/urllib.parse.rst:109 msgid "5" msgstr "5" -#: ../Doc/library/urllib.parse.rst:108 ../Doc/library/urllib.parse.rst:229 -#: ../Doc/library/urllib.parse.rst:311 +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:362 msgid "Fragment identifier" msgstr "" -#: ../Doc/library/urllib.parse.rst:110 ../Doc/library/urllib.parse.rst:231 +#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:273 msgid ":attr:`username`" msgstr ":attr:`username`" -#: ../Doc/library/urllib.parse.rst:110 ../Doc/library/urllib.parse.rst:231 +#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:273 msgid "User name" msgstr "" -#: ../Doc/library/urllib.parse.rst:110 ../Doc/library/urllib.parse.rst:112 -#: ../Doc/library/urllib.parse.rst:114 ../Doc/library/urllib.parse.rst:116 -#: ../Doc/library/urllib.parse.rst:231 ../Doc/library/urllib.parse.rst:233 -#: ../Doc/library/urllib.parse.rst:235 ../Doc/library/urllib.parse.rst:237 +#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:113 +#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:117 +#: ../Doc/library/urllib.parse.rst:273 ../Doc/library/urllib.parse.rst:275 +#: ../Doc/library/urllib.parse.rst:277 ../Doc/library/urllib.parse.rst:279 msgid ":const:`None`" -msgstr "" +msgstr ":const:`None`" -#: ../Doc/library/urllib.parse.rst:112 ../Doc/library/urllib.parse.rst:233 +#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:275 msgid ":attr:`password`" msgstr ":attr:`password`" -#: ../Doc/library/urllib.parse.rst:112 ../Doc/library/urllib.parse.rst:233 +#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:275 msgid "Password" msgstr "" -#: ../Doc/library/urllib.parse.rst:114 ../Doc/library/urllib.parse.rst:235 +#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:277 msgid ":attr:`hostname`" msgstr ":attr:`hostname`" -#: ../Doc/library/urllib.parse.rst:114 ../Doc/library/urllib.parse.rst:235 +#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:277 msgid "Host name (lower case)" msgstr "" -#: ../Doc/library/urllib.parse.rst:116 ../Doc/library/urllib.parse.rst:237 +#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:279 msgid ":attr:`port`" msgstr ":attr:`port`" -#: ../Doc/library/urllib.parse.rst:116 ../Doc/library/urllib.parse.rst:237 +#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:279 msgid "Port number as integer, if present" msgstr "" -#: ../Doc/library/urllib.parse.rst:120 ../Doc/library/urllib.parse.rst:241 +#: ../Doc/library/urllib.parse.rst:121 ../Doc/library/urllib.parse.rst:283 msgid "" "Reading the :attr:`port` attribute will raise a :exc:`ValueError` if an " "invalid port is specified in the URL. See section :ref:`urlparse-result-" "object` for more information on the result object." msgstr "" -#: ../Doc/library/urllib.parse.rst:124 ../Doc/library/urllib.parse.rst:245 +#: ../Doc/library/urllib.parse.rst:125 ../Doc/library/urllib.parse.rst:287 msgid "" "Unmatched square brackets in the :attr:`netloc` attribute will raise a :exc:" "`ValueError`." msgstr "" -#: ../Doc/library/urllib.parse.rst:127 +#: ../Doc/library/urllib.parse.rst:128 ../Doc/library/urllib.parse.rst:290 +msgid "" +"Characters in the :attr:`netloc` attribute that decompose under NFKC " +"normalization (as used by the IDNA encoding) into any of ``/``, ``?``, " +"``#``, ``@``, or ``:`` will raise a :exc:`ValueError`. If the URL is " +"decomposed before parsing, no error will be raised." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:133 +msgid "" +"As is the case with all named tuples, the subclass has a few additional " +"methods and attributes that are particularly useful. One such method is :" +"meth:`_replace`. The :meth:`_replace` method will return a new ParseResult " +"object replacing specified fields with new values." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:151 msgid "Added IPv6 URL parsing capabilities." msgstr "" -#: ../Doc/library/urllib.parse.rst:130 +#: ../Doc/library/urllib.parse.rst:154 msgid "" "The fragment is now parsed for all URL schemes (unless *allow_fragment* is " "false), in accordance with :rfc:`3986`. Previously, a whitelist of schemes " "that support fragments existed." msgstr "" -#: ../Doc/library/urllib.parse.rst:135 ../Doc/library/urllib.parse.rst:248 +#: ../Doc/library/urllib.parse.rst:159 ../Doc/library/urllib.parse.rst:295 msgid "" "Out-of-range port numbers now raise :exc:`ValueError`, instead of returning :" "const:`None`." msgstr "" -#: ../Doc/library/urllib.parse.rst:142 +#: ../Doc/library/urllib.parse.rst:163 ../Doc/library/urllib.parse.rst:299 +msgid "" +"Characters that affect netloc parsing under NFKC normalization will now " +"raise :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:170 msgid "" "Parse a query string given as a string argument (data of type :mimetype:" "`application/x-www-form-urlencoded`). Data are returned as a dictionary. " @@ -284,7 +305,7 @@ msgid "" "lists of values for each name." msgstr "" -#: ../Doc/library/urllib.parse.rst:147 ../Doc/library/urllib.parse.rst:176 +#: ../Doc/library/urllib.parse.rst:175 ../Doc/library/urllib.parse.rst:210 msgid "" "The optional argument *keep_blank_values* is a flag indicating whether blank " "values in percent-encoded queries should be treated as blank strings. A true " @@ -293,44 +314,55 @@ msgid "" "treated as if they were not included." msgstr "" -#: ../Doc/library/urllib.parse.rst:153 ../Doc/library/urllib.parse.rst:182 +#: ../Doc/library/urllib.parse.rst:181 ../Doc/library/urllib.parse.rst:216 msgid "" "The optional argument *strict_parsing* is a flag indicating what to do with " "parsing errors. If false (the default), errors are silently ignored. If " "true, errors raise a :exc:`ValueError` exception." msgstr "" -#: ../Doc/library/urllib.parse.rst:157 ../Doc/library/urllib.parse.rst:186 +#: ../Doc/library/urllib.parse.rst:185 ../Doc/library/urllib.parse.rst:220 msgid "" "The optional *encoding* and *errors* parameters specify how to decode " "percent-encoded sequences into Unicode characters, as accepted by the :meth:" "`bytes.decode` method." msgstr "" -#: ../Doc/library/urllib.parse.rst:161 +#: ../Doc/library/urllib.parse.rst:189 ../Doc/library/urllib.parse.rst:224 +msgid "" +"The optional argument *max_num_fields* is the maximum number of fields to " +"read. If set, then throws a :exc:`ValueError` if there are more than " +"*max_num_fields* fields read." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:193 msgid "" "Use the :func:`urllib.parse.urlencode` function (with the ``doseq`` " "parameter set to ``True``) to convert such dictionaries into query strings." msgstr "" -#: ../Doc/library/urllib.parse.rst:166 ../Doc/library/urllib.parse.rst:193 +#: ../Doc/library/urllib.parse.rst:197 ../Doc/library/urllib.parse.rst:231 msgid "Add *encoding* and *errors* parameters." msgstr "" -#: ../Doc/library/urllib.parse.rst:172 +#: ../Doc/library/urllib.parse.rst:200 ../Doc/library/urllib.parse.rst:234 +msgid "Added *max_num_fields* parameter." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:206 msgid "" "Parse a query string given as a string argument (data of type :mimetype:" "`application/x-www-form-urlencoded`). Data are returned as a list of name, " "value pairs." msgstr "" -#: ../Doc/library/urllib.parse.rst:190 +#: ../Doc/library/urllib.parse.rst:228 msgid "" "Use the :func:`urllib.parse.urlencode` function to convert such lists of " "pairs into query strings." msgstr "" -#: ../Doc/library/urllib.parse.rst:199 +#: ../Doc/library/urllib.parse.rst:239 msgid "" "Construct a URL from a tuple as returned by ``urlparse()``. The *parts* " "argument can be any six-item iterable. This may result in a slightly " @@ -339,18 +371,23 @@ msgid "" "states that these are equivalent)." msgstr "" -#: ../Doc/library/urllib.parse.rst:208 +#: ../Doc/library/urllib.parse.rst:248 msgid "" "This is similar to :func:`urlparse`, but does not split the params from the " "URL. This should generally be used instead of :func:`urlparse` if the more " "recent URL syntax allowing parameters to be applied to each segment of the " "*path* portion of the URL (see :rfc:`2396`) is wanted. A separate function " "is needed to separate the path segments and parameters. This function " -"returns a 5-tuple: (addressing scheme, network location, path, query, " -"fragment identifier)." +"returns a 5-item :term:`named tuple`::" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:257 ../Doc/library/urllib.parse.rst:354 +msgid "" +"The return value is a :term:`named tuple`, its items can be accessed by " +"index or as named attributes:" msgstr "" -#: ../Doc/library/urllib.parse.rst:255 +#: ../Doc/library/urllib.parse.rst:306 msgid "" "Combine the elements of a tuple as returned by :func:`urlsplit` into a " "complete URL as a string. The *parts* argument can be any five-item " @@ -359,7 +396,7 @@ msgid "" "a ? with an empty query; the RFC states that these are equivalent)." msgstr "" -#: ../Doc/library/urllib.parse.rst:264 +#: ../Doc/library/urllib.parse.rst:315 msgid "" "Construct a full (\"absolute\") URL by combining a \"base URL\" (*base*) " "with another URL (*url*). Informally, this uses components of the base URL, " @@ -367,30 +404,30 @@ msgid "" "path, to provide missing components in the relative URL. For example:" msgstr "" -#: ../Doc/library/urllib.parse.rst:273 +#: ../Doc/library/urllib.parse.rst:324 msgid "" "The *allow_fragments* argument has the same meaning and default as for :func:" "`urlparse`." msgstr "" -#: ../Doc/library/urllib.parse.rst:278 +#: ../Doc/library/urllib.parse.rst:329 msgid "" "If *url* is an absolute URL (that is, starting with ``//`` or ``scheme://" "``), the *url*'s host name and/or scheme will be present in the result. For " "example:" msgstr "" -#: ../Doc/library/urllib.parse.rst:287 +#: ../Doc/library/urllib.parse.rst:338 msgid "" "If you do not want that behavior, preprocess the *url* with :func:`urlsplit` " "and :func:`urlunsplit`, removing possible *scheme* and *netloc* parts." msgstr "" -#: ../Doc/library/urllib.parse.rst:293 +#: ../Doc/library/urllib.parse.rst:344 msgid "Behaviour updated to match the semantics defined in :rfc:`3986`." msgstr "" -#: ../Doc/library/urllib.parse.rst:298 +#: ../Doc/library/urllib.parse.rst:349 msgid "" "If *url* contains a fragment identifier, return a modified version of *url* " "with no fragment identifier, and the fragment identifier as a separate " @@ -398,29 +435,29 @@ msgid "" "unmodified and an empty string." msgstr "" -#: ../Doc/library/urllib.parse.rst:309 +#: ../Doc/library/urllib.parse.rst:360 msgid ":attr:`url`" msgstr ":attr:`url`" -#: ../Doc/library/urllib.parse.rst:309 +#: ../Doc/library/urllib.parse.rst:360 msgid "URL with no fragment" msgstr "" -#: ../Doc/library/urllib.parse.rst:314 +#: ../Doc/library/urllib.parse.rst:365 msgid "" "See section :ref:`urlparse-result-object` for more information on the result " "object." msgstr "" -#: ../Doc/library/urllib.parse.rst:317 +#: ../Doc/library/urllib.parse.rst:368 msgid "Result is a structured object rather than a simple 2-tuple." msgstr "" -#: ../Doc/library/urllib.parse.rst:323 +#: ../Doc/library/urllib.parse.rst:374 msgid "Parsing ASCII Encoded Bytes" msgstr "" -#: ../Doc/library/urllib.parse.rst:325 +#: ../Doc/library/urllib.parse.rst:376 msgid "" "The URL parsing functions were originally designed to operate on character " "strings only. In practice, it is useful to be able to manipulate properly " @@ -429,14 +466,14 @@ msgid "" "`bytearray` objects in addition to :class:`str` objects." msgstr "" -#: ../Doc/library/urllib.parse.rst:331 +#: ../Doc/library/urllib.parse.rst:382 msgid "" "If :class:`str` data is passed in, the result will also contain only :class:" "`str` data. If :class:`bytes` or :class:`bytearray` data is passed in, the " "result will contain only :class:`bytes` data." msgstr "" -#: ../Doc/library/urllib.parse.rst:335 +#: ../Doc/library/urllib.parse.rst:386 msgid "" "Attempting to mix :class:`str` data with :class:`bytes` or :class:" "`bytearray` in a single function call will result in a :exc:`TypeError` " @@ -444,7 +481,7 @@ msgid "" "trigger :exc:`UnicodeDecodeError`." msgstr "" -#: ../Doc/library/urllib.parse.rst:340 +#: ../Doc/library/urllib.parse.rst:391 msgid "" "To support easier conversion of result objects between :class:`str` and :" "class:`bytes`, all return values from URL parsing functions provide either " @@ -457,14 +494,14 @@ msgid "" "`str` data (for :meth:`decode` methods)." msgstr "" -#: ../Doc/library/urllib.parse.rst:351 +#: ../Doc/library/urllib.parse.rst:402 msgid "" "Applications that need to operate on potentially improperly quoted URLs that " "may contain non-ASCII data will need to do their own decoding from bytes to " "characters before invoking the URL parsing methods." msgstr "" -#: ../Doc/library/urllib.parse.rst:355 +#: ../Doc/library/urllib.parse.rst:406 msgid "" "The behaviour described in this section applies only to the URL parsing " "functions. The URL quoting functions use their own rules when producing or " @@ -472,15 +509,15 @@ msgid "" "URL quoting functions." msgstr "" -#: ../Doc/library/urllib.parse.rst:360 +#: ../Doc/library/urllib.parse.rst:411 msgid "URL parsing functions now accept ASCII encoded byte sequences" msgstr "" -#: ../Doc/library/urllib.parse.rst:367 +#: ../Doc/library/urllib.parse.rst:418 msgid "Structured Parse Results" msgstr "" -#: ../Doc/library/urllib.parse.rst:369 +#: ../Doc/library/urllib.parse.rst:420 msgid "" "The result objects from the :func:`urlparse`, :func:`urlsplit` and :func:" "`urldefrag` functions are subclasses of the :class:`tuple` type. These " @@ -489,7 +526,7 @@ msgid "" "section, as well as an additional method:" msgstr "" -#: ../Doc/library/urllib.parse.rst:377 +#: ../Doc/library/urllib.parse.rst:428 msgid "" "Return the re-combined version of the original URL as a string. This may " "differ from the original URL in that the scheme may be normalized to lower " @@ -497,72 +534,72 @@ msgid "" "queries, and fragment identifiers will be removed." msgstr "" -#: ../Doc/library/urllib.parse.rst:382 +#: ../Doc/library/urllib.parse.rst:433 msgid "" "For :func:`urldefrag` results, only empty fragment identifiers will be " "removed. For :func:`urlsplit` and :func:`urlparse` results, all noted " "changes will be made to the URL returned by this method." msgstr "" -#: ../Doc/library/urllib.parse.rst:386 +#: ../Doc/library/urllib.parse.rst:437 msgid "" "The result of this method remains unchanged if passed back through the " "original parsing function:" msgstr "" -#: ../Doc/library/urllib.parse.rst:399 +#: ../Doc/library/urllib.parse.rst:450 msgid "" "The following classes provide the implementations of the structured parse " "results when operating on :class:`str` objects:" msgstr "" -#: ../Doc/library/urllib.parse.rst:404 +#: ../Doc/library/urllib.parse.rst:455 msgid "" "Concrete class for :func:`urldefrag` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`DefragResultBytes` instance." msgstr "" -#: ../Doc/library/urllib.parse.rst:412 +#: ../Doc/library/urllib.parse.rst:463 msgid "" "Concrete class for :func:`urlparse` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`ParseResultBytes` instance." msgstr "" -#: ../Doc/library/urllib.parse.rst:418 +#: ../Doc/library/urllib.parse.rst:469 msgid "" "Concrete class for :func:`urlsplit` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`SplitResultBytes` instance." msgstr "" -#: ../Doc/library/urllib.parse.rst:423 +#: ../Doc/library/urllib.parse.rst:474 msgid "" "The following classes provide the implementations of the parse results when " "operating on :class:`bytes` or :class:`bytearray` objects:" msgstr "" -#: ../Doc/library/urllib.parse.rst:428 +#: ../Doc/library/urllib.parse.rst:479 msgid "" "Concrete class for :func:`urldefrag` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`DefragResult` instance." msgstr "" -#: ../Doc/library/urllib.parse.rst:436 +#: ../Doc/library/urllib.parse.rst:487 msgid "" "Concrete class for :func:`urlparse` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`ParseResult` instance." msgstr "" -#: ../Doc/library/urllib.parse.rst:444 +#: ../Doc/library/urllib.parse.rst:495 msgid "" "Concrete class for :func:`urlsplit` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`SplitResult` instance." msgstr "" -#: ../Doc/library/urllib.parse.rst:452 +#: ../Doc/library/urllib.parse.rst:503 msgid "URL Quoting" msgstr "" -#: ../Doc/library/urllib.parse.rst:454 +#: ../Doc/library/urllib.parse.rst:505 msgid "" "The URL quoting functions focus on taking program data and making it safe " "for use as URL components by quoting special characters and appropriately " @@ -571,7 +608,7 @@ msgid "" "isn't already covered by the URL parsing functions above." msgstr "" -#: ../Doc/library/urllib.parse.rst:462 +#: ../Doc/library/urllib.parse.rst:513 msgid "" "Replace special characters in *string* using the ``%xx`` escape. Letters, " "digits, and the characters ``'_.-~'`` are never quoted. By default, this " @@ -580,17 +617,17 @@ msgid "" "quoted --- its default value is ``'/'``." msgstr "" -#: ../Doc/library/urllib.parse.rst:468 ../Doc/library/urllib.parse.rst:538 +#: ../Doc/library/urllib.parse.rst:519 ../Doc/library/urllib.parse.rst:589 msgid "*string* may be either a :class:`str` or a :class:`bytes`." msgstr "" -#: ../Doc/library/urllib.parse.rst:470 +#: ../Doc/library/urllib.parse.rst:521 msgid "" "Moved from :rfc:`2396` to :rfc:`3986` for quoting URL strings. \"~\" is now " "included in the set of reserved characters." msgstr "" -#: ../Doc/library/urllib.parse.rst:474 +#: ../Doc/library/urllib.parse.rst:525 msgid "" "The optional *encoding* and *errors* parameters specify how to deal with non-" "ASCII characters, as accepted by the :meth:`str.encode` method. *encoding* " @@ -600,17 +637,17 @@ msgid "" "`TypeError` is raised." msgstr "" -#: ../Doc/library/urllib.parse.rst:482 +#: ../Doc/library/urllib.parse.rst:533 msgid "" "Note that ``quote(string, safe, encoding, errors)`` is equivalent to " "``quote_from_bytes(string.encode(encoding, errors), safe)``." msgstr "" -#: ../Doc/library/urllib.parse.rst:485 +#: ../Doc/library/urllib.parse.rst:536 msgid "Example: ``quote('/El Niño/')`` yields ``'/El%20Ni%C3%B1o/'``." msgstr "" -#: ../Doc/library/urllib.parse.rst:490 +#: ../Doc/library/urllib.parse.rst:541 msgid "" "Like :func:`quote`, but also replace spaces by plus signs, as required for " "quoting HTML form values when building up a query string to go into a URL. " @@ -618,21 +655,21 @@ msgid "" "*safe*. It also does not have *safe* default to ``'/'``." msgstr "" -#: ../Doc/library/urllib.parse.rst:495 +#: ../Doc/library/urllib.parse.rst:546 msgid "Example: ``quote_plus('/El Niño/')`` yields ``'%2FEl+Ni%C3%B1o%2F'``." msgstr "" -#: ../Doc/library/urllib.parse.rst:500 +#: ../Doc/library/urllib.parse.rst:551 msgid "" "Like :func:`quote`, but accepts a :class:`bytes` object rather than a :class:" "`str`, and does not perform string-to-bytes encoding." msgstr "" -#: ../Doc/library/urllib.parse.rst:503 +#: ../Doc/library/urllib.parse.rst:554 msgid "Example: ``quote_from_bytes(b'a&\\xef')`` yields ``'a%26%EF'``." msgstr "" -#: ../Doc/library/urllib.parse.rst:509 +#: ../Doc/library/urllib.parse.rst:560 msgid "" "Replace ``%xx`` escapes by their single-character equivalent. The optional " "*encoding* and *errors* parameters specify how to decode percent-encoded " @@ -640,47 +677,47 @@ msgid "" "method." msgstr "" -#: ../Doc/library/urllib.parse.rst:514 ../Doc/library/urllib.parse.rst:528 +#: ../Doc/library/urllib.parse.rst:565 ../Doc/library/urllib.parse.rst:579 msgid "*string* must be a :class:`str`." msgstr "" -#: ../Doc/library/urllib.parse.rst:516 +#: ../Doc/library/urllib.parse.rst:567 msgid "" "*encoding* defaults to ``'utf-8'``. *errors* defaults to ``'replace'``, " "meaning invalid sequences are replaced by a placeholder character." msgstr "" -#: ../Doc/library/urllib.parse.rst:520 +#: ../Doc/library/urllib.parse.rst:571 msgid "Example: ``unquote('/El%20Ni%C3%B1o/')`` yields ``'/El Niño/'``." msgstr "" -#: ../Doc/library/urllib.parse.rst:525 +#: ../Doc/library/urllib.parse.rst:576 msgid "" "Like :func:`unquote`, but also replace plus signs by spaces, as required for " "unquoting HTML form values." msgstr "" -#: ../Doc/library/urllib.parse.rst:530 +#: ../Doc/library/urllib.parse.rst:581 msgid "Example: ``unquote_plus('/El+Ni%C3%B1o/')`` yields ``'/El Niño/'``." msgstr "" -#: ../Doc/library/urllib.parse.rst:535 +#: ../Doc/library/urllib.parse.rst:586 msgid "" "Replace ``%xx`` escapes by their single-octet equivalent, and return a :" "class:`bytes` object." msgstr "" -#: ../Doc/library/urllib.parse.rst:540 +#: ../Doc/library/urllib.parse.rst:591 msgid "" "If it is a :class:`str`, unescaped non-ASCII characters in *string* are " "encoded into UTF-8 bytes." msgstr "" -#: ../Doc/library/urllib.parse.rst:543 +#: ../Doc/library/urllib.parse.rst:594 msgid "Example: ``unquote_to_bytes('a%26%EF')`` yields ``b'a&\\xef'``." msgstr "" -#: ../Doc/library/urllib.parse.rst:549 +#: ../Doc/library/urllib.parse.rst:600 msgid "" "Convert a mapping object or a sequence of two-element tuples, which may " "contain :class:`str` or :class:`bytes` objects, to a percent-encoded ASCII " @@ -689,7 +726,7 @@ msgid "" "be encoded to bytes, otherwise it would result in a :exc:`TypeError`." msgstr "" -#: ../Doc/library/urllib.parse.rst:556 +#: ../Doc/library/urllib.parse.rst:607 msgid "" "The resulting string is a series of ``key=value`` pairs separated by ``'&'`` " "characters, where both *key* and *value* are quoted using the *quote_via* " @@ -702,7 +739,7 @@ msgid "" "``quote`` and specify a value for *safe*." msgstr "" -#: ../Doc/library/urllib.parse.rst:566 +#: ../Doc/library/urllib.parse.rst:617 msgid "" "When a sequence of two-element tuples is used as the *query* argument, the " "first element of each tuple is a key and the second is a value. The value " @@ -713,38 +750,38 @@ msgid "" "order of parameter tuples in the sequence." msgstr "" -#: ../Doc/library/urllib.parse.rst:574 +#: ../Doc/library/urllib.parse.rst:625 msgid "" "The *safe*, *encoding*, and *errors* parameters are passed down to " "*quote_via* (the *encoding* and *errors* parameters are only passed when a " "query element is a :class:`str`)." msgstr "" -#: ../Doc/library/urllib.parse.rst:578 +#: ../Doc/library/urllib.parse.rst:629 msgid "" "To reverse this encoding process, :func:`parse_qs` and :func:`parse_qsl` are " "provided in this module to parse query strings into Python data structures." msgstr "" -#: ../Doc/library/urllib.parse.rst:581 +#: ../Doc/library/urllib.parse.rst:632 msgid "" "Refer to :ref:`urllib examples ` to find out how urlencode " "method can be used for generating query string for a URL or data for POST." msgstr "" -#: ../Doc/library/urllib.parse.rst:584 +#: ../Doc/library/urllib.parse.rst:635 msgid "Query parameter supports bytes and string objects." msgstr "" -#: ../Doc/library/urllib.parse.rst:587 +#: ../Doc/library/urllib.parse.rst:638 msgid "*quote_via* parameter." msgstr "" -#: ../Doc/library/urllib.parse.rst:597 +#: ../Doc/library/urllib.parse.rst:648 msgid ":rfc:`3986` - Uniform Resource Identifiers" msgstr "" -#: ../Doc/library/urllib.parse.rst:594 +#: ../Doc/library/urllib.parse.rst:645 msgid "" "This is the current standard (STD66). Any changes to urllib.parse module " "should conform to this. Certain deviations could be observed, which are " @@ -752,47 +789,47 @@ msgid "" "requirements as commonly observed in major browsers." msgstr "" -#: ../Doc/library/urllib.parse.rst:600 +#: ../Doc/library/urllib.parse.rst:651 msgid ":rfc:`2732` - Format for Literal IPv6 Addresses in URL's." msgstr "" -#: ../Doc/library/urllib.parse.rst:600 +#: ../Doc/library/urllib.parse.rst:651 msgid "This specifies the parsing requirements of IPv6 URLs." msgstr "" -#: ../Doc/library/urllib.parse.rst:604 +#: ../Doc/library/urllib.parse.rst:655 msgid ":rfc:`2396` - Uniform Resource Identifiers (URI): Generic Syntax" msgstr "" -#: ../Doc/library/urllib.parse.rst:603 +#: ../Doc/library/urllib.parse.rst:654 msgid "" "Document describing the generic syntactic requirements for both Uniform " "Resource Names (URNs) and Uniform Resource Locators (URLs)." msgstr "" -#: ../Doc/library/urllib.parse.rst:607 +#: ../Doc/library/urllib.parse.rst:658 msgid ":rfc:`2368` - The mailto URL scheme." msgstr "" -#: ../Doc/library/urllib.parse.rst:607 +#: ../Doc/library/urllib.parse.rst:658 msgid "Parsing requirements for mailto URL schemes." msgstr "" -#: ../Doc/library/urllib.parse.rst:612 +#: ../Doc/library/urllib.parse.rst:663 msgid ":rfc:`1808` - Relative Uniform Resource Locators" msgstr "" -#: ../Doc/library/urllib.parse.rst:610 +#: ../Doc/library/urllib.parse.rst:661 msgid "" "This Request For Comments includes the rules for joining an absolute and a " "relative URL, including a fair number of \"Abnormal Examples\" which govern " "the treatment of border cases." msgstr "" -#: ../Doc/library/urllib.parse.rst:614 +#: ../Doc/library/urllib.parse.rst:665 msgid ":rfc:`1738` - Uniform Resource Locators (URL)" msgstr "" -#: ../Doc/library/urllib.parse.rst:615 +#: ../Doc/library/urllib.parse.rst:666 msgid "This specifies the formal syntax and semantics of absolute URLs." msgstr "" diff --git a/library/urllib.po b/library/urllib.po index cbdeda15e..1a0a19631 100644 --- a/library/urllib.po +++ b/library/urllib.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/urllib.rst:2 msgid ":mod:`urllib` --- URL handling modules" -msgstr ":mod:`urllib` --- Modules de gestion des URLs" +msgstr ":mod:`urllib` — Modules de gestion des URLs" #: ../Doc/library/urllib.rst:6 msgid "**Source code:** :source:`Lib/urllib/`" diff --git a/library/urllib.request.po b/library/urllib.request.po index a34fbbdd1..fa1889714 100644 --- a/library/urllib.request.po +++ b/library/urllib.request.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -402,11 +402,11 @@ msgstr "" msgid "" "Cause requests to go through a proxy. If *proxies* is given, it must be a " "dictionary mapping protocol names to URLs of proxies. The default is to read " -"the list of proxies from the environment variables :envvar:" -"`_proxy`. If no proxy environment variables are set, then in a " -"Windows environment proxy settings are obtained from the registry's Internet " -"Settings section, and in a Mac OS X environment proxy information is " -"retrieved from the OS X System Configuration Framework." +"the list of proxies from the environment variables ``_proxy``. If " +"no proxy environment variables are set, then in a Windows environment proxy " +"settings are obtained from the registry's Internet Settings section, and in " +"a Mac OS X environment proxy information is retrieved from the OS X System " +"Configuration Framework." msgstr "" #: ../Doc/library/urllib.request.rst:305 @@ -546,7 +546,7 @@ msgstr "" msgid "A catch-all class to handle unknown URLs." msgstr "" -#: ../Doc/library/urllib.request.rst:455 ../Doc/library/urllib.request.rst:1130 +#: ../Doc/library/urllib.request.rst:455 ../Doc/library/urllib.request.rst:1150 msgid "Process HTTP error responses." msgstr "" @@ -709,40 +709,60 @@ msgstr "" msgid "" "*handler* should be an instance of :class:`BaseHandler`. The following " "methods are searched, and added to the possible chains (note that HTTP " -"errors are a special case)." +"errors are a special case). Note that, in the following, *protocol* should " +"be replaced with the actual protocol to handle, for example :meth:" +"`http_response` would be the HTTP protocol response handler. Also *type* " +"should be replaced with the actual HTTP code, for example :meth:" +"`http_error_404` would handle HTTP 404 errors." msgstr "" -#: ../Doc/library/urllib.request.rst:613 +#: ../Doc/library/urllib.request.rst:617 msgid "" -":meth:`protocol_open` --- signal that the handler knows how to open " +":meth:`_open` --- signal that the handler knows how to open " "*protocol* URLs." msgstr "" -#: ../Doc/library/urllib.request.rst:616 +#: ../Doc/library/urllib.request.rst:620 +msgid "See |protocol_open|_ for more information." +msgstr "" + +#: ../Doc/library/urllib.request.rst:622 msgid "" -":meth:`http_error_type` --- signal that the handler knows how to handle HTTP " -"errors with HTTP error code *type*." +":meth:`http_error_\\` --- signal that the handler knows how to " +"handle HTTP errors with HTTP error code *type*." +msgstr "" + +#: ../Doc/library/urllib.request.rst:625 +msgid "See |http_error_nnn|_ for more information." msgstr "" -#: ../Doc/library/urllib.request.rst:619 +#: ../Doc/library/urllib.request.rst:627 msgid "" -":meth:`protocol_error` --- signal that the handler knows how to handle " +":meth:`_error` --- signal that the handler knows how to handle " "errors from (non-\\ ``http``) *protocol*." msgstr "" -#: ../Doc/library/urllib.request.rst:622 +#: ../Doc/library/urllib.request.rst:630 msgid "" -":meth:`protocol_request` --- signal that the handler knows how to pre-" +":meth:`_request` --- signal that the handler knows how to pre-" "process *protocol* requests." msgstr "" -#: ../Doc/library/urllib.request.rst:625 +#: ../Doc/library/urllib.request.rst:633 +msgid "See |protocol_request|_ for more information." +msgstr "" + +#: ../Doc/library/urllib.request.rst:635 msgid "" -":meth:`protocol_response` --- signal that the handler knows how to post-" +":meth:`_response` --- signal that the handler knows how to post-" "process *protocol* responses." msgstr "" -#: ../Doc/library/urllib.request.rst:631 +#: ../Doc/library/urllib.request.rst:638 +msgid "See |protocol_response|_ for more information." +msgstr "" + +#: ../Doc/library/urllib.request.rst:647 msgid "" "Open the given *url* (which can be a request object or a string), optionally " "passing the given *data*. Arguments, return values and exceptions raised are " @@ -754,111 +774,111 @@ msgid "" "HTTP, HTTPS and FTP connections)." msgstr "" -#: ../Doc/library/urllib.request.rst:643 +#: ../Doc/library/urllib.request.rst:659 msgid "" "Handle an error of the given protocol. This will call the registered error " "handlers for the given protocol with the given arguments (which are protocol " "specific). The HTTP protocol is a special case which uses the HTTP response " "code to determine the specific error handler; refer to the :meth:`http_error_" -"\\*` methods of the handler classes." +"\\` methods of the handler classes." msgstr "" -#: ../Doc/library/urllib.request.rst:649 +#: ../Doc/library/urllib.request.rst:665 msgid "" "Return values and exceptions raised are the same as those of :func:`urlopen`." msgstr "" -#: ../Doc/library/urllib.request.rst:651 +#: ../Doc/library/urllib.request.rst:667 msgid "OpenerDirector objects open URLs in three stages:" msgstr "" -#: ../Doc/library/urllib.request.rst:653 +#: ../Doc/library/urllib.request.rst:669 msgid "" "The order in which these methods are called within each stage is determined " "by sorting the handler instances." msgstr "" -#: ../Doc/library/urllib.request.rst:656 +#: ../Doc/library/urllib.request.rst:672 msgid "" -"Every handler with a method named like :meth:`protocol_request` has that " +"Every handler with a method named like :meth:`_request` has that " "method called to pre-process the request." msgstr "" -#: ../Doc/library/urllib.request.rst:659 +#: ../Doc/library/urllib.request.rst:675 msgid "" -"Handlers with a method named like :meth:`protocol_open` are called to handle " -"the request. This stage ends when a handler either returns a non-\\ :const:" -"`None` value (ie. a response), or raises an exception (usually :exc:`~urllib." -"error.URLError`). Exceptions are allowed to propagate." +"Handlers with a method named like :meth:`_open` are called to " +"handle the request. This stage ends when a handler either returns a non-\\ :" +"const:`None` value (ie. a response), or raises an exception (usually :exc:" +"`~urllib.error.URLError`). Exceptions are allowed to propagate." msgstr "" -#: ../Doc/library/urllib.request.rst:664 +#: ../Doc/library/urllib.request.rst:680 msgid "" "In fact, the above algorithm is first tried for methods named :meth:" "`default_open`. If all such methods return :const:`None`, the algorithm is " -"repeated for methods named like :meth:`protocol_open`. If all such methods " -"return :const:`None`, the algorithm is repeated for methods named :meth:" -"`unknown_open`." +"repeated for methods named like :meth:`_open`. If all such " +"methods return :const:`None`, the algorithm is repeated for methods named :" +"meth:`unknown_open`." msgstr "" -#: ../Doc/library/urllib.request.rst:670 +#: ../Doc/library/urllib.request.rst:686 msgid "" "Note that the implementation of these methods may involve calls of the " "parent :class:`OpenerDirector` instance's :meth:`~OpenerDirector.open` and :" "meth:`~OpenerDirector.error` methods." msgstr "" -#: ../Doc/library/urllib.request.rst:674 +#: ../Doc/library/urllib.request.rst:690 msgid "" -"Every handler with a method named like :meth:`protocol_response` has that " +"Every handler with a method named like :meth:`_response` has that " "method called to post-process the response." msgstr "" -#: ../Doc/library/urllib.request.rst:681 +#: ../Doc/library/urllib.request.rst:697 msgid "BaseHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:683 +#: ../Doc/library/urllib.request.rst:699 msgid "" ":class:`BaseHandler` objects provide a couple of methods that are directly " "useful, and others that are meant to be used by derived classes. These are " "intended for direct use:" msgstr "" -#: ../Doc/library/urllib.request.rst:690 +#: ../Doc/library/urllib.request.rst:706 msgid "Add a director as parent." msgstr "" -#: ../Doc/library/urllib.request.rst:695 +#: ../Doc/library/urllib.request.rst:711 msgid "Remove any parents." msgstr "" -#: ../Doc/library/urllib.request.rst:697 +#: ../Doc/library/urllib.request.rst:713 msgid "" "The following attribute and methods should only be used by classes derived " "from :class:`BaseHandler`." msgstr "" -#: ../Doc/library/urllib.request.rst:702 +#: ../Doc/library/urllib.request.rst:718 msgid "" "The convention has been adopted that subclasses defining :meth:" -"`protocol_request` or :meth:`protocol_response` methods are named :class:`" -"\\*Processor`; all others are named :class:`\\*Handler`." +"`_request` or :meth:`_response` methods are named :class:" +"`\\*Processor`; all others are named :class:`\\*Handler`." msgstr "" -#: ../Doc/library/urllib.request.rst:709 +#: ../Doc/library/urllib.request.rst:725 msgid "" "A valid :class:`OpenerDirector`, which can be used to open using a different " "protocol, or handle errors." msgstr "" -#: ../Doc/library/urllib.request.rst:715 +#: ../Doc/library/urllib.request.rst:731 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to catch all URLs." msgstr "" -#: ../Doc/library/urllib.request.rst:718 +#: ../Doc/library/urllib.request.rst:734 msgid "" "This method, if implemented, will be called by the parent :class:" "`OpenerDirector`. It should return a file-like object as described in the " @@ -868,38 +888,38 @@ msgid "" "`URLError`)." msgstr "" -#: ../Doc/library/urllib.request.rst:725 +#: ../Doc/library/urllib.request.rst:741 msgid "This method will be called before any protocol-specific open method." msgstr "" -#: ../Doc/library/urllib.request.rst:731 +#: ../Doc/library/urllib.request.rst:748 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to handle URLs with the given protocol." msgstr "" -#: ../Doc/library/urllib.request.rst:734 +#: ../Doc/library/urllib.request.rst:751 msgid "" "This method, if defined, will be called by the parent :class:" "`OpenerDirector`. Return values should be the same as for :meth:" "`default_open`." msgstr "" -#: ../Doc/library/urllib.request.rst:740 +#: ../Doc/library/urllib.request.rst:757 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to catch all URLs with no specific registered handler " "to open it." msgstr "" -#: ../Doc/library/urllib.request.rst:744 +#: ../Doc/library/urllib.request.rst:761 msgid "" "This method, if implemented, will be called by the :attr:`parent` :class:" "`OpenerDirector`. Return values should be the same as for :meth:" "`default_open`." msgstr "" -#: ../Doc/library/urllib.request.rst:751 +#: ../Doc/library/urllib.request.rst:768 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "override it if they intend to provide a catch-all for otherwise unhandled " @@ -908,7 +928,7 @@ msgid "" "other circumstances." msgstr "" -#: ../Doc/library/urllib.request.rst:756 +#: ../Doc/library/urllib.request.rst:773 msgid "" "*req* will be a :class:`Request` object, *fp* will be a file-like object " "with the HTTP error body, *code* will be the three-digit code of the error, " @@ -916,49 +936,49 @@ msgid "" "mapping object with the headers of the error." msgstr "" -#: ../Doc/library/urllib.request.rst:761 +#: ../Doc/library/urllib.request.rst:778 msgid "" "Return values and exceptions raised should be the same as those of :func:" "`urlopen`." msgstr "" -#: ../Doc/library/urllib.request.rst:767 +#: ../Doc/library/urllib.request.rst:785 msgid "" "*nnn* should be a three-digit HTTP error code. This method is also not " "defined in :class:`BaseHandler`, but will be called, if it exists, on an " "instance of a subclass, when an HTTP error with code *nnn* occurs." msgstr "" -#: ../Doc/library/urllib.request.rst:771 +#: ../Doc/library/urllib.request.rst:789 msgid "Subclasses should override this method to handle specific HTTP errors." msgstr "" -#: ../Doc/library/urllib.request.rst:773 +#: ../Doc/library/urllib.request.rst:791 msgid "" "Arguments, return values and exceptions raised should be the same as for :" "meth:`http_error_default`." msgstr "" -#: ../Doc/library/urllib.request.rst:780 +#: ../Doc/library/urllib.request.rst:799 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to pre-process requests of the given protocol." msgstr "" -#: ../Doc/library/urllib.request.rst:783 +#: ../Doc/library/urllib.request.rst:802 msgid "" "This method, if defined, will be called by the parent :class:" "`OpenerDirector`. *req* will be a :class:`Request` object. The return value " "should be a :class:`Request` object." msgstr "" -#: ../Doc/library/urllib.request.rst:791 +#: ../Doc/library/urllib.request.rst:811 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to post-process responses of the given protocol." msgstr "" -#: ../Doc/library/urllib.request.rst:794 +#: ../Doc/library/urllib.request.rst:814 msgid "" "This method, if defined, will be called by the parent :class:" "`OpenerDirector`. *req* will be a :class:`Request` object. *response* will " @@ -967,25 +987,25 @@ msgid "" "return value of :func:`urlopen`." msgstr "" -#: ../Doc/library/urllib.request.rst:804 +#: ../Doc/library/urllib.request.rst:824 msgid "HTTPRedirectHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:808 +#: ../Doc/library/urllib.request.rst:828 msgid "" "Some HTTP redirections require action from this module's client code. If " "this is the case, :exc:`~urllib.error.HTTPError` is raised. See :rfc:`2616` " "for details of the precise meanings of the various redirection codes." msgstr "" -#: ../Doc/library/urllib.request.rst:812 +#: ../Doc/library/urllib.request.rst:832 msgid "" "An :class:`HTTPError` exception raised as a security consideration if the " "HTTPRedirectHandler is presented with a redirected URL which is not an HTTP, " "HTTPS or FTP URL." msgstr "" -#: ../Doc/library/urllib.request.rst:819 +#: ../Doc/library/urllib.request.rst:839 msgid "" "Return a :class:`Request` or ``None`` in response to a redirect. This is " "called by the default implementations of the :meth:`http_error_30\\*` " @@ -996,7 +1016,7 @@ msgid "" "URL, or return ``None`` if you can't but another handler might." msgstr "" -#: ../Doc/library/urllib.request.rst:829 +#: ../Doc/library/urllib.request.rst:849 msgid "" "The default implementation of this method does not strictly follow :rfc:" "`2616`, which says that 301 and 302 responses to ``POST`` requests must not " @@ -1005,65 +1025,65 @@ msgid "" "POST to a ``GET``, and the default implementation reproduces this behavior." msgstr "" -#: ../Doc/library/urllib.request.rst:838 +#: ../Doc/library/urllib.request.rst:858 msgid "" "Redirect to the ``Location:`` or ``URI:`` URL. This method is called by the " "parent :class:`OpenerDirector` when getting an HTTP 'moved permanently' " "response." msgstr "" -#: ../Doc/library/urllib.request.rst:844 +#: ../Doc/library/urllib.request.rst:864 msgid "" "The same as :meth:`http_error_301`, but called for the 'found' response." msgstr "" -#: ../Doc/library/urllib.request.rst:849 +#: ../Doc/library/urllib.request.rst:869 msgid "" "The same as :meth:`http_error_301`, but called for the 'see other' response." msgstr "" -#: ../Doc/library/urllib.request.rst:854 +#: ../Doc/library/urllib.request.rst:874 msgid "" "The same as :meth:`http_error_301`, but called for the 'temporary redirect' " "response." msgstr "" -#: ../Doc/library/urllib.request.rst:861 +#: ../Doc/library/urllib.request.rst:881 msgid "HTTPCookieProcessor Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:863 +#: ../Doc/library/urllib.request.rst:883 msgid ":class:`HTTPCookieProcessor` instances have one attribute:" msgstr "" -#: ../Doc/library/urllib.request.rst:867 +#: ../Doc/library/urllib.request.rst:887 msgid "The :class:`http.cookiejar.CookieJar` in which cookies are stored." msgstr "" -#: ../Doc/library/urllib.request.rst:873 +#: ../Doc/library/urllib.request.rst:893 msgid "ProxyHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:879 +#: ../Doc/library/urllib.request.rst:899 msgid "" -"The :class:`ProxyHandler` will have a method :meth:`protocol_open` for every " -"*protocol* which has a proxy in the *proxies* dictionary given in the " +"The :class:`ProxyHandler` will have a method :meth:`_open` for " +"every *protocol* which has a proxy in the *proxies* dictionary given in the " "constructor. The method will modify requests to go through the proxy, by " "calling ``request.set_proxy()``, and call the next handler in the chain to " "actually execute the protocol." msgstr "" -#: ../Doc/library/urllib.request.rst:889 +#: ../Doc/library/urllib.request.rst:909 msgid "HTTPPasswordMgr Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:891 +#: ../Doc/library/urllib.request.rst:911 msgid "" "These methods are available on :class:`HTTPPasswordMgr` and :class:" "`HTTPPasswordMgrWithDefaultRealm` objects." msgstr "" -#: ../Doc/library/urllib.request.rst:897 +#: ../Doc/library/urllib.request.rst:917 msgid "" "*uri* can be either a single URI, or a sequence of URIs. *realm*, *user* and " "*passwd* must be strings. This causes ``(user, passwd)`` to be used as " @@ -1071,30 +1091,30 @@ msgid "" "of the given URIs is given." msgstr "" -#: ../Doc/library/urllib.request.rst:905 +#: ../Doc/library/urllib.request.rst:925 msgid "" "Get user/password for given realm and URI, if any. This method will return " "``(None, None)`` if there is no matching user/password." msgstr "" -#: ../Doc/library/urllib.request.rst:908 +#: ../Doc/library/urllib.request.rst:928 msgid "" "For :class:`HTTPPasswordMgrWithDefaultRealm` objects, the realm ``None`` " "will be searched if the given *realm* has no matching user/password." msgstr "" -#: ../Doc/library/urllib.request.rst:915 +#: ../Doc/library/urllib.request.rst:935 msgid "HTTPPasswordMgrWithPriorAuth Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:917 +#: ../Doc/library/urllib.request.rst:937 msgid "" "This password manager extends :class:`HTTPPasswordMgrWithDefaultRealm` to " "support tracking URIs for which authentication credentials should always be " "sent." msgstr "" -#: ../Doc/library/urllib.request.rst:924 +#: ../Doc/library/urllib.request.rst:944 msgid "" "*realm*, *uri*, *user*, *passwd* are as for :meth:`HTTPPasswordMgr." "add_password`. *is_authenticated* sets the initial value of the " @@ -1102,25 +1122,25 @@ msgid "" "*is_authenticated* is specified as ``True``, *realm* is ignored." msgstr "" -#: ../Doc/library/urllib.request.rst:932 +#: ../Doc/library/urllib.request.rst:952 msgid "Same as for :class:`HTTPPasswordMgrWithDefaultRealm` objects" msgstr "" -#: ../Doc/library/urllib.request.rst:938 +#: ../Doc/library/urllib.request.rst:958 msgid "" "Update the ``is_authenticated`` flag for the given *uri* or list of URIs." msgstr "" -#: ../Doc/library/urllib.request.rst:944 +#: ../Doc/library/urllib.request.rst:964 msgid "" "Returns the current state of the ``is_authenticated`` flag for the given URI." msgstr "" -#: ../Doc/library/urllib.request.rst:951 +#: ../Doc/library/urllib.request.rst:971 msgid "AbstractBasicAuthHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:956 +#: ../Doc/library/urllib.request.rst:976 msgid "" "Handle an authentication request by getting a user/password pair, and re-" "trying the request. *authreq* should be the name of the header where the " @@ -1129,7 +1149,7 @@ msgid "" "`Request` object, and *headers* should be the error headers." msgstr "" -#: ../Doc/library/urllib.request.rst:962 +#: ../Doc/library/urllib.request.rst:982 msgid "" "*host* is either an authority (e.g. ``\"python.org\"``) or a URL containing " "an authority component (e.g. ``\"http://python.org/\"``). In either case, " @@ -1137,25 +1157,25 @@ msgid "" "and ``\"python.org:80\"`` are fine, ``\"joe:password@python.org\"`` is not)." msgstr "" -#: ../Doc/library/urllib.request.rst:971 +#: ../Doc/library/urllib.request.rst:991 msgid "HTTPBasicAuthHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:976 ../Doc/library/urllib.request.rst:987 -#: ../Doc/library/urllib.request.rst:1012 -#: ../Doc/library/urllib.request.rst:1023 +#: ../Doc/library/urllib.request.rst:996 ../Doc/library/urllib.request.rst:1007 +#: ../Doc/library/urllib.request.rst:1032 +#: ../Doc/library/urllib.request.rst:1043 msgid "Retry the request with authentication information, if available." msgstr "" -#: ../Doc/library/urllib.request.rst:982 +#: ../Doc/library/urllib.request.rst:1002 msgid "ProxyBasicAuthHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:993 +#: ../Doc/library/urllib.request.rst:1013 msgid "AbstractDigestAuthHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:998 +#: ../Doc/library/urllib.request.rst:1018 msgid "" "*authreq* should be the name of the header where the information about the " "realm is included in the request, *host* should be the host to authenticate " @@ -1163,55 +1183,55 @@ msgid "" "should be the error headers." msgstr "" -#: ../Doc/library/urllib.request.rst:1007 +#: ../Doc/library/urllib.request.rst:1027 msgid "HTTPDigestAuthHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1018 +#: ../Doc/library/urllib.request.rst:1038 msgid "ProxyDigestAuthHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1029 +#: ../Doc/library/urllib.request.rst:1049 msgid "HTTPHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1034 +#: ../Doc/library/urllib.request.rst:1054 msgid "" "Send an HTTP request, which can be either GET or POST, depending on ``req." "has_data()``." msgstr "" -#: ../Doc/library/urllib.request.rst:1041 +#: ../Doc/library/urllib.request.rst:1061 msgid "HTTPSHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1046 +#: ../Doc/library/urllib.request.rst:1066 msgid "" "Send an HTTPS request, which can be either GET or POST, depending on ``req." "has_data()``." msgstr "" -#: ../Doc/library/urllib.request.rst:1053 +#: ../Doc/library/urllib.request.rst:1073 msgid "FileHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1058 +#: ../Doc/library/urllib.request.rst:1078 msgid "" "Open the file locally, if there is no host name, or the host name is " "``'localhost'``." msgstr "" -#: ../Doc/library/urllib.request.rst:1061 +#: ../Doc/library/urllib.request.rst:1081 msgid "" "This method is applicable only for local hostnames. When a remote hostname " "is given, an :exc:`~urllib.error.URLError` is raised." msgstr "" -#: ../Doc/library/urllib.request.rst:1069 +#: ../Doc/library/urllib.request.rst:1089 msgid "DataHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1073 +#: ../Doc/library/urllib.request.rst:1093 msgid "" "Read a data URL. This kind of URL contains the content encoded in the URL " "itself. The data URL syntax is specified in :rfc:`2397`. This implementation " @@ -1221,83 +1241,83 @@ msgid "" "implementation will raise an :exc:`ValueError` in that case." msgstr "" -#: ../Doc/library/urllib.request.rst:1084 +#: ../Doc/library/urllib.request.rst:1104 msgid "FTPHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1089 +#: ../Doc/library/urllib.request.rst:1109 msgid "" "Open the FTP file indicated by *req*. The login is always done with empty " "username and password." msgstr "" -#: ../Doc/library/urllib.request.rst:1096 +#: ../Doc/library/urllib.request.rst:1116 msgid "CacheFTPHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1098 +#: ../Doc/library/urllib.request.rst:1118 msgid "" ":class:`CacheFTPHandler` objects are :class:`FTPHandler` objects with the " "following additional methods:" msgstr "" -#: ../Doc/library/urllib.request.rst:1104 +#: ../Doc/library/urllib.request.rst:1124 msgid "Set timeout of connections to *t* seconds." msgstr "" -#: ../Doc/library/urllib.request.rst:1109 +#: ../Doc/library/urllib.request.rst:1129 msgid "Set maximum number of cached connections to *m*." msgstr "" -#: ../Doc/library/urllib.request.rst:1115 +#: ../Doc/library/urllib.request.rst:1135 msgid "UnknownHandler Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1120 +#: ../Doc/library/urllib.request.rst:1140 msgid "Raise a :exc:`~urllib.error.URLError` exception." msgstr "" -#: ../Doc/library/urllib.request.rst:1126 +#: ../Doc/library/urllib.request.rst:1146 msgid "HTTPErrorProcessor Objects" msgstr "" -#: ../Doc/library/urllib.request.rst:1132 +#: ../Doc/library/urllib.request.rst:1152 msgid "For 200 error codes, the response object is returned immediately." msgstr "" -#: ../Doc/library/urllib.request.rst:1134 +#: ../Doc/library/urllib.request.rst:1154 msgid "" "For non-200 error codes, this simply passes the job on to the :meth:" -"`protocol_error_code` handler methods, via :meth:`OpenerDirector.error`. " +"`http_error_\\` handler methods, via :meth:`OpenerDirector.error`. " "Eventually, :class:`HTTPDefaultErrorHandler` will raise an :exc:`~urllib." "error.HTTPError` if no other handler handles the error." msgstr "" -#: ../Doc/library/urllib.request.rst:1142 +#: ../Doc/library/urllib.request.rst:1162 msgid "Process HTTPS error responses." msgstr "" -#: ../Doc/library/urllib.request.rst:1144 +#: ../Doc/library/urllib.request.rst:1164 msgid "The behavior is same as :meth:`http_response`." msgstr "" -#: ../Doc/library/urllib.request.rst:1150 +#: ../Doc/library/urllib.request.rst:1170 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/urllib.request.rst:1152 +#: ../Doc/library/urllib.request.rst:1172 msgid "" "In addition to the examples below, more examples are given in :ref:`urllib-" "howto`." msgstr "" -#: ../Doc/library/urllib.request.rst:1155 +#: ../Doc/library/urllib.request.rst:1175 msgid "" "This example gets the python.org main page and displays the first 300 bytes " "of it. ::" msgstr "" -#: ../Doc/library/urllib.request.rst:1168 +#: ../Doc/library/urllib.request.rst:1188 msgid "" "Note that urlopen returns a bytes object. This is because there is no way " "for urlopen to automatically determine the encoding of the byte stream it " @@ -1306,45 +1326,45 @@ msgid "" "appropriate encoding." msgstr "" -#: ../Doc/library/urllib.request.rst:1174 +#: ../Doc/library/urllib.request.rst:1194 msgid "" "The following W3C document, https://www.w3.org/International/O-charset\\ , " "lists the various ways in which an (X)HTML or an XML document could have " "specified its encoding information." msgstr "" -#: ../Doc/library/urllib.request.rst:1178 +#: ../Doc/library/urllib.request.rst:1198 msgid "" "As the python.org website uses *utf-8* encoding as specified in its meta " "tag, we will use the same for decoding the bytes object. ::" msgstr "" -#: ../Doc/library/urllib.request.rst:1187 +#: ../Doc/library/urllib.request.rst:1207 msgid "" "It is also possible to achieve the same result without using the :term:" "`context manager` approach. ::" msgstr "" -#: ../Doc/library/urllib.request.rst:1196 +#: ../Doc/library/urllib.request.rst:1216 msgid "" "In the following example, we are sending a data-stream to the stdin of a CGI " "and reading the data it returns to us. Note that this example will only work " "when the Python installation supports SSL. ::" msgstr "" -#: ../Doc/library/urllib.request.rst:1208 +#: ../Doc/library/urllib.request.rst:1228 msgid "The code for the sample CGI used in the above example is::" msgstr "" -#: ../Doc/library/urllib.request.rst:1215 +#: ../Doc/library/urllib.request.rst:1235 msgid "Here is an example of doing a ``PUT`` request using :class:`Request`::" msgstr "" -#: ../Doc/library/urllib.request.rst:1225 +#: ../Doc/library/urllib.request.rst:1245 msgid "Use of Basic HTTP Authentication::" msgstr "" -#: ../Doc/library/urllib.request.rst:1239 +#: ../Doc/library/urllib.request.rst:1259 msgid "" ":func:`build_opener` provides many handlers by default, including a :class:" "`ProxyHandler`. By default, :class:`ProxyHandler` uses the environment " @@ -1353,71 +1373,71 @@ msgid "" "read to obtain the HTTP proxy's URL." msgstr "" -#: ../Doc/library/urllib.request.rst:1245 +#: ../Doc/library/urllib.request.rst:1265 msgid "" "This example replaces the default :class:`ProxyHandler` with one that uses " "programmatically-supplied proxy URLs, and adds proxy authorization support " "with :class:`ProxyBasicAuthHandler`. ::" msgstr "" -#: ../Doc/library/urllib.request.rst:1257 +#: ../Doc/library/urllib.request.rst:1277 msgid "Adding HTTP headers:" msgstr "" -#: ../Doc/library/urllib.request.rst:1259 +#: ../Doc/library/urllib.request.rst:1279 msgid "Use the *headers* argument to the :class:`Request` constructor, or::" msgstr "" -#: ../Doc/library/urllib.request.rst:1268 +#: ../Doc/library/urllib.request.rst:1288 msgid "" ":class:`OpenerDirector` automatically adds a :mailheader:`User-Agent` header " "to every :class:`Request`. To change this::" msgstr "" -#: ../Doc/library/urllib.request.rst:1276 +#: ../Doc/library/urllib.request.rst:1296 msgid "" "Also, remember that a few standard headers (:mailheader:`Content-Length`, :" "mailheader:`Content-Type` and :mailheader:`Host`) are added when the :class:" "`Request` is passed to :func:`urlopen` (or :meth:`OpenerDirector.open`)." msgstr "" -#: ../Doc/library/urllib.request.rst:1283 +#: ../Doc/library/urllib.request.rst:1303 msgid "" "Here is an example session that uses the ``GET`` method to retrieve a URL " "containing parameters::" msgstr "" -#: ../Doc/library/urllib.request.rst:1294 +#: ../Doc/library/urllib.request.rst:1314 msgid "" "The following example uses the ``POST`` method instead. Note that params " "output from urlencode is encoded to bytes before it is sent to urlopen as " "data::" msgstr "" -#: ../Doc/library/urllib.request.rst:1305 +#: ../Doc/library/urllib.request.rst:1325 msgid "" "The following example uses an explicitly specified HTTP proxy, overriding " "environment settings::" msgstr "" -#: ../Doc/library/urllib.request.rst:1315 +#: ../Doc/library/urllib.request.rst:1335 msgid "" "The following example uses no proxies at all, overriding environment " "settings::" msgstr "" -#: ../Doc/library/urllib.request.rst:1325 +#: ../Doc/library/urllib.request.rst:1345 msgid "Legacy interface" msgstr "" -#: ../Doc/library/urllib.request.rst:1327 +#: ../Doc/library/urllib.request.rst:1347 msgid "" "The following functions and classes are ported from the Python 2 module " "``urllib`` (as opposed to ``urllib2``). They might become deprecated at " "some point in the future." msgstr "" -#: ../Doc/library/urllib.request.rst:1333 +#: ../Doc/library/urllib.request.rst:1353 msgid "" "Copy a network object denoted by a URL to a local file. If the URL points to " "a local file, the object will not be copied unless filename is supplied. " @@ -1427,7 +1447,7 @@ msgid "" "remote object). Exceptions are the same as for :func:`urlopen`." msgstr "" -#: ../Doc/library/urllib.request.rst:1340 +#: ../Doc/library/urllib.request.rst:1360 msgid "" "The second argument, if present, specifies the file location to copy to (if " "absent, the location will be a tempfile with a generated name). The third " @@ -1439,11 +1459,11 @@ msgid "" "file size in response to a retrieval request." msgstr "" -#: ../Doc/library/urllib.request.rst:1349 +#: ../Doc/library/urllib.request.rst:1369 msgid "The following example illustrates the most common usage scenario::" msgstr "" -#: ../Doc/library/urllib.request.rst:1356 +#: ../Doc/library/urllib.request.rst:1376 msgid "" "If the *url* uses the :file:`http:` scheme identifier, the optional *data* " "argument may be given to specify a ``POST`` request (normally the request " @@ -1452,7 +1472,7 @@ msgid "" "parse.urlencode` function." msgstr "" -#: ../Doc/library/urllib.request.rst:1362 +#: ../Doc/library/urllib.request.rst:1382 msgid "" ":func:`urlretrieve` will raise :exc:`ContentTooShortError` when it detects " "that the amount of data available was less than the expected amount (which " @@ -1460,40 +1480,40 @@ msgid "" "example, when the download is interrupted." msgstr "" -#: ../Doc/library/urllib.request.rst:1367 +#: ../Doc/library/urllib.request.rst:1387 msgid "" "The *Content-Length* is treated as a lower bound: if there's more data to " "read, urlretrieve reads more data, but if less data is available, it raises " "the exception." msgstr "" -#: ../Doc/library/urllib.request.rst:1371 +#: ../Doc/library/urllib.request.rst:1391 msgid "" "You can still retrieve the downloaded data in this case, it is stored in " "the :attr:`content` attribute of the exception instance." msgstr "" -#: ../Doc/library/urllib.request.rst:1374 +#: ../Doc/library/urllib.request.rst:1394 msgid "" "If no *Content-Length* header was supplied, urlretrieve can not check the " "size of the data it has downloaded, and just returns it. In this case you " "just have to assume that the download was successful." msgstr "" -#: ../Doc/library/urllib.request.rst:1380 +#: ../Doc/library/urllib.request.rst:1400 msgid "" "Cleans up temporary files that may have been left behind by previous calls " "to :func:`urlretrieve`." msgstr "" -#: ../Doc/library/urllib.request.rst:1387 +#: ../Doc/library/urllib.request.rst:1407 msgid "" "Base class for opening and reading URLs. Unless you need to support opening " "objects using schemes other than :file:`http:`, :file:`ftp:`, or :file:`file:" "`, you probably want to use :class:`FancyURLopener`." msgstr "" -#: ../Doc/library/urllib.request.rst:1391 +#: ../Doc/library/urllib.request.rst:1411 msgid "" "By default, the :class:`URLopener` class sends a :mailheader:`User-Agent` " "header of ``urllib/VVV``, where *VVV* is the :mod:`urllib` version number. " @@ -1503,7 +1523,7 @@ msgid "" "subclass definition." msgstr "" -#: ../Doc/library/urllib.request.rst:1397 +#: ../Doc/library/urllib.request.rst:1417 msgid "" "The optional *proxies* parameter should be a dictionary mapping scheme names " "to proxy URLs, where an empty dictionary turns proxies off completely. Its " @@ -1511,7 +1531,7 @@ msgid "" "be used if present, as discussed in the definition of :func:`urlopen`, above." msgstr "" -#: ../Doc/library/urllib.request.rst:1402 +#: ../Doc/library/urllib.request.rst:1422 msgid "" "Additional keyword parameters, collected in *x509*, may be used for " "authentication of the client when using the :file:`https:` scheme. The " @@ -1519,13 +1539,13 @@ msgid "" "certificate; both are needed to support client authentication." msgstr "" -#: ../Doc/library/urllib.request.rst:1407 +#: ../Doc/library/urllib.request.rst:1427 msgid "" ":class:`URLopener` objects will raise an :exc:`OSError` exception if the " "server returns an error code." msgstr "" -#: ../Doc/library/urllib.request.rst:1412 +#: ../Doc/library/urllib.request.rst:1432 msgid "" "Open *fullurl* using the appropriate protocol. This method sets up cache " "and proxy information, then calls the appropriate open method with its input " @@ -1534,11 +1554,15 @@ msgid "" "`urlopen`." msgstr "" -#: ../Doc/library/urllib.request.rst:1421 +#: ../Doc/library/urllib.request.rst:1438 +msgid "This method always quotes *fullurl* using :func:`~urllib.parse.quote`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1442 msgid "Overridable interface to open unknown URL types." msgstr "" -#: ../Doc/library/urllib.request.rst:1426 +#: ../Doc/library/urllib.request.rst:1447 msgid "" "Retrieves the contents of *url* and places it in *filename*. The return " "value is a tuple consisting of a local filename and either an :class:`email." @@ -1555,7 +1579,7 @@ msgid "" "*reporthook* is ignored for local URLs." msgstr "" -#: ../Doc/library/urllib.request.rst:1439 +#: ../Doc/library/urllib.request.rst:1460 msgid "" "If the *url* uses the :file:`http:` scheme identifier, the optional *data* " "argument may be given to specify a ``POST`` request (normally the request " @@ -1564,7 +1588,7 @@ msgid "" "urlencode` function." msgstr "" -#: ../Doc/library/urllib.request.rst:1448 +#: ../Doc/library/urllib.request.rst:1469 msgid "" "Variable that specifies the user agent of the opener object. To get :mod:" "`urllib` to tell servers that it is a particular user agent, set this in a " @@ -1572,7 +1596,7 @@ msgid "" "constructor." msgstr "" -#: ../Doc/library/urllib.request.rst:1458 +#: ../Doc/library/urllib.request.rst:1479 msgid "" ":class:`FancyURLopener` subclasses :class:`URLopener` providing default " "handling for the following HTTP response codes: 301, 302, 303, 307 and 401. " @@ -1583,14 +1607,14 @@ msgid "" "defaults to 10." msgstr "" -#: ../Doc/library/urllib.request.rst:1465 +#: ../Doc/library/urllib.request.rst:1486 msgid "" "For all other response codes, the method :meth:`http_error_default` is " "called which you can override in subclasses to handle the error " "appropriately." msgstr "" -#: ../Doc/library/urllib.request.rst:1470 +#: ../Doc/library/urllib.request.rst:1491 msgid "" "According to the letter of :rfc:`2616`, 301 and 302 responses to POST " "requests must not be automatically redirected without confirmation by the " @@ -1599,13 +1623,13 @@ msgid "" "behaviour." msgstr "" -#: ../Doc/library/urllib.request.rst:1475 +#: ../Doc/library/urllib.request.rst:1496 msgid "" "The parameters to the constructor are the same as those for :class:" "`URLopener`." msgstr "" -#: ../Doc/library/urllib.request.rst:1479 +#: ../Doc/library/urllib.request.rst:1500 msgid "" "When performing basic authentication, a :class:`FancyURLopener` instance " "calls its :meth:`prompt_user_passwd` method. The default implementation " @@ -1614,59 +1638,59 @@ msgid "" "needed." msgstr "" -#: ../Doc/library/urllib.request.rst:1484 +#: ../Doc/library/urllib.request.rst:1505 msgid "" "The :class:`FancyURLopener` class offers one additional method that should " "be overloaded to provide the appropriate behavior:" msgstr "" -#: ../Doc/library/urllib.request.rst:1489 +#: ../Doc/library/urllib.request.rst:1510 msgid "" "Return information needed to authenticate the user at the given host in the " "specified security realm. The return value should be a tuple, ``(user, " "password)``, which can be used for basic authentication." msgstr "" -#: ../Doc/library/urllib.request.rst:1493 +#: ../Doc/library/urllib.request.rst:1514 msgid "" "The implementation prompts for this information on the terminal; an " "application should override this method to use an appropriate interaction " "model in the local environment." msgstr "" -#: ../Doc/library/urllib.request.rst:1499 +#: ../Doc/library/urllib.request.rst:1520 msgid ":mod:`urllib.request` Restrictions" msgstr "" -#: ../Doc/library/urllib.request.rst:1505 +#: ../Doc/library/urllib.request.rst:1526 msgid "" "Currently, only the following protocols are supported: HTTP (versions 0.9 " "and 1.0), FTP, local files, and data URLs." msgstr "" -#: ../Doc/library/urllib.request.rst:1508 +#: ../Doc/library/urllib.request.rst:1529 msgid "Added support for data URLs." msgstr "" -#: ../Doc/library/urllib.request.rst:1510 +#: ../Doc/library/urllib.request.rst:1531 msgid "" "The caching feature of :func:`urlretrieve` has been disabled until someone " "finds the time to hack proper processing of Expiration time headers." msgstr "" -#: ../Doc/library/urllib.request.rst:1513 +#: ../Doc/library/urllib.request.rst:1534 msgid "" "There should be a function to query whether a particular URL is in the cache." msgstr "" -#: ../Doc/library/urllib.request.rst:1515 +#: ../Doc/library/urllib.request.rst:1536 msgid "" "For backward compatibility, if a URL appears to point to a local file but " "the file can't be opened, the URL is re-interpreted using the FTP protocol. " "This can sometimes cause confusing error messages." msgstr "" -#: ../Doc/library/urllib.request.rst:1519 +#: ../Doc/library/urllib.request.rst:1540 msgid "" "The :func:`urlopen` and :func:`urlretrieve` functions can cause arbitrarily " "long delays while waiting for a network connection to be set up. This means " @@ -1674,7 +1698,7 @@ msgid "" "functions without using threads." msgstr "" -#: ../Doc/library/urllib.request.rst:1528 +#: ../Doc/library/urllib.request.rst:1549 msgid "" "The data returned by :func:`urlopen` or :func:`urlretrieve` is the raw data " "returned by the server. This may be binary data (such as an image), plain " @@ -1684,7 +1708,7 @@ msgid "" "module :mod:`html.parser` to parse it." msgstr "" -#: ../Doc/library/urllib.request.rst:1537 +#: ../Doc/library/urllib.request.rst:1558 msgid "" "The code handling the FTP protocol cannot differentiate between a file and a " "directory. This can lead to unexpected behavior when attempting to read a " @@ -1702,11 +1726,11 @@ msgid "" "meet your needs." msgstr "" -#: ../Doc/library/urllib.request.rst:1554 +#: ../Doc/library/urllib.request.rst:1575 msgid ":mod:`urllib.response` --- Response classes used by urllib" msgstr "" -#: ../Doc/library/urllib.request.rst:1559 +#: ../Doc/library/urllib.request.rst:1580 msgid "" "The :mod:`urllib.response` module defines functions and classes which define " "a minimal file like interface, including ``read()`` and ``readline()``. The " diff --git a/library/urllib.robotparser.po b/library/urllib.robotparser.po index b4fa97375..efea4df10 100644 --- a/library/urllib.robotparser.po +++ b/library/urllib.robotparser.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/urllib.robotparser.rst:2 msgid ":mod:`urllib.robotparser` --- Parser for robots.txt" -msgstr ":mod:`urllib.robotparser` --- Analyseur de fichiers *robots.txt*" +msgstr ":mod:`urllib.robotparser` — Analyseur de fichiers *robots.txt*" #: ../Doc/library/urllib.robotparser.rst:10 msgid "**Source code:** :source:`Lib/urllib/robotparser.py`" @@ -116,4 +116,4 @@ msgid "" "class::" msgstr "" "L'exemple suivant présente une utilisation basique de la classe :class:" -"`RobotFileParser` : ::" +"`RobotFileParser` ::" diff --git a/library/uu.po b/library/uu.po index 2a43a08d5..953d3f584 100644 --- a/library/uu.po +++ b/library/uu.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/uu.rst:2 msgid ":mod:`uu` --- Encode and decode uuencode files" -msgstr ":mod:`uu` --- Encode et décode les fichiers *uuencode*" +msgstr ":mod:`uu` — Encode et décode les fichiers *uuencode*" #: ../Doc/library/uu.rst:9 msgid "**Source code:** :source:`Lib/uu.py`" diff --git a/library/uuid.po b/library/uuid.po index 911085b3c..ea30802e5 100644 --- a/library/uuid.po +++ b/library/uuid.po @@ -16,11 +16,11 @@ msgstr "" #: ../Doc/library/uuid.rst:2 msgid ":mod:`uuid` --- UUID objects according to :rfc:`4122`" -msgstr "" +msgstr ":mod:`uuid` — Objets UUID d'après la :rfc:`4122`" #: ../Doc/library/uuid.rst:9 msgid "**Source code:** :source:`Lib/uuid.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/uuid.py`" #: ../Doc/library/uuid.rst:13 msgid "" @@ -29,6 +29,10 @@ msgid "" "`uuid5` for generating version 1, 3, 4, and 5 UUIDs as specified in :rfc:" "`4122`." msgstr "" +"Ce module exporte des objets :class:`UUID` immuables (de la classe :class:" +"`UUID`) et les fonctions :func:`uuid1`, :func:`uuid3`, :func:`uuid4`, :func:" +"`uuid5` permettant de générer des UUID de version 1, 3, 4 et 5 tels que " +"définis dans la :rfc:`4122`." #: ../Doc/library/uuid.rst:17 msgid "" @@ -37,6 +41,10 @@ msgid "" "creates a UUID containing the computer's network address. :func:`uuid4` " "creates a random UUID." msgstr "" +"Utilisez :func:`uuid1` ou :func:`uuid4` si votre but est de produire un " +"identifiant unique. Notez que :func:`uuid1` peut dévoiler des informations " +"personnelles car l'UUID produit contient l'adresse réseau de l'ordinateur. " +"En revanche, :func:`uuid4` génère un UUID aléatoire." #: ../Doc/library/uuid.rst:22 msgid "" @@ -46,20 +54,31 @@ msgid "" "UUID. All instances of :class:`UUID` have an :attr:`is_safe` attribute " "which relays any information about the UUID's safety, using this enumeration:" msgstr "" +"En fonction du système d'exploitation, les UUID :func:`uuid1` peuvent ne pas " +"être « sûrs ». Un UUID est considéré sûr s'il est généré avec des techniques " +"de synchronisation qui garantissent que deux processus ne peuvent obtenir le " +"même UUID. Toutes les instances de :class:`UUID` possèdent un attribut :attr:" +"`is_safe` qui indique le niveau de sûreté de l'UUID selon l'énumération " +"suivante :" #: ../Doc/library/uuid.rst:34 msgid "The UUID was generated by the platform in a multiprocessing-safe way." msgstr "" +"L'UUID a été généré par la plateforme en utilisant une méthode sûre dans un " +"contexte de parallélisme par processus." #: ../Doc/library/uuid.rst:38 msgid "The UUID was not generated in a multiprocessing-safe way." msgstr "" +"L'UUID n'a pas été généré par une méthode sûre dans un contexte de " +"parallélisme par processus." #: ../Doc/library/uuid.rst:42 msgid "" "The platform does not provide information on whether the UUID was generated " "safely or not." msgstr "" +"La plateforme ne précise pas si l'UUID a été généré de façon sûre ou non." #: ../Doc/library/uuid.rst:47 msgid "" @@ -72,6 +91,15 @@ msgid "" "string of hex digits is given, curly braces, hyphens, and a URN prefix are " "all optional. For example, these expressions all yield the same UUID::" msgstr "" +"Produit un UUID à partir soit d'une chaîne de 32 chiffres hexadécimaux, soit " +"une chaîne de 16 octets gros-boutiste (argument *bytes*), soit une chaîne de " +"16 octets petit-boutiste (argument *bytes_le*), soit un n-uplet de six " +"entiers (32-bit *time_low*, 16-bit *time_mid*, 16-bit *time_hi_version*, 8-" +"bit *clock_seq_hi_variant*, 8-bit *clock_seq_low*, 48-bit *node*) (argument " +"*fields*), soit un unique entier sur 128 bits (argument *int*). Lorsque la " +"fonction reçoit une chaîne de chiffres hexadécimaux, les accolades, les " +"tirets et le préfixe URN sont facultatifs. Par exemple, toutes les " +"expressions ci-dessous génèrent le même UUID ::" #: ../Doc/library/uuid.rst:66 msgid "" @@ -80,6 +108,11 @@ msgid "" "its variant and version number set according to :rfc:`4122`, overriding bits " "in the given *hex*, *bytes*, *bytes_le*, *fields*, or *int*." msgstr "" +"Un seul des arguments *hex*, *bytes*, *bytes_le*, *fields* ou *int* doit " +"être spécifié. L'argument *version* est optionnel : s'il est spécifié, " +"l'UUID généré aura pour numéro de version et de variante la valeur indiquée " +"dans la :rfc:`4122`, remplaçant les bits idoines de *hex*, *bytes*, " +"*bytes_le*, *fields* ou *int*." #: ../Doc/library/uuid.rst:71 msgid "" @@ -87,6 +120,9 @@ msgid "" "int` attributes. Comparison with a non-UUID object raises a :exc:" "`TypeError`." msgstr "" +"La comparaison de deux objets UUID se fait en comparant leurs attributs :" +"attr:`UUID.int`. La comparaison avec un objet autre qu'un UUID lève une " +"exception :exc:`TypeError`." #: ../Doc/library/uuid.rst:75 msgid "" @@ -94,32 +130,43 @@ msgid "" "``12345678-1234-5678-1234-567812345678`` where the 32 hexadecimal digits " "represent the UUID." msgstr "" +"``str(uuid)`` renvoie une chaîne de caractères de la forme " +"``12345678-1234-5678-1234-567812345678`` représentant l'UUID par une chaîne " +"de 32 chiffres hexadécimaux." #: ../Doc/library/uuid.rst:79 msgid ":class:`UUID` instances have these read-only attributes:" msgstr "" +"Les instances de :class:`UUID` possèdent les attributs suivants en lecture " +"seule :" #: ../Doc/library/uuid.rst:83 msgid "" "The UUID as a 16-byte string (containing the six integer fields in big-" "endian byte order)." msgstr "" +"L'UUID représenté comme une chaîne de 16 octets (contenant les six champs " +"entiers dans l'ordre gros-boutiste)." #: ../Doc/library/uuid.rst:89 msgid "" "The UUID as a 16-byte string (with *time_low*, *time_mid*, and " "*time_hi_version* in little-endian byte order)." msgstr "" +"L'UUID représenté comme une chaîne de 16 octets (avec *time_low*, *time_mid* " +"et *time_hi_version* dans l'ordre petit-boutiste)." #: ../Doc/library/uuid.rst:95 msgid "" "A tuple of the six integer fields of the UUID, which are also available as " "six individual attributes and two derived attributes:" msgstr "" +"Un n-uplet contenant les six champs entiers de l'UUID, également accessibles " +"en tant que six attributs individuels et deux attributs dérivés :" #: ../Doc/library/uuid.rst:99 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/uuid.rst:99 msgid "Meaning" @@ -131,7 +178,7 @@ msgstr ":attr:`time_low`" #: ../Doc/library/uuid.rst:101 msgid "the first 32 bits of the UUID" -msgstr "" +msgstr "les 32 premiers bits de l'UUID" #: ../Doc/library/uuid.rst:103 msgid ":attr:`time_mid`" @@ -139,7 +186,7 @@ msgstr ":attr:`time_mid`" #: ../Doc/library/uuid.rst:103 ../Doc/library/uuid.rst:105 msgid "the next 16 bits of the UUID" -msgstr "" +msgstr "les 16 bits suivants de l'UUID" #: ../Doc/library/uuid.rst:105 msgid ":attr:`time_hi_version`" @@ -151,7 +198,7 @@ msgstr ":attr:`clock_seq_hi_variant`" #: ../Doc/library/uuid.rst:107 ../Doc/library/uuid.rst:109 msgid "the next 8 bits of the UUID" -msgstr "" +msgstr "les 8 bits suivants de l'UUID" #: ../Doc/library/uuid.rst:109 msgid ":attr:`clock_seq_low`" @@ -163,7 +210,7 @@ msgstr ":attr:`node`" #: ../Doc/library/uuid.rst:111 msgid "the last 48 bits of the UUID" -msgstr "" +msgstr "les derniers 48 bits de l'UUID" #: ../Doc/library/uuid.rst:113 msgid ":attr:`time`" @@ -171,7 +218,7 @@ msgstr ":attr:`time`" #: ../Doc/library/uuid.rst:113 msgid "the 60-bit timestamp" -msgstr "" +msgstr "l'horodatage sur 60 bits" #: ../Doc/library/uuid.rst:115 msgid ":attr:`clock_seq`" @@ -179,19 +226,22 @@ msgstr ":attr:`clock_seq`" #: ../Doc/library/uuid.rst:115 msgid "the 14-bit sequence number" -msgstr "" +msgstr "le numéro de séquence sur 14 bits" #: ../Doc/library/uuid.rst:121 msgid "The UUID as a 32-character hexadecimal string." msgstr "" +"Représentation de l'UUID sous forme d'une chaîne de 32 chiffres hexadécimaux." #: ../Doc/library/uuid.rst:126 msgid "The UUID as a 128-bit integer." -msgstr "" +msgstr "Représentation de l'UUId sous forme d'un entier de 128 bits." #: ../Doc/library/uuid.rst:131 msgid "The UUID as a URN as specified in :rfc:`4122`." msgstr "" +"Représentation de l'UUID sous forme d'URN tel que spécifié dans la :rfc:" +"`4122`." #: ../Doc/library/uuid.rst:136 msgid "" @@ -199,22 +249,30 @@ msgid "" "will be one of the constants :const:`RESERVED_NCS`, :const:`RFC_4122`, :" "const:`RESERVED_MICROSOFT`, or :const:`RESERVED_FUTURE`." msgstr "" +"Variante de l'UUID. Celle-ci détermine l'agencement interne de l'UUID. Les " +"valeurs possibles sont les constantes suivantes : :const:`RESERVED_NCS`, :" +"const:`RFC_4122`, :const:`RESERVED_MICROSOFT` ou :const:`RESERVED_FUTURE`." #: ../Doc/library/uuid.rst:143 msgid "" "The UUID version number (1 through 5, meaningful only when the variant is :" "const:`RFC_4122`)." msgstr "" +"Numéro de version de l'UUID (de 1 à 5). Cette valeur n'a de sens que dans le " +"cas de la variante :const:`RFC_4122`." #: ../Doc/library/uuid.rst:148 msgid "" "An enumeration of :class:`SafeUUID` which indicates whether the platform " "generated the UUID in a multiprocessing-safe way." msgstr "" +"Valeur de l'énumération :class:`SafeUUID` indiquant si la plateforme a " +"généré l'UUID d'une façon sûre dans un contexte de parallélisme par " +"processus." #: ../Doc/library/uuid.rst:153 msgid "The :mod:`uuid` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`uu` définit les fonctions suivantes :" #: ../Doc/library/uuid.rst:158 msgid "" @@ -228,6 +286,17 @@ msgid "" "least significant bit of the first octet is *unset*) will be preferred over " "locally administered MAC addresses, but with no other ordering guarantees." msgstr "" +"Renvoie l'adresse réseau matérielle sous forme d'un entier positif sur 48 " +"bits. Cette fonction peut faire appel à un programme externe relativement " +"lent lors de sa première exécution. Si toutes les tentatives d'obtenir " +"l'adresse matérielle échouent, un nombre aléatoire sur 48 bit avec le bit de " +"*multicast* (bit de poids faible du premier octet) à 1 est généré, comme " +"recommandé par la :rfc:`4122`. Ici, « adresse matérielle » correspond à " +"l'adresse MAC d'une interface réseau. Sur une machine avec plusieurs " +"interfaces réseau, les adresses MAC de type UUA (*universally administered " +"address*, pour lesquelles le second bit de poids faible est à zéro) sont " +"prioritaires par rapport aux autres adresses MAC. Aucune autre garantie " +"n'est donnée sur l'ordre dans lequel les interfaces sont choisies." #: ../Doc/library/uuid.rst:168 msgid "" @@ -235,6 +304,8 @@ msgid "" "administered MAC addresses, since the former are guaranteed to be globally " "unique, while the latter are not." msgstr "" +"Les adresses MAC de type UUA sont préférées par rapport aux adresses locales " +"car ces dernières ne sont pas nécessairement uniques." #: ../Doc/library/uuid.rst:178 msgid "" @@ -243,80 +314,103 @@ msgid "" "If *clock_seq* is given, it is used as the sequence number; otherwise a " "random 14-bit sequence number is chosen." msgstr "" +"Génère un UUID à partir d'un identifiant hôte, d'un numéro de séquence et de " +"l'heure actuelle. Si *node* n'est pas spécifié, la fonction :func:`getnode` " +"est appelée pour obtenir l'adresse matérielle. *clock_seq* est utilisé comme " +"numéro de séquence s'il est spécifié, sinon un numéro aléatoire sur 14 bits " +"est utilisé à la place." #: ../Doc/library/uuid.rst:188 msgid "" "Generate a UUID based on the MD5 hash of a namespace identifier (which is a " "UUID) and a name (which is a string)." msgstr "" +"Génère un UUID à partir de l'empreinte MD5 de l'identifiant d'un espace de " +"nom (un UUID) et d'un nom (une chaîne de caractères)." #: ../Doc/library/uuid.rst:196 msgid "Generate a random UUID." -msgstr "" +msgstr "Génère un UUID aléatoire." #: ../Doc/library/uuid.rst:203 msgid "" "Generate a UUID based on the SHA-1 hash of a namespace identifier (which is " "a UUID) and a name (which is a string)." msgstr "" +"Génère un UUID à partir de l'empreinte SHA-1 de l'identifiant d'un espace de " +"nom (un UUID) et d'un nom (une chaîne de caractères)." #: ../Doc/library/uuid.rst:208 msgid "" "The :mod:`uuid` module defines the following namespace identifiers for use " "with :func:`uuid3` or :func:`uuid5`." msgstr "" +"Le module :mod:`uuid` définit les identifiants d'espaces de noms suivants " +"(pour :func:`uuid3` et :func:`uuid5`)." #: ../Doc/library/uuid.rst:214 msgid "" "When this namespace is specified, the *name* string is a fully-qualified " "domain name." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un nom de " +"domaine pleinement qualifié (souvent indiqué en anglais par *FQDN*)." #: ../Doc/library/uuid.rst:220 msgid "When this namespace is specified, the *name* string is a URL." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être une URL." #: ../Doc/library/uuid.rst:225 msgid "When this namespace is specified, the *name* string is an ISO OID." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un " +"OID ISO." #: ../Doc/library/uuid.rst:230 msgid "" "When this namespace is specified, the *name* string is an X.500 DN in DER or " "a text output format." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un " +"DN X.500 au format texte ou DER." #: ../Doc/library/uuid.rst:233 msgid "" "The :mod:`uuid` module defines the following constants for the possible " "values of the :attr:`variant` attribute:" msgstr "" +"Le module :mod:`uuid` définit les constantes suivantes correspondant aux " +"valeurs autorisées pour l'attribut :attr:`variant` :" #: ../Doc/library/uuid.rst:239 msgid "Reserved for NCS compatibility." -msgstr "" +msgstr "Réservé pour la compatibilité NCS." #: ../Doc/library/uuid.rst:244 msgid "Specifies the UUID layout given in :rfc:`4122`." -msgstr "" +msgstr "Utilise l'agencement des UUID de la :rfc:`4122`." #: ../Doc/library/uuid.rst:249 msgid "Reserved for Microsoft compatibility." -msgstr "" +msgstr "Réservé pour la compatibilité Microsoft." #: ../Doc/library/uuid.rst:254 msgid "Reserved for future definition." -msgstr "" +msgstr "Réservé pour un usage futur." #: ../Doc/library/uuid.rst:260 msgid ":rfc:`4122` - A Universally Unique IDentifier (UUID) URN Namespace" -msgstr "" +msgstr ":rfc:`4122` – *A Universally Unique IDentifier (UUID) URN Namespace*" #: ../Doc/library/uuid.rst:260 msgid "" "This specification defines a Uniform Resource Name namespace for UUIDs, the " "internal format of UUIDs, and methods of generating UUIDs." msgstr "" +"Cette spécification (en anglais) définit un espace de noms *Uniform Resource " +"Name* pour les UUID, leur format interne et les méthodes permettant de les " +"générer." #: ../Doc/library/uuid.rst:267 msgid "Example" @@ -325,3 +419,4 @@ msgstr "Exemple" #: ../Doc/library/uuid.rst:269 msgid "Here are some examples of typical usage of the :mod:`uuid` module::" msgstr "" +"Voici quelques exemples classiques d'utilisation du module :mod:`uuid` ::" diff --git a/library/venv.po b/library/venv.po index 1a6277fa5..2ae5aef1e 100644 --- a/library/venv.po +++ b/library/venv.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-03-21 21:16+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" #: ../Doc/library/venv.rst:2 msgid ":mod:`venv` --- Creation of virtual environments" -msgstr "" +msgstr ":mod:`venv` — Création d'environnements virtuels" #: ../Doc/library/venv.rst:12 msgid "**Source code:** :source:`Lib/venv/`" -msgstr "" +msgstr "**Code source :** :source:`Lib/venv/`" #: ../Doc/library/venv.rst:18 msgid "" @@ -31,10 +32,18 @@ msgid "" "environment) and can have its own independent set of installed Python " "packages in its site directories." msgstr "" +"Le module :mod:`venv` permet de créer des \"environnements virtuels\" légers " +"avec leurs propres dossiers ``site``, optionnellement isolés des dossiers " +"``site`` système. Chaque environnement virtuel a son propre binaire Python " +"(qui correspond à la version du binaire qui a été utilisée pour créer cet " +"environnement) et peut avoir sa propre liste de paquets Python installés " +"dans ses propres dossiers ``site``." #: ../Doc/library/venv.rst:25 msgid "See :pep:`405` for more information about Python virtual environments." msgstr "" +"Voir la :pep:`405` pour plus d'informations à propos des environnements " +"virtuels Python." #: ../Doc/library/venv.rst:29 msgid "" @@ -51,33 +60,45 @@ msgid "" "``python3 -m venv`` to help prevent any potential confusion as to which " "Python interpreter a virtual environment will be based on." msgstr "" +"Le script ``pyenv`` est obsolète depuis Python 3.6 et a été remplacé par " +"``python3 -m venv``." #: ../Doc/library/venv.rst:39 msgid "Creating virtual environments" msgstr "Création d'environnements virtuels" -#: ../Doc/using/venv-create.inc :1 +#: ../Doc/using/venv-create.inc:1 msgid "" "Creation of :ref:`virtual environments ` is done by executing the " "command ``venv``::" msgstr "" +"La création d':ref:`environnements virtuels ` est faite en " +"exécutant la commande ``venv`` ::" -#: ../Doc/using/venv-create.inc :6 +#: ../Doc/using/venv-create.inc:6 msgid "" "Running this command creates the target directory (creating any parent " "directories that don't exist already) and places a ``pyvenv.cfg`` file in it " "with a ``home`` key pointing to the Python installation from which the " "command was run. It also creates a ``bin`` (or ``Scripts`` on Windows) " -"subdirectory containing a copy of the ``python`` binary (or binaries, in the " -"case of Windows). It also creates an (initially empty) ``lib/pythonX.Y/site-" -"packages`` subdirectory (on Windows, this is ``Lib\\site-packages``). If an " -"existing directory is specified, it will be re-used." -msgstr "" - -#: ../Doc/using/venv-create.inc :15 +"subdirectory containing a copy/symlink of the Python binary/binaries (as " +"appropriate for the platform or arguments used at environment creation " +"time). It also creates an (initially empty) ``lib/pythonX.Y/site-packages`` " +"subdirectory (on Windows, this is ``Lib\\site-packages``). If an existing " +"directory is specified, it will be re-used." +msgstr "" +"Lancer cette commande crée le dossier du **venv** (en créant tous les " +"dossiers parents qui n'existent pas déjà) et crée un fichier ``pyenv.cfg`` à " +"l’intérieur de ce dossier avec une clé ``home`` qui pointe sur " +"l'installation Python depuis laquelle cette commande a été lancée. Il crée " +"aussi un sous-dossier ``bin`` (ou ``Scripts`` sur Windows) contenant une " +"copie (ou un lien symbolique) du ou des binaire ``python`` (dépend de la " +"plateforme et des paramètres donnés à la création de l'environnement). Il " +"crée aussi un sous-dossier (initialement vide) ``lib/pythonX.Y/site-" +"packages`` (Sur Windows, c'est ``Lib\\site-packages``). Si un dossier " +"existant est spécifié, il sera réutilisé." + +#: ../Doc/using/venv-create.inc:16 msgid "" "``pyvenv`` was the recommended tool for creating virtual environments for " "Python 3.3 and 3.4, and is `deprecated in Python 3.6 `_." -#: ../Doc/using/venv-create.inc :20 +#: ../Doc/using/venv-create.inc:21 msgid "" "The use of ``venv`` is now recommended for creating virtual environments." msgstr "" -"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " +"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " "environnements virtuels." -#: ../Doc/using/venv-create.inc :25 +#: ../Doc/using/venv-create.inc:26 msgid "On Windows, invoke the ``venv`` command as follows::" -msgstr "" +msgstr "Sur Windows, appelez la commande ``venv`` comme suit ::" -#: ../Doc/using/venv-create.inc :29 +#: ../Doc/using/venv-create.inc:30 msgid "" "Alternatively, if you configured the ``PATH`` and ``PATHEXT`` variables for " "your :ref:`Python installation `::" msgstr "" +"Alternativement, si vous avez configuré les variables ``PATH`` et " +"``PATHEXT`` pour votre :ref:`installation Python ` ::" -#: ../Doc/using/venv-create.inc :34 +#: ../Doc/using/venv-create.inc:35 msgid "The command, if run with ``-h``, will show the available options::" msgstr "" +"La commande, si lancée avec ``-h``, montrera les options disponibles ::" -#: ../Doc/using/venv-create.inc :64 +#: ../Doc/using/venv-create.inc:67 msgid "" "Installs pip by default, added the ``--without-pip`` and ``--copies`` " "options" msgstr "" +"Installe pip par défaut, ajout des options ``--without-pip`` et ``--copies``" -#: ../Doc/using/venv-create.inc :68 +#: ../Doc/using/venv-create.inc:71 msgid "" "In earlier versions, if the target directory already existed, an error was " "raised, unless the ``--clear`` or ``--upgrade`` option was provided." msgstr "" +"Dans les versions précédentes, si le dossier de destination existait déjà, " +"une erreur était levée, sauf si l'option ``--clear`` ou ``--upgrade`` était " +"incluse." -#: ../Doc/using/venv-create.inc :72 +#: ../Doc/using/venv-create.inc:76 +msgid "" +"While symlinks are supported on Windows, they are not recommended. Of " +"particular note is that double-clicking ``python.exe`` in File Explorer will " +"resolve the symlink eagerly and ignore the virtual environment." +msgstr "" +"Bien que les liens symboliques soient pris en charge sous Windows, ils ne " +"sont pas recommandés. Il est particulièrement à noter que le double-clic sur " +"``python.exe`` dans l'Explorateur de fichiers suivra le lien symbolique et " +"ignorera l'environnement virtuel." + +#: ../Doc/using/venv-create.inc:80 msgid "" "The created ``pyvenv.cfg`` file also includes the ``include-system-site-" "packages`` key, set to ``true`` if ``venv`` is run with the ``--system-site-" "packages`` option, ``false`` otherwise." msgstr "" +"Le fichier crée ``pyenv.cfg`` inclus aussi la clé ``include-system-site-" +"packages``, dont la valeur est ``true`` si ``venv`` est lancé avec l'option " +"``--system-site-packages``, sinon sa valeur est ``false``." -#: ../Doc/using/venv-create.inc :76 +#: ../Doc/using/venv-create.inc:84 msgid "" "Unless the ``--without-pip`` option is given, :mod:`ensurepip` will be " "invoked to bootstrap ``pip`` into the virtual environment." msgstr "" +"Sauf si l'option ``--without-pip`` est incluse, :mod:`ensurepip` sera " +"invoqué pour amorcer ``pip`` dans l'environnement virtuel." -#: ../Doc/using/venv-create.inc :79 +#: ../Doc/using/venv-create.inc:87 msgid "" "Multiple paths can be given to ``venv``, in which case an identical virtual " "environment will be created, according to the given options, at each " "provided path." msgstr "" +"Plusieurs chemins peuvent être donnés à ``venv``, et dans ce cas un " +"environnement virtuel sera créé, en fonction des options incluses, à chaque " +"chemin donné." -#: ../Doc/using/venv-create.inc :83 +#: ../Doc/using/venv-create.inc:91 msgid "" "Once a virtual environment has been created, it can be \"activated\" using a " "script in the virtual environment's binary directory. The invocation of the " -"script is platform-specific:" +"script is platform-specific (`` must be replaced by the path of the " +"directory containing the virtual environment):" msgstr "" +"Une fois qu'un environnement virtuel est créé, il peut être \"activé\" en " +"utilisant un script dans le dossier binaire de l'environnement virtuel. " +"L'invocation de ce script est spécifique à chaque plateforme (`` doit " +"être remplacé par le chemin d'accès du répertoire contenant l'environnement " +"virtuel) :" -#: ../Doc/using/venv-create.inc :88 +#: ../Doc/using/venv-create.inc:97 msgid "Platform" msgstr "Plateforme" -#: ../Doc/using/venv-create.inc :88 +#: ../Doc/using/venv-create.inc:97 msgid "Shell" -msgstr "" +msgstr "Invite de commande" -#: ../Doc/using/venv-create.inc :88 +#: ../Doc/using/venv-create.inc:97 msgid "Command to activate virtual environment" msgstr "Commande pour activer l'environnement virtuel" -#: ../Doc/using/venv-create.inc :90 +#: ../Doc/using/venv-create.inc:99 msgid "Posix" msgstr "Posix" -#: ../Doc/using/venv-create.inc :90 +#: ../Doc/using/venv-create.inc:99 msgid "bash/zsh" msgstr "bash/zsh" -#: ../Doc/using/venv-create.inc :90 +#: ../Doc/using/venv-create.inc:99 msgid "$ source /bin/activate" -msgstr "$ source /bin/activate" +msgstr "``$ source /bin/activate``" -#: ../Doc/using/venv-create.inc :92 +#: ../Doc/using/venv-create.inc:101 msgid "fish" msgstr "fish" -#: ../Doc/using/venv-create.inc :92 +#: ../Doc/using/venv-create.inc:101 msgid "$ . /bin/activate.fish" -msgstr "$ . /bin/activate.fish" +msgstr "``$ . /bin/activate.fish``" -#: ../Doc/using/venv-create.inc :94 +#: ../Doc/using/venv-create.inc:103 msgid "csh/tcsh" msgstr "csh/tcsh" -#: ../Doc/using/venv-create.inc :94 +#: ../Doc/using/venv-create.inc:103 msgid "$ source /bin/activate.csh" -msgstr "$ source /bin/activate.csh" +msgstr "``$ source /bin/activate.csh``" -#: ../Doc/using/venv-create.inc :96 +#: ../Doc/using/venv-create.inc:105 msgid "Windows" msgstr "Windows" -#: ../Doc/using/venv-create.inc :96 +#: ../Doc/using/venv-create.inc:105 msgid "cmd.exe" msgstr "cmd.exe" -#: ../Doc/using/venv-create.inc :96 +#: ../Doc/using/venv-create.inc:105 msgid "C:\\\\> \\\\Scripts\\\\activate.bat" -msgstr "" +msgstr "``C:\\\\{venv}\\\\Scripts\\\\activate.bat``" -#: ../Doc/using/venv-create.inc :98 +#: ../Doc/using/venv-create.inc:107 msgid "PowerShell" msgstr "PowerShell" -#: ../Doc/using/venv-create.inc :98 +#: ../Doc/using/venv-create.inc:107 msgid "PS C:\\\\> \\\\Scripts\\\\Activate.ps1" -msgstr "" +msgstr "``PS C:\\\\> \\\\Scripts\\\\Activate.ps1``" -#: ../Doc/using/venv-create.inc :101 +#: ../Doc/using/venv-create.inc:110 msgid "" "You don't specifically *need* to activate an environment; activation just " "prepends the virtual environment's binary directory to your path, so that " @@ -242,9 +269,15 @@ msgid "" "scripts installed in a virtual environment should be runnable without " "activating it, and run with the virtual environment's Python automatically." msgstr "" +"Vous ne devez pas spécialement activer un environnement ; l'activation " +"ajoute juste le chemin du dossier de binaires de votre environnement virtuel " +"à votre PATH, pour que \"python\" invoque l’interpréteur Python de " +"l'environnement virtuel et que vous puissiez lancer des scripts installés " +"sans avoir à utiliser leur chemin complet. Cependant, tous les scripts " +"installés dans un environnement virtuel devraient être exécutables sans " +"l'activer, et se lancer avec l'environnement virtuel Python automatiquement." -#: ../Doc/using/venv-create.inc :108 +#: ../Doc/using/venv-create.inc:117 msgid "" "You can deactivate a virtual environment by typing \"deactivate\" in your " "shell. The exact mechanism is platform-specific: for example, the Bash " @@ -252,11 +285,16 @@ msgid "" "there are separate scripts called ``deactivate.bat`` and ``Deactivate.ps1`` " "which are installed when the virtual environment is created." msgstr "" +"Vous pouvez désactiver un environnement virtuel en écrivant \"**deactivate**" +"\" dans votre shell. Le mécanisme est spécifique à chaque plateforme : Par " +"exemple, le script d'activation pour Bash défini une fonction " +"\"**deactivate**\", alors que sur Windows il y a des scripts séparés appelés " +"``deactivate.bat`` et ``Deactivate.ps1`` qui sont installés quand " +"l'environnement virtuel est créé." -#: ../Doc/using/venv-create.inc :114 +#: ../Doc/using/venv-create.inc:123 msgid "``fish`` and ``csh`` activation scripts." -msgstr "" +msgstr "Les scripts d'activation pour ``fish`` et ``csh``." #: ../Doc/library/venv.rst:46 msgid "" @@ -266,12 +304,20 @@ msgid "" "installed in a \"system\" Python, i.e., one which is installed as part of " "your operating system." msgstr "" +"Un environnement virtuel est un environnement Python tel que l'interpréteur " +"Python, les bibliothèques et les scripts installés sont isolés de ceux " +"installés dans d'autres environnements virtuels, et (par défaut) de toutes " +"autres bibliothèques installées dans un Python \"système\", par exemple " +"celui qui est installé avec votre système d'exploitation." #: ../Doc/library/venv.rst:52 msgid "" "A virtual environment is a directory tree which contains Python executable " "files and other files which indicate that it is a virtual environment." msgstr "" +"Un environnement virtuel est une arborescence de dossiers qui contiens les " +"fichiers exécutables Python et autres fichiers qui indiquent que c'est un " +"environnement virtuel." #: ../Doc/library/venv.rst:55 msgid "" @@ -280,6 +326,11 @@ msgid "" "environment is active, they install Python packages into the virtual " "environment without needing to be told to do so explicitly." msgstr "" +"Les outils d'installations communs comme ``Setuptools`` et ``pip`` " +"fonctionnent comme prévu avec des environnements virtuels. En d'autres " +"termes, quand un environnement virtuel est actif, ils installent les paquets " +"Python dans l'environnement virtuel sans avoir besoin de leur préciser " +"explicitement." #: ../Doc/library/venv.rst:60 msgid "" @@ -293,6 +344,16 @@ msgid "" "is the same as :attr:`sys.base_exec_prefix` (they all point to a non-virtual " "environment Python installation)." msgstr "" +"Quand un environnement virtuel est actif (Par exemple quand l’interpréteur " +"Python de l'environnement virtuel est lancé), les attributs :attr:`sys." +"prefix` et :attr:`sys.exec_prefix` pointent vers le dossier racine de " +"l'environnement virtuel, alors que :attr:`sys.base_prefix` et :attr:`sys." +"base_exec_prefix` pointent vers l'installation de Python qui n'est pas celle " +"de l'environnement virtuel et qui a été utilisée pour créer l'environnement " +"virtuel. Si un environnement virtuel n'est pas actif, alors :attr:`sys." +"prefix` est égal à :attr:`sys.base_prefix` et :attr:`sys.exec_prefix` est " +"égal à :attr:`sys.base_exec_prefix` (ils pointent tous sur une installation " +"Python qui n'est pas un environnement virtuel)." #: ../Doc/library/venv.rst:71 msgid "" @@ -301,6 +362,10 @@ msgid "" "prevent projects being inadvertently installed outside of the virtual " "environment." msgstr "" +"Quand un environnement virtuel est actif, toute option qui change le chemin " +"d'installation sera ignoré de tous les fichiers de configuration " +"**distutils** pour éviter que des projets soient accidentellement installés " +"en dehors de l'environnement virtuel." #: ../Doc/library/venv.rst:76 msgid "" @@ -319,10 +384,25 @@ msgid "" "window should run the script with the correct interpreter without there " "needing to be any reference to its virtual environment in ``PATH``." msgstr "" +"Quand vous travaillez dans une invite de commande **shell**, les " +"utilisateurs peuvent activer un environnement virtuel en lançant un script " +"``activate`` situé dans le dossier des exécutables de l'environnement " +"virtuel (le nom de fichier précis dépends du shell utilisé), ce qui ajoute " +"le dossier des exécutables de l'environnement virtuel dans la variable " +"d'environnement ``PATH``. Il ne devrait jamais y avoir besoin dans d'autre " +"circonstances d'activer un environnement virtuel. Des scripts installés dans " +"un environnement virtuel ont un **shebang** qui pointe vers l’interpréteur " +"Python de l'environnement virtuel. Cela veux dire que le script sera lancé " +"avec cet interpréteur peut importe la valeur de ``PATH``. Sur Windows, le " +"**shebang** est interprété si vous avez le Lanceur Python pour Windows " +"installé (Cela a été ajouté à Python 3.3 -- Voir :pep:`397` pour plus de " +"détails). De ce fait, double cliquer un script installé dans une fenêtre de " +"l'Explorateur Windows devrai lancer le script avec le bon interpréteur sans " +"avoir besoin de référencer son environnement virtuel dans ``PATH``." #: ../Doc/library/venv.rst:95 msgid "API" -msgstr "" +msgstr "API" #: ../Doc/library/venv.rst:99 msgid "" @@ -331,12 +411,18 @@ msgid "" "customize environment creation according to their needs, the :class:" "`EnvBuilder` class." msgstr "" +"La méthode haut niveau décrite au dessus utilise une API simple qui permet à " +"des créateurs d'environnements virtuels externes de personnaliser la " +"création d'environnements virtuels basés sur leurs besoins, la classe :class:" +"`EnvBuilder`." #: ../Doc/library/venv.rst:107 msgid "" "The :class:`EnvBuilder` class accepts the following keyword arguments on " "instantiation:" msgstr "" +"La classe :class:`EnvBuilder` accepte les arguments suivants lors de " +"l'instanciation :" #: ../Doc/library/venv.rst:110 msgid "" @@ -344,81 +430,108 @@ msgid "" "Python site-packages should be available to the environment (defaults to " "``False``)." msgstr "" +"``system_site_packages`` -- Une valeur booléenne qui indique que les site-" +"packages du système Python devraient être disponibles dans l'environnement " +"virtuel (par défaut à ``False``)." #: ../Doc/library/venv.rst:113 msgid "" "``clear`` -- a Boolean value which, if true, will delete the contents of any " "existing target directory, before creating the environment." msgstr "" +"``clear`` -- Une valeur booléenne qui, si vraie, supprimera le contenu de " +"n'importe quel dossier existant cible, avant de créer l'environnement." #: ../Doc/library/venv.rst:116 msgid "" "``symlinks`` -- a Boolean value indicating whether to attempt to symlink the " -"Python binary (and any necessary DLLs or other binaries, e.g. ``pythonw." -"exe``), rather than copying." +"Python binary rather than copying." msgstr "" +"``symlinks`` -- Une valeur booléenne qui indique si il faut créer un lien " +"symbolique sur le binaire Python au lieu de le copier." -#: ../Doc/library/venv.rst:120 +#: ../Doc/library/venv.rst:119 msgid "" "``upgrade`` -- a Boolean value which, if true, will upgrade an existing " "environment with the running Python - for use when that Python has been " "upgraded in-place (defaults to ``False``)." msgstr "" +"``upgrade`` -- Une valeur booléenne qui, si vraie, mettra à jour un " +"environnement existant avec le Python lancé -- utilisé quand Python à été " +"mis a jour sur place (par défaut à ``False``)." -#: ../Doc/library/venv.rst:124 +#: ../Doc/library/venv.rst:123 msgid "" "``with_pip`` -- a Boolean value which, if true, ensures pip is installed in " "the virtual environment. This uses :mod:`ensurepip` with the ``--default-" "pip`` option." msgstr "" +"``with_pip`` -- Une valeur booléenne qui, si vraie, assure que pip est " +"installé dans l'environnement virtuel. Cela utilise :mod:`ensurepip` avec " +"l'option ``--default-pip``." -#: ../Doc/library/venv.rst:128 +#: ../Doc/library/venv.rst:127 msgid "" "``prompt`` -- a String to be used after virtual environment is activated " "(defaults to ``None`` which means directory name of the environment would be " "used)." msgstr "" +"``prompt`` -- Une chaine utilisée après que l'environnement virtuel est " +"activé (par défaut à ``None`` ce qui veux dire qu'il utilisera le nom du " +"dossier de l'environnement)." -#: ../Doc/library/venv.rst:132 ../Doc/library/venv.rst:240 +#: ../Doc/library/venv.rst:131 ../Doc/library/venv.rst:249 msgid "Added the ``with_pip`` parameter" -msgstr "" +msgstr "Ajout du paramètre ``with_pip``" -#: ../Doc/library/venv.rst:135 +#: ../Doc/library/venv.rst:134 ../Doc/library/venv.rst:252 msgid "Added the ``prompt`` parameter" -msgstr "" +msgstr "Ajout du paramètre ``prompt``" -#: ../Doc/library/venv.rst:139 +#: ../Doc/library/venv.rst:137 msgid "" "Creators of third-party virtual environment tools will be free to use the " "provided ``EnvBuilder`` class as a base class." msgstr "" +"Les créateurs des outils de création d'environnement virtuel externes seront " +"libres d'utiliser la classe ``EnvBuilder`` en tant que classe de base." -#: ../Doc/library/venv.rst:142 +#: ../Doc/library/venv.rst:140 msgid "The returned env-builder is an object which has a method, ``create``:" msgstr "" +"Le **env-builder** retourné est un objet qui a une méthode, ``create`` :" -#: ../Doc/library/venv.rst:146 +#: ../Doc/library/venv.rst:144 msgid "" "This method takes as required argument the path (absolute or relative to the " "current directory) of the target directory which is to contain the virtual " "environment. The ``create`` method will either create the environment in " "the specified directory, or raise an appropriate exception." msgstr "" +"Cette méthode prends en argument obligatoire le chemin (absolu ou relatif " +"par rapport au dossier courant) du dossier cible qui doit contenir " +"l'environnement virtuel. La méthode ``create`` doit soit créer un " +"environnement dans le dossier spécifié, soit lever une exception." -#: ../Doc/library/venv.rst:152 +#: ../Doc/library/venv.rst:150 msgid "" "The ``create`` method of the ``EnvBuilder`` class illustrates the hooks " "available for subclass customization::" msgstr "" +"La méthode ``create`` de la classe ``EnvBuilder`` illustre les points " +"d'entrées disponibles pour la personnalisation de sous-classes ::" -#: ../Doc/library/venv.rst:167 +#: ../Doc/library/venv.rst:165 msgid "" "Each of the methods :meth:`ensure_directories`, :meth:" "`create_configuration`, :meth:`setup_python`, :meth:`setup_scripts` and :" "meth:`post_setup` can be overridden." msgstr "" +"Chacune des méthodes :meth:`ensure_directories`, :meth:" +"`create_configuration`, :meth:`setup_python`, :meth:`setup_scripts` et :meth:" +"`post_setup` peuvent être écrasés." -#: ../Doc/library/venv.rst:173 +#: ../Doc/library/venv.rst:171 msgid "" "Creates the environment directory and all necessary directories, and returns " "a context object. This is just a holder for attributes (such as paths), for " @@ -426,40 +539,81 @@ msgid "" "long as either ``clear`` or ``upgrade`` were specified to allow operating on " "an existing environment directory." msgstr "" +"Crée un dossier d'environnement et tous les dossiers nécessaires, et " +"retourne un objet contexte. C'est juste un conteneur pour des attributs " +"(comme des chemins), qui sera utilisé par d'autres méthodes. Ces dossiers " +"peuvent déjà exister. tant que ``clear`` ou ``upgrade`` ont été spécifiés " +"pour permettre de telles opérations dans un dossier d'environnement existant." -#: ../Doc/library/venv.rst:181 +#: ../Doc/library/venv.rst:179 msgid "Creates the ``pyvenv.cfg`` configuration file in the environment." -msgstr "" +msgstr "Crée le fichier de configuration ``pyenv.cfg`` dans l'environnement." -#: ../Doc/library/venv.rst:185 +#: ../Doc/library/venv.rst:183 msgid "" -"Creates a copy of the Python executable (and, under Windows, DLLs) in the " -"environment. On a POSIX system, if a specific executable ``python3.x`` was " -"used, symlinks to ``python`` and ``python3`` will be created pointing to " -"that executable, unless files with those names already exist." +"Creates a copy or symlink to the Python executable in the environment. On " +"POSIX systems, if a specific executable ``python3.x`` was used, symlinks to " +"``python`` and ``python3`` will be created pointing to that executable, " +"unless files with those names already exist." msgstr "" +"Crée une copie ou un lien symbolique vers l'exécutable Python dans " +"l'environnement. Sur les systèmes POSIX, si un exécutable spécifique " +"``python3.x`` a été utilisé, des liens symboliques vers ``python`` et " +"``python3`` seront créés pointant vers cet exécutable, sauf si des fichiers " +"avec ces noms existent déjà." -#: ../Doc/library/venv.rst:193 +#: ../Doc/library/venv.rst:190 msgid "" "Installs activation scripts appropriate to the platform into the virtual " "environment." msgstr "" +"Installe les scripts d'activation appropriés à la plateforme dans " +"l'environnement virtuel." -#: ../Doc/library/venv.rst:198 +#: ../Doc/library/venv.rst:195 msgid "" "A placeholder method which can be overridden in third party implementations " "to pre-install packages in the virtual environment or perform other post-" "creation steps." msgstr "" +"Une méthode qui n'est la que pour se faire surcharger dans des " +"implémentation externes pour pré installer des paquets dans l'environnement " +"virtuel ou pour exécuter des étapes post-création." -#: ../Doc/library/venv.rst:202 +#: ../Doc/library/venv.rst:199 +msgid "" +"Windows now uses redirector scripts for ``python[w].exe`` instead of copying " +"the actual binaries. In 3.7.2 only :meth:`setup_python` does nothing unless " +"running from a build in the source tree." +msgstr "" +"Windows utilise maintenant des scripts de redirection pour ``python[w].exe`` " +"au lieu de copier les fichiers binaires. En 3.7.2 seulement :meth:" +"`setup_python` ne fait rien sauf s'il s'exécute à partir d'un *build* dans " +"l'arborescence source." + +#: ../Doc/library/venv.rst:204 +msgid "" +"Windows copies the redirector scripts as part of :meth:`setup_python` " +"instead of :meth:`setup_scripts`. This was not the case in 3.7.2. When using " +"symlinks, the original executables will be linked." +msgstr "" +"Windows copie les scripts de redirection dans le cadre de :meth:" +"`setup_python` au lieu de :meth:`setup_scripts`. Ce n'était pas le cas en " +"3.7.2. Lorsque vous utilisez des liens symboliques, les exécutables " +"originaux seront liés." + +#: ../Doc/library/venv.rst:209 msgid "" "In addition, :class:`EnvBuilder` provides this utility method that can be " "called from :meth:`setup_scripts` or :meth:`post_setup` in subclasses to " "assist in installing custom scripts into the virtual environment." msgstr "" +"De plus, :class:`EnvBuilder` propose cette méthode utilitaire qui peut être " +"appelée de :meth:`setup_scripts` ou :meth:`post_setup` dans des sous classes " +"pour assister dans l'installation de scripts customs dans l'environnement " +"virtuel." -#: ../Doc/library/venv.rst:208 +#: ../Doc/library/venv.rst:215 msgid "" "*path* is the path to a directory that should contain subdirectories \"common" "\", \"posix\", \"nt\", each containing scripts destined for the bin " @@ -467,66 +621,90 @@ msgid "" "corresponding to :data:`os.name` are copied after some text replacement of " "placeholders:" msgstr "" +"*path* corresponds au chemin vers le dossier qui contiens les sous dossiers " +"\"**common**\", \"**posix**\", \"**nt**\", chacun contenant des scripts " +"destinés pour le dossier \"**bin**\" dans l'environnement. Le contenu du " +"dossier \"**common**\" et le dossier correspondant à :data:`os.name` sont " +"copiés après quelque remplacement de texte temporaires :" -#: ../Doc/library/venv.rst:214 +#: ../Doc/library/venv.rst:221 msgid "" "``__VENV_DIR__`` is replaced with the absolute path of the environment " "directory." msgstr "" +"``__VENV_DIR__`` est remplacé avec le chemin absolu du dossier de " +"l'environnement." -#: ../Doc/library/venv.rst:217 +#: ../Doc/library/venv.rst:224 msgid "" "``__VENV_NAME__`` is replaced with the environment name (final path segment " "of environment directory)." msgstr "" +"``__VENV_NAME__`` est remplacé avec le nom de l'environnement (le dernier " +"segment du chemin vers le dossier de l'environnement)." -#: ../Doc/library/venv.rst:220 +#: ../Doc/library/venv.rst:227 msgid "" "``__VENV_PROMPT__`` is replaced with the prompt (the environment name " "surrounded by parentheses and with a following space)" msgstr "" +"``__VENV_PROMPT__`` est remplacé par le prompt (nom de l'environnement " +"entouré de parenthèses et avec un espace le suivant)." -#: ../Doc/library/venv.rst:223 +#: ../Doc/library/venv.rst:230 msgid "" "``__VENV_BIN_NAME__`` is replaced with the name of the bin directory (either " "``bin`` or ``Scripts``)." msgstr "" +"``__VENV_BIN_NAME__`` est remplacé par le nom du dossier **bin** (soit " +"``bin`` soit ``Scripts``)." -#: ../Doc/library/venv.rst:226 +#: ../Doc/library/venv.rst:233 msgid "" "``__VENV_PYTHON__`` is replaced with the absolute path of the environment's " "executable." msgstr "" +"``__VENV_PYTHON__`` est remplacé avec le chemin absolu de l’exécutable de " +"l'environnement." -#: ../Doc/library/venv.rst:229 +#: ../Doc/library/venv.rst:236 msgid "" "The directories are allowed to exist (for when an existing environment is " "being upgraded)." msgstr "" +"Les dossiers peuvent exister (pour quand un environnement existant est mis à " +"jour)." -#: ../Doc/library/venv.rst:232 +#: ../Doc/library/venv.rst:239 msgid "There is also a module-level convenience function:" -msgstr "" +msgstr "Il y a aussi une fonction pratique au niveau du module :" -#: ../Doc/library/venv.rst:237 +#: ../Doc/library/venv.rst:244 msgid "" "Create an :class:`EnvBuilder` with the given keyword arguments, and call " "its :meth:`~EnvBuilder.create` method with the *env_dir* argument." msgstr "" +"Crée une :class:`EnvBuilder` avec les arguments donnés, et appelle sa " +"méthode :meth:`~EnvBuilder.create` avec l'argument *env_dir*." -#: ../Doc/library/venv.rst:244 +#: ../Doc/library/venv.rst:256 msgid "An example of extending ``EnvBuilder``" -msgstr "" +msgstr "Un exemple d'extension de ``EnvBuilder``" -#: ../Doc/library/venv.rst:246 +#: ../Doc/library/venv.rst:258 msgid "" "The following script shows how to extend :class:`EnvBuilder` by implementing " "a subclass which installs setuptools and pip into a created virtual " "environment::" msgstr "" +"Le script qui suis montre comment étendre :class:`EnvBuilder` en " +"implémentant une sous-classe qui installe **setuptools** et **pip** dans un " +"environnement créé ::" -#: ../Doc/library/venv.rst:465 +#: ../Doc/library/venv.rst:477 msgid "" "This script is also available for download `online `_." msgstr "" +"Ce script est aussi disponible au téléchargement `en ligne `_." diff --git a/library/warnings.po b/library/warnings.po index 30c1dabb8..b96f0824c 100644 --- a/library/warnings.po +++ b/library/warnings.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-02-26 13:07+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\n" #: ../Doc/library/warnings.rst:2 msgid ":mod:`warnings` --- Warning control" -msgstr "" +msgstr ":mod:`warnings` --- Contrôle des alertes" #: ../Doc/library/warnings.rst:7 msgid "**Source code:** :source:`Lib/warnings.py`" @@ -30,6 +31,11 @@ msgid "" "program. For example, one might want to issue a warning when a program uses " "an obsolete module." msgstr "" +"Les messages d'avertissement sont généralement émis dans les situations où " +"il est utile d'alerter l'utilisateur d'un problème dans un programme, mais " +"qu'il n'est pas justifié de lever une exception et de le terminer. Par " +"exemple, on peut vouloir émettre un avertissement lorsqu'un programme " +"utilise un module obsolète." #: ../Doc/library/warnings.rst:18 msgid "" @@ -37,6 +43,9 @@ msgid "" "defined in this module. (C programmers use :c:func:`PyErr_WarnEx`; see :ref:" "`exceptionhandling` for details)." msgstr "" +"Les développeurs Python émettent des avertissements en appelant la fonction :" +"func:`warn` définie dans ce module. (Les développeurs C utilisent :c:func:" +"`PyErr_WarnEx` ; voir :ref:`exceptionhandling` pour plus d'informations)." #: ../Doc/library/warnings.rst:22 msgid "" @@ -47,6 +56,12 @@ msgid "" "source location where it is issued. Repetitions of a particular warning for " "the same source location are typically suppressed." msgstr "" +"Les messages d'avertissement sont normalement écrits sur ``sys.stderr``, " +"mais leurs effets peuvent être modifiés, il est possible d'ignorer tous les " +"avertissements ou au contraire les transformer en exceptions. L'effet des " +"avertissements peut varier en fonction de la catégorie d'avertissement (voir " +"ci-dessous), de son texte et d'où il est émis. Les répétitions d'un même " +"avertissement d'une même source sont généralement ignorés." #: ../Doc/library/warnings.rst:29 msgid "" @@ -55,6 +70,10 @@ msgid "" "next, if a message is to be issued, it is formatted and printed using a user-" "settable hook." msgstr "" +"La gestion des avertissements se fait en deux étapes : premièrement, chaque " +"fois qu'un avertissement est émis, le module détermine si un message doit " +"être émis ou non ; ensuite, si un message doit être émis, il est formaté et " +"affiché en utilisant une fonction qui peut être définie par l'utilisateur." #: ../Doc/library/warnings.rst:33 msgid "" @@ -63,6 +82,10 @@ msgid "" "be added to the filter by calling :func:`filterwarnings` and reset to its " "default state by calling :func:`resetwarnings`." msgstr "" +"Un filtre (une séquence de règles) est utilisé pour décider si un message " +"d'avertissement doit être émis ou non. Des règles peuvent être ajoutées au " +"filtre en appelant :func:`filterwarnings` et remises à leur état par défaut " +"en appelant :func:`resetwarnings`." #: ../Doc/library/warnings.rst:38 msgid "" @@ -71,22 +94,31 @@ msgid "" "the message by calling :func:`formatwarning`, which is also available for " "use by custom implementations." msgstr "" +"L'affichage des messages d'avertissement se fait en appelant la fonction :" +"func:`showwarning`, qui peut être redéfinie ; l'implémentation par défaut " +"formate le message en appelant :func:`formatwarning`, qui peut également " +"être réutilisée par une implémentation personnalisée." #: ../Doc/library/warnings.rst:44 msgid "" ":func:`logging.captureWarnings` allows you to handle all warnings with the " "standard logging infrastructure." msgstr "" +":func:`logging.captureWarnings` vous permet de gérer tous les avertissements " +"avec l'infrastructure de journalisation standard." #: ../Doc/library/warnings.rst:51 msgid "Warning Categories" -msgstr "" +msgstr "Catégories d'avertissement" #: ../Doc/library/warnings.rst:53 msgid "" "There are a number of built-in exceptions that represent warning categories. " "This categorization is useful to be able to filter out groups of warnings." msgstr "" +"Il existe un certain nombre d'exceptions natives qui représentent des " +"catégories d'avertissement. Cette catégorisation est utile pour filtrer les " +"groupes d'avertissements." #: ../Doc/library/warnings.rst:56 msgid "" @@ -94,6 +126,9 @@ msgid "" "exceptions>`, they are documented here, because conceptually they belong to " "the warnings mechanism." msgstr "" +"Bien qu'il s'agisse techniquement d'exceptions, les :ref:`exceptions natives " +"` sont documentées ici, parce qu'elles " +"appartiennent conceptuellement au mécanisme des avertissements." #: ../Doc/library/warnings.rst:60 msgid "" @@ -101,14 +136,20 @@ msgid "" "standard warning categories. A warning category must always be a subclass " "of the :exc:`Warning` class." msgstr "" +"Le code utilisateur peut définir des catégories d'avertissement " +"supplémentaires en héritant l'une des catégories d'avertissement standard. " +"Une catégorie d'avertissement doit toujours hériter de la classe :exc:" +"`Warning`." #: ../Doc/library/warnings.rst:64 msgid "The following warnings category classes are currently defined:" msgstr "" +"Les classes de catégories d'avertissement suivantes sont actuellement " +"définies :" #: ../Doc/library/warnings.rst:69 msgid "Class" -msgstr "" +msgstr "Classe" #: ../Doc/library/warnings.rst:69 msgid "Description" @@ -123,6 +164,8 @@ msgid "" "This is the base class of all warning category classes. It is a subclass " "of :exc:`Exception`." msgstr "" +"Il s'agit de la classe de base de toutes les classes de catégories " +"d'avertissement. C'est une sous-classe de :exc:`Exception`." #: ../Doc/library/warnings.rst:75 msgid ":exc:`UserWarning`" @@ -130,7 +173,7 @@ msgstr ":exc:`UserWarning`" #: ../Doc/library/warnings.rst:75 msgid "The default category for :func:`warn`." -msgstr "" +msgstr "Catégorie par défaut pour :func:`warn`." #: ../Doc/library/warnings.rst:77 msgid ":exc:`DeprecationWarning`" @@ -142,6 +185,9 @@ msgid "" "intended for other Python developers (ignored by default, unless triggered " "by code in ``__main__``)." msgstr "" +"Catégorie de base pour les avertissements sur les fonctionnalités obsolètes " +"lorsque ces avertissements sont destinés à d'autres développeurs Python " +"(ignorées par défaut, sauf si elles proviennent de ``__main__``)." #: ../Doc/library/warnings.rst:82 msgid ":exc:`SyntaxWarning`" @@ -150,6 +196,7 @@ msgstr ":exc:`SyntaxWarning`" #: ../Doc/library/warnings.rst:82 msgid "Base category for warnings about dubious syntactic features." msgstr "" +"Catégorie de base pour les avertissements concernant les syntaxes douteuses." #: ../Doc/library/warnings.rst:85 msgid ":exc:`RuntimeWarning`" @@ -158,6 +205,8 @@ msgstr ":exc:`RuntimeWarning`" #: ../Doc/library/warnings.rst:85 msgid "Base category for warnings about dubious runtime features." msgstr "" +"Catégorie de base pour les avertissements concernant les fonctionnalités " +"douteuses à l'exécution." #: ../Doc/library/warnings.rst:88 msgid ":exc:`FutureWarning`" @@ -168,6 +217,9 @@ msgid "" "Base category for warnings about deprecated features when those warnings are " "intended for end users of applications that are written in Python." msgstr "" +"Catégorie de base pour les avertissements concernant les fonctionnalités " +"obsolètes lorsque ces avertissements sont destinés aux utilisateurs finaux " +"des programmes écrits en Python." #: ../Doc/library/warnings.rst:93 msgid ":exc:`PendingDeprecationWarning`" @@ -178,6 +230,8 @@ msgid "" "Base category for warnings about features that will be deprecated in the " "future (ignored by default)." msgstr "" +"Catégorie de base pour les avertissements concernant les fonctionnalités qui " +"seront obsolètes dans le futur (ignorée par défaut)." #: ../Doc/library/warnings.rst:97 msgid ":exc:`ImportWarning`" @@ -188,6 +242,8 @@ msgid "" "Base category for warnings triggered during the process of importing a " "module (ignored by default)." msgstr "" +"Catégorie de base pour les avertissements déclenchés lors de l'importation " +"d'un module (ignoré par défaut)." #: ../Doc/library/warnings.rst:101 msgid ":exc:`UnicodeWarning`" @@ -195,7 +251,7 @@ msgstr ":exc:`UnicodeWarning`" #: ../Doc/library/warnings.rst:101 msgid "Base category for warnings related to Unicode." -msgstr "" +msgstr "Catégorie de base pour les avertissements relatifs à Unicode." #: ../Doc/library/warnings.rst:104 msgid ":exc:`BytesWarning`" @@ -205,6 +261,8 @@ msgstr ":exc:`BytesWarning`" msgid "" "Base category for warnings related to :class:`bytes` and :class:`bytearray`." msgstr "" +"Catégorie de base pour les avertissements relatifs à :class:`bytes` et :" +"class:`bytearray`." #: ../Doc/library/warnings.rst:107 msgid ":exc:`ResourceWarning`" @@ -213,6 +271,8 @@ msgstr ":exc:`ResourceWarning`" #: ../Doc/library/warnings.rst:107 msgid "Base category for warnings related to resource usage." msgstr "" +"Catégorie de base pour les avertissements relatifs à l'utilisation des " +"ressources." #: ../Doc/library/warnings.rst:111 msgid "" @@ -221,16 +281,23 @@ msgid "" "changing its behaviour. They are now distinguished based on their intended " "audience and the way they're handled by the default warnings filters." msgstr "" +"Avant, la différence entre :exc:`DeprecationWarning` et :exc:`FutureWarning` " +"était que l'un était dédié aux fonctionnalités retirées, et l'autre aux " +"fonctionnalités modifiées. La différence aujourd'hui est plutôt leur " +"audience et la façon dont ils sont traités par les filtres d'avertissement " +"par défaut." #: ../Doc/library/warnings.rst:122 msgid "The Warnings Filter" -msgstr "" +msgstr "Le filtre des avertissements" #: ../Doc/library/warnings.rst:124 msgid "" "The warnings filter controls whether warnings are ignored, displayed, or " "turned into errors (raising an exception)." msgstr "" +"Le filtre des avertissements contrôle si les avertissements sont ignorés, " +"affichés ou transformés en erreurs (ce qui lève une exception)." #: ../Doc/library/warnings.rst:127 msgid "" @@ -240,10 +307,15 @@ msgid "" "determines the disposition of the match. Each entry is a tuple of the form " "(*action*, *message*, *category*, *module*, *lineno*), where:" msgstr "" +"Conceptuellement, le filtre d'avertissements maintient une liste ordonnée " +"d'entrées ; chaque avertissement est comparé à chaque entrée de la liste " +"jusqu'à ce qu'une correspondance soit trouvée ; l'entrée détermine l'action " +"à effectuer. Chaque entrée est un quintuplet de la forme (*action*, " +"*message*, *catégorie*, *module*, *lineno*), où :" #: ../Doc/library/warnings.rst:133 msgid "*action* is one of the following strings:" -msgstr "" +msgstr "*action* est l'une des chaînes de caractères suivantes :" #: ../Doc/library/warnings.rst:136 msgid "Value" @@ -251,7 +323,7 @@ msgstr "Valeur" #: ../Doc/library/warnings.rst:136 msgid "Disposition" -msgstr "" +msgstr "Action" #: ../Doc/library/warnings.rst:138 msgid "``\"default\"``" @@ -262,6 +334,8 @@ msgid "" "print the first occurrence of matching warnings for each location (module + " "line number) where the warning is issued" msgstr "" +"affiche la première occurrence des avertissements correspondants pour chaque " +"emplacement (module + numéro de ligne) où l'avertissement est émis" #: ../Doc/library/warnings.rst:142 msgid "``\"error\"``" @@ -269,7 +343,7 @@ msgstr "``\"error\"``" #: ../Doc/library/warnings.rst:142 msgid "turn matching warnings into exceptions" -msgstr "" +msgstr "transforme les avertissements correspondants en exceptions" #: ../Doc/library/warnings.rst:144 msgid "``\"ignore\"``" @@ -277,7 +351,7 @@ msgstr "``\"ignore\"``" #: ../Doc/library/warnings.rst:144 msgid "never print matching warnings" -msgstr "" +msgstr "ignore les avertissements correspondants" #: ../Doc/library/warnings.rst:146 msgid "``\"always\"``" @@ -285,7 +359,7 @@ msgstr "``\"always\"``" #: ../Doc/library/warnings.rst:146 msgid "always print matching warnings" -msgstr "" +msgstr "affiche toujours les avertissements correspondants" #: ../Doc/library/warnings.rst:148 msgid "``\"module\"``" @@ -296,6 +370,8 @@ msgid "" "print the first occurrence of matching warnings for each module where the " "warning is issued (regardless of line number)" msgstr "" +"affiche la première occurrence des avertissements correspondants pour chaque " +"module où l'avertissement est émis (quel que soit le numéro de ligne)" #: ../Doc/library/warnings.rst:152 msgid "``\"once\"``" @@ -305,6 +381,8 @@ msgstr "``\"once\"``" msgid "" "print only the first occurrence of matching warnings, regardless of location" msgstr "" +"n'affiche que la première occurrence des avertissements correspondants, quel " +"que soit l'endroit où ils se trouvent" #: ../Doc/library/warnings.rst:156 msgid "" @@ -312,40 +390,55 @@ msgid "" "warning message must match. The expression is compiled to always be case-" "insensitive." msgstr "" +"*message* est une chaîne de caractères contenant une expression régulière " +"avec laquelle le début du message d'avertissement doit correspondre. " +"L'expression est compilée pour être toujours insensible à la casse." #: ../Doc/library/warnings.rst:160 msgid "" "*category* is a class (a subclass of :exc:`Warning`) of which the warning " "category must be a subclass in order to match." msgstr "" +"*category* est une classe (une sous-classe de :exc:`Warning`) dont la " +"catégorie d'avertissement doit être une sous-classe afin de correspondre." #: ../Doc/library/warnings.rst:163 msgid "" "*module* is a string containing a regular expression that the module name " "must match. The expression is compiled to be case-sensitive." msgstr "" +"*module* est une chaîne de caractères contenant une expression régulière " +"avec laquelle le nom du module doit correspondre. L'expression est compilée " +"pour être sensible à la casse." #: ../Doc/library/warnings.rst:166 msgid "" "*lineno* is an integer that the line number where the warning occurred must " "match, or ``0`` to match all line numbers." msgstr "" +"*lineno* est le numéro de ligne d'où l'avertissement doit provenir, ou ``0`` " +"pour correspondre à tous les numéros de ligne." #: ../Doc/library/warnings.rst:169 msgid "" "Since the :exc:`Warning` class is derived from the built-in :exc:`Exception` " "class, to turn a warning into an error we simply raise ``category(message)``." msgstr "" +"Puisque que la classe :exc:`Warning` hérite de la classe :exc:`Exception`, " +"pour transformer un avertissement en erreur, il suffit de lever " +"``category(message)``." #: ../Doc/library/warnings.rst:172 msgid "" "If a warning is reported and doesn't match any registered filter then the " "\"default\" action is applied (hence its name)." msgstr "" +"Si un avertissement est signalé et ne correspond à aucun filtre enregistré, " +"l'action ``default`` est appliquée (d'où son nom)." #: ../Doc/library/warnings.rst:179 msgid "Describing Warning Filters" -msgstr "" +msgstr "Rédaction de filtres d'avertissement" #: ../Doc/library/warnings.rst:181 msgid "" @@ -356,12 +449,21 @@ msgid "" "parses these when it is first imported (invalid options are ignored, after " "printing a message to ``sys.stderr``)." msgstr "" +"Le filtre des avertissements est initialisé par les options :option:`-W` " +"passées à la ligne de commande de l'interpréteur Python et la variable " +"d'environnement :envvar:`PYTHONWARNINGS`. L'interpréteur enregistre les " +"arguments de toutes les entrées fournies sans interprétation dans ``sys." +"warnoptions`` ; le module :mod:`warnings` les analyse lors de la première " +"importation (les options invalides sont ignorées, et un message d'erreur est " +"envoyé à ``sys.stderr``)." #: ../Doc/library/warnings.rst:188 msgid "" "Individual warnings filters are specified as a sequence of fields separated " "by colons::" msgstr "" +"Les filtres d'avertissement individuels sont décrits sous la forme d'une " +"séquence de champs séparés par des deux-points ::" #: ../Doc/library/warnings.rst:193 msgid "" @@ -372,6 +474,12 @@ msgid "" "they're applied left-to-right, and the most recently applied filters take " "precedence over earlier ones)." msgstr "" +"La signification de chacun de ces champs est décrite dans :ref:`warning-" +"filter`. Plusieurs filtres peuvent être écrits en une seule ligne (comme " +"pour :envvar:`PYTHONWARNINGS`), ils sont dans ce cas séparés par des " +"virgules, et les filtres listés plus en dernier ont priorité sur ceux qui " +"les précèdent (car ils sont appliqués de gauche à droite, et les filtres les " +"plus récemment appliqués ont priorité sur les précédents)." #: ../Doc/library/warnings.rst:200 msgid "" @@ -379,10 +487,13 @@ msgid "" "particular category, or warnings raised by particular modules or packages. " "Some examples::" msgstr "" +"Les filtres d'avertissement couramment utilisés s'appliquent à tous les " +"avertissements, aux avertissements d'une catégorie particulière ou aux " +"avertissements émis par certains modules ou paquets. Quelques exemples ::" #: ../Doc/library/warnings.rst:217 msgid "Default Warning Filter" -msgstr "" +msgstr "Filtre d'avertissement par défaut" #: ../Doc/library/warnings.rst:219 msgid "" @@ -390,28 +501,40 @@ msgid "" "by the :option:`-W` command-line option, the :envvar:`PYTHONWARNINGS` " "environment variable and calls to :func:`filterwarnings`." msgstr "" +"Par défaut, Python installe plusieurs filtres d'avertissement, qui peuvent " +"être outrepassés par l'option :option:`-W` en ligne de commande, la variable " +"d'environnement :envvar:`PYTHONWARNINGS` et les appels à :func:" +"`filterwarnings`." #: ../Doc/library/warnings.rst:223 msgid "" "In regular release builds, the default warning filter has the following " "entries (in order of precedence)::" msgstr "" +"Dans les versions standard publiées de Python, le filtre d'avertissement par " +"défaut a les entrées suivantes (par ordre de priorité) ::" #: ../Doc/library/warnings.rst:232 msgid "In debug builds, the list of default warning filters is empty." msgstr "" +"Dans les versions de débogage, la liste des filtres d'avertissement par " +"défaut est vide." #: ../Doc/library/warnings.rst:234 msgid "" ":exc:`DeprecationWarning` is now ignored by default in addition to :exc:" "`PendingDeprecationWarning`." msgstr "" +":exc:`DeprecationWarning` est maintenant ignoré par défaut en plus de :exc:" +"`PendingDeprecationWarning`." #: ../Doc/library/warnings.rst:238 msgid "" ":exc:`DeprecationWarning` is once again shown by default when triggered " "directly by code in ``__main__``." msgstr "" +":exc:`DeprecationWarning` est à nouveau affiché par défaut lorsqu'il " +"provient directement de ``__main__``." #: ../Doc/library/warnings.rst:242 msgid "" @@ -419,10 +542,13 @@ msgid "" "instead configured via :data:`sys.warnoptions` when :option:`-b` is " "specified twice." msgstr "" +":exc:`BytesWarning` n'apparaît plus dans la liste de filtres par défaut et " +"est configuré via :data:`sys.warnoptions` lorsque l'option :option:`-b` est " +"donnée deux fois." #: ../Doc/library/warnings.rst:251 msgid "Overriding the default filter" -msgstr "" +msgstr "Outrepasser le filtre par défaut" #: ../Doc/library/warnings.rst:253 msgid "" @@ -433,6 +559,12 @@ msgid "" "can be used as a marker to indicate whether or not warnings should be " "disabled::" msgstr "" +"Les développeurs d'applications écrites en Python peuvent souhaiter cacher " +"*tous* les avertissements Python à leurs utilisateurs, et ne les afficher " +"que lorsqu'ils exécutent des tests ou travaillent sur l'application. " +"L'attribut :data:`sys.warnoptions` utilisé pour passer les configurations de " +"filtre à l'interpréteur peut être utilisé comme marqueur pour indiquer si " +"les avertissements doivent être ou non désactivés ::" #: ../Doc/library/warnings.rst:265 msgid "" @@ -440,6 +572,9 @@ msgid "" "that *all* warnings are displayed by default for the code under test, using " "code like::" msgstr "" +"Les développeurs d'exécuteurs de test pour le code Python sont invités à " +"s'assurer que *tous* les avertissements sont affichés par défaut pour le " +"code en cours de test, en utilisant par exemple ::" #: ../Doc/library/warnings.rst:276 msgid "" @@ -448,10 +583,16 @@ msgid "" "messages are made visible by default, using code like the following (where " "``user_ns`` is the module used to execute code entered interactively)::" msgstr "" +"Enfin, les développeurs d'interpréteurs de commandes interactifs qui " +"exécutent du code utilisateur dans un espace de nommage autre que " +"``__main__`` sont invités à s'assurer que les messages :exc:" +"`DeprecationWarning` sont rendus visibles par défaut, en utilisant le code " +"suivant (où ``user_ns`` est le module utilisé pour exécuter le code entré " +"interactivement) ::" #: ../Doc/library/warnings.rst:289 msgid "Temporarily Suppressing Warnings" -msgstr "" +msgstr "Suppression temporaire des avertissements" #: ../Doc/library/warnings.rst:291 msgid "" @@ -460,6 +601,12 @@ msgid "" "have been explicitly configured via the command line), then it is possible " "to suppress the warning using the :class:`catch_warnings` context manager::" msgstr "" +"Si vous utilisez un code dont vous savez qu'il va déclencher un " +"avertissement, comme une fonction obsolète, mais que vous ne voulez pas voir " +"l'avertissement (même si les avertissements ont été explicitement configurés " +"via la ligne de commande), alors il est possible de supprimer " +"l'avertissement en utilisant le gestionnaire de contexte :class:" +"`catch_warnings` ::" #: ../Doc/library/warnings.rst:305 msgid "" @@ -470,10 +617,18 @@ msgid "" "threaded application. If two or more threads use the :class:`catch_warnings` " "context manager at the same time, the behavior is undefined." msgstr "" +"Dans le gestionnaire de contexte, tous les avertissements sont simplement " +"ignorés. Ceci vous permet d'utiliser du code déclaré obsolète sans voir " +"l'avertissement tout en ne supprimant pas l'avertissement pour un autre code " +"qui pourrait ne pas être conscient de son utilisation de code déprécié. " +"Remarque : ceci ne peut être garanti que dans une application utilisant un " +"seul fil d'exécution. Si deux ou plusieurs *threads* utilisent le " +"gestionnaire de contexte :class:`catch_warnings` en même temps, le " +"comportement est indéfini." #: ../Doc/library/warnings.rst:317 msgid "Testing Warnings" -msgstr "" +msgstr "Tester les avertissements" #: ../Doc/library/warnings.rst:319 msgid "" @@ -482,6 +637,10 @@ msgid "" "facilitate your testing. For instance, do the following to capture all " "raised warnings to check::" msgstr "" +"Pour tester les avertissements générés par le code, utilisez le gestionnaire " +"de contexte :class:`catch_warnings`. Avec lui, vous pouvez temporairement " +"modifier le filtre d'avertissements pour faciliter votre test. Par exemple, " +"procédez comme suit pour capturer tous les avertissements levés à vérifier ::" #: ../Doc/library/warnings.rst:339 msgid "" @@ -491,6 +650,12 @@ msgid "" "filters are set the warning will not be seen again unless the warnings " "registry related to the warning has been cleared." msgstr "" +"Vous pouvez aussi faire en sorte que tous les avertissements soient des " +"exceptions en utilisant ``error`` au lieu de ``always``. Il faut savoir que " +"si un avertissement a déjà été émis à cause d'une règle ``once`` ou " +"``default``, quel que soit le filtre activé, l'avertissement ne sera pas " +"revu à moins que le registre des avertissements lié à l'avertissement ait " +"été vidé." #: ../Doc/library/warnings.rst:345 msgid "" @@ -502,6 +667,15 @@ msgid "" "application. If two or more threads use the :class:`catch_warnings` context " "manager at the same time, the behavior is undefined." msgstr "" +"A sa sortie, le gestionnaire de contexte restaure le filtre des " +"avertissements dans l'état où il était au démarrage du contexte. Cela " +"empêche les tests de changer le filtre d'avertissements de manière " +"inattendue entre les tests et d'aboutir à des résultats de test " +"indéterminés. La fonction :func:`showwarning` du module est également " +"restaurée à sa valeur originale. Remarque : ceci ne peut être garanti que " +"dans une application *mono-threadées*. Si deux ou plusieurs fils d'exécution " +"utilisent le gestionnaire de contexte :class:`catch_warnings` en même temps, " +"le comportement est indéfini." #: ../Doc/library/warnings.rst:353 msgid "" @@ -512,10 +686,18 @@ msgid "" "continues to increase after each operation, or else delete the previous " "entries from the warnings list before each new operation)." msgstr "" +"Lorsque vous testez plusieurs opérations qui provoquent le même type " +"d'avertissement, il est important de les tester d'une manière qui confirme " +"que chaque opération provoque un nouvel avertissement (par exemple, " +"définissez les avertissements comme exceptions et vérifiez que les " +"opérations provoquent des exceptions, vérifiez que la longueur de la liste " +"des avertissements continue à augmenter après chaque opération, ou bien " +"supprimez les entrées précédentes de la liste des avertissements avant " +"chaque nouvelle opération)." #: ../Doc/library/warnings.rst:364 msgid "Updating Code For New Versions of Dependencies" -msgstr "" +msgstr "Mise à jour du code pour les nouvelles versions des dépendances" #: ../Doc/library/warnings.rst:366 msgid "" @@ -523,6 +705,9 @@ msgid "" "(rather than end users of applications written in Python) are ignored by " "default." msgstr "" +"Les catégories d'avertissement qui intéressent principalement les " +"développeurs Python (plutôt que les utilisateurs finaux d'applications " +"écrites en Python) sont ignorées par défaut." #: ../Doc/library/warnings.rst:369 msgid "" @@ -532,6 +717,12 @@ msgid "" "order to receive timely notifications of future breaking API changes " "(whether in the standard library or third party packages)." msgstr "" +"Notamment, cette liste \"ignorés par défaut\" inclut :exc:" +"`DeprecationWarning` (pour chaque module sauf ``__main__``), ce qui signifie " +"que les développeurs doivent s'assurer de tester leur code avec des " +"avertissements généralement ignorés rendus visibles afin de recevoir des " +"notifications rapides des changements d'API (que ce soit dans la " +"bibliothèque standard ou les paquets tiers)." #: ../Doc/library/warnings.rst:375 msgid "" @@ -539,6 +730,10 @@ msgid "" "runner will take care of implicitly enabling all warnings when running tests " "(the test runner provided by the :mod:`unittest` module does this)." msgstr "" +"Dans le cas idéal, le code dispose d'une suite de tests appropriée, et le " +"testeur se charge d'activer implicitement tous les avertissements lors de " +"l'exécution des tests (le testeur fourni par le module :mod:`unittest` le " +"fait)." #: ../Doc/library/warnings.rst:379 msgid "" @@ -551,10 +746,19 @@ msgid "" "W` (e.g. :option:`!-W error`). See the :option:`-W` flag for more details on " "what is possible." msgstr "" +"Dans des cas moins idéaux, l'utilisation de d'interfaces obsolète peut être " +"testé en passant :option:`-Wd <-W>` à l'interpréteur Python (c'est une " +"abréviation pour :option:`!-W default`) ou en définissant " +"``PYTHONWARNINGS=default`` dans l'environnement. Ceci permet la gestion par " +"défaut de tous les avertissements, y compris ceux qui sont ignorés par " +"défaut. Pour changer l'action prise pour les avertissements rencontrés, vous " +"pouvez changer quel argument est passé à :option:`-W` (par exemple :option:" +"`!-W error`). Voir l'option :option:`-W` pour plus de détails sur ce qui est " +"possible." #: ../Doc/library/warnings.rst:392 msgid "Available Functions" -msgstr "" +msgstr "Fonctions disponibles" #: ../Doc/library/warnings.rst:397 msgid "" @@ -568,6 +772,15 @@ msgid "" "The *stacklevel* argument can be used by wrapper functions written in " "Python, like this::" msgstr "" +"Émet, ignore, ou transforme en exception un avertissement. L'argument " +"*category*, s'il est donné, doit être une classe de catégorie " +"d'avertissement (voir ci-dessus) ; et vaut par défaut :exc:`UserWarning`. " +"Aussi *message* peut être une instance de :exc:`Warning', auquel cas " +"*category* sera ignoré et ``message.__class__`` sera utilisé. Dans ce cas, " +"le texte du message sera ``str(message)``. Cette fonction lève une exception " +"si cet avertissement particulier émis est transformé en erreur par le filtre " +"des avertissements, voir ci-dessus. L'argument *stacklevel* peut être " +"utilisé par les fonctions *wrapper* écrites en Python, comme ceci ::" #: ../Doc/library/warnings.rst:409 msgid "" @@ -575,16 +788,21 @@ msgid "" "the source of :func:`deprecation` itself (since the latter would defeat the " "purpose of the warning message)." msgstr "" +"Fait en sorte que l'avertissement se réfère à l'appelant de :func:" +"`deprecation` plutôt qu'à la source de :func:`deprecation` elle-même " +"(puisque celle-ci irait à l'encontre du but du message d'avertissement)." #: ../Doc/library/warnings.rst:413 ../Doc/library/warnings.rst:436 msgid "" "*source*, if supplied, is the destroyed object which emitted a :exc:" "`ResourceWarning`." msgstr "" +"*source*, s'il est fourni, est l'objet détruit qui a émis un :exc:" +"`ResourceWarning`." #: ../Doc/library/warnings.rst:416 msgid "Added *source* parameter." -msgstr "" +msgstr "Ajout du paramètre *source*." #: ../Doc/library/warnings.rst:422 msgid "" @@ -597,6 +815,15 @@ msgid "" "of :exc:`Warning` or *message* may be a :exc:`Warning` instance, in which " "case *category* will be ignored." msgstr "" +"Il s'agit d'une interface de bas niveau pour la fonctionnalité de :func:" +"`warn`, en passant explicitement le message, la catégorie, le nom de fichier " +"et le numéro de ligne, et éventuellement le nom du module et le registre " +"(qui devrait être le dictionnaire ``__warningregistry__`` du module). Le " +"nom de module par défaut est le nom de fichier sans ``.py`` ; si aucun " +"registre n'est passé, l'avertissement n'est jamais supprimé. *message* doit " +"être une chaîne de caractères et *category* une sous-classe de :exc:" +"`Warning` ou *message* peut être une instance de :exc:`Warning`, auquel cas " +"*category* sera ignoré." #: ../Doc/library/warnings.rst:431 msgid "" @@ -605,10 +832,14 @@ msgid "" "displaying source for modules found in zipfiles or other non-filesystem " "import sources)." msgstr "" +"*module_globals*, s'il est fourni, doit être l'espace de nommage global " +"utilisé par le code pour lequel l'avertissement est émis. (Cet argument est " +"utilisé pour afficher les sources des modules trouvés dans les fichiers zip " +"ou d'autres sources d'importation hors du système de fichiers)." #: ../Doc/library/warnings.rst:439 msgid "Add the *source* parameter." -msgstr "" +msgstr "Ajout du paramètre *source*." #: ../Doc/library/warnings.rst:445 msgid "" @@ -620,6 +851,13 @@ msgid "" "message; if *line* is not supplied, :func:`showwarning` will try to read the " "line specified by *filename* and *lineno*." msgstr "" +"Écrit un avertissement dans un fichier. L'implémentation par défaut appelle " +"``format warning(message, category, filename, lineno, line)``et écrit la " +"chaîne résultante dans *file*, qui par défaut est ``sys.stderr``. Vous " +"pouvez remplacer cette fonction par n'importe quel appelable en l'affectant " +"à ``warnings.showwarning``. *line* est une ligne de code source à inclure " +"dans le message d'avertissement ; si *line* n'est pas fourni, :func:`show " +"warning` essaiera de lire la ligne spécifiée par *filename* et *lineno*." #: ../Doc/library/warnings.rst:456 msgid "" @@ -629,6 +867,11 @@ msgid "" "`formatwarning` will try to read the line specified by *filename* and " "*lineno*." msgstr "" +"Formate un avertissement de la manière standard. Ceci renvoie une chaîne " +"pouvant contenir des retours à la ligne se termine par un retour à la " +"ligne. *line* est une ligne de code source à inclure dans le message " +"d'avertissement ; si *line* n'est pas fourni, :func:`formatwarning` essaiera " +"de lire la ligne spécifiée par *filename* et *lineno*." #: ../Doc/library/warnings.rst:465 msgid "" @@ -641,6 +884,13 @@ msgid "" "particular warning. Omitted arguments default to a value that matches " "everything." msgstr "" +"Insère une entrée dans la liste de :ref:`warning filter specifications " +"`. L'entrée est insérée à l'avant par défaut ; si *append* " +"est vrai, elle est insérée à la fin. Il vérifie le type des arguments, " +"compile les expressions régulières *message* et *module*, et les insère sous " +"forme de tuple dans la liste des filtres d'avertissements. Les entrées plus " +"proches du début de la liste ont priorité sur les entrées plus loin dans la " +"liste. Les arguments omis ont par défaut une valeur qui correspond à tout." #: ../Doc/library/warnings.rst:477 msgid "" @@ -650,6 +900,12 @@ msgid "" "inserted always matches any message in any module as long as the category " "and line number match." msgstr "" +"Insère une entrée simple dans la liste de :ref:`spécifications du filtre " +"d'avertissements `. La signification des paramètres de " +"fonction est la même que pour :func:`filterwarnings`, mais les expressions " +"régulières ne sont pas nécessaires car le filtre inséré correspond toujours " +"à n'importe quel message dans n'importe quel module tant que la catégorie et " +"le numéro de ligne correspondent." #: ../Doc/library/warnings.rst:486 msgid "" @@ -657,10 +913,14 @@ msgid "" "to :func:`filterwarnings`, including that of the :option:`-W` command line " "options and calls to :func:`simplefilter`." msgstr "" +"Réinitialise le filtre des avertissements. Ceci supprime l'effet de tous " +"les appels précédents à :func:`filterwarnings`, y compris celui de l'option :" +"option:`-W` des options de ligne de commande et des appels à :func:" +"`simplefilter`." #: ../Doc/library/warnings.rst:492 msgid "Available Context Managers" -msgstr "" +msgstr "Gestionnaires de contexte disponibles" #: ../Doc/library/warnings.rst:496 msgid "" @@ -672,6 +932,14 @@ msgid "" "(which also suppresses output to ``sys.stdout``). Each object in the list " "has attributes with the same names as the arguments to :func:`showwarning`." msgstr "" +"Un gestionnaire de contexte qui copie et, à la sortie, restaure le filtre " +"des avertissements et la fonction :func:`showwarning`. Si l'argument " +"*record* est :const:`False` (par défaut), le gestionnaire de contexte " +"retourne :class:`None` en entrant. Si *record* est :const:`True`, une liste " +"est renvoyée qui est progressivement remplie d'objets comme vus par une " +"fonction custom :func:`showwarning' (qui supprime également la sortie vers " +"``sys.stdout``). Chaque objet de la liste a des attributs avec les mêmes " +"noms que les arguments de :func:`showwarning`." #: ../Doc/library/warnings.rst:505 msgid "" @@ -679,6 +947,10 @@ msgid "" "returned when you import :mod:`warnings` whose filter will be protected. " "This argument exists primarily for testing the :mod:`warnings` module itself." msgstr "" +"L'argument *module* prend un module qui sera utilisé à la place du module " +"renvoyé lors de l'importation :mod:`warnings` dont le filtre sera protégé. " +"Cet argument existe principalement pour tester le module :mod:`warnings` lui-" +"même." #: ../Doc/library/warnings.rst:512 msgid "" @@ -687,3 +959,8 @@ msgid "" "filter specifications. This means the context manager is modifying global " "state and therefore is not thread-safe." msgstr "" +"Le gestionnaire :class:`catch_warnings` fonctionne en remplaçant puis en " +"restaurant plus tard la fonction :func:`showwarning` du module et la liste " +"interne des spécifications du filtre. Cela signifie que le gestionnaire de " +"contexte modifie l'état global et n'est donc pas prévisible avec plusieurs " +"fils d'exécution." diff --git a/library/wave.po b/library/wave.po index 9fd6d4eec..b1f7344ca 100644 --- a/library/wave.po +++ b/library/wave.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2017-08-10 00:54+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-05-31 15:21+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.0.6\n" #: ../Doc/library/wave.rst:2 msgid ":mod:`wave` --- Read and write WAV files" -msgstr "" +msgstr ":mod:`wave` --- Lecture et écriture des fichiers WAV" #: ../Doc/library/wave.rst:10 msgid "**Source code:** :source:`Lib/wave.py`" @@ -29,16 +29,21 @@ msgid "" "format. It does not support compression/decompression, but it does support " "mono/stereo." msgstr "" +"Le module :mod:`wave` fournit une interface pratique pour le format de son " +"WAV. Il ne gère pas la compression ni la décompression, mais gère le mono et " +"le stéréo." #: ../Doc/library/wave.rst:17 msgid "The :mod:`wave` module defines the following function and exception:" -msgstr "" +msgstr "Le module :mod:`wave` définit la fonction et l'exception suivante :" #: ../Doc/library/wave.rst:22 msgid "" "If *file* is a string, open the file by that name, otherwise treat it as a " "file-like object. *mode* can be:" msgstr "" +"Si *file* est une chaîne de caractères, ouvre le fichier sous ce nom, sinon, " +"il est traité comme un objet de type fichier. *mode* peut être :" #: ../Doc/library/wave.rst:26 msgid "``'rb'``" @@ -46,7 +51,7 @@ msgstr "``'rb'``" #: ../Doc/library/wave.rst:26 msgid "Read only mode." -msgstr "" +msgstr "Mode lecture seule." #: ../Doc/library/wave.rst:29 msgid "``'wb'``" @@ -54,11 +59,13 @@ msgstr "``'wb'``" #: ../Doc/library/wave.rst:29 msgid "Write only mode." -msgstr "" +msgstr "Mode écriture seule." #: ../Doc/library/wave.rst:31 msgid "Note that it does not allow read/write WAV files." msgstr "" +"Notez que ce module ne permet pas de manipuler des fichiers WAV en lecture/" +"écriture." #: ../Doc/library/wave.rst:33 msgid "" @@ -67,6 +74,10 @@ msgid "" "file-like object is passed as *file*, ``file.mode`` is used as the default " "value for *mode*." msgstr "" +"Un *mode* ``'rb'`` renvoie un objet :class:`Wave_read`, alors qu'un *mode* " +"``'wb'`` renvoie un objet :class:`Wave_write`. Si *mode* est omis et qu'un " +"objet de type fichier est donné au paramètre *file*, ``file.mode`` est " +"utilisé comme valeur par défaut pour *mode*." #: ../Doc/library/wave.rst:38 msgid "" @@ -74,69 +85,85 @@ msgid "" "its :meth:`close` method is called; it is the caller's responsibility to " "close the file object." msgstr "" +"Si vous donnez un objet de type fichier, l'objet *wave* ne le ferme pas " +"lorsque sa méthode :meth:`close` est appelée car c'est l'appelant qui est " +"responsable de la fermeture." #: ../Doc/library/wave.rst:42 msgid "" "The :func:`.open` function may be used in a :keyword:`with` statement. When " -"the :keyword:`with` block completes, the :meth:`Wave_read.close() ` or :meth:`Wave_write.close() ` " "method is called." msgstr "" +"La fonction :func:`.open` peut être utilisée dans une instruction :keyword:" +"`with`. Lorsque le :keyword:`!with` est terminé, la méthode :meth:`Wave_read." +"close() ` ou la méthode :meth:`Wave_write.close() " +"` est appelée." #: ../Doc/library/wave.rst:47 ../Doc/library/wave.rst:170 msgid "Added support for unseekable files." -msgstr "" +msgstr "Ajout de la gestion des fichiers non navigables." #: ../Doc/library/wave.rst:52 msgid "A synonym for :func:`.open`, maintained for backwards compatibility." -msgstr "" +msgstr "Un synonyme de :func:`.open`, maintenu pour la rétrocompatibilité." #: ../Doc/library/wave.rst:59 msgid "" "An error raised when something is impossible because it violates the WAV " "specification or hits an implementation deficiency." msgstr "" +"Une erreur est levée lorsque quelque chose est impossible car elle enfreint " +"la spécification WAV ou rencontre un problème d'implémentation." #: ../Doc/library/wave.rst:66 msgid "Wave_read Objects" -msgstr "" +msgstr "Objets Wave_read" #: ../Doc/library/wave.rst:68 msgid "" "Wave_read objects, as returned by :func:`.open`, have the following methods:" msgstr "" +"Les objets Wave_read, tels qu'ils sont renvoyés par :func:`.open`, ont les " +"méthodes suivantes :" #: ../Doc/library/wave.rst:73 msgid "" "Close the stream if it was opened by :mod:`wave`, and make the instance " "unusable. This is called automatically on object collection." msgstr "" +"Ferme le flux s'il a été ouvert par :mod:`wave` et rend l'instance " +"inutilisable. Ceci est appelé automatiquement lorsque l'objet est détruit ." #: ../Doc/library/wave.rst:79 msgid "Returns 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/wave.rst:84 msgid "Returns sample width in bytes." -msgstr "" +msgstr "Renvoie la largeur de l'échantillon en octets." #: ../Doc/library/wave.rst:89 msgid "Returns sampling frequency." -msgstr "" +msgstr "Renvoie la fréquence d'échantillonnage." #: ../Doc/library/wave.rst:94 msgid "Returns number of audio frames." -msgstr "" +msgstr "Renvoie le nombre de trames audio." #: ../Doc/library/wave.rst:99 msgid "Returns compression type (``'NONE'`` is the only supported type)." -msgstr "" +msgstr "Renvoie le type de compression (``'NONE'`` est le seul type géré)." #: ../Doc/library/wave.rst:104 msgid "" "Human-readable version of :meth:`getcomptype`. Usually ``'not compressed'`` " "parallels ``'NONE'``." msgstr "" +"Version compréhensible de :meth:`getcomptype`. Généralement, ``'not " +"compressed'`` équivaut à ``'NONE'``." #: ../Doc/library/wave.rst:110 msgid "" @@ -144,47 +171,57 @@ msgid "" "framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" "`get\\*` methods." msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." #: ../Doc/library/wave.rst:117 msgid "" "Reads and returns at most *n* frames of audio, as a :class:`bytes` object." msgstr "" +"Lit et renvoie au plus *n* trames audio, sous forme d'objet :class:`bytes`." #: ../Doc/library/wave.rst:122 msgid "Rewind the file pointer to the beginning of the audio stream." -msgstr "" +msgstr "Remet le pointeur de fichier au début du flux audio." #: ../Doc/library/wave.rst:124 msgid "" "The following two methods are defined for compatibility with the :mod:`aifc` " "module, and don't do anything interesting." msgstr "" +"Les deux méthodes suivantes sont définies pour la compatibilité avec le " +"module :mod:`aifc` ; elles ne font rien d’intéressant." #: ../Doc/library/wave.rst:130 msgid "Returns ``None``." -msgstr "" +msgstr "Renvoie ``None``." #: ../Doc/library/wave.rst:135 msgid "Raise an error." -msgstr "" +msgstr "Lève une erreur." #: ../Doc/library/wave.rst:137 msgid "" "The following two methods define a term \"position\" which is compatible " "between them, and is otherwise implementation dependent." msgstr "" +"Les deux fonctions suivantes utilisent le vocabulaire \"position\". Ces " +"positions sont compatible entre elles, la \"position\" de l'un est " +"compatible avec la \"position\" de l'autre. Cette position est dépendante de " +"l'implémentation." #: ../Doc/library/wave.rst:143 msgid "Set the file pointer to the specified position." -msgstr "" +msgstr "Place le pointeur du fichier sur la position spécifiée." #: ../Doc/library/wave.rst:148 msgid "Return current file pointer position." -msgstr "" +msgstr "Renvoie la position actuelle du pointeur du fichier." #: ../Doc/library/wave.rst:154 msgid "Wave_write Objects" -msgstr "" +msgstr "Objets Wave_write" #: ../Doc/library/wave.rst:156 msgid "" @@ -200,11 +237,25 @@ msgid "" "calculate the number of frames in the data and set *nframes* accordingly " "before writing the frame data." msgstr "" +"Pour les flux de sortie navigables, l'en-tête ``wave`` est automatiquement " +"mis à jour pour refléter le nombre de trames réellement écrites. Pour les " +"flux non indexables, la valeur *nframes* doit être précise lorsque la " +"première trame est écrite. Une valeur précise de *nframes* peut être obtenue " +"en appelant les méthodes :meth:`~Wave_write.setnframes` ou :meth:" +"`~Wave_write.setparams` en passant en paramètre le nombre de trames qui " +"seront écrites avant que :meth:`~Wave_write.close` soit appelé puis en " +"utilisant la méthode :meth:`~Wave_write.writeframesraw` pour écrire les " +"trames audio, ou en appelant la méthode :meth:`~Wave_write.writeframes` avec " +"toutes les trames audio. Dans ce dernier cas, la méthode :meth:`~Wave_write." +"writeframes` calcule le nombre de trames dans le flux audio et définit " +"*nframes* en conséquence avant d'écrire les données des trames." #: ../Doc/library/wave.rst:168 msgid "" "Wave_write objects, as returned by :func:`.open`, have the following methods:" msgstr "" +"Les objets Wave_write, tels qu'ils sont renvoyés par :func:`.open`, ont les " +"méthodes suivantes :" #: ../Doc/library/wave.rst:176 msgid "" @@ -213,22 +264,28 @@ msgid "" "exception if the output stream is not seekable and *nframes* does not match " "the number of frames actually written." msgstr "" +"Assurez-vous que *nframes* soit correct et fermez le fichier s'il a été " +"ouvert par :mod:`wave`. Cette méthode est appelée à la destruction de " +"l'objet. Il lève une erreur si le flux de sortie n'est pas navigable et si " +"*nframes* ne correspond pas au nombre de trames réellement écrites." #: ../Doc/library/wave.rst:184 msgid "Set the number of channels." -msgstr "" +msgstr "Définit le nombre de canaux." #: ../Doc/library/wave.rst:189 msgid "Set the sample width to *n* bytes." -msgstr "" +msgstr "Définit la largeur de l'échantillon à *n* octets." #: ../Doc/library/wave.rst:194 msgid "Set the frame rate to *n*." -msgstr "" +msgstr "Définit la fréquence des trames à *n*." #: ../Doc/library/wave.rst:196 msgid "A non-integral input to this method is rounded to the nearest integer." msgstr "" +"Un paramètre non-entier passé à cette méthode est arrondi à l'entier le plus " +"proche." #: ../Doc/library/wave.rst:203 msgid "" @@ -236,12 +293,17 @@ msgid "" "of frames actually written is different (this update attempt will raise an " "error if the output stream is not seekable)." msgstr "" +"Définit le nombre de trames à *n*. Cela sera modifié ultérieurement si le " +"nombre de trames réellement écrites est différent (la tentative de mise à " +"jour générera une erreur si le flux de sortie n'est pas indexable)." #: ../Doc/library/wave.rst:210 msgid "" "Set the compression type and description. At the moment, only compression " "type ``NONE`` is supported, meaning no compression." msgstr "" +"Définit le type de compression et la description. Pour le moment, seul le " +"type de compression ``NONE`` est géré, c'est-à-dire aucune compression." #: ../Doc/library/wave.rst:216 msgid "" @@ -249,16 +311,21 @@ msgid "" "compname)``, with values valid for the :meth:`set\\*` methods. Sets all " "parameters." msgstr "" +"Le *tuple* doit être ``(nchannels, sampwidth, framerate, nframes, comptype, " +"compname)``, avec des valeurs valides pour les méthodes :meth:`set\\*`. Tous " +"les paramètres sont obligatoires et doivent être définis." #: ../Doc/library/wave.rst:223 msgid "" "Return current position in the file, with the same disclaimer for the :meth:" "`Wave_read.tell` and :meth:`Wave_read.setpos` methods." msgstr "" +"Renvoie la position actuelle dans le fichier, avec les mêmes réserves que " +"pour les méthodes :meth:`Wave_read.tell` et :meth:`Wave_read.setpos`." #: ../Doc/library/wave.rst:229 msgid "Write audio frames, without correcting *nframes*." -msgstr "" +msgstr "Écrit les trames audio sans corriger *nframes*." #: ../Doc/library/wave.rst:231 ../Doc/library/wave.rst:242 msgid "Any :term:`bytes-like object` is now accepted." @@ -271,6 +338,10 @@ msgid "" "that have been written after *data* has been written does not match the " "previously set value for *nframes*." msgstr "" +"Écrit des trames audio et s'assure que *nframes* est correct. Une erreur est " +"levée si le flux de sortie est non-navigable et si le nombre total de trames " +"écrites après que *data* soit écrit ne correspond pas à la valeur " +"précédemment définie pour *nframes*." #: ../Doc/library/wave.rst:246 msgid "" @@ -278,3 +349,6 @@ msgid "" "`writeframes` or :meth:`writeframesraw`, and any attempt to do so will " "raise :exc:`wave.Error`." msgstr "" +"Notez qu'il est impossible de définir des paramètres après avoir appelé :" +"meth:`writeframes` ou :meth:`writeframesraw`, et toute tentative en ce sens " +"lève une :exc:`wave.Error`." diff --git a/library/weakref.po b/library/weakref.po index e89d01057..82e2bda19 100644 --- a/library/weakref.po +++ b/library/weakref.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -99,8 +99,8 @@ msgid "" "Not all objects can be weakly referenced; those objects which can include " "class instances, functions written in Python (but not in C), instance " "methods, sets, frozensets, some :term:`file objects `, :term:" -"`generator`\\s, type objects, sockets, arrays, deques, regular expression " -"pattern objects, and code objects." +"`generators `, type objects, sockets, arrays, deques, regular " +"expression pattern objects, and code objects." msgstr "" #: ../Doc/library/weakref.rst:72 @@ -113,20 +113,19 @@ msgid "" "directly support weak references but can add support through subclassing::" msgstr "" -#: ../Doc/library/weakref.rst:83 +#: ../Doc/library/weakref.rst:85 msgid "" "Other built-in types such as :class:`tuple` and :class:`int` do not support " -"weak references even when subclassed (This is an implementation detail and " -"may be different across various Python implementations.)." +"weak references even when subclassed." msgstr "" -#: ../Doc/library/weakref.rst:87 +#: ../Doc/library/weakref.rst:88 msgid "" "Extension types can easily be made to support weak references; see :ref:" "`weakref-support`." msgstr "" -#: ../Doc/library/weakref.rst:93 +#: ../Doc/library/weakref.rst:94 msgid "" "Return a weak reference to *object*. The original object can be retrieved " "by calling the reference object if the referent is still alive; if the " @@ -138,21 +137,21 @@ msgid "" "available." msgstr "" -#: ../Doc/library/weakref.rst:101 +#: ../Doc/library/weakref.rst:102 msgid "" "It is allowable for many weak references to be constructed for the same " "object. Callbacks registered for each weak reference will be called from the " "most recently registered callback to the oldest registered callback." msgstr "" -#: ../Doc/library/weakref.rst:105 +#: ../Doc/library/weakref.rst:106 msgid "" "Exceptions raised by the callback will be noted on the standard error " "output, but cannot be propagated; they are handled in exactly the same way " "as exceptions raised from an object's :meth:`__del__` method." msgstr "" -#: ../Doc/library/weakref.rst:109 +#: ../Doc/library/weakref.rst:110 msgid "" "Weak references are :term:`hashable` if the *object* is hashable. They will " "maintain their hash value even after the *object* was deleted. If :func:" @@ -160,7 +159,7 @@ msgid "" "call will raise :exc:`TypeError`." msgstr "" -#: ../Doc/library/weakref.rst:114 +#: ../Doc/library/weakref.rst:115 msgid "" "Weak references support tests for equality, but not ordering. If the " "referents are still alive, two references have the same equality " @@ -169,22 +168,22 @@ msgid "" "objects are the same object." msgstr "" -#: ../Doc/library/weakref.rst:119 +#: ../Doc/library/weakref.rst:120 msgid "This is a subclassable type rather than a factory function." msgstr "" -#: ../Doc/library/weakref.rst:123 +#: ../Doc/library/weakref.rst:124 msgid "" "This read-only attribute returns the callback currently associated to the " "weakref. If there is no callback or if the referent of the weakref is no " "longer alive then this attribute will have value ``None``." msgstr "" -#: ../Doc/library/weakref.rst:127 +#: ../Doc/library/weakref.rst:128 msgid "Added the :attr:`__callback__` attribute." msgstr "" -#: ../Doc/library/weakref.rst:133 +#: ../Doc/library/weakref.rst:134 msgid "" "Return a proxy to *object* which uses a weak reference. This supports use " "of the proxy in most contexts instead of requiring the explicit " @@ -197,18 +196,18 @@ msgid "" "`ref` function." msgstr "" -#: ../Doc/library/weakref.rst:145 +#: ../Doc/library/weakref.rst:146 msgid "" "Return the number of weak references and proxies which refer to *object*." msgstr "" -#: ../Doc/library/weakref.rst:150 +#: ../Doc/library/weakref.rst:151 msgid "" "Return a list of all weak reference and proxy objects which refer to " "*object*." msgstr "" -#: ../Doc/library/weakref.rst:155 +#: ../Doc/library/weakref.rst:156 msgid "" "Mapping class that references keys weakly. Entries in the dictionary will " "be discarded when there is no longer a strong reference to the key. This " @@ -217,7 +216,7 @@ msgid "" "especially useful with objects that override attribute accesses." msgstr "" -#: ../Doc/library/weakref.rst:163 +#: ../Doc/library/weakref.rst:164 msgid "" "Caution: Because a :class:`WeakKeyDictionary` is built on top of a Python " "dictionary, it must not change size when iterating over it. This can be " @@ -226,7 +225,7 @@ msgid "" "to vanish \"by magic\" (as a side effect of garbage collection)." msgstr "" -#: ../Doc/library/weakref.rst:169 +#: ../Doc/library/weakref.rst:170 msgid "" ":class:`WeakKeyDictionary` objects have an additional method that exposes " "the internal references directly. The references are not guaranteed to be " @@ -236,17 +235,17 @@ msgid "" "longer than needed." msgstr "" -#: ../Doc/library/weakref.rst:179 +#: ../Doc/library/weakref.rst:180 msgid "Return an iterable of the weak references to the keys." msgstr "" -#: ../Doc/library/weakref.rst:184 +#: ../Doc/library/weakref.rst:185 msgid "" "Mapping class that references values weakly. Entries in the dictionary will " "be discarded when no strong reference to the value exists any more." msgstr "" -#: ../Doc/library/weakref.rst:189 +#: ../Doc/library/weakref.rst:190 msgid "" "Caution: Because a :class:`WeakValueDictionary` is built on top of a Python " "dictionary, it must not change size when iterating over it. This can be " @@ -255,24 +254,24 @@ msgid "" "to vanish \"by magic\" (as a side effect of garbage collection)." msgstr "" -#: ../Doc/library/weakref.rst:195 +#: ../Doc/library/weakref.rst:196 msgid "" ":class:`WeakValueDictionary` objects have an additional method that has the " "same issues as the :meth:`keyrefs` method of :class:`WeakKeyDictionary` " "objects." msgstr "" -#: ../Doc/library/weakref.rst:202 +#: ../Doc/library/weakref.rst:203 msgid "Return an iterable of the weak references to the values." msgstr "" -#: ../Doc/library/weakref.rst:207 +#: ../Doc/library/weakref.rst:208 msgid "" "Set class that keeps weak references to its elements. An element will be " "discarded when no strong reference to it exists any more." msgstr "" -#: ../Doc/library/weakref.rst:213 +#: ../Doc/library/weakref.rst:214 msgid "" "A custom :class:`ref` subclass which simulates a weak reference to a bound " "method (i.e., a method defined on a class and looked up on an instance). " @@ -281,7 +280,7 @@ msgid "" "method until either the object or the original function dies::" msgstr "" -#: ../Doc/library/weakref.rst:241 +#: ../Doc/library/weakref.rst:242 msgid "" "Return a callable finalizer object which will be called when *obj* is " "garbage collected. Unlike an ordinary weak reference, a finalizer will " @@ -289,7 +288,7 @@ msgid "" "lifecycle management." msgstr "" -#: ../Doc/library/weakref.rst:246 +#: ../Doc/library/weakref.rst:247 msgid "" "A finalizer is considered *alive* until it is called (either explicitly or " "at garbage collection), and after that it is *dead*. Calling a live " @@ -297,7 +296,7 @@ msgid "" "calling a dead finalizer returns :const:`None`." msgstr "" -#: ../Doc/library/weakref.rst:251 +#: ../Doc/library/weakref.rst:252 msgid "" "Exceptions raised by finalizer callbacks during garbage collection will be " "shown on the standard error output, but cannot be propagated. They are " @@ -305,50 +304,50 @@ msgid "" "`__del__` method or a weak reference's callback." msgstr "" -#: ../Doc/library/weakref.rst:257 +#: ../Doc/library/weakref.rst:258 msgid "" "When the program exits, each remaining live finalizer is called unless its :" "attr:`atexit` attribute has been set to false. They are called in reverse " "order of creation." msgstr "" -#: ../Doc/library/weakref.rst:261 +#: ../Doc/library/weakref.rst:262 msgid "" "A finalizer will never invoke its callback during the later part of the :" "term:`interpreter shutdown` when module globals are liable to have been " "replaced by :const:`None`." msgstr "" -#: ../Doc/library/weakref.rst:267 +#: ../Doc/library/weakref.rst:268 msgid "" "If *self* is alive then mark it as dead and return the result of calling " "``func(*args, **kwargs)``. If *self* is dead then return :const:`None`." msgstr "" -#: ../Doc/library/weakref.rst:273 +#: ../Doc/library/weakref.rst:274 msgid "" "If *self* is alive then mark it as dead and return the tuple ``(obj, func, " "args, kwargs)``. If *self* is dead then return :const:`None`." msgstr "" -#: ../Doc/library/weakref.rst:279 +#: ../Doc/library/weakref.rst:280 msgid "" "If *self* is alive then return the tuple ``(obj, func, args, kwargs)``. If " "*self* is dead then return :const:`None`." msgstr "" -#: ../Doc/library/weakref.rst:284 +#: ../Doc/library/weakref.rst:285 msgid "Property which is true if the finalizer is alive, false otherwise." msgstr "" -#: ../Doc/library/weakref.rst:288 +#: ../Doc/library/weakref.rst:289 msgid "" "A writable boolean property which by default is true. When the program " "exits, it calls all remaining live finalizers for which :attr:`.atexit` is " "true. They are called in reverse order of creation." msgstr "" -#: ../Doc/library/weakref.rst:295 +#: ../Doc/library/weakref.rst:296 msgid "" "It is important to ensure that *func*, *args* and *kwargs* do not own any " "references to *obj*, either directly or indirectly, since otherwise *obj* " @@ -356,67 +355,67 @@ msgid "" "bound method of *obj*." msgstr "" -#: ../Doc/library/weakref.rst:305 +#: ../Doc/library/weakref.rst:306 msgid "The type object for weak references objects." msgstr "" -#: ../Doc/library/weakref.rst:310 +#: ../Doc/library/weakref.rst:311 msgid "The type object for proxies of objects which are not callable." msgstr "" -#: ../Doc/library/weakref.rst:315 +#: ../Doc/library/weakref.rst:316 msgid "The type object for proxies of callable objects." msgstr "" -#: ../Doc/library/weakref.rst:320 +#: ../Doc/library/weakref.rst:321 msgid "" "Sequence containing all the type objects for proxies. This can make it " "simpler to test if an object is a proxy without being dependent on naming " "both proxy types." msgstr "" -#: ../Doc/library/weakref.rst:327 +#: ../Doc/library/weakref.rst:328 msgid "" "Exception raised when a proxy object is used but the underlying object has " "been collected. This is the same as the standard :exc:`ReferenceError` " "exception." msgstr "" -#: ../Doc/library/weakref.rst:334 +#: ../Doc/library/weakref.rst:335 msgid ":pep:`205` - Weak References" msgstr "" -#: ../Doc/library/weakref.rst:334 +#: ../Doc/library/weakref.rst:335 msgid "" "The proposal and rationale for this feature, including links to earlier " "implementations and information about similar features in other languages." msgstr "" -#: ../Doc/library/weakref.rst:341 +#: ../Doc/library/weakref.rst:342 msgid "Weak Reference Objects" -msgstr "" +msgstr "Objets à références faibles" -#: ../Doc/library/weakref.rst:343 +#: ../Doc/library/weakref.rst:344 msgid "" "Weak reference objects have no methods and no attributes besides :attr:`ref." "__callback__`. A weak reference object allows the referent to be obtained, " "if it still exists, by calling it:" msgstr "" -#: ../Doc/library/weakref.rst:357 +#: ../Doc/library/weakref.rst:358 msgid "" "If the referent no longer exists, calling the reference object returns :" "const:`None`:" msgstr "" -#: ../Doc/library/weakref.rst:364 +#: ../Doc/library/weakref.rst:365 msgid "" "Testing that a weak reference object is still live should be done using the " "expression ``ref() is not None``. Normally, application code that needs to " "use a reference object should follow this pattern::" msgstr "" -#: ../Doc/library/weakref.rst:377 +#: ../Doc/library/weakref.rst:378 msgid "" "Using a separate test for \"liveness\" creates race conditions in threaded " "applications; another thread can cause a weak reference to become " @@ -424,7 +423,7 @@ msgid "" "safe in threaded applications as well as single-threaded applications." msgstr "" -#: ../Doc/library/weakref.rst:382 +#: ../Doc/library/weakref.rst:383 msgid "" "Specialized versions of :class:`ref` objects can be created through " "subclassing. This is used in the implementation of the :class:" @@ -434,18 +433,18 @@ msgid "" "to retrieve the referent." msgstr "" -#: ../Doc/library/weakref.rst:388 +#: ../Doc/library/weakref.rst:389 msgid "" "This example shows how a subclass of :class:`ref` can be used to store " "additional information about an object and affect the value that's returned " "when the referent is accessed::" msgstr "" -#: ../Doc/library/weakref.rst:415 +#: ../Doc/library/weakref.rst:416 msgid "Example" msgstr "Exemple" -#: ../Doc/library/weakref.rst:417 +#: ../Doc/library/weakref.rst:418 msgid "" "This simple example shows how an application can use object IDs to retrieve " "objects that it has seen before. The IDs of the objects can then be used in " @@ -453,67 +452,67 @@ msgid "" "objects can still be retrieved by ID if they do." msgstr "" -#: ../Doc/library/weakref.rst:442 +#: ../Doc/library/weakref.rst:443 msgid "Finalizer Objects" msgstr "" -#: ../Doc/library/weakref.rst:444 +#: ../Doc/library/weakref.rst:445 msgid "" "The main benefit of using :class:`finalize` is that it makes it simple to " "register a callback without needing to preserve the returned finalizer " "object. For instance" msgstr "" -#: ../Doc/library/weakref.rst:458 +#: ../Doc/library/weakref.rst:459 msgid "" "The finalizer can be called directly as well. However the finalizer will " "invoke the callback at most once." msgstr "" -#: ../Doc/library/weakref.rst:474 +#: ../Doc/library/weakref.rst:475 msgid "" "You can unregister a finalizer using its :meth:`~finalize.detach` method. " "This kills the finalizer and returns the arguments passed to the constructor " "when it was created." msgstr "" -#: ../Doc/library/weakref.rst:488 +#: ../Doc/library/weakref.rst:489 msgid "" "Unless you set the :attr:`~finalize.atexit` attribute to :const:`False`, a " "finalizer will be called when the program exits if it is still alive. For " "instance" msgstr "" -#: ../Doc/library/weakref.rst:500 +#: ../Doc/library/weakref.rst:504 msgid "Comparing finalizers with :meth:`__del__` methods" msgstr "" -#: ../Doc/library/weakref.rst:502 +#: ../Doc/library/weakref.rst:506 msgid "" "Suppose we want to create a class whose instances represent temporary " "directories. The directories should be deleted with their contents when the " "first of the following events occurs:" msgstr "" -#: ../Doc/library/weakref.rst:506 +#: ../Doc/library/weakref.rst:510 msgid "the object is garbage collected," msgstr "" -#: ../Doc/library/weakref.rst:507 +#: ../Doc/library/weakref.rst:511 msgid "the object's :meth:`remove` method is called, or" msgstr "" -#: ../Doc/library/weakref.rst:508 +#: ../Doc/library/weakref.rst:512 msgid "the program exits." msgstr "" -#: ../Doc/library/weakref.rst:510 +#: ../Doc/library/weakref.rst:514 msgid "" "We might try to implement the class using a :meth:`__del__` method as " "follows::" msgstr "" -#: ../Doc/library/weakref.rst:529 +#: ../Doc/library/weakref.rst:533 msgid "" "Starting with Python 3.4, :meth:`__del__` methods no longer prevent " "reference cycles from being garbage collected, and module globals are no " @@ -521,35 +520,35 @@ msgid "" "code should work without any issues on CPython." msgstr "" -#: ../Doc/library/weakref.rst:534 +#: ../Doc/library/weakref.rst:538 msgid "" "However, handling of :meth:`__del__` methods is notoriously implementation " "specific, since it depends on internal details of the interpreter's garbage " "collector implementation." msgstr "" -#: ../Doc/library/weakref.rst:538 +#: ../Doc/library/weakref.rst:542 msgid "" "A more robust alternative can be to define a finalizer which only references " "the specific functions and objects that it needs, rather than having access " "to the full state of the object::" msgstr "" -#: ../Doc/library/weakref.rst:554 +#: ../Doc/library/weakref.rst:558 msgid "" "Defined like this, our finalizer only receives a reference to the details it " "needs to clean up the directory appropriately. If the object never gets " "garbage collected the finalizer will still be called at exit." msgstr "" -#: ../Doc/library/weakref.rst:558 +#: ../Doc/library/weakref.rst:562 msgid "" "The other advantage of weakref based finalizers is that they can be used to " "register finalizers for classes where the definition is controlled by a " "third party, such as running code when a module is unloaded::" msgstr "" -#: ../Doc/library/weakref.rst:570 +#: ../Doc/library/weakref.rst:574 msgid "" "If you create a finalizer object in a daemonic thread just as the program " "exits then there is the possibility that the finalizer does not get called " diff --git a/library/webbrowser.po b/library/webbrowser.po index c5369c987..f947d3938 100644 --- a/library/webbrowser.po +++ b/library/webbrowser.po @@ -75,7 +75,7 @@ msgstr "" #: ../Doc/library/webbrowser.rst:51 msgid "The following functions are defined:" -msgstr "" +msgstr "Les fonctions suivantes sont définies :" #: ../Doc/library/webbrowser.rst:56 msgid "" diff --git a/library/winreg.po b/library/winreg.po index ddcb110b3..6a8d3d957 100644 --- a/library/winreg.po +++ b/library/winreg.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -78,7 +78,7 @@ msgstr "" #: ../Doc/library/winreg.rst:56 ../Doc/library/winreg.rst:78 #: ../Doc/library/winreg.rst:108 ../Doc/library/winreg.rst:127 #: ../Doc/library/winreg.rst:163 ../Doc/library/winreg.rst:190 -#: ../Doc/library/winreg.rst:223 ../Doc/library/winreg.rst:303 +#: ../Doc/library/winreg.rst:223 ../Doc/library/winreg.rst:306 msgid "See :ref:`above `." msgstr "" @@ -91,12 +91,12 @@ msgstr "" #: ../Doc/library/winreg.rst:65 ../Doc/library/winreg.rst:87 #: ../Doc/library/winreg.rst:116 ../Doc/library/winreg.rst:141 #: ../Doc/library/winreg.rst:171 ../Doc/library/winreg.rst:181 -#: ../Doc/library/winreg.rst:198 ../Doc/library/winreg.rst:240 -#: ../Doc/library/winreg.rst:285 ../Doc/library/winreg.rst:311 -#: ../Doc/library/winreg.rst:335 ../Doc/library/winreg.rst:353 -#: ../Doc/library/winreg.rst:375 ../Doc/library/winreg.rst:398 -#: ../Doc/library/winreg.rst:424 ../Doc/library/winreg.rst:453 -#: ../Doc/library/winreg.rst:468 ../Doc/library/winreg.rst:481 +#: ../Doc/library/winreg.rst:198 ../Doc/library/winreg.rst:243 +#: ../Doc/library/winreg.rst:288 ../Doc/library/winreg.rst:314 +#: ../Doc/library/winreg.rst:338 ../Doc/library/winreg.rst:356 +#: ../Doc/library/winreg.rst:378 ../Doc/library/winreg.rst:401 +#: ../Doc/library/winreg.rst:427 ../Doc/library/winreg.rst:456 +#: ../Doc/library/winreg.rst:471 ../Doc/library/winreg.rst:484 msgid "" "*key* is an already open key, or one of the predefined :ref:`HKEY_* " "constants `." @@ -214,22 +214,22 @@ msgid "" "indicating no more values." msgstr "" -#: ../Doc/library/winreg.rst:207 ../Doc/library/winreg.rst:314 +#: ../Doc/library/winreg.rst:207 ../Doc/library/winreg.rst:317 msgid "The result is a tuple of 3 items:" msgstr "" -#: ../Doc/library/winreg.rst:210 ../Doc/library/winreg.rst:317 -#: ../Doc/library/winreg.rst:361 +#: ../Doc/library/winreg.rst:210 ../Doc/library/winreg.rst:320 +#: ../Doc/library/winreg.rst:364 msgid "Index" -msgstr "" +msgstr "Index" -#: ../Doc/library/winreg.rst:210 ../Doc/library/winreg.rst:317 -#: ../Doc/library/winreg.rst:361 +#: ../Doc/library/winreg.rst:210 ../Doc/library/winreg.rst:320 +#: ../Doc/library/winreg.rst:364 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/winreg.rst:212 ../Doc/library/winreg.rst:319 -#: ../Doc/library/winreg.rst:363 +#: ../Doc/library/winreg.rst:212 ../Doc/library/winreg.rst:322 +#: ../Doc/library/winreg.rst:366 msgid "``0``" msgstr "``0``" @@ -237,8 +237,8 @@ msgstr "``0``" msgid "A string that identifies the value name" msgstr "" -#: ../Doc/library/winreg.rst:214 ../Doc/library/winreg.rst:322 -#: ../Doc/library/winreg.rst:365 +#: ../Doc/library/winreg.rst:214 ../Doc/library/winreg.rst:325 +#: ../Doc/library/winreg.rst:368 msgid "``1``" msgstr "``1``" @@ -248,7 +248,7 @@ msgid "" "underlying registry type" msgstr "" -#: ../Doc/library/winreg.rst:218 ../Doc/library/winreg.rst:325 +#: ../Doc/library/winreg.rst:218 ../Doc/library/winreg.rst:328 msgid "``2``" msgstr "``2``" @@ -258,17 +258,17 @@ msgid "" "for :meth:`SetValueEx`)" msgstr "" -#: ../Doc/library/winreg.rst:229 +#: ../Doc/library/winreg.rst:232 msgid "" "Expands environment variable placeholders ``%NAME%`` in strings like :const:" "`REG_EXPAND_SZ`::" msgstr "" -#: ../Doc/library/winreg.rst:238 +#: ../Doc/library/winreg.rst:241 msgid "Writes all the attributes of a key to the registry." msgstr "" -#: ../Doc/library/winreg.rst:243 +#: ../Doc/library/winreg.rst:246 msgid "" "It is not necessary to call :func:`FlushKey` to change a key. Registry " "changes are flushed to disk by the registry using its lazy flusher. " @@ -279,36 +279,36 @@ msgid "" "disk." msgstr "" -#: ../Doc/library/winreg.rst:252 +#: ../Doc/library/winreg.rst:255 msgid "" "If you don't know whether a :func:`FlushKey` call is required, it probably " "isn't." msgstr "" -#: ../Doc/library/winreg.rst:258 +#: ../Doc/library/winreg.rst:261 msgid "" "Creates a subkey under the specified key and stores registration information " "from a specified file into that subkey." msgstr "" -#: ../Doc/library/winreg.rst:261 +#: ../Doc/library/winreg.rst:264 msgid "" "*key* is a handle returned by :func:`ConnectRegistry` or one of the " "constants :const:`HKEY_USERS` or :const:`HKEY_LOCAL_MACHINE`." msgstr "" -#: ../Doc/library/winreg.rst:264 +#: ../Doc/library/winreg.rst:267 msgid "*sub_key* is a string that identifies the subkey to load." msgstr "" -#: ../Doc/library/winreg.rst:266 +#: ../Doc/library/winreg.rst:269 msgid "" "*file_name* is the name of the file to load registry data from. This file " "must have been created with the :func:`SaveKey` function. Under the file " "allocation table (FAT) file system, the filename may not have an extension." msgstr "" -#: ../Doc/library/winreg.rst:270 +#: ../Doc/library/winreg.rst:273 msgid "" "A call to :func:`LoadKey` fails if the calling process does not have the :" "const:`SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different " @@ -316,68 +316,68 @@ msgid "" "microsoft.com/en-us/library/ms724889%28v=VS.85%29.aspx>`__ for more details." msgstr "" -#: ../Doc/library/winreg.rst:276 +#: ../Doc/library/winreg.rst:279 msgid "" "If *key* is a handle returned by :func:`ConnectRegistry`, then the path " "specified in *file_name* is relative to the remote computer." msgstr "" -#: ../Doc/library/winreg.rst:283 +#: ../Doc/library/winreg.rst:286 msgid "" "Opens the specified key, returning a :ref:`handle object `." msgstr "" -#: ../Doc/library/winreg.rst:288 +#: ../Doc/library/winreg.rst:291 msgid "*sub_key* is a string that identifies the sub_key to open." msgstr "" -#: ../Doc/library/winreg.rst:290 +#: ../Doc/library/winreg.rst:293 msgid "" "*reserved* is a reserved integer, and must be zero. The default is zero." msgstr "" -#: ../Doc/library/winreg.rst:292 +#: ../Doc/library/winreg.rst:295 msgid "" "*access* is an integer that specifies an access mask that describes the " "desired security access for the key. Default is :const:`KEY_READ`. See :" "ref:`Access Rights ` for other allowed values." msgstr "" -#: ../Doc/library/winreg.rst:296 +#: ../Doc/library/winreg.rst:299 msgid "The result is a new handle to the specified key." msgstr "" -#: ../Doc/library/winreg.rst:298 +#: ../Doc/library/winreg.rst:301 msgid "If the function fails, :exc:`OSError` is raised." msgstr "" -#: ../Doc/library/winreg.rst:300 +#: ../Doc/library/winreg.rst:303 msgid "Allow the use of named arguments." msgstr "" -#: ../Doc/library/winreg.rst:309 +#: ../Doc/library/winreg.rst:312 msgid "Returns information about a key, as a tuple." msgstr "" -#: ../Doc/library/winreg.rst:319 +#: ../Doc/library/winreg.rst:322 msgid "An integer giving the number of sub keys this key has." msgstr "" -#: ../Doc/library/winreg.rst:322 +#: ../Doc/library/winreg.rst:325 msgid "An integer giving the number of values this key has." msgstr "" -#: ../Doc/library/winreg.rst:325 +#: ../Doc/library/winreg.rst:328 msgid "" "An integer giving when the key was last modified (if available) as 100's of " "nanoseconds since Jan 1, 1601." msgstr "" -#: ../Doc/library/winreg.rst:333 +#: ../Doc/library/winreg.rst:336 msgid "Retrieves the unnamed value for a key, as a string." msgstr "" -#: ../Doc/library/winreg.rst:338 +#: ../Doc/library/winreg.rst:341 msgid "" "*sub_key* is a string that holds the name of the subkey with which the value " "is associated. If this parameter is ``None`` or empty, the function " @@ -385,7 +385,7 @@ msgid "" "identified by *key*." msgstr "" -#: ../Doc/library/winreg.rst:342 +#: ../Doc/library/winreg.rst:345 msgid "" "Values in the registry have name, type, and data components. This method " "retrieves the data for a key's first value that has a NULL name. But the " @@ -393,35 +393,35 @@ msgid "" "`QueryValueEx` if possible." msgstr "" -#: ../Doc/library/winreg.rst:350 +#: ../Doc/library/winreg.rst:353 msgid "" "Retrieves the type and data for a specified value name associated with an " "open registry key." msgstr "" -#: ../Doc/library/winreg.rst:356 +#: ../Doc/library/winreg.rst:359 msgid "*value_name* is a string indicating the value to query." msgstr "" -#: ../Doc/library/winreg.rst:358 +#: ../Doc/library/winreg.rst:361 msgid "The result is a tuple of 2 items:" msgstr "" -#: ../Doc/library/winreg.rst:363 +#: ../Doc/library/winreg.rst:366 msgid "The value of the registry item." msgstr "" -#: ../Doc/library/winreg.rst:365 +#: ../Doc/library/winreg.rst:368 msgid "" "An integer giving the registry type for this value (see table in docs for :" "meth:`SetValueEx`)" msgstr "" -#: ../Doc/library/winreg.rst:373 +#: ../Doc/library/winreg.rst:376 msgid "Saves the specified key, and all its subkeys to the specified file." msgstr "" -#: ../Doc/library/winreg.rst:378 +#: ../Doc/library/winreg.rst:381 msgid "" "*file_name* is the name of the file to save registry data to. This file " "cannot already exist. If this filename includes an extension, it cannot be " @@ -429,7 +429,7 @@ msgid "" "method." msgstr "" -#: ../Doc/library/winreg.rst:383 +#: ../Doc/library/winreg.rst:386 msgid "" "If *key* represents a key on a remote computer, the path described by " "*file_name* is relative to the remote computer. The caller of this method " @@ -439,139 +439,139 @@ msgid "" "library/ms724878%28v=VS.85%29.aspx>`__ for more details." msgstr "" -#: ../Doc/library/winreg.rst:391 +#: ../Doc/library/winreg.rst:394 msgid "This function passes NULL for *security_attributes* to the API." msgstr "" -#: ../Doc/library/winreg.rst:396 +#: ../Doc/library/winreg.rst:399 msgid "Associates a value with a specified key." msgstr "" -#: ../Doc/library/winreg.rst:401 +#: ../Doc/library/winreg.rst:404 msgid "" "*sub_key* is a string that names the subkey with which the value is " "associated." msgstr "" -#: ../Doc/library/winreg.rst:403 +#: ../Doc/library/winreg.rst:406 msgid "" "*type* is an integer that specifies the type of the data. Currently this " "must be :const:`REG_SZ`, meaning only strings are supported. Use the :func:" "`SetValueEx` function for support for other data types." msgstr "" -#: ../Doc/library/winreg.rst:407 ../Doc/library/winreg.rst:435 +#: ../Doc/library/winreg.rst:410 ../Doc/library/winreg.rst:438 msgid "*value* is a string that specifies the new value." msgstr "" -#: ../Doc/library/winreg.rst:409 +#: ../Doc/library/winreg.rst:412 msgid "" "If the key specified by the *sub_key* parameter does not exist, the SetValue " "function creates it." msgstr "" -#: ../Doc/library/winreg.rst:412 ../Doc/library/winreg.rst:443 +#: ../Doc/library/winreg.rst:415 ../Doc/library/winreg.rst:446 msgid "" "Value lengths are limited by available memory. Long values (more than 2048 " "bytes) should be stored as files with the filenames stored in the " "configuration registry. This helps the registry perform efficiently." msgstr "" -#: ../Doc/library/winreg.rst:416 +#: ../Doc/library/winreg.rst:419 msgid "" "The key identified by the *key* parameter must have been opened with :const:" "`KEY_SET_VALUE` access." msgstr "" -#: ../Doc/library/winreg.rst:422 +#: ../Doc/library/winreg.rst:425 msgid "Stores data in the value field of an open registry key." msgstr "" -#: ../Doc/library/winreg.rst:427 +#: ../Doc/library/winreg.rst:430 msgid "" "*value_name* is a string that names the subkey with which the value is " "associated." msgstr "" -#: ../Doc/library/winreg.rst:430 +#: ../Doc/library/winreg.rst:433 msgid "*reserved* can be anything -- zero is always passed to the API." msgstr "" -#: ../Doc/library/winreg.rst:432 +#: ../Doc/library/winreg.rst:435 msgid "" "*type* is an integer that specifies the type of the data. See :ref:`Value " "Types ` for the available types." msgstr "" -#: ../Doc/library/winreg.rst:437 +#: ../Doc/library/winreg.rst:440 msgid "" "This method can also set additional value and type information for the " "specified key. The key identified by the key parameter must have been " "opened with :const:`KEY_SET_VALUE` access." msgstr "" -#: ../Doc/library/winreg.rst:441 +#: ../Doc/library/winreg.rst:444 msgid "To open the key, use the :func:`CreateKey` or :func:`OpenKey` methods." msgstr "" -#: ../Doc/library/winreg.rst:450 +#: ../Doc/library/winreg.rst:453 msgid "" "Disables registry reflection for 32-bit processes running on a 64-bit " "operating system." msgstr "" -#: ../Doc/library/winreg.rst:456 ../Doc/library/winreg.rst:471 -#: ../Doc/library/winreg.rst:486 +#: ../Doc/library/winreg.rst:459 ../Doc/library/winreg.rst:474 +#: ../Doc/library/winreg.rst:489 msgid "" "Will generally raise :exc:`NotImplemented` if executed on a 32-bit operating " "system." msgstr "" -#: ../Doc/library/winreg.rst:459 +#: ../Doc/library/winreg.rst:462 msgid "" "If the key is not on the reflection list, the function succeeds but has no " "effect. Disabling reflection for a key does not affect reflection of any " "subkeys." msgstr "" -#: ../Doc/library/winreg.rst:466 +#: ../Doc/library/winreg.rst:469 msgid "Restores registry reflection for the specified disabled key." msgstr "" -#: ../Doc/library/winreg.rst:474 +#: ../Doc/library/winreg.rst:477 msgid "" "Restoring reflection for a key does not affect reflection of any subkeys." msgstr "" -#: ../Doc/library/winreg.rst:479 +#: ../Doc/library/winreg.rst:482 msgid "Determines the reflection state for the specified key." msgstr "" -#: ../Doc/library/winreg.rst:484 +#: ../Doc/library/winreg.rst:487 msgid "Returns ``True`` if reflection is disabled." msgstr "" -#: ../Doc/library/winreg.rst:493 +#: ../Doc/library/winreg.rst:496 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/winreg.rst:495 +#: ../Doc/library/winreg.rst:498 msgid "" "The following constants are defined for use in many :mod:`_winreg` functions." msgstr "" -#: ../Doc/library/winreg.rst:500 +#: ../Doc/library/winreg.rst:503 msgid "HKEY_* Constants" msgstr "" -#: ../Doc/library/winreg.rst:504 +#: ../Doc/library/winreg.rst:507 msgid "" "Registry entries subordinate to this key define types (or classes) of " "documents and the properties associated with those types. Shell and COM " "applications use the information stored under this key." msgstr "" -#: ../Doc/library/winreg.rst:511 +#: ../Doc/library/winreg.rst:514 msgid "" "Registry entries subordinate to this key define the preferences of the " "current user. These preferences include the settings of environment " @@ -579,48 +579,48 @@ msgid "" "and application preferences." msgstr "" -#: ../Doc/library/winreg.rst:518 +#: ../Doc/library/winreg.rst:521 msgid "" "Registry entries subordinate to this key define the physical state of the " "computer, including data about the bus type, system memory, and installed " "hardware and software." msgstr "" -#: ../Doc/library/winreg.rst:524 +#: ../Doc/library/winreg.rst:527 msgid "" "Registry entries subordinate to this key define the default user " "configuration for new users on the local computer and the user configuration " "for the current user." msgstr "" -#: ../Doc/library/winreg.rst:530 +#: ../Doc/library/winreg.rst:533 msgid "" "Registry entries subordinate to this key allow you to access performance " "data. The data is not actually stored in the registry; the registry " "functions cause the system to collect the data from its source." msgstr "" -#: ../Doc/library/winreg.rst:538 +#: ../Doc/library/winreg.rst:541 msgid "" "Contains information about the current hardware profile of the local " "computer system." msgstr "" -#: ../Doc/library/winreg.rst:543 +#: ../Doc/library/winreg.rst:546 msgid "This key is not used in versions of Windows after 98." msgstr "" -#: ../Doc/library/winreg.rst:549 +#: ../Doc/library/winreg.rst:552 msgid "Access Rights" msgstr "" -#: ../Doc/library/winreg.rst:551 +#: ../Doc/library/winreg.rst:554 msgid "" "For more information, see `Registry Key Security and Access `__." msgstr "" -#: ../Doc/library/winreg.rst:556 +#: ../Doc/library/winreg.rst:559 msgid "" "Combines the STANDARD_RIGHTS_REQUIRED, :const:`KEY_QUERY_VALUE`, :const:" "`KEY_SET_VALUE`, :const:`KEY_CREATE_SUB_KEY`, :const:" @@ -628,180 +628,180 @@ msgid "" "access rights." msgstr "" -#: ../Doc/library/winreg.rst:563 +#: ../Doc/library/winreg.rst:566 msgid "" "Combines the STANDARD_RIGHTS_WRITE, :const:`KEY_SET_VALUE`, and :const:" "`KEY_CREATE_SUB_KEY` access rights." msgstr "" -#: ../Doc/library/winreg.rst:568 +#: ../Doc/library/winreg.rst:571 msgid "" "Combines the STANDARD_RIGHTS_READ, :const:`KEY_QUERY_VALUE`, :const:" "`KEY_ENUMERATE_SUB_KEYS`, and :const:`KEY_NOTIFY` values." msgstr "" -#: ../Doc/library/winreg.rst:573 +#: ../Doc/library/winreg.rst:576 msgid "Equivalent to :const:`KEY_READ`." msgstr "" -#: ../Doc/library/winreg.rst:577 +#: ../Doc/library/winreg.rst:580 msgid "Required to query the values of a registry key." msgstr "" -#: ../Doc/library/winreg.rst:581 +#: ../Doc/library/winreg.rst:584 msgid "Required to create, delete, or set a registry value." msgstr "" -#: ../Doc/library/winreg.rst:585 +#: ../Doc/library/winreg.rst:588 msgid "Required to create a subkey of a registry key." msgstr "" -#: ../Doc/library/winreg.rst:589 +#: ../Doc/library/winreg.rst:592 msgid "Required to enumerate the subkeys of a registry key." msgstr "" -#: ../Doc/library/winreg.rst:593 +#: ../Doc/library/winreg.rst:596 msgid "" "Required to request change notifications for a registry key or for subkeys " "of a registry key." msgstr "" -#: ../Doc/library/winreg.rst:598 +#: ../Doc/library/winreg.rst:601 msgid "Reserved for system use." msgstr "" -#: ../Doc/library/winreg.rst:604 +#: ../Doc/library/winreg.rst:607 msgid "64-bit Specific" msgstr "" -#: ../Doc/library/winreg.rst:606 +#: ../Doc/library/winreg.rst:609 msgid "" "For more information, see `Accessing an Alternate Registry View `__." msgstr "" -#: ../Doc/library/winreg.rst:611 +#: ../Doc/library/winreg.rst:614 msgid "" "Indicates that an application on 64-bit Windows should operate on the 64-bit " "registry view." msgstr "" -#: ../Doc/library/winreg.rst:616 +#: ../Doc/library/winreg.rst:619 msgid "" "Indicates that an application on 64-bit Windows should operate on the 32-bit " "registry view." msgstr "" -#: ../Doc/library/winreg.rst:623 +#: ../Doc/library/winreg.rst:626 msgid "Value Types" msgstr "" -#: ../Doc/library/winreg.rst:625 +#: ../Doc/library/winreg.rst:628 msgid "" "For more information, see `Registry Value Types `__." msgstr "" -#: ../Doc/library/winreg.rst:630 +#: ../Doc/library/winreg.rst:633 msgid "Binary data in any form." msgstr "" -#: ../Doc/library/winreg.rst:634 +#: ../Doc/library/winreg.rst:637 msgid "32-bit number." msgstr "" -#: ../Doc/library/winreg.rst:638 +#: ../Doc/library/winreg.rst:641 msgid "" "A 32-bit number in little-endian format. Equivalent to :const:`REG_DWORD`." msgstr "" -#: ../Doc/library/winreg.rst:642 +#: ../Doc/library/winreg.rst:645 msgid "A 32-bit number in big-endian format." msgstr "" -#: ../Doc/library/winreg.rst:646 +#: ../Doc/library/winreg.rst:649 msgid "" "Null-terminated string containing references to environment variables (``" "%PATH%``)." msgstr "" -#: ../Doc/library/winreg.rst:651 +#: ../Doc/library/winreg.rst:654 msgid "A Unicode symbolic link." msgstr "" -#: ../Doc/library/winreg.rst:655 +#: ../Doc/library/winreg.rst:658 msgid "" "A sequence of null-terminated strings, terminated by two null characters. " "(Python handles this termination automatically.)" msgstr "" -#: ../Doc/library/winreg.rst:660 +#: ../Doc/library/winreg.rst:663 msgid "No defined value type." msgstr "" -#: ../Doc/library/winreg.rst:664 +#: ../Doc/library/winreg.rst:667 msgid "A 64-bit number." msgstr "" -#: ../Doc/library/winreg.rst:670 +#: ../Doc/library/winreg.rst:673 msgid "" "A 64-bit number in little-endian format. Equivalent to :const:`REG_QWORD`." msgstr "" -#: ../Doc/library/winreg.rst:676 +#: ../Doc/library/winreg.rst:679 msgid "A device-driver resource list." msgstr "" -#: ../Doc/library/winreg.rst:680 +#: ../Doc/library/winreg.rst:683 msgid "A hardware setting." msgstr "" -#: ../Doc/library/winreg.rst:684 +#: ../Doc/library/winreg.rst:687 msgid "A hardware resource list." msgstr "" -#: ../Doc/library/winreg.rst:688 +#: ../Doc/library/winreg.rst:691 msgid "A null-terminated string." msgstr "" -#: ../Doc/library/winreg.rst:694 +#: ../Doc/library/winreg.rst:697 msgid "Registry Handle Objects" msgstr "" -#: ../Doc/library/winreg.rst:696 +#: ../Doc/library/winreg.rst:699 msgid "" "This object wraps a Windows HKEY object, automatically closing it when the " "object is destroyed. To guarantee cleanup, you can call either the :meth:" "`~PyHKEY.Close` method on the object, or the :func:`CloseKey` function." msgstr "" -#: ../Doc/library/winreg.rst:700 +#: ../Doc/library/winreg.rst:703 msgid "All registry functions in this module return one of these objects." msgstr "" -#: ../Doc/library/winreg.rst:702 +#: ../Doc/library/winreg.rst:705 msgid "" "All registry functions in this module which accept a handle object also " "accept an integer, however, use of the handle object is encouraged." msgstr "" -#: ../Doc/library/winreg.rst:705 +#: ../Doc/library/winreg.rst:708 msgid "Handle objects provide semantics for :meth:`__bool__` -- thus ::" msgstr "" -#: ../Doc/library/winreg.rst:710 +#: ../Doc/library/winreg.rst:713 msgid "" "will print ``Yes`` if the handle is currently valid (has not been closed or " "detached)." msgstr "" -#: ../Doc/library/winreg.rst:713 +#: ../Doc/library/winreg.rst:716 msgid "" "The object also support comparison semantics, so handle objects will compare " "true if they both reference the same underlying Windows handle value." msgstr "" -#: ../Doc/library/winreg.rst:716 +#: ../Doc/library/winreg.rst:719 msgid "" "Handle objects can be converted to an integer (e.g., using the built-in :" "func:`int` function), in which case the underlying Windows handle value is " @@ -810,40 +810,40 @@ msgid "" "object." msgstr "" -#: ../Doc/library/winreg.rst:724 +#: ../Doc/library/winreg.rst:727 msgid "Closes the underlying Windows handle." msgstr "" -#: ../Doc/library/winreg.rst:726 +#: ../Doc/library/winreg.rst:729 msgid "If the handle is already closed, no error is raised." msgstr "" -#: ../Doc/library/winreg.rst:731 +#: ../Doc/library/winreg.rst:734 msgid "Detaches the Windows handle from the handle object." msgstr "" -#: ../Doc/library/winreg.rst:733 +#: ../Doc/library/winreg.rst:736 msgid "" "The result is an integer that holds the value of the handle before it is " "detached. If the handle is already detached or closed, this will return " "zero." msgstr "" -#: ../Doc/library/winreg.rst:737 +#: ../Doc/library/winreg.rst:740 msgid "" "After calling this function, the handle is effectively invalidated, but the " "handle is not closed. You would call this function when you need the " "underlying Win32 handle to exist beyond the lifetime of the handle object." msgstr "" -#: ../Doc/library/winreg.rst:744 +#: ../Doc/library/winreg.rst:747 msgid "" "The HKEY object implements :meth:`~object.__enter__` and :meth:`~object." "__exit__` and thus supports the context protocol for the :keyword:`with` " "statement::" msgstr "" -#: ../Doc/library/winreg.rst:751 +#: ../Doc/library/winreg.rst:754 msgid "" "will automatically close *key* when control leaves the :keyword:`with` block." msgstr "" diff --git a/library/wsgiref.po b/library/wsgiref.po index 5581968f2..2f011ed7d 100644 --- a/library/wsgiref.po +++ b/library/wsgiref.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:2 msgid ":mod:`wsgiref` --- WSGI Utilities and Reference Implementation" -msgstr "" +msgstr ":mod:`wsgiref` — Outils et implémentation de référence de WSGI" #: ../Doc/library/wsgiref.rst:12 msgid "" @@ -25,6 +25,10 @@ msgid "" "interface makes it easy to use an application that supports WSGI with a " "number of different web servers." msgstr "" +"WSGI (*Web Server Gateway Interface*) est une interface standard entre le " +"serveur web et une application web écrite en Python. Avoir une interface " +"standardisée permet de faciliter l'usage de ces applications avec un certain " +"nombre de serveurs web différents." #: ../Doc/library/wsgiref.rst:17 msgid "" @@ -33,6 +37,10 @@ msgid "" "every detail of WSGI just to install a WSGI application or to write a web " "application using an existing framework." msgstr "" +"Seules les personnes programmant des serveurs web et des cadriciels ont " +"besoin de connaître les détails d'implémentation et les cas particuliers de " +"l'architecture de WSGI. En tant qu'utilisateur WSGI vous avez uniquement " +"besoin d'installer WSGI ou d'utiliser un cadriciel existant." #: ../Doc/library/wsgiref.rst:22 msgid "" @@ -43,16 +51,26 @@ msgid "" "WSGI applications, and a validation tool that checks WSGI servers and " "applications for conformance to the WSGI specification (:pep:`3333`)." msgstr "" +":mod:`wsgiref` est une implémentation de référence de la spécification WSGI " +"qui peut être utilisée pour ajouter la prise en charge de WSGI par un " +"serveur web ou par un cadriciel. Elle fournit des outils pour manipuler les " +"variables d'environnement WSGI, les en-têtes de réponse, les classes de base " +"pour implémenter des serveurs WSGI, un serveur de démonstration " +"d'application WSGI et un outil de validation qui vérifie que les serveurs et " +"les applications WSGI sont conformes à la spécification WSGI (:pep:`3333`)." #: ../Doc/library/wsgiref.rst:29 msgid "" "See `wsgi.readthedocs.io `_ for more " "information about WSGI, and links to tutorials and other resources." msgstr "" +"Voir `wsgi.readthedocs.io `_ pour plus " +"d'informations à propos de WSGI ainsi que des liens vers des tutoriels et " +"d'autres ressources." #: ../Doc/library/wsgiref.rst:36 msgid ":mod:`wsgiref.util` -- WSGI environment utilities" -msgstr "" +msgstr ":mod:`wsgiref.util` — outils pour les environnements WSGI" #: ../Doc/library/wsgiref.rst:42 msgid "" @@ -62,6 +80,12 @@ msgid "" "*environ* parameter expect a WSGI-compliant dictionary to be supplied; " "please see :pep:`3333` for a detailed specification." msgstr "" +"Ce module fournit un certain nombre de fonctions pour manipuler des " +"environnements WSGI. Un environnement WSGI est un dictionnaire contenant les " +"variables de la requête HTTP comme décrit dans la :pep:`3333`. Toutes les " +"fonctions ayant comme argument *environ* s'attendent à ce qu'un dictionnaire " +"compatible WSGI soit fourni ; voir la :pep:`3333` pour la spécification " +"détaillée." #: ../Doc/library/wsgiref.rst:51 msgid "" @@ -69,6 +93,9 @@ msgid "" "\", by checking for a ``HTTPS`` environment variable in the *environ* " "dictionary. The return value is a string." msgstr "" +"Tente de déterminer s'il faut assigner \"http\" ou \"https\" à ``wsgi." +"url_sheme``, en vérifiant si une variable d'environnement ``HTTPS`` est dans " +"le dictionnaire *environ*. La valeur renvoyée est une chaîne de caractères." #: ../Doc/library/wsgiref.rst:55 msgid "" @@ -134,6 +161,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:105 msgid "Update *environ* with trivial defaults for testing purposes." msgstr "" +"Met à jour *environ* avec des valeurs par défaut pour des cas de tests." #: ../Doc/library/wsgiref.rst:107 msgid "" @@ -143,6 +171,11 @@ msgid "" "*`` variables. It only supplies default values, and does not replace any " "existing settings for these variables." msgstr "" +"Cette fonction ajoute des paramètres requis pour WSGI, en particulier " +"``HTTP_HOST``, ``SERVER_NAME``, ``SERVER_PORT``, ``REQUEST_METHOD``, " +"``SCRIPT_NAME``, ``PATH_INFO`` et toutes les autres variables WSGI définies " +"dans la :pep:`3333`. Elle ne fournit que des valeurs par défaut sans toucher " +"aux valeurs déjà définies de ces variables." #: ../Doc/library/wsgiref.rst:113 msgid "" @@ -150,11 +183,15 @@ msgid "" "and applications to set up dummy environments. It should NOT be used by " "actual WSGI servers or applications, since the data is fake!" msgstr "" +"Cette fonction a pour but de faciliter les tests unitaires des serveurs et " +"des applications WSGI dans des environnements factices. Elle ne devrait pas " +"être utilisée dans une application ou un serveur WSGI, étant donné que les " +"données sont factices !" #: ../Doc/library/wsgiref.rst:117 ../Doc/library/wsgiref.rst:164 #: ../Doc/library/wsgiref.rst:284 ../Doc/library/wsgiref.rst:416 msgid "Example usage::" -msgstr "" +msgstr "Exemple d'utilisation ::" #: ../Doc/library/wsgiref.rst:141 msgid "" @@ -252,7 +289,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:229 msgid "Return a list of all the values for the named header." -msgstr "" +msgstr "Renvoie une liste de toutes les valeurs pour l'en-tête *name*." #: ../Doc/library/wsgiref.rst:231 msgid "" @@ -282,11 +319,11 @@ msgstr "" #: ../Doc/library/wsgiref.rst:252 msgid "The above will add a header that looks like this::" -msgstr "" +msgstr "Le code ci-dessus ajoute un en-tête qui ressemble à ceci ::" #: ../Doc/library/wsgiref.rst:257 msgid "*headers* parameter is optional." -msgstr "" +msgstr "Le paramètre *headers* est optionnel." #: ../Doc/library/wsgiref.rst:262 msgid ":mod:`wsgiref.simple_server` -- a simple WSGI HTTP server" diff --git a/library/xml.dom.minidom.po b/library/xml.dom.minidom.po index 00c70f2e0..c23cda6ec 100644 --- a/library/xml.dom.minidom.po +++ b/library/xml.dom.minidom.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" "PO-Revision-Date: 2018-09-29 19:35+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -154,31 +154,32 @@ msgstr "" msgid "" "You can avoid calling this method explicitly by using the :keyword:`with` " "statement. The following code will automatically unlink *dom* when the :" -"keyword:`with` block is exited::" +"keyword:`!with` block is exited::" msgstr "" #: ../Doc/library/xml.dom.minidom.rst:137 msgid "" -"Write XML to the writer object. The writer should have a :meth:`write` " -"method which matches that of the file object interface. The *indent* " -"parameter is the indentation of the current node. The *addindent* parameter " -"is the incremental indentation to use for subnodes of the current one. The " -"*newl* parameter specifies the string to use to terminate newlines." +"Write XML to the writer object. The writer receives texts but not bytes as " +"input, it should have a :meth:`write` method which matches that of the file " +"object interface. The *indent* parameter is the indentation of the current " +"node. The *addindent* parameter is the incremental indentation to use for " +"subnodes of the current one. The *newl* parameter specifies the string to " +"use to terminate newlines." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:143 +#: ../Doc/library/xml.dom.minidom.rst:144 msgid "" "For the :class:`Document` node, an additional keyword argument *encoding* " "can be used to specify the encoding field of the XML header." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:149 +#: ../Doc/library/xml.dom.minidom.rst:150 msgid "" "Return a string or byte string containing the XML represented by the DOM " "node." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:152 +#: ../Doc/library/xml.dom.minidom.rst:153 msgid "" "With an explicit *encoding* [1]_ argument, the result is a byte string in " "the specified encoding. With no *encoding* argument, the result is a Unicode " @@ -187,47 +188,47 @@ msgid "" "incorrect, since UTF-8 is the default encoding of XML." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:161 +#: ../Doc/library/xml.dom.minidom.rst:162 msgid "" "Return a pretty-printed version of the document. *indent* specifies the " "indentation string and defaults to a tabulator; *newl* specifies the string " "emitted at the end of each line and defaults to ``\\n``." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:165 +#: ../Doc/library/xml.dom.minidom.rst:166 msgid "" "The *encoding* argument behaves like the corresponding argument of :meth:" "`toxml`." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:172 +#: ../Doc/library/xml.dom.minidom.rst:173 msgid "DOM Example" msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:174 +#: ../Doc/library/xml.dom.minidom.rst:175 msgid "" "This example program is a fairly realistic example of a simple program. In " "this particular case, we do not take much advantage of the flexibility of " "the DOM." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:183 +#: ../Doc/library/xml.dom.minidom.rst:184 msgid "minidom and the DOM standard" msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:185 +#: ../Doc/library/xml.dom.minidom.rst:186 msgid "" "The :mod:`xml.dom.minidom` module is essentially a DOM 1.0-compatible DOM " "with some DOM 2 features (primarily namespace features)." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:188 +#: ../Doc/library/xml.dom.minidom.rst:189 msgid "" "Usage of the DOM interface in Python is straight-forward. The following " "mapping rules apply:" msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:191 +#: ../Doc/library/xml.dom.minidom.rst:192 msgid "" "Interfaces are accessed through instance objects. Applications should not " "instantiate the classes themselves; they should use the creator functions " @@ -236,14 +237,14 @@ msgid "" "operations." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:196 +#: ../Doc/library/xml.dom.minidom.rst:197 msgid "" "Operations are used as methods. Since the DOM uses only :keyword:`in` " "parameters, the arguments are passed in normal order (from left to right). " "There are no optional arguments. ``void`` operations return ``None``." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:200 +#: ../Doc/library/xml.dom.minidom.rst:201 msgid "" "IDL attributes map to instance attributes. For compatibility with the OMG " "IDL language mapping for Python, an attribute ``foo`` can also be accessed " @@ -251,13 +252,13 @@ msgid "" "``readonly`` attributes must not be changed; this is not enforced at runtime." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:205 +#: ../Doc/library/xml.dom.minidom.rst:206 msgid "" "The types ``short int``, ``unsigned int``, ``unsigned long long``, and " "``boolean`` all map to Python integer objects." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:208 +#: ../Doc/library/xml.dom.minidom.rst:209 msgid "" "The type ``DOMString`` maps to Python strings. :mod:`xml.dom.minidom` " "supports either bytes or strings, but will normally produce strings. Values " @@ -265,21 +266,21 @@ msgid "" "``null`` value by the DOM specification from the W3C." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:213 +#: ../Doc/library/xml.dom.minidom.rst:214 msgid "" "``const`` declarations map to variables in their respective scope (e.g. " "``xml.dom.minidom.Node.PROCESSING_INSTRUCTION_NODE``); they must not be " "changed." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:216 +#: ../Doc/library/xml.dom.minidom.rst:217 msgid "" "``DOMException`` is currently not supported in :mod:`xml.dom.minidom`. " "Instead, :mod:`xml.dom.minidom` uses standard Python exceptions such as :exc:" "`TypeError` and :exc:`AttributeError`." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:220 +#: ../Doc/library/xml.dom.minidom.rst:221 msgid "" ":class:`NodeList` objects are implemented using Python's built-in list type. " "These objects provide the interface defined in the DOM specification, but " @@ -288,58 +289,30 @@ msgid "" "recommendations." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:226 +#: ../Doc/library/xml.dom.minidom.rst:227 msgid "" "The following interfaces have no implementation in :mod:`xml.dom.minidom`:" msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:228 +#: ../Doc/library/xml.dom.minidom.rst:229 msgid ":class:`DOMTimeStamp`" msgstr ":class:`DOMTimeStamp`" -#: ../Doc/library/xml.dom.minidom.rst:230 -msgid ":class:`DocumentType`" -msgstr ":class:`DocumentType`" - -#: ../Doc/library/xml.dom.minidom.rst:232 -msgid ":class:`DOMImplementation`" -msgstr ":class:`DOMImplementation`" - -#: ../Doc/library/xml.dom.minidom.rst:234 -msgid ":class:`CharacterData`" -msgstr ":class:`CharacterData`" - -#: ../Doc/library/xml.dom.minidom.rst:236 -msgid ":class:`CDATASection`" -msgstr ":class:`CDATASection`" - -#: ../Doc/library/xml.dom.minidom.rst:238 -msgid ":class:`Notation`" -msgstr ":class:`Notation`" - -#: ../Doc/library/xml.dom.minidom.rst:240 -msgid ":class:`Entity`" -msgstr ":class:`Entity`" - -#: ../Doc/library/xml.dom.minidom.rst:242 +#: ../Doc/library/xml.dom.minidom.rst:231 msgid ":class:`EntityReference`" msgstr ":class:`EntityReference`" -#: ../Doc/library/xml.dom.minidom.rst:244 -msgid ":class:`DocumentFragment`" -msgstr ":class:`DocumentFragment`" - -#: ../Doc/library/xml.dom.minidom.rst:246 +#: ../Doc/library/xml.dom.minidom.rst:233 msgid "" "Most of these reflect information in the XML document that is not of general " "utility to most DOM users." msgstr "" -#: ../Doc/library/xml.dom.minidom.rst:250 +#: ../Doc/library/xml.dom.minidom.rst:237 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/xml.dom.minidom.rst:251 +#: ../Doc/library/xml.dom.minidom.rst:238 msgid "" "The encoding name included in the XML output should conform to the " "appropriate standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not " @@ -348,3 +321,24 @@ msgid "" "EncodingDecl and https://www.iana.org/assignments/character-sets/character-" "sets.xhtml." msgstr "" + +#~ msgid ":class:`DocumentType`" +#~ msgstr ":class:`DocumentType`" + +#~ msgid ":class:`DOMImplementation`" +#~ msgstr ":class:`DOMImplementation`" + +#~ msgid ":class:`CharacterData`" +#~ msgstr ":class:`CharacterData`" + +#~ msgid ":class:`CDATASection`" +#~ msgstr ":class:`CDATASection`" + +#~ msgid ":class:`Notation`" +#~ msgstr ":class:`Notation`" + +#~ msgid ":class:`Entity`" +#~ msgstr ":class:`Entity`" + +#~ msgid ":class:`DocumentFragment`" +#~ msgstr ":class:`DocumentFragment`" diff --git a/library/xml.dom.po b/library/xml.dom.po index 4f2e4d46b..a9df60f09 100644 --- a/library/xml.dom.po +++ b/library/xml.dom.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-09-29 19:36+0200\n" +"PO-Revision-Date: 2019-06-01 23:09+0200\n" "Last-Translator: Cyprien Le Pannérer \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" #: ../Doc/library/xml.dom.rst:2 msgid ":mod:`xml.dom` --- The Document Object Model API" -msgstr ":mod:`xml.dom` --- L'API Document Object Model" +msgstr ":mod:`xml.dom` — L'API Document Object Model" #: ../Doc/library/xml.dom.rst:10 msgid "**Source code:** :source:`Lib/xml/dom/__init__.py`" @@ -207,9 +208,9 @@ msgstr "" "Renvoie une implémentation DOM appropriée. Le *name* est soit connu, soit le " "nom du module d'une implémentation DOM, soit ``None``. Si ce n'est pas " "``None``, le module correspondant est importé et retourne un objet :class:" -"`DOMImplementation` si l'import réussit. Si Aucun *name* n'est donné et que " -"la variable d'environnement :envvar:`PYTHON_DOM` est positionnée, cette " -"variable est utilisé pour trouver l'implémentation." +"`DOMImplementation` si l'importation réussit. Si Aucun *name* n'est donné et " +"que la variable d'environnement :envvar:`PYTHON_DOM` est positionnée, cette " +"variable est utilisée pour trouver l'implémentation." #: ../Doc/library/xml.dom.rst:103 msgid "" @@ -236,17 +237,17 @@ msgid "" "the DOM. This is typically found as the :attr:`namespaceURI` of a node, or " "used as the *namespaceURI* parameter to a namespaces-specific method." msgstr "" -"La valeur utilisée pour indiquer qu'aucun espace de nom n'est associé à un " +"La valeur utilisée pour indiquer qu'aucun espace de noms n'est associé à un " "nœud dans le DOM. Typiquement, ceci est trouvé comme :attr:`namespaceURI` " "dans un nœud ou utilisé comme le paramètre *namespaceURI* dans une méthode " -"spécifique aux espaces de nom." +"spécifique aux espaces de noms." #: ../Doc/library/xml.dom.rst:121 msgid "" "The namespace URI associated with the reserved prefix ``xml``, as defined by " "`Namespaces in XML `_ (section 4)." msgstr "" -"L'URI de l'espace de nom associé avec le préfixe réservé ``xml`` comme " +"L'URI de l'espace de noms associé avec le préfixe réservé ``xml`` comme " "défini par `Namespaces in XML `_ " "(section 4)." @@ -256,7 +257,7 @@ msgid "" "Model (DOM) Level 2 Core Specification `_ (section 1.1.8)." msgstr "" -"L'URI de l'espace de nom pour la déclaration des espaces de noms, tel que " +"L'URI de l'espace de noms pour la déclaration des espaces de noms, tel que " "défini par `Document Object Model (DOM) Level 2 Core Specification `_ (section 1.1.8)." @@ -265,8 +266,9 @@ msgid "" "The URI of the XHTML namespace as defined by `XHTML 1.0: The Extensible " "HyperText Markup Language `_ (section 3.1.1)." msgstr "" -"L'URI de l'espace de nom XHTML tel que défini par `XHTML 1.0: The Extensible " -"HyperText Markup Language `_ (section 3.1.1)." +"L'URI de l'espace de noms XHTML tel que défini par `XHTML 1.0: The " +"Extensible HyperText Markup Language `_ " +"(section 3.1.1)." #: ../Doc/library/xml.dom.rst:138 msgid "" @@ -620,8 +622,8 @@ msgid "" "The namespace associated with the element name. This will be a string or " "``None``. This is a read-only attribute." msgstr "" -"L'espace de nom associé (*namespace*) au nom de l'élément. Cette valeur sera " -"une chaîne ou ``None``. Cet attribut est en lecture seule." +"L'espace de noms associé (*namespace* en anglais) au nom de l'élément. Cette " +"valeur est une chaîne ou ``None``. Cet attribut est en lecture seule." #: ../Doc/library/xml.dom.rst:322 msgid "" diff --git a/library/xml.dom.pulldom.po b/library/xml.dom.pulldom.po index d1b5d7219..b8199b0f3 100644 --- a/library/xml.dom.pulldom.po +++ b/library/xml.dom.pulldom.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -41,53 +41,60 @@ msgid "" "see :ref:`xml-vulnerabilities`." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:29 +#: ../Doc/library/xml.dom.pulldom.rst:30 +msgid "" +"The SAX parser no longer processes general external entities by default to " +"increase security by default. To enable processing of external entities, " +"pass a custom parser instance in::" +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:43 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/xml.dom.pulldom.rst:40 +#: ../Doc/library/xml.dom.pulldom.rst:54 msgid "``event`` is a constant and can be one of:" msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:42 +#: ../Doc/library/xml.dom.pulldom.rst:56 msgid ":data:`START_ELEMENT`" msgstr ":data:`START_ELEMENT`" -#: ../Doc/library/xml.dom.pulldom.rst:43 +#: ../Doc/library/xml.dom.pulldom.rst:57 msgid ":data:`END_ELEMENT`" msgstr ":data:`END_ELEMENT`" -#: ../Doc/library/xml.dom.pulldom.rst:44 +#: ../Doc/library/xml.dom.pulldom.rst:58 msgid ":data:`COMMENT`" msgstr ":data:`COMMENT`" -#: ../Doc/library/xml.dom.pulldom.rst:45 +#: ../Doc/library/xml.dom.pulldom.rst:59 msgid ":data:`START_DOCUMENT`" msgstr ":data:`START_DOCUMENT`" -#: ../Doc/library/xml.dom.pulldom.rst:46 +#: ../Doc/library/xml.dom.pulldom.rst:60 msgid ":data:`END_DOCUMENT`" msgstr ":data:`END_DOCUMENT`" -#: ../Doc/library/xml.dom.pulldom.rst:47 +#: ../Doc/library/xml.dom.pulldom.rst:61 msgid ":data:`CHARACTERS`" msgstr ":data:`CHARACTERS`" -#: ../Doc/library/xml.dom.pulldom.rst:48 +#: ../Doc/library/xml.dom.pulldom.rst:62 msgid ":data:`PROCESSING_INSTRUCTION`" msgstr ":data:`PROCESSING_INSTRUCTION`" -#: ../Doc/library/xml.dom.pulldom.rst:49 +#: ../Doc/library/xml.dom.pulldom.rst:63 msgid ":data:`IGNORABLE_WHITESPACE`" msgstr ":data:`IGNORABLE_WHITESPACE`" -#: ../Doc/library/xml.dom.pulldom.rst:51 +#: ../Doc/library/xml.dom.pulldom.rst:65 msgid "" "``node`` is an object of type :class:`xml.dom.minidom.Document`, :class:`xml." "dom.minidom.Element` or :class:`xml.dom.minidom.Text`." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:54 +#: ../Doc/library/xml.dom.pulldom.rst:68 msgid "" "Since the document is treated as a \"flat\" stream of events, the document " "\"tree\" is implicitly traversed and the desired elements are found " @@ -99,11 +106,11 @@ msgid "" "`DOMEventStream.expandNode` method and switch to DOM-related processing." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:66 ../Doc/library/xml.dom.pulldom.rst:71 +#: ../Doc/library/xml.dom.pulldom.rst:80 ../Doc/library/xml.dom.pulldom.rst:85 msgid "Subclass of :class:`xml.sax.handler.ContentHandler`." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:76 +#: ../Doc/library/xml.dom.pulldom.rst:90 msgid "" "Return a :class:`DOMEventStream` from the given input. *stream_or_string* " "may be either a file name, or a file-like object. *parser*, if given, must " @@ -113,32 +120,32 @@ msgid "" "done in advance." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:83 +#: ../Doc/library/xml.dom.pulldom.rst:97 msgid "" "If you have XML in a string, you can use the :func:`parseString` function " "instead:" msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:87 +#: ../Doc/library/xml.dom.pulldom.rst:101 msgid "" "Return a :class:`DOMEventStream` that represents the (Unicode) *string*." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:91 +#: ../Doc/library/xml.dom.pulldom.rst:105 msgid "Default value for the *bufsize* parameter to :func:`parse`." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:93 +#: ../Doc/library/xml.dom.pulldom.rst:107 msgid "" "The value of this variable can be changed before calling :func:`parse` and " "the new value will take effect." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:99 +#: ../Doc/library/xml.dom.pulldom.rst:113 msgid "DOMEventStream Objects" msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:106 +#: ../Doc/library/xml.dom.pulldom.rst:120 msgid "" "Return a tuple containing *event* and the current *node* as :class:`xml.dom." "minidom.Document` if event equals :data:`START_DOCUMENT`, :class:`xml.dom." @@ -148,6 +155,6 @@ msgid "" "children, unless :func:`expandNode` is called." msgstr "" -#: ../Doc/library/xml.dom.pulldom.rst:116 +#: ../Doc/library/xml.dom.pulldom.rst:130 msgid "Expands all children of *node* into *node*. Example::" msgstr "" diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index 952ae6dc1..b4fcd3395 100644 --- a/library/xml.etree.elementtree.po +++ b/library/xml.etree.elementtree.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" "PO-Revision-Date: 2018-07-04 11:02+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -304,7 +304,7 @@ msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:408 msgid "Syntax" -msgstr "" +msgstr "Syntaxe" #: ../Doc/library/xml.etree.elementtree.rst:408 msgid "Meaning" @@ -430,7 +430,7 @@ msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:461 msgid "Reference" -msgstr "" +msgstr "Référence" #: ../Doc/library/xml.etree.elementtree.rst:466 msgid "Functions" @@ -472,10 +472,12 @@ msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:495 msgid "" "Parses an XML section from a string constant. Same as :func:`XML`. *text* " -"is a string containing XML data. Returns an :class:`Element` instance." +"is a string containing XML data. *parser* is an optional parser instance. " +"If not given, the standard :class:`XMLParser` parser is used. Returns an :" +"class:`Element` instance." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:501 +#: ../Doc/library/xml.etree.elementtree.rst:503 msgid "" "Parses an XML document from a sequence of string fragments. *sequence* is a " "list or other sequence containing XML data fragments. *parser* is an " @@ -483,13 +485,13 @@ msgid "" "parser is used. Returns an :class:`Element` instance." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:511 +#: ../Doc/library/xml.etree.elementtree.rst:513 msgid "" "Checks if an object appears to be a valid element object. *element* is an " "element instance. Returns a true value if this is an element object." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:517 +#: ../Doc/library/xml.etree.elementtree.rst:519 msgid "" "Parses an XML section into an element tree incrementally, and reports what's " "going on to the user. *source* is a filename or :term:`file object` " @@ -503,7 +505,7 @@ msgid "" "target. Returns an :term:`iterator` providing ``(event, elem)`` pairs." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:528 +#: ../Doc/library/xml.etree.elementtree.rst:530 msgid "" "Note that while :func:`iterparse` builds the tree incrementally, it issues " "blocking reads on *source* (or the file it names). As such, it's unsuitable " @@ -511,7 +513,7 @@ msgid "" "parsing, see :class:`XMLPullParser`." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:535 +#: ../Doc/library/xml.etree.elementtree.rst:537 msgid "" ":func:`iterparse` only guarantees that it has seen the \">\" character of a " "starting tag when it emits a \"start\" event, so the attributes are defined, " @@ -520,16 +522,16 @@ msgid "" "present." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:541 -#: ../Doc/library/xml.etree.elementtree.rst:1175 +#: ../Doc/library/xml.etree.elementtree.rst:543 +#: ../Doc/library/xml.etree.elementtree.rst:1177 msgid "If you need a fully populated element, look for \"end\" events instead." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:543 +#: ../Doc/library/xml.etree.elementtree.rst:545 msgid "The *parser* argument." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:548 +#: ../Doc/library/xml.etree.elementtree.rst:550 msgid "" "Parses an XML section into an element tree. *source* is a filename or file " "object containing XML data. *parser* is an optional parser instance. If " @@ -537,7 +539,7 @@ msgid "" "class:`ElementTree` instance." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:556 +#: ../Doc/library/xml.etree.elementtree.rst:558 msgid "" "PI element factory. This factory function creates a special element that " "will be serialized as an XML processing instruction. *target* is a string " @@ -545,7 +547,7 @@ msgid "" "given. Returns an element instance, representing a processing instruction." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:561 +#: ../Doc/library/xml.etree.elementtree.rst:563 msgid "" "Note that :class:`XMLParser` skips over processing instructions in the input " "instead of creating comment objects for them. An :class:`ElementTree` will " @@ -553,7 +555,7 @@ msgid "" "the tree using one of the :class:`Element` methods." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:569 +#: ../Doc/library/xml.etree.elementtree.rst:571 msgid "" "Registers a namespace prefix. The registry is global, and any existing " "mapping for either the given prefix or the namespace URI will be removed. " @@ -562,13 +564,13 @@ msgid "" "all possible." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:580 +#: ../Doc/library/xml.etree.elementtree.rst:582 msgid "" "Subelement factory. This function creates an element instance, and appends " "it to an existing element." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:583 +#: ../Doc/library/xml.etree.elementtree.rst:585 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *parent* is the parent element. *tag* is " @@ -577,7 +579,7 @@ msgid "" "arguments. Returns an element instance." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:593 +#: ../Doc/library/xml.etree.elementtree.rst:595 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -588,13 +590,13 @@ msgid "" "write`. Returns an (optionally) encoded string containing the XML data." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:601 -#: ../Doc/library/xml.etree.elementtree.rst:620 -#: ../Doc/library/xml.etree.elementtree.rst:947 +#: ../Doc/library/xml.etree.elementtree.rst:603 +#: ../Doc/library/xml.etree.elementtree.rst:622 +#: ../Doc/library/xml.etree.elementtree.rst:949 msgid "The *short_empty_elements* parameter." -msgstr "" +msgstr "Le paramètre *short_empty_elements*." -#: ../Doc/library/xml.etree.elementtree.rst:608 +#: ../Doc/library/xml.etree.elementtree.rst:610 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -607,7 +609,7 @@ msgid "" "join(tostringlist(element)) == tostring(element)``." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:626 +#: ../Doc/library/xml.etree.elementtree.rst:628 msgid "" "Parses an XML section from a string constant. This function can be used to " "embed \"XML literals\" in Python code. *text* is a string containing XML " @@ -615,7 +617,7 @@ msgid "" "class:`XMLParser` parser is used. Returns an :class:`Element` instance." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:634 +#: ../Doc/library/xml.etree.elementtree.rst:636 msgid "" "Parses an XML section from a string constant, and also returns a dictionary " "which maps from element id:s to elements. *text* is a string containing XML " @@ -624,17 +626,17 @@ msgid "" "`Element` instance and a dictionary." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:644 +#: ../Doc/library/xml.etree.elementtree.rst:646 msgid "Element Objects" msgstr "Objets Elements" -#: ../Doc/library/xml.etree.elementtree.rst:648 +#: ../Doc/library/xml.etree.elementtree.rst:650 msgid "" "Element class. This class defines the Element interface, and provides a " "reference implementation of this interface." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:651 +#: ../Doc/library/xml.etree.elementtree.rst:653 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *tag* is the element name. *attrib* is an " @@ -642,13 +644,13 @@ msgid "" "additional attributes, given as keyword arguments." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:659 +#: ../Doc/library/xml.etree.elementtree.rst:661 msgid "" "A string identifying what kind of data this element represents (the element " "type, in other words)." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:666 +#: ../Doc/library/xml.etree.elementtree.rst:668 msgid "" "These attributes can be used to hold additional data associated with the " "element. Their values are usually strings but may be any application-" @@ -659,7 +661,7 @@ msgid "" "the XML data" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:678 +#: ../Doc/library/xml.etree.elementtree.rst:680 msgid "" "the *a* element has ``None`` for both *text* and *tail* attributes, the *b* " "element has *text* ``\"1\"`` and *tail* ``\"4\"``, the *c* element has " @@ -667,17 +669,17 @@ msgid "" "``None`` and *tail* ``\"3\"``." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:683 +#: ../Doc/library/xml.etree.elementtree.rst:685 msgid "" "To collect the inner text of an element, see :meth:`itertext`, for example ``" "\"\".join(element.itertext())``." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:686 +#: ../Doc/library/xml.etree.elementtree.rst:688 msgid "Applications may store arbitrary objects in these attributes." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:691 +#: ../Doc/library/xml.etree.elementtree.rst:693 msgid "" "A dictionary containing the element's attributes. Note that while the " "*attrib* value is always a real mutable Python dictionary, an ElementTree " @@ -686,59 +688,59 @@ msgid "" "implementations, use the dictionary methods below whenever possible." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:697 +#: ../Doc/library/xml.etree.elementtree.rst:699 msgid "The following dictionary-like methods work on the element attributes." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:702 +#: ../Doc/library/xml.etree.elementtree.rst:704 msgid "" "Resets an element. This function removes all subelements, clears all " "attributes, and sets the text and tail attributes to ``None``." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:708 +#: ../Doc/library/xml.etree.elementtree.rst:710 msgid "Gets the element attribute named *key*." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:710 +#: ../Doc/library/xml.etree.elementtree.rst:712 msgid "" "Returns the attribute value, or *default* if the attribute was not found." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:715 +#: ../Doc/library/xml.etree.elementtree.rst:717 msgid "" "Returns the element attributes as a sequence of (name, value) pairs. The " "attributes are returned in an arbitrary order." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:721 +#: ../Doc/library/xml.etree.elementtree.rst:723 msgid "" "Returns the elements attribute names as a list. The names are returned in " "an arbitrary order." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:727 +#: ../Doc/library/xml.etree.elementtree.rst:729 msgid "Set the attribute *key* on the element to *value*." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:729 +#: ../Doc/library/xml.etree.elementtree.rst:731 msgid "The following methods work on the element's children (subelements)." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:734 +#: ../Doc/library/xml.etree.elementtree.rst:736 msgid "" "Adds the element *subelement* to the end of this element's internal list of " "subelements. Raises :exc:`TypeError` if *subelement* is not an :class:" "`Element`." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:741 +#: ../Doc/library/xml.etree.elementtree.rst:743 msgid "" "Appends *subelements* from a sequence object with zero or more elements. " "Raises :exc:`TypeError` if a subelement is not an :class:`Element`." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:749 +#: ../Doc/library/xml.etree.elementtree.rst:751 msgid "" "Finds the first subelement matching *match*. *match* may be a tag name or " "a :ref:`path `. Returns an element instance or " @@ -746,7 +748,7 @@ msgid "" "name." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:757 +#: ../Doc/library/xml.etree.elementtree.rst:759 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns a list containing all matching elements in document " @@ -754,7 +756,7 @@ msgid "" "name." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:765 +#: ../Doc/library/xml.etree.elementtree.rst:767 msgid "" "Finds text for the first subelement matching *match*. *match* may be a tag " "name or a :ref:`path `. Returns the text content of the " @@ -763,21 +765,21 @@ msgid "" "*namespaces* is an optional mapping from namespace prefix to full name." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:775 +#: ../Doc/library/xml.etree.elementtree.rst:777 msgid "Use ``list(elem)`` or iteration." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:781 +#: ../Doc/library/xml.etree.elementtree.rst:783 msgid "Use method :meth:`Element.iter` instead." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:787 +#: ../Doc/library/xml.etree.elementtree.rst:789 msgid "" "Inserts *subelement* at the given position in this element. Raises :exc:" "`TypeError` if *subelement* is not an :class:`Element`." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:793 +#: ../Doc/library/xml.etree.elementtree.rst:795 msgid "" "Creates a tree :term:`iterator` with the current element as the root. The " "iterator iterates over this element and all elements below it, in document " @@ -786,7 +788,7 @@ msgid "" "structure is modified during iteration, the result is undefined." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:804 +#: ../Doc/library/xml.etree.elementtree.rst:806 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns an iterable yielding all matching elements in document " @@ -794,95 +796,95 @@ msgid "" "name." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:815 +#: ../Doc/library/xml.etree.elementtree.rst:817 msgid "" "Creates a text iterator. The iterator loops over this element and all " "subelements, in document order, and returns all inner text." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:823 +#: ../Doc/library/xml.etree.elementtree.rst:825 msgid "" "Creates a new element object of the same type as this element. Do not call " "this method, use the :func:`SubElement` factory function instead." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:829 +#: ../Doc/library/xml.etree.elementtree.rst:831 msgid "" "Removes *subelement* from the element. Unlike the find\\* methods this " "method compares elements based on the instance identity, not on tag value or " "contents." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:833 +#: ../Doc/library/xml.etree.elementtree.rst:835 msgid "" ":class:`Element` objects also support the following sequence type methods " "for working with subelements: :meth:`~object.__delitem__`, :meth:`~object." "__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__len__`." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:838 +#: ../Doc/library/xml.etree.elementtree.rst:840 msgid "" "Caution: Elements with no subelements will test as ``False``. This behavior " "will change in future versions. Use specific ``len(elem)`` or ``elem is " "None`` test instead. ::" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:854 +#: ../Doc/library/xml.etree.elementtree.rst:856 msgid "ElementTree Objects" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:859 +#: ../Doc/library/xml.etree.elementtree.rst:861 msgid "" "ElementTree wrapper class. This class represents an entire element " "hierarchy, and adds some extra support for serialization to and from " "standard XML." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:863 +#: ../Doc/library/xml.etree.elementtree.rst:865 msgid "" "*element* is the root element. The tree is initialized with the contents of " "the XML *file* if given." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:869 +#: ../Doc/library/xml.etree.elementtree.rst:871 msgid "" "Replaces the root element for this tree. This discards the current contents " "of the tree, and replaces it with the given element. Use with care. " "*element* is an element instance." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:876 +#: ../Doc/library/xml.etree.elementtree.rst:878 msgid "Same as :meth:`Element.find`, starting at the root of the tree." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:881 +#: ../Doc/library/xml.etree.elementtree.rst:883 msgid "Same as :meth:`Element.findall`, starting at the root of the tree." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:886 +#: ../Doc/library/xml.etree.elementtree.rst:888 msgid "Same as :meth:`Element.findtext`, starting at the root of the tree." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:891 +#: ../Doc/library/xml.etree.elementtree.rst:893 msgid "Use method :meth:`ElementTree.iter` instead." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:897 +#: ../Doc/library/xml.etree.elementtree.rst:899 msgid "Returns the root element for this tree." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:902 +#: ../Doc/library/xml.etree.elementtree.rst:904 msgid "" "Creates and returns a tree iterator for the root element. The iterator " "loops over all elements in this tree, in section order. *tag* is the tag to " "look for (default is to return all elements)." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:909 +#: ../Doc/library/xml.etree.elementtree.rst:911 msgid "Same as :meth:`Element.iterfind`, starting at the root of the tree." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:916 +#: ../Doc/library/xml.etree.elementtree.rst:918 msgid "" "Loads an external XML section into this element tree. *source* is a file " "name or :term:`file object`. *parser* is an optional parser instance. If " @@ -890,7 +892,7 @@ msgid "" "section root element." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:926 +#: ../Doc/library/xml.etree.elementtree.rst:928 msgid "" "Writes the element tree to a file, as XML. *file* is a file name, or a :" "term:`file object` opened for writing. *encoding* [1]_ is the output " @@ -905,7 +907,7 @@ msgid "" "emitted as a pair of start/end tags." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:940 +#: ../Doc/library/xml.etree.elementtree.rst:942 msgid "" "The output is either a string (:class:`str`) or binary (:class:`bytes`). " "This is controlled by the *encoding* argument. If *encoding* is ``\"unicode" @@ -914,21 +916,21 @@ msgid "" "sure you do not try to write a string to a binary stream and vice versa." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:951 +#: ../Doc/library/xml.etree.elementtree.rst:953 msgid "This is the XML file that is going to be manipulated::" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:963 +#: ../Doc/library/xml.etree.elementtree.rst:965 msgid "" "Example of changing the attribute \"target\" of every link in first " "paragraph::" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:982 +#: ../Doc/library/xml.etree.elementtree.rst:984 msgid "QName Objects" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:987 +#: ../Doc/library/xml.etree.elementtree.rst:989 msgid "" "QName wrapper. This can be used to wrap a QName attribute value, in order " "to get proper namespace handling on output. *text_or_uri* is a string " @@ -938,11 +940,11 @@ msgid "" "class:`QName` instances are opaque." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:999 +#: ../Doc/library/xml.etree.elementtree.rst:1001 msgid "TreeBuilder Objects" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1004 +#: ../Doc/library/xml.etree.elementtree.rst:1006 msgid "" "Generic element structure builder. This builder converts a sequence of " "start, data, and end method calls to a well-formed element structure. You " @@ -952,48 +954,48 @@ msgid "" "attributes. It is expected to return a new element instance." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1013 +#: ../Doc/library/xml.etree.elementtree.rst:1015 msgid "" "Flushes the builder buffers, and returns the toplevel document element. " "Returns an :class:`Element` instance." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1019 +#: ../Doc/library/xml.etree.elementtree.rst:1021 msgid "" "Adds text to the current element. *data* is a string. This should be " "either a bytestring, or a Unicode string." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1025 +#: ../Doc/library/xml.etree.elementtree.rst:1027 msgid "" "Closes the current element. *tag* is the element name. Returns the closed " "element." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1031 +#: ../Doc/library/xml.etree.elementtree.rst:1033 msgid "" "Opens a new element. *tag* is the element name. *attrs* is a dictionary " "containing element attributes. Returns the opened element." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1035 +#: ../Doc/library/xml.etree.elementtree.rst:1037 msgid "" "In addition, a custom :class:`TreeBuilder` object can provide the following " "method:" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1040 +#: ../Doc/library/xml.etree.elementtree.rst:1042 msgid "" "Handles a doctype declaration. *name* is the doctype name. *pubid* is the " "public identifier. *system* is the system identifier. This method does not " "exist on the default :class:`TreeBuilder` class." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1050 +#: ../Doc/library/xml.etree.elementtree.rst:1052 msgid "XMLParser Objects" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1055 +#: ../Doc/library/xml.etree.elementtree.rst:1057 msgid "" "This class is the low-level building block of the module. It uses :mod:`xml." "parsers.expat` for efficient, event-based parsing of XML. It can be fed XML " @@ -1005,29 +1007,29 @@ msgid "" "specified in the XML file." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1064 +#: ../Doc/library/xml.etree.elementtree.rst:1066 msgid "" "The *html* argument. The remaining arguments should be passed via keyword " "to prepare for the removal of the *html* argument." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1070 +#: ../Doc/library/xml.etree.elementtree.rst:1072 msgid "" "Finishes feeding data to the parser. Returns the result of calling the " "``close()`` method of the *target* passed during construction; by default, " "this is the toplevel document element." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1077 +#: ../Doc/library/xml.etree.elementtree.rst:1079 msgid "" "Define the :meth:`TreeBuilder.doctype` method on a custom TreeBuilder target." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1084 +#: ../Doc/library/xml.etree.elementtree.rst:1086 msgid "Feeds data to the parser. *data* is encoded data." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1086 +#: ../Doc/library/xml.etree.elementtree.rst:1088 msgid "" ":meth:`XMLParser.feed` calls *target*\\'s ``start(tag, attrs_dict)`` method " "for each opening tag, its ``end(tag)`` method for each closing tag, and data " @@ -1037,11 +1039,11 @@ msgid "" "of an XML file::" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1129 +#: ../Doc/library/xml.etree.elementtree.rst:1131 msgid "XMLPullParser Objects" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1133 +#: ../Doc/library/xml.etree.elementtree.rst:1135 msgid "" "A pull parser suitable for non-blocking applications. Its input-side API is " "similar to that of :class:`XMLParser`, but instead of pushing calls to a " @@ -1053,11 +1055,11 @@ msgid "" "events are reported." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1144 +#: ../Doc/library/xml.etree.elementtree.rst:1146 msgid "Feed the given bytes data to the parser." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1148 +#: ../Doc/library/xml.etree.elementtree.rst:1150 msgid "" "Signal the parser that the data stream is terminated. Unlike :meth:" "`XMLParser.close`, this method always returns :const:`None`. Any events not " @@ -1065,7 +1067,7 @@ msgid "" "`read_events`." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1155 +#: ../Doc/library/xml.etree.elementtree.rst:1157 msgid "" "Return an iterator over the events which have been encountered in the data " "fed to the parser. The iterator yields ``(event, elem)`` pairs, where " @@ -1073,7 +1075,7 @@ msgid "" "*elem* is the encountered :class:`Element` object." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1161 +#: ../Doc/library/xml.etree.elementtree.rst:1163 msgid "" "Events provided in a previous call to :meth:`read_events` will not be " "yielded again. Events are consumed from the internal queue only when they " @@ -1082,7 +1084,7 @@ msgid "" "results." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1169 +#: ../Doc/library/xml.etree.elementtree.rst:1171 msgid "" ":class:`XMLPullParser` only guarantees that it has seen the \">\" character " "of a starting tag when it emits a \"start\" event, so the attributes are " @@ -1091,11 +1093,11 @@ msgid "" "be present." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1180 +#: ../Doc/library/xml.etree.elementtree.rst:1182 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/xml.etree.elementtree.rst:1184 +#: ../Doc/library/xml.etree.elementtree.rst:1186 msgid "" "XML parse error, raised by the various parsing methods in this module when " "parsing fails. The string representation of an instance of this exception " @@ -1103,22 +1105,22 @@ msgid "" "following attributes available:" msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1191 +#: ../Doc/library/xml.etree.elementtree.rst:1193 msgid "" "A numeric error code from the expat parser. See the documentation of :mod:" "`xml.parsers.expat` for the list of error codes and their meanings." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1196 +#: ../Doc/library/xml.etree.elementtree.rst:1198 msgid "" "A tuple of *line*, *column* numbers, specifying where the error occurred." msgstr "" -#: ../Doc/library/xml.etree.elementtree.rst:1199 +#: ../Doc/library/xml.etree.elementtree.rst:1201 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/xml.etree.elementtree.rst:1200 +#: ../Doc/library/xml.etree.elementtree.rst:1202 msgid "" "The encoding string included in XML output should conform to the appropriate " "standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not. See " diff --git a/library/xml.po b/library/xml.po index cd40a5cf2..72ef2eb3a 100644 --- a/library/xml.po +++ b/library/xml.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-21 09:15+0200\n" -"PO-Revision-Date: 2018-09-29 19:36+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2018-12-24 14:22+0100\n" +"PO-Revision-Date: 2018-12-24 14:55+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.0.4\n" +"X-Generator: Poedit 2.2\n" #: ../Doc/library/xml.rst:4 msgid "XML Processing Modules" @@ -147,7 +147,6 @@ msgid "billion laughs" msgstr "*billion laughs*" #: ../Doc/library/xml.rst:66 ../Doc/library/xml.rst:67 -#: ../Doc/library/xml.rst:68 ../Doc/library/xml.rst:69 #: ../Doc/library/xml.rst:70 msgid "**Vulnerable**" msgstr "**Vulnérable**" @@ -156,10 +155,14 @@ msgstr "**Vulnérable**" msgid "quadratic blowup" msgstr "*quadratic blowup*" -#: ../Doc/library/xml.rst:68 ../Doc/library/xml.rst:97 +#: ../Doc/library/xml.rst:68 ../Doc/library/xml.rst:99 msgid "external entity expansion" msgstr "*external entity expansion*" +#: ../Doc/library/xml.rst:68 ../Doc/library/xml.rst:69 +msgid "Safe (4)" +msgstr "Sûr (4)" + #: ../Doc/library/xml.rst:68 msgid "Safe (1)" msgstr "Sûr (1)" @@ -172,7 +175,7 @@ msgstr "Sûr (2)" msgid "Safe (3)" msgstr "Sûr (3)" -#: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:102 +#: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:104 msgid "`DTD`_ retrieval" msgstr "Récupération de `DTD`_" @@ -180,7 +183,7 @@ msgstr "Récupération de `DTD`_" msgid "Safe" msgstr "Sûr" -#: ../Doc/library/xml.rst:70 ../Doc/library/xml.rst:109 +#: ../Doc/library/xml.rst:70 ../Doc/library/xml.rst:111 msgid "decompression bomb" msgstr "*decompression bomb*" @@ -204,11 +207,19 @@ msgstr "" msgid ":mod:`xmlrpclib` doesn't expand external entities and omits them." msgstr ":mod:`xmlrpclib` n'étend pas les entités externes et les omet." -#: ../Doc/library/xml.rst:85 +#: ../Doc/library/xml.rst:78 +msgid "" +"Since Python 3.7.1, external general entities are no longer processed by " +"default." +msgstr "" +"Depuis Python 3.7.1, les entités générales externes ne sont plus traitées " +"par défaut depuis Python." + +#: ../Doc/library/xml.rst:87 msgid "billion laughs / exponential entity expansion" msgstr "*billion laughs* / *exponential entity expansion*" -#: ../Doc/library/xml.rst:81 +#: ../Doc/library/xml.rst:83 msgid "" "The `Billion Laughs`_ attack -- also known as exponential entity expansion " "-- uses multiple levels of nested entities. Each entity refers to another " @@ -223,11 +234,11 @@ msgstr "" "plusieurs gigaoctet de texte et consomme beaucoup de mémoire et de temps " "processeur." -#: ../Doc/library/xml.rst:92 +#: ../Doc/library/xml.rst:94 msgid "quadratic blowup entity expansion" msgstr "*quadratic blowup entity expansion*" -#: ../Doc/library/xml.rst:88 +#: ../Doc/library/xml.rst:90 msgid "" "A quadratic blowup attack is similar to a `Billion Laughs`_ attack; it " "abuses entity expansion, too. Instead of nested entities it repeats one " @@ -239,10 +250,10 @@ msgstr "" "il s'agit également d'un abus d'extension d'entités. Au lieu d'utiliser des " "entités imbriquées, cette attaque répète encore et encore une seule entité " "de plusieurs milliers de caractères. Cette attaque n'est pas aussi efficace " -"que la version exponentielle mais contourne les contre-mesure de l'analyseur " -"qui interdit les entités imbriquées de multiples fois." +"que la version exponentielle mais contourne les contre-mesures de " +"l'analyseur qui interdit les entités imbriquées de multiples fois." -#: ../Doc/library/xml.rst:95 +#: ../Doc/library/xml.rst:97 msgid "" "Entity declarations can contain more than just text for replacement. They " "can also point to external resources or local files. The XML parser accesses " @@ -253,7 +264,7 @@ msgstr "" "des fichiers locaux. L'analyseur XML accède à ces fichiers et inclut les " "contenus dans le document XML." -#: ../Doc/library/xml.rst:100 +#: ../Doc/library/xml.rst:102 msgid "" "Some XML libraries like Python's :mod:`xml.dom.pulldom` retrieve document " "type definitions from remote or local locations. The feature has similar " @@ -264,7 +275,7 @@ msgstr "" "ou locaux. La fonctionnalité a des implications similaires que le problème " "d'extension d'entités externes." -#: ../Doc/library/xml.rst:105 +#: ../Doc/library/xml.rst:107 msgid "" "Decompression bombs (aka `ZIP bomb`_) apply to all XML libraries that can " "parse compressed XML streams such as gzipped HTTP streams or LZMA-compressed " @@ -277,7 +288,7 @@ msgstr "" "permet de réduire d'une magnitude d'ordre 3 ou plus la quantité de données " "transmises." -#: ../Doc/library/xml.rst:111 +#: ../Doc/library/xml.rst:113 msgid "" "The documentation for `defusedxml`_ on PyPI has further information about " "all known attack vectors with examples and references." @@ -285,11 +296,11 @@ msgstr "" "La documentation de `defusedxml`_ sur PyPI contient plus d'informations sur " "tous les vecteurs d'attaques connus ainsi que des exemples et des références." -#: ../Doc/library/xml.rst:117 +#: ../Doc/library/xml.rst:119 msgid "The :mod:`defusedxml` and :mod:`defusedexpat` Packages" msgstr "Les paquets :mod:`defusedxml` et :mod:`defusedexpat`" -#: ../Doc/library/xml.rst:119 +#: ../Doc/library/xml.rst:121 msgid "" "`defusedxml`_ is a pure Python package with modified subclasses of all " "stdlib XML parsers that prevent any potentially malicious operation. Use of " @@ -304,7 +315,7 @@ msgstr "" "fiables. Le paquet inclut également des exemples d'attaques et une " "documentation plus fournie sur plus d'attaques XML comme *XPath injection*." -#: ../Doc/library/xml.rst:125 +#: ../Doc/library/xml.rst:127 msgid "" "`defusedexpat`_ provides a modified libexpat and a patched :mod:`pyexpat` " "module that have countermeasures against entity expansion DoS attacks. The :" diff --git a/library/xml.sax.po b/library/xml.sax.po index fda0c91cc..8f60a8962 100644 --- a/library/xml.sax.po +++ b/library/xml.sax.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-09-29 19:06+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-12-14 10:23+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" #: ../Doc/library/xml.sax.rst:2 msgid ":mod:`xml.sax` --- Support for SAX2 parsers" -msgstr ":mod:`xml.sax` --- Prise en charge des analyseurs SAX2" +msgstr ":mod:`xml.sax` — Prise en charge des analyseurs SAX2" #: ../Doc/library/xml.sax.rst:11 msgid "**Source code:** :source:`Lib/xml/sax/__init__.py`" @@ -44,25 +45,42 @@ msgstr "" "de façon malveillante. Si vous avez besoin d'analyser des données non " "sécurisées ou non authentifiées, voir :ref:`xml-vulnerabilities`." -#: ../Doc/library/xml.sax.rst:28 +#: ../Doc/library/xml.sax.rst:29 +msgid "" +"The SAX parser no longer processes general external entities by default to " +"increase security. Before, the parser created network connections to fetch " +"remote files or loaded local files from the file system for DTD and " +"entities. The feature can be enabled again with method :meth:`~xml.sax." +"xmlreader.XMLReader.setFeature` on the parser object and argument :data:" +"`~xml.sax.handler.feature_external_ges`." +msgstr "" +"L'analyseur SAX ne traite plus les entités externes générales par défaut " +"pour augmenter la sécurité. Auparavant, l'analyseur créait des connexions " +"réseau pour extraire des fichiers distants ou des fichiers locaux chargés à " +"partir du système de fichiers pour les DTD et les entités. La fonctionnalité " +"peut être activée à nouveau avec la méthode :meth:`~xml.sax.xmlreader." +"XMLReader.setFeature` sur l'objet analyseur et l'argument :data:`~xml.sax." +"handler.feature_external_ges`." + +#: ../Doc/library/xml.sax.rst:36 msgid "The convenience functions are:" msgstr "Les fonctions les plus utiles sont:" -#: ../Doc/library/xml.sax.rst:33 +#: ../Doc/library/xml.sax.rst:41 msgid "" "Create and return a SAX :class:`~xml.sax.xmlreader.XMLReader` object. The " "first parser found will be used. If *parser_list* is provided, it must be a " -"sequence of strings which name modules that have a function named :func:" +"list of strings which name modules that have a function named :func:" "`create_parser`. Modules listed in *parser_list* will be used before " "modules in the default list of parsers." msgstr "" "Crée et renvoie un objet SAX :class:`~xml.sax.xmlreader.XMLReader`. Le " "premier analyseur trouvé sera utilisé. Si *parser_list* est fourni, il doit " -"être une séquence de chaînes qui nomme des modules qui ont une fonction " -"nommée :func:`create_parser`. Les modules listés dans *parser_list* seront " -"utilisés avant les modules dans la liste par défaut des analyseurs." +"être une liste de chaînes de caractères qui nomme des modules qui ont une " +"fonction nommée :func:`create_parser`. Les modules listés dans *parser_list* " +"seront utilisés avant les modules dans la liste par défaut des analyseurs." -#: ../Doc/library/xml.sax.rst:42 +#: ../Doc/library/xml.sax.rst:50 msgid "" "Create a SAX parser and use it to parse a document. The document, passed in " "as *filename_or_stream*, can be a filename or a file object. The *handler* " @@ -80,7 +98,7 @@ msgstr "" "toutes les erreurs. Il n'y a pas de valeur de retour, tout le travail doit " "être fait par le *handler* transmis." -#: ../Doc/library/xml.sax.rst:53 +#: ../Doc/library/xml.sax.rst:61 msgid "" "Similar to :func:`parse`, but parses from a buffer *string* received as a " "parameter. *string* must be a :class:`str` instance or a :term:`bytes-like " @@ -90,11 +108,11 @@ msgstr "" "*string* reçu en tant que paramètre. *string* doit être une instance :class:" "`str` ou un objet :term:`bytes-like object`." -#: ../Doc/library/xml.sax.rst:57 +#: ../Doc/library/xml.sax.rst:65 msgid "Added support of :class:`str` instances." msgstr "Ajout du support des instances :class:`str`." -#: ../Doc/library/xml.sax.rst:60 +#: ../Doc/library/xml.sax.rst:68 msgid "" "A typical SAX application uses three kinds of objects: readers, handlers and " "input sources. \"Reader\" in this context is another term for parser, i.e. " @@ -120,7 +138,7 @@ msgstr "" "*handler* sont appelées en fonction d'événements structurels et syntaxiques " "à partir des données d'entrée." -#: ../Doc/library/xml.sax.rst:71 +#: ../Doc/library/xml.sax.rst:79 msgid "" "For these objects, only the interfaces are relevant; they are normally not " "instantiated by the application itself. Since Python does not have an " @@ -149,7 +167,7 @@ msgstr "" "également disponibles à partir de :mod:`xml.sax`. Ces interfaces sont " "décrites ci-dessous." -#: ../Doc/library/xml.sax.rst:84 +#: ../Doc/library/xml.sax.rst:92 msgid "" "In addition to these classes, :mod:`xml.sax` provides the following " "exception classes." @@ -157,7 +175,7 @@ msgstr "" "En plus de ces classes, :mod:`xml.sax` fournit les classes d'exceptions " "suivantes." -#: ../Doc/library/xml.sax.rst:90 +#: ../Doc/library/xml.sax.rst:98 msgid "" "Encapsulate an XML error or warning. This class can contain basic error or " "warning information from either the XML parser or the application: it can be " @@ -176,7 +194,7 @@ msgstr "" "nécessaire de lever l'exception --- il est également utile en tant que " "conteneur pour l'information." -#: ../Doc/library/xml.sax.rst:98 +#: ../Doc/library/xml.sax.rst:106 msgid "" "When instantiated, *msg* should be a human-readable description of the " "error. The optional *exception* parameter, if given, should be ``None`` or " @@ -188,11 +206,11 @@ msgstr "" "``None`` ou une exception qui a été interceptée par le code d'analyse et qui " "est transmise comme information." -#: ../Doc/library/xml.sax.rst:102 +#: ../Doc/library/xml.sax.rst:110 msgid "This is the base class for the other SAX exception classes." msgstr "Ceci est la classe de base pour les autres classes d'exception SAX." -#: ../Doc/library/xml.sax.rst:107 +#: ../Doc/library/xml.sax.rst:115 msgid "" "Subclass of :exc:`SAXException` raised on parse errors. Instances of this " "class are passed to the methods of the SAX :class:`~xml.sax.handler." @@ -206,7 +224,7 @@ msgstr "" "l'erreur d'analyse. Cette classe supporte aussi l'interface SAX :class:`~xml." "sax.xmlreader.Locator` comme l'interface :class:`SAXException`." -#: ../Doc/library/xml.sax.rst:117 +#: ../Doc/library/xml.sax.rst:125 msgid "" "Subclass of :exc:`SAXException` raised when a SAX :class:`~xml.sax.xmlreader." "XMLReader` is confronted with an unrecognized feature or property. SAX " @@ -217,7 +235,7 @@ msgstr "" "non reconnue. Les applications et les extensions SAX peuvent utiliser cette " "classe à des fins similaires." -#: ../Doc/library/xml.sax.rst:125 +#: ../Doc/library/xml.sax.rst:133 msgid "" "Subclass of :exc:`SAXException` raised when a SAX :class:`~xml.sax.xmlreader." "XMLReader` is asked to enable a feature that is not supported, or to set a " @@ -230,11 +248,11 @@ msgstr "" "l'implémentation ne prend pas en charge. Les applications et les extensions " "SAX peuvent utiliser cette classe à des fins similaires." -#: ../Doc/library/xml.sax.rst:137 +#: ../Doc/library/xml.sax.rst:145 msgid "`SAX: The Simple API for XML `_" msgstr "`SAX: L'API simple pour XML `_" -#: ../Doc/library/xml.sax.rst:135 +#: ../Doc/library/xml.sax.rst:143 msgid "" "This site is the focal point for the definition of the SAX API. It provides " "a Java implementation and online documentation. Links to implementations " @@ -244,45 +262,45 @@ msgstr "" "implémentation Java et une documentation en ligne. Des liens pour " "l'implémentation et des informations historiques sont également disponibles." -#: ../Doc/library/xml.sax.rst:140 +#: ../Doc/library/xml.sax.rst:148 msgid "Module :mod:`xml.sax.handler`" msgstr "Module :mod:`xml.sax.handler`" -#: ../Doc/library/xml.sax.rst:140 +#: ../Doc/library/xml.sax.rst:148 msgid "Definitions of the interfaces for application-provided objects." msgstr "Définitions des interfaces pour les objets fournis par l'application." -#: ../Doc/library/xml.sax.rst:143 +#: ../Doc/library/xml.sax.rst:151 msgid "Module :mod:`xml.sax.saxutils`" msgstr "Module :mod:`xml.sax.saxutils`" -#: ../Doc/library/xml.sax.rst:143 +#: ../Doc/library/xml.sax.rst:151 msgid "Convenience functions for use in SAX applications." msgstr "Fonctions pratiques pour une utilisation dans les applications SAX." -#: ../Doc/library/xml.sax.rst:145 +#: ../Doc/library/xml.sax.rst:153 msgid "Module :mod:`xml.sax.xmlreader`" msgstr "Module :mod:`xml.sax.xmlreader`" -#: ../Doc/library/xml.sax.rst:146 +#: ../Doc/library/xml.sax.rst:154 msgid "Definitions of the interfaces for parser-provided objects." msgstr "Définitions des interfaces pour les objets fournis par l'analyseur." -#: ../Doc/library/xml.sax.rst:152 +#: ../Doc/library/xml.sax.rst:160 msgid "SAXException Objects" msgstr "Les objets SAXException" -#: ../Doc/library/xml.sax.rst:154 +#: ../Doc/library/xml.sax.rst:162 msgid "" "The :class:`SAXException` exception class supports the following methods:" msgstr "" -"La classe d'exception :class:`SAXException` supporte les méthodes suivantes:" +"La classe d'exception :class:`SAXException` supporte les méthodes suivantes :" -#: ../Doc/library/xml.sax.rst:159 +#: ../Doc/library/xml.sax.rst:167 msgid "Return a human-readable message describing the error condition." msgstr "" "Renvoyer un message lisible par l'homme décrivant la condition d'erreur." -#: ../Doc/library/xml.sax.rst:164 +#: ../Doc/library/xml.sax.rst:172 msgid "Return an encapsulated exception object, or ``None``." msgstr "Renvoie un objet d'exception encapsulé, ou``None``." diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po index 8ce19b6ca..95e93ccc0 100644 --- a/library/xml.sax.utils.po +++ b/library/xml.sax.utils.po @@ -5,22 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-18 10:21+0200\n" +"PO-Revision-Date: 2018-11-30 14:07+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" #: ../Doc/library/xml.sax.utils.rst:2 msgid ":mod:`xml.sax.saxutils` --- SAX Utilities" -msgstr "" +msgstr ":mod:`xml.sax.saxutils` — Utilitaires SAX" #: ../Doc/library/xml.sax.utils.rst:10 msgid "**Source code:** :source:`Lib/xml/sax/saxutils.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/xml/sax/saxutils.py`" #: ../Doc/library/xml.sax.utils.rst:14 msgid "" @@ -28,10 +29,15 @@ msgid "" "functions that are commonly useful when creating SAX applications, either in " "direct use, or as base classes." msgstr "" +"Le module :mod:`xml.sax.saxutils` contient des classes et fonctions qui " +"sont fréquemment utiles en créant des applications SAX, soit en utilisation " +"directe, soit en classes de base." #: ../Doc/library/xml.sax.utils.rst:21 msgid "Escape ``'&'``, ``'<'``, and ``'>'`` in a string of data." msgstr "" +"Échappe ``'&'``, ``'<'``, et ``'>'`` dans une chaine de caractères de " +"données." #: ../Doc/library/xml.sax.utils.rst:23 msgid "" @@ -40,10 +46,17 @@ msgid "" "will be replaced with its corresponding value. The characters ``'&'``, " "``'<'`` and ``'>'`` are always escaped, even if *entities* is provided." msgstr "" +"Vous pouvez échapper d'autres chaines de caractères de données en passant un " +"dictionnaire au paramètre optionnel *entities*. Les clés et valeurs doivent " +"toutes être des chaines de caractères ; chaque clé sera remplacée par sa " +"valeur correspondante. Les caractères ``'&'``, ``'<'`` et ``'>'`` sont " +"toujours échappés même si *entities* est donné en paramètre." #: ../Doc/library/xml.sax.utils.rst:31 msgid "Unescape ``'&'``, ``'<'``, and ``'>'`` in a string of data." msgstr "" +"*Parse* ``'&'``, ``'<'``, et ``'>'`` dans une chaine de caractères " +"de données." #: ../Doc/library/xml.sax.utils.rst:33 msgid "" @@ -53,6 +66,11 @@ msgid "" "``'<'``, and ``'>'`` are always unescaped, even if *entities* is " "provided." msgstr "" +"Vous pouvez dé-échapper d'autres chaines de caractères de données en passant " +"un dictionnaire au paramètre optionnel *entities*. Les clés et valeurs " +"doivent toutes être des chaines de caractères ; chaque clé sera remplacée " +"par sa valeur correspondante. Les caractères ``'&'``, ``'<'`` et ``'>'`` " +"sont toujours dé-échappés même si *entities* est donné en paramètre." #: ../Doc/library/xml.sax.utils.rst:41 msgid "" @@ -65,12 +83,23 @@ msgid "" "*data* will be wrapped in double-quotes. The resulting string can be used " "directly as an attribute value::" msgstr "" +"Similaire à :func:`escape`, mais prépare aussi *data* pour être utilisé " +"comme une valeur d'attribut. La valeur renvoyée est une version entre " +"guillemets de *data* avec tous les remplacements supplémentaires " +"nécessaires. :func:`quoteattr` va sélectionner un caractère guillemet basé " +"sur le contenu de *data*, en essayant d’éviter d'encoder tous les caractères " +"guillemets dans la chaine de caractères. Si les caractères guillemet simple " +"et guillemets sont déjà dans *data*, les caractères guillemets simples " +"seront encodés et *data* sera entouré de guillemets. La chaine de caractères " +"résultante pourra être utilisée en tant que valeur d'attribut ::" #: ../Doc/library/xml.sax.utils.rst:53 msgid "" "This function is useful when generating attribute values for HTML or any " "SGML using the reference concrete syntax." msgstr "" +"Cette fonction est utile quand vous générez des valeurs d'attributs pour du " +"HTML ou n'importe quel SGML en utilisant la syntaxe concrète de référence." #: ../Doc/library/xml.sax.utils.rst:59 msgid "" @@ -84,10 +113,20 @@ msgid "" "emitted as a pair of start/end tags, if set to ``True`` they are emitted as " "a single self-closed tag." msgstr "" +"Cette classe implémente l'interface :class:`~xml.sax.handler.ContentHandler` " +"en écrivant les événements SAX dans un document XML. En d'autres termes, " +"utiliser un :class:`XMLGenerator` en tant que gestionnaire de contenu " +"reproduira le document original qui était analysé. *out* devrait être un " +"objet de type fichier qui est par défaut *sys.stdout*. *encoding* est " +"l'encodage du flux de sortie qui est par défaut ``'iso-8859-1'``. " +"*short_empty_elements* contrôle le formatage des éléments qui ne contiennent " +"rien : si ``False`` (par défaut), ils sont émis comme une paire de balises " +"(début, fin). Si la valeur est ``True``, ils sont émis comme une balise " +"seule auto-fermante." #: ../Doc/library/xml.sax.utils.rst:69 msgid "The *short_empty_elements* parameter." -msgstr "" +msgstr "Le paramètre *short_empty_elements*." #: ../Doc/library/xml.sax.utils.rst:75 msgid "" @@ -97,6 +136,12 @@ msgid "" "unmodified, but subclasses can override specific methods to modify the event " "stream or the configuration requests as they pass through." msgstr "" +"Cette classe est faite pour être entre :class:`~xml.sax.xmlreader.XMLReader` " +"et le gestionnaire des événements de l'application client. Par défaut, elle " +"ne fait rien mais passe les requêtes au lecteur et les événements au " +"gestionnaire sans les modifier, mais des sous-classes peuvent surcharger des " +"méthodes spécifiques pour modifier le flux d’événements ou la configuration " +"des requêtes à leur passage." #: ../Doc/library/xml.sax.utils.rst:85 msgid "" @@ -107,3 +152,9 @@ msgid "" "function to implement the polymorphic *source* argument to their :meth:" "`parse` method." msgstr "" +"Cette fonction prend en entrée une source et une URL de base optionnelle et " +"retourne un objet complétement résolue :class:`~xml.sax.xmlreader." +"InputSource` prêt pour être lu. La source d'entrée peut être donnée comme " +"une chaine de caractère, un objet type fichier, ou un objet :class:`~xml.sax." +"xmlreader.InputSource` ; Les analyseurs utiliseront cette fonction pour " +"gérer le polymorphisme de l'argument *source* à leur méthode :meth:`parse`." diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po index 191d13f4d..aeb338da2 100644 --- a/library/xmlrpc.client.po +++ b/library/xmlrpc.client.po @@ -145,7 +145,7 @@ msgstr "" #: ../Doc/library/xmlrpc.client.rst:99 msgid ":class:`str`" -msgstr "" +msgstr ":class:`str`" #: ../Doc/library/xmlrpc.client.rst:101 msgid "``array``" diff --git a/library/xmlrpc.po b/library/xmlrpc.po index d761eadf0..3591de6e7 100644 --- a/library/xmlrpc.po +++ b/library/xmlrpc.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/xmlrpc.rst:2 msgid ":mod:`xmlrpc` --- XMLRPC server and client modules" -msgstr ":mod:`xmlrpc` --- Modules Serveur et Client XMLRPC" +msgstr ":mod:`xmlrpc` — Modules Serveur et Client XMLRPC" #: ../Doc/library/xmlrpc.rst:4 msgid "" diff --git a/library/zipapp.po b/library/zipapp.po index 23013c6a3..30a9dae21 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-08-06 09:57+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.3\n" #: ../Doc/library/zipapp.rst:2 msgid ":mod:`zipapp` --- Manage executable Python zip archives" -msgstr "" +msgstr ":mod:`zipapp` — Gestion des archives zip exécutables Python" #: ../Doc/library/zipapp.rst:9 msgid "**Source code:** :source:`Lib/zipapp.py`" @@ -29,10 +30,15 @@ msgid "" "`. The module provides both a :ref:`zipapp-" "command-line-interface` and a :ref:`zipapp-python-api`." msgstr "" +"Ce module fournit des outils pour gérer la création de fichiers zip " +"contenant du code Python, qui peuvent être :ref:`exécutés directement par " +"l'interpréteur Python `. Le module fournit à la " +"fois une interface de ligne de commande :ref:`zipapp-command-line-interface` " +"et une interface :ref:`zipapp-python-api`." #: ../Doc/library/zipapp.rst:23 msgid "Basic Example" -msgstr "" +msgstr "Exemple de base" #: ../Doc/library/zipapp.rst:25 msgid "" @@ -41,15 +47,22 @@ msgid "" "code. When run, the archive will execute the ``main`` function from the " "module ``myapp`` in the archive." msgstr "" +"L'exemple suivant montre comment l'interface de ligne de commande :ref:" +"`zipapp-command-line-interface` peut être utilisée pour créer une archive " +"exécutable depuis un répertoire contenant du code Python. Lors de " +"l'exécution, l'archive exécutera la fonction ``main`` du module ``myapp`` " +"dans l'archive." #: ../Doc/library/zipapp.rst:40 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/zipapp.rst:42 msgid "" "When called as a program from the command line, the following form is used:" msgstr "" +"Lorsqu'il est appelé en tant que programme à partir de la ligne de commande, " +"la syntaxe suivante est utilisée :" #: ../Doc/library/zipapp.rst:48 msgid "" @@ -58,10 +71,14 @@ msgid "" "copied to the target archive (or the contents of its shebang line will be " "displayed if the --info option is specified)." msgstr "" +"Si *source* est un répertoire, une archive est créée à partir du contenu de " +"*source*. Si *source* est un fichier, ce doit être une archive et il est " +"copié dans l'archive cible (ou le contenu de sa ligne `shebang` est affiché " +"si l'option ``--info`` est indiquée)." #: ../Doc/library/zipapp.rst:53 msgid "The following options are understood:" -msgstr "" +msgstr "Les options suivantes sont disponibles :" #: ../Doc/library/zipapp.rst:59 msgid "" @@ -70,12 +87,20 @@ msgid "" "extension ``.pyz`` added. If an explicit filename is given, it is used as " "is (so a ``.pyz`` extension should be included if required)." msgstr "" +"Écrit la sortie dans un fichier nommé *output*. Si cette option n'est pas " +"spécifiée, le nom du fichier de sortie sera le même que celui de l'entrée " +"*source*, avec l'extension ``.pyz``. Si un nom de fichier explicite est " +"donné, il est utilisé tel quel (une extension ``.pyz`` doit donc être " +"incluse si nécessaire)." #: ../Doc/library/zipapp.rst:64 msgid "" "An output filename must be specified if the *source* is an archive (and in " "that case, *output* must not be the same as *source*)." msgstr "" +"Un nom de fichier de sortie doit être spécifié si la *source* est une " +"archive (et, dans ce cas, la *sortie* ne doit pas être la même que la " +"*source*)." #: ../Doc/library/zipapp.rst:69 msgid "" @@ -83,6 +108,10 @@ msgid "" "run. Also, on POSIX, make the archive executable. The default is to write " "no ``#!`` line, and not make the file executable." msgstr "" +"Ajoute une ligne ``#!`` à l'archive en spécifiant *interpreter* comme " +"commande à exécuter. Aussi, sur un système POSIX, cela rend l'archive " +"exécutable. Le comportement par défaut est de ne pas écrire la ligne ``#!`` " +"et de ne pas rendre le fichier exécutable." #: ../Doc/library/zipapp.rst:75 msgid "" @@ -91,20 +120,28 @@ msgid "" "a package/module in the archive, and \"fn\" is a callable in the given " "module. The ``__main__.py`` file will execute that callable." msgstr "" +"Écrit un fichier ``__main__.py`` dans l'archive qui exécute *mainfn*. " +"L'argument *mainfn* est de la forme « *pkg.mod:fn* », où « *pkg.mod* » est " +"un paquet/module dans l'archive, et « *fn* » est un appelable dans le module " +"donné. Le fichier ``__main__.py`` réalise cet appel." #: ../Doc/library/zipapp.rst:80 msgid ":option:`--main` cannot be specified when copying an archive." msgstr "" +":option:`--main` ne peut pas être spécifié lors de la copie d'une archive." #: ../Doc/library/zipapp.rst:84 msgid "" "Compress files with the deflate method, reducing the size of the output " "file. By default, files are stored uncompressed in the archive." msgstr "" +"Compresse les fichiers avec la méthode *deflate*, réduisant ainsi la taille " +"du fichier de sortie. Par défaut, les fichiers sont stockés non compressés " +"dans l'archive." #: ../Doc/library/zipapp.rst:87 msgid ":option:`--compress` has no effect when copying an archive." -msgstr "" +msgstr ":option:`--compress` n'a aucun effet lors de la copie d'une archive." #: ../Doc/library/zipapp.rst:93 msgid "" @@ -112,10 +149,13 @@ msgid "" "In this case, any other options are ignored and SOURCE must be an archive, " "not a directory." msgstr "" +"Affiche l'interpréteur intégré dans l'archive, à des fins de diagnostic. " +"Dans ce cas, toutes les autres options sont ignorées et SOURCE doit être une " +"archive et non un répertoire." #: ../Doc/library/zipapp.rst:99 msgid "Print a short usage message and exit." -msgstr "" +msgstr "Affiche un court message d'aide et quitte." #: ../Doc/library/zipapp.rst:105 msgid "Python API" @@ -123,13 +163,15 @@ msgstr "API Python" #: ../Doc/library/zipapp.rst:107 msgid "The module defines two convenience functions:" -msgstr "" +msgstr "Ce module définit deux fonctions utilitaires :" #: ../Doc/library/zipapp.rst:112 msgid "" "Create an application archive from *source*. The source can be any of the " "following:" msgstr "" +"Crée une archive d'application à partir de *source*. La source peut être de " +"natures suivantes :" #: ../Doc/library/zipapp.rst:115 msgid "" @@ -137,6 +179,9 @@ msgid "" "directory, in which case a new application archive will be created from the " "content of that directory." msgstr "" +"Le nom d'un répertoire, ou un :term:`path-like object` se référant à un " +"répertoire ; dans ce cas, une nouvelle archive d'application sera créée à " +"partir du contenu de ce répertoire." #: ../Doc/library/zipapp.rst:118 msgid "" @@ -145,6 +190,11 @@ msgid "" "target (modifying it to reflect the value given for the *interpreter* " "argument). The file name should include the ``.pyz`` extension, if required." msgstr "" +"Le nom d'un fichier d'archive d'application existant, ou un :term:`path-like " +"object` se référant à un tel fichier ; dans ce cas, le fichier est copié sur " +"la cible (en le modifiant pour refléter la valeur donnée à l'argument " +"*interpreter*). Le nom du fichier doit inclure l'extension ``.pyz``, si " +"nécessaire." #: ../Doc/library/zipapp.rst:122 msgid "" @@ -152,23 +202,30 @@ msgid "" "should be an application archive, and the file object is assumed to be " "positioned at the start of the archive." msgstr "" +"Un objet fichier ouvert pour la lecture en mode binaire. Le contenu du " +"fichier doit être une archive d'application et Python suppose que l'objet " +"fichier est positionné au début de l'archive." #: ../Doc/library/zipapp.rst:126 msgid "" "The *target* argument determines where the resulting archive will be written:" -msgstr "" +msgstr "L'argument *target* détermine où l'archive résultante sera écrite :" #: ../Doc/library/zipapp.rst:129 msgid "" "If it is the name of a file, or a :term:`path-like object`, the archive will " "be written to that file." msgstr "" +"S'il s'agit d'un nom de fichier, ou d'un :term:`path-like object`, l'archive " +"sera écrite dans ce fichier." #: ../Doc/library/zipapp.rst:131 msgid "" "If it is an open file object, the archive will be written to that file " "object, which must be open for writing in bytes mode." msgstr "" +"S'il s'agit d'un objet fichier ouvert, l'archive sera écrite dans cet objet " +"fichier, qui doit être ouvert pour l'écriture en mode octets." #: ../Doc/library/zipapp.rst:133 msgid "" @@ -176,6 +233,9 @@ msgid "" "the target will be a file with the same name as the source, with a ``.pyz`` " "extension added." msgstr "" +"Si la cible est omise (ou ``None``), la source doit être un répertoire et la " +"cible sera un fichier portant le même nom que la source, avec une extension " +"``.pyz`` ajoutée." #: ../Doc/library/zipapp.rst:137 msgid "" @@ -187,6 +247,13 @@ msgid "" "is specified, and the target is a filename, the executable bit of the target " "file will be set." msgstr "" +"L'argument *interpreter* spécifie le nom de l'interpréteur Python avec " +"lequel l'archive sera exécutée. Il est écrit dans une ligne *shebang* au " +"début de l'archive. Sur un système POSIX, cela est interprété par le " +"système d'exploitation et, sur Windows, il sera géré par le lanceur Python. " +"L'omission de l'*interpreter* n'entraîne pas l'écriture d'une ligne " +"*shebang*. Si un interpréteur est spécifié et que la cible est un nom de " +"fichier, le bit exécutable du fichier cible sera mis à 1." #: ../Doc/library/zipapp.rst:145 msgid "" @@ -199,6 +266,14 @@ msgid "" "a directory and does not contain a ``__main__.py`` file, as otherwise the " "resulting archive would not be executable." msgstr "" +"L'argument *main* spécifie le nom d'un appelable, utilisé comme programme " +"principal pour l'archive. Il ne peut être spécifié que si la source est un " +"répertoire et si la source ne contient pas déjà un fichier ``__main__.py``. " +"L'argument *main* doit prendre la forme ``pkg.module:callable`` et l'archive " +"sera exécutée en important ``pkg.module`` et en exécutant l'appelable donné " +"sans argument. Omettre *main* est une erreur si la source est un répertoire " +"et ne contient pas un fichier ``__main__.py`` car, dans ce cas, l'archive " +"résultante ne serait pas exécutable." #: ../Doc/library/zipapp.rst:155 msgid "" @@ -206,6 +281,10 @@ msgid "" "a Path object representing the path to the file being added (relative to the " "source directory). It should return ``True`` if the file is to be added." msgstr "" +"L'argument optionnel *filter* spécifie une fonction de rappel à laquelle on " +"passe un objet *Path* représentant le chemin du fichier à ajouter (par " +"rapport au répertoire source). Elle doit renvoyer ``True`` si le fichier " +"doit effectivement être ajouté." #: ../Doc/library/zipapp.rst:160 msgid "" @@ -214,12 +293,20 @@ msgid "" "method; otherwise, files are stored uncompressed. This argument has no " "effect when copying an existing archive." msgstr "" +"L'argument optionnel *compressed* détermine si les fichiers doivent être " +"compressés. S'il vaut ``True``, les fichiers de l'archive sont compressés " +"avec l'algorithme *deflate* ; sinon, les fichiers sont stockés non " +"compressés. Cet argument n'a aucun effet lors de la copie d'une archive " +"existante." #: ../Doc/library/zipapp.rst:165 msgid "" "If a file object is specified for *source* or *target*, it is the caller's " "responsibility to close it after calling create_archive." msgstr "" +"Si un objet fichier est spécifié pour *source* ou *target*, il est de la " +"responsabilité de l'appelant de le fermer après avoir appelé " +"``create_archive``." #: ../Doc/library/zipapp.rst:168 msgid "" @@ -228,10 +315,15 @@ msgid "" "directory, if the target is a file object it will be passed to the ``zipfile." "ZipFile`` class, and must supply the methods needed by that class." msgstr "" +"Lors de la copie d'une archive existante, les objets fichier fournis n'ont " +"besoin que des méthodes ``read`` et ``readline`` ou ``write``. Lors de la " +"création d'une archive à partir d'un répertoire, si la cible est un objet " +"fichier, elle sera passée à la classe ``zipfile.ZipFile`` et devra fournir " +"les méthodes nécessaires à cette classe." #: ../Doc/library/zipapp.rst:174 msgid "Added the *filter* and *compressed* arguments." -msgstr "" +msgstr "Ajout des arguments *filter* et *compressed*." #: ../Doc/library/zipapp.rst:179 msgid "" @@ -240,6 +332,10 @@ msgid "" "argument can be a filename or a file-like object open for reading in bytes " "mode. It is assumed to be at the start of the archive." msgstr "" +"Renvoie l'interpréteur spécifié dans la ligne ``#!`` au début de l'archive. " +"S'il n'y a pas de ligne ``#!``, renvoie :const:`None`. L'argument *archive* " +"peut être un nom de fichier ou un objet de type fichier ouvert à la lecture " +"en mode binaire. Python suppose qu'il est au début de l'archive." #: ../Doc/library/zipapp.rst:188 msgid "Examples" @@ -247,23 +343,29 @@ msgstr "Exemples" #: ../Doc/library/zipapp.rst:190 msgid "Pack up a directory into an archive, and run it." -msgstr "" +msgstr "Regroupe le contenu d'un répertoire dans une archive, puis l'exécute." #: ../Doc/library/zipapp.rst:198 -msgid "The same can be done using the :func:`create_archive` functon::" +msgid "The same can be done using the :func:`create_archive` function::" msgstr "" +"La même chose peut être faite en utilisant la fonction :func:" +"`create_archive` ::" #: ../Doc/library/zipapp.rst:203 msgid "" "To make the application directly executable on POSIX, specify an interpreter " "to use." msgstr "" +"Pour rendre l'application directement exécutable sur un système POSIX, " +"spécifiez un interpréteur à utiliser." #: ../Doc/library/zipapp.rst:212 msgid "" "To replace the shebang line on an existing archive, create a modified " "archive using the :func:`create_archive` function::" msgstr "" +"Pour remplacer la ligne *shebang* sur une archive existante, créez une " +"archive modifiée en utilisant la fonction :func:`create_archive` ::" #: ../Doc/library/zipapp.rst:218 msgid "" @@ -274,10 +376,17 @@ msgid "" "but production code should do so. Also, this method will only work if the " "archive fits in memory::" msgstr "" +"Pour mettre à jour le fichier sans créer de copie locale, effectuez le " +"remplacement en mémoire à l'aide d'un objet :class:`BytesIO`, puis écrasez " +"la source par la suite. Notez qu'il y a un risque lors de l'écrasement d'un " +"fichier local qu'une erreur entraîne la perte du fichier original. Ce code " +"ne protège pas contre de telles erreurs, assurez-vous de prendre les mesures " +"nécessaires en production. De plus, cette méthode ne fonctionnera que si " +"l'archive tient en mémoire ::" #: ../Doc/library/zipapp.rst:236 msgid "Specifying the Interpreter" -msgstr "" +msgstr "Spécification de l'interprète" #: ../Doc/library/zipapp.rst:238 msgid "" @@ -286,6 +395,11 @@ msgid "" "Python launcher for Windows supports most common forms of POSIX ``#!`` line, " "but there are other issues to consider:" msgstr "" +"Notez que si vous spécifiez un interpréteur et que vous distribuez ensuite " +"votre archive d'application, vous devez vous assurer que l'interpréteur " +"utilisé est portable. Le lanceur Python pour Windows gère la plupart des " +"formes courantes de la ligne POSIX ``#!``, mais il y a d'autres problèmes à " +"considérer :" #: ../Doc/library/zipapp.rst:243 msgid "" @@ -294,6 +408,10 @@ msgid "" "may have either Python 2 or Python 3 as their default, and write your code " "to work under both versions." msgstr "" +"Si vous utilisez ``/usr/bin/env python`` (ou d'autres formes de la commande " +"*python*, comme ``/usr/bin/python``), vous devez considérer que vos " +"utilisateurs peuvent avoir Python 2 ou Python 3 par défaut, et écrire votre " +"code pour fonctionner dans les deux versions." #: ../Doc/library/zipapp.rst:247 msgid "" @@ -301,6 +419,10 @@ msgid "" "application will not work for users who do not have that version. (This may " "be what you want if you have not made your code Python 2 compatible)." msgstr "" +"Si vous utilisez une version explicite, par exemple ``/usr/bin/env python3`` " +"votre application ne fonctionnera pas pour les utilisateurs qui n'ont pas " +"cette version. (C'est peut-être ce que vous voulez si vous n'avez pas rendu " +"votre code compatible Python 2)." #: ../Doc/library/zipapp.rst:250 msgid "" @@ -308,16 +430,22 @@ msgid "" "exact version like \"/usr/bin/env python3.4\" as you will need to change " "your shebang line for users of Python 3.5, for example." msgstr "" +"Il n'y a aucun moyen de dire « python X.Y ou supérieur » donc faites " +"attention si vous utilisez une version exacte comme ``/usr/bin/env " +"python3.4`` car vous devrez changer votre ligne *shebang* pour les " +"utilisateurs de Python 3.5, par exemple." #: ../Doc/library/zipapp.rst:254 msgid "" "Typically, you should use an \"/usr/bin/env python2\" or \"/usr/bin/env " "python3\", depending on whether your code is written for Python 2 or 3." msgstr "" +"Normalement, vous devriez utiliser un ``/usr/bin/env python2`` ou ``/usr/bin/" +"env python3``, selon que votre code soit écrit pour Python 2 ou 3." #: ../Doc/library/zipapp.rst:259 msgid "Creating Standalone Applications with zipapp" -msgstr "" +msgstr "Création d'applications autonomes avec *zipapp*" #: ../Doc/library/zipapp.rst:261 msgid "" @@ -327,10 +455,15 @@ msgid "" "this is to bundle all of the application's dependencies into the archive, " "along with the application code." msgstr "" +"En utilisant le module :mod:`zipapp`, il est possible de créer des " +"programmes Python qui peuvent être distribués à des utilisateurs finaux dont " +"le seul pré-requis est d'avoir la bonne version de Python installée sur leur " +"ordinateur. Pour y arriver, la clé est de regrouper toutes les dépendances " +"de l'application dans l'archive avec le code source de l'application." #: ../Doc/library/zipapp.rst:267 msgid "The steps to create a standalone archive are as follows:" -msgstr "" +msgstr "Les étapes pour créer une archive autonome sont les suivantes :" #: ../Doc/library/zipapp.rst:269 msgid "" @@ -338,12 +471,17 @@ msgid "" "directory containing a ``__main__.py`` file, and any supporting application " "code." msgstr "" +"Créez votre application dans un répertoire comme d'habitude, de manière à " +"avoir un répertoire ``myapp`` contenant un fichier ``__main__.py`` et tout " +"le code de l'application correspondante." #: ../Doc/library/zipapp.rst:273 msgid "" "Install all of your application's dependencies into the ``myapp`` directory, " "using pip:" msgstr "" +"Installez toutes les dépendances de votre application dans le répertoire " +"``myapp`` en utilisant *pip* :" #: ../Doc/library/zipapp.rst:280 msgid "" @@ -351,6 +489,9 @@ msgid "" "file - if not, you can just list the dependencies manually on the pip " "command line)." msgstr "" +"(ceci suppose que vous ayez vos dépendances de projet dans un fichier " +"``requirements.txt`` — sinon vous pouvez simplement lister les dépendances " +"manuellement sur la ligne de commande *pip*)." #: ../Doc/library/zipapp.rst:284 msgid "" @@ -359,10 +500,14 @@ msgid "" "as you won't be making any further use of pip they aren't required - " "although it won't do any harm if you leave them." msgstr "" +"Si nécessaire, supprimez les répertoires ``.dist-info`` créés par *pip* dans " +"le répertoire ``myapp``. Ceux-ci contiennent des métadonnées pour *pip* afin " +"de gérer les paquets et, comme vous n'utiliserez plus *pip*, ils ne sont " +"pas nécessaires (c'est sans conséquence si vous les laissez)." #: ../Doc/library/zipapp.rst:289 msgid "Package the application using:" -msgstr "" +msgstr "Regroupez le tout à l'aide de :" #: ../Doc/library/zipapp.rst:295 msgid "" @@ -370,6 +515,10 @@ msgid "" "with the appropriate interpreter available. See :ref:`zipapp-specifying-the-" "interpreter` for details. It can be shipped to users as a single file." msgstr "" +"Cela produira un exécutable autonome qui peut être exécuté sur n'importe " +"quelle machine avec l'interpréteur approprié disponible. Voir :ref:`zipapp-" +"specifying-the-interpreter` pour plus de détails. Il peut être envoyé aux " +"utilisateurs sous la forme d'un seul fichier." #: ../Doc/library/zipapp.rst:299 msgid "" @@ -379,10 +528,15 @@ msgid "" "fact that the Python interpreter registers the ``.pyz`` and ``.pyzw`` file " "extensions when installed." msgstr "" +"Sous Unix, le fichier ``myapp.pyz`` est exécutable tel quel. Vous pouvez " +"renommer le fichier pour supprimer l'extension ``.pyz`` si vous préférez un " +"nom de commande « simple ». Sous Windows, le fichier ``myapp.pyz[w]`` est " +"exécutable en vertu du fait que l'interpréteur Python est associé aux " +"extensions de fichier ``.pyz`` et ``.pyzw`` une fois installé." #: ../Doc/library/zipapp.rst:307 msgid "Making a Windows executable" -msgstr "" +msgstr "Création d'un exécutable Windows" #: ../Doc/library/zipapp.rst:309 msgid "" @@ -392,6 +546,11 @@ msgid "" "run(['myapp'])`` won't find your application - you need to explicitly " "specify the extension)." msgstr "" +"Sous Windows, l'association de Python à l'extension ``.pyz`` est facultative " +"et, de plus, il y a certains mécanismes qui ne reconnaissent pas les " +"extensions enregistrées de manière « transparente » (l'exemple le plus " +"simple est que ``subprocess.run(['myapp'])`` ne trouvera pas votre " +"application — vous devez explicitement spécifier l'extension)." #: ../Doc/library/zipapp.rst:315 msgid "" @@ -403,16 +562,25 @@ msgid "" "onto the end of it, you end up with a single-file executable that runs your " "application." msgstr "" +"Sous Windows, il est donc souvent préférable de créer un exécutable à partir " +"du *zipapp*. C'est relativement facile bien que cela nécessite un " +"compilateur C. L'astuce repose sur le fait que les fichiers zip peuvent " +"avoir des données arbitraires au début et les fichiers *exe* de Windows " +"peuvent avoir des données arbitraires à la fin. Ainsi, en créant un lanceur " +"approprié et en rajoutant le fichier ``.pyz`` à sa fin, vous obtenez un " +"fichier unique qui exécute votre application." #: ../Doc/library/zipapp.rst:322 msgid "A suitable launcher can be as simple as the following::" -msgstr "" +msgstr "Un lanceur approprié peut être aussi simple que ce qui suit ::" #: ../Doc/library/zipapp.rst:347 msgid "" "If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI " "executable, and without it, a console executable." msgstr "" +"Si vous définissez le symbole du préprocesseur ``WINDOWS`` cela va générer " +"un exécutable IUG, et sans lui, un exécutable console." #: ../Doc/library/zipapp.rst:350 msgid "" @@ -420,6 +588,9 @@ msgid "" "line tools, or you can take advantage of the fact that distutils knows how " "to compile Python source::" msgstr "" +"Pour compiler l'exécutable, vous pouvez soit simplement utiliser les outils " +"standards en ligne de commande *MSVC*, soit profiter du fait que *distutils* " +"sait comment compiler les sources Python ::" #: ../Doc/library/zipapp.rst:377 msgid "" @@ -427,6 +598,10 @@ msgid "" "with any version of Python 3.x. All it needs is for Python (``python3." "dll``) to be on the user's ``PATH``." msgstr "" +"Le lanceur résultant utilise le « Limited ABI » donc il fonctionnera sans " +"changement avec n'importe quelle version de Python 3.x. Tout ce dont il a " +"besoin est que Python (``python3.dll``) soit sur le ``PATH`` de " +"l'utilisateur." #: ../Doc/library/zipapp.rst:381 msgid "" @@ -435,10 +610,14 @@ msgid "" "distribution. This will run on any PC with the appropriate architecture (32 " "bit or 64 bit)." msgstr "" +"Pour une distribution entièrement autonome vous pouvez distribuer le lanceur " +"avec votre application en fin de fichier, empaqueté avec la distribution " +"*embedded* Python. Ceci fonctionnera sur n'importe quel ordinateur avec " +"l'architecture appropriée (32 bits ou 64 bits)." #: ../Doc/library/zipapp.rst:387 msgid "Caveats" -msgstr "" +msgstr "Mises en garde" #: ../Doc/library/zipapp.rst:389 msgid "" @@ -446,6 +625,10 @@ msgid "" "a single file. In most, if not all, cases they can be addressed without " "needing major changes to your application." msgstr "" +"Il y a certaines limites à l'empaquetage de votre application dans un seul " +"fichier. Dans la plupart des cas, si ce n'est tous, elles peuvent être " +"traitées sans qu'il soit nécessaire d'apporter de modifications majeures à " +"votre application." #: ../Doc/library/zipapp.rst:393 msgid "" @@ -460,6 +643,18 @@ msgid "" "(and potentially pick the correct version to add to ``sys.path`` at runtime, " "based on the user's machine)." msgstr "" +"Si votre application dépend d'un paquet qui inclut une extension C, ce " +"paquet ne peut pas être exécuté à partir d'un fichier zip (c'est une " +"limitation du système d'exploitation, car le code exécutable doit être " +"présent dans le système de fichiers pour que le lanceur de l'OS puisse le " +"charger). Dans ce cas, vous pouvez exclure cette dépendance du fichier zip " +"et, soit demander à vos utilisateurs de l'installer, soit la fournir avec " +"votre fichier zip et ajouter du code à votre fichier ``__main__.py`` pour " +"inclure le répertoire contenant le module décompressé dans ``sys.path``. " +"Dans ce cas, vous devrez vous assurer d'envoyer les binaires appropriés pour " +"votre ou vos architecture(s) cible(s) (et éventuellement choisir la bonne " +"version à ajouter à ``sys.path`` au moment de l'exécution, basée sur la " +"machine de l'utilisateur)." #: ../Doc/library/zipapp.rst:403 msgid "" @@ -468,6 +663,10 @@ msgid "" "the default behaviour of the installer) or you should bundle your " "application with the embedded distribution." msgstr "" +"Si vous livrez un exécutable Windows comme décrit ci-dessus, vous devez vous " +"assurer que vos utilisateurs ont ``python3.dll`` sur leur PATH (ce qui n'est " +"pas le comportement par défaut de l'installateur) ou vous devez inclure la " +"distribution intégrée dans votre application." #: ../Doc/library/zipapp.rst:408 msgid "" @@ -479,10 +678,17 @@ msgid "" "`multiprocessing.set_executable` to let the module know where to find the " "standard Python interpreter." msgstr "" +"Le lanceur suggéré ci-dessus utilise l'API d'intégration Python. Cela " +"signifie que dans votre application ``sys.executable`` sera votre " +"application et *pas* un interpréteur Python classique. Votre code et ses " +"dépendances doivent être préparés à cette possibilité. Par exemple, si " +"votre application utilise le module :mod:`multiprocessing`, elle devra " +"appeler :func:`multiprocessing.set_executable` pour que le module sache où " +"trouver l'interpréteur Python standard." #: ../Doc/library/zipapp.rst:418 msgid "The Python Zip Application Archive Format" -msgstr "" +msgstr "Le format d'archive d'application Zip Python" #: ../Doc/library/zipapp.rst:420 msgid "" @@ -494,6 +700,13 @@ msgid "" "be placed on :data:`sys.path` and thus further modules can be imported from " "the zip file." msgstr "" +"Python est capable d'exécuter des fichiers zip qui contiennent un fichier " +"``__main__.py`` depuis la version 2.6. Pour être exécutée par Python, une " +"archive d'application doit simplement être un fichier zip standard contenant " +"un fichier ``__main__.py`` qui sera exécuté comme point d'entrée de " +"l'application. Comme d'habitude pour tout script Python, le parent du " +"script (dans ce cas le fichier zip) sera placé sur :data:`sys.path` et ainsi " +"d'autres modules pourront être importés depuis le fichier zip." #: ../Doc/library/zipapp.rst:427 msgid "" @@ -501,10 +714,14 @@ msgid "" "The zip application format uses this ability to prepend a standard POSIX " "\"shebang\" line to the file (``#!/path/to/interpreter``)." msgstr "" +"Le format de fichier zip permet d'ajouter des données arbitraires à un " +"fichier zip. Le format de l'application zip utilise cette possibilité pour " +"préfixer une ligne *shebang* POSIX standard dans le fichier (``#!/path/to/" +"interpreter``)." #: ../Doc/library/zipapp.rst:431 msgid "Formally, the Python zip application format is therefore:" -msgstr "" +msgstr "Formellement, le format d'application zip de Python est donc :" #: ../Doc/library/zipapp.rst:433 msgid "" @@ -515,6 +732,12 @@ msgid "" "encoded in UTF-8 on Windows, and in :func:`sys.getfilesystemencoding()` on " "POSIX." msgstr "" +"Une ligne *shebang* facultative, contenant les caractères ``b'#!`` suivis " +"d'un nom d’interpréteur, puis un caractère fin de ligne (``b'\\n'``). Le " +"nom de l'interpréteur peut être n'importe quoi acceptable pour le traitement " +"*shebang* de l'OS, ou le lanceur Python sous Windows. L'interpréteur doit " +"être encodé en UTF-8 sous Windows, et en :func:`sys.getfilesystemencoding()` " +"sur POSIX." #: ../Doc/library/zipapp.rst:438 msgid "" @@ -523,12 +746,20 @@ msgid "" "in the \"root\" of the zipfile - i.e., it cannot be in a subdirectory). The " "zipfile data can be compressed or uncompressed." msgstr "" +"Des données *zipfile* standards, telles que générées par le module :mod:" +"`zipfile`. Le contenu du fichier zip *doit* inclure un fichier appelé " +"``__main__.py`` (qui doit se trouver à la racine du fichier zip — c'est-à-" +"dire qu'il ne peut se trouver dans un sous-répertoire). Les données du " +"fichier zip peuvent être compressées ou non." #: ../Doc/library/zipapp.rst:443 msgid "" "If an application archive has a shebang line, it may have the executable bit " "set on POSIX systems, to allow it to be executed directly." msgstr "" +"Si une archive d'application a une ligne *shebang*, elle peut avoir le bit " +"exécutable activé sur les systèmes POSIX, pour lui permettre d'être exécutée " +"directement." #: ../Doc/library/zipapp.rst:446 msgid "" @@ -536,3 +767,7 @@ msgid "" "application archives - the module is a convenience, but archives in the " "above format created by any means are acceptable to Python." msgstr "" +"Vous pouvez créer des archives d'applications sans utiliser les outils de ce " +"module — le module existe pour faciliter les choses, mais les archives, " +"créées par n'importe quel moyen tout en respectant le format ci-dessus, sont " +"valides pour Python." diff --git a/library/zipfile.po b/library/zipfile.po index ce5f360bd..51ca08399 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-02-28 09:13+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" #: ../Doc/library/zipfile.rst:2 msgid ":mod:`zipfile` --- Work with ZIP archives" -msgstr "" +msgstr ":mod:`zipfile` — Travailler avec des archives ZIP" #: ../Doc/library/zipfile.rst:10 msgid "**Source code:** :source:`Lib/zipfile.py`" @@ -29,6 +30,11 @@ msgid "" "Any advanced use of this module will require an understanding of the format, " "as defined in `PKZIP Application Note`_." msgstr "" +"Le format de fichier ZIP est une archive et un standard de compression " +"couramment utilisés. Ce module fournit des outils pour créer, écrire, " +"ajouter des données à et lister un fichier ZIP. L'utilisation avancée de ce " +"module requiert une certaine compréhension du format, comme défini dans " +"`PKZIP Application Note`_." #: ../Doc/library/zipfile.rst:19 msgid "" @@ -38,6 +44,12 @@ msgid "" "archives, but it currently cannot create an encrypted file. Decryption is " "extremely slow as it is implemented in native Python rather than C." msgstr "" +"Ce module ne gère pas pour l'instant les fichiers ZIP multi-disque. Il gère " +"les fichiers ZIP qui utilisent les extensions ZIP64 (c'est-à-dire des " +"fichiers d'une taille supérieure à 4 Go). Il gère le chiffrement d'archives " +"ZIP chiffrées, mais il ne peut pas pour l'instant créer de fichier chiffré. " +"Le déchiffrement est extrêmement lent car il est implémenté uniquement en " +"Python plutôt qu'en C." #: ../Doc/library/zipfile.rst:26 msgid "The module defines the following items:" @@ -45,28 +57,34 @@ msgstr "Le module définit les éléments suivants :" #: ../Doc/library/zipfile.rst:30 msgid "The error raised for bad ZIP files." -msgstr "" +msgstr "Erreur levée en cas de fichier ZIP non valide." #: ../Doc/library/zipfile.rst:37 msgid "" "Alias of :exc:`BadZipFile`, for compatibility with older Python versions." msgstr "" +"Alias de :exc:`BadZipFile`, pour la compatibilité avec les versions de " +"Python précédentes." #: ../Doc/library/zipfile.rst:44 msgid "" "The error raised when a ZIP file would require ZIP64 functionality but that " "has not been enabled." msgstr "" +"Erreur levée quand un fichier ZIP nécessite la fonctionnalité ZIP64 mais " +"qu'elle n'a pas été activée." #: ../Doc/library/zipfile.rst:51 msgid "" "The class for reading and writing ZIP files. See section :ref:`zipfile-" "objects` for constructor details." msgstr "" +"Classe pour lire et écrire des fichiers ZIP. Voir la section :ref:`zipfile-" +"objects` pour les détails du constructeur." #: ../Doc/library/zipfile.rst:58 msgid "Class for creating ZIP archives containing Python libraries." -msgstr "" +msgstr "Classe pour créer des archives ZIP contenant des bibliothèques Python." #: ../Doc/library/zipfile.rst:63 msgid "" @@ -79,6 +97,14 @@ msgid "" "of the last modification to the file; the fields are described in section :" "ref:`zipinfo-objects`." msgstr "" +"Classe utilisée pour représenter les informations d'un membre d'une archive. " +"Les instances de cette classe sont retournées par les méthodes :meth:`." +"getinfo` et :meth:`.infolist` des objets :class:`ZipFile`. La plupart des " +"utilisateurs du module :mod:`zipfile` n'ont pas besoin de créer ces " +"instances mais d'utiliser celles créées par ce module. *filename* doit être " +"le nom complet du membre de l'archive et *date_time* doit être un *tuple* " +"contenant six champs qui décrit la date de dernière modification du " +"fichier ; les champs sont décrits dans la section :ref:`zipinfo-objects`." #: ../Doc/library/zipfile.rst:75 msgid "" @@ -86,32 +112,41 @@ msgid "" "number, otherwise returns ``False``. *filename* may be a file or file-like " "object too." msgstr "" +"Retourne ``True`` si *filename* est un fichier ZIP valide basé sur son " +"nombre magique, sinon retourne ``False``. *filename* peut aussi être un " +"fichier ou un objet fichier-compatible." #: ../Doc/library/zipfile.rst:78 msgid "Support for file and file-like objects." -msgstr "" +msgstr "Gestion des objets fichier et fichier-compatibles." #: ../Doc/library/zipfile.rst:84 msgid "The numeric constant for an uncompressed archive member." -msgstr "" +msgstr "Constante numérique pour un membre d'une archive décompressée." #: ../Doc/library/zipfile.rst:89 msgid "" "The numeric constant for the usual ZIP compression method. This requires " "the :mod:`zlib` module." msgstr "" +"Constante numérique pour la méthode habituelle de compression de ZIP. " +"Nécessite le module :mod:`zlib`." #: ../Doc/library/zipfile.rst:95 msgid "" "The numeric constant for the BZIP2 compression method. This requires the :" "mod:`bz2` module." msgstr "" +"Constante numérique pour la méthode de compressions BZIP2. Nécessite le " +"module :mod:`bz2`." #: ../Doc/library/zipfile.rst:102 msgid "" "The numeric constant for the LZMA compression method. This requires the :" "mod:`lzma` module." msgstr "" +"Constante numérique pour la méthode de compressions LZMA. Nécessite le " +"module :mod:`lzma`." #: ../Doc/library/zipfile.rst:109 msgid "" @@ -121,16 +156,23 @@ msgid "" "and may either refuse to process the ZIP file altogether, or fail to extract " "individual files." msgstr "" +"La spécification du format de fichier ZIP inclut la gestion de la " +"compression BZIP2 depuis 2001 et LZMA depuis 2006. Néanmoins, certains " +"outils (comme certaines versions de Python) ne gèrent pas ces méthodes de " +"compression et peuvent soit totalement refuser de traiter le fichier ZIP " +"soit ne pas extraire certains fichiers." #: ../Doc/library/zipfile.rst:120 msgid "`PKZIP Application Note`_" -msgstr "" +msgstr "`PKZIP Application Note`_" #: ../Doc/library/zipfile.rst:119 msgid "" "Documentation on the ZIP file format by Phil Katz, the creator of the format " "and algorithms used." msgstr "" +"Documentation sur le format de fichier ZIP par Phil Katz, créateur du format " +"et des algorithmes utilisés." #: ../Doc/library/zipfile.rst:123 msgid "`Info-ZIP Home Page `_" @@ -141,16 +183,21 @@ msgid "" "Information about the Info-ZIP project's ZIP archive programs and " "development libraries." msgstr "" +"Informations sur les programmes et les bibliothèques de développement " +"d'archivage ZIP du projet Info-ZIP." #: ../Doc/library/zipfile.rst:130 msgid "ZipFile Objects" -msgstr "" +msgstr "Objets ZipFile" #: ../Doc/library/zipfile.rst:136 msgid "" "Open a ZIP file, where *file* can be a path to a file (a string), a file-" "like object or a :term:`path-like object`." msgstr "" +"Ouvre un fichier ZIP, où *file* peut être un chemin vers un fichier (une " +"chaîne de caractères), un objet fichier-compatible ou un objet chemin-" +"compatible :term:`path-like object`." #: ../Doc/library/zipfile.rst:139 msgid "" @@ -165,6 +212,17 @@ msgid "" "``'a'`` and the file does not exist at all, it is created. If *mode* is " "``'r'`` or ``'a'``, the file should be seekable." msgstr "" +"Le paramètre *mode* doit être ``r`` pour lire un fichier existant, ``w`` " +"pour tronquer et écrire un nouveau fichier, ``a`` pour ajouter des données à " +"la fin d'un fichier existant ou ``x`` pour créer et écrire exclusivement un " +"nouveau fichier. Si *mode* est à ``x`` et *file* fait référence à un fichier " +"existant, une exception :exc:`FileExistsError` est levée. Si *mode* est à " +"``a`` et *file* fait référence à un fichier ZIP existant, alors des fichiers " +"supplémentaires y seront ajoutés. Si *file* ne fait pas référence à un " +"fichier ZIP, alors une nouvelle archive ZIP est ajoutée au fichier, afin de " +"prévoir le cas d'ajouter une archive ZIP à un autre fichier (comme par " +"exemple :file:`python.exe`). Si *mode* est à ``r`` ou ``a``, le fichier doit " +"être navigable." #: ../Doc/library/zipfile.rst:151 msgid "" @@ -176,6 +234,14 @@ msgid "" "mod:`zlib`, :mod:`bz2` or :mod:`lzma`) is not available, :exc:`RuntimeError` " "is raised. The default is :const:`ZIP_STORED`." msgstr "" +"Le paramètre *compression* est la méthode de compression ZIP à utiliser lors " +"de l'écriture de l'archive et doit être défini à :const:`ZIP_STORED`, :const:" +"`ZIP_DEFLATED`, :const:`ZIP_BZIP2` ou :const:`ZIP_LZMA` ; les valeurs non " +"reconnues lèveront une exception :exc:`NotImplementedError`. Si :const:" +"`ZIP_DEFLATED`, :const:`ZIP_BZIP2` ou :const:`ZIP_LZMA` est spécifié mais le " +"module correspondant (:mod:`zlib`, :mod:`bz2` ou :mod:`lzma`) n'est pas " +"disponible, une exception :exc:`RuntimeError` est levée. Est défini par " +"défaut à :const:`ZIP_STORED`." #: ../Doc/library/zipfile.rst:159 msgid "" @@ -184,6 +250,10 @@ msgid "" "``false`` :mod:`zipfile` will raise an exception when the ZIP file would " "require ZIP64 extensions." msgstr "" +"Si *allowZip64* est à ``True`` (par défaut), *zipfile* crée des fichiers ZIP " +"utilisant les extensions ZIP64 quand le fichier ZIP est plus grand que 4 Go. " +"S'il est à ``False``, :mod:`zipfile` lève une exception quand le fichier ZIP " +"nécessiterait les extensions ZIP64." #: ../Doc/library/zipfile.rst:164 msgid "" @@ -194,6 +264,13 @@ msgid "" "information). When using :const:`ZIP_BZIP2` integers ``1`` through ``9`` are " "accepted (see :class:`bz2 ` for more information)." msgstr "" +"Le paramètre *compresslevel* contrôle le niveau de compression à utiliser " +"lors de l'écriture des fichiers dans l'archive. Avec :const:`ZIP_STORED` ou :" +"const:`ZIP_LZMA`, cela est sans effet. Avec :const:`ZIP_DEFLATED` les " +"entiers de ``0`` à ``9`` sont acceptés (voir :class:`zlib ` pour plus d'informations). Avec :const:`ZIP_BZIP2` les entiers " +"de ``1``à ``9`` sont acceptés (voir :class:`bz2 ` pour plus " +"d'informations)." #: ../Doc/library/zipfile.rst:172 msgid "" @@ -201,51 +278,68 @@ msgid "" "`closed ` without adding any files to the archive, the appropriate " "ZIP structures for an empty archive will be written to the file." msgstr "" +"Si le fichier est créé avec le mode ``'w'``, ``'x'`` ou ``'a'`` et ensuite :" +"meth:`fermé ` sans ajouter de fichiers à l'archive, la structure " +"appropriée pour un fichier archive ZIP vide sera écrite dans le fichier." #: ../Doc/library/zipfile.rst:176 msgid "" "ZipFile is also a context manager and therefore supports the :keyword:`with` " -"statement. In the example, *myzip* is closed after the :keyword:`with` " +"statement. In the example, *myzip* is closed after the :keyword:`!with` " "statement's suite is finished---even if an exception occurs::" msgstr "" +"*ZipFile* est aussi un gestionnaire de contexte et gère ainsi la " +"déclaration :keyword:`with`. Dans l'exemple, *myzip* est fermé à la fin de " +"la déclaration :keyword:`!with` --- même si une exception est levée ::" #: ../Doc/library/zipfile.rst:183 msgid "Added the ability to use :class:`ZipFile` as a context manager." msgstr "" +"Ajout de la possibilité d'utiliser :class:`ZipFile` comme un gestionnaire de " +"contexte." #: ../Doc/library/zipfile.rst:186 msgid "Added support for :mod:`bzip2 ` and :mod:`lzma` compression." msgstr "" +"Ajout de la gestion de la compression :mod:`bzip2 ` et :mod:`lzma`." -#: ../Doc/library/zipfile.rst:189 ../Doc/library/zipfile.rst:469 +#: ../Doc/library/zipfile.rst:189 ../Doc/library/zipfile.rst:464 msgid "ZIP64 extensions are enabled by default." -msgstr "" +msgstr "Les extensions ZIP64 sont activées par défaut." #: ../Doc/library/zipfile.rst:192 msgid "" "Added support for writing to unseekable streams. Added support for the " "``'x'`` mode." msgstr "" +"Ajout de la gestion de l'écriture dans des flux non navigables. Ajout de la " +"gestion du mode ``x``." #: ../Doc/library/zipfile.rst:196 msgid "" "Previously, a plain :exc:`RuntimeError` was raised for unrecognized " "compression values." msgstr "" +"Auparavant, une simple exception :exc:`RuntimeError` était levée pour des " +"valeurs de compression non reconnues." #: ../Doc/library/zipfile.rst:200 msgid "The *file* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *file* accepte un objet fichier-compatible :term:`path-like " +"object`." #: ../Doc/library/zipfile.rst:203 msgid "Add the *compresslevel* parameter." -msgstr "" +msgstr "Ajout du paramètre *compresslevel*." #: ../Doc/library/zipfile.rst:209 msgid "" "Close the archive file. You must call :meth:`close` before exiting your " "program or essential records will not be written." msgstr "" +"Ferme l'archive. Vous devez appeler :meth:`close` avant de terminer votre " +"programme ou des informations essentielles n'y seront pas enregistrées." #: ../Doc/library/zipfile.rst:215 msgid "" @@ -253,6 +347,9 @@ msgid "" "*name*. Calling :meth:`getinfo` for a name not currently contained in the " "archive will raise a :exc:`KeyError`." msgstr "" +"Retourne un objet :class:`ZipInfo` avec les informations du membre *name* de " +"l'archive. Appeler :meth:`getinfo` pour un nom non contenu dans l'archive " +"lève une exception :exc:`KeyError`." #: ../Doc/library/zipfile.rst:222 msgid "" @@ -260,10 +357,13 @@ msgid "" "archive. The objects are in the same order as their entries in the actual " "ZIP file on disk if an existing archive was opened." msgstr "" +"Retourne une liste contenant un objet :class:`ZipInfo` pour chaque membre de " +"l'archive. Les objets ont le même ordre que leurs entrées dans le fichier " +"ZIP présent sur disque s'il s'agissait d'une archive préexistante." #: ../Doc/library/zipfile.rst:229 msgid "Return a list of archive members by name." -msgstr "" +msgstr "Retourne une liste des membres de l'archive indexés par leur nom." #: ../Doc/library/zipfile.rst:234 msgid "" @@ -272,12 +372,19 @@ msgid "" "The *mode* parameter, if included, must be ``'r'`` (the default) or " "``'w'``. *pwd* is the password used to decrypt encrypted ZIP files." msgstr "" +"Accède un membre de l'archive en tant qu'objet fichier-compatible binaire. " +"*name* peut être soit le nom d'un fichier au sein de l'archive soit un " +"objet :class:`ZipInfo`. Le paramètre *mode*, si inclus, doit être défini à " +"``'r'`` (valeur par défaut) ou ``'w'``. *pwd* est le mot de passe utilisé " +"pour déchiffrer des fichiers ZIP chiffrés." #: ../Doc/library/zipfile.rst:239 msgid "" ":meth:`~ZipFile.open` is also a context manager and therefore supports the :" "keyword:`with` statement::" msgstr "" +":meth:`~ZipFile.open` est aussi un gestionnaire de contexte et gère ainsi la " +"déclaration :keyword:`with` ::" #: ../Doc/library/zipfile.rst:246 msgid "" @@ -287,6 +394,11 @@ msgid "" "meth:`~io.IOBase.tell`, :meth:`__iter__`, :meth:`~iterator.__next__`. These " "objects can operate independently of the ZipFile." msgstr "" +"Avec *mode* à ``r`` l'objet fichier-compatible (``ZipExtFile``) est en " +"lecture seule et fournit les méthodes suivantes : :meth:`~io.BufferedIOBase." +"read`, :meth:`~io.IOBase.readline`, :meth:`~io.IOBase.readlines`, :meth:`~io." +"IOBase.seek`, :meth:`~io.IOBase.tell`, :meth:`__iter__`, et :meth:`~iterator." +"__next__`. Ces objets opèrent indépendamment du fichier ZIP *ZipFile*." #: ../Doc/library/zipfile.rst:253 msgid "" @@ -295,6 +407,10 @@ msgid "" "open, attempting to read or write other files in the ZIP file will raise a :" "exc:`ValueError`." msgstr "" +"Avec ``mode='w'`` un descripteur de fichier en écriture est retourné, gérant " +"la méthode :meth:`~io.BufferedIOBase.write`. Quand le descripteur d'un " +"fichier inscriptible est ouvert, tenter de lire ou écrire d'autres fichiers " +"dans le fichier ZIP lève une exception :exc:`ValueError`." #: ../Doc/library/zipfile.rst:258 msgid "" @@ -304,6 +420,12 @@ msgid "" "a :class:`ZipInfo` object with :attr:`~ZipInfo.file_size` set, and use that " "as the *name* parameter." msgstr "" +"Lors de l'écriture d'un fichier, si la taille du fichier n'est pas connue " +"mais peut être supérieure à 2 GiO, spécifiez ``force_zip64=True`` afin de " +"vous assurer que le format d'en-tête est capable de supporter des fichiers " +"volumineux. Si la taille du fichier est connue à l'avance, instanciez un " +"objet :class:`ZipInfo` avec l'attribut :attr:`~ZipInfo.file_size` défini et " +"utilisez-le en tant que paramètre *name*." #: ../Doc/library/zipfile.rst:266 msgid "" @@ -311,24 +433,35 @@ msgid "" "filename or a :class:`ZipInfo` object. You will appreciate this when trying " "to read a ZIP file that contains members with duplicate names." msgstr "" +"Les méthodes :meth:`.open`, :meth:`read` et :meth:`extract` peuvent prendre " +"un nom de fichier ou un objet :class:`ZipInfo`. Cela est appréciable " +"lorsqu'on essaie de lire un fichier ZIP qui contient des membres avec des " +"noms en double." #: ../Doc/library/zipfile.rst:270 msgid "" "Removed support of ``mode='U'``. Use :class:`io.TextIOWrapper` for reading " "compressed text files in :term:`universal newlines` mode." msgstr "" +"Suppression de la gestion de ``mode='U'``. Utilisez :class:`io." +"TextIOWrapper` pour lire des fichiers texte compressés en mode :term:" +"`universal newlines`." #: ../Doc/library/zipfile.rst:274 msgid "" ":meth:`open` can now be used to write files into the archive with the " "``mode='w'`` option." msgstr "" +"La méthode :meth:`open` peut désormais être utilisée pour écrire des " +"fichiers dans l'archive avec l'option ``mode='w'``." #: ../Doc/library/zipfile.rst:278 msgid "" "Calling :meth:`.open` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`.open` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:285 msgid "" @@ -338,10 +471,16 @@ msgid "" "to extract to. *member* can be a filename or a :class:`ZipInfo` object. " "*pwd* is the password used for encrypted files." msgstr "" +"Extrait un membre de l'archive dans le répertoire courant ; *member* doit " +"être son nom complet ou un objet :class:`ZipInfo`. Ses propriétés de fichier " +"sont extraites le plus fidèlement possible. *path* spécifie un répertoire " +"différent où l'extraire. *member* peut être un nom de fichier ou un objet :" +"class:`ZipInfo`. *pwd* est le mot de passe utilisé pour les fichiers " +"chiffrés." #: ../Doc/library/zipfile.rst:291 msgid "Returns the normalized path created (a directory or new file)." -msgstr "" +msgstr "Retourne le chemin normalisé créé (un dossier ou un nouveau fichier)." #: ../Doc/library/zipfile.rst:295 msgid "" @@ -353,16 +492,27 @@ msgid "" "``<``, ``>``, ``|``, ``\"``, ``?``, and ``*``) replaced by underscore " "(``_``)." msgstr "" +"Si le nom de fichier d'un membre est un chemin absolu, le disque/partage UNC " +"et les (anti)slashes de départ seront supprimés, par exemple `///foo/bar`` " +"devient ``foo/bar`` sous Unix et ``C:\\foo\\bar`` devient ``foo\\bar`` sous " +"Windows. Et tous les composants ``\"..\"`` dans le nom de fichier d'un " +"membre seront supprimés, par exemple ``../../foo../../ba..r`` devient " +"``foo../ba..r``. Sous Windows les caractères illégaux (``:``, ``<``, ``>``, " +"``|``, ``\"``, ``?`` et ``*``) sont remplacés par un *underscore* (``_``)." #: ../Doc/library/zipfile.rst:303 msgid "" "Calling :meth:`extract` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`.extract` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:307 ../Doc/library/zipfile.rst:330 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *path* accepte un objet chemin-compatible :term:`path-like " +"object`." #: ../Doc/library/zipfile.rst:313 msgid "" @@ -371,6 +521,10 @@ msgid "" "and must be a subset of the list returned by :meth:`namelist`. *pwd* is the " "password used for encrypted files." msgstr "" +"Extrait tous les membres de l'archive dans le répertoire courant. *path* " +"spécifie un dossier de destination différent. *members* est optionnel et " +"doit être un sous-ensemble de la liste retournée par :meth:`namelist`. *pwd* " +"est le mot de passe utilisé pour les fichiers chiffrés." #: ../Doc/library/zipfile.rst:320 msgid "" @@ -379,20 +533,29 @@ msgid "" "absolute filenames starting with ``\"/\"`` or filenames with two dots ``\".." "\"``. This module attempts to prevent that. See :meth:`extract` note." msgstr "" +"N'extrayez jamais d'archives depuis des sources non fiables sans inspection " +"préalable. Il est possible que des fichiers soient créés en dehors de " +"*path*, par exemple des membres qui ont des chemins de fichier absolus " +"commençant par ``\"/\"`` ou des noms de fichier avec deux points ``\".." +"\"``. Ce module essaie de prévenir ceci. Voir la note de :meth:`extract`." #: ../Doc/library/zipfile.rst:326 msgid "" "Calling :meth:`extractall` on a closed ZipFile will raise a :exc:" "`ValueError`. Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`.extractall` sur un fichier ZipFile fermé lève une erreur :" +"exc:`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:336 msgid "Print a table of contents for the archive to ``sys.stdout``." -msgstr "" +msgstr "Affiche la liste des contenus de l'archive sur ``sys.stdout``." #: ../Doc/library/zipfile.rst:341 msgid "Set *pwd* as default password to extract encrypted files." msgstr "" +"Définit *pwd* comme mot de passe par défait pour extraire des fichiers " +"chiffrés." #: ../Doc/library/zipfile.rst:346 msgid "" @@ -406,24 +569,39 @@ msgid "" "error will also be raised if the corresponding compression module is not " "available." msgstr "" +"Retourne les octets du fichier *name* dans l'archive. *name* est le nom du " +"fichier dans l'archive ou un objet :class:`ZipInfo`. L'archive doit être " +"ouverte en mode lecture ou ajout de données. *pwd* est le mot de passe " +"utilisé pour les fichiers chiffrés et, si spécifié, écrase le mot de passe " +"par défaut défini avec :meth:`setpassword`. Appeler :meth:`.read` sur un " +"fichier ZipFile qui utilise une méthode de compression différente de :const:" +"`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:`ZIP_BZIP2` ou :const:`ZIP_LZMA` " +"lève une erreur :exc:`NotImplementedError`. Une erreur est également levée " +"si le module de compression n'est pas disponible." #: ../Doc/library/zipfile.rst:355 msgid "" "Calling :meth:`read` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`.read` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:362 msgid "" "Read all the files in the archive and check their CRC's and file headers. " "Return the name of the first bad file, or else return ``None``." msgstr "" +"Lit tous les fichiers de l'archive et vérifie leurs sommes CRC et leurs en-" +"têtes. Retourne le nom du premier fichier mauvais ou retourne ``None`` sinon." #: ../Doc/library/zipfile.rst:365 msgid "" -"Calling :meth:`testfile` on a closed ZipFile will raise a :exc:" -"`ValueError`. Previously, a :exc:`RuntimeError` was raised." +"Calling :meth:`testzip` on a closed ZipFile will raise a :exc:`ValueError`. " +"Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`testzip` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:373 msgid "" @@ -435,133 +613,178 @@ msgid "" "the constructor if given. The archive must be open with mode ``'w'``, " "``'x'`` or ``'a'``." msgstr "" +"Écrit le fichier nommé *filename* dans l'archive, lui donnant *arcname* " +"comme nom dans l'archive (par défaut, *arcname* prend la même valeur que " +"*filename* mais sans lettre de disque et séparateur de chemin en première " +"position). Si donné, *compress_type* écrase la valeur donnée pour le " +"paramètre *compression* au constructeur pour la nouvelle entrée. De la même " +"manière, *compression* écrase le constructeur si donné. L'archive doit être " +"ouverte avec le mode ``'w'``, ``'x'`` ou ``'a'``." #: ../Doc/library/zipfile.rst:383 msgid "" -"There is no official file name encoding for ZIP files. If you have unicode " -"file names, you must convert them to byte strings in your desired encoding " -"before passing them to :meth:`write`. WinZip interprets all file names as " -"encoded in CP437, also known as DOS Latin." -msgstr "" - -#: ../Doc/library/zipfile.rst:390 -msgid "" "Archive names should be relative to the archive root, that is, they should " "not start with a path separator." msgstr "" +"Les noms d'archive doivent être relatifs à la racine de l'archive, c'est-à-" +"dire qu'ils ne doivent pas commencer par un séparateur de chemin." -#: ../Doc/library/zipfile.rst:395 +#: ../Doc/library/zipfile.rst:388 msgid "" "If ``arcname`` (or ``filename``, if ``arcname`` is not given) contains a " "null byte, the name of the file in the archive will be truncated at the null " "byte." msgstr "" +"Si ``arcname`` (ou ``filename`` si ``arcname`` n'est pas donné) contient un " +"octet nul, le nom du fichier dans l'archive sera tronqué à l'octet nul." -#: ../Doc/library/zipfile.rst:398 +#: ../Doc/library/zipfile.rst:391 msgid "" "Calling :meth:`write` on a ZipFile created with mode ``'r'`` or a closed " "ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " "was raised." msgstr "" +"Appeler :meth:`.write` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." -#: ../Doc/library/zipfile.rst:407 +#: ../Doc/library/zipfile.rst:400 msgid "" -"Write the string *data* to the archive; *zinfo_or_arcname* is either the " -"file name it will be given in the archive, or a :class:`ZipInfo` instance. " -"If it's an instance, at least the filename, date, and time must be given. " -"If it's a name, the date and time is set to the current date and time. The " -"archive must be opened with mode ``'w'``, ``'x'`` or ``'a'``." +"Write a file into the archive. The contents is *data*, which may be either " +"a :class:`str` or a :class:`bytes` instance; if it is a :class:`str`, it is " +"encoded as UTF-8 first. *zinfo_or_arcname* is either the file name it will " +"be given in the archive, or a :class:`ZipInfo` instance. If it's an " +"instance, at least the filename, date, and time must be given. If it's a " +"name, the date and time is set to the current date and time. The archive " +"must be opened with mode ``'w'``, ``'x'`` or ``'a'``." msgstr "" +"Écrit un fichier dans l'archive. Le contenu est *data*, qui peut être soit " +"une instance de :class:`str` ou une instance de :class:`bytes` ; s'il s'agit " +"d'une :class:`str`, il est encodé en UTF-8 au préalable. *zinfo_or_arcname* " +"est soit le nom de fichier qu'il sera donné dans l'archive, soit une " +"instance de :class:`ZipInfo`. Si c'est une instance, au moins le nom de " +"fichier, la date et l'heure doivent être donnés. S'il s'agit d'un nom, la " +"date et l'heure sont définies sur la date et l'heure actuelles. L'archive " +"doit être ouverte avec le mode ``'w'``, ``'x'`` ou ``'a'``." -#: ../Doc/library/zipfile.rst:413 +#: ../Doc/library/zipfile.rst:408 msgid "" "If given, *compress_type* overrides the value given for the *compression* " "parameter to the constructor for the new entry, or in the *zinfo_or_arcname* " "(if that is a :class:`ZipInfo` instance). Similarly, *compresslevel* will " "override the constructor if given." msgstr "" +"Si donné, *compress_type* écrase la valeur donnée pour le paramètre " +"*compression* au constructeur de la nouvelle entrée ou dans le paramètre " +"*zinfo_or_arcname* (si c'est une instance de :class:`ZipInfo`). De la même " +"manière, *compresslevel* le constructeur si donné." -#: ../Doc/library/zipfile.rst:420 +#: ../Doc/library/zipfile.rst:415 msgid "" "When passing a :class:`ZipInfo` instance as the *zinfo_or_arcname* " "parameter, the compression method used will be that specified in the " "*compress_type* member of the given :class:`ZipInfo` instance. By default, " "the :class:`ZipInfo` constructor sets this member to :const:`ZIP_STORED`." msgstr "" +"Lorsque l'on passe une instance de :class:`ZipInfo` dans le paramètre " +"*zinfo_or_arcname*, la méthode de compression utilisée sera celle spécifiée " +"dans le membre *compress_type* de l'instance :class:`ZipInfo` donnée. Par " +"défaut, le constructeur de la classe :class:`ZipInfo` définit ce membre à :" +"const:`ZIP_STORED`." -#: ../Doc/library/zipfile.rst:425 +#: ../Doc/library/zipfile.rst:420 msgid "The *compress_type* argument." -msgstr "" +msgstr "L'argument *compress_type*." -#: ../Doc/library/zipfile.rst:428 +#: ../Doc/library/zipfile.rst:423 msgid "" "Calling :meth:`writestr` on a ZipFile created with mode ``'r'`` or a closed " "ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " "was raised." msgstr "" +"Appeler :meth:`.writestr` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." -#: ../Doc/library/zipfile.rst:434 +#: ../Doc/library/zipfile.rst:429 msgid "The following data attributes are also available:" -msgstr "" +msgstr "Les attributs suivants sont aussi disponibles :" -#: ../Doc/library/zipfile.rst:438 +#: ../Doc/library/zipfile.rst:433 msgid "Name of the ZIP file." -msgstr "" +msgstr "Nom du fichier ZIP." -#: ../Doc/library/zipfile.rst:442 +#: ../Doc/library/zipfile.rst:437 msgid "" "The level of debug output to use. This may be set from ``0`` (the default, " "no output) to ``3`` (the most output). Debugging information is written to " "``sys.stdout``." msgstr "" +"Le niveau d'affichage de *debug* à utiliser. Peut être défini de ``0`` (par " +"défaut, pas d'affichage) à ``3`` (affichage le plus bavard). Les " +"informations de débogage sont affichées sur ``sys.stdout``." -#: ../Doc/library/zipfile.rst:448 +#: ../Doc/library/zipfile.rst:443 msgid "" -"The comment text associated with the ZIP file. If assigning a comment to a :" -"class:`ZipFile` instance created with mode ``'w'``, ``'x'`` or ``'a'``, this " -"should be a string no longer than 65535 bytes. Comments longer than this " -"will be truncated in the written archive when :meth:`close` is called." +"The comment associated with the ZIP file as a :class:`bytes` object. If " +"assigning a comment to a :class:`ZipFile` instance created with mode " +"``'w'``, ``'x'`` or ``'a'``, it should be no longer than 65535 bytes. " +"Comments longer than this will be truncated." msgstr "" +"Le commentaire associé au fichier ZIP en tant qu'objet :class:`bytes`. Si " +"vous affectez un commentaire à une instance de :class:`ZipFile` créée avec " +"le mode ``'w'``, ``'x'`` ou ``'a'``, il ne doit pas dépasser 65535 octets. " +"Les commentaires plus longs que cette taille seront tronqués." -#: ../Doc/library/zipfile.rst:458 +#: ../Doc/library/zipfile.rst:453 msgid "PyZipFile Objects" -msgstr "" +msgstr "Objets *PyZipFile*" -#: ../Doc/library/zipfile.rst:460 +#: ../Doc/library/zipfile.rst:455 msgid "" "The :class:`PyZipFile` constructor takes the same parameters as the :class:" "`ZipFile` constructor, and one additional parameter, *optimize*." msgstr "" +"Le constructeur de :class:`PyZipFile` prend les mêmes paramètres que le " +"constructeur de :class:`ZipFile` avec un paramètre additionnel *optimize*." -#: ../Doc/library/zipfile.rst:466 +#: ../Doc/library/zipfile.rst:461 msgid "The *optimize* parameter." -msgstr "" +msgstr "Le paramètre *optimize*." -#: ../Doc/library/zipfile.rst:472 +#: ../Doc/library/zipfile.rst:467 msgid "" "Instances have one method in addition to those of :class:`ZipFile` objects:" msgstr "" +"Les instances ont une méthode supplémentaire par rapport aux objets :class:" +"`ZipFile` :" -#: ../Doc/library/zipfile.rst:476 +#: ../Doc/library/zipfile.rst:471 msgid "" "Search for files :file:`\\*.py` and add the corresponding file to the " "archive." msgstr "" +"Cherche les fichiers :file:`\\*.py` et ajoute le fichier correspondant à " +"l'archive." -#: ../Doc/library/zipfile.rst:479 +#: ../Doc/library/zipfile.rst:474 msgid "" "If the *optimize* parameter to :class:`PyZipFile` was not given or ``-1``, " "the corresponding file is a :file:`\\*.pyc` file, compiling if necessary." msgstr "" +"Si le paramètre *optimize* du constructeur de :class:`PyZipFile` n'a pas été " +"donné ou est à ``-1``, le fichier correspondant est un fichier :file:`\\*." +"pyc`, à compiler si nécessaire." -#: ../Doc/library/zipfile.rst:482 +#: ../Doc/library/zipfile.rst:477 msgid "" "If the *optimize* parameter to :class:`PyZipFile` was ``0``, ``1`` or ``2``, " "only files with that optimization level (see :func:`compile`) are added to " "the archive, compiling if necessary." msgstr "" +"Si le paramètre *optimize* du constructeur de :class:`PyZipFile` est à " +"``0``, ``1`` ou ``2``, ne sont ajoutés dans l'archive que les fichiers avec " +"ce niveau d'optimisation (voir :func:`compile`), à compiler si nécessaire." -#: ../Doc/library/zipfile.rst:486 +#: ../Doc/library/zipfile.rst:481 msgid "" "If *pathname* is a file, the filename must end with :file:`.py`, and just " "the (corresponding :file:`\\*.pyc`) file is added at the top level (no path " @@ -573,12 +796,22 @@ msgid "" "subdirectories are package directories, all of these are added recursively " "in sorted order." msgstr "" - -#: ../Doc/library/zipfile.rst:496 +"Si *pathname* est un fichier, le chemin de fichier doit terminer par :file:" +"`.py` et uniquement le fichier (:file:`\\*.pyc` correspondant) est ajouté au " +"niveau le plus haut (sans information de chemin). Si *pathname* est un " +"fichier ne terminant pas par :file:`.py`, une exception :exc:`RuntimeError` " +"est levée. Si c'est un répertoire et que le répertoire n'est pas un " +"répertoire de paquet, alors tous les fichiers :file:`\\*.pyc` sont ajoutés " +"à la racine. Si le répertoire est un répertoire de paquet, alors tous les :" +"file:`\\*.pyc` sont ajoutés sous le nom du paquet en tant que chemin, et " +"s'il y a des sous-répertoires qui sont des répertoires de paquet, ils sont " +"tous ajoutés récursivement dans un ordre trié." + +#: ../Doc/library/zipfile.rst:491 msgid "*basename* is intended for internal use only." -msgstr "" +msgstr "*basename* n'est sensé être utilisé qu'en interne." -#: ../Doc/library/zipfile.rst:498 +#: ../Doc/library/zipfile.rst:493 msgid "" "*filterfunc*, if given, must be a function taking a single string argument. " "It will be passed each path (including each individual full file path) " @@ -588,251 +821,308 @@ msgid "" "directories or start with the string ``test_``, we can use a *filterfunc* to " "exclude them::" msgstr "" +"*filterfunc*, si donné, doit être une fonction prenant une seule chaîne de " +"caractères en argument. Il lui sera passé chaque chemin (incluant chaque " +"chemin de fichier complet individuel) avant d'être ajouté à l'archive. Si " +"*filterfunc* retourne une valeur fausse, le chemin n'est pas ajouté et si " +"c'est un répertoire son contenu est ignoré. Par exemple, si nos fichiers de " +"test sont tous soit dans des répertoires ``test`` ou commencent par " +"``test_``, nous pouvons utiliser une fonction *filterfunc* pour les " +"exclure ::" -#: ../Doc/library/zipfile.rst:512 +#: ../Doc/library/zipfile.rst:507 msgid "The :meth:`writepy` method makes archives with file names like this::" msgstr "" +"La méthode :meth:`writepy` crée des archives avec des noms de fichier comme " +"suit ::" -#: ../Doc/library/zipfile.rst:521 +#: ../Doc/library/zipfile.rst:516 msgid "The *filterfunc* parameter." -msgstr "" +msgstr "Le paramètre *filterfunc*." -#: ../Doc/library/zipfile.rst:524 +#: ../Doc/library/zipfile.rst:519 msgid "The *pathname* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *pathname* accepte un objet chemin-compatible :term:`path-like " +"object`." -#: ../Doc/library/zipfile.rst:527 +#: ../Doc/library/zipfile.rst:522 msgid "Recursion sorts directory entries." -msgstr "" +msgstr "La récursion trie les entrées de dossier." -#: ../Doc/library/zipfile.rst:534 +#: ../Doc/library/zipfile.rst:529 msgid "ZipInfo Objects" -msgstr "" +msgstr "Objets *ZipInfo*" -#: ../Doc/library/zipfile.rst:536 +#: ../Doc/library/zipfile.rst:531 msgid "" "Instances of the :class:`ZipInfo` class are returned by the :meth:`.getinfo` " "and :meth:`.infolist` methods of :class:`ZipFile` objects. Each object " "stores information about a single member of the ZIP archive." msgstr "" +"Des instances de la classe :class:`ZipInfo` sont retournées par les " +"méthodes :meth:`.getinfo` et :meth:`.infolist` des objets :class:`ZipFile`. " +"Chaque objet stocke des informations sur un seul membre de l'archive ZIP." -#: ../Doc/library/zipfile.rst:540 +#: ../Doc/library/zipfile.rst:535 msgid "" "There is one classmethod to make a :class:`ZipInfo` instance for a " "filesystem file:" msgstr "" +"Il y a une méthode de classe pour créer une instance de :class:`ZipInfo` " +"pour un fichier du système de fichiers :" -#: ../Doc/library/zipfile.rst:545 +#: ../Doc/library/zipfile.rst:540 msgid "" "Construct a :class:`ZipInfo` instance for a file on the filesystem, in " "preparation for adding it to a zip file." msgstr "" +"Construit une instance de :class:`ZipInfo` pour le fichier du système de " +"fichiers, en préparation de l'ajouter à un fichier ZIP." -#: ../Doc/library/zipfile.rst:548 +#: ../Doc/library/zipfile.rst:543 msgid "*filename* should be the path to a file or directory on the filesystem." msgstr "" +"*filename* doit être un chemin vers un fichier ou un répertoire dans le " +"système de fichiers." -#: ../Doc/library/zipfile.rst:550 +#: ../Doc/library/zipfile.rst:545 msgid "" "If *arcname* is specified, it is used as the name within the archive. If " "*arcname* is not specified, the name will be the same as *filename*, but " "with any drive letter and leading path separators removed." msgstr "" +"Si *arcname* est spécifié, il est utilisé en tant que nom dans l'archive. Si " +"*arcname* n'est pas spécifié, le nom sera le même que *filename* mais sans " +"lettre de disque et sans séparateur de chemin en première position." -#: ../Doc/library/zipfile.rst:556 +#: ../Doc/library/zipfile.rst:551 msgid "The *filename* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *filename* accepte un objet chemin-compatible :term:`path-like " +"object`." -#: ../Doc/library/zipfile.rst:560 +#: ../Doc/library/zipfile.rst:555 msgid "Instances have the following methods and attributes:" -msgstr "" +msgstr "Les instances ont les méthodes et attributs suivants :" -#: ../Doc/library/zipfile.rst:564 +#: ../Doc/library/zipfile.rst:559 msgid "Return ``True`` if this archive member is a directory." -msgstr "" +msgstr "Retourne ``True`` si le membre d'archive est un répertoire." -#: ../Doc/library/zipfile.rst:566 +#: ../Doc/library/zipfile.rst:561 msgid "This uses the entry's name: directories should always end with ``/``." msgstr "" +"Utilise le nom de l'entrée : les répertoires doivent toujours se terminer " +"par ``/``." -#: ../Doc/library/zipfile.rst:573 +#: ../Doc/library/zipfile.rst:568 msgid "Name of the file in the archive." -msgstr "" +msgstr "Nom du fichier dans l'archive." -#: ../Doc/library/zipfile.rst:578 +#: ../Doc/library/zipfile.rst:573 msgid "" "The time and date of the last modification to the archive member. This is a " "tuple of six values:" msgstr "" +"Date et heure de dernière modification pour le membre de l'archive. *Tuple* " +"de six valeurs :" -#: ../Doc/library/zipfile.rst:582 +#: ../Doc/library/zipfile.rst:577 msgid "Index" -msgstr "" +msgstr "Index" -#: ../Doc/library/zipfile.rst:582 +#: ../Doc/library/zipfile.rst:577 msgid "Value" msgstr "Valeur" -#: ../Doc/library/zipfile.rst:584 +#: ../Doc/library/zipfile.rst:579 msgid "``0``" msgstr "``0``" -#: ../Doc/library/zipfile.rst:584 +#: ../Doc/library/zipfile.rst:579 msgid "Year (>= 1980)" -msgstr "" +msgstr "Année (>= 1980)" -#: ../Doc/library/zipfile.rst:586 +#: ../Doc/library/zipfile.rst:581 msgid "``1``" msgstr "``1``" -#: ../Doc/library/zipfile.rst:586 +#: ../Doc/library/zipfile.rst:581 msgid "Month (one-based)" -msgstr "" +msgstr "Mois (indexé à partir de 1)" -#: ../Doc/library/zipfile.rst:588 +#: ../Doc/library/zipfile.rst:583 msgid "``2``" msgstr "``2``" -#: ../Doc/library/zipfile.rst:588 +#: ../Doc/library/zipfile.rst:583 msgid "Day of month (one-based)" -msgstr "" +msgstr "Jour du mois (indexé à partir de 1)" -#: ../Doc/library/zipfile.rst:590 +#: ../Doc/library/zipfile.rst:585 msgid "``3``" msgstr "``3``" -#: ../Doc/library/zipfile.rst:590 +#: ../Doc/library/zipfile.rst:585 msgid "Hours (zero-based)" -msgstr "" +msgstr "Heures (indexées à partir de 0)" -#: ../Doc/library/zipfile.rst:592 +#: ../Doc/library/zipfile.rst:587 msgid "``4``" msgstr "``4``" -#: ../Doc/library/zipfile.rst:592 +#: ../Doc/library/zipfile.rst:587 msgid "Minutes (zero-based)" -msgstr "" +msgstr "Minutes (indexées à partir de 0)" -#: ../Doc/library/zipfile.rst:594 +#: ../Doc/library/zipfile.rst:589 msgid "``5``" msgstr "``5``" -#: ../Doc/library/zipfile.rst:594 +#: ../Doc/library/zipfile.rst:589 msgid "Seconds (zero-based)" -msgstr "" +msgstr "Secondes (indexées à partir de 0)" -#: ../Doc/library/zipfile.rst:599 +#: ../Doc/library/zipfile.rst:594 msgid "The ZIP file format does not support timestamps before 1980." -msgstr "" +msgstr "Le format de fichier ZIP ne gère pas les horodatages avant 1980." -#: ../Doc/library/zipfile.rst:604 +#: ../Doc/library/zipfile.rst:599 msgid "Type of compression for the archive member." -msgstr "" +msgstr "Type de compression du membre d'archive." -#: ../Doc/library/zipfile.rst:609 -msgid "Comment for the individual archive member." +#: ../Doc/library/zipfile.rst:604 +msgid "Comment for the individual archive member as a :class:`bytes` object." msgstr "" +"Commentaire pour le membre d'archive individuel en tant qu'objet :class:" +"`bytes`." -#: ../Doc/library/zipfile.rst:614 +#: ../Doc/library/zipfile.rst:609 msgid "" "Expansion field data. The `PKZIP Application Note`_ contains some comments " -"on the internal structure of the data contained in this string." +"on the internal structure of the data contained in this :class:`bytes` " +"object." msgstr "" +"Données du champ d'extension. La documentation `PKZIP Application Note`_ " +"contient quelques commentaires sur la structure interne des données " +"contenues dans cet objet :class:`bytes`." -#: ../Doc/library/zipfile.rst:620 +#: ../Doc/library/zipfile.rst:616 msgid "System which created ZIP archive." -msgstr "" +msgstr "Système ayant créé l'archive ZIP." -#: ../Doc/library/zipfile.rst:625 +#: ../Doc/library/zipfile.rst:621 msgid "PKZIP version which created ZIP archive." -msgstr "" +msgstr "Version de PKZIP ayant créé l'archive ZIP." -#: ../Doc/library/zipfile.rst:630 +#: ../Doc/library/zipfile.rst:626 msgid "PKZIP version needed to extract archive." -msgstr "" +msgstr "Version de PKZIP nécessaire à l'extraction de l'archive ZIP." -#: ../Doc/library/zipfile.rst:635 +#: ../Doc/library/zipfile.rst:631 msgid "Must be zero." -msgstr "" +msgstr "Doit être à zéro." -#: ../Doc/library/zipfile.rst:640 +#: ../Doc/library/zipfile.rst:636 msgid "ZIP flag bits." -msgstr "" +msgstr "Bits d'options ZIP." -#: ../Doc/library/zipfile.rst:645 +#: ../Doc/library/zipfile.rst:641 msgid "Volume number of file header." -msgstr "" +msgstr "Numéro de volume de l'entête du fichier." -#: ../Doc/library/zipfile.rst:650 +#: ../Doc/library/zipfile.rst:646 msgid "Internal attributes." -msgstr "" +msgstr "Attributs internes." -#: ../Doc/library/zipfile.rst:655 +#: ../Doc/library/zipfile.rst:651 msgid "External file attributes." -msgstr "" +msgstr "Attributs de fichier externes." -#: ../Doc/library/zipfile.rst:660 +#: ../Doc/library/zipfile.rst:656 msgid "Byte offset to the file header." -msgstr "" +msgstr "Longueur de l'entête du fichier en octets." -#: ../Doc/library/zipfile.rst:665 +#: ../Doc/library/zipfile.rst:661 msgid "CRC-32 of the uncompressed file." -msgstr "" +msgstr "CRC-32 du fichier décompressé." -#: ../Doc/library/zipfile.rst:670 +#: ../Doc/library/zipfile.rst:666 msgid "Size of the compressed data." -msgstr "" +msgstr "Taille des données décompressées." -#: ../Doc/library/zipfile.rst:675 +#: ../Doc/library/zipfile.rst:671 msgid "Size of the uncompressed file." -msgstr "" +msgstr "Taille du fichier décompressé." -#: ../Doc/library/zipfile.rst:682 +#: ../Doc/library/zipfile.rst:678 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" -#: ../Doc/library/zipfile.rst:684 +#: ../Doc/library/zipfile.rst:680 msgid "" "The :mod:`zipfile` module provides a simple command-line interface to " "interact with ZIP archives." msgstr "" +"Le module :mod:`zipfile` fournit une interface en ligne de commande simple " +"pour interagir avec des archives ZIP." -#: ../Doc/library/zipfile.rst:687 +#: ../Doc/library/zipfile.rst:683 msgid "" "If you want to create a new ZIP archive, specify its name after the :option:" "`-c` option and then list the filename(s) that should be included:" msgstr "" +"Si vous voulez créer une nouvelle archive ZIP, spécifiez son nom après " +"l'option :option:`-c` et listez ensuite le(s) nom(s) de fichier à inclure :" -#: ../Doc/library/zipfile.rst:694 +#: ../Doc/library/zipfile.rst:690 msgid "Passing a directory is also acceptable:" -msgstr "" +msgstr "Passer un répertoire est aussi possible :" -#: ../Doc/library/zipfile.rst:700 +#: ../Doc/library/zipfile.rst:696 msgid "" "If you want to extract a ZIP archive into the specified directory, use the :" "option:`-e` option:" msgstr "" +"Si vous voulez extraire une archive ZIP dans un répertoire donné, utilisez " +"l'option :option:`-e` :" -#: ../Doc/library/zipfile.rst:707 +#: ../Doc/library/zipfile.rst:703 msgid "For a list of the files in a ZIP archive, use the :option:`-l` option:" msgstr "" +"Pour une liste des fichiers dans une archive ZIP, utilisez l'option :option:" +"`-l` :" -#: ../Doc/library/zipfile.rst:715 +#: ../Doc/library/zipfile.rst:711 msgid "Command-line options" -msgstr "" +msgstr "Options de la ligne de commande" -#: ../Doc/library/zipfile.rst:720 +#: ../Doc/library/zipfile.rst:716 msgid "List files in a zipfile." -msgstr "" +msgstr "Liste les fichiers dans un fichier ZIP *zipfile*." -#: ../Doc/library/zipfile.rst:725 +#: ../Doc/library/zipfile.rst:721 msgid "Create zipfile from source files." -msgstr "" +msgstr "Crée un fichier ZIP *zipfile* à partir des fichiers *source*." -#: ../Doc/library/zipfile.rst:730 +#: ../Doc/library/zipfile.rst:726 msgid "Extract zipfile into target directory." msgstr "" +"Extrait le fichier ZIP *zipfile* vers le répertoire cible *output_dir*." -#: ../Doc/library/zipfile.rst:735 +#: ../Doc/library/zipfile.rst:731 msgid "Test whether the zipfile is valid or not." -msgstr "" +msgstr "Teste si le fichier zip est valide." + +#~ msgid "" +#~ "There is no official file name encoding for ZIP files. If you have " +#~ "unicode file names, you must convert them to byte strings in your desired " +#~ "encoding before passing them to :meth:`write`. WinZip interprets all file " +#~ "names as encoded in CP437, also known as DOS Latin." +#~ msgstr "" +#~ "Il n'y a pas d'encodage de nom de fichier officiel pour les fichiers ZIP. " +#~ "Si vous avez des noms de fichier *unicode*, vous devez les convertir en " +#~ "chaînes d'octets dans l'encodage désiré avant de les passer à :meth:" +#~ "`write`. *WinZip* interprète tous les noms de fichier comme encodés en " +#~ "CP437, aussi connu sous le nom de DOS Latin." diff --git a/library/zipimport.po b/library/zipimport.po index f8a7f438c..9bc695c8c 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-07-18 20:03+0200\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/zipimport.rst:2 msgid ":mod:`zipimport` --- Import modules from Zip archives" -msgstr "" +msgstr ":mod:`zipimport` — Importer des modules à partir d'archives Zip" #: ../Doc/library/zipimport.rst:11 msgid "" @@ -26,6 +27,12 @@ msgid "" "the built-in :keyword:`import` mechanism for :data:`sys.path` items that are " "paths to ZIP archives." msgstr "" +"Ce module ajoute la possibilité d'importer des modules Python (:file:`\\*." +"py`, :file:`\\*.pyc`) et des paquets depuis des archives au format ZIP. Il " +"n'est généralement pas nécessaire d'utiliser explicitement le module :mod:" +"`zipimport` ; il est automatiquement utilisé par le mécanisme intégré de :" +"keyword:`import` pour les éléments :data:`sys.path` qui sont des chemins " +"vers les archives ZIP." #: ../Doc/library/zipimport.rst:17 msgid "" @@ -37,6 +44,14 @@ msgid "" "lib/` would only import from the :file:`lib/` subdirectory within the " "archive." msgstr "" +"Typiquement, :data:`sys.path` est une liste de noms de répertoires sous " +"forme de chaînes. Ce module permet également à un élément de :data:`sys." +"path` d'être une chaîne nommant une archive de fichier ZIP. L'archive ZIP " +"peut contenir une structure de sous-répertoire pour prendre en charge les " +"importations de paquets, et un chemin dans l'archive peut être spécifié pour " +"importer uniquement à partir d'un sous-répertoire. Par exemple, le chemin " +"d'accès :file:`example.zip/lib/` importerait uniquement depuis le sous-" +"répertoire :file:`lib/` dans l'archive." #: ../Doc/library/zipimport.rst:24 msgid "" @@ -47,26 +62,39 @@ msgid "" "the corresponding :file:`.pyc` file, meaning that if a ZIP archive doesn't " "contain :file:`.pyc` files, importing may be rather slow." msgstr "" +"Tous les fichiers peuvent être présents dans l'archive ZIP, mais seuls les " +"fichiers :file:`.py` et :file:`.pyc` sont disponibles pour importation. " +"L'importation ZIP des modules dynamiques (:file:`.pyd`, :file:`.so`) est " +"interdite. Notez que si une archive ne contient que des fichiers :file:`." +"py` , Python n'essaiera pas de modifier l'archive en ajoutant le fichier " +"correspondant :file:`.pyc`, ce qui signifie que si une archive ZIP ne " +"contient pas de fichier: :file:`.pyc`, l'importation peut être assez lente." #: ../Doc/library/zipimport.rst:31 msgid "ZIP archives with an archive comment are currently not supported." msgstr "" +"Les archives ZIP avec un commentaire ne sont actuellement pas prises en " +"charge." #: ../Doc/library/zipimport.rst:37 msgid "" "`PKZIP Application Note `_" msgstr "" +"`PKZIP Application Note `_" #: ../Doc/library/zipimport.rst:36 msgid "" "Documentation on the ZIP file format by Phil Katz, the creator of the format " "and algorithms used." msgstr "" +"Documentation sur le format de fichier ZIP par Phil Katz, créateur du format " +"et des algorithmes utilisés." #: ../Doc/library/zipimport.rst:42 msgid ":pep:`273` - Import Modules from Zip Archives" -msgstr "" +msgstr ":pep:`273` - Import Modules from Zip Archives" #: ../Doc/library/zipimport.rst:40 msgid "" @@ -74,32 +102,40 @@ msgid "" "2.3 follows the specification in PEP 273, but uses an implementation written " "by Just van Rossum that uses the import hooks described in PEP 302." msgstr "" +"Écrit par James C. Ahlstrom, qui a également fourni une mise en œuvre. " +"Python 2.3 suit les spécifications de PEP 273, mais utilise une " +"implémentation écrite par Just van Rossum qui utilise les crochets " +"d'importation décrits dans PEP 302." #: ../Doc/library/zipimport.rst:44 msgid ":pep:`302` - New Import Hooks" -msgstr "" +msgstr ":pep:`302` — Nouveaux crochets d'importation" #: ../Doc/library/zipimport.rst:45 msgid "The PEP to add the import hooks that help this module work." msgstr "" +"Le PEP pour ajouter les crochets d'importation qui aident ce module à " +"fonctionner." #: ../Doc/library/zipimport.rst:48 msgid "This module defines an exception:" -msgstr "" +msgstr "Ce module définit une exception :" #: ../Doc/library/zipimport.rst:52 msgid "" "Exception raised by zipimporter objects. It's a subclass of :exc:" "`ImportError`, so it can be caught as :exc:`ImportError`, too." msgstr "" +"Exception levée par les objets *zipimporter*. C'est une sous-classe de :exc:" +"`ImportError`, donc il peut être pris comme :exc:`ImportError`, aussi." #: ../Doc/library/zipimport.rst:59 msgid "zipimporter Objects" -msgstr "" +msgstr "Objets *zimporter*" #: ../Doc/library/zipimport.rst:61 msgid ":class:`zipimporter` is the class for importing ZIP files." -msgstr "" +msgstr ":class:`zipimporter` est la classe pour importer des fichiers ZIP." #: ../Doc/library/zipimport.rst:65 msgid "" @@ -109,12 +145,19 @@ msgid "" "`lib` directory inside the ZIP file :file:`foo/bar.zip` (provided that it " "exists)." msgstr "" +"Créez une nouvelle instance de `zipimporter`. *archivepath* doit être un " +"chemin vers un fichier ZIP, ou vers un chemin spécifique dans un fichier " +"ZIP. Par exemple, un *archivepath* de :file:`foo/bar.zip/lib` cherchera les " +"modules dans le répertoire :file:`lib` du fichier ZIP :file:`foo/bar.zip` " +"(si celui-ci existe)." #: ../Doc/library/zipimport.rst:70 msgid "" ":exc:`ZipImportError` is raised if *archivepath* doesn't point to a valid " "ZIP archive." msgstr "" +":exc:`ZipImportError` est levée si *archivepath* ne pointe pas vers une " +"archive ZIP valide." #: ../Doc/library/zipimport.rst:75 msgid "" @@ -124,30 +167,42 @@ msgid "" "argument is ignored---it's there for compatibility with the importer " "protocol." msgstr "" +"Rechercher un module spécifié par *fullname*. *fullname* doit être le nom du " +"module entièrement qualifié (`dotted`). Elle retourne l'instance " +"`zipimporter` elle-même si le module a été trouvé, ou :const:`None` si ce " +"n'est pas le cas. L'argument optionnel *path* est ignoré --- il est là pour " +"la compatibilité avec le protocole de l'importateur." #: ../Doc/library/zipimport.rst:84 msgid "" "Return the code object for the specified module. Raise :exc:`ZipImportError` " "if the module couldn't be found." msgstr "" +"Retourne l'objet de code pour le module spécifié. Lève :exc:`ZipImportError` " +"si le module n'a pas pu être trouvé." #: ../Doc/library/zipimport.rst:90 msgid "" "Return the data associated with *pathname*. Raise :exc:`OSError` if the file " "wasn't found." msgstr "" +"Renvoie les données associées à *pathname*. Lève :exc:`OSError` si le " +"fichier n'a pas été trouvé." #: ../Doc/library/zipimport.rst:93 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`." +"Précédemment, c'était l'exception :exc:`IOError` qui était levée, au lieu " +"de :exc:`OSError`." #: ../Doc/library/zipimport.rst:99 msgid "" "Return the value ``__file__`` would be set to if the specified module was " "imported. Raise :exc:`ZipImportError` if the module couldn't be found." msgstr "" +"Renvoie la valeur ``__file____`` qui serait définie si le module spécifié " +"était importé. Lève :exc:`ZipImportError` si le module n'a pas pu être " +"trouvé." #: ../Doc/library/zipimport.rst:108 msgid "" @@ -155,12 +210,17 @@ msgid "" "if the module couldn't be found, return :const:`None` if the archive does " "contain the module, but has no source for it." msgstr "" +"Renvoie le code source du module spécifié. Lève :exc:`ZipImportError` si le " +"module n'a pas pu être trouvé, renvoie :const:`None` si l'archive contient " +"le module, mais n'en a pas la source." #: ../Doc/library/zipimport.rst:116 msgid "" "Return ``True`` if the module specified by *fullname* is a package. Raise :" "exc:`ZipImportError` if the module couldn't be found." msgstr "" +"Renvoie ``True`` si le module spécifié par *fullname* est un paquet. Lève :" +"exc:`ZipImportError` si le module n'a pas pu être trouvé." #: ../Doc/library/zipimport.rst:122 msgid "" @@ -168,18 +228,26 @@ msgid "" "qualified (dotted) module name. It returns the imported module, or raises :" "exc:`ZipImportError` if it wasn't found." msgstr "" +"Charge le module spécifié par *fullname*. *fullname* doit être le nom du " +"module entièrement qualifié (`dotted`). Il renvoie le module importé, ou " +"augmente :exc:`ZipImportError` s'il n'a pas été trouvé." #: ../Doc/library/zipimport.rst:129 msgid "" "The file name of the importer's associated ZIP file, without a possible " "subpath." msgstr "" +"Le nom de fichier de l'archive ZIP associé à l'importateur, sans sous-chemin " +"possible." #: ../Doc/library/zipimport.rst:135 msgid "" "The subpath within the ZIP file where modules are searched. This is the " "empty string for zipimporter objects which point to the root of the ZIP file." msgstr "" +"Le sous-chemin du fichier ZIP où les modules sont recherchés. C'est la " +"chaîne vide pour les objets `zipimporter` qui pointent vers la racine du " +"fichier ZIP." #: ../Doc/library/zipimport.rst:139 msgid "" @@ -187,6 +255,9 @@ msgid "" "slash, equal the original *archivepath* argument given to the :class:" "`zipimporter` constructor." msgstr "" +"Les attributs :attr:`archive` et :attr:`prefix`, lorsqu'ils sont combinés " +"avec une barre oblique, égalent l'argument original *archivepath* donné au " +"constructeur :class:`zipimporter`." #: ../Doc/library/zipimport.rst:147 msgid "Examples" @@ -197,3 +268,5 @@ msgid "" "Here is an example that imports a module from a ZIP archive - note that the :" "mod:`zipimport` module is not explicitly used." msgstr "" +"Voici un exemple qui importe un module d'une archive ZIP — notez que le " +"module :mod:`zipimport` n'est pas explicitement utilisé." diff --git a/library/zlib.po b/library/zlib.po index b0dab9202..efcc38084 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -13,12 +13,12 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.5\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.5\n" #: ../Doc/library/zlib.rst:2 msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`" -msgstr ":mod:`zlib` --- Compression compatible avec :program:`gzip`" +msgstr ":mod:`zlib` — Compression compatible avec :program:`gzip`" #: ../Doc/library/zlib.rst:10 msgid "" @@ -33,7 +33,7 @@ msgstr "" "de ce module permettent la compression et la décompression via la " "bibliothèque *zlib*. La bibliothèque *zlib* a sa propre page web sur http://" "www.zlib.net. Il existe des incompatibilités connues entre le module Python " -"et les versions de la bibliothèque *zlib* plus anciennes que la 1.1.3 ; " +"et les versions de la bibliothèque *zlib* plus anciennes que la 1.1.3 ; " "1.1.3 contient des failles de sécurité et nous recommandons d'utiliser " "plutôt la version 1.14 ou plus récente." @@ -44,8 +44,8 @@ msgid "" "consult the zlib manual at http://www.zlib.net/manual.html for authoritative " "information." msgstr "" -"les fonctions *zlib* recèlent de nombreuses options et il est nécessaire de " -"suivre un ordre précis. Cette documentation n'a pas pour but de couvrir la " +"Les fonctions *zlib* recèlent de nombreuses options et il est nécessaire de " +"suivre un ordre précis. Cette documentation n'a pas pour but de couvrir la " "globalité des possibilités. Aussi, veuillez consulter le manuel *zlib* en " "ligne sur http://www.zlib.net/manual.html pour compléter davantage son " "utilisation." @@ -79,10 +79,10 @@ msgstr "" "Calcule une somme de contrôle Adler-32 de *data* (une somme de contrôle " "Adler-32 est aussi fiable qu'un CRC32 mais peut être calculée bien plus " "rapidement). Le résultat produit est un entier non signé de 32-bit. Si " -"*value* est défini, il devient la valeur initiale de la somme de contrôle ; " -"sinon une valeur par défaut de 1 est utilisée. Définir *value* permet de " +"*value* est défini, il devient la valeur initiale de la somme de contrôle ; " +"sinon une valeur par défaut de 1 est utilisée. Définir *value* permet de " "calculer une somme de contrôle continue pendant la concaténation de " -"plusieurs entrées. Cet algorithme n'a aucune garantie cryptographique " +"plusieurs entrées. Cet algorithme n'a aucune garantie cryptographique " "puissante, et ne doit pas être utilisé ni pour l'authentification, ni pour " "des signatures numériques. Conçu comme un algorithme de somme de contrôle, " "il n'est pas adapté pour une utilisation sous forme de clé de hachage " @@ -93,7 +93,7 @@ msgid "" "Always returns an unsigned value. To generate the same numeric value across " "all Python versions and platforms, use ``adler32(data) & 0xffffffff``." msgstr "" -"Renvoie une valeur non-signée. Pour produire la même valeur avec toutes les " +"Renvoie une valeur non-signée. Pour produire la même valeur avec toutes les " "versions de Python sur différentes plateformes, utilisez ``adler32(data) & " "0xffffffff``." @@ -111,7 +111,7 @@ msgstr "" "Compresse les octets contenus dans *data*, renvoie un objet *bytes* " "contenant les données compressées. *level* permet d'ajuster le niveau de " "compression, ce doit être un nombre entier compris entre ``0`` et ``9`` ou " -"``-1`` ; ``1`` étant plus rapide et procède à une compression légère, ``9`` " +"``-1`` ; ``1`` étant plus rapide et procède à une compression légère, ``9`` " "est plus lent mais compresse plus fortement. ``0`` n'effectue aucune " "compression. La valeur par défaut est ``-1`` (*Z_DEFAULT_COMPRESSION*). " "*Z_DEFAULT_COMPRESSION* donne une valeur par défaut proposant un équilibre " @@ -176,9 +176,9 @@ msgid "" "specific header and trailer." msgstr "" "De +9 à +15 : le logarithme binaire de la taille du tampon, par conséquent " -"compris entre 512 et 32768. Des valeurs plus grandes produisent de " -"meilleures compressions au dépens d'une utilisation mémoire plus grande. Le " -"résultat final inclus des en-tête et des blocs spécifiques à *zlib*." +"compris entre 512 et 32 768. Des valeurs plus grandes produisent de " +"meilleures compressions aux dépens d'une utilisation mémoire plus grande. Le " +"résultat final inclus des en-têtes et des blocs spécifiques à *zlib*." #: ../Doc/library/zlib.rst:89 msgid "" @@ -195,7 +195,7 @@ msgid "" "checksum in the output." msgstr "" "De +25 à +31 = 16 + (9 à 15) : utilise les 4 bits de poids faible comme " -"logarithme binaire de la taille du tampon, tout en incluant une entête :" +"logarithme binaire de la taille du tampon, tout en incluant un entête :" "program:`gzip` et une somme de contrôle finale." #: ../Doc/library/zlib.rst:97 @@ -248,9 +248,9 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" "Calcule la somme de contrôle CRC (*Cyclic Redundancy Check* en anglais) de " -"l'argument *data*. Il renvoie un entier non signé de 32 bits. Si l'argument " +"l'argument *data*. Il renvoie un entier non signé de 32 bits. Si l'argument " "*value* est présent, il permet de définir la valeur de départ de la somme de " -"contrôle. Sinon, la valeur par défaut est 0. L'argument *value* permet de " +"contrôle. Sinon, la valeur par défaut est 0. L'argument *value* permet de " "calculer la somme de contrôle glissante d'une concaténation de données. " "L'algorithme n'est pas fort d'un point de vue cryptographique, et ne doit " "pas être utilisé pour l'authentification ou des signatures numériques. Cet " @@ -274,10 +274,10 @@ msgid "" "initial size of the output buffer. Raises the :exc:`error` exception if any " "error occurs." msgstr "" -"Décompresse les octets de *data*, renvoyant un objet *bytes* contenant les " +"Décompresse les octets de *data*, renvoyant un objet *bytes* contenant les " "données décompressées. Le paramètre *wbits* dépend du format des données " "compressées, et est abordé plus loin. Si l'argument *bufsize* est défini, il " -"est utilisé comme taille initiale du tampon de sortie. En cas d'erreur, " +"est utilisé comme taille initiale du tampon de sortie. En cas d'erreur, " "l'exception :exc:`error` est levée." #: ../Doc/library/zlib.rst:145 @@ -380,8 +380,8 @@ msgid "" "the same meaning as `described for decompress() <#decompress-wbits>`__." msgstr "" "Le paramètre *wbits* contrôle la taille du tampon, et détermine quel format " -"d'en-tête et de bloc sont prévus. Il a la même signification que `décrit " -"pour decompress() <#decompress-wbits>`__." +"d'en-tête et de bloc sont prévus. Il a la même signification que décrit pour " +"`decompress() <#decompress-wbits>`__." #: ../Doc/library/zlib.rst:190 msgid "" @@ -420,8 +420,8 @@ msgid "" "input may be kept in internal buffers for later processing." msgstr "" "Compresse *data* et renvoie au moins une partie des données compressées sous " -"forme d'objet *bytes*. Ces données doivent être concaténées à la suite des " -"appels précédant à :meth:`compress`. Certaines entrées peuvent être " +"forme d'objet *bytes*. Ces données doivent être concaténées à la suite des " +"appels précédant à :meth:`compress`. Certaines entrées peuvent être " "conservées dans des tampons internes pour un traitement ultérieur." #: ../Doc/library/zlib.rst:217 @@ -442,7 +442,7 @@ msgstr "" "L'argument *mode* accepte l'une des constantes suivantes : :const:" "`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:" "`Z_FULL_FLUSH`, :const:`Z_BLOCK` (*zlib* 1.2.3.4), et :const:`Z_FINISH`, par " -"défaut :const:`Z_FINISH`. Sauf :Const:`Z_FINISH`, toutes les constantes " +"défaut :const:`Z_FINISH`. Sauf :const:`Z_FINISH`, toutes les constantes " "permettent de compresser d'autres chaînes d'octets, tandis que :const:" "`Z_FINISH` finalise le flux compressé et bloque toute autre tentative de " "compression. Suite à l'appel de la méthode :meth:`flush` avec l'argument " @@ -454,7 +454,7 @@ msgid "" "Returns a copy of the compression object. This can be used to efficiently " "compress a set of data that share a common initial prefix." msgstr "" -"Renvoie une copie de l'objet \"compresseur\". Utile pour compresser " +"Renvoie une copie de l'objet \"compresseur\". Utile pour compresser " "efficacement un ensemble de données qui partagent un préfixe initial commun." #: ../Doc/library/zlib.rst:234 @@ -549,7 +549,7 @@ msgstr "" "Toutes les entrées en attente sont traitées, et un objet *bytes* est " "renvoyé, contenant le reste des données à décompresser. Après l'appel à :" "meth:`flush`, la méthode :meth:`decompress` ne peut pas être rappelée. Il ne " -"reste qu'a détruire l'objet." +"reste qu'à détruire l'objet." #: ../Doc/library/zlib.rst:291 msgid "" diff --git a/license.po b/license.po index ef47256cd..b8e341c73 100644 --- a/license.po +++ b/license.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-27 10:02+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-05-23 19:50+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" #: ../Doc/license.rst:7 msgid "History and License" @@ -56,7 +57,7 @@ msgid "" "is a sponsoring member of the PSF." msgstr "" "En mai 2000, Guido et l'équipe de développement centrale de Python sont " -"parti vers BeOpen.com pour former l'équipe BeOpen PythonLabs. En octobre de " +"partis vers BeOpen.com pour former l'équipe BeOpen PythonLabs. En octobre de " "la même année, l'équipe de PythonLabs est partie vers Digital Creations " "(désormais Zope Corporation; voir http://www.zope.com/). En 2001, la Python " "Software Foundation (PSF, voir http://www.python.org/psf/) voit le jour. Il " @@ -206,7 +207,7 @@ msgstr "2.1.3" #: ../Doc/license.rst:57 msgid "2.2 and above" -msgstr "2.2 et supérieur" +msgstr "2.2 et ultérieure" #: ../Doc/license.rst:57 msgid "2001-now" @@ -223,9 +224,9 @@ msgstr "" "Compatible GPL ne signifie pas que nous distribuons Python sous licence GPL. " "Toutes les licences Python, excepté la licence GPL, vous permettent la " "distribution d'une version modifiée sans rendre open source ces changements. " -"La licence \"compatible GPL\" rend possible la diffusion de Python avec un " -"autre logiciel qui est lui, diffusé sous la licence GPL; les licences \"non " -"compatible GPL\" ne le peuvent pas." +"La licence « compatible GPL » rend possible la diffusion de Python avec un " +"autre logiciel qui est lui, diffusé sous la licence GPL ; les licences « non-" +"compatibles GPL » ne le peuvent pas." #: ../Doc/license.rst:68 msgid "" @@ -261,7 +262,7 @@ msgstr "LICENCE D'UTILISATION CWI POUR PYTHON 0.9.0 à 1.2" #: ../Doc/license.rst:262 msgid "Licenses and Acknowledgements for Incorporated Software" -msgstr "Licences et Remerciements pour les logiciels inclus" +msgstr "Licences et remerciements pour les logiciels tiers" #: ../Doc/license.rst:264 msgid "" @@ -311,7 +312,7 @@ msgid "" "notice::" msgstr "" "Les modules :mod:`asynchat` et :mod:`asyncore` contiennent la note " -"suivante : ::" +"suivante ::" #: ../Doc/license.rst:380 msgid "Cookie management" @@ -319,7 +320,7 @@ msgstr "Gestion de témoin (*cookie*)" #: ../Doc/license.rst:382 msgid "The :mod:`http.cookies` module contains the following notice::" -msgstr "Le module :mod:`http.cookies` contient la note suivante : ::" +msgstr "Le module :mod:`http.cookies` contient la note suivante ::" #: ../Doc/license.rst:408 msgid "Execution tracing" @@ -327,7 +328,7 @@ msgstr "Traçage d'exécution" #: ../Doc/license.rst:410 msgid "The :mod:`trace` module contains the following notice::" -msgstr "Le module :mod:`trace` contient la note suivante : ::" +msgstr "Le module :mod:`trace` contient la note suivante ::" #: ../Doc/license.rst:441 msgid "UUencode and UUdecode functions" @@ -352,7 +353,7 @@ msgstr "test_epoll" #: ../Doc/license.rst:506 msgid "The :mod:`test_epoll` module contains the following notice::" -msgstr "Le module :mod:`test_epoll` contient la note suivante : ::" +msgstr "Le module :mod:`test_epoll` contient la note suivante ::" #: ../Doc/license.rst:530 msgid "Select kqueue" @@ -364,7 +365,7 @@ msgid "" "interface::" msgstr "" "Le module :mod:`select` contient la note suivante pour l'interface " -"*kqueue* : ::" +"*kqueue* ::" #: ../Doc/license.rst:561 msgid "SipHash24" @@ -373,11 +374,11 @@ msgstr "SipHash24" #: ../Doc/license.rst:563 msgid "" "The file :file:`Python/pyhash.c` contains Marek Majkowski' implementation of " -"Dan Bernstein's SipHash24 algorithm. The contains the following note::" +"Dan Bernstein's SipHash24 algorithm. It contains the following note::" msgstr "" -"Le fichier :file:`Python/pyhash.c` contiens une implémentation par Marek " +"Le fichier :file:`Python/pyhash.c` contient une implémentation par Marek " "Majkowski de l'algorithme *SipHash24* de Dan Bernstein. Il contient la note " -"suivante : ::" +"suivante ::" #: ../Doc/license.rst:590 msgid "strtod and dtoa" @@ -392,10 +393,10 @@ msgid "" "following copyright and licensing notice::" msgstr "" "Le fichier :file:`Python/dtoa.c`, qui fournit les fonctions ``dtoa`` et " -"``strtod`` pour la conversions de *doubles* C vers et depuis les chaînes, et " -"tiré d'un fichier du même nom par David M. Gay, actuellement disponible sur " +"``strtod`` pour la conversion de *doubles* C vers et depuis les chaînes, est " +"tiré d'un fichier du même nom par David M. Gay, actuellement disponible sur " "http://www.netlib.org/fp/. Le fichier original, tel que récupéré le 16 mars " -"2009, contiens la licence suivante : ::" +"2009, contient la licence suivante ::" #: ../Doc/license.rst:620 msgid "OpenSSL" diff --git a/make-merge.sh b/make-merge.sh new file mode 100755 index 000000000..11ace5a22 --- /dev/null +++ b/make-merge.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +rm -rf /tmp/cpython +git clone --depth 1 --branch 3.7 --single-branch https://github.com/python/cpython /tmp/cpython + +CPYTHON_LATEST_SHA=$(git -C /tmp/cpython rev-parse --short HEAD) + +git checkout -b make-merge-$CPYTHON_LATEST_SHA + +sed -i "s/COMMIT=[a-z0-9]*/COMMIT=$CPYTHON_LATEST_SHA/" .travis.yml + +make merge + +pip install -U pyhub-pr + +git add -A + +git commit -m "merge pot files." + +git push --set-upstream origin make-merge-$CPYTHON_LATEST_SHA + +pyhub_pr --organisation python --repo python-docs-fr --token $GITHUB_TOKEN --title "Merge from upstream doc" --body "This PR was created from the command line with pyhub-pr." --head $TOKEN_OWNER_USERNAME:make-merge-$(git rev-parse --short HEAD) diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index be64945de..02f04a0d7 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-08-03 19:11+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-12-24 14:22+0100\n" +"PO-Revision-Date: 2019-06-08 15:20+0200\n" +"Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -26,7 +26,7 @@ msgid "" "compound statements span multiple lines, although in simple incarnations a " "whole compound statement may be contained in one line." msgstr "" -"Les instructions composées contiennent d'autres (groupes d’) instructions ; " +"Les instructions composées contiennent d'autres (groupes d’) instructions ; " "elles affectent ou contrôlent l'exécution de ces autres instructions d'une " "manière ou d'une autre. En général, une instruction composée couvre " "plusieurs lignes bien que, dans sa forme la plus simple, une instruction " @@ -46,10 +46,10 @@ msgstr "" "`try` spécifie des gestionnaires d'exception et du code de nettoyage pour un " "groupe d'instructions, tandis que l'instruction :keyword:`with` permet " "l'exécution de code d'initialisation et de finalisation autour d'un bloc de " -"code. Les définitions de fonctions et de classes sont également, au sens " +"code. Les définitions de fonctions et de classes sont également, au sens " "syntaxique, des instructions composées." -#: ../Doc/reference/compound_stmts.rst:25 +#: ../Doc/reference/compound_stmts.rst:26 msgid "" "A compound statement consists of one or more 'clauses.' A clause consists " "of a header and a 'suite.' The clause headers of a particular compound " @@ -63,21 +63,21 @@ msgid "" "clear to which :keyword:`if` clause a following :keyword:`else` clause would " "belong::" msgstr "" -"Une instruction composée comporte une ou plusieurs \"clauses\". Une clause " -"se compose d'un en-tête et d'une \"suite\". Les en-têtes des clauses d'une " +"Une instruction composée comporte une ou plusieurs « clauses ». Une clause " +"se compose d'un en-tête et d'une « suite ». Les en-têtes des clauses d'une " "instruction composée particulière sont toutes placées au même niveau " "d'indentation. Chaque en-tête de clause commence par un mot-clé spécifique " -"et se termine par le caractère deux-points (`:`) ; une suite est un groupe " -"d'instructions contrôlées par une clause ; une suite se compose, après les " +"et se termine par le caractère deux-points (`:`) ; une suite est un groupe " +"d'instructions contrôlées par une clause ; une suite se compose, après les " "deux points de l'en-tête, soit d'une ou plusieurs instructions simples " "séparées par des points-virgules si elles sont sur la même ligne que l'en-" "tête, soit d'une ou plusieurs instructions en retrait sur les lignes " "suivantes. Seule cette dernière forme d'une suite peut contenir des " "instructions composées ; ce qui suit n'est pas licite, principalement parce " "qu'il ne serait pas clair de savoir à quelle clause :keyword:`if` se " -"rapporterait une clause :keyword:`else` placée en fin de ligne :" +"rapporterait une clause :keyword:`else` placée en fin de ligne ::" -#: ../Doc/reference/compound_stmts.rst:38 +#: ../Doc/reference/compound_stmts.rst:39 msgid "" "Also note that the semicolon binds tighter than the colon in this context, " "so that in the following example, either all or none of the :func:`print` " @@ -85,13 +85,13 @@ msgid "" msgstr "" "Notez également que le point-virgule se lie plus étroitement que le deux-" "points dans ce contexte, de sorte que dans l'exemple suivant, soit tous les " -"appels :func:`print` sont exécutés, soit aucun ne l'est :" +"appels :func:`print` sont exécutés, soit aucun ne l'est ::" -#: ../Doc/reference/compound_stmts.rst:44 +#: ../Doc/reference/compound_stmts.rst:45 msgid "Summarizing:" msgstr "En résumé :" -#: ../Doc/reference/compound_stmts.rst:66 +#: ../Doc/reference/compound_stmts.rst:67 msgid "" "Note that statements always end in a ``NEWLINE`` possibly followed by a " "``DEDENT``. Also note that optional continuation clauses always begin with " @@ -107,7 +107,7 @@ msgstr "" "Python en exigeant que des instructions :keyword:`if` imbriquées soient " "indentées les unes par rapport aux autres)." -#: ../Doc/reference/compound_stmts.rst:72 +#: ../Doc/reference/compound_stmts.rst:73 msgid "" "The formatting of the grammar rules in the following sections places each " "clause on a separate line for clarity." @@ -115,9 +115,9 @@ msgstr "" "L'agencement des règles de grammaire dans les sections qui suivent place " "chaque clause sur une ligne séparée pour plus de clarté." -#: ../Doc/reference/compound_stmts.rst:81 -msgid "The :keyword:`if` statement" -msgstr "L'instruction :keyword:`if`" +#: ../Doc/reference/compound_stmts.rst:82 +msgid "The :keyword:`!if` statement" +msgstr "L'instruction :keyword:`!if`" #: ../Doc/reference/compound_stmts.rst:90 msgid "The :keyword:`if` statement is used for conditional execution:" @@ -142,8 +142,8 @@ msgstr "" "si elle existe, est exécutée." #: ../Doc/reference/compound_stmts.rst:107 -msgid "The :keyword:`while` statement" -msgstr "L'instruction :keyword:`while`" +msgid "The :keyword:`!while` statement" +msgstr "L'instruction :keyword:`!while`" #: ../Doc/reference/compound_stmts.rst:115 msgid "" @@ -157,31 +157,31 @@ msgstr "" msgid "" "This repeatedly tests the expression and, if it is true, executes the first " "suite; if the expression is false (which may be the first time it is tested) " -"the suite of the :keyword:`else` clause, if present, is executed and the " +"the suite of the :keyword:`!else` clause, if present, is executed and the " "loop terminates." msgstr "" "Python évalue l'expression de manière répétée et, tant qu'elle est vraie, " -"exécute la première suite ; si l'expression est fausse (ce qui peut arriver " -"même lors du premier test), la suite de la clause :keyword:`else`, si elle " +"exécute la première suite ; si l'expression est fausse (ce qui peut arriver " +"même lors du premier test), la suite de la clause :keyword:`!else`, si elle " "existe, est exécutée et la boucle se termine." #: ../Doc/reference/compound_stmts.rst:131 msgid "" "A :keyword:`break` statement executed in the first suite terminates the loop " -"without executing the :keyword:`else` clause's suite. A :keyword:`continue` " -"statement executed in the first suite skips the rest of the suite and goes " -"back to testing the expression." +"without executing the :keyword:`!else` clause's suite. A :keyword:" +"`continue` statement executed in the first suite skips the rest of the suite " +"and goes back to testing the expression." msgstr "" "Une instruction :keyword:`break` exécutée dans la première suite termine la " -"boucle sans exécuter la suite de la clause :keyword:`else`. Une instruction :" -"keyword:`continue` exécutée dans la première suite saute le reste de la " -"suite et retourne au test de l'expression." +"boucle sans exécuter la suite de la clause :keyword:`!else`. Une " +"instruction :keyword:`continue` exécutée dans la première suite saute le " +"reste de la suite et retourne au test de l'expression." #: ../Doc/reference/compound_stmts.rst:140 -msgid "The :keyword:`for` statement" -msgstr "L'instruction :keyword:`for`" +msgid "The :keyword:`!for` statement" +msgstr "L'instruction :keyword:`!for`" -#: ../Doc/reference/compound_stmts.rst:153 +#: ../Doc/reference/compound_stmts.rst:151 msgid "" "The :keyword:`for` statement is used to iterate over the elements of a " "sequence (such as a string, tuple or list) or other iterable object:" @@ -190,7 +190,7 @@ msgstr "" "séquence (par exemple une chaîne, un tuple ou une liste) ou un autre objet " "itérable :" -#: ../Doc/reference/compound_stmts.rst:160 +#: ../Doc/reference/compound_stmts.rst:158 msgid "" "The expression list is evaluated once; it should yield an iterable object. " "An iterator is created for the result of the ``expression_list``. The suite " @@ -199,7 +199,7 @@ msgid "" "using the standard rules for assignments (see :ref:`assignment`), and then " "the suite is executed. When the items are exhausted (which is immediately " "when the sequence is empty or an iterator raises a :exc:`StopIteration` " -"exception), the suite in the :keyword:`else` clause, if present, is " +"exception), the suite in the :keyword:`!else` clause, if present, is " "executed, and the loop terminates." msgstr "" "La liste des expressions (*expression_list* dans la grammaire ci-dessus) est " @@ -208,27 +208,27 @@ msgstr "" "exécutée une fois pour chaque élément fourni par l'itérateur, dans l'ordre " "renvoyé par l'itérateur. Chaque élément est assigné, à tour de rôle, à la " "liste cible (*target_list* dans la grammaire ci-dessus) en utilisant les " -"règles des assignations (voir :ref:`assignment`), et ensuite la suite est " +"règles des assignations (voir :ref:`assignment`), et ensuite la suite est " "exécutée. Lorsque les éléments sont épuisés (ce qui est immédiat lorsque la " "séquence est vide ou si un itérateur lève une exception :exc:" -"`StopIteration`), la suite de la clause :keyword:`else`, si elle existe, est " -"exécutée et la boucle se termine." +"`StopIteration`), la suite de la clause :keyword:`!else`, si elle existe, " +"est exécutée et la boucle se termine." -#: ../Doc/reference/compound_stmts.rst:173 +#: ../Doc/reference/compound_stmts.rst:171 msgid "" "A :keyword:`break` statement executed in the first suite terminates the loop " -"without executing the :keyword:`else` clause's suite. A :keyword:`continue` " -"statement executed in the first suite skips the rest of the suite and " -"continues with the next item, or with the :keyword:`else` clause if there is " -"no next item." +"without executing the :keyword:`!else` clause's suite. A :keyword:" +"`continue` statement executed in the first suite skips the rest of the suite " +"and continues with the next item, or with the :keyword:`!else` clause if " +"there is no next item." msgstr "" "Une instruction :keyword:`break` exécutée dans la première suite termine la " -"boucle sans exécuter la suite de la clause :keyword:`else`. Une instruction :" -"keyword:`continue` exécutée dans la première suite saute le reste de la " -"suite et continue avec l'élément suivant, ou avec la clause :keyword:`else` " -"s'il n'y a pas d'élément suivant." +"boucle sans exécuter la suite de la clause :keyword:`!else`. Une " +"instruction :keyword:`continue` exécutée dans la première suite saute le " +"reste de la suite et continue avec l'élément suivant, ou avec la clause :" +"keyword:`!else` s'il n'y a pas d'élément suivant." -#: ../Doc/reference/compound_stmts.rst:179 +#: ../Doc/reference/compound_stmts.rst:177 msgid "" "The for-loop makes assignments to the variables(s) in the target list. This " "overwrites all previous assignments to those variables including those made " @@ -238,7 +238,7 @@ msgstr "" "ce qui écrase toutes les affectations antérieures de ces variables, y " "compris celles effectuées dans la suite de la boucle ``for`` ::" -#: ../Doc/reference/compound_stmts.rst:193 +#: ../Doc/reference/compound_stmts.rst:191 msgid "" "Names in the target list are not deleted when the loop is finished, but if " "the sequence is empty, they will not have been assigned to at all by the " @@ -248,12 +248,12 @@ msgid "" msgstr "" "Les noms dans la liste cible ne sont pas supprimés lorsque la boucle est " "terminée mais, si la séquence est vide, ils n'auront pas du tout été " -"assignés par la boucle. Petite astuce : la fonction intégrée :func:`range` " +"assignés par la boucle. Petite astuce : la fonction native :func:`range` " "renvoie un itérateur sur des entiers approprié pour émuler la boucle " -"classique en Pascal sur des entiers ``for i := a to b do`` ; par exemple, " +"classique en Pascal sur des entiers ``for i := a to b do`` ; par exemple, " "``list(range(3))`` renvoie la liste ``[0, 1, 2]``." -#: ../Doc/reference/compound_stmts.rst:205 +#: ../Doc/reference/compound_stmts.rst:203 msgid "" "There is a subtlety when the sequence is being modified by the loop (this " "can only occur for mutable sequences, e.g. lists). An internal counter is " @@ -268,21 +268,21 @@ msgid "" "using a slice of the whole sequence, e.g., ::" msgstr "" "Il y a une subtilité lorsque la séquence est modifiée par la boucle (cela ne " -"peut se produire que pour les séquences mutables, c'est-à-dire les listes). " +"peut se produire que pour les séquences mutables, c'est-à-dire les listes). " "Un compteur interne est utilisé pour savoir quel est l'élément suivant, et " -"ce compteur est incrémenté à chaque itération. Lorsqu'il a atteint la " +"ce compteur est incrémenté à chaque itération. Lorsqu'il a atteint la " "longueur de la séquence, la boucle se termine. Cela signifie que si la suite " "supprime l'élément courant (ou un élément précédent) de la séquence, " "l'élément suivant est sauté (puisqu'il reçoit l'indice de l'élément courant " -"qui a déjà été traité). De même, si la suite insère un élément avant " +"qui a déjà été traité). De même, si la suite insère un élément avant " "l'élément courant, l'élément courant est traité une deuxième fois à la " "prochaine itération. Ceci peut conduire à de méchants bugs, que vous pouvez " "éviter en effectuant une copie temporaire d'une tranche ou de la séquence " -"complète, par exemple ::" +"complète, par exemple ::" -#: ../Doc/reference/compound_stmts.rst:226 -msgid "The :keyword:`try` statement" -msgstr "L'instruction :keyword:`try`" +#: ../Doc/reference/compound_stmts.rst:224 +msgid "The :keyword:`!try` statement" +msgstr "L'instruction :keyword:`!try`" #: ../Doc/reference/compound_stmts.rst:234 msgid "" @@ -290,32 +290,32 @@ msgid "" "code for a group of statements:" msgstr "" "L'instruction :keyword:`try` spécifie les gestionnaires d'exception ou le " -"code de nettoyage pour un groupe d'instructions :" +"code de nettoyage pour un groupe d'instructions :" #: ../Doc/reference/compound_stmts.rst:247 msgid "" "The :keyword:`except` clause(s) specify one or more exception handlers. When " "no exception occurs in the :keyword:`try` clause, no exception handler is " -"executed. When an exception occurs in the :keyword:`try` suite, a search for " -"an exception handler is started. This search inspects the except clauses in " -"turn until one is found that matches the exception. An expression-less " -"except clause, if present, must be last; it matches any exception. For an " -"except clause with an expression, that expression is evaluated, and the " -"clause matches the exception if the resulting object is \"compatible\" with " -"the exception. An object is compatible with an exception if it is the class " -"or a base class of the exception object or a tuple containing an item " -"compatible with the exception." +"executed. When an exception occurs in the :keyword:`!try` suite, a search " +"for an exception handler is started. This search inspects the except " +"clauses in turn until one is found that matches the exception. An " +"expression-less except clause, if present, must be last; it matches any " +"exception. For an except clause with an expression, that expression is " +"evaluated, and the clause matches the exception if the resulting object is " +"\"compatible\" with the exception. An object is compatible with an " +"exception if it is the class or a base class of the exception object or a " +"tuple containing an item compatible with the exception." msgstr "" "La ou les clauses :keyword:`except` spécifient un ou plusieurs gestionnaires " "d'exceptions. Si aucune exception ne se produit dans la clause :keyword:" "`try`, aucun gestionnaire d'exception n'est exécuté. Lorsqu'une exception se " -"produit dans la suite de :keyword:`try`, Python recherche un gestionnaire " +"produit dans la suite de :keyword:`!try`, Python recherche un gestionnaire " "d'exception. Cette recherche inspecte les clauses ``except``, l'une après " "l'autre, jusqu'à trouver une correspondance. Une clause ``except`` vide " "(c'est-à-dire sans expression), si elle est présente, doit être la " -"dernière ; elle correspond à toute exception. Pour une clause ``except`` " +"dernière ; elle correspond à toute exception. Pour une clause ``except`` " "avec une expression, cette expression est évaluée et la clause correspond si " -"l'objet résultant est \"compatible\" avec l'exception. Un objet est réputé " +"l'objet résultant est « compatible » avec l'exception. Un objet est réputé " "compatible avec une exception s'il est la classe ou une classe de base de " "l'objet exception ou si c'est un tuple contenant un élément qui est " "compatible avec l'exception." @@ -327,7 +327,7 @@ msgid "" msgstr "" "Si aucune clause ``except`` ne correspond à l'exception, la recherche d'un " "gestionnaire d'exception se poursuit dans le code englobant et dans la pile " -"d'appels [#]_." +"d'appels. [#]_" #: ../Doc/reference/compound_stmts.rst:261 msgid "" @@ -343,10 +343,10 @@ msgstr "" "la pile d'appels (c'est traité comme si l'instruction :keyword:`try` avait " "levé l'exception)." -#: ../Doc/reference/compound_stmts.rst:266 +#: ../Doc/reference/compound_stmts.rst:268 msgid "" "When a matching except clause is found, the exception is assigned to the " -"target specified after the :keyword:`as` keyword in that except clause, if " +"target specified after the :keyword:`!as` keyword in that except clause, if " "present, and the except clause's suite is executed. All except clauses must " "have an executable block. When the end of this block is reached, execution " "continues normally after the entire try statement. (This means that if two " @@ -355,28 +355,28 @@ msgid "" "exception.)" msgstr "" "Lorsqu'une clause d'exception correspond, l'exception est assignée à la " -"cible spécifiée après le mot-clé :keyword:`as` dans cette clause ``except``, " -"si cette cible existe, et la suite de clause ``except`` est exécutée. " -"Toutes les clauses ``except`` doivent avoir un bloc exécutable. Lorsque la " -"fin de ce bloc est atteinte, l'exécution continue normalement après " -"l'ensemble de l'instruction ``try`` (cela signifie que si deux gestionnaires " -"imbriqués existent pour la même exception, et que l'exception se produit " -"dans la clause ``try`` du gestionnaire interne, le gestionnaire externe ne " -"gère pas l'exception)." +"cible spécifiée après le mot-clé :keyword:`!as` dans cette clause " +"``except``, si cette cible existe, et la suite de clause ``except`` est " +"exécutée. Toutes les clauses ``except`` doivent avoir un bloc exécutable. " +"Lorsque la fin de ce bloc est atteinte, l'exécution continue normalement " +"après l'ensemble de l'instruction ``try`` (cela signifie que si deux " +"gestionnaires imbriqués existent pour la même exception, et que l'exception " +"se produit dans la clause ``try`` du gestionnaire interne, le gestionnaire " +"externe ne gère pas l'exception)." -#: ../Doc/reference/compound_stmts.rst:274 +#: ../Doc/reference/compound_stmts.rst:276 msgid "" "When an exception has been assigned using ``as target``, it is cleared at " "the end of the except clause. This is as if ::" msgstr "" "Lorsqu'une exception a été assignée en utilisant ``as cible``, elle est " -"effacée à la fin de la clause ``except``. C'est comme si ::" +"effacée à la fin de la clause ``except``. C'est comme si ::" -#: ../Doc/reference/compound_stmts.rst:280 +#: ../Doc/reference/compound_stmts.rst:282 msgid "was translated to ::" -msgstr "avait été traduit en ::" +msgstr "avait été traduit en ::" -#: ../Doc/reference/compound_stmts.rst:288 +#: ../Doc/reference/compound_stmts.rst:290 msgid "" "This means the exception must be assigned to a different name to be able to " "refer to it after the except clause. Exceptions are cleared because with " @@ -391,7 +391,7 @@ msgstr "" "ce qui conduit à conserver tous les noms locaux de ce cadre en mémoire " "jusqu'au passage du ramasse-miettes." -#: ../Doc/reference/compound_stmts.rst:297 +#: ../Doc/reference/compound_stmts.rst:299 msgid "" "Before an except clause's suite is executed, details about the exception are " "stored in the :mod:`sys` module and can be accessed via :func:`sys." @@ -403,48 +403,52 @@ msgid "" msgstr "" "Avant l'exécution de la suite d'une clause ``except``, les détails de " "l'exception sont stockés dans le module :mod:`sys` et sont accessibles " -"*via* :func:`sys.exc_info`. :func:`sys.exc_info` renvoie un 3-uplet composé " +"*via* :func:`sys.exc_info`. :func:`sys.exc_info` renvoie un triplet composé " "de la classe de l'exception, de l'instance d'exception et d'un objet trace " "(voir la section :ref:`types`) identifiant le point du programme où " "l'exception est survenue. Les valeurs de :func:`sys.exc_info` sont remises à " "leurs anciennes valeurs (celles d'avant l'appel) au retour d'une fonction " "qui a géré une exception." -#: ../Doc/reference/compound_stmts.rst:311 +#: ../Doc/reference/compound_stmts.rst:313 msgid "" -"The optional :keyword:`else` clause is executed if and when control flows " -"off the end of the :keyword:`try` clause. [#]_ Exceptions in the :keyword:" -"`else` clause are not handled by the preceding :keyword:`except` clauses." +"The optional :keyword:`!else` clause is executed if the control flow leaves " +"the :keyword:`try` suite, no exception was raised, and no :keyword:" +"`return`, :keyword:`continue`, or :keyword:`break` statement was executed. " +"Exceptions in the :keyword:`!else` clause are not handled by the preceding :" +"keyword:`except` clauses." msgstr "" -"La clause optionnelle :keyword:`else` n'est exécutée que si l'exécution " -"atteint la fin de la clause :keyword:`try` [#]_. Les exceptions dans la " -"clause :keyword:`else` ne sont pas gérées par les clauses :keyword:`except` " -"qui la précèdent." +"La clause optionnelle :keyword:`!else` n'est exécutée que si l'exécution " +"atteint la fin de la clause :keyword:`try`, aucune exception n'a été levée, " +"et aucun :keyword:`return`, :keyword:`continue`, ou :keyword:`break` ont " +"étés exécutés. Les exceptions dans la clause :keyword:`!else` ne sont pas " +"gérées par les clauses :keyword:`except` précédentes." -#: ../Doc/reference/compound_stmts.rst:317 +#: ../Doc/reference/compound_stmts.rst:321 msgid "" "If :keyword:`finally` is present, it specifies a 'cleanup' handler. The :" "keyword:`try` clause is executed, including any :keyword:`except` and :" -"keyword:`else` clauses. If an exception occurs in any of the clauses and is " -"not handled, the exception is temporarily saved. The :keyword:`finally` " +"keyword:`!else` clauses. If an exception occurs in any of the clauses and " +"is not handled, the exception is temporarily saved. The :keyword:`!finally` " "clause is executed. If there is a saved exception it is re-raised at the " -"end of the :keyword:`finally` clause. If the :keyword:`finally` clause " +"end of the :keyword:`!finally` clause. If the :keyword:`!finally` clause " "raises another exception, the saved exception is set as the context of the " -"new exception. If the :keyword:`finally` clause executes a :keyword:`return` " -"or :keyword:`break` statement, the saved exception is discarded::" +"new exception. If the :keyword:`!finally` clause executes a :keyword:" +"`return` or :keyword:`break` statement, the saved exception is discarded::" msgstr "" "Si :keyword:`finally` est présente, elle spécifie un gestionnaire de " "\"nettoyage\". La clause :keyword:`try` est exécutée, y compris les clauses :" -"keyword:`except` et :keyword:`else`. Si une exception se produit dans l'une " +"keyword:`except` et :keyword:`!else`. Si une exception se produit dans l'une " "des clauses et n'est pas traitée, l'exception est temporairement " -"sauvegardée. La clause :keyword:`finally` est exécutée. S'il y a une " -"exception sauvegardée, elle est re-levée à la fin de la clause :keyword:" -"`finally`. Si la clause :keyword:`finally` lève une autre exception, " -"l'exception sauvegardée est définie comme le contexte de la nouvelle " -"exception. Si la clause :keyword:`finally` exécute une instruction :keyword:" -"`return` ou :keyword:`break`, l'exception sauvegardée est jetée ::" +"sauvegardée. La clause :keyword:`!finally` est exécutée. S'il y a une " +"exception sauvegardée, elle est levée à nouveau à la fin de la clause :" +"keyword:`!finally`. Si la clause :keyword:`!finally` lève une autre " +"exception, l'exception sauvegardée est définie comme le contexte de la " +"nouvelle exception. Si la clause :keyword:`!finally` exécute une " +"instruction :keyword:`return` ou :keyword:`break`, l'exception sauvegardée " +"est jetée ::" -#: ../Doc/reference/compound_stmts.rst:336 +#: ../Doc/reference/compound_stmts.rst:340 msgid "" "The exception information is not available to the program during execution " "of the :keyword:`finally` clause." @@ -452,36 +456,36 @@ msgstr "" "L'information relative à l'exception n'est pas disponible pour le programme " "pendant l'exécution de la clause :keyword:`finally`." -#: ../Doc/reference/compound_stmts.rst:344 +#: ../Doc/reference/compound_stmts.rst:348 msgid "" "When a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement " -"is executed in the :keyword:`try` suite of a :keyword:`try`...\\ :keyword:" -"`finally` statement, the :keyword:`finally` clause is also executed 'on the " -"way out.' A :keyword:`continue` statement is illegal in the :keyword:" -"`finally` clause. (The reason is a problem with the current implementation " +"is executed in the :keyword:`try` suite of a :keyword:`!try`...\\ :keyword:`!" +"finally` statement, the :keyword:`finally` clause is also executed 'on the " +"way out.' A :keyword:`continue` statement is illegal in the :keyword:`!" +"finally` clause. (The reason is a problem with the current implementation " "--- this restriction may be lifted in the future)." msgstr "" "Lorsqu'une instruction :keyword:`return`, :keyword:`break` ou :keyword:" "`continue` est exécutée dans la suite d'une instruction :keyword:`try` d'une " -"construction :keyword:`try`...\\ :keyword:`finally`, la clause :keyword:" +"construction :keyword:`!try`...\\ :keyword:`!finally`, la clause :keyword:" "`finally` est aussi exécutée à la sortie. Une instruction :keyword:" -"`continue` est illégale dans une clause :keyword:`finally` (la raison est " +"`continue` est illégale dans une clause :keyword:`!finally` (la raison est " "que l'implémentation actuelle pose problème --- il est possible que cette " "restriction soit levée dans le futur)." -#: ../Doc/reference/compound_stmts.rst:351 +#: ../Doc/reference/compound_stmts.rst:355 msgid "" "The return value of a function is determined by the last :keyword:`return` " "statement executed. Since the :keyword:`finally` clause always executes, a :" -"keyword:`return` statement executed in the :keyword:`finally` clause will " +"keyword:`!return` statement executed in the :keyword:`!finally` clause will " "always be the last one executed::" msgstr "" "La valeur de retour d'une fonction est déterminée par la dernière " -"instruction :keyword:`return` exécutée. Puisque la clause :keyword:" -"`finally` s'exécute toujours, une instruction :keyword:`return` exécutée " -"dans le :keyword:`finally` sera toujours la dernière clause exécutée ::" +"instruction :keyword:`return` exécutée. Puisque la clause :keyword:`finally` " +"s'exécute toujours, une instruction :keyword:`!return` exécutée dans le :" +"keyword:`!finally` sera toujours la dernière clause exécutée ::" -#: ../Doc/reference/compound_stmts.rst:365 +#: ../Doc/reference/compound_stmts.rst:369 msgid "" "Additional information on exceptions can be found in section :ref:" "`exceptions`, and information on using the :keyword:`raise` statement to " @@ -492,11 +496,11 @@ msgstr "" "informations relatives à l'utilisation de l'instruction :keyword:`raise` " "pour produire des exceptions." -#: ../Doc/reference/compound_stmts.rst:374 -msgid "The :keyword:`with` statement" -msgstr "L'instruction :keyword:`with`" +#: ../Doc/reference/compound_stmts.rst:378 +msgid "The :keyword:`!with` statement" +msgstr "L'instruction :keyword:`!with`" -#: ../Doc/reference/compound_stmts.rst:380 +#: ../Doc/reference/compound_stmts.rst:387 msgid "" "The :keyword:`with` statement is used to wrap the execution of a block with " "methods defined by a context manager (see section :ref:`context-managers`). " @@ -506,18 +510,18 @@ msgstr "" "L'instruction :keyword:`with` est utilisée pour encapsuler l'exécution d'un " "bloc avec des méthodes définies par un gestionnaire de contexte (voir la " "section :ref:`context-managers`). Cela permet d'utiliser de manière simple " -"le patron de conception classique :keyword:`try`....\\ :keyword:`except`..." -"\\ \\ :keyword:`finally`." +"le patron de conception classique :keyword:`try`…\\ :keyword:`except`…\\ :" +"keyword:`finally`." -#: ../Doc/reference/compound_stmts.rst:389 +#: ../Doc/reference/compound_stmts.rst:396 msgid "" "The execution of the :keyword:`with` statement with one \"item\" proceeds as " "follows:" msgstr "" -"L'exécution de l'instruction :keyword:`with` avec un seul \"élément" -"\" (*item* dans la grammaire) se déroule comme suit :" +"L'exécution de l'instruction :keyword:`with` avec un seul " +"« élément » (*item* dans la grammaire) se déroule comme suit :" -#: ../Doc/reference/compound_stmts.rst:391 +#: ../Doc/reference/compound_stmts.rst:398 msgid "" "The context expression (the expression given in the :token:`with_item`) is " "evaluated to obtain a context manager." @@ -525,17 +529,17 @@ msgstr "" "L'expression de contexte (l'expression donnée dans le :token:`with_item`) " "est évaluée pour obtenir un gestionnaire de contexte." -#: ../Doc/reference/compound_stmts.rst:394 +#: ../Doc/reference/compound_stmts.rst:401 msgid "The context manager's :meth:`__exit__` is loaded for later use." msgstr "" "La méthode :meth:`__exit__` du gestionnaire de contexte est chargée pour une " "utilisation ultérieure." -#: ../Doc/reference/compound_stmts.rst:396 +#: ../Doc/reference/compound_stmts.rst:403 msgid "The context manager's :meth:`__enter__` method is invoked." msgstr "La méthode :meth:`__enter__` du gestionnaire de contexte est invoquée." -#: ../Doc/reference/compound_stmts.rst:398 +#: ../Doc/reference/compound_stmts.rst:405 msgid "" "If a target was included in the :keyword:`with` statement, the return value " "from :meth:`__enter__` is assigned to it." @@ -544,7 +548,7 @@ msgstr "" "l'instruction :keyword:`with`, la valeur de retour de :meth:`__enter__` lui " "est assignée." -#: ../Doc/reference/compound_stmts.rst:403 +#: ../Doc/reference/compound_stmts.rst:410 msgid "" "The :keyword:`with` statement guarantees that if the :meth:`__enter__` " "method returns without an error, then :meth:`__exit__` will always be " @@ -558,23 +562,23 @@ msgstr "" "cible, elle est traitée de la même façon qu'une erreur se produisant dans la " "suite. Voir l'étape 6 ci-dessous." -#: ../Doc/reference/compound_stmts.rst:409 +#: ../Doc/reference/compound_stmts.rst:416 msgid "The suite is executed." msgstr "La suite est exécutée." -#: ../Doc/reference/compound_stmts.rst:411 +#: ../Doc/reference/compound_stmts.rst:418 msgid "" "The context manager's :meth:`__exit__` method is invoked. If an exception " "caused the suite to be exited, its type, value, and traceback are passed as " "arguments to :meth:`__exit__`. Otherwise, three :const:`None` arguments are " "supplied." msgstr "" -"La méthode :meth:`__exit__` du gestionnaire de contexte est invoquée. Si " -"une exception a causé la sortie de la suite, son type, sa valeur et sa pile " +"La méthode :meth:`__exit__` du gestionnaire de contexte est invoquée. Si une " +"exception a causé la sortie de la suite, son type, sa valeur et sa pile " "d'appels sont passés en arguments à :meth:`__exit__`. Sinon, trois " "arguments :const:`None` sont fournis." -#: ../Doc/reference/compound_stmts.rst:416 +#: ../Doc/reference/compound_stmts.rst:423 msgid "" "If the suite was exited due to an exception, and the return value from the :" "meth:`__exit__` method was false, the exception is reraised. If the return " @@ -582,12 +586,12 @@ msgid "" "the statement following the :keyword:`with` statement." msgstr "" "Si l'on est sorti de la suite en raison d'une exception et que la valeur de " -"retour de la méthode :meth:`__exit__` était fausse, l'exception est re-" -"levée. Si la valeur de retour était vraie, l'exception est supprimée et " +"retour de la méthode :meth:`__exit__` était fausse, l'exception est levée à " +"nouveau. Si la valeur de retour était vraie, l'exception est supprimée et " "l'exécution continue avec l'instruction qui suit l'instruction :keyword:" "`with`." -#: ../Doc/reference/compound_stmts.rst:421 +#: ../Doc/reference/compound_stmts.rst:428 msgid "" "If the suite was exited for any reason other than an exception, the return " "value from :meth:`__exit__` is ignored, and execution proceeds at the normal " @@ -597,7 +601,7 @@ msgstr "" "valeur de retour de :meth:`__exit__` est ignorée et l'exécution se poursuit " "à l'endroit normal pour le type de sortie prise." -#: ../Doc/reference/compound_stmts.rst:425 +#: ../Doc/reference/compound_stmts.rst:432 msgid "" "With more than one item, the context managers are processed as if multiple :" "keyword:`with` statements were nested::" @@ -605,20 +609,20 @@ msgstr "" "Avec plus d'un élément, les gestionnaires de contexte sont traités comme si " "plusieurs instructions :keyword:`with` étaient imbriquées ::" -#: ../Doc/reference/compound_stmts.rst:431 -#: ../Doc/reference/compound_stmts.rst:636 +#: ../Doc/reference/compound_stmts.rst:438 +#: ../Doc/reference/compound_stmts.rst:653 msgid "is equivalent to ::" -msgstr "est équivalente à : ::" +msgstr "est équivalente à ::" -#: ../Doc/reference/compound_stmts.rst:437 +#: ../Doc/reference/compound_stmts.rst:444 msgid "Support for multiple context expressions." msgstr "Prise en charge de multiples expressions de contexte." -#: ../Doc/reference/compound_stmts.rst:443 +#: ../Doc/reference/compound_stmts.rst:450 msgid ":pep:`343` - The \"with\" statement" -msgstr ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` — L'instruction « *with* »" -#: ../Doc/reference/compound_stmts.rst:443 +#: ../Doc/reference/compound_stmts.rst:450 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -626,11 +630,11 @@ msgstr "" "La spécification, les motivations et des exemples de l'instruction :keyword:" "`with` en Python." -#: ../Doc/reference/compound_stmts.rst:454 +#: ../Doc/reference/compound_stmts.rst:461 msgid "Function definitions" msgstr "Définition de fonctions" -#: ../Doc/reference/compound_stmts.rst:466 +#: ../Doc/reference/compound_stmts.rst:476 msgid "" "A function definition defines a user-defined function object (see section :" "ref:`types`):" @@ -638,7 +642,7 @@ msgstr "" "Une définition de fonction définit un objet fonction allogène (voir la " "section :ref:`types`) :" -#: ../Doc/reference/compound_stmts.rst:484 +#: ../Doc/reference/compound_stmts.rst:494 msgid "" "A function definition is an executable statement. Its execution binds the " "function name in the current local namespace to a function object (a wrapper " @@ -647,21 +651,21 @@ msgid "" "used when the function is called." msgstr "" "Une définition de fonction est une instruction qui est exécutée. Son " -"exécution lie le nom de la fonction, dans l'espace de noms local courant, à " -"un objet fonction (un objet qui encapsule le code exécutable de la " -"fonction). Cet objet fonction contient une référence à l'espace des noms " +"exécution lie le nom de la fonction, dans l'espace de nommage local courant, " +"à un objet fonction (un objet qui encapsule le code exécutable de la " +"fonction). Cet objet fonction contient une référence à l'espace des noms " "globaux courant comme espace des noms globaux à utiliser lorsque la fonction " "est appelée." -#: ../Doc/reference/compound_stmts.rst:490 +#: ../Doc/reference/compound_stmts.rst:500 msgid "" "The function definition does not execute the function body; this gets " "executed only when the function is called. [#]_" msgstr "" -"La définition de la fonction n'exécute pas le corps de la fonction ; elle " -"n'est exécutée que lorsque la fonction est appelée [#]_." +"La définition de la fonction n'exécute pas le corps de la fonction ; elle " +"n'est exécutée que lorsque la fonction est appelée. [#]_" -#: ../Doc/reference/compound_stmts.rst:496 +#: ../Doc/reference/compound_stmts.rst:506 msgid "" "A function definition may be wrapped by one or more :term:`decorator` " "expressions. Decorator expressions are evaluated when the function is " @@ -672,27 +676,27 @@ msgid "" "example, the following code ::" msgstr "" "Une définition de fonction peut être encapsulée dans une ou plusieurs " -"expressions :term:`decorator` ; les décorateurs sont évalués lorsque la " +"expressions :term:`decorator` ; les décorateurs sont évalués lorsque la " "fonction est définie, dans la portée qui contient la définition de " -"fonction ; le résultat doit être un appelable, qui est invoqué avec l'objet " -"fonction comme seul argument ; la valeur renvoyée est liée au nom de la " +"fonction ; le résultat doit être un appelable, qui est invoqué avec l'objet " +"fonction comme seul argument ; la valeur renvoyée est liée au nom de la " "fonction en lieu et place de l'objet fonction. Lorsqu'il y a plusieurs " "décorateurs, ils sont appliqués par imbrication ; par exemple, le code " -"suivant ::" +"suivant ::" -#: ../Doc/reference/compound_stmts.rst:507 -#: ../Doc/reference/compound_stmts.rst:663 +#: ../Doc/reference/compound_stmts.rst:517 +#: ../Doc/reference/compound_stmts.rst:683 msgid "is roughly equivalent to ::" -msgstr "est à peu près équivalent à ::" +msgstr "est à peu près équivalent à ::" -#: ../Doc/reference/compound_stmts.rst:512 +#: ../Doc/reference/compound_stmts.rst:522 msgid "" "except that the original function is not temporarily bound to the name " "``func``." msgstr "" "sauf que la fonction originale n'est pas temporairement liée au nom ``func``." -#: ../Doc/reference/compound_stmts.rst:518 +#: ../Doc/reference/compound_stmts.rst:529 msgid "" "When one or more :term:`parameters ` have the form *parameter* " "``=`` *expression*, the function is said to have \"default parameter values." @@ -703,15 +707,15 @@ msgid "" "syntactic restriction that is not expressed by the grammar." msgstr "" "Lorsqu'un ou plusieurs :term:`paramètres ` sont de la forme " -"*parameter* ``=`` *expression*, on dit que la fonction a des \"valeurs de " -"paramètres par défaut\". Pour un paramètre avec une valeur par défaut, l’:" +"*parameter* ``=`` *expression*, on dit que la fonction a des « valeurs de " +"paramètres par défaut ». Pour un paramètre avec une valeur par défaut, l’:" "term:`argument` correspondant peut être omis lors de l'appel, la valeur par " "défaut du paramètre est alors utilisée. Si un paramètre a une valeur par " "défaut, tous les paramètres suivants jusqu'à \"``*``\" doivent aussi avoir " -"une valeur par défaut --- ceci est une restriction syntaxique qui n'est pas " +"une valeur par défaut — ceci est une restriction syntaxique qui n'est pas " "exprimée dans la grammaire." -#: ../Doc/reference/compound_stmts.rst:526 +#: ../Doc/reference/compound_stmts.rst:537 msgid "" "**Default parameter values are evaluated from left to right when the " "function definition is executed.** This means that the expression is " @@ -726,7 +730,7 @@ msgstr "" "**Les valeurs par défaut des paramètres sont évaluées de la gauche vers la " "droite quand la définition de la fonction est exécutée**. Cela signifie que " "l'expression est évaluée une fois, lorsque la fonction est définie, et que " -"c'est la même valeur \"pré-calculée\" qui est utilisée à chaque appel. C'est " +"c'est la même valeur « pré-calculée » qui est utilisée à chaque appel. C'est " "particulièrement important à comprendre lorsqu'un paramètre par défaut est " "un objet mutable, tel qu'une liste ou un dictionnaire : si la fonction " "modifie l'objet (par exemple en ajoutant un élément à une liste), la valeur " @@ -734,7 +738,7 @@ msgstr "" "d'éviter cet écueil est d'utiliser ``None`` par défaut et de tester " "explicitement la valeur dans le corps de la fonction. Par exemple ::" -#: ../Doc/reference/compound_stmts.rst:546 +#: ../Doc/reference/compound_stmts.rst:557 msgid "" "Function call semantics are described in more detail in section :ref:" "`calls`. A function call always assigns values to all parameters mentioned " @@ -751,7 +755,7 @@ msgstr "" "section :ref:`calls`. Un appel de fonction assigne toujours des valeurs à " "tous les paramètres mentionnés dans la liste des paramètres, soit à partir " "d'arguments positionnels, d'arguments par mots-clés ou de valeurs par " -"défaut. S'il y a un paramètre de la forme \"``*identifier``\", il est " +"défaut. S'il y a un paramètre de la forme \"``*identifier``\", il est " "initialisé à un tuple recevant les paramètres positionnels en surplus, la " "valeur par défaut étant le tuple vide. S'il y a un paramètre de la forme " "\"``**identifier``\", il est initialisé à un nouveau tableau associatif " @@ -760,42 +764,39 @@ msgstr "" "ou \"``*identifier``\" sont forcément des paramètres par mot-clé et ne " "peuvent être passés qu'en utilisant des arguments par mot-clé." -#: ../Doc/reference/compound_stmts.rst:559 -msgid "" -"Parameters may have annotations of the form \"``: expression``\" following " -"the parameter name. Any parameter may have an annotation even those of the " -"form ``*identifier`` or ``**identifier``. Functions may have \"return\" " -"annotation of the form \"``-> expression``\" after the parameter list. " -"These annotations can be any valid Python expression. The presence of " -"annotations does not change the semantics of a function. The annotation " -"values are available as values of a dictionary keyed by the parameters' " -"names in the :attr:`__annotations__` attribute of the function object. If " -"the ``annotations`` import from :mod:`__future__` is used, annotations are " -"preserved as strings at runtime which enables postponed evaluation. " -"Otherwise, they are evaluated when the function definition is executed. In " -"this case annotations may be evaluated in a different order than they appear " -"in the source code." -msgstr "" -"Les paramètres peuvent avoir des annotations sous la forme \"``: expression``" -"\" après le nom du paramètre. Tout paramètre peut avoir une annotation, " -"même ceux de la forme ``*identificateur`` ou ``**identificateur``. Les " -"fonctions peuvent avoir une annotation pour la valeur de retour, sous la " -"forme \"``-> expression``\" après la liste des paramètres. Ces annotations " -"peuvent être toute expression Python valide et sont évaluées lorsque la " -"définition de fonction est exécutée. Les annotations peuvent être évaluées " -"dans un ordre différent de celui où elles apparaissent dans le code source. " -"La présence d'annotations ne modifie la sémantique d'une fonction. Les " +#: ../Doc/reference/compound_stmts.rst:573 +msgid "" +"Parameters may have an :term:`annotation ` of the form " +"\"``: expression``\" following the parameter name. Any parameter may have " +"an annotation, even those of the form ``*identifier`` or ``**identifier``. " +"Functions may have \"return\" annotation of the form \"``-> expression``\" " +"after the parameter list. These annotations can be any valid Python " +"expression. The presence of annotations does not change the semantics of a " +"function. The annotation values are available as values of a dictionary " +"keyed by the parameters' names in the :attr:`__annotations__` attribute of " +"the function object. If the ``annotations`` import from :mod:`__future__` " +"is used, annotations are preserved as strings at runtime which enables " +"postponed evaluation. Otherwise, they are evaluated when the function " +"definition is executed. In this case annotations may be evaluated in a " +"different order than they appear in the source code." +msgstr "" +"Les paramètres peuvent avoir une :term:`annotation ` " +"sous la forme \"``: expression``\" après le nom du paramètre. Tout paramètre " +"peut avoir une annotation, même ceux de la forme ``*identifier`` ou " +"``**identifier``. Les fonctions peuvent avoir une annotation pour la valeur " +"de retour, sous la forme \"``-> expression``\" après la liste des " +"paramètres. Ces annotations peuvent prendre la forme de toute expression " +"Python valide. Leur présence ne change pas la sémantique de la fonction. Les " "valeurs des annotations sont accessibles comme valeurs d'un dictionnaire " "dont les clés sont les noms des paramètres et défini comme attribut :attr:" -"`__annotations__` de l'objet fonction. Si l'importation de ``annotations`` à " -"l'aide de :mod:`__future__` est utilisée, les annotations sont préservées en " -"tant que chaînes au moment de l'exécution, ce qui permet une évaluation " -"différée. Sinon, elles sont évaluées au moment où la définition de la " -"fonction est exécutée. Dans ce cas, les annotations peuvent être évaluées " -"dans un ordre différent de celui dans lequel elles apparaissent dans le code " -"source." +"`__annotations__` de l'objet fonction. Si ``annotations`` est importé de :" +"mod:`__future__`, les annotations sont conservées sous la forme de chaînes " +"de caractères, permettant leur évaluation différée. Autrement, elles sont " +"interprétées en même temps que la déclaration des fonctions. Dans le premier " +"cas, les annotations peuvent être interprétées dans un ordre différent de " +"l'ordre dans lequel elles apparaissent dans le fichier." -#: ../Doc/reference/compound_stmts.rst:574 +#: ../Doc/reference/compound_stmts.rst:588 msgid "" "It is also possible to create anonymous functions (functions not bound to a " "name), for immediate use in expressions. This uses lambda expressions, " @@ -803,8 +804,8 @@ msgid "" "merely a shorthand for a simplified function definition; a function defined " "in a \":keyword:`def`\" statement can be passed around or assigned to " "another name just like a function defined by a lambda expression. The \":" -"keyword:`def`\" form is actually more powerful since it allows the execution " -"of multiple statements and annotations." +"keyword:`!def`\" form is actually more powerful since it allows the " +"execution of multiple statements and annotations." msgstr "" "Il est aussi possible de créer des fonctions anonymes (fonctions non liées à " "un nom), pour une utilisation immédiate dans des expressions. Utilisez alors " @@ -812,11 +813,11 @@ msgstr "" "expression lambda est simplement un raccourci pour définir une fonction " "simple ; une fonction définie par une instruction \":keyword:`def`\" peut " "être passée (en argument) ou assignée à un autre nom, tout comme une " -"fonction définie par une expression lambda. La forme \":keyword:`def`\" est " +"fonction définie par une expression lambda. La forme \":keyword:`!def`\" est " "en fait plus puissante puisqu'elle permet l'exécution de plusieurs " "instructions et les annotations." -#: ../Doc/reference/compound_stmts.rst:582 +#: ../Doc/reference/compound_stmts.rst:596 msgid "" "**Programmer's note:** Functions are first-class objects. A \"``def``\" " "statement executed inside a function definition defines a local function " @@ -831,41 +832,41 @@ msgstr "" "ont accès aux variables locales de la fonction contenant le \"``def``\". " "Voir la section :ref:`naming` pour plus de détails." -#: ../Doc/reference/compound_stmts.rst:591 +#: ../Doc/reference/compound_stmts.rst:605 msgid ":pep:`3107` - Function Annotations" -msgstr ":pep:`3107` -- Annotations de fonctions" +msgstr ":pep:`3107` — Annotations de fonctions" -#: ../Doc/reference/compound_stmts.rst:591 +#: ../Doc/reference/compound_stmts.rst:605 msgid "The original specification for function annotations." msgstr "La spécification originale pour les annotations de fonctions." -#: ../Doc/reference/compound_stmts.rst:594 +#: ../Doc/reference/compound_stmts.rst:608 msgid ":pep:`484` - Type Hints" -msgstr ":pep:`484` -- Indications de types" +msgstr ":pep:`484` — Indications de types" -#: ../Doc/reference/compound_stmts.rst:594 +#: ../Doc/reference/compound_stmts.rst:608 msgid "Definition of a standard meaning for annotations: type hints." msgstr "" "Définition de la signification standard pour les annotations : indications " "de types." -#: ../Doc/reference/compound_stmts.rst:598 +#: ../Doc/reference/compound_stmts.rst:612 msgid ":pep:`526` - Syntax for Variable Annotations" -msgstr ":pep:`526` -- Syntaxe pour les annotations de variables" +msgstr ":pep:`526` — Syntaxe pour les annotations de variables" -#: ../Doc/reference/compound_stmts.rst:597 +#: ../Doc/reference/compound_stmts.rst:611 msgid "" "Ability to type hint variable declarations, including class variables and " "instance variables" msgstr "" "Capacité d'indiquer des types pour les déclarations de variables, y compris " -"les variables de classes et les variables d'instances." +"les variables de classes et les variables d'instances" -#: ../Doc/reference/compound_stmts.rst:601 +#: ../Doc/reference/compound_stmts.rst:615 msgid ":pep:`563` - Postponed Evaluation of Annotations" -msgstr ":pep:`563` -- Évaluation différée des annotations" +msgstr ":pep:`563` — Évaluation différée des annotations" -#: ../Doc/reference/compound_stmts.rst:601 +#: ../Doc/reference/compound_stmts.rst:615 msgid "" "Support for forward references within annotations by preserving annotations " "in a string form at runtime instead of eager evaluation." @@ -874,17 +875,17 @@ msgstr "" "préservant les annotations sous forme de chaînes à l'exécution au lieu d'une " "évaluation directe." -#: ../Doc/reference/compound_stmts.rst:608 +#: ../Doc/reference/compound_stmts.rst:622 msgid "Class definitions" msgstr "Définition de classes" -#: ../Doc/reference/compound_stmts.rst:620 +#: ../Doc/reference/compound_stmts.rst:637 msgid "A class definition defines a class object (see section :ref:`types`):" msgstr "" "Une définition de classe définit un objet classe (voir la section :ref:" "`types`) :" -#: ../Doc/reference/compound_stmts.rst:627 +#: ../Doc/reference/compound_stmts.rst:644 msgid "" "A class definition is an executable statement. The inheritance list usually " "gives a list of base classes (see :ref:`metaclasses` for more advanced " @@ -896,11 +897,11 @@ msgstr "" "d'héritage (*inheritance* entre crochets dans la grammaire ci-dessus) donne " "habituellement une liste de classes de base (voir :ref:`metaclasses` pour " "des utilisations plus avancées). Donc chaque élément de la liste doit " -"pouvoir être évalué comme un objet classe qui autorise les sous-classes. " -"Les classes sans liste d'héritage héritent, par défaut, de la classe de " -"base :class:`object` ; d'où ::" +"pouvoir être évalué comme un objet classe qui autorise les sous-classes. Les " +"classes sans liste d'héritage héritent, par défaut, de la classe de base :" +"class:`object` ; d'où ::" -#: ../Doc/reference/compound_stmts.rst:641 +#: ../Doc/reference/compound_stmts.rst:658 msgid "" "The class's suite is then executed in a new execution frame (see :ref:" "`naming`), using a newly created local namespace and the original global " @@ -912,16 +913,16 @@ msgid "" "original local namespace." msgstr "" "La suite de la classe est ensuite exécutée dans un nouveau cadre d'exécution " -"(voir :ref:`naming`), en utilisant un espace de noms local nouvellement créé " -"et l'espace de noms global d'origine (habituellement, la suite contient " -"principalement des définitions de fonctions). Lorsque la suite de la classe " -"termine son exécution, son cadre d'exécution est abandonné mais son espace " -"des noms locaux est sauvegardé [#]_. Un objet classe est alors créé en " -"utilisant la liste d'héritage pour les classes de base et l'espace de noms " -"sauvegardé comme dictionnaire des attributs. Le nom de classe est lié à " -"l'objet classe dans l'espace de noms local original." +"(voir :ref:`naming`), en utilisant un espace de nommage local nouvellement " +"créé et l'espace de nommage global d'origine (habituellement, la suite " +"contient principalement des définitions de fonctions). Lorsque la suite de " +"la classe termine son exécution, son cadre d'exécution est abandonné mais " +"son espace des noms locaux est sauvegardé [#]_. Un objet classe est alors " +"créé en utilisant la liste d'héritage pour les classes de base et l'espace " +"de nommage sauvegardé comme dictionnaire des attributs. Le nom de classe est " +"lié à l'objet classe dans l'espace de nommage local original." -#: ../Doc/reference/compound_stmts.rst:650 +#: ../Doc/reference/compound_stmts.rst:667 msgid "" "The order in which attributes are defined in the class body is preserved in " "the new class's ``__dict__``. Note that this is reliable only right after " @@ -933,7 +934,7 @@ msgstr "" "n'est fiable que juste après la création de la classe et seulement pour les " "classes qui ont été définies en utilisant la syntaxe de définition." -#: ../Doc/reference/compound_stmts.rst:655 +#: ../Doc/reference/compound_stmts.rst:672 msgid "" "Class creation can be customized heavily using :ref:`metaclasses " "`." @@ -941,13 +942,13 @@ msgstr "" "La création de classes peut être fortement personnalisée en utilisant les :" "ref:`métaclasses `." -#: ../Doc/reference/compound_stmts.rst:657 +#: ../Doc/reference/compound_stmts.rst:677 msgid "Classes can also be decorated: just like when decorating functions, ::" msgstr "" -"Les classes peuvent aussi être décorées : comme pour les décorateurs de " -"fonctions ::" +"Les classes peuvent aussi être décorées : comme pour les décorateurs de " +"fonctions, ::" -#: ../Doc/reference/compound_stmts.rst:668 +#: ../Doc/reference/compound_stmts.rst:688 msgid "" "The evaluation rules for the decorator expressions are the same as for " "function decorators. The result is then bound to the class name." @@ -956,7 +957,7 @@ msgstr "" "que pour les décorateurs de fonctions. Le résultat est alors lié au nom de " "la classe." -#: ../Doc/reference/compound_stmts.rst:671 +#: ../Doc/reference/compound_stmts.rst:691 msgid "" "**Programmer's note:** Variables defined in the class definition are class " "attributes; they are shared by instances. Instance attributes can be set in " @@ -971,43 +972,63 @@ msgstr "" "**Note pour les programmeurs :** les variables définies dans la définition " "de classe sont des attributs de classe ; elles sont partagées par les " "instances. Les attributs d'instance peuvent être définis dans une méthode en " -"utilisant ``self.name = value``. Les attributs de classe et d'instance sont " +"utilisant ``self.name = value``. Les attributs de classe et d'instance sont " "accessibles par la notation \"``self.name``\", et un attribut d'instance " -"masque un attribut de classe de même nom lorsqu'on y accède de cette façon. " +"masque un attribut de classe de même nom lorsqu'on y accède de cette façon. " "Les attributs de classe peuvent être utilisés comme valeurs par défaut pour " "les attributs d'instances, mais l'utilisation de valeurs mutables peut " "conduire à des résultats inattendus. Les :ref:`descripteurs ` " "peuvent être utilisés pour créer des variables d'instances avec des détails " "d'implémentation différents." -#: ../Doc/reference/compound_stmts.rst:683 -msgid ":pep:`3115` - Metaclasses in Python 3 :pep:`3129` - Class Decorators" +#: ../Doc/reference/compound_stmts.rst:706 +msgid ":pep:`3115` - Metaclasses in Python 3000" +msgstr ":pep:`3115` — Métaclasses dans Python 3000" + +#: ../Doc/reference/compound_stmts.rst:704 +msgid "" +"The proposal that changed the declaration of metaclasses to the current " +"syntax, and the semantics for how classes with metaclasses are constructed." msgstr "" -":pep:`3115` -- Métaclasses en Python 3 :pep:`3129` -- Décorateurs de classes" +"La proposition qui a modifié la déclaration de métaclasses à la syntaxe " +"actuelle, et la sémantique pour la façon dont les classes avec métaclasses " +"sont construites." + +#: ../Doc/reference/compound_stmts.rst:709 +msgid ":pep:`3129` - Class Decorators" +msgstr ":pep:`3129` — Décorateurs de classes" -#: ../Doc/reference/compound_stmts.rst:690 +#: ../Doc/reference/compound_stmts.rst:709 +msgid "" +"The proposal that added class decorators. Function and method decorators " +"were introduced in :pep:`318`." +msgstr "" +"La proposition qui a ajouté des décorateurs de classe. Les décorateurs de " +"fonction et de méthode ont été introduits dans :pep:`318`." + +#: ../Doc/reference/compound_stmts.rst:716 msgid "Coroutines" msgstr "Coroutines" -#: ../Doc/reference/compound_stmts.rst:698 +#: ../Doc/reference/compound_stmts.rst:724 msgid "Coroutine function definition" msgstr "Définition de fonctions coroutines" -#: ../Doc/reference/compound_stmts.rst:708 +#: ../Doc/reference/compound_stmts.rst:734 msgid "" "Execution of Python coroutines can be suspended and resumed at many points " -"(see :term:`coroutine`). In the body of a coroutine, any ``await`` and " -"``async`` identifiers become reserved keywords; :keyword:`await` " +"(see :term:`coroutine`). Inside the body of a coroutine function, ``await`` " +"and ``async`` identifiers become reserved keywords; :keyword:`await` " "expressions, :keyword:`async for` and :keyword:`async with` can only be used " -"in coroutine bodies." +"in coroutine function bodies." msgstr "" "L'exécution de coroutines Python peut être suspendue et reprise à plusieurs " "endroits (voir :term:`coroutine`). Dans le corps d'une coroutine, tout " -"identificateur ``await`` ou ``async`` devient un mots-clé réservé ; les " +"identificateur ``await`` ou ``async`` devient un mots-clé réservé ; les " "expressions :keyword:`await`, :keyword:`async for` et :keyword:`async with` " "ne peuvent être utilisées que dans les corps de coroutines." -#: ../Doc/reference/compound_stmts.rst:714 +#: ../Doc/reference/compound_stmts.rst:740 msgid "" "Functions defined with ``async def`` syntax are always coroutine functions, " "even if they do not contain ``await`` or ``async`` keywords." @@ -1016,23 +1037,23 @@ msgstr "" "fonctions coroutines, même si elles ne contiennent aucun mot-clé ``await`` " "ou ``async``." -#: ../Doc/reference/compound_stmts.rst:717 +#: ../Doc/reference/compound_stmts.rst:743 msgid "" -"It is a :exc:`SyntaxError` to use ``yield from`` expressions in ``async " -"def`` coroutines." +"It is a :exc:`SyntaxError` to use a ``yield from`` expression inside the " +"body of a coroutine function." msgstr "" "C'est une :exc:`SyntaxError` d'utiliser une expression ``yield from`` dans " -"une coroutine ``async def``." +"une coroutine." -#: ../Doc/reference/compound_stmts.rst:720 +#: ../Doc/reference/compound_stmts.rst:746 msgid "An example of a coroutine function::" msgstr "Un exemple de fonction coroutine ::" -#: ../Doc/reference/compound_stmts.rst:731 -msgid "The :keyword:`async for` statement" -msgstr "L'instruction :keyword:`async for`" +#: ../Doc/reference/compound_stmts.rst:757 +msgid "The :keyword:`!async for` statement" +msgstr "L'instruction :keyword:`!async for`" -#: ../Doc/reference/compound_stmts.rst:736 +#: ../Doc/reference/compound_stmts.rst:762 msgid "" "An :term:`asynchronous iterable` is able to call asynchronous code in its " "*iter* implementation, and :term:`asynchronous iterator` can call " @@ -1043,7 +1064,7 @@ msgstr "" "`itérateur asynchrone ` peut appeler du code " "asynchrone dans sa méthode *next*." -#: ../Doc/reference/compound_stmts.rst:740 +#: ../Doc/reference/compound_stmts.rst:766 msgid "" "The ``async for`` statement allows convenient iteration over asynchronous " "iterators." @@ -1051,34 +1072,34 @@ msgstr "" "L'instruction ``async for`` permet d'itérer facilement sur des itérateurs " "asynchrones." -#: ../Doc/reference/compound_stmts.rst:743 -#: ../Doc/reference/compound_stmts.rst:783 +#: ../Doc/reference/compound_stmts.rst:769 +#: ../Doc/reference/compound_stmts.rst:809 msgid "The following code::" msgstr "Le code suivant ::" -#: ../Doc/reference/compound_stmts.rst:750 -#: ../Doc/reference/compound_stmts.rst:788 +#: ../Doc/reference/compound_stmts.rst:776 +#: ../Doc/reference/compound_stmts.rst:814 msgid "Is semantically equivalent to::" msgstr "est sémantiquement équivalent à ::" -#: ../Doc/reference/compound_stmts.rst:765 +#: ../Doc/reference/compound_stmts.rst:791 msgid "See also :meth:`__aiter__` and :meth:`__anext__` for details." msgstr "" "Voir aussi :meth:`__aiter__` et :meth:`__anext__` pour plus de détails." -#: ../Doc/reference/compound_stmts.rst:767 +#: ../Doc/reference/compound_stmts.rst:793 msgid "" -"It is a :exc:`SyntaxError` to use ``async for`` statement outside of an :" -"keyword:`async def` function." +"It is a :exc:`SyntaxError` to use an ``async for`` statement outside the " +"body of a coroutine function." msgstr "" "C'est une :exc:`SyntaxError` d'utiliser une instruction ``async for`` en " -"dehors d'une fonction :keyword:`async def`." +"dehors d'une fonction coroutine." -#: ../Doc/reference/compound_stmts.rst:775 -msgid "The :keyword:`async with` statement" -msgstr "L'instruction :keyword:`async with`" +#: ../Doc/reference/compound_stmts.rst:801 +msgid "The :keyword:`!async with` statement" +msgstr "L'instruction :keyword:`!async with`" -#: ../Doc/reference/compound_stmts.rst:780 +#: ../Doc/reference/compound_stmts.rst:806 msgid "" "An :term:`asynchronous context manager` is a :term:`context manager` that is " "able to suspend execution in its *enter* and *exit* methods." @@ -1087,28 +1108,36 @@ msgstr "" "manager>` est un :term:`gestionnaire de contexte ` qui est " "capable de suspendre l'exécution dans ses méthodes *enter* et *exit*." -#: ../Doc/reference/compound_stmts.rst:803 +#: ../Doc/reference/compound_stmts.rst:829 msgid "See also :meth:`__aenter__` and :meth:`__aexit__` for details." msgstr "" "Voir aussi :meth:`__aenter__` et :meth:`__aexit__` pour plus de détails." -#: ../Doc/reference/compound_stmts.rst:805 +#: ../Doc/reference/compound_stmts.rst:831 msgid "" -"It is a :exc:`SyntaxError` to use ``async with`` statement outside of an :" -"keyword:`async def` function." +"It is a :exc:`SyntaxError` to use an ``async with`` statement outside the " +"body of a coroutine function." msgstr "" "C'est une :exc:`SyntaxError` d'utiliser l'instruction ``async with`` en " -"dehors d'une fonction :keyword:`async def`." +"dehors d'une fonction coroutine." -#: ../Doc/reference/compound_stmts.rst:810 +#: ../Doc/reference/compound_stmts.rst:837 msgid ":pep:`492` - Coroutines with async and await syntax" -msgstr ":pep:`492` -- Coroutines avec les syntaxes *async* et *await*" +msgstr ":pep:`492` — Coroutines avec les syntaxes *async* et *await*" -#: ../Doc/reference/compound_stmts.rst:814 +#: ../Doc/reference/compound_stmts.rst:837 +msgid "" +"The proposal that made coroutines a proper standalone concept in Python, and " +"added supporting syntax." +msgstr "" +"La proposition qui a fait que les coroutines soient un concept propre en " +"Python, et a ajouté la syntaxe de prise en charge de celles-ci." + +#: ../Doc/reference/compound_stmts.rst:842 msgid "Footnotes" msgstr "Notes" -#: ../Doc/reference/compound_stmts.rst:815 +#: ../Doc/reference/compound_stmts.rst:843 msgid "" "The exception is propagated to the invocation stack unless there is a :" "keyword:`finally` clause which happens to raise another exception. That new " @@ -1119,17 +1148,7 @@ msgstr "" "perte de l'ancienne exception. Cette nouvelle exception entraîne la perte " "pure et simple de l'ancienne." -#: ../Doc/reference/compound_stmts.rst:819 -msgid "" -"Currently, control \"flows off the end\" except in the case of an exception " -"or the execution of a :keyword:`return`, :keyword:`continue`, or :keyword:" -"`break` statement." -msgstr "" -"Actuellement, l'exécution \"atteint la fin\" sauf dans le cas d'une " -"exception, de l'exécution de l'instruction :keyword:`return`, :keyword:" -"`continue` ou :keyword:`break`." - -#: ../Doc/reference/compound_stmts.rst:823 +#: ../Doc/reference/compound_stmts.rst:847 msgid "" "A string literal appearing as the first statement in the function body is " "transformed into the function's ``__doc__`` attribute and therefore the " @@ -1139,12 +1158,21 @@ msgstr "" "de la fonction est transformée en attribut ``__doc__`` de la fonction et " "donc en :term:`docstring` de la fonction." -#: ../Doc/reference/compound_stmts.rst:827 +#: ../Doc/reference/compound_stmts.rst:851 msgid "" "A string literal appearing as the first statement in the class body is " "transformed into the namespace's ``__doc__`` item and therefore the class's :" "term:`docstring`." msgstr "" "Une chaîne littérale apparaissant comme première instruction dans le corps " -"de la classe est transformée en élément ``__doc__`` de l'espace de noms et " -"donc en :term:`docstring` de la classe." +"de la classe est transformée en élément ``__doc__`` de l'espace de nommage " +"et donc en :term:`docstring` de la classe." + +#~ msgid "" +#~ "Currently, control \"flows off the end\" except in the case of an " +#~ "exception or the execution of a :keyword:`return`, :keyword:`continue`, " +#~ "or :keyword:`break` statement." +#~ msgstr "" +#~ "Actuellement, l'exécution \"atteint la fin\" sauf dans le cas d'une " +#~ "exception, de l'exécution de l'instruction :keyword:`return`, :keyword:" +#~ "`continue` ou :keyword:`break`." diff --git a/reference/datamodel.po b/reference/datamodel.po index 0b4a38b1f..1b7502bf0 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-02 00:10+0200\n" -"PO-Revision-Date: 2018-07-09 19:09+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-18 22:08+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/reference/datamodel.rst:6 msgid "Data model" @@ -33,7 +33,7 @@ msgstr "" "En Python, les données sont représentées sous forme :dfn:`d'objets`. Toutes " "les données d'un programme Python sont représentées par des objets ou par " "des relations entre les objets (dans un certain sens, et en conformité avec " -"le modèle de Von Neumann \"d'ordinateur à programme enregistré\", le code " +"le modèle de Von Neumann d'« ordinateur à programme enregistré », le code " "est aussi représenté par des objets)." #: ../Doc/reference/datamodel.rst:35 @@ -46,9 +46,9 @@ msgid "" msgstr "" "Chaque objet possède un identifiant, un type et une valeur. *L'identifiant* " "d'un objet ne change jamais après sa création ; vous pouvez vous le " -"représenter comme l'adresse de l'objet en mémoire. L'opérateur ':keyword:" -"`is`' compare les identifiants de deux objets ; la fonction :func:`id` " -"renvoie un entier représentant cet identifiant." +"représenter comme l'adresse de l'objet en mémoire. L'opérateur :keyword:`is` " +"compare les identifiants de deux objets ; la fonction :func:`id` renvoie un " +"entier représentant cet identifiant." #: ../Doc/reference/datamodel.rst:42 msgid "For CPython, ``id(x)`` is the memory address where ``x`` is stored." @@ -63,7 +63,7 @@ msgid "" "unchangeable. [#]_" msgstr "" "Le type de l'objet détermine les opérations que l'on peut appliquer à " -"l'objet (par exemple, \"a-t-il une longueur ?\") et définit aussi les " +"l'objet (par exemple, « a-t-il une longueur ? ») et définit aussi les " "valeurs possibles pour les objets de ce type. La fonction :func:`type` " "renvoie le type de l'objet (qui est lui-même un objet). Comme l'identifiant, " "le :dfn:`type` d'un objet ne peut pas être modifié [#]_." @@ -105,7 +105,7 @@ msgstr "" "Un objet n'est jamais explicitement détruit ; cependant, lorsqu'il ne peut " "plus être atteint, il a vocation à être supprimé par le ramasse-miettes " "(*garbage-collector* en anglais). L'implémentation peut retarder cette " -"opération ou même ne pas la faire du tout --- la façon dont fonctionne le " +"opération ou même ne pas la faire du tout — la façon dont fonctionne le " "ramasse-miette est particulière à chaque implémentation, l'important étant " "qu'il ne supprime pas d'objet qui peut encore être atteint." @@ -140,8 +140,8 @@ msgstr "" "Notez que si vous utilisez les fonctionnalités de débogage ou de trace de " "l'implémentation, il est possible que des références qui seraient " "normalement supprimées soient toujours présentes. Notez aussi que capturer " -"une exception avec l'instruction ':keyword:`try`...\\ :keyword:`except`' " -"peut conserver des objets en vie." +"une exception avec l'instruction :keyword:`try`...\\ :keyword:`except` peut " +"conserver des objets en vie." #: ../Doc/reference/datamodel.rst:87 msgid "" @@ -154,14 +154,14 @@ msgid "" "`finally`' statement and the ':keyword:`with`' statement provide convenient " "ways to do this." msgstr "" -"Certains objets font référence à des ressources \"externes\" telles que des " +"Certains objets font référence à des ressources « externes » telles que des " "fichiers ouverts ou des fenêtres. Ces objets libèrent ces ressources au " "moment où ils sont supprimés, mais comme le ramasse-miettes ne garantit pas " "qu'il supprime tous les objets, ces objets fournissent également un moyen " "explicite de libérer la ressource externe, généralement sous la forme d'une " "méthode :meth:`close`. Nous incitons fortement les programmeurs à fermer " -"explicitement de tels objets. Les instructions ':keyword:`try`...\\ :keyword:" -"`finally`' et ':keyword:`with`' sont très pratiques pour cela." +"explicitement de tels objets. Les instructions :keyword:`try`...\\ :keyword:" +"`finally` et :keyword:`with` sont très pratiques pour cela." #: ../Doc/reference/datamodel.rst:97 msgid "" @@ -236,13 +236,13 @@ msgid "" "future." msgstr "" "Quelques descriptions des types ci-dessous contiennent un paragraphe listant " -"des \"attributs spéciaux\". Ces attributs donnent accès à l'implémentation " +"des « attributs spéciaux ». Ces attributs donnent accès à l'implémentation " "et n'ont, en général, pas vocation à être utilisés. Leur définition peut " "changer dans le futur." #: ../Doc/reference/datamodel.rst:150 msgid "None" -msgstr "*None*" +msgstr "``None``" #: ../Doc/reference/datamodel.rst:147 msgid "" @@ -282,13 +282,13 @@ msgstr "" msgid "See :ref:`implementing-the-arithmetic-operations` for more details." msgstr "" "Consultez :ref:`implementing-the-arithmetic-operations` pour davantage de " -"details." +"détails." -#: ../Doc/reference/datamodel.rst:172 +#: ../Doc/reference/datamodel.rst:174 msgid "Ellipsis" msgstr "Ellipse" -#: ../Doc/reference/datamodel.rst:170 +#: ../Doc/reference/datamodel.rst:172 msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the literal ``...`` or the built-in name " @@ -298,11 +298,11 @@ msgstr "" "cette valeur. Vous accédez à cet objet avec le littéral ``...`` ou le nom " "natif ``Ellipsis``. Sa valeur booléenne est vraie." -#: ../Doc/reference/datamodel.rst:242 +#: ../Doc/reference/datamodel.rst:244 msgid ":class:`numbers.Number`" msgstr ":class:`numbers.Number`" -#: ../Doc/reference/datamodel.rst:177 +#: ../Doc/reference/datamodel.rst:179 msgid "" "These are created by numeric literals and returned as results by arithmetic " "operators and arithmetic built-in functions. Numeric objects are immutable; " @@ -317,7 +317,7 @@ msgstr "" "mathématiques mais ils sont soumis aux limitations des représentations " "numériques par les ordinateurs." -#: ../Doc/reference/datamodel.rst:183 +#: ../Doc/reference/datamodel.rst:185 msgid "" "Python distinguishes between integers, floating point numbers, and complex " "numbers:" @@ -325,11 +325,11 @@ msgstr "" "Python distingue les entiers, les nombres à virgule flottante et les nombres " "complexes :" -#: ../Doc/reference/datamodel.rst:217 +#: ../Doc/reference/datamodel.rst:219 msgid ":class:`numbers.Integral`" msgstr ":class:`numbers.Integral`" -#: ../Doc/reference/datamodel.rst:189 +#: ../Doc/reference/datamodel.rst:191 msgid "" "These represent elements from the mathematical set of integers (positive and " "negative)." @@ -337,15 +337,15 @@ msgstr "" "Ils représentent des éléments de l'ensemble mathématique des entiers " "(positifs ou négatifs)." -#: ../Doc/reference/datamodel.rst:192 +#: ../Doc/reference/datamodel.rst:194 msgid "There are two types of integers:" msgstr "Il existe deux types d'entiers :" -#: ../Doc/reference/datamodel.rst:194 +#: ../Doc/reference/datamodel.rst:196 msgid "Integers (:class:`int`)" msgstr "Entiers (:class:`int`)" -#: ../Doc/reference/datamodel.rst:196 +#: ../Doc/reference/datamodel.rst:198 msgid "" "These represent numbers in an unlimited range, subject to available " "(virtual) memory only. For the purpose of shift and mask operations, a " @@ -360,11 +360,11 @@ msgstr "" "complément à 2, qui donne l'illusion d'une chaîne infinie de bits de signe " "s'étendant vers la gauche." -#: ../Doc/reference/datamodel.rst:212 +#: ../Doc/reference/datamodel.rst:214 msgid "Booleans (:class:`bool`)" msgstr "Booléens (:class:`bool`)" -#: ../Doc/reference/datamodel.rst:208 +#: ../Doc/reference/datamodel.rst:210 msgid "" "These represent the truth values False and True. The two objects " "representing the values ``False`` and ``True`` are the only Boolean objects. " @@ -373,14 +373,14 @@ msgid "" "being that when converted to a string, the strings ``\"False\"`` or ``\"True" "\"`` are returned, respectively." msgstr "" -"Ils représentent les valeurs \"faux\" et \"vrai\". Deux objets, ``False`` et " +"Ils représentent les valeurs *faux* et *vrai*. Deux objets, ``False`` et " "``True``, sont les seuls objets booléens. Le type booléen est un sous-type " "du type entier et les valeurs booléennes se comportent comme les valeurs 0 " "(pour ``False``) et 1 (pour ``True``) dans presque tous les contextes. " "L'exception concerne la conversion en chaîne de caractères où ``\"False\"`` " "et ``\"True\"`` sont renvoyées." -#: ../Doc/reference/datamodel.rst:216 +#: ../Doc/reference/datamodel.rst:218 msgid "" "The rules for integer representation are intended to give the most " "meaningful interpretation of shift and mask operations involving negative " @@ -390,11 +390,11 @@ msgstr "" "l'interprétation la plus naturelle pour les opérations de décalage et " "masquage qui impliquent des entiers négatifs." -#: ../Doc/reference/datamodel.rst:232 +#: ../Doc/reference/datamodel.rst:234 msgid ":class:`numbers.Real` (:class:`float`)" msgstr ":class:`numbers.Real` (:class:`float`)" -#: ../Doc/reference/datamodel.rst:226 +#: ../Doc/reference/datamodel.rst:228 msgid "" "These represent machine-level double precision floating point numbers. You " "are at the mercy of the underlying machine architecture (and C or Java " @@ -414,11 +414,11 @@ msgstr "" "de toute façon ces nombres dans des objets. Il n'y a donc aucune raison de " "compliquer le langage avec deux types de nombres à virgule flottante." -#: ../Doc/reference/datamodel.rst:242 +#: ../Doc/reference/datamodel.rst:244 msgid ":class:`numbers.Complex` (:class:`complex`)" msgstr ":class:`numbers.Complex` (:class:`complex`)" -#: ../Doc/reference/datamodel.rst:239 +#: ../Doc/reference/datamodel.rst:241 msgid "" "These represent complex numbers as a pair of machine-level double precision " "floating point numbers. The same caveats apply as for floating point " @@ -432,11 +432,11 @@ msgstr "" "complexe ``z`` peuvent être demandées par les attributs en lecture seule ``z." "real`` et ``z.imag``." -#: ../Doc/reference/datamodel.rst:359 +#: ../Doc/reference/datamodel.rst:361 msgid "Sequences" msgstr "Séquences" -#: ../Doc/reference/datamodel.rst:252 +#: ../Doc/reference/datamodel.rst:254 msgid "" "These represent finite ordered sets indexed by non-negative numbers. The " "built-in function :func:`len` returns the number of items of a sequence. " @@ -446,10 +446,10 @@ msgstr "" "Ils représentent des ensembles de taille finie indicés par des entiers " "positifs ou nuls. La fonction native :func:`len` renvoie le nombre " "d'éléments de la séquence. Quand la longueur d'une séquence est *n*, " -"l'ensemble des indices contient les entiers 0, 1 ..., *n*-1. On accède à " +"l'ensemble des indices contient les entiers 0, 1 ..., *n-1*. On accède à " "l'élément d'indice *i* de la séquence *a* par ``a[i]``." -#: ../Doc/reference/datamodel.rst:259 +#: ../Doc/reference/datamodel.rst:261 msgid "" "Sequences also support slicing: ``a[i:j]`` selects all items with index *k* " "such that *i* ``<=`` *k* ``<`` *j*. When used as an expression, a slice is " @@ -462,26 +462,26 @@ msgstr "" "du même type que la séquence. Ceci veut dire que l'ensemble des indices de " "la tranche est renuméroté de manière à partir de 0." -#: ../Doc/reference/datamodel.rst:264 +#: ../Doc/reference/datamodel.rst:266 msgid "" "Some sequences also support \"extended slicing\" with a third \"step\" " "parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " "i + n*k``, *n* ``>=`` ``0`` and *i* ``<=`` *x* ``<`` *j*." msgstr "" -"Quelques séquences gèrent le \"découpage étendu\" (*extended slicing* en " +"Quelques séquences gèrent le « découpage étendu » (*extended slicing* en " "anglais) avec un troisième paramètre : ``a[i:j:k]`` sélectionne tous les " "éléments de *a* d'indice *x* où ``x = i + n*k``, avec *n* ``>=`` ``0`` et " "*i* ``<=`` *x* ``<`` *j*." -#: ../Doc/reference/datamodel.rst:268 +#: ../Doc/reference/datamodel.rst:270 msgid "Sequences are distinguished according to their mutability:" msgstr "Les séquences se différencient en fonction de leur muabilité :" -#: ../Doc/reference/datamodel.rst:325 +#: ../Doc/reference/datamodel.rst:327 msgid "Immutable sequences" msgstr "Séquences immuables" -#: ../Doc/reference/datamodel.rst:275 +#: ../Doc/reference/datamodel.rst:277 msgid "" "An object of an immutable sequence type cannot change once it is created. " "(If the object contains references to other objects, these other objects may " @@ -494,15 +494,15 @@ msgstr "" "objets directement référencés par un objet immuable ne peuvent pas être " "modifiés." -#: ../Doc/reference/datamodel.rst:280 +#: ../Doc/reference/datamodel.rst:282 msgid "The following types are immutable sequences:" msgstr "Les types suivants sont des séquences immuables :" -#: ../Doc/reference/datamodel.rst:303 +#: ../Doc/reference/datamodel.rst:305 msgid "Strings" msgstr "Chaînes de caractères" -#: ../Doc/reference/datamodel.rst:293 +#: ../Doc/reference/datamodel.rst:295 msgid "" "A string is a sequence of values that represent Unicode code points. All the " "code points in the range ``U+0000 - U+10FFFF`` can be represented in a " @@ -528,11 +528,11 @@ msgstr "" "`bytes` selon l'encodage spécifié et :meth:`bytes.decode` effectue " "l'opération inverse." -#: ../Doc/reference/datamodel.rst:316 +#: ../Doc/reference/datamodel.rst:318 msgid "Tuples" -msgstr "Tuples" +msgstr "n-uplets (ou tuples)" -#: ../Doc/reference/datamodel.rst:311 +#: ../Doc/reference/datamodel.rst:313 msgid "" "The items of a tuple are arbitrary Python objects. Tuples of two or more " "items are formed by comma-separated lists of expressions. A tuple of one " @@ -544,16 +544,16 @@ msgstr "" "Les éléments d'un tuple sont n'importe quels objets Python. Les tuples de " "deux ou plus éléments sont formés par une liste d'expressions dont les " "éléments sont séparés par des virgules. Un tuple composé d'un seul élément " -"(un \"singleton\") est formé en suffixant une expression avec une virgule " +"(un « singleton ») est formé en suffixant une expression avec une virgule " "(une expression en tant que telle ne crée pas un tuple car les parenthèses " "doivent rester disponibles pour grouper les expressions). Un tuple vide peut " "être formé à l'aide d'une paire de parenthèses vide." -#: ../Doc/reference/datamodel.rst:325 +#: ../Doc/reference/datamodel.rst:327 msgid "Bytes" msgstr "Bytes" -#: ../Doc/reference/datamodel.rst:321 +#: ../Doc/reference/datamodel.rst:323 msgid "" "A bytes object is an immutable array. The items are 8-bit bytes, " "represented by integers in the range 0 <= x < 256. Bytes literals (like " @@ -568,11 +568,11 @@ msgstr "" "objets *bytes*. Aussi, un objet *bytes* peut être décodé vers une chaîne " "*via* la méthode :meth:`~bytes.decode`." -#: ../Doc/reference/datamodel.rst:359 +#: ../Doc/reference/datamodel.rst:361 msgid "Mutable sequences" msgstr "Séquences muables" -#: ../Doc/reference/datamodel.rst:335 +#: ../Doc/reference/datamodel.rst:337 msgid "" "Mutable sequences can be changed after they are created. The subscription " "and slicing notations can be used as the target of assignment and :keyword:" @@ -583,15 +583,15 @@ msgstr "" "que cibles d'une assignation ou de l'instruction :keyword:`del` " "(suppression)." -#: ../Doc/reference/datamodel.rst:339 +#: ../Doc/reference/datamodel.rst:341 msgid "There are currently two intrinsic mutable sequence types:" msgstr "Il existe aujourd'hui deux types intrinsèques de séquences muables :" -#: ../Doc/reference/datamodel.rst:346 +#: ../Doc/reference/datamodel.rst:348 msgid "Lists" msgstr "Listes" -#: ../Doc/reference/datamodel.rst:344 +#: ../Doc/reference/datamodel.rst:346 msgid "" "The items of a list are arbitrary Python objects. Lists are formed by " "placing a comma-separated list of expressions in square brackets. (Note that " @@ -602,11 +602,11 @@ msgstr "" "sont séparés par des virgules (notez que les listes de longueur 0 ou 1 ne " "sont pas des cas particuliers)." -#: ../Doc/reference/datamodel.rst:354 +#: ../Doc/reference/datamodel.rst:356 msgid "Byte Arrays" msgstr "Tableaux d'octets" -#: ../Doc/reference/datamodel.rst:351 +#: ../Doc/reference/datamodel.rst:353 msgid "" "A bytearray object is a mutable array. They are created by the built-in :" "func:`bytearray` constructor. Aside from being mutable (and hence " @@ -619,7 +619,7 @@ msgstr "" "d'octets possède la même interface et les mêmes fonctionnalités qu'un objet " "immuable :class:`bytes`." -#: ../Doc/reference/datamodel.rst:358 +#: ../Doc/reference/datamodel.rst:360 msgid "" "The extension module :mod:`array` provides an additional example of a " "mutable sequence type, as does the :mod:`collections` module." @@ -627,11 +627,11 @@ msgstr "" "Le module d'extension :mod:`array` fournit un autre exemple de type de " "séquence muable, de même que le module :mod:`collections`." -#: ../Doc/reference/datamodel.rst:393 +#: ../Doc/reference/datamodel.rst:395 msgid "Set types" msgstr "Ensembles" -#: ../Doc/reference/datamodel.rst:366 +#: ../Doc/reference/datamodel.rst:368 msgid "" "These represent unordered, finite sets of unique, immutable objects. As " "such, they cannot be indexed by any subscript. However, they can be iterated " @@ -648,7 +648,7 @@ msgstr "" "dans une séquence et le calcul d'opérations mathématiques telles que " "l'intersection, l'union, la différence et le complémentaire." -#: ../Doc/reference/datamodel.rst:373 +#: ../Doc/reference/datamodel.rst:375 msgid "" "For set elements, the same immutability rules apply as for dictionary keys. " "Note that numeric types obey the normal rules for numeric comparison: if two " @@ -661,15 +661,15 @@ msgstr "" "si deux nombres sont égaux (pour l'opération de comparaison, par exemple " "``1`` et ``1.0``), un seul élément est conservé dans l'ensemble." -#: ../Doc/reference/datamodel.rst:378 +#: ../Doc/reference/datamodel.rst:380 msgid "There are currently two intrinsic set types:" msgstr "Actuellement, il existe deux types d'ensembles natifs :" -#: ../Doc/reference/datamodel.rst:385 +#: ../Doc/reference/datamodel.rst:387 msgid "Sets" msgstr "Ensembles" -#: ../Doc/reference/datamodel.rst:383 +#: ../Doc/reference/datamodel.rst:385 msgid "" "These represent a mutable set. They are created by the built-in :func:`set` " "constructor and can be modified afterwards by several methods, such as :meth:" @@ -679,11 +679,11 @@ msgstr "" "native constructeur :func:`set` et peut être modifié par la suite à l'aide " "de différentes méthodes, par exemple :meth:`~set.add`." -#: ../Doc/reference/datamodel.rst:393 +#: ../Doc/reference/datamodel.rst:395 msgid "Frozen sets" msgstr "Ensembles gelés" -#: ../Doc/reference/datamodel.rst:390 +#: ../Doc/reference/datamodel.rst:392 msgid "" "These represent an immutable set. They are created by the built-in :func:" "`frozenset` constructor. As a frozenset is immutable and :term:`hashable`, " @@ -694,11 +694,11 @@ msgstr "" "et :term:`hachable`, il peut être utilisé comme élément d'un autre ensemble " "ou comme clé de dictionnaire." -#: ../Doc/reference/datamodel.rst:430 +#: ../Doc/reference/datamodel.rst:432 msgid "Mappings" msgstr "Tableaux de correspondances" -#: ../Doc/reference/datamodel.rst:401 +#: ../Doc/reference/datamodel.rst:403 msgid "" "These represent finite sets of objects indexed by arbitrary index sets. The " "subscript notation ``a[k]`` selects the item indexed by ``k`` from the " @@ -713,17 +713,17 @@ msgstr "" "keyword:`del`. La fonction native :func:`len` renvoie le nombre d'éléments " "du tableau de correspondances." -#: ../Doc/reference/datamodel.rst:407 +#: ../Doc/reference/datamodel.rst:409 msgid "There is currently a single intrinsic mapping type:" msgstr "" "Il n'existe actuellement qu'un seul type natif pour les tableaux de " "correspondances :" -#: ../Doc/reference/datamodel.rst:430 +#: ../Doc/reference/datamodel.rst:432 msgid "Dictionaries" msgstr "Dictionnaires" -#: ../Doc/reference/datamodel.rst:412 +#: ../Doc/reference/datamodel.rst:414 msgid "" "These represent finite sets of objects indexed by nearly arbitrary values. " "The only types of values not acceptable as keys are values containing lists " @@ -735,7 +735,7 @@ msgid "" "interchangeably to index the same dictionary entry." msgstr "" "Ils représentent les ensembles finis d'objets indicés par des valeurs " -"presqu'arbitraires. Les seuls types de valeurs non reconnus comme clés sont " +"presque arbitraires. Les seuls types de valeurs non reconnus comme clés sont " "les valeurs contenant des listes, des dictionnaires ou les autres types " "muables qui sont comparés par valeur plutôt que par l'identifiant de " "l'objet. La raison de cette limitation est qu'une implémentation efficace de " @@ -745,7 +745,7 @@ msgstr "" "comparaison, par exemple ``1`` et ``1.0``, alors ces deux nombres peuvent " "être utilisés indifféremment pour désigner la même entrée du dictionnaire." -#: ../Doc/reference/datamodel.rst:421 +#: ../Doc/reference/datamodel.rst:423 msgid "" "Dictionaries are mutable; they can be created by the ``{...}`` notation (see " "section :ref:`dict`)." @@ -753,7 +753,7 @@ msgstr "" "Les dictionnaires sont muables : ils peuvent être créés par la notation " "``{...}`` (reportez-vous à la section :ref:`dict`)." -#: ../Doc/reference/datamodel.rst:428 +#: ../Doc/reference/datamodel.rst:430 msgid "" "The extension modules :mod:`dbm.ndbm` and :mod:`dbm.gnu` provide additional " "examples of mapping types, as does the :mod:`collections` module." @@ -762,11 +762,11 @@ msgstr "" "d'autres exemples de types tableaux de correspondances, de même que le " "module :mod:`collections`." -#: ../Doc/reference/datamodel.rst:692 +#: ../Doc/reference/datamodel.rst:694 msgid "Callable types" msgstr "Types appelables" -#: ../Doc/reference/datamodel.rst:439 +#: ../Doc/reference/datamodel.rst:441 msgid "" "These are the types to which the function call operation (see section :ref:" "`calls`) can be applied:" @@ -774,11 +774,11 @@ msgstr "" "Ce sont les types sur lesquels on peut faire un appel de fonction (lisez la " "section :ref:`calls`) :" -#: ../Doc/reference/datamodel.rst:540 +#: ../Doc/reference/datamodel.rst:542 msgid "User-defined functions" msgstr "Fonctions allogènes" -#: ../Doc/reference/datamodel.rst:448 +#: ../Doc/reference/datamodel.rst:450 msgid "" "A user-defined function object is created by a function definition (see " "section :ref:`function`). It should be called with an argument list " @@ -790,59 +790,59 @@ msgstr "" "doit être appelé avec une liste d'arguments contenant le même nombre " "d'éléments que la liste des paramètres formels de la fonction." -#: ../Doc/reference/datamodel.rst:453 +#: ../Doc/reference/datamodel.rst:455 msgid "Special attributes:" msgstr "Attributs spéciaux :" -#: ../Doc/reference/datamodel.rst:471 +#: ../Doc/reference/datamodel.rst:473 msgid "Attribute" msgstr "Attribut" -#: ../Doc/reference/datamodel.rst:471 +#: ../Doc/reference/datamodel.rst:473 msgid "Meaning" msgstr "Signification" -#: ../Doc/reference/datamodel.rst:473 +#: ../Doc/reference/datamodel.rst:475 msgid ":attr:`__doc__`" msgstr ":attr:`__doc__`" -#: ../Doc/reference/datamodel.rst:473 +#: ../Doc/reference/datamodel.rst:475 msgid "" "The function's documentation string, or ``None`` if unavailable; not " -"inherited by subclasses" +"inherited by subclasses." msgstr "" "Chaîne de documentation de la fonction ou ``None`` s'il n'en existe pas ; " "n'est pas héritée par les sous-classes" -#: ../Doc/reference/datamodel.rst:473 ../Doc/reference/datamodel.rst:478 -#: ../Doc/reference/datamodel.rst:481 ../Doc/reference/datamodel.rst:486 -#: ../Doc/reference/datamodel.rst:490 ../Doc/reference/datamodel.rst:496 -#: ../Doc/reference/datamodel.rst:506 ../Doc/reference/datamodel.rst:517 -#: ../Doc/reference/datamodel.rst:524 +#: ../Doc/reference/datamodel.rst:475 ../Doc/reference/datamodel.rst:480 +#: ../Doc/reference/datamodel.rst:483 ../Doc/reference/datamodel.rst:488 +#: ../Doc/reference/datamodel.rst:492 ../Doc/reference/datamodel.rst:498 +#: ../Doc/reference/datamodel.rst:508 ../Doc/reference/datamodel.rst:519 +#: ../Doc/reference/datamodel.rst:526 msgid "Writable" msgstr "Accessible en écriture" -#: ../Doc/reference/datamodel.rst:478 +#: ../Doc/reference/datamodel.rst:480 msgid ":attr:`~definition.\\ __name__`" msgstr ":attr:`~definition.\\ __name__`" -#: ../Doc/reference/datamodel.rst:478 -msgid "The function's name" +#: ../Doc/reference/datamodel.rst:480 +msgid "The function's name." msgstr "Nom de la fonction" -#: ../Doc/reference/datamodel.rst:481 +#: ../Doc/reference/datamodel.rst:483 msgid ":attr:`~definition.\\ __qualname__`" msgstr ":attr:`~definition.\\ __qualname__`" -#: ../Doc/reference/datamodel.rst:481 -msgid "The function's :term:`qualified name`" +#: ../Doc/reference/datamodel.rst:483 +msgid "The function's :term:`qualified name`." msgstr ":term:`qualified name` de la fonction" -#: ../Doc/reference/datamodel.rst:486 +#: ../Doc/reference/datamodel.rst:488 msgid ":attr:`__module__`" msgstr ":attr:`__module__`" -#: ../Doc/reference/datamodel.rst:486 +#: ../Doc/reference/datamodel.rst:488 msgid "" "The name of the module the function was defined in, or ``None`` if " "unavailable." @@ -850,69 +850,69 @@ msgstr "" "Nom du module où la fonction est définie ou ``None`` si ce nom n'est pas " "disponible." -#: ../Doc/reference/datamodel.rst:490 +#: ../Doc/reference/datamodel.rst:492 msgid ":attr:`__defaults__`" msgstr ":attr:`__defaults__`" -#: ../Doc/reference/datamodel.rst:490 +#: ../Doc/reference/datamodel.rst:492 msgid "" "A tuple containing default argument values for those arguments that have " -"defaults, or ``None`` if no arguments have a default value" +"defaults, or ``None`` if no arguments have a default value." msgstr "" "Tuple contenant les valeurs des arguments par défaut pour ceux qui en sont " "dotés ou ``None`` si aucun argument n'a de valeur par défaut." -#: ../Doc/reference/datamodel.rst:496 +#: ../Doc/reference/datamodel.rst:498 msgid ":attr:`__code__`" msgstr ":attr:`__code__`" -#: ../Doc/reference/datamodel.rst:496 +#: ../Doc/reference/datamodel.rst:498 msgid "The code object representing the compiled function body." msgstr "Objet code représentant le corps de la fonction compilée." -#: ../Doc/reference/datamodel.rst:499 +#: ../Doc/reference/datamodel.rst:501 msgid ":attr:`__globals__`" msgstr ":attr:`__globals__`" -#: ../Doc/reference/datamodel.rst:499 +#: ../Doc/reference/datamodel.rst:501 msgid "" "A reference to the dictionary that holds the function's global variables --- " "the global namespace of the module in which the function was defined." msgstr "" "Référence pointant vers le dictionnaire contenant les variables globales de " -"la fonction -- l'espace de noms global du module dans lequel la fonction est " +"la fonction — l'espace de noms global du module dans lequel la fonction est " "définie." -#: ../Doc/reference/datamodel.rst:499 ../Doc/reference/datamodel.rst:510 +#: ../Doc/reference/datamodel.rst:501 ../Doc/reference/datamodel.rst:512 msgid "Read-only" msgstr "Accessible en lecture seule" -#: ../Doc/reference/datamodel.rst:506 +#: ../Doc/reference/datamodel.rst:508 msgid ":attr:`~object.__dict__`" msgstr ":attr:`~object.__dict__`" -#: ../Doc/reference/datamodel.rst:506 +#: ../Doc/reference/datamodel.rst:508 msgid "The namespace supporting arbitrary function attributes." -msgstr "Espace de noms accueillant les attributs de la fonction." +msgstr "Espace de nommage accueillant les attributs de la fonction." -#: ../Doc/reference/datamodel.rst:510 +#: ../Doc/reference/datamodel.rst:512 msgid ":attr:`__closure__`" msgstr ":attr:`__closure__`" -#: ../Doc/reference/datamodel.rst:510 +#: ../Doc/reference/datamodel.rst:512 msgid "" "``None`` or a tuple of cells that contain bindings for the function's free " "variables. See below for information on the ``cell_contents`` attribute." msgstr "" "``None`` ou tuple de cellules qui contient un lien pour chaque variable " "libre de la fonction. Voir ci-dessous pour les informations relatives à " -"l'attribut ``cell_contents``" +"l'attribut ``cell_contents``." -#: ../Doc/reference/datamodel.rst:517 +#: ../Doc/reference/datamodel.rst:519 msgid ":attr:`__annotations__`" msgstr ":attr:`__annotations__`" -#: ../Doc/reference/datamodel.rst:517 +#: ../Doc/reference/datamodel.rst:519 msgid "" "A dict containing annotations of parameters. The keys of the dict are the " "parameter names, and ``'return'`` for the return annotation, if provided." @@ -923,25 +923,25 @@ msgstr "" "dictionnaire ne sont présentes que si les paramètres sont effectivement " "annotés." -#: ../Doc/reference/datamodel.rst:524 +#: ../Doc/reference/datamodel.rst:526 msgid ":attr:`__kwdefaults__`" msgstr ":attr:`__kwdefaults__`" -#: ../Doc/reference/datamodel.rst:524 +#: ../Doc/reference/datamodel.rst:526 msgid "A dict containing defaults for keyword-only parameters." msgstr "" "Dictionnaire contenant les valeurs par défaut pour les paramètres passés par " "mot-clé." -#: ../Doc/reference/datamodel.rst:528 +#: ../Doc/reference/datamodel.rst:530 msgid "" "Most of the attributes labelled \"Writable\" check the type of the assigned " "value." msgstr "" -"La plupart des attributs étiquetés \"Accessible en écriture\" vérifient le " +"La plupart des attributs étiquetés « Accessible en écriture » vérifient le " "type de la valeur qu'on leur assigne." -#: ../Doc/reference/datamodel.rst:530 +#: ../Doc/reference/datamodel.rst:532 msgid "" "Function objects also support getting and setting arbitrary attributes, " "which can be used, for example, to attach metadata to functions. Regular " @@ -958,7 +958,7 @@ msgstr "" "les fonctions définies par l'utilisateur. Les attributs de fonction pour les " "fonctions natives seront peut-être acceptés dans le futur.*" -#: ../Doc/reference/datamodel.rst:536 +#: ../Doc/reference/datamodel.rst:538 msgid "" "A cell object has the attribute ``cell_contents``. This can be used to get " "the value of the cell, as well as set the value." @@ -966,7 +966,7 @@ msgstr "" "Un objet cellule possède un attribut ``cell_contents``. Il peut être utilisé " "pour obtenir la valeur de la cellule et pour en définir la valeur." -#: ../Doc/reference/datamodel.rst:539 +#: ../Doc/reference/datamodel.rst:541 msgid "" "Additional information about a function's definition can be retrieved from " "its code object; see the description of internal types below." @@ -974,11 +974,11 @@ msgstr "" "Vous trouvez davantage d'informations sur la définition de fonctions dans le " "code de cet objet ; la description des types internes est donnée plus bas." -#: ../Doc/reference/datamodel.rst:609 +#: ../Doc/reference/datamodel.rst:611 msgid "Instance methods" msgstr "Méthodes d'instances" -#: ../Doc/reference/datamodel.rst:548 +#: ../Doc/reference/datamodel.rst:550 msgid "" "An instance method object combines a class, a class instance and any " "callable object (normally a user-defined function)." @@ -986,7 +986,7 @@ msgstr "" "Un objet méthode d'instance combine une classe, une instance de classe et " "tout objet appelable (normalement une fonction définie par l'utilisateur)." -#: ../Doc/reference/datamodel.rst:558 +#: ../Doc/reference/datamodel.rst:560 msgid "" "Special read-only attributes: :attr:`__self__` is the class instance " "object, :attr:`__func__` is the function object; :attr:`__doc__` is the " @@ -1002,7 +1002,7 @@ msgstr "" "__name__``) ; :attr:`__module__` est le nom du module où la méthode est " "définie ou ``None`` s'il n'est pas disponible." -#: ../Doc/reference/datamodel.rst:564 +#: ../Doc/reference/datamodel.rst:566 msgid "" "Methods also support accessing (but not setting) the arbitrary function " "attributes on the underlying function object." @@ -1010,7 +1010,7 @@ msgstr "" "Les méthodes savent aussi accéder (mais pas modifier) les attributs de la " "fonction de l'objet fonction sous-jacent." -#: ../Doc/reference/datamodel.rst:567 +#: ../Doc/reference/datamodel.rst:569 msgid "" "User-defined method objects may be created when getting an attribute of a " "class (perhaps via an instance of that class), if that attribute is a user-" @@ -1021,7 +1021,7 @@ msgstr "" "classe) si cet attribut est un objet fonction définie par l'utilisateur ou " "un objet méthode de classe." -#: ../Doc/reference/datamodel.rst:571 +#: ../Doc/reference/datamodel.rst:573 msgid "" "When an instance method object is created by retrieving a user-defined " "function object from a class via one of its instances, its :attr:`__self__` " @@ -1033,7 +1033,7 @@ msgstr "" "`__self__` est l'instance et l'objet méthode est réputé lié. Le nouvel " "attribut de la méthode :attr:`__func__` est l'objet fonction original." -#: ../Doc/reference/datamodel.rst:577 +#: ../Doc/reference/datamodel.rst:579 msgid "" "When a user-defined method object is created by retrieving another method " "object from a class or instance, the behaviour is the same as for a function " @@ -1046,7 +1046,7 @@ msgstr "" "nouvelle instance qui n'est pas l'objet méthode original mais son attribut :" "attr:`__func__`." -#: ../Doc/reference/datamodel.rst:583 +#: ../Doc/reference/datamodel.rst:585 msgid "" "When an instance method object is created by retrieving a class method " "object from a class or instance, its :attr:`__self__` attribute is the class " @@ -1058,7 +1058,7 @@ msgstr "" "elle-même et son attribut :attr:`__func__` est l'objet fonction sous-jacent " "la méthode de classe." -#: ../Doc/reference/datamodel.rst:588 +#: ../Doc/reference/datamodel.rst:590 msgid "" "When an instance method object is called, the underlying function (:attr:" "`__func__`) is called, inserting the class instance (:attr:`__self__`) in " @@ -1073,7 +1073,7 @@ msgstr "" "et que ``x`` est une instance de :class:`C`, alors appeler ``x.f(1)`` est " "équivalent à appeler ``C.f(x, 1)``." -#: ../Doc/reference/datamodel.rst:595 +#: ../Doc/reference/datamodel.rst:597 msgid "" "When an instance method object is derived from a class method object, the " "\"class instance\" stored in :attr:`__self__` will actually be the class " @@ -1085,7 +1085,7 @@ msgstr "" "classe elle-même. Ainsi, appeler ``x.f(1)`` ou ``C.f(1)`` est équivalent à " "appeler ``f(C, 1)`` où ``f`` est la fonction sous-jacente." -#: ../Doc/reference/datamodel.rst:600 +#: ../Doc/reference/datamodel.rst:602 msgid "" "Note that the transformation from function object to instance method object " "happens each time the attribute is retrieved from the instance. In some " @@ -1108,18 +1108,18 @@ msgstr "" "classe ne sont pas converties en méthodes liées ; ceci n'a lieu que pour les " "fonctions qui sont attributs de la classe." -#: ../Doc/reference/datamodel.rst:624 +#: ../Doc/reference/datamodel.rst:626 msgid "Generator functions" msgstr "Fonctions générateurs" -#: ../Doc/reference/datamodel.rst:616 +#: ../Doc/reference/datamodel.rst:618 msgid "" "A function or method which uses the :keyword:`yield` statement (see section :" "ref:`yield`) is called a :dfn:`generator function`. Such a function, when " "called, always returns an iterator object which can be used to execute the " "body of the function: calling the iterator's :meth:`iterator.__next__` " "method will cause the function to execute until it provides a value using " -"the :keyword:`yield` statement. When the function executes a :keyword:" +"the :keyword:`!yield` statement. When the function executes a :keyword:" "`return` statement or falls off the end, a :exc:`StopIteration` exception is " "raised and the iterator will have reached the end of the set of values to be " "returned." @@ -1129,16 +1129,16 @@ msgstr "" "fonction, lorsqu'elle est appelée, retourne toujours un objet itérateur qui " "peut être utilisé pour exécuter le corps de la fonction : appeler la " "méthode :meth:`iterator.__next__` de l'itérateur exécute la fonction jusqu'à " -"ce qu'elle renvoie une valeur à l'aide de l'instruction :keyword:`yield`. " +"ce qu'elle renvoie une valeur à l'aide de l'instruction :keyword:`!yield`. " "Quand la fonction exécute l'instruction :keyword:`return` ou se termine, une " "exception :exc:`StopIteration` est levée et l'itérateur a atteint la fin de " "l'ensemble de valeurs qu'il peut renvoyer." -#: ../Doc/reference/datamodel.rst:634 +#: ../Doc/reference/datamodel.rst:636 msgid "Coroutine functions" msgstr "Fonctions coroutines" -#: ../Doc/reference/datamodel.rst:630 +#: ../Doc/reference/datamodel.rst:632 msgid "" "A function or method which is defined using :keyword:`async def` is called " "a :dfn:`coroutine function`. Such a function, when called, returns a :term:" @@ -1152,11 +1152,11 @@ msgstr "" "expressions :keyword:`await` ou :keyword:`async with` ou des instructions :" "keyword:`async for`. Voir également la section :ref:`coroutine-objects`." -#: ../Doc/reference/datamodel.rst:653 +#: ../Doc/reference/datamodel.rst:655 msgid "Asynchronous generator functions" msgstr "Fonctions générateurs asynchrones" -#: ../Doc/reference/datamodel.rst:641 +#: ../Doc/reference/datamodel.rst:643 msgid "" "A function or method which is defined using :keyword:`async def` and which " "uses the :keyword:`yield` statement is called a :dfn:`asynchronous generator " @@ -1170,7 +1170,7 @@ msgstr "" "itérateur asynchrone qui peut être utilisé dans des instructions :keyword:" "`async for` pour exécuter le corps de la fonction." -#: ../Doc/reference/datamodel.rst:647 +#: ../Doc/reference/datamodel.rst:649 msgid "" "Calling the asynchronous iterator's :meth:`aiterator.__anext__` method will " "return an :term:`awaitable` which when awaited will execute until it " @@ -1187,11 +1187,11 @@ msgstr "" "l'itérateur asynchrone a atteint la fin de l'ensemble des valeurs qu'il peut " "produire." -#: ../Doc/reference/datamodel.rst:668 +#: ../Doc/reference/datamodel.rst:670 msgid "Built-in functions" msgstr "Fonctions natives" -#: ../Doc/reference/datamodel.rst:661 +#: ../Doc/reference/datamodel.rst:663 msgid "" "A built-in function object is a wrapper around a C function. Examples of " "built-in functions are :func:`len` and :func:`math.sin` (:mod:`math` is a " @@ -1212,11 +1212,11 @@ msgstr "" "`__module__` est le nom du module où la fonction est définie ou ``None`` " "s'il n'est pas disponible." -#: ../Doc/reference/datamodel.rst:680 +#: ../Doc/reference/datamodel.rst:682 msgid "Built-in methods" msgstr "Méthodes natives" -#: ../Doc/reference/datamodel.rst:676 +#: ../Doc/reference/datamodel.rst:678 msgid "" "This is really a different disguise of a built-in function, this time " "containing an object passed to the C function as an implicit extra " @@ -1226,15 +1226,15 @@ msgid "" msgstr "" "Ce sont des fonctions natives déguisées, contenant un objet passé à une " "fonction C en tant qu'argument supplémentaire implicite. Un exemple de " -"méthode native est ``une_liste.append()`` (une_liste étant un objet liste). " -"Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` est défini " -"à l'objet *une_liste*." +"méthode native est ``une_liste.append()`` (``une_liste`` étant un objet " +"liste). Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` " +"est défini à l'objet *une_liste*." -#: ../Doc/reference/datamodel.rst:687 +#: ../Doc/reference/datamodel.rst:689 msgid "Classes" msgstr "Classes" -#: ../Doc/reference/datamodel.rst:683 +#: ../Doc/reference/datamodel.rst:685 msgid "" "Classes are callable. These objects normally act as factories for new " "instances of themselves, but variations are possible for class types that " @@ -1248,11 +1248,11 @@ msgstr "" "l'appel sont passés à :meth:`__new__` et, dans le cas classique, :meth:" "`__new__` initialise une nouvelle instance." -#: ../Doc/reference/datamodel.rst:692 +#: ../Doc/reference/datamodel.rst:694 msgid "Class Instances" msgstr "Instances de classe" -#: ../Doc/reference/datamodel.rst:690 +#: ../Doc/reference/datamodel.rst:692 msgid "" "Instances of arbitrary classes can be made callable by defining a :meth:" "`__call__` method in their class." @@ -1260,44 +1260,45 @@ msgstr "" "Les instances d'une classe peuvent devenir des appelables si vous définissez " "la méthode :meth:`__call__` de leur classe." -#: ../Doc/reference/datamodel.rst:742 +#: ../Doc/reference/datamodel.rst:744 msgid "Modules" msgstr "Modules" -#: ../Doc/reference/datamodel.rst:699 +#: ../Doc/reference/datamodel.rst:701 msgid "" "Modules are a basic organizational unit of Python code, and are created by " "the :ref:`import system ` as invoked either by the :keyword:" -"`import` statement (see :keyword:`import`), or by calling functions such as :" -"func:`importlib.import_module` and built-in :func:`__import__`. A module " -"object has a namespace implemented by a dictionary object (this is the " -"dictionary referenced by the ``__globals__`` attribute of functions defined " -"in the module). Attribute references are translated to lookups in this " -"dictionary, e.g., ``m.x`` is equivalent to ``m.__dict__[\"x\"]``. A module " -"object does not contain the code object used to initialize the module (since " -"it isn't needed once the initialization is done)." +"`import` statement, or by calling functions such as :func:`importlib." +"import_module` and built-in :func:`__import__`. A module object has a " +"namespace implemented by a dictionary object (this is the dictionary " +"referenced by the ``__globals__`` attribute of functions defined in the " +"module). Attribute references are translated to lookups in this dictionary, " +"e.g., ``m.x`` is equivalent to ``m.__dict__[\"x\"]``. A module object does " +"not contain the code object used to initialize the module (since it isn't " +"needed once the initialization is done)." msgstr "" "Les modules constituent l'organisation de base du code Python et sont créés " "par le :ref:`mécanisme d'import ` soit avec l'instruction :" -"keyword:`import` (voir :keyword:`import`), soit en appelant des fonctions " -"telles que :func:`importlib.import_module` ou la fonction native :func:" -"`__import__`. Un objet module possède un espace de noms implémenté par un " -"objet dictionnaire (c'est le dictionnaire référencé par l'attribut " -"``__globals__`` des fonctions définies dans le module). Les références à un " -"attribut sont traduites en recherches dans ce dictionnaire, par exemple ``m." -"x`` est équivalent à ``m.__dict__[\"x\"]``. Un objet module ne contient pas " -"l'objet code utilisé pour initialiser le module (puisque celui-ci n'est plus " -"nécessaire une fois l'initialisation terminée)." - -#: ../Doc/reference/datamodel.rst:711 +"keyword:`import`, soit en appelant des fonctions telles que :func:`importlib." +"import_module` ou la fonction native :func:`__import__`. Un objet module " +"possède un espace de nommage implémenté par un objet dictionnaire (c'est le " +"dictionnaire référencé par l'attribut ``__globals__`` des fonctions définies " +"dans le module). Les références à un attribut sont traduites en recherches " +"dans ce dictionnaire, par exemple ``m.x`` est équivalent à ``m.__dict__[\"x" +"\"]``. Un objet module ne contient pas l'objet code utilisé pour initialiser " +"le module (puisque celui-ci n'est plus nécessaire une fois l'initialisation " +"terminée)." + +#: ../Doc/reference/datamodel.rst:713 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." msgstr "" -"L'assignation d'un attribut met à jour le dictionnaire d'espace de noms du " -"module, par exemple ``m.x = 1`` est équivalent à ``m.__dict__[\"x\"] = 1``." +"L'assignation d'un attribut met à jour le dictionnaire d'espace de nommage " +"du module, par exemple ``m.x = 1`` est équivalent à ``m.__dict__[\"x\"] = " +"1``." -#: ../Doc/reference/datamodel.rst:721 +#: ../Doc/reference/datamodel.rst:723 msgid "" "Predefined (writable) attributes: :attr:`__name__` is the module's name; :" "attr:`__doc__` is the module's documentation string, or ``None`` if " @@ -1322,15 +1323,15 @@ msgstr "" "chargés dynamiquement à partir d'une bibliothèque partagée, c'est le chemin " "vers le fichier de la bibliothèque partagée." -#: ../Doc/reference/datamodel.rst:734 +#: ../Doc/reference/datamodel.rst:736 msgid "" "Special read-only attribute: :attr:`~object.__dict__` is the module's " "namespace as a dictionary object." msgstr "" "Attribut spécial en lecture seule : :attr:`~object.__dict__` est l'objet " -"dictionnaire répertoriant l'espace de noms du module." +"dictionnaire répertoriant l'espace de nommage du module." -#: ../Doc/reference/datamodel.rst:739 +#: ../Doc/reference/datamodel.rst:741 msgid "" "Because of the way CPython clears module dictionaries, the module dictionary " "will be cleared when the module falls out of scope even if the dictionary " @@ -1343,11 +1344,11 @@ msgstr "" "ceci, copiez le dictionnaire ou gardez le module dans votre champ de " "visibilité tant que vous souhaitez utiliser le dictionnaire directement." -#: ../Doc/reference/datamodel.rst:801 +#: ../Doc/reference/datamodel.rst:803 msgid "Custom classes" msgstr "Classes déclarées par le développeur" -#: ../Doc/reference/datamodel.rst:745 +#: ../Doc/reference/datamodel.rst:747 msgid "" "Custom class types are typically created by class definitions (see section :" "ref:`class`). A class has a namespace implemented by a dictionary object. " @@ -1364,21 +1365,21 @@ msgid "" msgstr "" "Le type d'une classe déclarée par le développeur est créé au moment de la " "définition de la classe (voir la section :ref:`class`). Une classe possède " -"un espace de noms implémenté sous la forme d'un objet dictionnaire. Les " +"un espace de nommage implémenté sous la forme d'un objet dictionnaire. Les " "références vers les attributs de la classe sont traduits en recherches dans " "ce dictionnaire, par exemple ``C.x`` est traduit en ``C.__dict__[\"x\"]`` " "(bien qu'il existe un certain nombre de fonctions automatiques qui " "permettent de trouver des attributs par d'autres moyens). Si le nom " "d'attribut n'est pas trouvé dans ce dictionnaire, la recherche continue dans " "les classes de base. Les classes de base sont trouvées en utilisant l'ordre " -"de résolution des méthodes (*method resolution order* en anglais, ou MRO) C3 " -"qui a un comportement cohérent même en présence d'héritages en \"diamant\", " -"où différentes branches d'héritages conduisent vers un ancêtre commun. Vous " -"trouverez plus de détails sur l'ordre de résolution des méthodes MRO C3 " -"utilisé par Python dans la documentation de la version 2.3 disponible sur " -"https://www.python.org/download/releases/2.3/mro/." +"de résolution des méthodes (*method resolution order* en anglais, ou MRO) " +"*C3* qui a un comportement cohérent même en présence d'héritages en \"diamant" +"\", où différentes branches d'héritages conduisent vers un ancêtre commun. " +"Vous trouverez plus de détails sur l'ordre de résolution des méthodes MRO " +"*C3* utilisé par Python dans la documentation de la version 2.3 disponible " +"sur https://www.python.org/download/releases/2.3/mro/." -#: ../Doc/reference/datamodel.rst:769 +#: ../Doc/reference/datamodel.rst:771 msgid "" "When a class attribute reference (for class :class:`C`, say) would yield a " "class method object, it is transformed into an instance method object whose :" @@ -1396,7 +1397,7 @@ msgstr "" "`descriptors` pour une autre manière dont les attributs d'une classe " "diffèrent de ceux réellement contenus dans son :attr:`~objet.__dict__`." -#: ../Doc/reference/datamodel.rst:779 +#: ../Doc/reference/datamodel.rst:781 msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." @@ -1404,7 +1405,7 @@ msgstr "" "Les assignations d'un attribut de classe mettent à jour le dictionnaire de " "la classe, jamais le dictionnaire d'une classe de base." -#: ../Doc/reference/datamodel.rst:784 +#: ../Doc/reference/datamodel.rst:786 msgid "" "A class object can be called (see above) to yield a class instance (see " "below)." @@ -1412,7 +1413,7 @@ msgstr "" "Un objet classe peut être appelé (voir ci-dessus) pour produire une instance " "de classe (voir ci-dessous)." -#: ../Doc/reference/datamodel.rst:794 +#: ../Doc/reference/datamodel.rst:796 msgid "" "Special attributes: :attr:`~definition.__name__` is the class name; :attr:" "`__module__` is the module name in which the class was defined; :attr:" @@ -1425,19 +1426,19 @@ msgid "" msgstr "" "Attributs spéciaux : :attr:`~definition.__name__` est le nom de la classe ; :" "attr:`__module__` est le nom du module dans lequel la classe est définie ; :" -"attr:`~object.__dict__` est le dictionnaire contenant l'espace de noms de la " -"classe ; :attr:`~class.__bases__` est un tuple contenant les classes de " +"attr:`~object.__dict__` est le dictionnaire contenant l'espace de nommage de " +"la classe ; :attr:`~class.__bases__` est un tuple contenant les classes de " "base, dans l'ordre d'apparition dans la liste des classes de base ; :attr:" "`__doc__` est la chaîne de documentation de la classe (ou ``None`` si elle " "n'existe pas) ; :attr:`__annotations__` (optionnel) est un dictionnaire " "contenant les :term:`annotations de variables ` " "collectées durant l'exécution du corps de la classe." -#: ../Doc/reference/datamodel.rst:844 +#: ../Doc/reference/datamodel.rst:846 msgid "Class instances" msgstr "Instances de classes" -#: ../Doc/reference/datamodel.rst:810 +#: ../Doc/reference/datamodel.rst:812 msgid "" "A class instance is created by calling a class object (see above). A class " "instance has a namespace implemented as a dictionary which is the first " @@ -1454,23 +1455,23 @@ msgid "" "method, that is called to satisfy the lookup." msgstr "" "Une instance de classe est créée en appelant un objet classe (voir ci-" -"dessus). Une instance de classe possède un espace de noms implémenté sous la " -"forme d'un dictionnaire qui est le premier endroit où sont recherchées les " -"références aux attributs. Quand un attribut n'est pas trouvé dans ce " +"dessus). Une instance de classe possède un espace de nommage implémenté sous " +"la forme d'un dictionnaire qui est le premier endroit où sont recherchées " +"les références aux attributs. Quand un attribut n'est pas trouvé dans ce " "dictionnaire et que la classe de l'instance contient un attribut avec ce " "nom, la recherche continue avec les attributs de la classe. Si un attribut " "de classe est trouvé et que c'est un objet fonction définie par " "l'utilisateur, il est transformé en objet méthode d'instance dont " "l'attribut :attr:`__self__` est l'instance. Les objets méthodes statiques et " "méthodes de classe sont aussi transformés ; reportez-vous ci-dessous à " -"\"Classes\". Lisez la section :ref:`descriptors` pour une autre façon de " +"« Classes ». Lisez la section :ref:`descriptors` pour une autre façon de " "récupérer les attributs d'une classe, où la récupération *via* ses instances " "peut différer des objets réellement stockés dans le :attr:`~object.__dict__` " "de la classe. Si aucun attribut de classe n'est trouvé et que la classe de " "l'objet possède une méthode :meth:`__getattr__`, cette méthode est appelée " "pour rechercher une correspondance." -#: ../Doc/reference/datamodel.rst:826 +#: ../Doc/reference/datamodel.rst:828 msgid "" "Attribute assignments and deletions update the instance's dictionary, never " "a class's dictionary. If the class has a :meth:`__setattr__` or :meth:" @@ -1482,7 +1483,7 @@ msgstr "" "méthode :meth:`__setattr__` ou :meth:`__delattr__`, elle est appelée au lieu " "de mettre à jour le dictionnaire de l'instance directement." -#: ../Doc/reference/datamodel.rst:836 +#: ../Doc/reference/datamodel.rst:838 msgid "" "Class instances can pretend to be numbers, sequences, or mappings if they " "have methods with certain special names. See section :ref:`specialnames`." @@ -1491,7 +1492,7 @@ msgstr "" "ou des tableaux de correspondance si elles ont des méthodes avec des noms " "spéciaux. Voir la section :ref:`specialnames`." -#: ../Doc/reference/datamodel.rst:843 +#: ../Doc/reference/datamodel.rst:845 msgid "" "Special attributes: :attr:`~object.__dict__` is the attribute dictionary; :" "attr:`~instance.__class__` is the instance's class." @@ -1499,11 +1500,11 @@ msgstr "" "Attributs spéciaux : :attr:`~object.__dict__` est le dictionnaire des " "attributs ; :attr:`~instance.__class__` est la classe de l'instance." -#: ../Doc/reference/datamodel.rst:870 +#: ../Doc/reference/datamodel.rst:872 msgid "I/O objects (also known as file objects)" msgstr "Objets Entrées-Sorties (ou objets fichiers)" -#: ../Doc/reference/datamodel.rst:860 +#: ../Doc/reference/datamodel.rst:862 msgid "" "A :term:`file object` represents an open file. Various shortcuts are " "available to create file objects: the :func:`open` built-in function, and " @@ -1514,10 +1515,10 @@ msgstr "" "Un :term:`objet fichier` représente un fichier ouvert. Différents raccourcis " "existent pour créer des objets fichiers : la fonction native :func:`open` et " "aussi :func:`os.popen`, :func:`os.fdopen` ou la méthode :meth:`~socket." -"socket.makefile` des objets sockets (et sûrement d'autres fonctions ou " +"socket.makefile` des objets connecteurs (et sûrement d'autres fonctions ou " "méthodes fournies par les modules d'extensions)." -#: ../Doc/reference/datamodel.rst:866 +#: ../Doc/reference/datamodel.rst:868 msgid "" "The objects ``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` are initialized " "to file objects corresponding to the interpreter's standard input, output " @@ -1530,11 +1531,11 @@ msgstr "" "et se conforment donc à l'interface définie par la classe abstraite :class:" "`io.TextIOBase`." -#: ../Doc/reference/datamodel.rst:1108 +#: ../Doc/reference/datamodel.rst:1110 msgid "Internal types" msgstr "Types internes" -#: ../Doc/reference/datamodel.rst:877 +#: ../Doc/reference/datamodel.rst:879 msgid "" "A few types used internally by the interpreter are exposed to the user. " "Their definitions may change with future versions of the interpreter, but " @@ -1544,11 +1545,11 @@ msgstr "" "l'utilisateur. Leur définition peut changer dans les futures versions de " "l'interpréteur mais ils sont donnés ci-dessous à fin d'exhaustivité." -#: ../Doc/reference/datamodel.rst:945 +#: ../Doc/reference/datamodel.rst:947 msgid "Code objects" msgstr "Objets Code" -#: ../Doc/reference/datamodel.rst:884 +#: ../Doc/reference/datamodel.rst:886 msgid "" "Code objects represent *byte-compiled* executable Python code, or :term:" "`bytecode`. The difference between a code object and a function object is " @@ -1569,7 +1570,7 @@ msgstr "" "objets fonctions, les objets codes sont immuables et ne contiennent aucune " "référence (directe ou indirecte) à des objets muables." -#: ../Doc/reference/datamodel.rst:909 +#: ../Doc/reference/datamodel.rst:911 msgid "" "Special read-only attributes: :attr:`co_name` gives the function name; :attr:" "`co_argcount` is the number of positional arguments (including arguments " @@ -1609,7 +1610,7 @@ msgstr "" "pile nécessaire (y compris pour les variables locales) ; :attr:`co_flags` " "est un entier qui code différents drapeaux pour l'interpréteur." -#: ../Doc/reference/datamodel.rst:928 +#: ../Doc/reference/datamodel.rst:930 msgid "" "The following flag bits are defined for :attr:`co_flags`: bit ``0x04`` is " "set if the function uses the ``*arguments`` syntax to accept an arbitrary " @@ -1624,7 +1625,7 @@ msgstr "" "pour accepter un nombre arbitraire d'arguments nommés ; le bit ``0x20`` est " "positionné à 1 si la fonction est un générateur." -#: ../Doc/reference/datamodel.rst:934 +#: ../Doc/reference/datamodel.rst:936 msgid "" "Future feature declarations (``from __future__ import division``) also use " "bits in :attr:`co_flags` to indicate whether a code object was compiled with " @@ -1639,11 +1640,11 @@ msgstr "" "future activée ; les bits ``0x10`` et ``0x1000`` étaient utilisés dans les " "versions antérieures de Python." -#: ../Doc/reference/datamodel.rst:940 +#: ../Doc/reference/datamodel.rst:942 msgid "Other bits in :attr:`co_flags` are reserved for internal use." msgstr "Les autres bits de :attr:`co_flags` sont réservés à un usage interne." -#: ../Doc/reference/datamodel.rst:944 +#: ../Doc/reference/datamodel.rst:946 msgid "" "If a code object represents a function, the first item in :attr:`co_consts` " "is the documentation string of the function, or ``None`` if undefined." @@ -1652,11 +1653,11 @@ msgstr "" "`co_consts` est la chaîne de documentation de la fonction (ou ``None`` s'il " "n'y en a pas)." -#: ../Doc/reference/datamodel.rst:1004 +#: ../Doc/reference/datamodel.rst:1006 msgid "Frame objects" msgstr "Objets cadres" -#: ../Doc/reference/datamodel.rst:952 +#: ../Doc/reference/datamodel.rst:954 msgid "" "Frame objects represent execution frames. They may occur in traceback " "objects (see below), and are also passed to registered trace functions." @@ -1665,7 +1666,7 @@ msgstr "" "traces (voir plus loin) et est passé comme argument aux fonctions de traçage " "actives." -#: ../Doc/reference/datamodel.rst:963 +#: ../Doc/reference/datamodel.rst:965 msgid "" "Special read-only attributes: :attr:`f_back` is to the previous stack frame " "(towards the caller), or ``None`` if this is the bottom stack frame; :attr:" @@ -1684,7 +1685,7 @@ msgstr "" "l'instruction précise (c'est un indice dans la chaîne de *bytecode* de " "l'objet code)." -#: ../Doc/reference/datamodel.rst:977 +#: ../Doc/reference/datamodel.rst:979 msgid "" "Special writable attributes: :attr:`f_trace`, if not ``None``, is a function " "called for various events during code execution (this is used by the " @@ -1694,40 +1695,40 @@ msgstr "" "Attributs spéciaux en lecture-écriture : :attr:`f_trace`, s'il n'est pas " "``None``, c'est une fonction appelée à différentes occasions durant " "l'exécution du code (elle est utilisée par le débogueur). Normalement, un " -"événement est déclenché pour chaque ligne de code source -- ce comportement " -"peut être désactivé en définissant :attr:`f_trace_lines` à :const:`False`." +"événement est déclenché pour chaque ligne de code source — ce comportement " +"peut être désactivé en définissant :attr:`f_trace_lines` à :const:`False`." -#: ../Doc/reference/datamodel.rst:982 +#: ../Doc/reference/datamodel.rst:984 msgid "" "Implementations *may* allow per-opcode events to be requested by setting :" "attr:`f_trace_opcodes` to :const:`True`. Note that this may lead to " "undefined interpreter behaviour if exceptions raised by the trace function " "escape to the function being traced." msgstr "" -"Une implémentation *peut* autoriser le déclenchement des événements opcode " -"par opcode en définissant :attr:`f_trace_opcodes` à :const:`True`. Notez que " -"cela peut conduire à un comportement erratique de l'interpréteur si des " +"Une implémentation *peut* autoriser le déclenchement des événements *opcode* " +"par *opcode* en définissant :attr:`f_trace_opcodes` à :const:`True`. Notez " +"que cela peut conduire à un comportement erratique de l'interpréteur si des " "exceptions levées la fonction de traçage s'échappent vers la fonction en " "train d'être tracée." -#: ../Doc/reference/datamodel.rst:987 +#: ../Doc/reference/datamodel.rst:989 msgid "" ":attr:`f_lineno` is the current line number of the frame --- writing to this " "from within a trace function jumps to the given line (only for the bottom-" "most frame). A debugger can implement a Jump command (aka Set Next " "Statement) by writing to f_lineno." msgstr "" -":attr:`f_lineno` est le numéro de la ligne courante du cadre --- écrire " -"dedans depuis une fonction trace fait sauter à la ligne demandée (seulement " -"pour le cadre le plus bas). Un débogueur peut implémenter une commande " -"\"sauter vers\" (aussi appelée \"Définir la prochaine instruction\" ou *Set " -"Next Statement* en anglais) en écrivant dans f_lineno." +":attr:`f_lineno` est le numéro de la ligne courante du cadre — écrire dedans " +"depuis une fonction trace fait sauter à la ligne demandée (seulement pour le " +"cadre le plus bas). Un débogueur peut implémenter une commande « sauter " +"vers » (aussi appelée « Définir la prochaine instruction » ou *Set Next " +"Statement* en anglais) en écrivant dans ``f_lineno``." -#: ../Doc/reference/datamodel.rst:992 +#: ../Doc/reference/datamodel.rst:994 msgid "Frame objects support one method:" msgstr "Les objets cadres comprennent une méthode :" -#: ../Doc/reference/datamodel.rst:996 +#: ../Doc/reference/datamodel.rst:998 msgid "" "This method clears all references to local variables held by the frame. " "Also, if the frame belonged to a generator, the generator is finalized. " @@ -1740,15 +1741,15 @@ msgstr "" "incluent des objets cadres (par exemple, lors de la capture d'une exception " "et du stockage de la pile d'appels pour une utilisation future)." -#: ../Doc/reference/datamodel.rst:1002 +#: ../Doc/reference/datamodel.rst:1004 msgid ":exc:`RuntimeError` is raised if the frame is currently executing." msgstr ":exc:`RuntimeError` est levée si le cadre est en cours d'exécution." -#: ../Doc/reference/datamodel.rst:1064 +#: ../Doc/reference/datamodel.rst:1066 msgid "Traceback objects" msgstr "Objets traces" -#: ../Doc/reference/datamodel.rst:1019 +#: ../Doc/reference/datamodel.rst:1021 msgid "" "Traceback objects represent a stack trace of an exception. A traceback " "object is implicitly created when an exception occurs, and may also be " @@ -1758,7 +1759,7 @@ msgstr "" "trace est implicitement créé quand une exception apparaît et peut être " "explicitement créé en appelant :class:`types.TracebackType`." -#: ../Doc/reference/datamodel.rst:1023 +#: ../Doc/reference/datamodel.rst:1025 msgid "" "For implicitly created tracebacks, when the search for an exception handler " "unwinds the execution stack, at each unwound level a traceback object is " @@ -1775,7 +1776,7 @@ msgstr "" "par le troisième élément du tuple renvoyé par ``sys.exc_info()`` et comme " "attribut ``__traceback__`` de l'exception qui est traitée." -#: ../Doc/reference/datamodel.rst:1031 +#: ../Doc/reference/datamodel.rst:1033 msgid "" "When the program contains no suitable handler, the stack trace is written " "(nicely formatted) to the standard error stream; if the interpreter is " @@ -1786,7 +1787,7 @@ msgstr "" "l'interpréteur est interactif, elle est rendue disponible pour l'utilisateur " "en tant que ``sys.last_traceback``." -#: ../Doc/reference/datamodel.rst:1036 +#: ../Doc/reference/datamodel.rst:1038 msgid "" "For explicitly created tracebacks, it is up to the creator of the traceback " "to determine how the ``tb_next`` attributes should be linked to form a full " @@ -1796,7 +1797,7 @@ msgstr "" "déterminer comment les attributs ``tb_next`` doivent être liés pour former " "la pile complète des traces." -#: ../Doc/reference/datamodel.rst:1046 +#: ../Doc/reference/datamodel.rst:1048 msgid "" "Special read-only attributes: :attr:`tb_frame` points to the execution frame " "of the current level; :attr:`tb_lineno` gives the line number where the " @@ -1813,7 +1814,7 @@ msgstr "" "instruction :keyword:`try` sans qu'il n'y ait de clause :keyword:`!except` " "adéquate ou sans clause *finally*." -#: ../Doc/reference/datamodel.rst:1058 +#: ../Doc/reference/datamodel.rst:1060 msgid "" "Special writable attribute: :attr:`tb_next` is the next level in the stack " "trace (towards the frame where the exception occurred), or ``None`` if there " @@ -1823,20 +1824,20 @@ msgstr "" "dans la pile d'exécution (en direction du cadre où l'exception a eu lieu) ou " "``None`` s'il n'y a pas de niveau suivant." -#: ../Doc/reference/datamodel.rst:1062 +#: ../Doc/reference/datamodel.rst:1064 msgid "" "Traceback objects can now be explicitly instantiated from Python code, and " "the ``tb_next`` attribute of existing instances can be updated." msgstr "" -"Les objets traces peuvent maintenant être explicitement instanciés depuis le " -"code Python et l'attribut ``tb_next`` des instances existantes peut être mis " -"à jour." +"Les objets de traces d'appels peuvent maintenant être explicitement " +"instanciés depuis le code Python et l'attribut ``tb_next`` des instances " +"existantes peut être mis à jour." -#: ../Doc/reference/datamodel.rst:1090 +#: ../Doc/reference/datamodel.rst:1092 msgid "Slice objects" msgstr "Objets tranches" -#: ../Doc/reference/datamodel.rst:1069 +#: ../Doc/reference/datamodel.rst:1071 msgid "" "Slice objects are used to represent slices for :meth:`__getitem__` methods. " "They are also created by the built-in :func:`slice` function." @@ -1845,7 +1846,7 @@ msgstr "" "meth:`__getitem__`. Ils sont aussi créés par la fonction native :func:" "`slice`." -#: ../Doc/reference/datamodel.rst:1077 +#: ../Doc/reference/datamodel.rst:1079 msgid "" "Special read-only attributes: :attr:`~slice.start` is the lower bound; :attr:" "`~slice.stop` is the upper bound; :attr:`~slice.step` is the step value; " @@ -1856,11 +1857,11 @@ msgstr "" "step` est la valeur du pas ; chaque attribut vaut ``None`` s'il est omis. " "Ces attributs peuvent être de n'importe quel type." -#: ../Doc/reference/datamodel.rst:1081 +#: ../Doc/reference/datamodel.rst:1083 msgid "Slice objects support one method:" msgstr "Les objets tranches comprennent une méthode :" -#: ../Doc/reference/datamodel.rst:1085 +#: ../Doc/reference/datamodel.rst:1087 msgid "" "This method takes a single integer argument *length* and computes " "information about the slice that the slice object would describe if applied " @@ -1876,11 +1877,11 @@ msgstr "" "indices manquants ou en dehors sont gérés de manière cohérente avec les " "tranches normales." -#: ../Doc/reference/datamodel.rst:1100 +#: ../Doc/reference/datamodel.rst:1102 msgid "Static method objects" msgstr "Objets méthodes statiques" -#: ../Doc/reference/datamodel.rst:1093 +#: ../Doc/reference/datamodel.rst:1095 msgid "" "Static method objects provide a way of defeating the transformation of " "function objects to method objects described above. A static method object " @@ -1901,11 +1902,11 @@ msgstr "" "les objets qu'ils encapsulent le soient souvent. Les objets méthodes " "statiques sont créés par le constructeur natif :func:`staticmethod`." -#: ../Doc/reference/datamodel.rst:1108 +#: ../Doc/reference/datamodel.rst:1110 msgid "Class method objects" msgstr "Objets méthodes de classes" -#: ../Doc/reference/datamodel.rst:1103 +#: ../Doc/reference/datamodel.rst:1105 msgid "" "A class method object, like a static method object, is a wrapper around " "another object that alters the way in which that object is retrieved from " @@ -1917,14 +1918,14 @@ msgstr "" "autre objet afin de modifier la façon dont cet objet est récupéré depuis les " "classes et instances de classes. Le comportement des objets méthodes de " "classes dans le cas d'une telle récupération est décrit plus haut, dans " -"\"méthodes définies par l'utilisateur\". Les objets méthodes de classes sont " +"« méthodes définies par l'utilisateur ». Les objets méthodes de classes sont " "créés par le constructeur natif :func:`classmethod`." -#: ../Doc/reference/datamodel.rst:1113 +#: ../Doc/reference/datamodel.rst:1115 msgid "Special method names" msgstr "Méthodes spéciales" -#: ../Doc/reference/datamodel.rst:1119 +#: ../Doc/reference/datamodel.rst:1121 msgid "" "A class can implement certain operations that are invoked by special syntax " "(such as arithmetic operations or subscripting and slicing) by defining " @@ -1949,7 +1950,7 @@ msgstr "" "méthode appropriée n'est pas définie lève une exception (typiquement :exc:" "`AttributeError` ou :exc:`TypeError`)." -#: ../Doc/reference/datamodel.rst:1129 +#: ../Doc/reference/datamodel.rst:1131 msgid "" "Setting a special method to ``None`` indicates that the corresponding " "operation is not available. For example, if a class sets :meth:`__iter__` " @@ -1963,7 +1964,7 @@ msgstr "" "appeler :func:`iter` sur une instance lève :exc:`TypeError` (sans se replier " "sur :meth:`__getitem__`) [#]_." -#: ../Doc/reference/datamodel.rst:1135 +#: ../Doc/reference/datamodel.rst:1137 msgid "" "When implementing a class that emulates any built-in type, it is important " "that the emulation only be implemented to the degree that it makes sense for " @@ -1979,11 +1980,11 @@ msgstr "" "est l'interface de :class:`~xml.dom.NodeList` dans le modèle objet des " "documents W3C)." -#: ../Doc/reference/datamodel.rst:1146 +#: ../Doc/reference/datamodel.rst:1148 msgid "Basic customization" msgstr "Personnalisation de base" -#: ../Doc/reference/datamodel.rst:1152 +#: ../Doc/reference/datamodel.rst:1154 msgid "" "Called to create a new instance of class *cls*. :meth:`__new__` is a static " "method (special-cased so you need not declare it as such) that takes the " @@ -2000,7 +2001,7 @@ msgstr "" "valeur de retour de :meth:`__new__` doit être l'instance du nouvel objet " "(classiquement une instance de *cls*)." -#: ../Doc/reference/datamodel.rst:1159 +#: ../Doc/reference/datamodel.rst:1161 msgid "" "Typical implementations create a new instance of the class by invoking the " "superclass's :meth:`__new__` method using ``super().__new__(cls[, ...])`` " @@ -2012,7 +2013,7 @@ msgstr "" "__new__(cls[, ...])`` avec les arguments adéquats, puis modifie l'instance " "nouvellement créée en tant que de besoin avant de la renvoyer." -#: ../Doc/reference/datamodel.rst:1164 +#: ../Doc/reference/datamodel.rst:1166 msgid "" "If :meth:`__new__` returns an instance of *cls*, then the new instance's :" "meth:`__init__` method will be invoked like ``__init__(self[, ...])``, where " @@ -2024,7 +2025,7 @@ msgstr "" "``__init__(self[, ...])`` où *self* est la nouvelle instance et les autres " "arguments sont les mêmes que ceux passés à :meth:`__new__`." -#: ../Doc/reference/datamodel.rst:1169 +#: ../Doc/reference/datamodel.rst:1171 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." @@ -2032,7 +2033,7 @@ msgstr "" "Si :meth:`__new__` ne renvoie pas une instance de *cls*, alors la méthode :" "meth:`__init__` de la nouvelle instance n'est pas invoquée." -#: ../Doc/reference/datamodel.rst:1172 +#: ../Doc/reference/datamodel.rst:1174 msgid "" ":meth:`__new__` is intended mainly to allow subclasses of immutable types " "(like int, str, or tuple) to customize instance creation. It is also " @@ -2040,11 +2041,11 @@ msgid "" "creation." msgstr "" "L'objectif de :meth:`__new__` est principalement, pour les sous-classes de " -"types immuables (comme int, str ou tuple), d'autoriser la création sur " -"mesure des instances. Elle est aussi souvent surchargée dans les méta-" -"classes pour particulariser la création des classes." +"types immuables (comme ``int``, ``str`` ou ``tuple``), d'autoriser la " +"création sur mesure des instances. Elle est aussi souvent surchargée dans " +"les méta-classes pour particulariser la création des classes." -#: ../Doc/reference/datamodel.rst:1181 +#: ../Doc/reference/datamodel.rst:1183 msgid "" "Called after the instance has been created (by :meth:`__new__`), but before " "it is returned to the caller. The arguments are those passed to the class " @@ -2061,7 +2062,7 @@ msgstr "" "initialisation correcte de la partie classe de base de l'instance ; par " "exemple : ``super().__init__([args...])``." -#: ../Doc/reference/datamodel.rst:1188 +#: ../Doc/reference/datamodel.rst:1190 msgid "" "Because :meth:`__new__` and :meth:`__init__` work together in constructing " "objects (:meth:`__new__` to create it, and :meth:`__init__` to customize " @@ -2073,7 +2074,7 @@ msgstr "" "particulariser), :meth:`__init__` ne doit pas renvoyer de valeur ``None`` ; " "sinon une exception :exc:`TypeError` est levée à l'exécution." -#: ../Doc/reference/datamodel.rst:1201 +#: ../Doc/reference/datamodel.rst:1203 msgid "" "Called when the instance is about to be destroyed. This is also called a " "finalizer or (improperly) a destructor. If a base class has a :meth:" @@ -2087,7 +2088,7 @@ msgstr "" "classe dérivée, si elle existe, doit explicitement l'appeler pour s'assurer " "de l'effacement correct de la partie classe de base de l'instance." -#: ../Doc/reference/datamodel.rst:1207 +#: ../Doc/reference/datamodel.rst:1209 msgid "" "It is possible (though not recommended!) for the :meth:`__del__` method to " "postpone destruction of the instance by creating a new reference to it. " @@ -2103,7 +2104,7 @@ msgstr "" "moment où l'objet ressuscité va être détruit ; l'implémentation actuelle de :" "term:`CPython` ne l'appelle qu'une fois." -#: ../Doc/reference/datamodel.rst:1214 +#: ../Doc/reference/datamodel.rst:1216 msgid "" "It is not guaranteed that :meth:`__del__` methods are called for objects " "that still exist when the interpreter exits." @@ -2111,21 +2112,21 @@ msgstr "" "Il n'est pas garanti que soient appelées les méthodes :meth:`__del__` des " "objets qui existent toujours quand l'interpréteur termine." -#: ../Doc/reference/datamodel.rst:1219 +#: ../Doc/reference/datamodel.rst:1221 msgid "" "``del x`` doesn't directly call ``x.__del__()`` --- the former decrements " "the reference count for ``x`` by one, and the latter is only called when " "``x``'s reference count reaches zero." msgstr "" -"``del x`` n'appelle pas directement ``x.__del__()`` --- la première " -"décrémente le compteur de références de ``x``. La seconde n'est appelée que " -"quand le compteur de références de ``x`` atteint zéro." +"``del x`` n'appelle pas directement ``x.__del__()`` — la première décrémente " +"le compteur de références de ``x``. La seconde n'est appelée que quand le " +"compteur de références de ``x`` atteint zéro." -#: ../Doc/reference/datamodel.rst:1234 +#: ../Doc/reference/datamodel.rst:1236 msgid "Documentation for the :mod:`gc` module." msgstr "Documentation du module :mod:`gc`." -#: ../Doc/reference/datamodel.rst:1238 +#: ../Doc/reference/datamodel.rst:1240 msgid "" "Due to the precarious circumstances under which :meth:`__del__` methods are " "invoked, exceptions that occur during their execution are ignored, and a " @@ -2135,7 +2136,7 @@ msgstr "" "appelée, les exceptions levées pendant son exécution sont ignorées et, à la " "place, un avertissement est affiché sur ``sys.stderr``. En particulier :" -#: ../Doc/reference/datamodel.rst:1242 +#: ../Doc/reference/datamodel.rst:1244 msgid "" ":meth:`__del__` can be invoked when arbitrary code is being executed, " "including from any arbitrary thread. If :meth:`__del__` needs to take a " @@ -2144,13 +2145,13 @@ msgid "" "`__del__`." msgstr "" ":meth:`__del__` peut être invoquée quand du code arbitraire est en cours " -"d'exécution, et ce dans n'importe quel thread. Si :meth:`__del__` a besoin " -"de poser un verrou ou d'accéder à tout autre ressource bloquante, elle peut " -"provoquer un blocage mutuel (*deadlock* en anglais) car la ressource peut " -"être déjà utilisée par le code qui est interrompu pour exécuter la méthode :" -"meth:`__del__`." +"d'exécution, et ce dans n'importe quel fil d'exécution. Si :meth:`__del__` a " +"besoin de poser un verrou ou d'accéder à tout autre ressource bloquante, " +"elle peut provoquer un blocage mutuel (*deadlock* en anglais) car la " +"ressource peut être déjà utilisée par le code qui est interrompu pour " +"exécuter la méthode :meth:`__del__`." -#: ../Doc/reference/datamodel.rst:1248 +#: ../Doc/reference/datamodel.rst:1250 msgid "" ":meth:`__del__` can be executed during interpreter shutdown. As a " "consequence, the global variables it needs to access (including other " @@ -2170,7 +2171,7 @@ msgstr "" "importés soient toujours accessibles au moment où la méthode :meth:`__del__` " "est appelée." -#: ../Doc/reference/datamodel.rst:1263 +#: ../Doc/reference/datamodel.rst:1265 msgid "" "Called by the :func:`repr` built-in function to compute the \"official\" " "string representation of an object. If at all possible, this should look " @@ -2182,16 +2183,16 @@ msgid "" "an \"informal\" string representation of instances of that class is required." msgstr "" "Appelée par la fonction native :func:`repr` pour calculer la représentation " -"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour que " +"« officielle » en chaîne de caractères d'un objet. Tout est fait pour que " "celle-ci ressemble à une expression Python valide pouvant être utilisée pour " "recréer un objet avec la même valeur (dans un environnement donné). Si ce " "n'est pas possible, une chaîne de la forme ``<...une description utile...>`` " "est renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si " "une classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" -"`__repr__` est aussi utilisée quand une représentation \"informelle\" en " +"`__repr__` est aussi utilisée quand une représentation « informelle » en " "chaîne de caractères est demandée pour une instance de cette classe." -#: ../Doc/reference/datamodel.rst:1272 +#: ../Doc/reference/datamodel.rst:1274 msgid "" "This is typically used for debugging, so it is important that the " "representation is information-rich and unambiguous." @@ -2200,7 +2201,7 @@ msgstr "" "important que la représentation donne beaucoup d'informations et ne soit pas " "ambigüe." -#: ../Doc/reference/datamodel.rst:1283 +#: ../Doc/reference/datamodel.rst:1285 msgid "" "Called by :func:`str(object) ` and the built-in functions :func:" "`format` and :func:`print` to compute the \"informal\" or nicely printable " @@ -2208,11 +2209,11 @@ msgid "" "` object." msgstr "" "Appelée par :func:`str(objet)` ainsi que les fonctions natives :func:" -"`format` et :func:`print` pour calculer une chaîne de caractères \"informelle" -"\" ou joliment mise en forme de représentation de l'objet. La valeur " -"renvoyée doit être un objet :ref:`string `." +"`format` et :func:`print` pour calculer une chaîne de caractères " +"« informelle » ou joliment mise en forme de représentation de l'objet. La " +"valeur renvoyée doit être un objet :ref:`string `." -#: ../Doc/reference/datamodel.rst:1288 +#: ../Doc/reference/datamodel.rst:1290 msgid "" "This method differs from :meth:`object.__repr__` in that there is no " "expectation that :meth:`__str__` return a valid Python expression: a more " @@ -2222,7 +2223,7 @@ msgstr "" "que :meth:`__str__` renvoie une expression Python valide : une " "représentation plus agréable à lire ou plus concise peut être utilisée." -#: ../Doc/reference/datamodel.rst:1292 +#: ../Doc/reference/datamodel.rst:1294 msgid "" "The default implementation defined by the built-in type :class:`object` " "calls :meth:`object.__repr__`." @@ -2230,7 +2231,7 @@ msgstr "" "C'est l'implémentation par défaut des appels à :meth:`object.__repr__` du " "type natif :class:`object`." -#: ../Doc/reference/datamodel.rst:1302 +#: ../Doc/reference/datamodel.rst:1304 msgid "" "Called by :ref:`bytes ` to compute a byte-string representation " "of an object. This should return a :class:`bytes` object." @@ -2238,47 +2239,47 @@ msgstr "" "Appelée par :ref:`bytes ` pour calculer une représentation en " "chaîne *bytes* d'un objet. Elle doit renvoyer un objet :class:`bytes`." -#: ../Doc/reference/datamodel.rst:1313 +#: ../Doc/reference/datamodel.rst:1315 msgid "" "Called by the :func:`format` built-in function, and by extension, evaluation " "of :ref:`formatted string literals ` and the :meth:`str.format` " "method, to produce a \"formatted\" string representation of an object. The " -"``format_spec`` argument is a string that contains a description of the " -"formatting options desired. The interpretation of the ``format_spec`` " -"argument is up to the type implementing :meth:`__format__`, however most " -"classes will either delegate formatting to one of the built-in types, or use " -"a similar formatting option syntax." +"*format_spec* argument is a string that contains a description of the " +"formatting options desired. The interpretation of the *format_spec* argument " +"is up to the type implementing :meth:`__format__`, however most classes will " +"either delegate formatting to one of the built-in types, or use a similar " +"formatting option syntax." msgstr "" "Appelée par la fonction native :func:`format` et, par extension, lors de " -"l'évaluation de :ref:`formatted string literals ` ou de la " -"méthode :meth:`str.format`. Elle produit une chaîne de caractères \"formatée" -"\" représentant un objet. L'argument ``format_spec`` est une chaîne de " +"l'évaluation de :ref:`formatted string literals ` et la méthode :" +"meth:`str.format`. Elle produit une chaîne de caractères « formatée » " +"représentant un objet. L'argument ``format_spec`` est une chaîne de " "caractères contenant la description des options de formatage voulues. " "L'interprétation de l'argument ``format_spec`` est laissée au type " "implémentant :meth:`__format__`. Cependant, la plupart des classes délèguent " "le formatage aux types natifs ou utilisent une syntaxe similaire d'options " "de formatage." -#: ../Doc/reference/datamodel.rst:1323 +#: ../Doc/reference/datamodel.rst:1325 msgid "" "See :ref:`formatspec` for a description of the standard formatting syntax." msgstr "" "Lisez :ref:`formatspec` pour une description de la syntaxe standard du " "formatage." -#: ../Doc/reference/datamodel.rst:1325 +#: ../Doc/reference/datamodel.rst:1327 msgid "The return value must be a string object." msgstr "La valeur renvoyée doit être un objet chaîne de caractères." -#: ../Doc/reference/datamodel.rst:1327 +#: ../Doc/reference/datamodel.rst:1329 msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." msgstr "" -"La méthode __format__ de ``object`` lui-même lève une :exc:`TypeError` si " -"vous lui passez une chaîne non vide." +"La méthode ``__format__`` de ``object`` lui-même lève une :exc:`TypeError` " +"si vous lui passez une chaîne non vide." -#: ../Doc/reference/datamodel.rst:1331 +#: ../Doc/reference/datamodel.rst:1333 msgid "" "``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " "``format(str(self), '')``." @@ -2286,7 +2287,7 @@ msgstr "" "``object.__format__(x, '')`` est maintenant équivalent à ``str(x)`` plutôt " "qu'à ``format(str(self), '')``." -#: ../Doc/reference/datamodel.rst:1347 +#: ../Doc/reference/datamodel.rst:1349 msgid "" "These are the so-called \"rich comparison\" methods. The correspondence " "between operator symbols and method names is as follows: ``xy`` calls ``x.__gt__(y)``, and ``x>=y`` " "calls ``x.__ge__(y)``." msgstr "" -"Ce sont les méthodes dites de \"comparaisons riches\". La correspondance " +"Ce sont les méthodes dites de « comparaisons riches ». La correspondance " "entre les symboles opérateurs et les noms de méthodes est la suivante : " "``xy`` appelle " "``x.__gt__(y)`` et ``x>=y`` appelle ``x.__ge__(y)``." -#: ../Doc/reference/datamodel.rst:1353 +#: ../Doc/reference/datamodel.rst:1355 msgid "" "A rich comparison method may return the singleton ``NotImplemented`` if it " "does not implement the operation for a given pair of arguments. By " @@ -2319,7 +2320,7 @@ msgstr "" "``if``), Python appelle :func:`bool` sur la valeur pour déterminer si le " "résultat est faux ou vrai." -#: ../Doc/reference/datamodel.rst:1360 +#: ../Doc/reference/datamodel.rst:1362 msgid "" "By default, :meth:`__ne__` delegates to :meth:`__eq__` and inverts the " "result unless it is ``NotImplemented``. There are no other implied " @@ -2335,7 +2336,7 @@ msgstr "" "automatique à partir d'une seule opération, reportez-vous à :func:`functools." "total_ordering`." -#: ../Doc/reference/datamodel.rst:1367 +#: ../Doc/reference/datamodel.rst:1369 msgid "" "See the paragraph on :meth:`__hash__` for some important notes on creating :" "term:`hashable` objects which support custom comparison operations and are " @@ -2346,7 +2347,7 @@ msgstr "" "les opérations de comparaison personnalisées et qui sont utilisables en tant " "que clés de dictionnaires." -#: ../Doc/reference/datamodel.rst:1371 +#: ../Doc/reference/datamodel.rst:1373 msgid "" "There are no swapped-argument versions of these methods (to be used when the " "left argument does not support the operation but the right argument does); " @@ -2370,7 +2371,7 @@ msgstr "" "méthode de l'opérande de gauche qui est prioritaire. Les sous-classes " "virtuelles ne sont pas prises en compte." -#: ../Doc/reference/datamodel.rst:1388 +#: ../Doc/reference/datamodel.rst:1390 msgid "" "Called by built-in function :func:`hash` and for operations on members of " "hashed collections including :class:`set`, :class:`frozenset`, and :class:" @@ -2389,7 +2390,7 @@ msgstr "" "de la comparaison des objets, en les plaçant un tuple dont on calcule " "l'empreinte. Par exemple ::" -#: ../Doc/reference/datamodel.rst:1401 +#: ../Doc/reference/datamodel.rst:1403 msgid "" ":func:`hash` truncates the value returned from an object's custom :meth:" "`__hash__` method to the size of a :c:type:`Py_ssize_t`. This is typically " @@ -2407,7 +2408,7 @@ msgstr "" "Une manière facile de le faire est la suivante : ``python -c \"import sys; " "print(sys.hash_info.width)\"``." -#: ../Doc/reference/datamodel.rst:1409 +#: ../Doc/reference/datamodel.rst:1411 msgid "" "If a class does not define an :meth:`__eq__` method it should not define a :" "meth:`__hash__` operation either; if it defines :meth:`__eq__` but not :meth:" @@ -2428,7 +2429,7 @@ msgstr "" "(si l'empreinte d'un objet change, il ne sera plus trouvé correctement dans " "le stockage du dictionnaire)." -#: ../Doc/reference/datamodel.rst:1418 +#: ../Doc/reference/datamodel.rst:1420 msgid "" "User-defined classes have :meth:`__eq__` and :meth:`__hash__` methods by " "default; with them, all objects compare unequal (except with themselves) and " @@ -2440,7 +2441,7 @@ msgstr "" "sont différents (sauf avec eux-mêmes) et ``x.__hash__()`` renvoie une valeur " "telle que ``x == y`` implique à la fois ``x is y`` et ``hash(x) == hash(y)``." -#: ../Doc/reference/datamodel.rst:1423 +#: ../Doc/reference/datamodel.rst:1425 msgid "" "A class that overrides :meth:`__eq__` and does not define :meth:`__hash__` " "will have its :meth:`__hash__` implicitly set to ``None``. When the :meth:" @@ -2456,7 +2457,7 @@ msgstr "" "empreinte et elle est correctement identifiée comme *non hachable* quand on " "vérifie ``isinstance(obj, collections.abc.Hashable)``." -#: ../Doc/reference/datamodel.rst:1430 +#: ../Doc/reference/datamodel.rst:1432 msgid "" "If a class that overrides :meth:`__eq__` needs to retain the implementation " "of :meth:`__hash__` from a parent class, the interpreter must be told this " @@ -2467,7 +2468,7 @@ msgstr "" "l'indiquer explicitement à l'interpréteur en définissant ``__hash__ = " ".__hash__``." -#: ../Doc/reference/datamodel.rst:1434 +#: ../Doc/reference/datamodel.rst:1436 msgid "" "If a class that does not override :meth:`__eq__` wishes to suppress hash " "support, it should include ``__hash__ = None`` in the class definition. A " @@ -2481,7 +2482,7 @@ msgstr "" "lève explicitement :exc:`TypeError` serait incorrectement identifiée comme " "hachable par un appel à ``isinstance(obj, collections.abc.Hashable)``." -#: ../Doc/reference/datamodel.rst:1443 +#: ../Doc/reference/datamodel.rst:1445 msgid "" "By default, the :meth:`__hash__` values of str, bytes and datetime objects " "are \"salted\" with an unpredictable random value. Although they remain " @@ -2489,12 +2490,12 @@ msgid "" "between repeated invocations of Python." msgstr "" "Par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes, " -"*bytes* et objets datetime sont *salées* avec une valeur aléatoire non " +"*bytes* et objets *datetime* sont *salées* avec une valeur aléatoire non " "prévisible. Bien qu'une empreinte reste constante tout au long d'un " "processus Python, sa valeur n'est pas prévisible entre deux invocations de " "Python." -#: ../Doc/reference/datamodel.rst:1448 +#: ../Doc/reference/datamodel.rst:1450 msgid "" "This is intended to provide protection against a denial-of-service caused by " "carefully-chosen inputs that exploit the worst case performance of a dict " @@ -2507,26 +2508,25 @@ msgstr "" "O(n^2). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour en " "obtenir les détails (article en anglais)." -#: ../Doc/reference/datamodel.rst:1453 +#: ../Doc/reference/datamodel.rst:1455 msgid "" -"Changing hash values affects the iteration order of dicts, sets and other " -"mappings. Python has never made guarantees about this ordering (and it " -"typically varies between 32-bit and 64-bit builds)." +"Changing hash values affects the iteration order of sets. Python has never " +"made guarantees about this ordering (and it typically varies between 32-bit " +"and 64-bit builds)." msgstr "" "Modifier les empreintes obtenues par hachage modifie l'ordre d'itération sur " -"les dictionnaires, les ensembles et les autres tableaux de correspondances. " -"Python n'a jamais donné de garantie sur cet ordre (d'ailleurs, l'ordre n'est " -"pas le même entre les implémentations 32 et 64 bits)." +"les *sets*. Python n'a jamais donné de garantie sur cet ordre (d'ailleurs, " +"l'ordre n'est pas le même entre les implémentations 32 et 64 bits)." -#: ../Doc/reference/datamodel.rst:1457 +#: ../Doc/reference/datamodel.rst:1459 msgid "See also :envvar:`PYTHONHASHSEED`." msgstr "Voir aussi :envvar:`PYTHONHASHSEED`." -#: ../Doc/reference/datamodel.rst:1459 +#: ../Doc/reference/datamodel.rst:1461 msgid "Hash randomization is enabled by default." msgstr "la randomisation des empreintes est activée par défaut." -#: ../Doc/reference/datamodel.rst:1467 +#: ../Doc/reference/datamodel.rst:1469 msgid "" "Called to implement truth value testing and the built-in operation " "``bool()``; should return ``False`` or ``True``. When this method is not " @@ -2541,11 +2541,11 @@ msgstr "" "définit ni :meth:`__len__` ni :meth:`__bool__`, toutes ses instances sont " "considérées comme vraies." -#: ../Doc/reference/datamodel.rst:1478 +#: ../Doc/reference/datamodel.rst:1480 msgid "Customizing attribute access" msgstr "Personnalisation de l'accès aux attributs" -#: ../Doc/reference/datamodel.rst:1480 +#: ../Doc/reference/datamodel.rst:1482 msgid "" "The following methods can be defined to customize the meaning of attribute " "access (use of, assignment to, or deletion of ``x.name``) for class " @@ -2555,7 +2555,7 @@ msgstr "" "attributs (utilisation, assignation, suppression de ``x.name``) pour les " "instances de classes." -#: ../Doc/reference/datamodel.rst:1488 +#: ../Doc/reference/datamodel.rst:1490 msgid "" "Called when the default attribute access fails with an :exc:`AttributeError` " "(either :meth:`__getattribute__` raises an :exc:`AttributeError` because " @@ -2572,7 +2572,7 @@ msgstr "" "valeur (calculée) de l'attribut, soit lever une exception :exc:" "`AttributeError`." -#: ../Doc/reference/datamodel.rst:1495 +#: ../Doc/reference/datamodel.rst:1497 msgid "" "Note that if the attribute is found through the normal mechanism, :meth:" "`__getattr__` is not called. (This is an intentional asymmetry between :" @@ -2595,7 +2595,7 @@ msgstr "" "place). Lisez la partie relative à la méthode :meth:`__getattribute__` ci-" "dessous pour obtenir un contrôle total effectif sur l'accès aux attributs." -#: ../Doc/reference/datamodel.rst:1508 +#: ../Doc/reference/datamodel.rst:1510 msgid "" "Called unconditionally to implement attribute accesses for instances of the " "class. If the class also defines :meth:`__getattr__`, the latter will not be " @@ -2617,7 +2617,7 @@ msgstr "" "accéder à n'importe quel attribut dont elle a besoin. Par exemple, ``object." "__getattribute__(self, name)``." -#: ../Doc/reference/datamodel.rst:1519 +#: ../Doc/reference/datamodel.rst:1521 msgid "" "This method may still be bypassed when looking up special methods as the " "result of implicit invocation via language syntax or built-in functions. " @@ -2627,7 +2627,7 @@ msgstr "" "spéciales en tant que résultat d'une invocation implicite *via* la syntaxe " "du langage ou les fonctions natives. Lisez :ref:`special-lookup`." -#: ../Doc/reference/datamodel.rst:1526 +#: ../Doc/reference/datamodel.rst:1528 msgid "" "Called when an attribute assignment is attempted. This is called instead of " "the normal mechanism (i.e. store the value in the instance dictionary). " @@ -2638,7 +2638,7 @@ msgstr "" "l'instance). *name* est le nom de l'attribut, *value* est la valeur à " "assigner à cet attribut." -#: ../Doc/reference/datamodel.rst:1530 +#: ../Doc/reference/datamodel.rst:1532 msgid "" "If :meth:`__setattr__` wants to assign to an instance attribute, it should " "call the base class method with the same name, for example, ``object." @@ -2648,7 +2648,7 @@ msgstr "" "appeler la méthode de la classe de base avec le même nom, par exemple " "``object.__setattr__(self, name, value)``." -#: ../Doc/reference/datamodel.rst:1537 +#: ../Doc/reference/datamodel.rst:1539 msgid "" "Like :meth:`__setattr__` but for attribute deletion instead of assignment. " "This should only be implemented if ``del obj.name`` is meaningful for the " @@ -2658,7 +2658,7 @@ msgstr "" "l'assigner. Elle ne doit être implémentée que si ``del obj.name`` a du sens " "pour cet objet." -#: ../Doc/reference/datamodel.rst:1543 +#: ../Doc/reference/datamodel.rst:1545 msgid "" "Called when :func:`dir` is called on the object. A sequence must be " "returned. :func:`dir` converts the returned sequence to a list and sorts it." @@ -2667,11 +2667,11 @@ msgstr "" "séquence. :func:`dir` convertit la séquence renvoyée en liste et effectue le " "classement." -#: ../Doc/reference/datamodel.rst:1548 +#: ../Doc/reference/datamodel.rst:1550 msgid "Customizing module attribute access" msgstr "Personnalisation de l'accès aux attributs d'un module" -#: ../Doc/reference/datamodel.rst:1555 +#: ../Doc/reference/datamodel.rst:1557 msgid "" "Special names ``__getattr__`` and ``__dir__`` can be also used to customize " "access to module attributes. The ``__getattr__`` function at the module " @@ -2683,7 +2683,7 @@ msgid "" "with the attribute name and the result is returned." msgstr "" "Les noms spéciaux ``__getattr__`` et ``__dir__`` peuvent aussi être " -"personnalisés pour accéder aux attributs du module. La fonction " +"personnalisés pour accéder aux attributs du module. La fonction " "``__getattr__`` au niveau du module doit accepter un argument qui est un nom " "d'attribut et doit renvoyer la valeur calculée ou lever une :exc:" "`AttributeError`. Si un attribut n'est pas trouvé dans l'objet module en " @@ -2692,7 +2692,7 @@ msgstr "" "``__dict__`` du module avant de lever une :exc:`AttributeError`. S'il la " "trouve, il l'appelle avec le nom de l'attribut et renvoie le résultat." -#: ../Doc/reference/datamodel.rst:1564 +#: ../Doc/reference/datamodel.rst:1566 msgid "" "The ``__dir__`` function should accept no arguments, and return a list of " "strings that represents the names accessible on module. If present, this " @@ -2702,7 +2702,7 @@ msgstr "" "chaînes qui représente les noms accessibles du module. Si elle existe, cette " "fonction surcharge la fonction de recherche standard :func:`dir` du module." -#: ../Doc/reference/datamodel.rst:1568 +#: ../Doc/reference/datamodel.rst:1570 msgid "" "For a more fine grained customization of the module behavior (setting " "attributes, properties, etc.), one can set the ``__class__`` attribute of a " @@ -2713,7 +2713,7 @@ msgstr "" "``__class__`` d'un objet module à une sous-classe de :class:`types." "ModuleType`. Par exemple ::" -#: ../Doc/reference/datamodel.rst:1586 +#: ../Doc/reference/datamodel.rst:1588 msgid "" "Defining module ``__getattr__`` and setting module ``__class__`` only affect " "lookups made using the attribute access syntax -- directly accessing the " @@ -2721,32 +2721,32 @@ msgid "" "module's globals dictionary) is unaffected." msgstr "" "Définir ``__getattr__`` du module et ``__class__`` pour le module affecte " -"uniquement les recherches qui utilisent la syntaxe d'accès aux attributs -- " +"uniquement les recherches qui utilisent la syntaxe d'accès aux attributs — " "accéder directement aux globales d'un module (soit par le code dans le " "module, soit *via* une référence au dictionnaire des variables globales du " "module) fonctionne toujours de la même façon." -#: ../Doc/reference/datamodel.rst:1591 +#: ../Doc/reference/datamodel.rst:1593 msgid "``__class__`` module attribute is now writable." msgstr "l'attribut ``__class__`` du module est maintenant en lecture-écriture." -#: ../Doc/reference/datamodel.rst:1594 +#: ../Doc/reference/datamodel.rst:1596 msgid "``__getattr__`` and ``__dir__`` module attributes." -msgstr "attributs ``__getattr__`` et ``__dir__`` du module " +msgstr "attributs ``__getattr__`` et ``__dir__`` du module." -#: ../Doc/reference/datamodel.rst:1599 +#: ../Doc/reference/datamodel.rst:1601 msgid ":pep:`562` - Module __getattr__ and __dir__" -msgstr ":pep:`562` -- __getattr__ et __dir__ pour un module" +msgstr ":pep:`562` — ``__getattr__`` et ``__dir__`` pour un module" -#: ../Doc/reference/datamodel.rst:1600 +#: ../Doc/reference/datamodel.rst:1602 msgid "Describes the ``__getattr__`` and ``__dir__`` functions on modules." msgstr "Décrit les fonctions ``__getattr__`` et ``__dir__`` des modules." -#: ../Doc/reference/datamodel.rst:1606 +#: ../Doc/reference/datamodel.rst:1608 msgid "Implementing Descriptors" msgstr "Implémentation de descripteurs" -#: ../Doc/reference/datamodel.rst:1608 +#: ../Doc/reference/datamodel.rst:1610 msgid "" "The following methods only apply when an instance of the class containing " "the method (a so-called *descriptor* class) appears in an *owner* class (the " @@ -2760,10 +2760,10 @@ msgstr "" "classe *propriétaire* (*owner* en anglais) ; la classe descripteur doit " "figurer dans le dictionnaire de la classe propriétaire ou dans le " "dictionnaire de la classe d'un des parents. Dans les exemples ci-dessous, " -"\"l'attribut\" fait référence à l'attribut dont le nom est une clé du :attr:" +"« l'attribut » fait référence à l'attribut dont le nom est une clé du :attr:" "`~object.__dict__` de la classe propriétaire." -#: ../Doc/reference/datamodel.rst:1618 +#: ../Doc/reference/datamodel.rst:1620 msgid "" "Called to get the attribute of the owner class (class attribute access) or " "of an instance of that class (instance attribute access). *owner* is always " @@ -2779,7 +2779,7 @@ msgstr "" "lorsque l'on accède par la classe *owner*. Cette méthode doit renvoyer la " "valeur (calculée) de l'attribut ou lever une exception :exc:`AttributeError`." -#: ../Doc/reference/datamodel.rst:1628 +#: ../Doc/reference/datamodel.rst:1630 msgid "" "Called to set the attribute on an instance *instance* of the owner class to " "a new value, *value*." @@ -2787,14 +2787,14 @@ msgstr "" "Appelée pour définir l'attribut d'une instance *instance* de la classe " "propriétaire à la nouvelle valeur *value*." -#: ../Doc/reference/datamodel.rst:1634 +#: ../Doc/reference/datamodel.rst:1636 msgid "" "Called to delete the attribute on an instance *instance* of the owner class." msgstr "" "Appelée pour supprimer l'attribut de l'instance *instance* de la classe " "propriétaire." -#: ../Doc/reference/datamodel.rst:1639 +#: ../Doc/reference/datamodel.rst:1641 msgid "" "Called at the time the owning class *owner* is created. The descriptor has " "been assigned to *name*." @@ -2802,7 +2802,7 @@ msgstr "" "Appelée au moment où la classe propriétaire *owner* est créée. La classe " "descripteur a été assignée à *name*." -#: ../Doc/reference/datamodel.rst:1645 +#: ../Doc/reference/datamodel.rst:1647 msgid "" "The attribute :attr:`__objclass__` is interpreted by the :mod:`inspect` " "module as specifying the class where this object was defined (setting this " @@ -2820,11 +2820,11 @@ msgstr "" "premier argument positionnel (par exemple, CPython définit cet attribut pour " "les méthodes non liées qui sont implémentées en C)." -#: ../Doc/reference/datamodel.rst:1656 +#: ../Doc/reference/datamodel.rst:1658 msgid "Invoking Descriptors" msgstr "Invocation des descripteurs" -#: ../Doc/reference/datamodel.rst:1658 +#: ../Doc/reference/datamodel.rst:1660 msgid "" "In general, a descriptor is an object attribute with \"binding behavior\", " "one whose attribute access has been overridden by methods in the descriptor " @@ -2832,13 +2832,13 @@ msgid "" "of those methods are defined for an object, it is said to be a descriptor." msgstr "" "En général, un descripteur est un attribut d'objet dont le comportement est " -"\"lié\" (*binding dehavior* en anglais), c'est-à-dire que les accès aux " +"« lié » (*binding dehavior* en anglais), c'est-à-dire que les accès aux " "attributs ont été surchargés par des méthodes conformes au protocole des " "descripteurs : :meth:`__get__`, :meth:`__set__` et :meth:`__delete__`. Si " "l'une de ces méthodes est définie pour un objet, il est réputé être un " "descripteur." -#: ../Doc/reference/datamodel.rst:1663 +#: ../Doc/reference/datamodel.rst:1665 msgid "" "The default behavior for attribute access is to get, set, or delete the " "attribute from an object's dictionary. For instance, ``a.x`` has a lookup " @@ -2851,7 +2851,7 @@ msgstr "" "puis ``type(a).__dict__['x']`` ; ensuite Python continue en remontant les " "classes de base de ``type(a)``, en excluant les méta-classes." -#: ../Doc/reference/datamodel.rst:1668 +#: ../Doc/reference/datamodel.rst:1670 msgid "" "However, if the looked-up value is an object defining one of the descriptor " "methods, then Python may override the default behavior and invoke the " @@ -2864,7 +2864,7 @@ msgstr "" "citée ci-dessus dépend de l'endroit où a été définie la méthode de " "descripteur et comment elle a été appelée." -#: ../Doc/reference/datamodel.rst:1673 +#: ../Doc/reference/datamodel.rst:1675 msgid "" "The starting point for descriptor invocation is a binding, ``a.x``. How the " "arguments are assembled depends on ``a``:" @@ -2872,11 +2872,11 @@ msgstr "" "Le point de départ pour une invocation de descripteur est la liaison ``a." "x``. La façon dont les arguments sont assemblés dépend de ``a`` :" -#: ../Doc/reference/datamodel.rst:1678 +#: ../Doc/reference/datamodel.rst:1680 msgid "Direct Call" msgstr "Appel direct" -#: ../Doc/reference/datamodel.rst:1677 +#: ../Doc/reference/datamodel.rst:1679 msgid "" "The simplest and least common call is when user code directly invokes a " "descriptor method: ``x.__get__(a)``." @@ -2884,11 +2884,11 @@ msgstr "" "Le plus simple et le plus rare des appels est quand l'utilisateur code " "directement l'appel à la méthode du descripteur : ``x.__get__(a)``." -#: ../Doc/reference/datamodel.rst:1682 +#: ../Doc/reference/datamodel.rst:1684 msgid "Instance Binding" msgstr "Liaison avec une instance" -#: ../Doc/reference/datamodel.rst:1681 +#: ../Doc/reference/datamodel.rst:1683 msgid "" "If binding to an object instance, ``a.x`` is transformed into the call: " "``type(a).__dict__['x'].__get__(a, type(a))``." @@ -2896,11 +2896,11 @@ msgstr "" "Si elle est liée à un objet instance, ``a.x`` est transformé en l'appel " "suivant : ``type(a).__dict__['x'].__get__(a, type(a))``." -#: ../Doc/reference/datamodel.rst:1686 +#: ../Doc/reference/datamodel.rst:1688 msgid "Class Binding" msgstr "Liaison avec une classe" -#: ../Doc/reference/datamodel.rst:1685 +#: ../Doc/reference/datamodel.rst:1687 msgid "" "If binding to a class, ``A.x`` is transformed into the call: ``A." "__dict__['x'].__get__(None, A)``." @@ -2908,11 +2908,11 @@ msgstr "" "Si elle est liée à une classe, ``A.x`` est transformé en l'appel suivant : " "``A.__dict__['x'].__get__(None, A)``." -#: ../Doc/reference/datamodel.rst:1692 +#: ../Doc/reference/datamodel.rst:1694 msgid "Super Binding" msgstr "Liaison super" -#: ../Doc/reference/datamodel.rst:1689 +#: ../Doc/reference/datamodel.rst:1691 msgid "" "If ``a`` is an instance of :class:`super`, then the binding ``super(B, obj)." "m()`` searches ``obj.__class__.__mro__`` for the base class ``A`` " @@ -2924,7 +2924,7 @@ msgstr "" "immédiatement avant ``B`` puis invoque le descripteur avec l'appel suivant : " "``A.__dict__['m'].__get__(obj, obj.__class__)``." -#: ../Doc/reference/datamodel.rst:1694 +#: ../Doc/reference/datamodel.rst:1696 msgid "" "For instance bindings, the precedence of descriptor invocation depends on " "the which descriptor methods are defined. A descriptor can define any " @@ -2955,7 +2955,7 @@ msgstr "" "de l'instance. En revanche, les descripteurs hors-données peuvent être " "shuntés par les instances." -#: ../Doc/reference/datamodel.rst:1707 +#: ../Doc/reference/datamodel.rst:1709 msgid "" "Python methods (including :func:`staticmethod` and :func:`classmethod`) are " "implemented as non-data descriptors. Accordingly, instances can redefine " @@ -2968,7 +2968,7 @@ msgstr "" "chaque instance d'avoir un comportement qui diffère des autres instances de " "la même classe." -#: ../Doc/reference/datamodel.rst:1712 +#: ../Doc/reference/datamodel.rst:1714 msgid "" "The :func:`property` function is implemented as a data descriptor. " "Accordingly, instances cannot override the behavior of a property." @@ -2977,28 +2977,31 @@ msgstr "" "données. Ainsi, les instances ne peuvent pas surcharger le comportement " "d'une propriété." -#: ../Doc/reference/datamodel.rst:1719 +#: ../Doc/reference/datamodel.rst:1721 msgid "__slots__" -msgstr "__slots__" +msgstr "``__slots__``" -#: ../Doc/reference/datamodel.rst:1721 +#: ../Doc/reference/datamodel.rst:1723 msgid "" "*__slots__* allow us to explicitly declare data members (like properties) " "and deny the creation of *__dict__* and *__weakref__* (unless explicitly " "declared in *__slots__* or available in a parent.)" msgstr "" -"Les *__slots__* vous permettent de déclarer des membres d'une donnée (comme " -"une propriété) et d'interdire la création de *__dict__* ou de *__weakref__* " -"(à moins qu'ils ne soient explicitement déclarés dans le *__slots__* ou " -"présent dans le parent)." +"Les ``__slots__`` vous permettent de déclarer des membres d'une donnée " +"(comme une propriété) et d'interdire la création de *__dict__* ou de " +"*__weakref__* (à moins qu'ils ne soient explicitement déclarés dans le " +"``__slots__`` ou présent dans le parent)." -#: ../Doc/reference/datamodel.rst:1725 -msgid "The space saved over using *__dict__* can be significant." +#: ../Doc/reference/datamodel.rst:1727 +msgid "" +"The space saved over using *__dict__* can be significant. Attribute lookup " +"speed can be significantly improved as well." msgstr "" "L'espace gagné par rapport à l'utilisation d'un *__dict__* peut être " -"significatif." +"significatif. La recherche d'attribut peut aussi s'avérer beaucoup plus " +"rapide." -#: ../Doc/reference/datamodel.rst:1729 +#: ../Doc/reference/datamodel.rst:1732 msgid "" "This class variable can be assigned a string, iterable, or sequence of " "strings with variable names used by instances. *__slots__* reserves space " @@ -3011,11 +3014,11 @@ msgstr "" "interdit la création automatique de *__dict__* et *__weakref__* pour chaque " "instance." -#: ../Doc/reference/datamodel.rst:1736 +#: ../Doc/reference/datamodel.rst:1739 msgid "Notes on using *__slots__*" msgstr "Note sur l'utilisation de *__slots__*" -#: ../Doc/reference/datamodel.rst:1738 +#: ../Doc/reference/datamodel.rst:1741 msgid "" "When inheriting from a class without *__slots__*, the *__dict__* and " "*__weakref__* attribute of the instances will always be accessible." @@ -3023,7 +3026,7 @@ msgstr "" "Lorsque vous héritez d'une classe sans *__slots__*, les attributs *__dict__* " "et *__weakref__* des instances sont toujours accessibles." -#: ../Doc/reference/datamodel.rst:1741 +#: ../Doc/reference/datamodel.rst:1744 msgid "" "Without a *__dict__* variable, instances cannot be assigned new variables " "not listed in the *__slots__* definition. Attempts to assign to an unlisted " @@ -3037,7 +3040,7 @@ msgstr "" "Si l'assignation dynamique de nouvelles variables est nécessaire, ajoutez " "``'__dict__'`` à la séquence de chaînes dans la déclaration *__slots__*." -#: ../Doc/reference/datamodel.rst:1747 +#: ../Doc/reference/datamodel.rst:1750 msgid "" "Without a *__weakref__* variable for each instance, classes defining " "*__slots__* do not support weak references to its instances. If weak " @@ -3050,7 +3053,7 @@ msgstr "" "``'__weakref__'`` à la séquence de chaînes dans la déclaration de " "*__slots__*." -#: ../Doc/reference/datamodel.rst:1752 +#: ../Doc/reference/datamodel.rst:1755 msgid "" "*__slots__* are implemented at the class level by creating descriptors (:ref:" "`descriptors`) for each variable name. As a result, class attributes cannot " @@ -3063,7 +3066,7 @@ msgstr "" "aux variables d'instances définies par *__slots__* ; sinon, l'attribut de " "classe surchargerait l'assignation par descripteur." -#: ../Doc/reference/datamodel.rst:1758 +#: ../Doc/reference/datamodel.rst:1761 msgid "" "The action of a *__slots__* declaration is not limited to the class where it " "is defined. *__slots__* declared in parents are available in child classes. " @@ -3075,9 +3078,9 @@ msgstr "" "est défini. Les *__slots__* déclarés par les parents sont disponibles dans " "les classes enfants. Cependant, les sous-classes enfants ont un *__dict__* " "et un *__weakref__* à moins qu'elles ne définissent aussi un *__slots__* " -"(qui ne doit contenir alors que les noms *supplémentaires* du slot)." +"(qui ne doit contenir alors que les noms *supplémentaires* du *slot*)." -#: ../Doc/reference/datamodel.rst:1764 +#: ../Doc/reference/datamodel.rst:1767 msgid "" "If a class defines a slot also defined in a base class, the instance " "variable defined by the base class slot is inaccessible (except by " @@ -3085,13 +3088,13 @@ msgid "" "meaning of the program undefined. In the future, a check may be added to " "prevent this." msgstr "" -"Si une classe définit un slot aussi défini dans une classe de base, la " +"Si une classe définit un *slot* déjà défini dans une classe de base, la " "variable d'instance définie par la classe de base est inaccessible (sauf à " "utiliser le descripteur de la classe de base directement). Cela rend la " "signification du programme indéfinie. Dans le futur, une vérification sera " "ajoutée pour empêcher cela." -#: ../Doc/reference/datamodel.rst:1769 +#: ../Doc/reference/datamodel.rst:1772 msgid "" "Nonempty *__slots__* does not work for classes derived from \"variable-length" "\" built-in types such as :class:`int`, :class:`bytes` and :class:`tuple`." @@ -3100,7 +3103,7 @@ msgstr "" "natifs à longueur variable tels que :class:`int`, :class:`bytes` et :class:" "`tuple`." -#: ../Doc/reference/datamodel.rst:1772 +#: ../Doc/reference/datamodel.rst:1775 msgid "" "Any non-string iterable may be assigned to *__slots__*. Mappings may also be " "used; however, in the future, special meaning may be assigned to the values " @@ -3111,14 +3114,14 @@ msgstr "" "le futur, des significations spéciales pourraient être associées à chacune " "des clés." -#: ../Doc/reference/datamodel.rst:1776 +#: ../Doc/reference/datamodel.rst:1779 msgid "" "*__class__* assignment works only if both classes have the same *__slots__*." msgstr "" "Les assignations de *__class__* ne fonctionnent que si les deux classes ont " "le même *__slots__*." -#: ../Doc/reference/datamodel.rst:1778 +#: ../Doc/reference/datamodel.rst:1781 msgid "" "Multiple inheritance with multiple slotted parent classes can be used, but " "only one parent is allowed to have attributes created by slots (the other " @@ -3129,11 +3132,11 @@ msgstr "" "*__slots__* (les autres classes parentes doivent avoir des *__slots__* " "vides). La violation de cette règle lève :exc:`TypeError`." -#: ../Doc/reference/datamodel.rst:1786 +#: ../Doc/reference/datamodel.rst:1789 msgid "Customizing class creation" msgstr "Personnalisation de la création de classes" -#: ../Doc/reference/datamodel.rst:1788 +#: ../Doc/reference/datamodel.rst:1791 msgid "" "Whenever a class inherits from another class, *__init_subclass__* is called " "on that class. This way, it is possible to write classes which change the " @@ -3150,7 +3153,7 @@ msgstr "" "uniquement sur les futures sous-classes de la classe qui définit cette " "méthode." -#: ../Doc/reference/datamodel.rst:1797 +#: ../Doc/reference/datamodel.rst:1800 msgid "" "This method is called whenever the containing class is subclassed. *cls* is " "then the new subclass. If defined as a normal instance method, this method " @@ -3160,7 +3163,7 @@ msgstr "" "la nouvelle sous-classe. Si elle est définie en tant que méthode d'instance " "normale, cette méthode est implicitement convertie en méthode de classe." -#: ../Doc/reference/datamodel.rst:1801 +#: ../Doc/reference/datamodel.rst:1804 msgid "" "Keyword arguments which are given to a new class are passed to the parent's " "class ``__init_subclass__``. For compatibility with other classes using " @@ -3173,7 +3176,7 @@ msgstr "" "les arguments nommés dont vous avez besoin et passer les autres à la classe " "de base, comme ci-dessous ::" -#: ../Doc/reference/datamodel.rst:1815 +#: ../Doc/reference/datamodel.rst:1818 msgid "" "The default implementation ``object.__init_subclass__`` does nothing, but " "raises an error if it is called with any arguments." @@ -3181,7 +3184,7 @@ msgstr "" "L'implémentation par défaut ``object.__init_subclass__`` ne fait rien mais " "lève une erreur si elle est appelée avec un argument." -#: ../Doc/reference/datamodel.rst:1820 +#: ../Doc/reference/datamodel.rst:1823 msgid "" "The metaclass hint ``metaclass`` is consumed by the rest of the type " "machinery, and is never passed to ``__init_subclass__`` implementations. The " @@ -3193,21 +3196,21 @@ msgstr "" "``__init_subclass__``. La méta-classe réelle (plutôt que l'indication " "explicite) peut être récupérée par ``type(cls)``." -#: ../Doc/reference/datamodel.rst:1831 +#: ../Doc/reference/datamodel.rst:1834 msgid "Metaclasses" msgstr "Méta-classes" -#: ../Doc/reference/datamodel.rst:1837 +#: ../Doc/reference/datamodel.rst:1841 msgid "" "By default, classes are constructed using :func:`type`. The class body is " "executed in a new namespace and the class name is bound locally to the " "result of ``type(name, bases, namespace)``." msgstr "" "Par défaut, les classes sont construites en utilisant :func:`type`. Le corps " -"de la classe est exécuté dans un nouvel espace de noms et le nom de la " +"de la classe est exécuté dans un nouvel espace de nommage et le nom de la " "classe est lié localement au résultat de `type(name, bases, namespace)``." -#: ../Doc/reference/datamodel.rst:1841 +#: ../Doc/reference/datamodel.rst:1845 msgid "" "The class creation process can be customized by passing the ``metaclass`` " "keyword argument in the class definition line, or by inheriting from an " @@ -3220,7 +3223,7 @@ msgstr "" "l'exemple qui suit, ``MyClass`` et ``MySubclass`` sont des instances de " "``Meta`` ::" -#: ../Doc/reference/datamodel.rst:1855 +#: ../Doc/reference/datamodel.rst:1859 msgid "" "Any other keyword arguments that are specified in the class definition are " "passed through to all metaclass operations described below." @@ -3228,37 +3231,37 @@ msgstr "" "Tout autre argument nommé spécifié dans la définition de la classe est passé " "aux opérations de méta-classes décrites auparavant." -#: ../Doc/reference/datamodel.rst:1858 +#: ../Doc/reference/datamodel.rst:1862 msgid "When a class definition is executed, the following steps occur:" msgstr "" "Quand la définition d'une classe est exécutée, les différentes étapes " "suivies sont :" -#: ../Doc/reference/datamodel.rst:1860 -msgid "MRO entries are resolved" -msgstr "Les entrées MRO sont résolues" +#: ../Doc/reference/datamodel.rst:1864 +msgid "MRO entries are resolved;" +msgstr "Les entrées MRO sont résolues ;" -#: ../Doc/reference/datamodel.rst:1861 -msgid "the appropriate metaclass is determined" +#: ../Doc/reference/datamodel.rst:1865 +msgid "the appropriate metaclass is determined;" msgstr "la méta-classe appropriée est déterminée ;" -#: ../Doc/reference/datamodel.rst:1862 -msgid "the class namespace is prepared" -msgstr "l'espace de noms de la classe est préparé ;" +#: ../Doc/reference/datamodel.rst:1866 +msgid "the class namespace is prepared;" +msgstr "l'espace de nommage de la classe est préparé ;" -#: ../Doc/reference/datamodel.rst:1863 -msgid "the class body is executed" +#: ../Doc/reference/datamodel.rst:1867 +msgid "the class body is executed;" msgstr "le corps de la classe est exécuté ;" -#: ../Doc/reference/datamodel.rst:1864 -msgid "the class object is created" +#: ../Doc/reference/datamodel.rst:1868 +msgid "the class object is created." msgstr "l'objet classe est crée." -#: ../Doc/reference/datamodel.rst:1868 +#: ../Doc/reference/datamodel.rst:1872 msgid "Resolving MRO entries" msgstr "Résolution des entrées MRO" -#: ../Doc/reference/datamodel.rst:1870 +#: ../Doc/reference/datamodel.rst:1874 msgid "" "If a base that appears in class definition is not an instance of :class:" "`type`, then an ``__mro_entries__`` method is searched on it. If found, it " @@ -3273,47 +3276,47 @@ msgstr "" "utilisé à la place de la classe de base. Le tuple peut être vide, dans ce " "cas la classe de base originale est ignorée." -#: ../Doc/reference/datamodel.rst:1878 ../Doc/reference/datamodel.rst:2098 +#: ../Doc/reference/datamodel.rst:1882 ../Doc/reference/datamodel.rst:2070 msgid ":pep:`560` - Core support for typing module and generic types" msgstr "" -":pep:`560` -- Gestion de base pour les types modules et les types génériques" +":pep:`560` — Gestion de base pour les types modules et les types génériques" -#: ../Doc/reference/datamodel.rst:1882 +#: ../Doc/reference/datamodel.rst:1886 msgid "Determining the appropriate metaclass" msgstr "Détermination de la méta-classe appropriée" -#: ../Doc/reference/datamodel.rst:1886 +#: ../Doc/reference/datamodel.rst:1890 msgid "" "The appropriate metaclass for a class definition is determined as follows:" msgstr "" "La méta-classe appropriée pour une définition de classe est déterminée de la " "manière suivante :" -#: ../Doc/reference/datamodel.rst:1888 +#: ../Doc/reference/datamodel.rst:1892 msgid "" -"if no bases and no explicit metaclass are given, then :func:`type` is used" +"if no bases and no explicit metaclass are given, then :func:`type` is used;" msgstr "" -"si aucune classe et aucune méta-classe n'est donnée, alors :func:`type` est " +"si aucune classe et aucune métaclasse n'est donnée, alors :func:`type` est " "utilisée ;" -#: ../Doc/reference/datamodel.rst:1889 +#: ../Doc/reference/datamodel.rst:1893 msgid "" "if an explicit metaclass is given and it is *not* an instance of :func:" -"`type`, then it is used directly as the metaclass" +"`type`, then it is used directly as the metaclass;" msgstr "" "si une méta-classe explicite est donnée et que *ce n'est pas* une instance " "de :func:`type`, alors elle est utilisée directement en tant que méta-" "classe ;" -#: ../Doc/reference/datamodel.rst:1891 +#: ../Doc/reference/datamodel.rst:1895 msgid "" "if an instance of :func:`type` is given as the explicit metaclass, or bases " -"are defined, then the most derived metaclass is used" +"are defined, then the most derived metaclass is used." msgstr "" "Si une instance de :func:`type` est donnée comme méta-classe explicite ou si " "*bases* est définie, alors la méta-classe la plus dérivée est utilisée." -#: ../Doc/reference/datamodel.rst:1894 +#: ../Doc/reference/datamodel.rst:1898 msgid "" "The most derived metaclass is selected from the explicitly specified " "metaclass (if any) and the metaclasses (i.e. ``type(cls)``) of all specified " @@ -3328,46 +3331,47 @@ msgstr "" "candidates. Si aucune des méta-classes candidates ne remplit ce critère, " "alors la définition de la classe échoue en levant ``TypeError``." -#: ../Doc/reference/datamodel.rst:1904 +#: ../Doc/reference/datamodel.rst:1908 msgid "Preparing the class namespace" -msgstr "Préparation de l'espace de noms de la classe" +msgstr "Préparation de l'espace de nommage de la classe" -#: ../Doc/reference/datamodel.rst:1909 +#: ../Doc/reference/datamodel.rst:1913 msgid "" "Once the appropriate metaclass has been identified, then the class namespace " "is prepared. If the metaclass has a ``__prepare__`` attribute, it is called " "as ``namespace = metaclass.__prepare__(name, bases, **kwds)`` (where the " "additional keyword arguments, if any, come from the class definition)." msgstr "" -"Une fois que la méta-classe appropriée est identifiée, l'espace de noms de " -"la classe est préparé. Si la méta-classe possède un attribut " +"Une fois que la méta-classe appropriée est identifiée, l'espace de nommage " +"de la classe est préparé. Si la méta-classe possède un attribut " "``__prepare__``, il est appelé avec ``namespace = metaclass." "__prepare__(name, bases, **kwds)`` (où les arguments nommés supplémentaires, " "s'il y en a, viennent de la définition de la classe)." -#: ../Doc/reference/datamodel.rst:1914 +#: ../Doc/reference/datamodel.rst:1918 msgid "" "If the metaclass has no ``__prepare__`` attribute, then the class namespace " "is initialised as an empty ordered mapping." msgstr "" "Si la méta-classe ne possède pas d'attribut ``__prepare__``, alors l'espace " -"de noms de la classe est initialisé en tant que tableau de correspondances " -"ordonné." +"de nommage de la classe est initialisé en tant que tableau de " +"correspondances ordonné." -#: ../Doc/reference/datamodel.rst:1919 +#: ../Doc/reference/datamodel.rst:1923 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr ":pep:`3115` -- Méta-classes dans Python 3000" +msgstr ":pep:`3115` — Méta-classes dans Python 3000" -#: ../Doc/reference/datamodel.rst:1920 +#: ../Doc/reference/datamodel.rst:1924 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" -"introduction de la fonction automatique ``__prepare__`` de l'espace de noms" +"introduction de la fonction automatique ``__prepare__`` de l'espace de " +"nommage" -#: ../Doc/reference/datamodel.rst:1924 +#: ../Doc/reference/datamodel.rst:1928 msgid "Executing the class body" msgstr "Exécution du corps de la classe" -#: ../Doc/reference/datamodel.rst:1929 +#: ../Doc/reference/datamodel.rst:1933 msgid "" "The class body is executed (approximately) as ``exec(body, globals(), " "namespace)``. The key difference from a normal call to :func:`exec` is that " @@ -3382,7 +3386,7 @@ msgstr "" "des portées externes lorsque la définition de classe a lieu dans une " "fonction." -#: ../Doc/reference/datamodel.rst:1935 +#: ../Doc/reference/datamodel.rst:1939 msgid "" "However, even when the class definition occurs inside the function, methods " "defined inside the class still cannot see names defined at the class scope. " @@ -3397,23 +3401,23 @@ msgstr "" "ou *via* la référence implicite ``__class__`` incluse dans la portée " "lexicale et décrite dans la section suivante." -#: ../Doc/reference/datamodel.rst:1944 +#: ../Doc/reference/datamodel.rst:1948 msgid "Creating the class object" msgstr "Création de l'objet classe" -#: ../Doc/reference/datamodel.rst:1951 +#: ../Doc/reference/datamodel.rst:1955 msgid "" "Once the class namespace has been populated by executing the class body, the " "class object is created by calling ``metaclass(name, bases, namespace, " "**kwds)`` (the additional keywords passed here are the same as those passed " "to ``__prepare__``)." msgstr "" -"Quand l'espace de noms a été rempli en exécutant le corps de la classe, " +"Quand l'espace de nommage a été rempli en exécutant le corps de la classe, " "l'objet classe est créé en appelant ``metaclass(name, bases, namespace, " "**kwds)`` (les arguments nommés supplémentaires passés ici sont les mêmes " "que ceux passés à ``__prepare__``)." -#: ../Doc/reference/datamodel.rst:1956 +#: ../Doc/reference/datamodel.rst:1960 msgid "" "This class object is the one that will be referenced by the zero-argument " "form of :func:`super`. ``__class__`` is an implicit closure reference " @@ -3432,7 +3436,7 @@ msgstr "" "l'appel en cours est identifiée en fonction du premier argument transmis à " "la méthode." -#: ../Doc/reference/datamodel.rst:1966 +#: ../Doc/reference/datamodel.rst:1970 msgid "" "In CPython 3.6 and later, the ``__class__`` cell is passed to the metaclass " "as a ``__classcell__`` entry in the class namespace. If present, this must " @@ -3441,13 +3445,13 @@ msgid "" "`DeprecationWarning` in Python 3.6, and a :exc:`RuntimeError` in Python 3.8." msgstr "" "Dans CPython 3.6 et suivants, la cellule ``__class__`` est passée à la méta-" -"classe en tant qu'entrée ``__classcell__`` dans l'espace de noms de la " +"classe en tant qu'entrée ``__classcell__`` dans l'espace de nommage de la " "classe. Si elle est présente, elle doit être propagée à l'appel ``type .__ " "new__`` pour que la classe soit correctement initialisée. Ne pas le faire se " "traduit par un avertissement :exc:`DeprecationWarning` dans Python 3.6 et " "un :exc:`RuntimeError` dans Python 3.8." -#: ../Doc/reference/datamodel.rst:1973 +#: ../Doc/reference/datamodel.rst:1977 msgid "" "When using the default metaclass :class:`type`, or any metaclass that " "ultimately calls ``type.__new__``, the following additional customisation " @@ -3458,23 +3462,24 @@ msgstr "" "personnalisation supplémentaires suivantes sont suivies après la création de " "l'objet classe :" -#: ../Doc/reference/datamodel.rst:1977 +#: ../Doc/reference/datamodel.rst:1981 msgid "" "first, ``type.__new__`` collects all of the descriptors in the class " "namespace that define a :meth:`~object.__set_name__` method;" msgstr "" -"d'abord, ``type.__new__`` récupère, dans l'espace de noms de la classe, tous " -"les descripteurs qui définissent une méthode :meth:`~object.__set_name__` ;" +"d'abord, ``type.__new__`` récupère, dans l'espace de nommage de la classe, " +"tous les descripteurs qui définissent une méthode :meth:`~object." +"__set_name__` ;" -#: ../Doc/reference/datamodel.rst:1979 +#: ../Doc/reference/datamodel.rst:1983 msgid "" "second, all of these ``__set_name__`` methods are called with the class " -"being defined and the assigned name of that particular descriptor; and" +"being defined and the assigned name of that particular descriptor;" msgstr "" "ensuite, toutes ces méthodes ``__set_name__`` sont appelées avec la classe " "en cours de définition et le nom assigné à chaque descripteur ;" -#: ../Doc/reference/datamodel.rst:1981 +#: ../Doc/reference/datamodel.rst:1985 msgid "" "finally, the :meth:`~object.__init_subclass__` hook is called on the " "immediate parent of the new class in its method resolution order." @@ -3483,7 +3488,7 @@ msgstr "" "appelée sur le parent immédiat de la nouvelle classe en utilisant l'ordre de " "résolution des méthodes." -#: ../Doc/reference/datamodel.rst:1984 +#: ../Doc/reference/datamodel.rst:1988 msgid "" "After the class object is created, it is passed to the class decorators " "included in the class definition (if any) and the resulting object is bound " @@ -3491,10 +3496,10 @@ msgid "" msgstr "" "Après la création de l'objet classe, il est passé aux décorateurs de la " "classe, y compris ceux inclus dans la définition de la classe (s'il y en a) " -"et l'objet résultant est lié à l'espace de noms local en tant que classe " +"et l'objet résultant est lié à l'espace de nommage local en tant que classe " "définie." -#: ../Doc/reference/datamodel.rst:1988 +#: ../Doc/reference/datamodel.rst:1992 msgid "" "When a new class is created by ``type.__new__``, the object provided as the " "namespace parameter is copied to a new ordered mapping and the original " @@ -3502,26 +3507,26 @@ msgid "" "becomes the :attr:`~object.__dict__` attribute of the class object." msgstr "" "Quand une nouvelle classe est créée *via* ``type.__new__``, l'objet fourni " -"en tant que paramètre d'espace de noms est copié vers un nouveau tableau de " -"correspondances ordonné et l'objet original est laissé de côté. La nouvelle " -"copie est encapsulée dans un mandataire en lecture seule qui devient " -"l'attribut :attr:`~object.__dict__` de l'objet classe." +"en tant que paramètre d'espace de nommage est copié vers un nouveau tableau " +"de correspondances ordonné et l'objet original est laissé de côté. La " +"nouvelle copie est encapsulée dans un mandataire en lecture seule qui " +"devient l'attribut :attr:`~object.__dict__` de l'objet classe." -#: ../Doc/reference/datamodel.rst:1995 +#: ../Doc/reference/datamodel.rst:1999 msgid ":pep:`3135` - New super" -msgstr ":pep:`3135` -- Nouvelle méthode super" +msgstr ":pep:`3135` — Nouvelle méthode super" -#: ../Doc/reference/datamodel.rst:1996 +#: ../Doc/reference/datamodel.rst:2000 msgid "Describes the implicit ``__class__`` closure reference" msgstr "" "Décrit la référence à la fermeture (*closure* en anglais) de la " "``__class__`` implicite" -#: ../Doc/reference/datamodel.rst:2000 -msgid "Metaclass example" -msgstr "Exemple de méta-classe" +#: ../Doc/reference/datamodel.rst:2004 +msgid "Uses for metaclasses" +msgstr "Cas d'utilisations des métaclasses" -#: ../Doc/reference/datamodel.rst:2002 +#: ../Doc/reference/datamodel.rst:2006 msgid "" "The potential uses for metaclasses are boundless. Some ideas that have been " "explored include enum, logging, interface checking, automatic delegation, " @@ -3531,44 +3536,14 @@ msgstr "" "Les utilisations possibles des méta-classes sont immenses. Quelques pistes " "ont déjà été explorées comme l'énumération, la gestion des traces, le " "contrôle des interfaces, la délégation automatique, la création automatique " -"de propriétés, les mandataires, les cadriciels (*frameworks* en anglais) " -"ainsi que le verrouillage ou la synchronisation automatique de ressources." - -#: ../Doc/reference/datamodel.rst:2007 -msgid "" -"Here is an example of a metaclass that uses an :class:`collections." -"OrderedDict` to remember the order that class variables are defined::" -msgstr "" -"Voici un exemple de méta-classe qui utilise une :class:`collections." -"OrderedDict` pour mémoriser l'ordre dans lequel les variables de classe sont " -"définies ::" - -#: ../Doc/reference/datamodel.rst:2030 -msgid "" -"When the class definition for *A* gets executed, the process begins with " -"calling the metaclass's :meth:`__prepare__` method which returns an empty :" -"class:`collections.OrderedDict`. That mapping records the methods and " -"attributes of *A* as they are defined within the body of the class " -"statement. Once those definitions are executed, the ordered dictionary is " -"fully populated and the metaclass's :meth:`__new__` method gets invoked. " -"That method builds the new type and it saves the ordered dictionary keys in " -"an attribute called ``members``." -msgstr "" -"Quand la définition de la classe *A* s'exécute, le processus commence par " -"appeler la méthode :meth:`__prepare__` de la méta-classe qui renvoie un :" -"class:`collections.OrderedDict` vide. Ce tableau de correspondances " -"enregistre les méthodes et attributs de *A* au fur et à mesure de leurs " -"définitions dans les instructions du corps de la classe. Une fois que ces " -"définitions ont été exécutées, le dictionnaire ordonné est complètement " -"peuplé et la méthode :meth:`__new__` de la méta-classe est appelée. Cette " -"méthode construit un nouveau type et sauve les clés du dictionnaire ordonné " -"dans un attribut appelé ``members``." - -#: ../Doc/reference/datamodel.rst:2041 +"de propriétés, les mandataires, les *frameworks* ainsi que le verrouillage " +"ou la synchronisation automatique de ressources." + +#: ../Doc/reference/datamodel.rst:2013 msgid "Customizing instance and subclass checks" msgstr "Personnalisation des instances et vérification des sous-classes" -#: ../Doc/reference/datamodel.rst:2043 +#: ../Doc/reference/datamodel.rst:2015 msgid "" "The following methods are used to override the default behavior of the :func:" "`isinstance` and :func:`issubclass` built-in functions." @@ -3576,29 +3551,29 @@ msgstr "" "Les méthodes suivantes sont utilisées pour surcharger le comportement par " "défaut des fonctions natives :func:`isinstance` et :func:`issubclass`." -#: ../Doc/reference/datamodel.rst:2046 +#: ../Doc/reference/datamodel.rst:2018 msgid "" "In particular, the metaclass :class:`abc.ABCMeta` implements these methods " "in order to allow the addition of Abstract Base Classes (ABCs) as \"virtual " "base classes\" to any class or type (including built-in types), including " "other ABCs." msgstr "" -"En particulier, la méta-classe :class:`abc.ABCMeta` implemente ces méthodes " -"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " -"Base Classes* en anglais) en tant que \"classes de base virtuelles\" pour " +"En particulier, la méta-classe :class:`abc.ABCMeta` implémente ces méthodes " +"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " +"Base Classes* en anglais) en tant que « classes de base virtuelles » pour " "toute classe ou type (y compris les types natifs)." -#: ../Doc/reference/datamodel.rst:2053 +#: ../Doc/reference/datamodel.rst:2025 msgid "" "Return true if *instance* should be considered a (direct or indirect) " "instance of *class*. If defined, called to implement ``isinstance(instance, " "class)``." msgstr "" "Renvoie ``True`` si *instance* doit être considérée comme une instance " -"(directe ou indirecte) de *class*. Si elle est définie, est elle appelée " +"(directe ou indirecte) de *class*. Si elle est définie, elle est appelée " "pour implémenter ``isinstance(instance, class)``." -#: ../Doc/reference/datamodel.rst:2060 +#: ../Doc/reference/datamodel.rst:2032 msgid "" "Return true if *subclass* should be considered a (direct or indirect) " "subclass of *class*. If defined, called to implement ``issubclass(subclass, " @@ -3608,7 +3583,7 @@ msgstr "" "(directe ou indirecte) de *class*. Si elle est définie, appelée pour " "implémenter ``issubclass(subclass, class)``." -#: ../Doc/reference/datamodel.rst:2065 +#: ../Doc/reference/datamodel.rst:2037 msgid "" "Note that these methods are looked up on the type (metaclass) of a class. " "They cannot be defined as class methods in the actual class. This is " @@ -3621,11 +3596,11 @@ msgstr "" "spéciales qui sont appelées pour les instances, sauf qu'ici l'instance est " "elle-même une classe." -#: ../Doc/reference/datamodel.rst:2076 +#: ../Doc/reference/datamodel.rst:2048 msgid ":pep:`3119` - Introducing Abstract Base Classes" -msgstr ":pep:`3119` -- Introduction aux classes de bases abstraites" +msgstr ":pep:`3119` — Introduction aux classes de bases abstraites" -#: ../Doc/reference/datamodel.rst:2073 +#: ../Doc/reference/datamodel.rst:2045 msgid "" "Includes the specification for customizing :func:`isinstance` and :func:" "`issubclass` behavior through :meth:`~class.__instancecheck__` and :meth:" @@ -3639,20 +3614,20 @@ msgstr "" "motivation pour cette fonctionnalité l'ajout les classes de base abstraites " "(voir le module :mod:`abc`) au langage." -#: ../Doc/reference/datamodel.rst:2081 +#: ../Doc/reference/datamodel.rst:2053 msgid "Emulating generic types" msgstr "Émulation de types génériques" -#: ../Doc/reference/datamodel.rst:2083 +#: ../Doc/reference/datamodel.rst:2055 msgid "" "One can implement the generic class syntax as specified by :pep:`484` (for " -"example ``List[int]``) by defining a special method" +"example ``List[int]``) by defining a special method:" msgstr "" "Vous pouvez implémenter la syntaxe générique des classes comme spécifié par " "la :pep:`484` (par exemple ``List[int]``) en définissant une méthode " -"spéciale." +"spéciale :" -#: ../Doc/reference/datamodel.rst:2088 +#: ../Doc/reference/datamodel.rst:2060 msgid "" "Return an object representing the specialization of a generic class by type " "arguments found in *key*." @@ -3660,7 +3635,7 @@ msgstr "" "Renvoie un objet représentant la spécialisation d'une classe générique en " "fonction des arguments types trouvés dans *key*." -#: ../Doc/reference/datamodel.rst:2091 +#: ../Doc/reference/datamodel.rst:2063 msgid "" "This method is looked up on the class object itself, and when defined in the " "class body, this method is implicitly a class method. Note, this mechanism " @@ -3673,25 +3648,25 @@ msgstr "" "principalement réservé à une utilisation avec des indications de type " "statiques, d'autres utilisations sont déconseillées." -#: ../Doc/reference/datamodel.rst:2104 +#: ../Doc/reference/datamodel.rst:2076 msgid "Emulating callable objects" msgstr "Émulation d'objets appelables" -#: ../Doc/reference/datamodel.rst:2111 +#: ../Doc/reference/datamodel.rst:2083 msgid "" "Called when the instance is \"called\" as a function; if this method is " "defined, ``x(arg1, arg2, ...)`` is a shorthand for ``x.__call__(arg1, " "arg2, ...)``." msgstr "" -"Appelée quand l'instance est \"appelée\" en tant que fonction ; si la " +"Appelée quand l'instance est « appelée » en tant que fonction ; si la " "méthode est définie, ``x(arg1, arg2, ...)`` est un raccourci pour ``x." "__call__(arg1, arg2, ...)``." -#: ../Doc/reference/datamodel.rst:2118 +#: ../Doc/reference/datamodel.rst:2090 msgid "Emulating container types" msgstr "Émulation de types conteneurs" -#: ../Doc/reference/datamodel.rst:2120 +#: ../Doc/reference/datamodel.rst:2092 msgid "" "The following methods can be defined to implement container objects. " "Containers usually are sequences (such as lists or tuples) or mappings (like " @@ -3758,7 +3733,7 @@ msgstr "" "de correspondances, :meth:`__iter__` doit être la même que :meth:`keys` ; " "pour les séquences, elle doit itérer sur les valeurs." -#: ../Doc/reference/datamodel.rst:2155 +#: ../Doc/reference/datamodel.rst:2127 msgid "" "Called to implement the built-in function :func:`len`. Should return the " "length of the object, an integer ``>=`` 0. Also, an object that doesn't " @@ -3770,7 +3745,7 @@ msgstr "" "définit pas de méthode :meth:`__bool__` et dont la méthode :meth:`__len__` " "renvoie zéro est considéré comme valant ``False`` dans un contexte booléen." -#: ../Doc/reference/datamodel.rst:2162 +#: ../Doc/reference/datamodel.rst:2134 msgid "" "In CPython, the length is required to be at most :attr:`sys.maxsize`. If the " "length is larger than :attr:`!sys.maxsize` some features (such as :func:" @@ -3784,7 +3759,7 @@ msgstr "" "exc:`!OverflowError` lors de tests booléens, un objet doit définir la " "méthode :meth:`__bool__`." -#: ../Doc/reference/datamodel.rst:2171 +#: ../Doc/reference/datamodel.rst:2143 msgid "" "Called to implement :func:`operator.length_hint`. Should return an estimated " "length for the object (which may be greater or less than the actual length). " @@ -3797,22 +3772,22 @@ msgstr "" "méthode est utilisée uniquement pour optimiser les traitements et n'est " "jamais tenue de renvoyer un résultat exact." -#: ../Doc/reference/datamodel.rst:2181 +#: ../Doc/reference/datamodel.rst:2155 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" "Le découpage est effectué uniquement à l'aide des trois méthodes suivantes. " -"Un appel comme ::" +"Un appel comme ::" -#: ../Doc/reference/datamodel.rst:2185 +#: ../Doc/reference/datamodel.rst:2159 msgid "is translated to ::" -msgstr "est traduit en ::" +msgstr "est traduit en ::" -#: ../Doc/reference/datamodel.rst:2189 +#: ../Doc/reference/datamodel.rst:2163 msgid "and so forth. Missing slice items are always filled in with ``None``." msgstr "et ainsi de suite. Les éléments manquants sont remplacés par ``None``." -#: ../Doc/reference/datamodel.rst:2196 +#: ../Doc/reference/datamodel.rst:2168 msgid "" "Called to implement evaluation of ``self[key]``. For sequence types, the " "accepted keys should be integers and slice objects. Note that the special " @@ -3833,7 +3808,7 @@ msgstr "" "`IndexError` doit être levée. Pour les tableaux de correspondances, si *key* " "n'existe pas dans le conteneur, une :exc:`KeyError` doit être levée." -#: ../Doc/reference/datamodel.rst:2207 +#: ../Doc/reference/datamodel.rst:2179 msgid "" ":keyword:`for` loops expect that an :exc:`IndexError` will be raised for " "illegal indexes to allow proper detection of the end of the sequence." @@ -3841,16 +3816,7 @@ msgstr "" ":keyword:`for` s'attend à ce qu'une :exc:`IndexError` soit levée en cas " "d'indice illégal afin de détecter correctement la fin de la séquence." -#: ../Doc/reference/datamodel.rst:2213 -msgid "" -"Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " -"for dict subclasses when key is not in the dictionary." -msgstr "" -"Appelée par :class:`dict`\\ .\\ :meth:`__getitem__` pour implémenter " -"``self[key]`` dans les sous-classes de dictionnaires lorsque la clé n'est " -"pas dans le dictionnaire." - -#: ../Doc/reference/datamodel.rst:2219 +#: ../Doc/reference/datamodel.rst:2185 msgid "" "Called to implement assignment to ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -3866,7 +3832,7 @@ msgstr "" "exceptions que pour la méthode :meth:`__getitem__` doivent être levées en " "cas de mauvaises valeurs de clés." -#: ../Doc/reference/datamodel.rst:2228 +#: ../Doc/reference/datamodel.rst:2194 msgid "" "Called to implement deletion of ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -3881,7 +3847,16 @@ msgstr "" "Les mêmes exceptions que pour la méthode :meth:`__getitem__` doivent être " "levées en cas de mauvaises valeurs de clés." -#: ../Doc/reference/datamodel.rst:2237 +#: ../Doc/reference/datamodel.rst:2203 +msgid "" +"Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " +"for dict subclasses when key is not in the dictionary." +msgstr "" +"Appelée par :class:`dict`\\ .\\ :meth:`__getitem__` pour implémenter " +"``self[key]`` dans les sous-classes de dictionnaires lorsque la clé n'est " +"pas dans le dictionnaire." + +#: ../Doc/reference/datamodel.rst:2209 msgid "" "This method is called when an iterator is required for a container. This " "method should return a new iterator object that can iterate over all the " @@ -3893,7 +3868,7 @@ msgstr "" "tous les objets du conteneur. Pour les tableaux de correspondances, elle " "doit itérer sur les clés du conteneur." -#: ../Doc/reference/datamodel.rst:2241 +#: ../Doc/reference/datamodel.rst:2213 msgid "" "Iterator objects also need to implement this method; they are required to " "return themselves. For more information on iterator objects, see :ref:" @@ -3903,7 +3878,7 @@ msgstr "" "alors se renvoyer eux-mêmes. Pour plus d'information sur les objets " "itérateurs, lisez :ref:`typeiter`." -#: ../Doc/reference/datamodel.rst:2247 +#: ../Doc/reference/datamodel.rst:2219 msgid "" "Called (if present) by the :func:`reversed` built-in to implement reverse " "iteration. It should return a new iterator object that iterates over all " @@ -3913,7 +3888,7 @@ msgstr "" "implémenter l'itération en sens inverse. Elle doit renvoyer un nouvel objet " "itérateur qui itère sur tous les objets du conteneur en sens inverse." -#: ../Doc/reference/datamodel.rst:2251 +#: ../Doc/reference/datamodel.rst:2223 msgid "" "If the :meth:`__reversed__` method is not provided, the :func:`reversed` " "built-in will fall back to using the sequence protocol (:meth:`__len__` and :" @@ -3922,25 +3897,25 @@ msgid "" "more efficient than the one provided by :func:`reversed`." msgstr "" "Si la méthode :meth:`__reversed__` n'est pas fournie, la fonction native :" -"func:`reversed` se replie sur le protocole de séquence (:meth:`__len__` and :" +"func:`reversed` se replie sur le protocole de séquence (:meth:`__len__` et :" "meth:`__getitem__`). Les objets qui connaissent le protocole de séquence ne " "doivent fournir :meth:`__reversed__` que si l'implémentation qu'ils " "proposent est plus efficace que celle de :func:`reversed`." -#: ../Doc/reference/datamodel.rst:2258 +#: ../Doc/reference/datamodel.rst:2230 msgid "" "The membership test operators (:keyword:`in` and :keyword:`not in`) are " "normally implemented as an iteration through a sequence. However, container " "objects can supply the following special method with a more efficient " "implementation, which also does not require the object be a sequence." msgstr "" -"Les opérateurs de tests d'appartenance (:keyword:`in` and :keyword:`not in`) " +"Les opérateurs de tests d'appartenance (:keyword:`in` et :keyword:`not in`) " "sont normalement implémentés comme des itérations sur la séquence. " "Cependant, les objets conteneurs peuvent fournir les méthodes spéciales " "suivantes avec une implémentation plus efficace, qui ne requièrent " -"d'ailleurs pas que l'objet soit une séquence. " +"d'ailleurs pas que l'objet soit une séquence." -#: ../Doc/reference/datamodel.rst:2265 +#: ../Doc/reference/datamodel.rst:2237 msgid "" "Called to implement membership test operators. Should return true if *item* " "is in *self*, false otherwise. For mapping objects, this should consider " @@ -3951,7 +3926,7 @@ msgstr "" "tableaux de correspondances, seules les clés sont considérées (pas les " "valeurs des paires clés-valeurs)." -#: ../Doc/reference/datamodel.rst:2269 +#: ../Doc/reference/datamodel.rst:2241 msgid "" "For objects that don't define :meth:`__contains__`, the membership test " "first tries iteration via :meth:`__iter__`, then the old sequence iteration " @@ -3964,11 +3939,11 @@ msgstr "" "reportez-vous à :ref:`cette section dans la référence du langage `." -#: ../Doc/reference/datamodel.rst:2278 +#: ../Doc/reference/datamodel.rst:2250 msgid "Emulating numeric types" msgstr "Émulation de types numériques" -#: ../Doc/reference/datamodel.rst:2280 +#: ../Doc/reference/datamodel.rst:2252 msgid "" "The following methods can be defined to emulate numeric objects. Methods " "corresponding to operations that are not supported by the particular kind of " @@ -3981,7 +3956,7 @@ msgstr "" "opérations bit à bit pour les nombres qui ne sont pas entiers) doivent être " "laissées indéfinies." -#: ../Doc/reference/datamodel.rst:2306 +#: ../Doc/reference/datamodel.rst:2278 msgid "" "These methods are called to implement the binary arithmetic operations (``" "+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, " @@ -3999,12 +3974,12 @@ msgstr "" "évaluer l'expression ``x + y``, où *x* est une instance d'une classe qui " "possède une méthode :meth:`__add__`, ``x.__add__(y)`` est appelée. La " "méthode :meth:`__divmod__` doit être l'équivalent d'appeler :meth:" -"`__floordiv__` et :meth:`__mod__`; elle ne doit pas être reliée à :meth:" +"`__floordiv__` et :meth:`__mod__` ; elle ne doit pas être reliée à :meth:" "`__truediv__`. Notez que :meth:`__pow__` doit être définie de manière à " "accepter un troisième argument optionnel si la version ternaire de la " "fonction native :func:`pow` est autorisée." -#: ../Doc/reference/datamodel.rst:2317 +#: ../Doc/reference/datamodel.rst:2289 msgid "" "If one of those methods does not support the operation with the supplied " "arguments, it should return ``NotImplemented``." @@ -4012,7 +3987,7 @@ msgstr "" "Si l'une de ces méthodes n'autorise pas l'opération avec les arguments " "donnés, elle doit renvoyer ``NotImplemented``." -#: ../Doc/reference/datamodel.rst:2340 +#: ../Doc/reference/datamodel.rst:2312 msgid "" "These methods are called to implement the binary arithmetic operations (``" "+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, " @@ -4033,7 +4008,7 @@ msgstr "" "`__rsub__`, ``y.__rsub__(x)`` est appelée si ``x.__sub__(y)`` renvoie " "*NotImplemented*." -#: ../Doc/reference/datamodel.rst:2351 +#: ../Doc/reference/datamodel.rst:2323 msgid "" "Note that ternary :func:`pow` will not try calling :meth:`__rpow__` (the " "coercion rules would become too complicated)." @@ -4041,7 +4016,7 @@ msgstr "" "Notez que la fonction ternaire :func:`pow` n'essaie pas d'appeler :meth:" "`__rpow__` (les règles de coercition seraient trop compliquées)." -#: ../Doc/reference/datamodel.rst:2356 +#: ../Doc/reference/datamodel.rst:2328 msgid "" "If the right operand's type is a subclass of the left operand's type and " "that subclass provides the reflected method for the operation, this method " @@ -4054,7 +4029,7 @@ msgstr "" "l'opérande gauche. Ce comportement permet à des sous-classes de surcharger " "les opérations de leurs ancêtres." -#: ../Doc/reference/datamodel.rst:2376 +#: ../Doc/reference/datamodel.rst:2348 msgid "" "These methods are called to implement the augmented arithmetic assignments " "(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, " @@ -4072,7 +4047,7 @@ msgstr "" "Ces méthodes sont appelées pour implémenter les assignations arithmétiques " "augmentées (``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, " "``**=``, ``<<=``, ``>>=``, ``&=``, ``^=``, ``|=``). Ces méthodes doivent " -"essayer d'effectuer l'opération \"sur place\" (c'est-à-dire de modifier " +"essayer d'effectuer l'opération « sur place » (c'est-à-dire de modifier " "*self*) et de renvoyer le résultat (qui peut être, mais pas nécessairement, " "*self*). Si une méthode spécifique n'est pas définie, l'assignation " "augmentée se replie vers la méthode normale correspondante. Par exemple, si " @@ -4083,15 +4058,15 @@ msgstr "" "erreurs inattendues (voir :ref:`faq-augmented-assignment-tuple-error`), mais " "ce comportement est en fait partie intégrante du modèle de données." -#: ../Doc/reference/datamodel.rst:2397 +#: ../Doc/reference/datamodel.rst:2369 msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." msgstr "" "Appelée pour implémenter les opérations arithmétiques unaires (``-``, ``" -"+``, :func:`abs` and ``~``)." +"+``, :func:`abs` et ``~``)." -#: ../Doc/reference/datamodel.rst:2410 +#: ../Doc/reference/datamodel.rst:2382 msgid "" "Called to implement the built-in functions :func:`complex`, :func:`int` and :" "func:`float`. Should return a value of the appropriate type." @@ -4099,7 +4074,7 @@ msgstr "" "Appelées pour implémenter les fonctions natives :func:`complex`, :func:`int` " "et :func:`float`. Elles doivent renvoyer une valeur du type approprié." -#: ../Doc/reference/datamodel.rst:2417 +#: ../Doc/reference/datamodel.rst:2389 msgid "" "Called to implement :func:`operator.index`, and whenever Python needs to " "losslessly convert the numeric object to an integer object (such as in " @@ -4113,7 +4088,7 @@ msgstr "" "`oct`). La présence de cette méthode indique que l'objet numérique est un " "type entier. Elle doit renvoyer un entier." -#: ../Doc/reference/datamodel.rst:2425 +#: ../Doc/reference/datamodel.rst:2397 msgid "" "In order to have a coherent integer type class, when :meth:`__index__` is " "defined :meth:`__int__` should also be defined, and both should return the " @@ -4123,7 +4098,7 @@ msgstr "" "est définie alors :meth:`__int__` doit aussi être définie et les deux " "doivent renvoyer la même valeur." -#: ../Doc/reference/datamodel.rst:2437 +#: ../Doc/reference/datamodel.rst:2409 msgid "" "Called to implement the built-in function :func:`round` and :mod:`math` " "functions :func:`~math.trunc`, :func:`~math.floor` and :func:`~math.ceil`. " @@ -4137,7 +4112,7 @@ msgstr "" "toutes ces méthodes doivent renvoyer la valeur de l'objet tronquée pour " "donner un :class:`~numbers.Integral` (typiquement un :class:`int`)." -#: ../Doc/reference/datamodel.rst:2443 +#: ../Doc/reference/datamodel.rst:2415 msgid "" "If :meth:`__int__` is not defined then the built-in function :func:`int` " "falls back to :meth:`__trunc__`." @@ -4145,28 +4120,28 @@ msgstr "" "Si :meth:`__int__` n'est pas définie, alors la fonction native :func:`int` " "se replie sur :meth:`__trunc__`." -#: ../Doc/reference/datamodel.rst:2450 +#: ../Doc/reference/datamodel.rst:2422 msgid "With Statement Context Managers" msgstr "Gestionnaire de contexte With" -#: ../Doc/reference/datamodel.rst:2452 +#: ../Doc/reference/datamodel.rst:2424 msgid "" "A :dfn:`context manager` is an object that defines the runtime context to be " "established when executing a :keyword:`with` statement. The context manager " "handles the entry into, and the exit from, the desired runtime context for " "the execution of the block of code. Context managers are normally invoked " -"using the :keyword:`with` statement (described in section :ref:`with`), but " +"using the :keyword:`!with` statement (described in section :ref:`with`), but " "can also be used by directly invoking their methods." msgstr "" "Un :dfn:`gestionnaire de contexte` est un objet qui met en place un contexte " "prédéfini au moment de l'exécution de l'instruction :keyword:`with`. Le " "gestionnaire de contexte gère l'entrée et la sortie de ce contexte " "d'exécution pour tout un bloc de code. Les gestionnaires de contextes sont " -"normalement invoqués en utilisant une instruction :keyword:`with` (décrite " +"normalement invoqués en utilisant une instruction :keyword:`!with` (décrite " "dans la section :ref:`with`), mais ils peuvent aussi être directement " "invoqués par leurs méthodes." -#: ../Doc/reference/datamodel.rst:2463 +#: ../Doc/reference/datamodel.rst:2435 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." @@ -4175,25 +4150,25 @@ msgstr "" "et la restauration d'états divers, le verrouillage et le déverrouillage de " "ressources, la fermeture de fichiers ouverts, etc." -#: ../Doc/reference/datamodel.rst:2466 +#: ../Doc/reference/datamodel.rst:2438 msgid "" "For more information on context managers, see :ref:`typecontextmanager`." msgstr "" "Pour plus d'informations sur les gestionnaires de contexte, lisez :ref:" "`typecontextmanager`." -#: ../Doc/reference/datamodel.rst:2471 +#: ../Doc/reference/datamodel.rst:2443 msgid "" "Enter the runtime context related to this object. The :keyword:`with` " "statement will bind this method's return value to the target(s) specified in " -"the :keyword:`as` clause of the statement, if any." +"the :keyword:`!as` clause of the statement, if any." msgstr "" "Entre dans le contexte d'exécution relatif à cet objet. L'instruction :" "keyword:`with` lie la valeur de retour de cette méthode à une (ou plusieurs) " -"cible spécifiée par la clause :keyword:`as` de l'instruction, si elle est " +"cible spécifiée par la clause :keyword:`!as` de l'instruction, si elle est " "spécifiée." -#: ../Doc/reference/datamodel.rst:2478 +#: ../Doc/reference/datamodel.rst:2450 msgid "" "Exit the runtime context related to this object. The parameters describe the " "exception that caused the context to be exited. If the context was exited " @@ -4203,7 +4178,7 @@ msgstr "" "l'exception qui a causé la sortie du contexte. Si l'on sort du contexte sans " "exception, les trois arguments sont à :const:`None`." -#: ../Doc/reference/datamodel.rst:2482 +#: ../Doc/reference/datamodel.rst:2454 msgid "" "If an exception is supplied, and the method wishes to suppress the exception " "(i.e., prevent it from being propagated), it should return a true value. " @@ -4215,7 +4190,7 @@ msgstr "" "propagée), elle doit renvoyer ``True``. Sinon, l'exception est traitée " "normalement à la sortie de cette méthode." -#: ../Doc/reference/datamodel.rst:2486 +#: ../Doc/reference/datamodel.rst:2458 msgid "" "Note that :meth:`__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." @@ -4223,11 +4198,11 @@ msgstr "" "Notez qu'une méthode :meth:`__exit__` ne doit pas lever à nouveau " "l'exception qu'elle reçoit ; c'est du ressort de l'appelant." -#: ../Doc/reference/datamodel.rst:2493 +#: ../Doc/reference/datamodel.rst:2465 msgid ":pep:`343` - The \"with\" statement" -msgstr ":pep:`343` - L'instruction \"with\"" +msgstr ":pep:`343` — L'instruction ``with``" -#: ../Doc/reference/datamodel.rst:2493 +#: ../Doc/reference/datamodel.rst:2465 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -4235,11 +4210,11 @@ msgstr "" "La spécification, les motivations et des exemples de l'instruction :keyword:" "`with` en Python." -#: ../Doc/reference/datamodel.rst:2500 +#: ../Doc/reference/datamodel.rst:2472 msgid "Special method lookup" msgstr "Recherche des méthodes spéciales" -#: ../Doc/reference/datamodel.rst:2502 +#: ../Doc/reference/datamodel.rst:2474 msgid "" "For custom classes, implicit invocations of special methods are only " "guaranteed to work correctly if defined on an object's type, not in the " @@ -4251,7 +4226,7 @@ msgstr "" "type d'objet, pas dans le dictionnaire de l'objet instance. Ce comportement " "explique pourquoi le code suivant lève une exception ::" -#: ../Doc/reference/datamodel.rst:2517 +#: ../Doc/reference/datamodel.rst:2489 msgid "" "The rationale behind this behaviour lies with a number of special methods " "such as :meth:`__hash__` and :meth:`__repr__` that are implemented by all " @@ -4265,17 +4240,17 @@ msgstr "" "méthodes utilisait le processus normal de recherche, elles ne " "fonctionneraient pas si on les appelait sur l'objet type lui-même ::" -#: ../Doc/reference/datamodel.rst:2530 +#: ../Doc/reference/datamodel.rst:2502 msgid "" "Incorrectly attempting to invoke an unbound method of a class in this way is " "sometimes referred to as 'metaclass confusion', and is avoided by bypassing " "the instance when looking up special methods::" msgstr "" "Essayer d'invoquer une méthode non liée d'une classe de cette manière est " -"parfois appelé \"confusion de méta-classe\" et se contourne en shuntant " +"parfois appelé « confusion de méta-classe » et se contourne en shuntant " "l'instance lors de la recherche des méthodes spéciales ::" -#: ../Doc/reference/datamodel.rst:2539 +#: ../Doc/reference/datamodel.rst:2511 msgid "" "In addition to bypassing any instance attributes in the interest of " "correctness, implicit special method lookup generally also bypasses the :" @@ -4285,7 +4260,7 @@ msgstr "" "correctement, la recherche des méthodes spéciales implicites shunte aussi la " "méthode :meth:`__getattribute__` même dans la méta-classe de l'objet ::" -#: ../Doc/reference/datamodel.rst:2565 +#: ../Doc/reference/datamodel.rst:2537 msgid "" "Bypassing the :meth:`__getattribute__` machinery in this fashion provides " "significant scope for speed optimisations within the interpreter, at the " @@ -4299,15 +4274,15 @@ msgstr "" "être définie sur l'objet classe lui-même afin d'être invoquée de manière " "cohérente par l'interpréteur)." -#: ../Doc/reference/datamodel.rst:2576 +#: ../Doc/reference/datamodel.rst:2548 msgid "Coroutines" msgstr "Coroutines" -#: ../Doc/reference/datamodel.rst:2580 +#: ../Doc/reference/datamodel.rst:2552 msgid "Awaitable Objects" -msgstr "Objets awaitables" +msgstr "Objets *attendables* (*awaitables*)" -#: ../Doc/reference/datamodel.rst:2582 +#: ../Doc/reference/datamodel.rst:2554 msgid "" "An :term:`awaitable` object generally implements an :meth:`__await__` " "method. :term:`Coroutine` objects returned from :keyword:`async def` " @@ -4315,9 +4290,9 @@ msgid "" msgstr "" "Un objet :term:`awaitable` implémente généralement une méthode :meth:" "`__await__`. Les objets :term:`Coroutine` renvoyés par les fonctions :" -"keyword:`async def` sont des awaitables." +"keyword:`async def` sont des *awaitables*." -#: ../Doc/reference/datamodel.rst:2588 +#: ../Doc/reference/datamodel.rst:2560 msgid "" "The :term:`generator iterator` objects returned from generators decorated " "with :func:`types.coroutine` or :func:`asyncio.coroutine` are also " @@ -4325,9 +4300,9 @@ msgid "" msgstr "" "Les objets :term:`itérateur de générateur` renvoyés par les générateurs " "décorés par :func:`types.coroutine` ou :func:`asyncio.coroutine` sont aussi " -"des awaitables, mais ils n'implémentent pas :meth:`__await__`." +"des *awaitables*, mais ils n'implémentent pas :meth:`__await__`." -#: ../Doc/reference/datamodel.rst:2594 +#: ../Doc/reference/datamodel.rst:2566 msgid "" "Must return an :term:`iterator`. Should be used to implement :term:" "`awaitable` objects. For instance, :class:`asyncio.Future` implements this " @@ -4337,15 +4312,15 @@ msgstr "" "objets :term:`awaitable`. Par exemple, :class:`asyncio.Future` implémente " "cette méthode pour être compatible avec les expressions :keyword:`await`." -#: ../Doc/reference/datamodel.rst:2600 +#: ../Doc/reference/datamodel.rst:2572 msgid ":pep:`492` for additional information about awaitable objects." -msgstr ":pep:`492` pour les informations relatives aux objets awaitables." +msgstr ":pep:`492` pour les informations relatives aux objets *awaitables*." -#: ../Doc/reference/datamodel.rst:2606 +#: ../Doc/reference/datamodel.rst:2578 msgid "Coroutine Objects" msgstr "Objets coroutines" -#: ../Doc/reference/datamodel.rst:2608 +#: ../Doc/reference/datamodel.rst:2580 msgid "" ":term:`Coroutine` objects are :term:`awaitable` objects. A coroutine's " "execution can be controlled by calling :meth:`__await__` and iterating over " @@ -4363,7 +4338,7 @@ msgstr "" "exception, elle est propagée par l'itérateur. Les coroutines ne doivent pas " "lever directement des exceptions :exc:`StopIteration` non gérées." -#: ../Doc/reference/datamodel.rst:2616 +#: ../Doc/reference/datamodel.rst:2588 msgid "" "Coroutines also have the methods listed below, which are analogous to those " "of generators (see :ref:`generator-methods`). However, unlike generators, " @@ -4374,13 +4349,13 @@ msgstr "" "contraire des générateurs, vous ne pouvez pas itérer directement sur des " "coroutines." -#: ../Doc/reference/datamodel.rst:2620 +#: ../Doc/reference/datamodel.rst:2592 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" "Utiliser *await* plus d'une fois sur une coroutine lève une :exc:" "`RuntimeError`." -#: ../Doc/reference/datamodel.rst:2626 +#: ../Doc/reference/datamodel.rst:2598 msgid "" "Starts or resumes execution of the coroutine. If *value* is ``None``, this " "is equivalent to advancing the iterator returned by :meth:`__await__`. If " @@ -4397,7 +4372,7 @@ msgstr "" "est le même que lorsque vous itérez sur la valeur de retour de :meth:" "`__await__`, décrite ci-dessus." -#: ../Doc/reference/datamodel.rst:2636 +#: ../Doc/reference/datamodel.rst:2608 msgid "" "Raises the specified exception in the coroutine. This method delegates to " "the :meth:`~generator.throw` method of the iterator that caused the " @@ -4415,7 +4390,7 @@ msgstr "" "retour de :meth:`__await__`, décrite ci-dessus. Si l'exception n'est pas " "gérée par la coroutine, elle est propagée à l'appelant." -#: ../Doc/reference/datamodel.rst:2647 +#: ../Doc/reference/datamodel.rst:2619 msgid "" "Causes the coroutine to clean itself up and exit. If the coroutine is " "suspended, this method first delegates to the :meth:`~generator.close` " @@ -4432,7 +4407,7 @@ msgstr "" "la coroutine est marquée comme ayant terminé son exécution, même si elle n'a " "jamais démarré." -#: ../Doc/reference/datamodel.rst:2655 +#: ../Doc/reference/datamodel.rst:2627 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." @@ -4440,30 +4415,30 @@ msgstr "" "Les objets coroutines sont automatiquement fermés en utilisant le processus " "décrit au-dessus au moment où ils sont détruits." -#: ../Doc/reference/datamodel.rst:2661 +#: ../Doc/reference/datamodel.rst:2633 msgid "Asynchronous Iterators" msgstr "Itérateurs asynchrones" -#: ../Doc/reference/datamodel.rst:2663 +#: ../Doc/reference/datamodel.rst:2635 msgid "" "An *asynchronous iterator* can call asynchronous code in its ``__anext__`` " "method." msgstr "" -"Un *itérateur asynchrone* peut appeler du code asynchrone dans sa méthode " +"Un *itérateur asynchrone* peut appeler du code asynchrone dans sa méthode " "``__anext__``." -#: ../Doc/reference/datamodel.rst:2666 +#: ../Doc/reference/datamodel.rst:2638 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" "Les itérateurs asynchrones peuvent être utilisés dans des instructions :" "keyword:`async for`." -#: ../Doc/reference/datamodel.rst:2670 +#: ../Doc/reference/datamodel.rst:2642 msgid "Must return an *asynchronous iterator* object." msgstr "Doit renvoyer un objet *itérateur asynchrone*." -#: ../Doc/reference/datamodel.rst:2674 +#: ../Doc/reference/datamodel.rst:2646 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." @@ -4472,11 +4447,11 @@ msgstr "" "l'itérateur. Doit lever une :exc:`StopAsyncIteration` quand l'itération est " "terminée." -#: ../Doc/reference/datamodel.rst:2677 +#: ../Doc/reference/datamodel.rst:2649 msgid "An example of an asynchronous iterable object::" msgstr "Un exemple d'objet itérateur asynchrone ::" -#: ../Doc/reference/datamodel.rst:2694 +#: ../Doc/reference/datamodel.rst:2666 msgid "" "Prior to Python 3.7, ``__aiter__`` could return an *awaitable* that would " "resolve to an :term:`asynchronous iterator `." @@ -4485,7 +4460,7 @@ msgstr "" "résolvait potentiellement en un :term:`itérateur asynchrone `." -#: ../Doc/reference/datamodel.rst:2699 +#: ../Doc/reference/datamodel.rst:2671 msgid "" "Starting with Python 3.7, ``__aiter__`` must return an asynchronous iterator " "object. Returning anything else will result in a :exc:`TypeError` error." @@ -4493,11 +4468,11 @@ msgstr "" "À partir de Python 3.7, ``__aiter__`` doit renvoyer un objet itérateur " "asynchrone. Renvoyer autre chose entraine une erreur :exc:`TypeError`." -#: ../Doc/reference/datamodel.rst:2707 +#: ../Doc/reference/datamodel.rst:2679 msgid "Asynchronous Context Managers" msgstr "Gestionnaires de contexte asynchrones" -#: ../Doc/reference/datamodel.rst:2709 +#: ../Doc/reference/datamodel.rst:2681 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." @@ -4506,7 +4481,7 @@ msgstr "" "qui est capable de suspendre son exécution dans ses méthodes ``__aenter__`` " "et ``__aexit__``." -#: ../Doc/reference/datamodel.rst:2712 +#: ../Doc/reference/datamodel.rst:2684 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." @@ -4514,7 +4489,7 @@ msgstr "" "Les gestionnaires de contexte asynchrones peuvent être utilisés dans des " "instructions :keyword:`async with`." -#: ../Doc/reference/datamodel.rst:2716 +#: ../Doc/reference/datamodel.rst:2688 msgid "" "This method is semantically similar to the :meth:`__enter__`, with only " "difference that it must return an *awaitable*." @@ -4522,7 +4497,7 @@ msgstr "" "Cette méthode est sémantiquement équivalente à :meth:`__enter__`, à la seule " "différence près qu'elle doit renvoyer un *awaitable*." -#: ../Doc/reference/datamodel.rst:2721 +#: ../Doc/reference/datamodel.rst:2693 msgid "" "This method is semantically similar to the :meth:`__exit__`, with only " "difference that it must return an *awaitable*." @@ -4530,15 +4505,15 @@ msgstr "" "Cette méthode est sémantiquement équivalente à :meth:`__exit__`, à la seule " "différence près qu'elle doit renvoyer un *awaitable*." -#: ../Doc/reference/datamodel.rst:2724 +#: ../Doc/reference/datamodel.rst:2696 msgid "An example of an asynchronous context manager class::" msgstr "Un exemple de classe de gestionnaire de contexte asynchrone ::" -#: ../Doc/reference/datamodel.rst:2737 +#: ../Doc/reference/datamodel.rst:2709 msgid "Footnotes" msgstr "Notes" -#: ../Doc/reference/datamodel.rst:2738 +#: ../Doc/reference/datamodel.rst:2710 msgid "" "It *is* possible in some cases to change an object's type, under certain " "controlled conditions. It generally isn't a good idea though, since it can " @@ -4549,7 +4524,7 @@ msgstr "" "car cela peut conduire à un comportement très étrange si ce n'est pas géré " "correctement." -#: ../Doc/reference/datamodel.rst:2742 +#: ../Doc/reference/datamodel.rst:2714 msgid "" "The :meth:`__hash__`, :meth:`__iter__`, :meth:`__reversed__`, and :meth:" "`__contains__` methods have special handling for this; others will still " @@ -4561,7 +4536,7 @@ msgstr "" "lèvent toujours :exc:`TypeError`, mais le font en considérant que ``None`` " "n'est pas un appelable." -#: ../Doc/reference/datamodel.rst:2747 +#: ../Doc/reference/datamodel.rst:2719 msgid "" "\"Does not support\" here means that the class has no such method, or the " "method returns ``NotImplemented``. Do not set the method to ``None`` if you " @@ -4571,9 +4546,9 @@ msgstr "" "*n'autorise pas* signifie ici que la classe ne possède pas de méthode " "adéquate ou que la méthode renvoie ``NotImplemented``. N'assignez pas " "``None`` à la méthode si vous voulez un repli vers la méthode symétrique de " -"l'opérande de droite -- cela aurait pour effet de *bloquer* un tel repli." +"l'opérande de droite — cela aurait pour effet de *bloquer* un tel repli." -#: ../Doc/reference/datamodel.rst:2753 +#: ../Doc/reference/datamodel.rst:2725 msgid "" "For operands of the same type, it is assumed that if the non-reflected " "method (such as :meth:`__add__`) fails the operation is not supported, which " @@ -4583,22 +4558,33 @@ msgstr "" "(telle que :meth:`__add__`) échoue, l'opération n'est pas autorisée et donc " "la méthode symétrique n'est pas appelée." +#~ msgid "Metaclass example" +#~ msgstr "Exemple de méta-classe" + #~ msgid "" -#~ "The recommended way of writing backwards compatible code in CPython 3.5.x " -#~ "is to continue returning awaitables from ``__aiter__``. If you want to " -#~ "avoid the PendingDeprecationWarning and keep the code backwards " -#~ "compatible, the following decorator can be used::" +#~ "Here is an example of a metaclass that uses an :class:`collections." +#~ "OrderedDict` to remember the order that class variables are defined::" #~ msgstr "" -#~ "La façon conseillée d'écrire du code compatible descendant en CPython 3.5." -#~ "x est de continuer à renvoyer des awaitables avec ``__aiter__``. Si vous " -#~ "voulez éviter l'avertissement *PendingDeprecationWarning* et conserver un " -#~ "code compatible descendant, le décorateur suivant peut être utilisé ::" +#~ "Voici un exemple de méta-classe qui utilise une :class:`collections." +#~ "OrderedDict` pour mémoriser l'ordre dans lequel les variables de classe " +#~ "sont définies ::" #~ msgid "" -#~ "Starting with CPython 3.6, the :exc:`PendingDeprecationWarning` will be " -#~ "replaced with the :exc:`DeprecationWarning`. In CPython 3.7, returning an " -#~ "awaitable from ``__aiter__`` will result in a :exc:`RuntimeError`." +#~ "When the class definition for *A* gets executed, the process begins with " +#~ "calling the metaclass's :meth:`__prepare__` method which returns an " +#~ "empty :class:`collections.OrderedDict`. That mapping records the methods " +#~ "and attributes of *A* as they are defined within the body of the class " +#~ "statement. Once those definitions are executed, the ordered dictionary is " +#~ "fully populated and the metaclass's :meth:`__new__` method gets invoked. " +#~ "That method builds the new type and it saves the ordered dictionary keys " +#~ "in an attribute called ``members``." #~ msgstr "" -#~ "À partir de CPython 3.6, le :exc:`PendingDeprecationWarning` est remplacé " -#~ "par un :exc:`DeprecationWarning`. Dans CPython 3.7, renvoyer un awaitable " -#~ "avec ``__aiter__`` entraine une :exc:`RuntimeError`." +#~ "Quand la définition de la classe *A* s'exécute, le processus commence par " +#~ "appeler la méthode :meth:`__prepare__` de la méta-classe qui renvoie un :" +#~ "class:`collections.OrderedDict` vide. Ce tableau de correspondances " +#~ "enregistre les méthodes et attributs de *A* au fur et à mesure de leurs " +#~ "définitions dans les instructions du corps de la classe. Une fois que ces " +#~ "définitions ont été exécutées, le dictionnaire ordonné est complètement " +#~ "peuplé et la méthode :meth:`__new__` de la méta-classe est appelée. Cette " +#~ "méthode construit un nouveau type et sauve les clés du dictionnaire " +#~ "ordonné dans un attribut appelé ``members``." diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 71ff210a4..e8356ab1a 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-02 00:10+0200\n" -"PO-Revision-Date: 2018-04-29 00:05+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:53+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/reference/executionmodel.rst:6 msgid "Execution model" @@ -31,20 +31,21 @@ msgid "" "interactively is a block. A script file (a file given as standard input to " "the interpreter or specified as a command line argument to the interpreter) " "is a code block. A script command (a command specified on the interpreter " -"command line with the '**-c**' option) is a code block. The string argument " -"passed to the built-in functions :func:`eval` and :func:`exec` is a code " -"block." +"command line with the :option:`-c` option) is a code block. The string " +"argument passed to the built-in functions :func:`eval` and :func:`exec` is a " +"code block." msgstr "" -"Un programme Python est constitué de blocs de code. Un :dfn:`bloc` est un " -"morceau de texte d'un programme Python qui est exécuté unitairement. Voici " -"des exemples de blocs : un module, le corps d'une fonction ou la définition " -"d'une classe. Chaque commande tapée dans l'interpréteur interactif est un " -"bloc. Un fichier script (fichier donné en entrée à l'interpréteur ou " -"spécifié en tant qu'argument de la ligne de commande) est un bloc de code. " -"Un script de commande (commande spécifiée dans la ligne de commande de " -"l'interpréteur avec l'option '**-c**') est un bloc de code. La chaîne passée " -"en argument aux fonctions natives :func:`eval` ou :func:`exec` est un bloc " -"de code." +"Un programme Python est construit à partir de blocs de code. Un :dfn:`block` " +"est un morceau de texte de programme Python qui est exécuté en tant " +"qu'unité. Les éléments suivants sont des blocs : un module, un corps de " +"fonction et une définition de classe. Chaque commande écrite dans " +"l'interpréteur interactif de Python est un bloc. Un fichier de script (un " +"fichier donné en entrée standard à l'interpréteur ou spécifié en tant " +"qu'argument de ligne de commande à l'interpréteur) est un bloc de code. Une " +"commande de script (une commande spécifiée sur la ligne de commande de " +"l'interpréteur avec l'option :option:`-c`) est un bloc de code. La chaîne " +"passée en argument aux fonctions natives :func:`eval` et :func:`exec` est un " +"bloc de code." #: ../Doc/reference/executionmodel.rst:31 msgid "" @@ -79,8 +80,8 @@ msgid "" "keyword:`import` statements, class and function definitions (these bind the " "class or function name in the defining block), and targets that are " "identifiers if occurring in an assignment, :keyword:`for` loop header, or " -"after :keyword:`as` in a :keyword:`with` statement or :keyword:`except` " -"clause. The :keyword:`import` statement of the form ``from ... import *`` " +"after :keyword:`!as` in a :keyword:`with` statement or :keyword:`except` " +"clause. The :keyword:`!import` statement of the form ``from ... import *`` " "binds all names defined in the imported module, except those beginning with " "an underscore. This form may only be used at the module level." msgstr "" @@ -89,8 +90,8 @@ msgstr "" "`import`, les définitions de fonctions et de classes (le nom de la classe ou " "de la fonction est lié au bloc qui la définit) et les cibles qui sont des " "identifiants dans les assignations, les entêtes de boucles :keyword:`for` ou " -"après :keyword:`as` dans une instruction :keyword:`with` ou une clause :" -"keyword:`except`. L'instruction :keyword:`import` sous la forme ``from ... " +"après :keyword:`!as` dans une instruction :keyword:`with` ou une clause :" +"keyword:`except`. L'instruction :keyword:`!import` sous la forme ``from ... " "import *`` lie tous les noms définis dans le module importé, sauf ceux qui " "commencent par un tiret bas (`'_'`). Cette forme ne doit être utilisée qu'au " "niveau du module." @@ -205,19 +206,19 @@ msgid "" "the global namespace, i.e. the namespace of the module containing the code " "block, and the builtins namespace, the namespace of the module :mod:" "`builtins`. The global namespace is searched first. If the name is not " -"found there, the builtins namespace is searched. The :keyword:`global` " +"found there, the builtins namespace is searched. The :keyword:`!global` " "statement must precede all uses of the name." msgstr "" "Si l'instruction :keyword:`global` apparaît dans un bloc, toutes les " "utilisations du nom spécifié dans l'instruction font référence à la liaison " -"de ce nom dans l'espace de noms de plus haut niveau. Les noms sont résolus " -"dans cet espace de noms de plus haut niveau en recherchant l'espace des noms " -"globaux, c'est-à-dire l'espace de noms du module contenant le bloc de code " -"ainsi que dans l'espace de noms natifs, celui du module :mod:`builtins`. La " -"recherche commence dans l'espace de noms globaux. Si le nom n'y est pas " -"trouvé, la recherche se poursuit dans l'espace de noms natifs. " -"L'instruction :keyword:`global` doit précéder toute utilisation du nom " -"considéré." +"de ce nom dans l'espace de nommage de plus haut niveau. Les noms sont " +"résolus dans cet espace de nommage de plus haut niveau en recherchant " +"l'espace des noms globaux, c'est-à-dire l'espace de nommage du module " +"contenant le bloc de code ainsi que dans l'espace de nommage natif, celui du " +"module :mod:`builtins`. La recherche commence dans l'espace de nommage " +"globaux. Si le nom n'y est pas trouvé, la recherche se poursuit dans " +"l'espace de nommage natif. L'instruction :keyword:`!global` doit précéder " +"toute utilisation du nom considéré." #: ../Doc/reference/executionmodel.rst:129 msgid "" @@ -248,7 +249,7 @@ msgid "" "The namespace for a module is automatically created the first time a module " "is imported. The main module for a script is always called :mod:`__main__`." msgstr "" -"L'espace de noms pour un module est créé automatiquement la première fois " +"L'espace de nommage pour un module est créé automatiquement la première fois " "que le module est importé. Le module principal d'un script s'appelle " "toujours :mod:`__main__`." @@ -271,10 +272,10 @@ msgstr "" "qui peut utiliser et définir des noms. Toutes ces références suivent les " "règles normales de la résolution des noms à l'exception des variables " "locales non liées qui sont recherchées dans l'espace des noms globaux. " -"L'espace de noms de la définition de classe devient le dictionnaire des " +"L'espace de nommage de la définition de classe devient le dictionnaire des " "attributs de la classe. La portée des noms définis dans un bloc de classe " "est limitée au bloc de la classe ; elle ne s'étend pas aux blocs de code des " -"méthodes -- y compris les compréhensions et les expressions générateurs " +"méthodes — y compris les compréhensions et les expressions générateurs " "puisque celles-ci sont implémentées en utilisant une portée de fonction. " "Ainsi, les instructions suivantes échouent ::" @@ -289,11 +290,11 @@ msgid "" "keyword:`import` the :mod:`builtins` module and modify its attributes " "appropriately." msgstr "" -"L'utilisateur ne doit pas toucher à ``__builtins__``; c'est et cela doit " +"L'utilisateur ne doit pas toucher à ``__builtins__`` ; c'est et cela doit " "rester réservé aux besoins de l'implémentation. Les utilisateurs qui " -"souhaitent surcharger des valeurs dans l'espace de noms natifs doivent :" -"keyword:`import`\\ er le module :mod:`builtins` et modifier ses attributs " -"judicieusement." +"souhaitent surcharger des valeurs dans l'espace de nommage natif doivent :" +"keyword:`importer ` le module :mod:`builtins` et modifier ses " +"attributs judicieusement." #: ../Doc/reference/executionmodel.rst:174 msgid "" @@ -305,9 +306,9 @@ msgid "" "other module, ``__builtins__`` is an alias for the dictionary of the :mod:" "`builtins` module itself." msgstr "" -"L'espace de noms natifs associé à l'exécution d'un bloc de code est " +"L'espace de nommage natif associé à l'exécution d'un bloc de code est " "effectivement trouvé en cherchant le nom ``__builtins__`` dans l'espace de " -"noms globaux ; ce doit être un dictionnaire ou un module (dans ce dernier " +"nommage globaux ; ce doit être un dictionnaire ou un module (dans ce dernier " "cas, le dictionnaire du module est utilisé). Par défaut, lorsque l'on se " "trouve dans le module :mod:`__main__`, ``__builtins__`` est le module natif :" "mod:`builtins` ; lorsque l'on se trouve dans tout autre module, " @@ -338,12 +339,12 @@ msgid "" msgstr "" "Les fonctions :func:`eval` et :func:`exec` n'ont pas accès à l'environnement " "complet pour résoudre les noms. Les noms doivent être résolus dans les " -"espaces de noms locaux et globaux de l'appelant. Les variables libres ne " -"sont pas résolues dans l'espace de noms englobant le plus proche mais dans " -"l'espace de noms globaux [#]_. Les fonctions :func:`eval` et :func:`exec` " -"possèdent des arguments optionnels pour surcharger les espaces de noms " -"globaux et locaux. Si seulement un espace de noms est spécifié, il est " -"utilisé pour les deux." +"espaces de nommage locaux et globaux de l'appelant. Les variables libres ne " +"sont pas résolues dans l'espace de nommage englobant le plus proche mais " +"dans l'espace de nommage globaux [#]_. Les fonctions :func:`eval` et :func:" +"`exec` possèdent des arguments optionnels pour surcharger les espaces de " +"nommage globaux et locaux. Si seulement un espace de nommage est spécifié, " +"il est utilisé pour les deux." #: ../Doc/reference/executionmodel.rst:210 msgid "Exceptions" @@ -377,11 +378,10 @@ msgstr "" "L'interpréteur Python lève une exception quand il détecte une erreur à " "l'exécution (telle qu'une division par zéro). Un programme Python peut aussi " "lever explicitement une exception avec l'instruction :keyword:`raise`. Les " -"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:" -"`try` ... :keyword:`except`. La clause :keyword:`finally` d'une telle " -"instruction peut être utilisée pour spécifier un code de nettoyage qui ne " -"gère pas l'exception mais qui est exécuté quoi qu'il arrive (exception ou " -"pas)." +"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:`try` " +"… :keyword:`except`. La clause :keyword:`finally` d'une telle instruction " +"peut être utilisée pour spécifier un code de nettoyage qui ne gère pas " +"l'exception mais qui est exécuté quoi qu'il arrive (exception ou pas)." #: ../Doc/reference/executionmodel.rst:237 msgid "" @@ -392,7 +392,7 @@ msgid "" msgstr "" "Python utilise le modèle par *terminaison* de gestion des erreurs : un " "gestionnaire d'exception peut trouver ce qui est arrivé et continuer " -"l'exécution à un niveau plus élevé mais il ne peut pas réparer l'origine de " +"l'exécution à un niveau plus élevé, mais il ne peut pas réparer l'origine de " "l'erreur et ré-essayer l'opération qui a échoué (sauf à entrer à nouveau " "dans le code en question par le haut)." @@ -400,13 +400,13 @@ msgstr "" msgid "" "When an exception is not handled at all, the interpreter terminates " "execution of the program, or returns to its interactive main loop. In " -"either case, it prints a stack backtrace, except when the exception is :exc:" +"either case, it prints a stack traceback, except when the exception is :exc:" "`SystemExit`." msgstr "" -"Quand une exception n'est gérée par aucun gestionnaire, l'interpréteur " -"termine l'exécution du programme ou retourne à la boucle interactive. Dans " -"ces cas, il affiche une trace de la pile d'appels, sauf si l'exception est :" -"exc:`SystemExit`." +"Quand une exception n'est pas du tout gérée, l'interpréteur termine " +"l'exécution du programme ou retourne à la boucle interactive. Dans ces cas, " +"il affiche une trace de la pile d'appels, sauf si l'exception est :exc:" +"`SystemExit`." #: ../Doc/reference/executionmodel.rst:248 msgid "" diff --git a/reference/expressions.po b/reference/expressions.po index addf8b0b8..36b270103 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-07-03 20:44+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-19 21:43+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/reference/expressions.rst:6 msgid "Expressions" @@ -54,7 +54,7 @@ msgid "" "operator implementation for built-in types works as follows:" msgstr "" "Quand la description d'un opérateur arithmétique ci-dessous utilise la " -"phrase \"les arguments numériques sont convertis vers un type commun\", cela " +"phrase « les arguments numériques sont convertis vers un type commun », cela " "signifie que l'implémentation de l'opérateur fonctionne de la manière " "suivante pour les types natifs :" @@ -86,7 +86,7 @@ msgid "" "behavior." msgstr "" "Des règles supplémentaires s'appliquent pour certains opérateurs (par " -"exemple, une chaîne comme opérande de gauche pour l'opérateur '%'). Les " +"exemple, une chaîne comme opérande de gauche pour l'opérateur ``%``). Les " "extensions doivent définir leurs propres règles de conversion." #: ../Doc/reference/expressions.rst:49 @@ -150,8 +150,8 @@ msgstr "" "` de cette classe. Les noms privés sont transformés en une " "forme plus longue avant que le code ne soit généré pour eux. La " "transformation insère le nom de la classe, avec les soulignés enlevés et un " -"seul souligné inséré devant le nom. Par exemple, l'identificateur " -"``__spam`` apparaissant dans une classe nommée ``Ham`` est transformé en " +"seul souligné inséré devant le nom. Par exemple, l'identificateur ``__spam`` " +"apparaissant dans une classe nommée ``Ham`` est transformé en " "``_Ham__spam``. Cette transformation est indépendante du contexte syntaxique " "dans lequel l'identificateur est utilisé. Si le nom transformé est " "extrêmement long (plus de 255 caractères), l'implémentation peut le " @@ -199,14 +199,14 @@ msgstr "" msgid "Parenthesized forms" msgstr "Formes parenthésées" -#: ../Doc/reference/expressions.rst:133 +#: ../Doc/reference/expressions.rst:135 msgid "" "A parenthesized form is an optional expression list enclosed in parentheses:" msgstr "" "Une forme parenthésée est une liste d'expressions (cette liste est en fait " "optionnelle) placée à l'intérieur de parenthèses :" -#: ../Doc/reference/expressions.rst:138 +#: ../Doc/reference/expressions.rst:140 msgid "" "A parenthesized expression list yields whatever that expression list yields: " "if the list contains at least one comma, it yields a tuple; otherwise, it " @@ -217,18 +217,18 @@ msgstr "" "produit un n-uplet (type *tuple*) ; sinon, elle produit l'expression elle-" "même (qui constitue donc elle-même la liste d'expressions)." -#: ../Doc/reference/expressions.rst:144 +#: ../Doc/reference/expressions.rst:146 msgid "" "An empty pair of parentheses yields an empty tuple object. Since tuples are " -"immutable, the rules for literals apply (i.e., two occurrences of the empty " -"tuple may or may not yield the same object)." +"immutable, the same rules as for literals apply (i.e., two occurrences of " +"the empty tuple may or may not yield the same object)." msgstr "" -"Une paire de parenthèses vide produit un objet *tuple* vide. Comme les " -"*tuples* sont immuables, la règle pour les littéraux s'applique (c'est-à-" -"dire que deux occurrences du *tuple* vide peuvent, ou pas, produire le même " -"objet)." +"Une paire de parenthèses vide produit un objet n-uplet vide. Comme les n-" +"uplets sont immuables, la même règle que pour les littéraux s'applique " +"(c'est-à-dire que deux occurrences du n-uplet vide peuvent, ou pas, produire " +"le même objet)." -#: ../Doc/reference/expressions.rst:152 +#: ../Doc/reference/expressions.rst:155 msgid "" "Note that tuples are not formed by the parentheses, but rather by use of the " "comma operator. The exception is the empty tuple, for which parentheses " @@ -237,28 +237,28 @@ msgid "" msgstr "" "Notez que les *tuples* ne sont pas créés par les parenthèses mais par " "l'utilisation de la virgule. L'exception est le tuple vide, pour lequel les " -"parenthèses *sont requises* (autoriser que \"rien\" ne soit pas parenthésé " +"parenthèses *sont requises* (autoriser que « rien » ne soit pas parenthésé " "dans les expressions aurait généré des ambigüités et aurait permis à " "certaines coquilles de passer inaperçu)." -#: ../Doc/reference/expressions.rst:161 +#: ../Doc/reference/expressions.rst:164 msgid "Displays for lists, sets and dictionaries" msgstr "Agencements des listes, ensembles et dictionnaires" -#: ../Doc/reference/expressions.rst:163 +#: ../Doc/reference/expressions.rst:166 msgid "" "For constructing a list, a set or a dictionary Python provides special " "syntax called \"displays\", each of them in two flavors:" msgstr "" "Pour construire une liste, un ensemble ou un dictionnaire, Python fournit " -"des syntaxes spéciales dites \"agencements\" (*displays* en anglais), chaque " +"des syntaxes spéciales dites « agencements » (*displays* en anglais), chaque " "agencement comportant deux variantes :" -#: ../Doc/reference/expressions.rst:166 +#: ../Doc/reference/expressions.rst:169 msgid "either the container contents are listed explicitly, or" msgstr "soit le contenu du conteneur est listé explicitement," -#: ../Doc/reference/expressions.rst:168 +#: ../Doc/reference/expressions.rst:171 msgid "" "they are computed via a set of looping and filtering instructions, called a :" "dfn:`comprehension`." @@ -267,59 +267,59 @@ msgstr "" "d'instructions de filtrage, appelée une :dfn:`compréhension` (dans le sens " "de ce qui sert à définir un concept, par opposition à *extension*)." -#: ../Doc/reference/expressions.rst:171 +#: ../Doc/reference/expressions.rst:179 msgid "Common syntax elements for comprehensions are:" msgstr "" "Les compréhensions sont constituées des éléments de syntaxe communs " "suivants :" -#: ../Doc/reference/expressions.rst:179 +#: ../Doc/reference/expressions.rst:187 msgid "" "The comprehension consists of a single expression followed by at least one :" -"keyword:`for` clause and zero or more :keyword:`for` or :keyword:`if` " +"keyword:`!for` clause and zero or more :keyword:`!for` or :keyword:`!if` " "clauses. In this case, the elements of the new container are those that " -"would be produced by considering each of the :keyword:`for` or :keyword:`if` " -"clauses a block, nesting from left to right, and evaluating the expression " -"to produce an element each time the innermost block is reached." +"would be produced by considering each of the :keyword:`!for` or :keyword:`!" +"if` clauses a block, nesting from left to right, and evaluating the " +"expression to produce an element each time the innermost block is reached." msgstr "" "Une compréhension est constituée par une seule expression suivie par au " -"moins une clause :keyword:`for` et zéro ou plus clauses :keyword:`for` ou :" -"keyword:`if`. Dans ce cas, les éléments du nouveau conteneur sont ceux qui " -"auraient été produits si l'on avait considéré toutes les clauses :keyword:" -"`for` ou :keyword:`if` comme des blocs, imbriqués de la gauche vers la " +"moins une clause :keyword:`!for` et zéro ou plus clauses :keyword:`!for` ou :" +"keyword:`!if`. Dans ce cas, les éléments du nouveau conteneur sont ceux qui " +"auraient été produits si l'on avait considéré toutes les clauses :keyword:`!" +"for` ou :keyword:`!if` comme des blocs, imbriqués de la gauche vers la " "droite, et évalué l'expression pour produire un élément à chaque fois que le " "bloc le plus imbriqué était atteint." -#: ../Doc/reference/expressions.rst:186 +#: ../Doc/reference/expressions.rst:194 msgid "" -"However, aside from the iterable expression in the leftmost :keyword:`for` " +"However, aside from the iterable expression in the leftmost :keyword:`!for` " "clause, the comprehension is executed in a separate implicitly nested scope. " "This ensures that names assigned to in the target list don't \"leak\" into " "the enclosing scope." msgstr "" -"Cependant, à part l'expression de l'itérable dans la clause :keyword:`for` " +"Cependant, à part l'expression de l'itérable dans la clause :keyword:`!for` " "la plus à gauche, la compréhension est exécutée dans une portée séparée, " "implicitement imbriquée. Ceci assure que les noms assignés dans la liste " -"cible ne \"fuient\" pas en dehors de cette portée." +"cible ne « fuient » pas en dehors de cette portée." -#: ../Doc/reference/expressions.rst:190 +#: ../Doc/reference/expressions.rst:198 msgid "" -"The iterable expression in the leftmost :keyword:`for` clause is evaluated " +"The iterable expression in the leftmost :keyword:`!for` clause is evaluated " "directly in the enclosing scope and then passed as an argument to the " -"implictly nested scope. Subsequent :keyword:`for` clauses and any filter " -"condition in the leftmost :keyword:`for` clause cannot be evaluated in the " +"implictly nested scope. Subsequent :keyword:`!for` clauses and any filter " +"condition in the leftmost :keyword:`!for` clause cannot be evaluated in the " "enclosing scope as they may depend on the values obtained from the leftmost " "iterable. For example: ``[x*y for x in range(10) for y in range(x, x+10)]``." msgstr "" -"L'expression de l'itérable dans la clause :keyword:`for` la plus à gauche " +"L'expression de l'itérable dans la clause :keyword:`!for` la plus à gauche " "est évaluée directement dans la portée englobante puis passée en tant " -"qu'argument à la portée implicite imbriquée. Les clauses :keyword:`for` " -"suivantes et les filtres conditionnels de la clause :keyword:`for` la plus à " -"gauche ne peuvent pas être évalués dans la portée englobante car ils peuvent " -"dépendre de valeurs obtenues à partir de l'itérable le plus à gauche. Par " -"exemple : ``[x*y for x in range(10) for y in range(x, x+10)]``." +"qu'argument à la portée implicite imbriquée. Les clauses :keyword:`!for` " +"suivantes et les filtres conditionnels de la clause :keyword:`!for` la plus " +"à gauche ne peuvent pas être évalués dans la portée englobante car ils " +"peuvent dépendre de valeurs obtenues à partir de l'itérable le plus à " +"gauche. Par exemple : ``[x*y for x in range(10) for y in range(x, x+10)]``." -#: ../Doc/reference/expressions.rst:197 +#: ../Doc/reference/expressions.rst:205 msgid "" "To ensure the comprehension always results in a container of the appropriate " "type, ``yield`` and ``yield from`` expressions are prohibited in the " @@ -333,45 +333,46 @@ msgstr "" "un :exc:`DeprecationWarning` à la compilation, dans Python 3.8 et suivants, " "elles lèveront une :exc:`SyntaxError`)." -#: ../Doc/reference/expressions.rst:202 +#: ../Doc/reference/expressions.rst:213 msgid "" -"Since Python 3.6, in an :keyword:`async def` function, an :keyword:`async " +"Since Python 3.6, in an :keyword:`async def` function, an :keyword:`!async " "for` clause may be used to iterate over a :term:`asynchronous iterator`. A " -"comprehension in an :keyword:`async def` function may consist of either a :" -"keyword:`for` or :keyword:`async for` clause following the leading " -"expression, may contain additional :keyword:`for` or :keyword:`async for` " +"comprehension in an :keyword:`!async def` function may consist of either a :" +"keyword:`!for` or :keyword:`!async for` clause following the leading " +"expression, may contain additional :keyword:`!for` or :keyword:`!async for` " "clauses, and may also use :keyword:`await` expressions. If a comprehension " -"contains either :keyword:`async for` clauses or :keyword:`await` expressions " -"it is called an :dfn:`asynchronous comprehension`. An asynchronous " -"comprehension may suspend the execution of the coroutine function in which " -"it appears. See also :pep:`530`." +"contains either :keyword:`!async for` clauses or :keyword:`!await` " +"expressions it is called an :dfn:`asynchronous comprehension`. An " +"asynchronous comprehension may suspend the execution of the coroutine " +"function in which it appears. See also :pep:`530`." msgstr "" "Depuis Python 3.6, dans une fonction :keyword:`async def`, une clause :" -"keyword:`async for` peut être utilisée pour itérer sur un :term:`itérateur " +"keyword:`!async for` peut être utilisée pour itérer sur un :term:`itérateur " "asynchrone `. Une compréhension dans une fonction :" -"keyword:`async def` consiste alors à avoir une clause :keyword:`for` or :" -"keyword:`async for` suivie par des clauses :keyword:`for` or :keyword:`async " -"for` additionnelles facultatives et, possiblement, des expressions :keyword:" -"`await`. Si la compréhension contient soit des clauses :keyword:`async for`, " -"soit des expressions :keyword:`await`, elle est appelée :dfn:`compréhension " -"asynchrone`. Une compréhension asynchrone peut susprendre l'exécution de la " -"fonction coroutine dans laquelle elle apparaît. Voir aussi la :pep:`530`." - -#: ../Doc/reference/expressions.rst:214 +"keyword:`!async def` consiste alors à avoir une clause :keyword:`!for` or :" +"keyword:`!async for` suivie par des clauses :keyword:`!for` ou :keyword:`!" +"async for` additionnelles facultatives et, possiblement, des expressions :" +"keyword:`await`. Si la compréhension contient soit des clauses :keyword:`!" +"async for`, soit des expressions :keyword:`!await`, elle est appelée :dfn:" +"`compréhension asynchrone`. Une compréhension asynchrone peut suspendre " +"l'exécution de la fonction coroutine dans laquelle elle apparaît. Voir aussi " +"la :pep:`530`." + +#: ../Doc/reference/expressions.rst:225 msgid "Asynchronous comprehensions were introduced." msgstr "Les compréhensions asynchrones ont été introduites." -#: ../Doc/reference/expressions.rst:217 ../Doc/reference/expressions.rst:371 +#: ../Doc/reference/expressions.rst:228 ../Doc/reference/expressions.rst:395 msgid "``yield`` and ``yield from`` deprecated in the implicitly nested scope." msgstr "" "``yield`` et ``yield from`` sont obsolètes dans la portée implicite " "imbriquée." -#: ../Doc/reference/expressions.rst:224 +#: ../Doc/reference/expressions.rst:235 msgid "List displays" msgstr "Agencements de listes" -#: ../Doc/reference/expressions.rst:232 +#: ../Doc/reference/expressions.rst:245 msgid "" "A list display is a possibly empty series of expressions enclosed in square " "brackets:" @@ -379,7 +380,7 @@ msgstr "" "Un agencement de liste est une suite (possiblement vide) d'expressions à " "l'intérieur de crochets :" -#: ../Doc/reference/expressions.rst:238 +#: ../Doc/reference/expressions.rst:251 msgid "" "A list display yields a new list object, the contents being specified by " "either a list of expressions or a comprehension. When a comma-separated " @@ -396,20 +397,20 @@ msgstr "" "fournie, la liste est construite à partir des éléments produits par la " "compréhension." -#: ../Doc/reference/expressions.rst:248 +#: ../Doc/reference/expressions.rst:261 msgid "Set displays" msgstr "Agencements d'ensembles" -#: ../Doc/reference/expressions.rst:253 +#: ../Doc/reference/expressions.rst:269 msgid "" "A set display is denoted by curly braces and distinguishable from dictionary " "displays by the lack of colons separating keys and values:" msgstr "" "Un agencement d'ensemble (type *set*) est délimité par des accolades et se " "distingue de l'agencement d'un dictionnaire par le fait qu'il n'y a pas de " -"\"deux points\" ``:`` pour séparer les clés et les valeurs :" +"« deux points » ``:`` pour séparer les clés et les valeurs :" -#: ../Doc/reference/expressions.rst:259 +#: ../Doc/reference/expressions.rst:275 msgid "" "A set display yields a new mutable set object, the contents being specified " "by either a sequence of expressions or a comprehension. When a comma-" @@ -425,7 +426,7 @@ msgstr "" "et ajoutés à l'objet ensemble. Quand une compréhension est fournie, " "l'ensemble est construit à partir des éléments produits par la compréhension." -#: ../Doc/reference/expressions.rst:265 +#: ../Doc/reference/expressions.rst:281 msgid "" "An empty set cannot be constructed with ``{}``; this literal constructs an " "empty dictionary." @@ -433,11 +434,11 @@ msgstr "" "Un ensemble vide ne peut pas être construit par ``{}`` ; cette écriture " "construit un dictionnaire vide." -#: ../Doc/reference/expressions.rst:272 +#: ../Doc/reference/expressions.rst:288 msgid "Dictionary displays" msgstr "Agencements de dictionnaires" -#: ../Doc/reference/expressions.rst:278 +#: ../Doc/reference/expressions.rst:298 msgid "" "A dictionary display is a possibly empty series of key/datum pairs enclosed " "in curly braces:" @@ -445,11 +446,11 @@ msgstr "" "Un agencement de dictionnaire est une série (possiblement vide) de couples " "clés-valeurs entourée par des accolades :" -#: ../Doc/reference/expressions.rst:287 +#: ../Doc/reference/expressions.rst:307 msgid "A dictionary display yields a new dictionary object." msgstr "Un agencement de dictionnaire produit un nouvel objet dictionnaire." -#: ../Doc/reference/expressions.rst:289 +#: ../Doc/reference/expressions.rst:309 msgid "" "If a comma-separated sequence of key/datum pairs is given, they are " "evaluated from left to right to define the entries of the dictionary: each " @@ -466,7 +467,7 @@ msgstr "" "plusieurs fois dans la liste des couples clés-valeurs et, dans ce cas, la " "valeur finalement stockée dans le dictionnaire est la dernière donnée." -#: ../Doc/reference/expressions.rst:297 +#: ../Doc/reference/expressions.rst:319 msgid "" "A double asterisk ``**`` denotes :dfn:`dictionary unpacking`. Its operand " "must be a :term:`mapping`. Each mapping item is added to the new " @@ -480,13 +481,13 @@ msgstr "" "couples clés-valeurs antérieurs ou par d'autres dépaquetages de " "dictionnaires antérieurs." -#: ../Doc/reference/expressions.rst:302 +#: ../Doc/reference/expressions.rst:324 msgid "Unpacking into dictionary displays, originally proposed by :pep:`448`." msgstr "" "le dépaquetage peut se faire vers un agencement de dictionnaire, proposé à " "l'origine par la :pep:`448`." -#: ../Doc/reference/expressions.rst:305 +#: ../Doc/reference/expressions.rst:327 msgid "" "A dict comprehension, in contrast to list and set comprehensions, needs two " "expressions separated with a colon followed by the usual \"for\" and \"if\" " @@ -499,7 +500,7 @@ msgstr "" "est exécutée, les éléments clés-valeurs sont insérés dans le nouveau " "dictionnaire dans l'ordre dans lequel ils sont produits." -#: ../Doc/reference/expressions.rst:313 +#: ../Doc/reference/expressions.rst:335 msgid "" "Restrictions on the types of the key values are listed earlier in section :" "ref:`types`. (To summarize, the key type should be :term:`hashable`, which " @@ -514,52 +515,52 @@ msgstr "" "apparaît le plus à droite dans l'agencement) stockée prévaut pour une clé " "donnée." -#: ../Doc/reference/expressions.rst:323 +#: ../Doc/reference/expressions.rst:345 msgid "Generator expressions" -msgstr "Générateurs (expressions)" +msgstr "Expressions génératrices" -#: ../Doc/reference/expressions.rst:328 +#: ../Doc/reference/expressions.rst:352 msgid "A generator expression is a compact generator notation in parentheses:" msgstr "" -"Une expression générateur est une notation concise pour un générateur, " +"Une expression génératrice est une notation concise pour un générateur, " "entourée de parenthèses :" -#: ../Doc/reference/expressions.rst:333 +#: ../Doc/reference/expressions.rst:357 msgid "" "A generator expression yields a new generator object. Its syntax is the " "same as for comprehensions, except that it is enclosed in parentheses " "instead of brackets or curly braces." msgstr "" -"Une expression générateur produit un nouvel objet générateur. Sa syntaxe est " -"la même que celle des compréhensions, sauf qu'elle est entourée de " +"Une expression génératrice produit un nouvel objet générateur. Sa syntaxe " +"est la même que celle des compréhensions, sauf qu'elle est entourée de " "parenthèses au lieu de crochets ou d'accolades." -#: ../Doc/reference/expressions.rst:337 +#: ../Doc/reference/expressions.rst:361 msgid "" "Variables used in the generator expression are evaluated lazily when the :" "meth:`~generator.__next__` method is called for the generator object (in the " "same fashion as normal generators). However, the iterable expression in the " -"leftmost :keyword:`for` clause is immediately evaluated, so that an error " +"leftmost :keyword:`!for` clause is immediately evaluated, so that an error " "produced by it will be emitted at the point where the generator expression " "is defined, rather than at the point where the first value is retrieved. " -"Subsequent :keyword:`for` clauses and any filter condition in the leftmost :" -"keyword:`for` clause cannot be evaluated in the enclosing scope as they may " +"Subsequent :keyword:`!for` clauses and any filter condition in the leftmost :" +"keyword:`!for` clause cannot be evaluated in the enclosing scope as they may " "depend on the values obtained from the leftmost iterable. For example: " "``(x*y for x in range(10) for y in range(x, x+10))``." msgstr "" -"Les variables utilisées dans une expression générateur sont évaluées " +"Les variables utilisées dans une expression génératrice sont évaluées " "paresseusement, au moment où la méthode :meth:`~generator.__next__` de " "l'objet générateur est appelée (de la même manière que pour les générateurs " -"classiques). Cependant, l'expression de l'itérable dans la clause :keyword:" -"`for` la plus à gauche est immédiatement évaluée, de manière à ce qu'une " +"classiques). Cependant, l'expression de l'itérable dans la clause :keyword:`!" +"for` la plus à gauche est immédiatement évaluée, de manière à ce qu'une " "erreur dans cette partie soit signalée à l'endroit où l'expression " "génératrice est définie plutôt qu'à l'endroit où la première valeur est " -"récupérée. Les clauses :keyword:`for` suivantes ne peuvent pas être évaluées " -"dans la portée implicite imbriquée car elles peuvent dépendre de valeurs " -"obtenues à partir de boucles :keyword:`for` plus à gauche. Par exemple, " -"``(x*y for x in range(10) for y in range(x, x+10))``." +"récupérée. Les clauses :keyword:`!for` suivantes ne peuvent pas être " +"évaluées dans la portée implicite imbriquée car elles peuvent dépendre de " +"valeurs obtenues à partir de boucles :keyword:`!for` plus à gauche. Par " +"exemple, ``(x*y for x in range(10) for y in range(x, x+10))``." -#: ../Doc/reference/expressions.rst:348 +#: ../Doc/reference/expressions.rst:372 msgid "" "The parentheses can be omitted on calls with only one argument. See " "section :ref:`calls` for details." @@ -567,7 +568,7 @@ msgstr "" "Les parenthèses peuvent être omises pour les appels qui ne possèdent qu'un " "seul argument. Voir la section :ref:`calls` pour les détails." -#: ../Doc/reference/expressions.rst:351 +#: ../Doc/reference/expressions.rst:375 msgid "" "To avoid interfering with the expected operation of the generator expression " "itself, ``yield`` and ``yield from`` expressions are prohibited in the " @@ -575,41 +576,46 @@ msgid "" "`DeprecationWarning` when compiled, in Python 3.8+ they will emit :exc:" "`SyntaxError`)." msgstr "" +"Pour éviter d'interférer avec l'opération attendue de l'expression " +"générateur elle-même, les expressions ``yield`` et ``yield from`` sont " +"interdites dans les générateurs définis de manière implicite (dans Python " +"3.7, ces expressions signalent un :exc:`DeprecationWarning` à la " +"compilation. En Python 3.8+ elles lèvent une :exc:`SyntaxError`)." -#: ../Doc/reference/expressions.rst:357 +#: ../Doc/reference/expressions.rst:381 msgid "" -"If a generator expression contains either :keyword:`async for` clauses or :" +"If a generator expression contains either :keyword:`!async for` clauses or :" "keyword:`await` expressions it is called an :dfn:`asynchronous generator " "expression`. An asynchronous generator expression returns a new " "asynchronous generator object, which is an asynchronous iterator (see :ref:" "`async-iterators`)." msgstr "" -"Si une expression générateur contient une ou des expressions :keyword:" -"`async for` ou :keyword:`await`, elle est appelée :dfn:`expression " -"générateur asynchrone `. Une expression " -"générateur asynchrone produit un nouvel objet générateur asynchrone qui est " +"Si une expression génératrice contient une ou des expressions :keyword:`!" +"async for` ou :keyword:`await`, elle est appelée :dfn:`expression " +"génératrice asynchrone `. Une expression " +"génératrice asynchrone produit un nouvel objet générateur asynchrone qui est " "un itérateur asynchrone (voir :ref:`async-iterators`)." -#: ../Doc/reference/expressions.rst:363 +#: ../Doc/reference/expressions.rst:387 msgid "Asynchronous generator expressions were introduced." -msgstr "les expressions générateurs asynchrones ont été introduites." +msgstr "les expressions génératrices asynchrones ont été introduites." -#: ../Doc/reference/expressions.rst:366 +#: ../Doc/reference/expressions.rst:390 msgid "" "Prior to Python 3.7, asynchronous generator expressions could only appear " "in :keyword:`async def` coroutines. Starting with 3.7, any function can use " "asynchronous generator expressions." msgstr "" -"Avant Python 3.7, les expressions générateurs asynchrones ne pouvaient " +"Avant Python 3.7, les expressions génératrices asynchrones ne pouvaient " "apparaître que dans les coroutines :keyword:`async def`. À partir de la " -"version 3.7, toute fonction peut utiliser des expressions générateurs " +"version 3.7, toute fonction peut utiliser des expressions génératrices " "asynchrones." -#: ../Doc/reference/expressions.rst:378 +#: ../Doc/reference/expressions.rst:402 msgid "Yield expressions" -msgstr "Expressions yield" +msgstr "Expressions ``yield``" -#: ../Doc/reference/expressions.rst:389 +#: ../Doc/reference/expressions.rst:414 msgid "" "The yield expression is used when defining a :term:`generator` function or " "an :term:`asynchronous generator` function and thus can only be used in the " @@ -618,15 +624,15 @@ msgid "" "`async def` function's body causes that coroutine function to be an " "asynchronous generator. For example::" msgstr "" -"Une expression yield est utilisée pour définir une fonction :term:" -"`générateur` ou une fonction :term:`générateur asynchrone` et ne peut donc " -"être utilisée que dans le corps de la définition d'une fonction. " -"L'utilisation d'une expression yield dans le corps d'une fonction entraîne " -"que cette fonction devient un générateur et son utilisation dans le corps " -"d'une fonction :keyword:`async def` entraine que cette fonction coroutine " -"devient un générateur asynchrone. Par exemple ::" +"Une expression ``yield`` est utilisée pour définir une fonction :term:" +"`générateur` ou une fonction :term:`génératrice asynchrone ` et ne peut donc être utilisée que dans le corps de la définition " +"d'une fonction. L'utilisation d'une expression ``yield`` dans le corps d'une " +"fonction entraîne que cette fonction devient un générateur et son " +"utilisation dans le corps d'une fonction :keyword:`async def` entraine que " +"cette fonction coroutine devient un générateur asynchrone. Par exemple ::" -#: ../Doc/reference/expressions.rst:402 +#: ../Doc/reference/expressions.rst:427 msgid "" "Due to their side effects on the containing scope, ``yield`` expressions are " "not permitted as part of the implicitly defined scopes used to implement " @@ -640,7 +646,7 @@ msgstr "" "Python 3.7, de telles expressions lèvent un :exc:`DeprecationWarning` à la " "compilation ; à partir de Python 3.8, elles lèveront une :exc:`SyntaxError`)." -#: ../Doc/reference/expressions.rst:408 +#: ../Doc/reference/expressions.rst:433 msgid "" "Yield expressions deprecated in the implicitly nested scopes used to " "implement comprehensions and generator expressions." @@ -649,17 +655,17 @@ msgstr "" "utilisée dans l'implémentation des compréhensions et des expressions " "générateurs." -#: ../Doc/reference/expressions.rst:412 +#: ../Doc/reference/expressions.rst:437 msgid "" "Generator functions are described below, while asynchronous generator " "functions are described separately in section :ref:`asynchronous-generator-" "functions`." msgstr "" -"Les fonctions générateurs sont décrites plus loin alors que les fonctions " +"Les fonctions génératrices sont décrites plus loin alors que les fonctions " "générateurs asynchrones sont décrites séparément dans la section :ref:" "`asynchronous-generator-functions`." -#: ../Doc/reference/expressions.rst:416 +#: ../Doc/reference/expressions.rst:441 msgid "" "When a generator function is called, it returns an iterator known as a " "generator. That generator then controls the execution of the generator " @@ -678,25 +684,25 @@ msgid "" "`~generator.send` is used, then the result will be the value passed in to " "that method." msgstr "" -"Lorsqu'une fonction générateur est appelée, elle renvoie un itérateur que " +"Lorsqu'une fonction génératrice est appelée, elle renvoie un itérateur que " "l'on appelle générateur. Ce générateur contrôle l'exécution de la fonction " -"générateur. L'exécution commence lorsque l'une des méthodes du générateur " +"génératrice. L'exécution commence lorsque l'une des méthodes du générateur " "est appelée. À ce moment, l'exécution se déroule jusqu'à la première " -"expression yield, où elle se suspend, renvoyant la valeur de :token:" +"expression ``yield``, où elle se suspend, renvoyant la valeur de :token:" "`expression_list` à l'appelant du générateur. Cette suspension conserve tous " "les états locaux, y compris les liaisons en cours des variables locales, le " "pointeur d'instruction, la pile d'évaluation interne et l'état de tous les " "gestionnaires d'exceptions. Lorsque l'exécution reprend en appelant l'une " "des méthodes du générateur, la fonction s'exécute exactement comme si " -"l'expression yield n'avait été qu'un simple appel externe. La valeur de " -"l'expression yield après reprise dépend de la méthode qui a permis la " +"l'expression ``yield`` n'avait été qu'un simple appel externe. La valeur de " +"l'expression ``yield`` après reprise dépend de la méthode qui a permis la " "reprise de l'exécution. Si c'est :meth:`~generator.__next__` qui a été " "utilisée (typiquement *via* un :keyword:`for` ou la fonction native :func:" "`next`) alors le résultat est :const:`None`. Sinon, si c'est :meth:" "`~generator.send` qui a été utilisée, alors le résultat est la valeur " "transmise à cette méthode." -#: ../Doc/reference/expressions.rst:435 +#: ../Doc/reference/expressions.rst:460 msgid "" "All of this makes generator functions quite similar to coroutines; they " "yield multiple times, they have more than one entry point and their " @@ -704,14 +710,14 @@ msgid "" "function cannot control where the execution should continue after it yields; " "the control is always transferred to the generator's caller." msgstr "" -"Tout ceci rend les fonctions générateurs très similaires aux coroutines : " -"elles produisent plusieurs objets *via* des expressions yield, elles " +"Tout ceci rend les fonctions génératrices très similaires aux coroutines : " +"elles produisent plusieurs objets *via* des expressions ``yield``, elles " "possèdent plus qu'un seul point d'entrée et leur exécution peut être " -"suspendue. La seule différence est qu'une fonction générateur ne peut pas " -"contrôler où l'exécution doit se poursuivre après une instruction yield ; ce " -"contrôle est toujours du ressort de l'appelant au générateur." +"suspendue. La seule différence est qu'une fonction génératrice ne peut pas " +"contrôler où l'exécution doit se poursuivre après une instruction " +"``yield`` ; ce contrôle est toujours du ressort de l'appelant au générateur." -#: ../Doc/reference/expressions.rst:441 +#: ../Doc/reference/expressions.rst:466 msgid "" "Yield expressions are allowed anywhere in a :keyword:`try` construct. If " "the generator is not resumed before it is finalized (by reaching a zero " @@ -719,14 +725,14 @@ msgid "" "meth:`~generator.close` method will be called, allowing any pending :keyword:" "`finally` clauses to execute." msgstr "" -"Les expressions yield sont autorisées partout dans un bloc :keyword:`try`. " -"Si l'exécution du générateur ne reprend pas avant qu'il ne soit finalisé " -"(parce que son compteur de référence est tombé à zéro ou parce qu'il est " -"nettoyé par le ramasse-miettes), la méthode :meth:`~generator.close` du " -"générateur-itérateur est appelée, ce qui permet l'exécution de toutes les " -"clauses :keyword:`finally` en attente." +"Les expressions ``yield`` sont autorisées partout dans un bloc :keyword:" +"`try`. Si l'exécution du générateur ne reprend pas avant qu'il ne soit " +"finalisé (parce que son compteur de référence est tombé à zéro ou parce " +"qu'il est nettoyé par le ramasse-miettes), la méthode :meth:`~generator." +"close` du générateur-itérateur est appelée, ce qui permet l'exécution de " +"toutes les clauses :keyword:`finally` en attente." -#: ../Doc/reference/expressions.rst:447 +#: ../Doc/reference/expressions.rst:475 msgid "" "When ``yield from `` is used, it treats the supplied expression as a " "subiterator. All values produced by that subiterator are passed directly to " @@ -747,39 +753,39 @@ msgstr "" "alors que :meth:`~generator.throw` ne fait que propager l'exception " "immédiatement." -#: ../Doc/reference/expressions.rst:456 +#: ../Doc/reference/expressions.rst:484 msgid "" "When the underlying iterator is complete, the :attr:`~StopIteration.value` " "attribute of the raised :exc:`StopIteration` instance becomes the value of " "the yield expression. It can be either set explicitly when raising :exc:" -"`StopIteration`, or automatically when the sub-iterator is a generator (by " -"returning a value from the sub-generator)." +"`StopIteration`, or automatically when the subiterator is a generator (by " +"returning a value from the subgenerator)." msgstr "" "Quand l'itérateur sous-jacent a terminé, l'attribut :attr:`~StopIteration." "value` de l'instance :exc:`StopIteration` qui a été levée devient la valeur " -"produite par l'expression yield. Elle peut être définie explicitement quand " -"vous levez :exc:`StopIteration` ou automatiquement que le sous-itérateur est " -"un générateur (en renvoyant une valeur par le sous-générateur)." +"produite par l'expression ``yield``. Elle peut être définie explicitement " +"quand vous levez :exc:`StopIteration` ou automatiquement que le sous-" +"itérateur est un générateur (en renvoyant une valeur par le sous-générateur)." -#: ../Doc/reference/expressions.rst:462 +#: ../Doc/reference/expressions.rst:490 msgid "Added ``yield from `` to delegate control flow to a subiterator." msgstr "" "``yield from `` a été ajoutée pour déléguer le contrôle du flot " "d'exécution à un sous-itérateur." -#: ../Doc/reference/expressions.rst:465 +#: ../Doc/reference/expressions.rst:493 msgid "" "The parentheses may be omitted when the yield expression is the sole " "expression on the right hand side of an assignment statement." msgstr "" -"Les parenthèses peuvent être omises quand l'expression yield est la seule " -"expression à droite de l'instruction de l'instruction d'assignation." +"Les parenthèses peuvent être omises quand l'expression ``yield`` est la " +"seule expression à droite de l'instruction de l'instruction d'assignation." -#: ../Doc/reference/expressions.rst:471 +#: ../Doc/reference/expressions.rst:499 msgid ":pep:`255` - Simple Generators" -msgstr ":pep:`255`: Générateurs simples" +msgstr ":pep:`255` : Générateurs simples" -#: ../Doc/reference/expressions.rst:471 +#: ../Doc/reference/expressions.rst:499 msgid "" "The proposal for adding generators and the :keyword:`yield` statement to " "Python." @@ -787,11 +793,11 @@ msgstr "" "La proposition d'ajouter à Python des générateurs et l'instruction :keyword:" "`yield`." -#: ../Doc/reference/expressions.rst:475 +#: ../Doc/reference/expressions.rst:503 msgid ":pep:`342` - Coroutines via Enhanced Generators" -msgstr ":pep:`342` - Coroutines *via* des générateurs améliorés" +msgstr ":pep:`342` -- Coroutines *via* des générateurs améliorés" -#: ../Doc/reference/expressions.rst:474 +#: ../Doc/reference/expressions.rst:502 msgid "" "The proposal to enhance the API and syntax of generators, making them usable " "as simple coroutines." @@ -799,23 +805,35 @@ msgstr "" "Proposition d'améliorer l'API et la syntaxe des générateurs, de manière à " "pouvoir les utiliser comme de simples coroutines." -#: ../Doc/reference/expressions.rst:478 +#: ../Doc/reference/expressions.rst:507 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" -msgstr ":pep:`380` - Syntaxe pour déléguer à un sous-générateur" +msgstr ":pep:`380` -- Syntaxe pour déléguer à un sous-générateur" -#: ../Doc/reference/expressions.rst:478 +#: ../Doc/reference/expressions.rst:506 msgid "" "The proposal to introduce the :token:`yield_from` syntax, making delegation " -"to sub-generators easy." +"to subgenerators easy." msgstr "" "Proposition d'introduire la syntaxe :token:`yield_from`, de manière à " "déléguer facilement l'exécution à un sous-générateur." -#: ../Doc/reference/expressions.rst:485 +#: ../Doc/reference/expressions.rst:510 +msgid ":pep:`525` - Asynchronous Generators" +msgstr ":pep:`525` : Générateurs asynchrones" + +#: ../Doc/reference/expressions.rst:510 +msgid "" +"The proposal that expanded on :pep:`492` by adding generator capabilities to " +"coroutine functions." +msgstr "" +"La proposition qui a amélioré la :pep:`492` en ajoutant des capacités de " +"générateur pour les coroutines." + +#: ../Doc/reference/expressions.rst:517 msgid "Generator-iterator methods" msgstr "Méthodes des générateurs-itérateurs" -#: ../Doc/reference/expressions.rst:487 +#: ../Doc/reference/expressions.rst:519 msgid "" "This subsection describes the methods of a generator iterator. They can be " "used to control the execution of a generator function." @@ -823,7 +841,7 @@ msgstr "" "Cette sous-section décrit les méthodes des générateurs-itérateurs. Elles " "peuvent être utilisées pour contrôler l'exécution des fonctions générateurs." -#: ../Doc/reference/expressions.rst:490 +#: ../Doc/reference/expressions.rst:522 msgid "" "Note that calling any of the generator methods below when the generator is " "already executing raises a :exc:`ValueError` exception." @@ -832,7 +850,7 @@ msgstr "" "générateur est déjà en cours d'exécution lève une exception :exc:" "`ValueError`." -#: ../Doc/reference/expressions.rst:498 +#: ../Doc/reference/expressions.rst:530 msgid "" "Starts the execution of a generator function or resumes it at the last " "executed yield expression. When a generator function is resumed with a :" @@ -844,15 +862,15 @@ msgid "" "exception is raised." msgstr "" "Démarre l'exécution d'une fonction générateur ou la reprend à la dernière " -"expression yield exécutée. Quand une fonction générateur est reprise par une " -"méthode :meth:`~generator.__next__`, l'expression yield en cours s'évalue " -"toujours à :const:`None`. L'exécution continue ensuite jusqu'à l'expression " -"yield suivante, où le générateur est à nouveau suspendu et la valeur de :" -"token:`expression_list` est renvoyée à la méthode :meth:`__next__` de " -"l'appelant. Si le générateur termine sans donner une autre valeur, une " -"exception :exc:`StopIteration` est levée." +"expression ``yield`` exécutée. Quand une fonction générateur est reprise par " +"une méthode :meth:`~generator.__next__`, l'expression ``yield`` en cours " +"s'évalue toujours à :const:`None`. L'exécution continue ensuite jusqu'à " +"l'expression ``yield`` suivante, où le générateur est à nouveau suspendu et " +"la valeur de :token:`expression_list` est renvoyée à la méthode :meth:" +"`__next__` de l'appelant. Si le générateur termine sans donner une autre " +"valeur, une exception :exc:`StopIteration` est levée." -#: ../Doc/reference/expressions.rst:507 +#: ../Doc/reference/expressions.rst:539 msgid "" "This method is normally called implicitly, e.g. by a :keyword:`for` loop, or " "by the built-in :func:`next` function." @@ -860,7 +878,7 @@ msgstr "" "Cette méthode est normalement appelée implicitement, par exemple par une " "boucle :keyword:`for` ou par la fonction native :func:`next`." -#: ../Doc/reference/expressions.rst:513 +#: ../Doc/reference/expressions.rst:545 msgid "" "Resumes the execution and \"sends\" a value into the generator function. " "The *value* argument becomes the result of the current yield expression. " @@ -870,15 +888,15 @@ msgid "" "called with :const:`None` as the argument, because there is no yield " "expression that could receive the value." msgstr "" -"Reprend l'exécution et \"envoie\" une valeur à la fonction générateur. " -"L'argument *value* devient le résultat de l'expression yield courante. La " -"méthode :meth:`send` renvoie la valeur suivante produite par le générateur " -"ou lève :exc:`StopIteration` si le générateur termine sans produire de " -"nouvelle valeur. Quand :meth:`send` est utilisée pour démarrer le " -"générateur, elle doit avoir :const:`None` comme argument, car il n'y a " -"aucune expression yield qui peut recevoir la valeur." +"Reprend l'exécution et « envoie » une valeur à la fonction générateur. " +"L'argument *value* devient le résultat de l'expression ``yield`` courante. " +"La méthode :meth:`send` renvoie la valeur suivante produite par le " +"générateur ou lève :exc:`StopIteration` si le générateur termine sans " +"produire de nouvelle valeur. Quand :meth:`send` est utilisée pour démarrer " +"le générateur, elle doit avoir :const:`None` comme argument, car il n'y a " +"aucune expression ``yield`` qui peut recevoir la valeur." -#: ../Doc/reference/expressions.rst:524 +#: ../Doc/reference/expressions.rst:556 msgid "" "Raises an exception of type ``type`` at the point where the generator was " "paused, and returns the next value yielded by the generator function. If " @@ -887,14 +905,14 @@ msgid "" "exception, or raises a different exception, then that exception propagates " "to the caller." msgstr "" -"Leve une exception de type ``type`` à l'endroit où le générateur est en " +"Lève une exception de type ``type`` à l'endroit où le générateur est en " "pause et renvoie la valeur suivante produite par la fonction générateur. Si " "le générateur termine sans produire de nouvelle valeur, une exception :exc:" -"`StopIteration` est levée. Si la fonction générateur ne gère pas l'exception " -"passée ou lève une autre exception, alors cette exception est propagée vers " -"l'appelant." +"`StopIteration` est levée. Si la fonction génératrice ne gère pas " +"l'exception passée ou lève une autre exception, alors cette exception est " +"propagée vers l'appelant." -#: ../Doc/reference/expressions.rst:535 +#: ../Doc/reference/expressions.rst:567 msgid "" "Raises a :exc:`GeneratorExit` at the point where the generator function was " "paused. If the generator function then exits gracefully, is already closed, " @@ -904,49 +922,49 @@ msgid "" "is propagated to the caller. :meth:`close` does nothing if the generator " "has already exited due to an exception or normal exit." msgstr "" -"Lève une :exc:`GeneratorExit` à l'endroit où la fonction générateur a été " -"mise en pause. Si la fonction générateur termine, est déjà fermée ou lève :" +"Lève une :exc:`GeneratorExit` à l'endroit où la fonction génératrice a été " +"mise en pause. Si la fonction génératrice termine, est déjà fermée ou lève :" "exc:`GeneratorExit` (parce qu'elle ne gère pas l'exception), *close* revient " "vers l'appelant. Si le générateur produit une valeur, une :exc:" "`RuntimeError` est levée. Si le générateur lève une autre exception, elle " "est propagée à l'appelant. La méthode :meth:`close` ne fait rien si le " "générateur a déjà terminé en raison d'une exception ou d'une fin normale." -#: ../Doc/reference/expressions.rst:546 +#: ../Doc/reference/expressions.rst:578 msgid "Examples" msgstr "Exemples" -#: ../Doc/reference/expressions.rst:548 +#: ../Doc/reference/expressions.rst:580 msgid "" "Here is a simple example that demonstrates the behavior of generators and " "generator functions::" msgstr "" "Voici un exemple simple qui montre le comportement des générateurs et des " -"fonctions générateurs ::" +"fonctions génératrices ::" -#: ../Doc/reference/expressions.rst:575 +#: ../Doc/reference/expressions.rst:607 msgid "" "For examples using ``yield from``, see :ref:`pep-380` in \"What's New in " "Python.\"" msgstr "" "Pour des exemples d'utilisation de ``yield from``, lisez la :ref:`pep-380` " -"dans \"Les nouveautés de Python\"." +"dans « Les nouveautés de Python »." -#: ../Doc/reference/expressions.rst:581 +#: ../Doc/reference/expressions.rst:613 msgid "Asynchronous generator functions" -msgstr "Fonctions générateurs asynchrones" +msgstr "Fonctions génératrices asynchrones" -#: ../Doc/reference/expressions.rst:583 +#: ../Doc/reference/expressions.rst:615 msgid "" "The presence of a yield expression in a function or method defined using :" -"keyword:`async def` further defines the function as a :term:`asynchronous " +"keyword:`async def` further defines the function as an :term:`asynchronous " "generator` function." msgstr "" -"La présence d'une expression yield dans une fonction ou une méthode définie " -"en utilisant :keyword:`async def` transforme cette fonction en fonction :" -"term:`générateur asynchrone`." +"La présence d'une expression *yield* dans une fonction ou une méthode " +"définie en utilisant :keyword:`async def` transforme cette fonction en " +"fonction :term:`générateur asynchrone `." -#: ../Doc/reference/expressions.rst:587 +#: ../Doc/reference/expressions.rst:619 msgid "" "When an asynchronous generator function is called, it returns an " "asynchronous iterator known as an asynchronous generator object. That object " @@ -955,14 +973,14 @@ msgid "" "coroutine function analogously to how a generator object would be used in a :" "keyword:`for` statement." msgstr "" -"Quand une fonction générateur asynchrone est appelée, elle renvoie un " +"Quand une fonction génératrice asynchrone est appelée, elle renvoie un " "itérateur asynchrone, autrement appelé objet générateur asynchrone. Cet " -"objet contrôle l'exécution de la fonction générateur. Un objet générateur " +"objet contrôle l'exécution de la fonction génératrice. Un objet générateur " "asynchrone est typiquement utilisé dans une instruction :keyword:`async for` " "à l'intérieur d'une fonction coroutine de la même manière qu'un objet " "générateur serait utilisé dans une instruction :keyword:`for`." -#: ../Doc/reference/expressions.rst:594 +#: ../Doc/reference/expressions.rst:626 msgid "" "Calling one of the asynchronous generator's methods returns an :term:" "`awaitable` object, and the execution starts when this object is awaited on. " @@ -981,47 +999,47 @@ msgid "" msgstr "" "L'appel d'une méthode du générateur asynchrone renvoie un objet :term:" "`awaitable` et l'exécution commence au moment où l'on atteint une " -"instruction await le concernant. À ce moment, l'exécution se déroule jusqu'à " -"la première expression yield, où elle est suspendue et renvoie la valeur de :" -"token:`expression_list` à la coroutine en attente. Comme pour un générateur, " -"la suspension signifie que tous les états locaux sont conservés, y compris " -"les liaisons des variables locales, le pointeur d'instruction, la pile " -"d'évaluation interne et l'état de tous les gestionnaires d'exceptions. " -"Lorsque l'exécution reprend parce que l'appelant a atteint une instruction " -"*await* sur l'objet suivant retourné par les méthodes du générateur " -"asynchrone, la fonction s'exécute exactement comme si l'expression yield " -"n'avait été qu'un simple appel externe. La valeur de l'expression yield au " -"moment de la reprise dépend de la méthode qui a relancé l'exécution. Si " -"c'est :meth:`~agen.__anext__` qui a été utilisée, alors le résultat est :" -"const:`None`. Sinon, si c'est :meth:`~agen.asend` qui a été utilisée, alors " -"le résultat est la valeur transmise à cette méthode." - -#: ../Doc/reference/expressions.rst:610 +"instruction ``await`` le concernant. À ce moment, l'exécution se déroule " +"jusqu'à la première expression ``yield``, où elle est suspendue et renvoie " +"la valeur de :token:`expression_list` à la coroutine en attente. Comme pour " +"un générateur, la suspension signifie que tous les états locaux sont " +"conservés, y compris les liaisons des variables locales, le pointeur " +"d'instruction, la pile d'évaluation interne et l'état de tous les " +"gestionnaires d'exceptions. Lorsque l'exécution reprend parce que l'appelant " +"a atteint une instruction ``await`` sur l'objet suivant retourné par les " +"méthodes du générateur asynchrone, la fonction s'exécute exactement comme si " +"l'expression ``yield`` n'avait été qu'un simple appel externe. La valeur de " +"l'expression ``yield`` au moment de la reprise dépend de la méthode qui a " +"relancé l'exécution. Si c'est :meth:`~agen.__anext__` qui a été utilisée, " +"alors le résultat est :const:`None`. Sinon, si c'est :meth:`~agen.asend` qui " +"a été utilisée, alors le résultat est la valeur transmise à cette méthode." + +#: ../Doc/reference/expressions.rst:642 msgid "" "In an asynchronous generator function, yield expressions are allowed " "anywhere in a :keyword:`try` construct. However, if an asynchronous " "generator is not resumed before it is finalized (by reaching a zero " "reference count or by being garbage collected), then a yield expression " -"within a :keyword:`try` construct could result in a failure to execute " +"within a :keyword:`!try` construct could result in a failure to execute " "pending :keyword:`finally` clauses. In this case, it is the responsibility " "of the event loop or scheduler running the asynchronous generator to call " "the asynchronous generator-iterator's :meth:`~agen.aclose` method and run " -"the resulting coroutine object, thus allowing any pending :keyword:`finally` " -"clauses to execute." +"the resulting coroutine object, thus allowing any pending :keyword:`!" +"finally` clauses to execute." msgstr "" -"Dans une fonction générateur asynchrone, les expressions yield sont " +"Dans une fonction génératrice asynchrone, les expressions ``yield`` sont " "autorisées n'importe où dans une construction :keyword:`try`. Cependant, si " "l'exécution d'un générateur asynchrone n'a pas repris avant que le " "générateur ne soit finalisé (parce que son compteur de référence a atteint " "zéro ou parce qu'il est nettoyé par le ramasse-miettes), alors une " -"expression yield dans une construction :keyword:`try` pourrait ne pas " +"expression ``yield`` dans une construction :keyword:`!try` pourrait ne pas " "atteindre la clause :keyword:`finally` en attente. Dans ce cas, c'est la " "responsabilité de la boucle d'événements ou du programmateur exécutant le " "générateur asynchrone d'appeler la méthode :meth:`~agen.aclose` du " "générateur asynchrone et d'exécuter l'objet coroutine résultant, permettant " -"ainsi à toute clause :keyword:`finally` en attente d'être exécutée." +"ainsi à toute clause :keyword:`!finally` en attente d'être exécutée." -#: ../Doc/reference/expressions.rst:621 +#: ../Doc/reference/expressions.rst:653 msgid "" "To take care of finalization, an event loop should define a *finalizer* " "function which takes an asynchronous generator-iterator and presumably " @@ -1042,60 +1060,60 @@ msgstr "" "*finalizer*, regardez l'implémentation de ``asyncio.Loop." "shutdown_asyncgens`` dans :source:`Lib/asyncio/base_events.py`." -#: ../Doc/reference/expressions.rst:630 +#: ../Doc/reference/expressions.rst:662 msgid "" "The expression ``yield from `` is a syntax error when used in an " "asynchronous generator function." msgstr "" "L'expression ``yield from `` produit une erreur de syntaxe quand elle " -"est utilisée dans une fonction générateur asynchrone." +"est utilisée dans une fonction génératrice asynchrone." -#: ../Doc/reference/expressions.rst:637 +#: ../Doc/reference/expressions.rst:669 msgid "Asynchronous generator-iterator methods" msgstr "Méthodes des générateurs-itérateurs asynchrones" -#: ../Doc/reference/expressions.rst:639 +#: ../Doc/reference/expressions.rst:671 msgid "" "This subsection describes the methods of an asynchronous generator iterator, " "which are used to control the execution of a generator function." msgstr "" "Cette sous-section décrit les méthodes des générateurs-itérateurs " "asynchrones. Elles sont utilisées pour contrôler l’exécution des fonctions " -"générateurs." +"génératrices." -#: ../Doc/reference/expressions.rst:647 +#: ../Doc/reference/expressions.rst:679 msgid "" "Returns an awaitable which when run starts to execute the asynchronous " "generator or resumes it at the last executed yield expression. When an " -"asynchronous generator function is resumed with a :meth:`~agen.__anext__` " +"asynchronous generator function is resumed with an :meth:`~agen.__anext__` " "method, the current yield expression always evaluates to :const:`None` in " "the returned awaitable, which when run will continue to the next yield " "expression. The value of the :token:`expression_list` of the yield " "expression is the value of the :exc:`StopIteration` exception raised by the " "completing coroutine. If the asynchronous generator exits without yielding " -"another value, the awaitable instead raises an :exc:`StopAsyncIteration` " +"another value, the awaitable instead raises a :exc:`StopAsyncIteration` " "exception, signalling that the asynchronous iteration has completed." msgstr "" "Renvoie un *awaitable* qui, quand il a la main, démarre l'exécution du " "générateur asynchrone ou reprend son exécution à l'endroit de la dernière " -"expression yield exécutée. Quand une fonction générateur asynchrone est " -"reprise par une méthode :meth:`~agen.__anext__`, l’expression yield en cours " -"s’évalue toujours à :const:`None` dans le *awaitable* renvoyé, et elle " -"continue son exécution jusqu’à l’expression yield suivante. La valeur de :" -"token:`expression_list` de l'expression yield est la valeur de l'exception :" -"exc:`StopIteration` levée par la coroutine qui termine. Si le générateur " -"asynchrone termine sans produire d'autre valeur, le *awaitable* lève une " -"exception :exc:`StopAsyncIteration` qui signale que l'itération asynchrone " -"est terminée." - -#: ../Doc/reference/expressions.rst:659 +"expression ``yield`` exécutée. Quand une fonction générateur asynchrone est " +"reprise par une méthode :meth:`~agen.__anext__`, l’expression ``yield`` en " +"cours s’évalue toujours à :const:`None` dans le *awaitable* renvoyé, et elle " +"continue son exécution jusqu’à l’expression ``yield`` suivante. La valeur " +"de :token:`expression_list` de l'expression ``yield`` est la valeur de " +"l'exception :exc:`StopIteration` levée par la coroutine qui termine. Si le " +"générateur asynchrone termine sans produire d'autre valeur, le *awaitable* " +"lève une exception :exc:`StopAsyncIteration` qui signale que l'itération " +"asynchrone est terminée." + +#: ../Doc/reference/expressions.rst:691 msgid "" "This method is normally called implicitly by a :keyword:`async for` loop." msgstr "" "Cette méthode est normalement appelée implicitement par une boucle :keyword:" "`async for`." -#: ../Doc/reference/expressions.rst:664 +#: ../Doc/reference/expressions.rst:696 msgid "" "Returns an awaitable which when run resumes the execution of the " "asynchronous generator. As with the :meth:`~generator.send()` method for a " @@ -1111,36 +1129,36 @@ msgid "" msgstr "" "Renvoie un *awaitable* qui, lorsqu'il a la main, reprend l'exécution du " "générateur asynchrone. Comme pour la méthode :meth:`~generator.send()` d'un " -"générateur, elle \"envoie\" une valeur *value* à la fonction générateur " -"asynchrone et cet argument devient le résultat de l'expression yield " +"générateur, elle « envoie » une valeur *value* à la fonction générateur " +"asynchrone et cet argument devient le résultat de l'expression ``yield`` " "courante. Le *awaitable* renvoyé par la méthode :meth:`asend` renvoie la " "valeur suivante produite par le générateur comme valeur de l'exception :exc:" "`StopIteration` levée ou lève :exc:`StopAsyncIteration` si le générateur " "asynchrone termine sans produire de nouvelle valeur. Quand :meth:`asend` est " "appelée pour démarrer le générateur asynchrone, l'argument doit être :const:" -"`None` car il n'y a pas d'expression yield pour recevoir la valeur." +"`None` car il n'y a pas d'expression ``yield`` pour recevoir la valeur." -#: ../Doc/reference/expressions.rst:679 +#: ../Doc/reference/expressions.rst:711 msgid "" "Returns an awaitable that raises an exception of type ``type`` at the point " "where the asynchronous generator was paused, and returns the next value " "yielded by the generator function as the value of the raised :exc:" "`StopIteration` exception. If the asynchronous generator exits without " -"yielding another value, an :exc:`StopAsyncIteration` exception is raised by " +"yielding another value, a :exc:`StopAsyncIteration` exception is raised by " "the awaitable. If the generator function does not catch the passed-in " "exception, or raises a different exception, then when the awaitable is run " "that exception propagates to the caller of the awaitable." msgstr "" "Renvoie un *awaitable* qui lève une exception du type ``type`` à l'endroit " "où le générateur asynchrone a été mis en pause et renvoie la valeur suivante " -"produite par la fonction générateur comme valeur de l'exception :exc:" +"produite par la fonction génératrice comme valeur de l'exception :exc:" "`StopIteration` qui a été levée. Si le générateur asynchrone termine sans " "produire de nouvelle valeur, une exception :exc:`StopAsyncIteration` est " -"levée par le *awaitable*. Si la fonction générateur ne traite pas " +"levée par le *awaitable*. Si la fonction génératrice ne traite pas " "l'exception reçue ou lève une autre exception alors, quand le *awaitable* " "est lancé, cette exception est propagée vers l'appelant du *awaitable*." -#: ../Doc/reference/expressions.rst:694 +#: ../Doc/reference/expressions.rst:726 msgid "" "Returns an awaitable that when run will throw a :exc:`GeneratorExit` into " "the asynchronous generator function at the point where it was paused. If the " @@ -1156,8 +1174,8 @@ msgid "" "will return an awaitable that does nothing." msgstr "" "Renvoie un *awaitable* qui, quand il s'exécute, lève une exception :exc:" -"`GeneratorExit` dans la fonction générateur asynchrone à l'endroit où le " -"générateur était en pause. Si la fonction générateur asynchrone termine " +"`GeneratorExit` dans la fonction génératrice asynchrone à l'endroit où le " +"générateur était en pause. Si la fonction génératrice asynchrone termine " "normalement, est déjà fermée ou lève :exc:`GeneratorExit` (parce qu'elle ne " "gère pas l'exception), alors le *awaitable* renvoyé lève une exception :exc:" "`StopIteration`. Tout nouveau *awaitable* produit par un appel postérieur au " @@ -1168,11 +1186,11 @@ msgstr "" "déjà terminé (soit par une exception, soit normalement), alors tout nouvel " "appel à :meth:`aclose` renvoie un *awaitable* qui ne fait rien." -#: ../Doc/reference/expressions.rst:710 +#: ../Doc/reference/expressions.rst:742 msgid "Primaries" msgstr "Primaires" -#: ../Doc/reference/expressions.rst:714 +#: ../Doc/reference/expressions.rst:746 msgid "" "Primaries represent the most tightly bound operations of the language. Their " "syntax is:" @@ -1181,17 +1199,17 @@ msgstr "" "les opérations qui se lient au plus proche dans le langage. Leur syntaxe " "est :" -#: ../Doc/reference/expressions.rst:724 +#: ../Doc/reference/expressions.rst:756 msgid "Attribute references" msgstr "Références à des attributs" -#: ../Doc/reference/expressions.rst:728 +#: ../Doc/reference/expressions.rst:762 msgid "An attribute reference is a primary followed by a period and a name:" msgstr "" "Une référence à un attribut (*attributeref* dans la grammaire formelle ci-" "dessous) est une primaire suivie par un point et un nom :" -#: ../Doc/reference/expressions.rst:738 +#: ../Doc/reference/expressions.rst:772 msgid "" "The primary must evaluate to an object of a type that supports attribute " "references, which most objects do. This object is then asked to produce the " @@ -1203,18 +1221,18 @@ msgid "" msgstr "" "La primaire doit s'évaluer à un objet d'un type qui gère les références aux " "attributs, ce qui est le cas de la plupart des objets. Cet objet doit alors " -"produire l'attribut dont le nom est \"identifier\". Cette production peut " +"produire l'attribut dont le nom est « identifier ». Cette production peut " "être personnalisée en surchargeant la méthode :meth:`__getattr__`. Si " "l'attribut n'est pas disponible, une exception :exc:`AttributeError` est " "levée. Sinon, le type et la valeur de l'objet produit sont déterminés par " "l'objet. Plusieurs évaluations successives d'une référence à un même " "attribut peuvent produire différents objets." -#: ../Doc/reference/expressions.rst:750 +#: ../Doc/reference/expressions.rst:784 msgid "Subscriptions" msgstr "Sélections" -#: ../Doc/reference/expressions.rst:763 +#: ../Doc/reference/expressions.rst:799 msgid "" "A subscription selects an item of a sequence (string, tuple or list) or " "mapping (dictionary) object:" @@ -1223,7 +1241,7 @@ msgstr "" "un élément dans un objet séquence (chaîne, n-uplet ou liste) ou tableau de " "correspondances (dictionnaire) :" -#: ../Doc/reference/expressions.rst:769 +#: ../Doc/reference/expressions.rst:805 msgid "" "The primary must evaluate to an object that supports subscription (lists or " "dictionaries for example). User-defined objects can support subscription by " @@ -1233,13 +1251,13 @@ msgstr "" "ou un dictionnaire par exemple). Les objets définis par l'utilisateur " "peuvent gérer les sélections en définissant une méthode :meth:`__getitem__`." -#: ../Doc/reference/expressions.rst:773 +#: ../Doc/reference/expressions.rst:809 msgid "" "For built-in objects, there are two types of objects that support " "subscription:" msgstr "Pour les objets natifs, deux types d'objets gèrent la sélection :" -#: ../Doc/reference/expressions.rst:775 +#: ../Doc/reference/expressions.rst:811 msgid "" "If the primary is a mapping, the expression list must evaluate to an object " "whose value is one of the keys of the mapping, and the subscription selects " @@ -1253,7 +1271,7 @@ msgstr "" "(la liste d'expressions est un n-uplet sauf si elle comporte exactement un " "élément)." -#: ../Doc/reference/expressions.rst:780 +#: ../Doc/reference/expressions.rst:816 msgid "" "If the primary is a sequence, the expression list must evaluate to an " "integer or a slice (as discussed in the following section)." @@ -1262,7 +1280,7 @@ msgstr "" "dans la grammaire) doit pouvoir être évaluée comme un entier ou une tranche " "(comme expliqué dans la section suivante)." -#: ../Doc/reference/expressions.rst:783 +#: ../Doc/reference/expressions.rst:819 msgid "" "The formal syntax makes no special provision for negative indices in " "sequences; however, built-in sequences all provide a :meth:`__getitem__` " @@ -1286,7 +1304,7 @@ msgstr "" "surchargent cette méthode doivent aussi savoir les gérer, de manière " "explicite." -#: ../Doc/reference/expressions.rst:797 +#: ../Doc/reference/expressions.rst:833 msgid "" "A string's items are characters. A character is not a separate data type " "but a string of exactly one character." @@ -1294,11 +1312,11 @@ msgstr "" "Les éléments des chaînes sont des caractères. Un caractère n'est pas un type " "en tant que tel, c'est une chaîne de longueur un." -#: ../Doc/reference/expressions.rst:804 +#: ../Doc/reference/expressions.rst:840 msgid "Slicings" msgstr "Tranches" -#: ../Doc/reference/expressions.rst:816 +#: ../Doc/reference/expressions.rst:854 msgid "" "A slicing selects a range of items in a sequence object (e.g., a string, " "tuple or list). Slicings may be used as expressions or as targets in " @@ -1311,7 +1329,7 @@ msgstr "" "les assignations ou les instructions :keyword:`del`. La syntaxe est la " "suivante :" -#: ../Doc/reference/expressions.rst:829 +#: ../Doc/reference/expressions.rst:867 msgid "" "There is ambiguity in the formal syntax here: anything that looks like an " "expression list also looks like a slice list, so any subscription can be " @@ -1330,7 +1348,7 @@ msgstr "" "que tranche (c'est le cas si la liste de tranches (*slice_list*) ne contient " "aucune tranche en tant que telle)." -#: ../Doc/reference/expressions.rst:841 +#: ../Doc/reference/expressions.rst:879 msgid "" "The semantics for a slicing are as follows. The primary is indexed (using " "the same :meth:`__getitem__` method as normal subscription) with a key that " @@ -1359,11 +1377,11 @@ msgstr "" "la grammaire) et le pas (*stride* dans la grammaire), respectivement. En cas " "d'expression manquante, la valeur par défaut est ``None``." -#: ../Doc/reference/expressions.rst:862 +#: ../Doc/reference/expressions.rst:903 msgid "Calls" msgstr "Appels" -#: ../Doc/reference/expressions.rst:864 +#: ../Doc/reference/expressions.rst:905 msgid "" "A call calls a callable object (e.g., a :term:`function`) with a possibly " "empty series of :term:`arguments `:" @@ -1372,7 +1390,7 @@ msgstr "" "(par exemple, une :term:`fonction `) avec, possiblement, une liste " "d'\\ :term:`arguments ` :" -#: ../Doc/reference/expressions.rst:880 +#: ../Doc/reference/expressions.rst:921 msgid "" "An optional trailing comma may be present after the positional and keyword " "arguments but does not affect the semantics." @@ -1380,7 +1398,7 @@ msgstr "" "Une virgule finale (optionnelle) peut être présente, après les arguments " "positionnels et par mots-clés, mais elle n'affecte pas la sémantique." -#: ../Doc/reference/expressions.rst:886 +#: ../Doc/reference/expressions.rst:927 msgid "" "The primary must evaluate to a callable object (user-defined functions, " "built-in functions, methods of built-in objects, class objects, methods of " @@ -1397,7 +1415,7 @@ msgstr "" "section :ref:`function` pour la syntaxe des listes de :term:`paramètres " "` formels." -#: ../Doc/reference/expressions.rst:894 +#: ../Doc/reference/expressions.rst:935 msgid "" "If keyword arguments are present, they are first converted to positional " "arguments, as follows. First, a list of unfilled slots is created for the " @@ -1438,7 +1456,7 @@ msgstr "" "n'est définie, une exception :exc:`TypeError` est levée. Sinon, la liste des " "*slots* remplie est utilisée en tant que liste des arguments pour l'appel." -#: ../Doc/reference/expressions.rst:914 +#: ../Doc/reference/expressions.rst:955 msgid "" "An implementation may provide built-in functions whose positional parameters " "do not have names, even if they are 'named' for the purpose of " @@ -1447,12 +1465,12 @@ msgid "" "`PyArg_ParseTuple` to parse their arguments." msgstr "" "Une implémentation peut fournir des fonctions natives dont les paramètres " -"positionnels n'ont pas de nom, même s'ils sont \"nommés\" pour les besoins " +"positionnels n'ont pas de nom, même s'ils sont « nommés » pour les besoins " "de la documentation. Ils ne peuvent donc pas être spécifiés par mot-clé. En " "CPython, les fonctions implémentées en C qui utilisent :c:func:" "`PyArg_ParseTuple` pour analyser leurs arguments en font partie." -#: ../Doc/reference/expressions.rst:920 +#: ../Doc/reference/expressions.rst:961 msgid "" "If there are more positional arguments than there are formal parameter " "slots, a :exc:`TypeError` exception is raised, unless a formal parameter " @@ -1466,7 +1484,7 @@ msgstr "" "reçoit un n-uplet contenant les arguments positionnels en supplément (ou un " "n-uplet vide s'il n'y avait pas d'arguments positionnel en trop)." -#: ../Doc/reference/expressions.rst:926 +#: ../Doc/reference/expressions.rst:967 msgid "" "If any keyword argument does not correspond to a formal parameter name, a :" "exc:`TypeError` exception is raised, unless a formal parameter using the " @@ -1483,7 +1501,7 @@ msgstr "" "dictionnaire), ou un (nouveau) dictionnaire vide s'il n'y a pas d'argument " "par mot-clé en trop." -#: ../Doc/reference/expressions.rst:937 +#: ../Doc/reference/expressions.rst:978 msgid "" "If the syntax ``*expression`` appears in the function call, ``expression`` " "must evaluate to an :term:`iterable`. Elements from these iterables are " @@ -1499,7 +1517,7 @@ msgstr "" "s'évalue comme une séquence *y1*, ..., *yM*, c'est équivalent à un appel " "avec M+4 arguments positionnels *x1*, *x2*, *y1*, ..., *yM*, *x3*, *x4*." -#: ../Doc/reference/expressions.rst:944 +#: ../Doc/reference/expressions.rst:985 msgid "" "A consequence of this is that although the ``*expression`` syntax may appear " "*after* explicit keyword arguments, it is processed *before* the keyword " @@ -1510,7 +1528,7 @@ msgstr "" "*avant* les arguments par mots-clés (et avant tout argument ``**expression`` " "-- voir ci-dessous). Ainsi ::" -#: ../Doc/reference/expressions.rst:960 +#: ../Doc/reference/expressions.rst:1001 msgid "" "It is unusual for both keyword arguments and the ``*expression`` syntax to " "be used in the same call, so in practice this confusion does not arise." @@ -1519,7 +1537,7 @@ msgstr "" "``*expression`` soient utilisés simultanément dans un même appel, ce qui " "fait que la confusion reste hypothétique." -#: ../Doc/reference/expressions.rst:966 +#: ../Doc/reference/expressions.rst:1007 msgid "" "If the syntax ``**expression`` appears in the function call, ``expression`` " "must evaluate to a :term:`mapping`, the contents of which are treated as " @@ -1534,7 +1552,7 @@ msgstr "" "qu'argument par mot-clé explicite, ou venant d'un autre dépaquetage), une " "exception :exc:`TypeError` est levée." -#: ../Doc/reference/expressions.rst:972 +#: ../Doc/reference/expressions.rst:1013 msgid "" "Formal parameters using the syntax ``*identifier`` or ``**identifier`` " "cannot be used as positional argument slots or as keyword argument names." @@ -1543,7 +1561,7 @@ msgstr "" "``**identifier`` ne peuvent pas être utilisés comme arguments positionnels " "ou comme noms d'arguments par mots-clés." -#: ../Doc/reference/expressions.rst:975 +#: ../Doc/reference/expressions.rst:1016 msgid "" "Function calls accept any number of ``*`` and ``**`` unpackings, positional " "arguments may follow iterable unpackings (``*``), and keyword arguments may " @@ -1555,7 +1573,7 @@ msgstr "" "dépaquetages de dictionnaires (``**``). Proposé pour la première fois par " "la :pep:`448`." -#: ../Doc/reference/expressions.rst:981 +#: ../Doc/reference/expressions.rst:1022 msgid "" "A call always returns some value, possibly ``None``, unless it raises an " "exception. How this value is computed depends on the type of the callable " @@ -1565,15 +1583,15 @@ msgstr "" "ne lève une exception. La façon dont celle valeur est calculée dépend du " "type de l'objet appelable." -#: ../Doc/reference/expressions.rst:985 +#: ../Doc/reference/expressions.rst:1026 msgid "If it is---" msgstr "Si c'est ---" -#: ../Doc/reference/expressions.rst:998 +#: ../Doc/reference/expressions.rst:1039 msgid "a user-defined function:" msgstr "une fonction définie par l'utilisateur :" -#: ../Doc/reference/expressions.rst:994 +#: ../Doc/reference/expressions.rst:1035 msgid "" "The code block for the function is executed, passing it the argument list. " "The first thing the code block will do is bind the formal parameters to the " @@ -1587,11 +1605,11 @@ msgstr "" "`function`. Quand le bloc de code exécute l'instruction :keyword:`return`, " "cela spécifie la valeur de retour de l'appel de la fonction." -#: ../Doc/reference/expressions.rst:1012 +#: ../Doc/reference/expressions.rst:1053 msgid "a built-in function or method:" msgstr "une fonction ou une méthode native :" -#: ../Doc/reference/expressions.rst:1011 +#: ../Doc/reference/expressions.rst:1052 msgid "" "The result is up to the interpreter; see :ref:`built-in-funcs` for the " "descriptions of built-in functions and methods." @@ -1599,19 +1617,19 @@ msgstr "" "le résultat dépend de l'interpréteur ; lisez :ref:`built-in-funcs` pour une " "description des fonctions et méthodes natives." -#: ../Doc/reference/expressions.rst:1019 +#: ../Doc/reference/expressions.rst:1060 msgid "a class object:" msgstr "un objet classe :" -#: ../Doc/reference/expressions.rst:1019 +#: ../Doc/reference/expressions.rst:1060 msgid "A new instance of that class is returned." msgstr "une nouvelle instance de cette classe est renvoyée." -#: ../Doc/reference/expressions.rst:1029 +#: ../Doc/reference/expressions.rst:1070 msgid "a class instance method:" msgstr "une méthode d'instance de classe :" -#: ../Doc/reference/expressions.rst:1027 +#: ../Doc/reference/expressions.rst:1068 msgid "" "The corresponding user-defined function is called, with an argument list " "that is one longer than the argument list of the call: the instance becomes " @@ -1621,11 +1639,11 @@ msgstr "" "liste d'arguments qui est plus grande d'un élément que la liste des " "arguments de l'appel : l'instance est placée en tête des arguments." -#: ../Doc/reference/expressions.rst:1038 +#: ../Doc/reference/expressions.rst:1079 msgid "a class instance:" msgstr "une instance de classe :" -#: ../Doc/reference/expressions.rst:1036 +#: ../Doc/reference/expressions.rst:1077 msgid "" "The class must define a :meth:`__call__` method; the effect is then the same " "as if that method was called." @@ -1633,11 +1651,11 @@ msgstr "" "la classe doit définir une méthode :meth:`__call__` ; l'effet est le même " "que si cette méthode était appelée." -#: ../Doc/reference/expressions.rst:1043 ../Doc/reference/expressions.rst:1745 +#: ../Doc/reference/expressions.rst:1085 ../Doc/reference/expressions.rst:1831 msgid "Await expression" -msgstr "Expression await" +msgstr "Expression ``await``" -#: ../Doc/reference/expressions.rst:1045 +#: ../Doc/reference/expressions.rst:1087 msgid "" "Suspend the execution of :term:`coroutine` on an :term:`awaitable` object. " "Can only be used inside a :term:`coroutine function`." @@ -1645,11 +1663,11 @@ msgstr "" "Suspend l'exécution de la :term:`coroutine` sur un objet :term:`awaitable`. " "Ne peut être utilisée qu'à l'intérieur d'une :term:`coroutine function`." -#: ../Doc/reference/expressions.rst:1057 +#: ../Doc/reference/expressions.rst:1099 msgid "The power operator" msgstr "L'opérateur puissance" -#: ../Doc/reference/expressions.rst:1059 +#: ../Doc/reference/expressions.rst:1105 msgid "" "The power operator binds more tightly than unary operators on its left; it " "binds less tightly than unary operators on its right. The syntax is:" @@ -1658,7 +1676,7 @@ msgstr "" "gauche ; il est moins prioritaire que les opérateurs unaires sur sa droite. " "La syntaxe est :" -#: ../Doc/reference/expressions.rst:1065 +#: ../Doc/reference/expressions.rst:1111 msgid "" "Thus, in an unparenthesized sequence of power and unary operators, the " "operators are evaluated from right to left (this does not constrain the " @@ -1668,7 +1686,7 @@ msgstr "" "unaires, les opérateurs sont évalués de droite à gauche (ceci ne contraint " "pas l'ordre d'évaluation des opérandes) : ``-1**2`` donne ``-1``." -#: ../Doc/reference/expressions.rst:1069 +#: ../Doc/reference/expressions.rst:1115 msgid "" "The power operator has the same semantics as the built-in :func:`pow` " "function, when called with two arguments: it yields its left argument raised " @@ -1681,7 +1699,7 @@ msgstr "" "arguments numériques sont d'abord convertis vers un type commun et le " "résultat est de ce type." -#: ../Doc/reference/expressions.rst:1074 +#: ../Doc/reference/expressions.rst:1120 msgid "" "For int operands, the result has the same type as the operands unless the " "second argument is negative; in that case, all arguments are converted to " @@ -1694,7 +1712,7 @@ msgstr "" "virgule flottante. Par exemple, ``10**2`` renvoie ``100`` mais ``10**-2`` " "renvoie ``0.01``." -#: ../Doc/reference/expressions.rst:1079 +#: ../Doc/reference/expressions.rst:1125 msgid "" "Raising ``0.0`` to a negative power results in a :exc:`ZeroDivisionError`. " "Raising a negative number to a fractional power results in a :class:" @@ -1705,28 +1723,28 @@ msgstr "" "renvoie un nombre :class:`complexe ` (dans les versions " "antérieures, cela levait une :exc:`ValueError`)." -#: ../Doc/reference/expressions.rst:1087 +#: ../Doc/reference/expressions.rst:1133 msgid "Unary arithmetic and bitwise operations" msgstr "Arithmétique unaire et opérations sur les bits" -#: ../Doc/reference/expressions.rst:1093 +#: ../Doc/reference/expressions.rst:1139 msgid "All unary arithmetic and bitwise operations have the same priority:" msgstr "" "Toute l'arithmétique unaire et les opérations sur les bits ont la même " "priorité :" -#: ../Doc/reference/expressions.rst:1102 +#: ../Doc/reference/expressions.rst:1150 msgid "" "The unary ``-`` (minus) operator yields the negation of its numeric argument." msgstr "" "L'opérateur unaire ``-`` (moins) produit l'opposé de son argument numérique." -#: ../Doc/reference/expressions.rst:1106 +#: ../Doc/reference/expressions.rst:1157 msgid "The unary ``+`` (plus) operator yields its numeric argument unchanged." msgstr "" "L'opérateur unaire ``+`` (plus) produit son argument numérique inchangé." -#: ../Doc/reference/expressions.rst:1111 +#: ../Doc/reference/expressions.rst:1163 msgid "" "The unary ``~`` (invert) operator yields the bitwise inversion of its " "integer argument. The bitwise inversion of ``x`` is defined as ``-(x+1)``. " @@ -1736,7 +1754,7 @@ msgstr "" "argument entier. L'inversion bit à bit de ``x`` est définie comme ``-(x" "+1)``. Elle s'applique uniquement aux nombres entiers." -#: ../Doc/reference/expressions.rst:1117 +#: ../Doc/reference/expressions.rst:1169 msgid "" "In all three cases, if the argument does not have the proper type, a :exc:" "`TypeError` exception is raised." @@ -1744,11 +1762,11 @@ msgstr "" "Dans ces trois cas, si l'argument n'est pas du bon type, une exception :exc:" "`TypeError` est levée." -#: ../Doc/reference/expressions.rst:1124 +#: ../Doc/reference/expressions.rst:1176 msgid "Binary arithmetic operations" msgstr "Opérations arithmétiques binaires" -#: ../Doc/reference/expressions.rst:1128 +#: ../Doc/reference/expressions.rst:1180 msgid "" "The binary arithmetic operations have the conventional priority levels. " "Note that some of these operations also apply to certain non-numeric types. " @@ -1761,7 +1779,7 @@ msgstr "" "niveaux, le premier pour les opérateurs multiplicatifs et le second pour les " "opérateurs additifs :" -#: ../Doc/reference/expressions.rst:1141 +#: ../Doc/reference/expressions.rst:1195 msgid "" "The ``*`` (multiplication) operator yields the product of its arguments. " "The arguments must either both be numbers, or one argument must be an " @@ -1777,15 +1795,15 @@ msgstr "" "Dans le dernier cas, la séquence est répétée ; une répétition négative " "produit une séquence vide." -#: ../Doc/reference/expressions.rst:1151 +#: ../Doc/reference/expressions.rst:1205 msgid "" "The ``@`` (at) operator is intended to be used for matrix multiplication. " "No builtin Python types implement this operator." msgstr "" -"L'opérateur ``@`` (at) a vocation à multiplier des matrices. Aucun type " -"Python natif n'implémente cet opérateur." +"L'opérateur ``@`` (prononcé *at* en anglais) a vocation à multiplier des " +"matrices. Aucun type Python natif n'implémente cet opérateur." -#: ../Doc/reference/expressions.rst:1160 +#: ../Doc/reference/expressions.rst:1216 msgid "" "The ``/`` (division) and ``//`` (floor division) operators yield the " "quotient of their arguments. The numeric arguments are first converted to a " @@ -1794,15 +1812,15 @@ msgid "" "with the 'floor' function applied to the result. Division by zero raises " "the :exc:`ZeroDivisionError` exception." msgstr "" -"Les opérateurs ``/`` (division) and ``//`` (division entière ou *floor " +"Les opérateurs ``/`` (division) et ``//`` (division entière ou *floor " "division* en anglais) produisent le quotient de leurs arguments. Les " "arguments numériques sont d'abord convertis vers un type commun. La division " "d'entiers produit un nombre à virgule flottante alors que la division " "entière d'entiers produit un entier ; le résultat est celui de la division " -"mathématique suivie de la fonction 'floor' appliquée au résultat. Une " +"mathématique suivie de la fonction ``floor`` appliquée au résultat. Une " "division par zéro lève une exception :exc:`ZeroDivisionError`." -#: ../Doc/reference/expressions.rst:1169 +#: ../Doc/reference/expressions.rst:1227 msgid "" "The ``%`` (modulo) operator yields the remainder from the division of the " "first argument by the second. The numeric arguments are first converted to " @@ -1822,7 +1840,7 @@ msgstr "" "même signe que le second opérande (ou zéro) ; la valeur absolue du résultat " "est strictement inférieure à la valeur absolue du second opérande [#]_." -#: ../Doc/reference/expressions.rst:1178 +#: ../Doc/reference/expressions.rst:1236 msgid "" "The floor division and modulo operators are connected by the following " "identity: ``x == (x//y)*y + (x%y)``. Floor division and modulo are also " @@ -1834,7 +1852,7 @@ msgstr "" "aussi liés à la fonction native :func:`divmod` : ``divmod(x, y) == (x//y, x" "%y)`` [#]_." -#: ../Doc/reference/expressions.rst:1183 +#: ../Doc/reference/expressions.rst:1241 msgid "" "In addition to performing the modulo operation on numbers, the ``%`` " "operator is also overloaded by string objects to perform old-style string " @@ -1844,11 +1862,11 @@ msgid "" msgstr "" "En plus de calculer le modulo sur les nombres, l'opérateur ``%`` est aussi " "surchargé par les objets chaînes de caractères pour effectuer le formatage " -"de chaîne \"à l'ancienne\". La syntaxe pour le formatage de chaînes est " +"de chaîne « à l'ancienne ». La syntaxe pour le formatage de chaînes est " "décrit dans la référence de la bibliothèque Python, dans la section :ref:" "`old-string-formatting`." -#: ../Doc/reference/expressions.rst:1188 +#: ../Doc/reference/expressions.rst:1246 msgid "" "The floor division operator, the modulo operator, and the :func:`divmod` " "function are not defined for complex numbers. Instead, convert to a " @@ -1859,7 +1877,7 @@ msgstr "" "pouvez, si cela a du sens pour ce que vous voulez faire, les convertir vers " "des nombres à virgule flottante en utilisant la fonction :func:`abs`." -#: ../Doc/reference/expressions.rst:1194 +#: ../Doc/reference/expressions.rst:1255 msgid "" "The ``+`` (addition) operator yields the sum of its arguments. The " "arguments must either both be numbers or both be sequences of the same " @@ -1872,7 +1890,7 @@ msgstr "" "puis sont additionnés entre eux. Dans le dernier cas, les séquences sont " "concaténées." -#: ../Doc/reference/expressions.rst:1201 +#: ../Doc/reference/expressions.rst:1265 msgid "" "The ``-`` (subtraction) operator yields the difference of its arguments. " "The numeric arguments are first converted to a common type." @@ -1880,18 +1898,18 @@ msgstr "" "L'opérateur ``-`` (soustraction) produit la différence entre ses arguments. " "Les arguments numériques sont d'abord convertis vers un type commun." -#: ../Doc/reference/expressions.rst:1208 +#: ../Doc/reference/expressions.rst:1272 msgid "Shifting operations" msgstr "Opérations de décalage" -#: ../Doc/reference/expressions.rst:1212 +#: ../Doc/reference/expressions.rst:1279 msgid "" "The shifting operations have lower priority than the arithmetic operations:" msgstr "" "Les opérations de décalage sont moins prioritaires que les opérations " "arithmétiques :" -#: ../Doc/reference/expressions.rst:1217 +#: ../Doc/reference/expressions.rst:1284 msgid "" "These operators accept integers as arguments. They shift the first argument " "to the left or right by the number of bits given by the second argument." @@ -1900,7 +1918,7 @@ msgstr "" "argument vers la gauche ou vers la droite du nombre de bits donné par le " "deuxième argument." -#: ../Doc/reference/expressions.rst:1222 +#: ../Doc/reference/expressions.rst:1289 msgid "" "A right shift by *n* bits is defined as floor division by ``pow(2,n)``. A " "left shift by *n* bits is defined as multiplication with ``pow(2,n)``." @@ -1909,17 +1927,17 @@ msgstr "" "``pow(2,n)``. Un décalage à gauche de *n* bits est défini comme la " "multiplication par ``pow(2,n)``." -#: ../Doc/reference/expressions.rst:1229 +#: ../Doc/reference/expressions.rst:1296 msgid "Binary bitwise operations" msgstr "Opérations binaires bit à bit" -#: ../Doc/reference/expressions.rst:1233 +#: ../Doc/reference/expressions.rst:1300 msgid "Each of the three bitwise operations has a different priority level:" msgstr "" "Chacune des trois opérations binaires bit à bit possède une priorité " "différente :" -#: ../Doc/reference/expressions.rst:1242 +#: ../Doc/reference/expressions.rst:1311 msgid "" "The ``&`` operator yields the bitwise AND of its arguments, which must be " "integers." @@ -1927,7 +1945,7 @@ msgstr "" "L'opérateur ``&`` produit le ET logique de ses arguments, qui doivent être " "des entiers." -#: ../Doc/reference/expressions.rst:1249 +#: ../Doc/reference/expressions.rst:1319 msgid "" "The ``^`` operator yields the bitwise XOR (exclusive OR) of its arguments, " "which must be integers." @@ -1935,7 +1953,7 @@ msgstr "" "L'opérateur ``^`` produit le OU EXCLUSIF (XOR) logique de ses arguments, qui " "doivent être des entiers." -#: ../Doc/reference/expressions.rst:1256 +#: ../Doc/reference/expressions.rst:1327 msgid "" "The ``|`` operator yields the bitwise (inclusive) OR of its arguments, which " "must be integers." @@ -1943,11 +1961,11 @@ msgstr "" "L'opérateur ``|`` produit le OU logique de ses arguments, qui doivent être " "des entiers." -#: ../Doc/reference/expressions.rst:1263 +#: ../Doc/reference/expressions.rst:1334 msgid "Comparisons" msgstr "Comparaisons" -#: ../Doc/reference/expressions.rst:1269 +#: ../Doc/reference/expressions.rst:1346 msgid "" "Unlike C, all comparison operations in Python have the same priority, which " "is lower than that of any arithmetic, shifting or bitwise operation. Also " @@ -1960,12 +1978,12 @@ msgstr "" "les expressions telles que ``a < b < c`` sont interprétées comme elles le " "seraient conventionnellement en mathématiques :" -#: ../Doc/reference/expressions.rst:1279 +#: ../Doc/reference/expressions.rst:1356 msgid "Comparisons yield boolean values: ``True`` or ``False``." msgstr "" "Les comparaisons produisent des valeurs booléennes : ``True`` ou ``False``." -#: ../Doc/reference/expressions.rst:1283 +#: ../Doc/reference/expressions.rst:1360 msgid "" "Comparisons can be chained arbitrarily, e.g., ``x < y <= z`` is equivalent " "to ``x < y and y <= z``, except that ``y`` is evaluated only once (but in " @@ -1977,7 +1995,7 @@ msgstr "" "seulement une fois (mais dans les deux cas, ``z`` n'est pas évalué du tout " "si ``x < y`` s'avère être faux)." -#: ../Doc/reference/expressions.rst:1287 +#: ../Doc/reference/expressions.rst:1364 msgid "" "Formally, if *a*, *b*, *c*, ..., *y*, *z* are expressions and *op1*, " "*op2*, ..., *opN* are comparison operators, then ``a op1 b op2 c ... y opN " @@ -1989,7 +2007,7 @@ msgstr "" "c ... y opN z`` est équivalent à ``a op1 b and b op2 c and ... y opN z``, " "sauf que chaque expression est évaluée au maximum une fois." -#: ../Doc/reference/expressions.rst:1292 +#: ../Doc/reference/expressions.rst:1369 msgid "" "Note that ``a op1 b op2 c`` doesn't imply any kind of comparison between *a* " "and *c*, so that, e.g., ``x < y > z`` is perfectly legal (though perhaps not " @@ -1999,11 +2017,11 @@ msgstr "" "Ainsi, par exemple, ``x < y > z`` est parfaitement légal (mais peut-être pas " "très élégant)." -#: ../Doc/reference/expressions.rst:1297 +#: ../Doc/reference/expressions.rst:1374 msgid "Value comparisons" msgstr "Comparaisons de valeurs" -#: ../Doc/reference/expressions.rst:1299 +#: ../Doc/reference/expressions.rst:1376 msgid "" "The operators ``<``, ``>``, ``==``, ``>=``, ``<=``, and ``!=`` compare the " "values of two objects. The objects do not need to have the same type." @@ -2011,7 +2029,7 @@ msgstr "" "Les opérateurs ``<``, ``>``, ``==``, ``>=``, ``<=`` et ``!=`` comparent les " "valeurs de deux objets. Les objets n'ont pas besoin d'être du même type." -#: ../Doc/reference/expressions.rst:1302 +#: ../Doc/reference/expressions.rst:1379 msgid "" "Chapter :ref:`objects` states that objects have a value (in addition to type " "and identity). The value of an object is a rather abstract notion in " @@ -2022,7 +2040,7 @@ msgid "" "object is. One can think of them as defining the value of an object " "indirectly, by means of their comparison implementation." msgstr "" -"Le chapître :ref:`objects` indique que les objets ont une valeur (en plus " +"Le chapitre :ref:`objects` indique que les objets ont une valeur (en plus " "d'un type et d'un identifiant). La valeur d'un objet est une notion plutôt " "abstraite en Python : par exemple, il n'existe pas de méthode canonique pour " "accéder à la valeur d'un objet. De la même manière, il n'y a aucune " @@ -2032,7 +2050,7 @@ msgstr "" "d'un objet. Vous pouvez vous le représenter comme une définition indirecte " "de la valeur d'un objet, *via* l'implémentation de leur comparaison." -#: ../Doc/reference/expressions.rst:1311 +#: ../Doc/reference/expressions.rst:1388 msgid "" "Because all types are (direct or indirect) subtypes of :class:`object`, they " "inherit the default comparison behavior from :class:`object`. Types can " @@ -2045,7 +2063,7 @@ msgstr "" "des comparaisons en implémentant des :dfn:`méthodes de comparaisons riches`, " "comme :meth:`__lt__`, décrites dans :ref:`customization`." -#: ../Doc/reference/expressions.rst:1317 +#: ../Doc/reference/expressions.rst:1394 msgid "" "The default behavior for equality comparison (``==`` and ``!=``) is based on " "the identity of the objects. Hence, equality comparison of instances with " @@ -2061,7 +2079,7 @@ msgstr "" "choix est que Python souhaite que tous les objets soient réflexifs, c'est-à-" "dire que ``x is y`` implique ``x == y``." -#: ../Doc/reference/expressions.rst:1324 +#: ../Doc/reference/expressions.rst:1401 msgid "" "A default order comparison (``<``, ``>``, ``<=``, and ``>=``) is not " "provided; an attempt raises :exc:`TypeError`. A motivation for this default " @@ -2071,7 +2089,7 @@ msgstr "" "défaut ; une tentative se solde par une :exc:`TypeError`. La raison de ce " "choix est qu'il n'existe pas d'invariant similaire à celui de l'égalité." -#: ../Doc/reference/expressions.rst:1328 +#: ../Doc/reference/expressions.rst:1405 msgid "" "The behavior of the default equality comparison, that instances with " "different identities are always unequal, may be in contrast to what types " @@ -2081,12 +2099,12 @@ msgid "" msgstr "" "Le comportement du test d'égalité par défaut, à savoir que les instances " "avec des identités différentes ne sont jamais égales, peut être en " -"contradiction avec les types qui définissent la \"valeur\" d'un objet et se " -"basent sur cette \"valeur\" pour l'égalité. De tels types doivent " +"contradiction avec les types qui définissent la « valeur » d'un objet et se " +"basent sur cette « valeur » pour l'égalité. De tels types doivent " "personnaliser leurs tests de comparaison et, en fait, c'est ce qu'ont fait " "un certain nombre de types natifs." -#: ../Doc/reference/expressions.rst:1334 +#: ../Doc/reference/expressions.rst:1411 msgid "" "The following list describes the comparison behavior of the most important " "built-in types." @@ -2094,7 +2112,7 @@ msgstr "" "La liste suivante décrit le comportement des tests d'égalité pour les types " "natifs les plus importants." -#: ../Doc/reference/expressions.rst:1337 +#: ../Doc/reference/expressions.rst:1414 msgid "" "Numbers of built-in numeric types (:ref:`typesnumeric`) and of the standard " "library types :class:`fractions.Fraction` and :class:`decimal.Decimal` can " @@ -2111,7 +2129,7 @@ msgstr "" "des types concernés, la comparaison mathématique équivaut à la comparaison " "algorithmique, sans perte de précision." -#: ../Doc/reference/expressions.rst:1344 +#: ../Doc/reference/expressions.rst:1421 msgid "" "The not-a-number values ``float('NaN')`` and ``decimal.Decimal('NaN')`` are " "special. Any ordered comparison of a number to a not-a-number value is " @@ -2120,8 +2138,14 @@ msgid "" "3``, ``x == x``, ``x != x`` are all false. This behavior is compliant with " "IEEE 754." msgstr "" +"Les valeurs non numériques ``float('NaN')`` et ``decimal.Decimal('NaN')`` " +"sont spéciales : toute comparaison entre un nombre et une valeur non " +"numérique est fausse. Une implication contre-intuitive à cela est que les " +"valeurs non numériques ne sont pas égales à elles-mêmes. Par exemple, avec " +"``x = float('NaN')``, ``3 < x``, ``x < 3``, ``x == x``, ``x != x`` sont " +"toutes fausses. Ce comportement est en accord avec IEEE 754." -#: ../Doc/reference/expressions.rst:1350 +#: ../Doc/reference/expressions.rst:1427 msgid "" "Binary sequences (instances of :class:`bytes` or :class:`bytearray`) can be " "compared within and across their types. They compare lexicographically " @@ -2132,7 +2156,7 @@ msgstr "" "La comparaison est lexicographique, en utilisant la valeur numérique des " "éléments." -#: ../Doc/reference/expressions.rst:1354 +#: ../Doc/reference/expressions.rst:1431 msgid "" "Strings (instances of :class:`str`) compare lexicographically using the " "numerical Unicode code points (the result of the built-in function :func:" @@ -2142,13 +2166,13 @@ msgstr "" "lexicographique en utilisant la valeur Unicode (le résultat de la fonction " "native :func:`ord`) des caractères [#]_." -#: ../Doc/reference/expressions.rst:1358 +#: ../Doc/reference/expressions.rst:1435 msgid "Strings and binary sequences cannot be directly compared." msgstr "" "Les chaînes de caractères et les séquences binaires ne peuvent pas être " "comparées directement." -#: ../Doc/reference/expressions.rst:1360 +#: ../Doc/reference/expressions.rst:1437 msgid "" "Sequences (instances of :class:`tuple`, :class:`list`, or :class:`range`) " "can be compared only within each of their types, with the restriction that " @@ -2162,7 +2186,7 @@ msgstr "" "d'égalité entre ces types renvoie faux et une comparaison entre instances de " "types différents lève une :exc:`TypeError`." -#: ../Doc/reference/expressions.rst:1366 +#: ../Doc/reference/expressions.rst:1443 msgid "" "Sequences compare lexicographically using comparison of corresponding " "elements, whereby reflexivity of the elements is enforced." @@ -2170,7 +2194,7 @@ msgstr "" "Les séquences suivent l'ordre lexicographique en utilisant la comparaison de " "leurs éléments, sachant que la réflexivité des éléments est appliquée." -#: ../Doc/reference/expressions.rst:1369 +#: ../Doc/reference/expressions.rst:1446 msgid "" "In enforcing reflexivity of elements, the comparison of collections assumes " "that for a collection element ``x``, ``x == x`` is always true. Based on " @@ -2193,13 +2217,13 @@ msgstr "" "non réflexives qui ne sont pas des nombres, par exemple, aboutissent au " "comportement suivant lorsqu'elles sont utilisées dans une liste ::" -#: ../Doc/reference/expressions.rst:1387 +#: ../Doc/reference/expressions.rst:1464 msgid "" "Lexicographical comparison between built-in collections works as follows:" msgstr "" "L'ordre lexicographique pour les collections natives fonctionne comme suit :" -#: ../Doc/reference/expressions.rst:1389 +#: ../Doc/reference/expressions.rst:1466 msgid "" "For two collections to compare equal, they must be of the same type, have " "the same length, and each pair of corresponding elements must compare equal " @@ -2209,7 +2233,7 @@ msgstr "" "longueur et si les éléments correspondants de chaque paire sont égaux. Par " "exemple, ``[1,2] == (1,2)`` est faux car les types sont différents." -#: ../Doc/reference/expressions.rst:1394 +#: ../Doc/reference/expressions.rst:1471 msgid "" "Collections that support order comparison are ordered the same as their " "first unequal elements (for example, ``[1,2,x] <= [1,2,y]`` has the same " @@ -2223,7 +2247,7 @@ msgstr "" "collection la plus courte est la plus petite (par exemple, ``[1,2] < " "[1,2,3]`` est vrai)." -#: ../Doc/reference/expressions.rst:1400 +#: ../Doc/reference/expressions.rst:1477 msgid "" "Mappings (instances of :class:`dict`) compare equal if and only if they have " "equal `(key, value)` pairs. Equality comparison of the keys and values " @@ -2233,13 +2257,13 @@ msgstr "" "et seulement si toutes leurs paires `(clé, valeur)` sont égales. L'égalité " "des clés et des valeurs met en œuvre la réflexivité." -#: ../Doc/reference/expressions.rst:1404 +#: ../Doc/reference/expressions.rst:1481 msgid "" "Order comparisons (``<``, ``>``, ``<=``, and ``>=``) raise :exc:`TypeError`." msgstr "" "Les comparaisons (``<``, ``>``, ``<=`` et ``>=``) lèvent :exc:`TypeError`." -#: ../Doc/reference/expressions.rst:1406 +#: ../Doc/reference/expressions.rst:1483 msgid "" "Sets (instances of :class:`set` or :class:`frozenset`) can be compared " "within and across their types." @@ -2247,7 +2271,7 @@ msgstr "" "Les ensembles (instances de :class:`set` ou :class:`frozenset`) peuvent être " "comparés au sein de leur propre type et entre types différents." -#: ../Doc/reference/expressions.rst:1409 +#: ../Doc/reference/expressions.rst:1486 msgid "" "They define order comparison operators to mean subset and superset tests. " "Those relations do not define total orderings (for example, the two sets " @@ -2265,11 +2289,11 @@ msgstr "" "exemple, les fonctions :func:`min`, :func:`max` et :func:`sorted` produisent " "des résultats indéfinis si on leur donne des listes d'ensembles en entrée)." -#: ../Doc/reference/expressions.rst:1417 +#: ../Doc/reference/expressions.rst:1494 msgid "Comparison of sets enforces reflexivity of its elements." msgstr "La comparaison des ensembles met en œuvre la réflexivité des éléments." -#: ../Doc/reference/expressions.rst:1419 +#: ../Doc/reference/expressions.rst:1496 msgid "" "Most other built-in types have no comparison methods implemented, so they " "inherit the default comparison behavior." @@ -2277,7 +2301,7 @@ msgstr "" "La plupart des autres types natifs n'implémentent pas de méthodes de " "comparaisons, ils héritent donc du comportement par défaut." -#: ../Doc/reference/expressions.rst:1422 +#: ../Doc/reference/expressions.rst:1499 msgid "" "User-defined classes that customize their comparison behavior should follow " "some consistency rules, if possible:" @@ -2285,7 +2309,7 @@ msgstr "" "Les classes allogènes qui particularisent les opérations de comparaison " "doivent, si possible, respecter quelques règles pour la cohérence :" -#: ../Doc/reference/expressions.rst:1425 +#: ../Doc/reference/expressions.rst:1502 msgid "" "Equality comparison should be reflexive. In other words, identical objects " "should compare equal:" @@ -2293,11 +2317,11 @@ msgstr "" "Le test d'égalité doit être réflexif. En d'autres termes, des objets " "identiques doivent être égaux :" -#: ../Doc/reference/expressions.rst:1428 +#: ../Doc/reference/expressions.rst:1505 msgid "``x is y`` implies ``x == y``" msgstr "``x is y`` implique ``x == y``" -#: ../Doc/reference/expressions.rst:1430 +#: ../Doc/reference/expressions.rst:1507 msgid "" "Comparison should be symmetric. In other words, the following expressions " "should have the same result:" @@ -2305,23 +2329,23 @@ msgstr "" "La comparaison doit être symétrique. En d'autres termes, les expressions " "suivantes doivent donner le même résultat :" -#: ../Doc/reference/expressions.rst:1433 +#: ../Doc/reference/expressions.rst:1510 msgid "``x == y`` and ``y == x``" msgstr "``x == y`` et ``y == x``" -#: ../Doc/reference/expressions.rst:1435 +#: ../Doc/reference/expressions.rst:1512 msgid "``x != y`` and ``y != x``" msgstr "``x != y`` et ``y != x``" -#: ../Doc/reference/expressions.rst:1437 +#: ../Doc/reference/expressions.rst:1514 msgid "``x < y`` and ``y > x``" msgstr "``x < y`` et ``y > x``" -#: ../Doc/reference/expressions.rst:1439 +#: ../Doc/reference/expressions.rst:1516 msgid "``x <= y`` and ``y >= x``" msgstr "``x <= y`` et ``y >= x``" -#: ../Doc/reference/expressions.rst:1441 +#: ../Doc/reference/expressions.rst:1518 msgid "" "Comparison should be transitive. The following (non-exhaustive) examples " "illustrate that:" @@ -2329,33 +2353,36 @@ msgstr "" "La comparaison doit être transitive. Les exemples suivants (liste non " "exhaustive) illustrent ce concept :" -#: ../Doc/reference/expressions.rst:1444 +#: ../Doc/reference/expressions.rst:1521 msgid "``x > y and y > z`` implies ``x > z``" msgstr "``x > y and y > z`` implique ``x > z``" -#: ../Doc/reference/expressions.rst:1446 +#: ../Doc/reference/expressions.rst:1523 msgid "``x < y and y <= z`` implies ``x < z``" msgstr "``x < y and y <= z`` implique ``x < z``" -#: ../Doc/reference/expressions.rst:1448 +#: ../Doc/reference/expressions.rst:1525 msgid "" "Inverse comparison should result in the boolean negation. In other words, " "the following expressions should have the same result:" -msgstr "Si vous inversez la comparaison, le résultat a négation " +msgstr "" +"Si vous inversez la comparaison, cela doit en produire la négation " +"booléenne. En d'autres termes, les expressions suivantes doivent produire le " +"même résultat :" -#: ../Doc/reference/expressions.rst:1451 +#: ../Doc/reference/expressions.rst:1528 msgid "``x == y`` and ``not x != y``" msgstr "``x == y`` et ``not x != y``" -#: ../Doc/reference/expressions.rst:1453 +#: ../Doc/reference/expressions.rst:1530 msgid "``x < y`` and ``not x >= y`` (for total ordering)" msgstr "``x < y`` et ``not x >= y`` (pour une relation d'ordre total)" -#: ../Doc/reference/expressions.rst:1455 +#: ../Doc/reference/expressions.rst:1532 msgid "``x > y`` and ``not x <= y`` (for total ordering)" msgstr "``x > y`` et ``not x <= y`` (pour une relation d'ordre total)" -#: ../Doc/reference/expressions.rst:1457 +#: ../Doc/reference/expressions.rst:1534 msgid "" "The last two expressions apply to totally ordered collections (e.g. to " "sequences, but not to sets or mappings). See also the :func:`~functools." @@ -2366,7 +2393,7 @@ msgstr "" "de correspondances). Regardez aussi le décorateur :func:`~functools." "total_ordering`." -#: ../Doc/reference/expressions.rst:1461 +#: ../Doc/reference/expressions.rst:1538 msgid "" "The :func:`hash` result should be consistent with equality. Objects that are " "equal should either have the same hash value, or be marked as unhashable." @@ -2375,7 +2402,7 @@ msgstr "" "qui sont égaux doivent avoir la même empreinte ou être marqués comme non-" "hachables." -#: ../Doc/reference/expressions.rst:1465 +#: ../Doc/reference/expressions.rst:1542 msgid "" "Python does not enforce these consistency rules. In fact, the not-a-number " "values are an example for not following these rules." @@ -2383,17 +2410,17 @@ msgstr "" "Python ne vérifie pas ces règles de cohérence. En fait, l'utilisation de " "valeurs non numériques est un exemple de non-respect de ces règles." -#: ../Doc/reference/expressions.rst:1474 +#: ../Doc/reference/expressions.rst:1551 msgid "Membership test operations" msgstr "Opérations de tests d’appartenance à un ensemble" -#: ../Doc/reference/expressions.rst:1476 +#: ../Doc/reference/expressions.rst:1553 msgid "" "The operators :keyword:`in` and :keyword:`not in` test for membership. ``x " "in s`` evaluates to ``True`` if *x* is a member of *s*, and ``False`` " "otherwise. ``x not in s`` returns the negation of ``x in s``. All built-in " "sequences and set types support this as well as dictionary, for which :" -"keyword:`in` tests whether the dictionary has a given key. For container " +"keyword:`!in` tests whether the dictionary has a given key. For container " "types such as list, tuple, set, frozenset, dict, or collections.deque, the " "expression ``x in y`` is equivalent to ``any(x is e or x == e for e in y)``." msgstr "" @@ -2401,13 +2428,13 @@ msgstr "" "``x in s`` s’évalue à ``True`` si *x* appartient à *s* et à ``False`` sinon. " "``x not in s`` renvoie la négation de ``x in s``. Tous les types séquences " "et ensembles natifs gèrent ces opérateurs, ainsi que les dictionnaires pour " -"lesquels :keyword:`in` teste si dictionnaire possède une clé donnée. Pour " +"lesquels :keyword:`!in` teste si dictionnaire possède une clé donnée. Pour " "les types conteneurs tels que les listes, n-uplets (*tuple*), ensembles " "(*set*), ensembles gelés (*frozen set*), dictionnaires (*dict*) ou " "*collections.deque*, l’expression ``x in y`` est équivalente à ``any(x is e " "or x == e for e in y)``." -#: ../Doc/reference/expressions.rst:1484 +#: ../Doc/reference/expressions.rst:1561 msgid "" "For the string and bytes types, ``x in y`` is ``True`` if and only if *x* is " "a substring of *y*. An equivalent test is ``y.find(x) != -1``. Empty " @@ -2419,7 +2446,7 @@ msgstr "" "``y.find(x) != -1``. Une chaîne vide est considérée comme une sous-chaîne de " "toute autre chaîne, ainsi ``\"\" in \"abc\"`` renvoie ``True``." -#: ../Doc/reference/expressions.rst:1489 +#: ../Doc/reference/expressions.rst:1566 msgid "" "For user-defined classes which define the :meth:`__contains__` method, ``x " "in y`` returns ``True`` if ``y.__contains__(x)`` returns a true value, and " @@ -2429,64 +2456,65 @@ msgstr "" "``x in y`` renvoie ``True`` si ``y.__contains__(x)`` renvoie vrai, et " "``False`` sinon." -#: ../Doc/reference/expressions.rst:1493 +#: ../Doc/reference/expressions.rst:1570 msgid "" "For user-defined classes which do not define :meth:`__contains__` but do " -"define :meth:`__iter__`, ``x in y`` is ``True`` if some value ``z`` with ``x " -"== z`` is produced while iterating over ``y``. If an exception is raised " -"during the iteration, it is as if :keyword:`in` raised that exception." +"define :meth:`__iter__`, ``x in y`` is ``True`` if some value ``z``, for " +"which the expression ``x is z or x == z`` is true, is produced while " +"iterating over ``y``. If an exception is raised during the iteration, it is " +"as if :keyword:`in` raised that exception." msgstr "" "Pour les classes allogènes qui ne définissent pas :meth:`__contains__` mais " "qui définissent :meth:`__iter__`, ``x in y`` vaut ``True`` s'il existe une " -"valeur ``z`` telle que ``x == z`` renvoie vrai lors de l'itération sur " -"``y``. Si une exception est levée pendant l'itération, c'est comme si :" -"keyword:`in` avait levé cette exception." +"valeur ``z`` telle que l'expression ``x is z or x == z`` renvoie vrai lors " +"de l'itération sur ``y``. Si une exception est levée pendant l'itération, " +"c'est comme si :keyword:`in` avait levé cette exception." -#: ../Doc/reference/expressions.rst:1498 +#: ../Doc/reference/expressions.rst:1576 msgid "" "Lastly, the old-style iteration protocol is tried: if a class defines :meth:" "`__getitem__`, ``x in y`` is ``True`` if and only if there is a non-negative " -"integer index *i* such that ``x == y[i]``, and all lower integer indices do " -"not raise :exc:`IndexError` exception. (If any other exception is raised, " -"it is as if :keyword:`in` raised that exception)." +"integer index *i* such that ``x is y[i] or x == y[i]``, and no lower integer " +"index raises the :exc:`IndexError` exception. (If any other exception is " +"raised, it is as if :keyword:`in` raised that exception)." msgstr "" -"Enfin, le protocole d'itération \"à l'ancienne\" est essayé : si la classe " +"Enfin, le protocole d'itération « à l'ancienne » est essayé : si la classe " "définit :meth:`__getitem__`, ``x in y`` est ``True`` si et seulement si il " -"existe un entier positif ou nul *i*, représentant l'indice, tel que ``x == " -"y[i]`` et que tout indice inférieur ne lève pas d'exception :exc:" +"existe un entier positif ou nul *i*, représentant l'indice, tel que ``x is " +"y[i] or x == y[i]`` et qu'aucun indice inférieur ne lève d'exception :exc:" "`IndexError` (si toute autre exception est levée, c'est comme si :keyword:" "`in` avait levé cette exception)." -#: ../Doc/reference/expressions.rst:1510 +#: ../Doc/reference/expressions.rst:1588 msgid "" -"The operator :keyword:`not in` is defined to have the inverse true value of :" -"keyword:`in`." +"The operator :keyword:`not in` is defined to have the inverse truth value " +"of :keyword:`in`." msgstr "" -"L'opérateur :keyword:`not in` est défini comme produisant le contraire de :" +"L'opérateur :keyword:`not in` est défini comme produisant le contraire de :" "keyword:`in`." -#: ../Doc/reference/expressions.rst:1523 +#: ../Doc/reference/expressions.rst:1601 msgid "Identity comparisons" msgstr "Comparaisons d'identifiants" -#: ../Doc/reference/expressions.rst:1525 +#: ../Doc/reference/expressions.rst:1603 msgid "" -"The operators :keyword:`is` and :keyword:`is not` test for object identity: " -"``x is y`` is true if and only if *x* and *y* are the same object. Object " -"identity is determined using the :meth:`id` function. ``x is not y`` yields " -"the inverse truth value. [#]_" +"The operators :keyword:`is` and :keyword:`is not` test for an object's " +"identity: ``x is y`` is true if and only if *x* and *y* are the same " +"object. An Object's identity is determined using the :meth:`id` function. " +"``x is not y`` yields the inverse truth value. [#]_" msgstr "" "Les opérateurs :keyword:`is` et :keyword:`is not` testent l'égalité des " -"identifiants des objets : ``x is y`` est vrai si et seulement si *x* et *y* " +"identifiants des objets : ``x is y`` est vrai si et seulement si *x* et *y* " "sont le même objet. L'identifiant d'un objet est déterminé en utilisant la " "fonction :meth:`id`. ``x is not y`` renvoie le résultat contraire de " "l'égalité des identifiants [#]_." -#: ../Doc/reference/expressions.rst:1537 +#: ../Doc/reference/expressions.rst:1615 msgid "Boolean operations" msgstr "Opérations booléennes" -#: ../Doc/reference/expressions.rst:1548 +#: ../Doc/reference/expressions.rst:1626 msgid "" "In the context of Boolean operations, and also when expressions are used by " "control flow statements, the following values are interpreted as false: " @@ -2505,7 +2533,7 @@ msgstr "" "allogènes peuvent personnaliser leur table de vérité en implémentant une " "méthode :meth:`__bool__`." -#: ../Doc/reference/expressions.rst:1557 +#: ../Doc/reference/expressions.rst:1635 msgid "" "The operator :keyword:`not` yields ``True`` if its argument is false, " "``False`` otherwise." @@ -2513,7 +2541,7 @@ msgstr "" "L'opérateur :keyword:`not` produit ``True`` si son argument est faux, " "``False`` sinon." -#: ../Doc/reference/expressions.rst:1562 +#: ../Doc/reference/expressions.rst:1640 msgid "" "The expression ``x and y`` first evaluates *x*; if *x* is false, its value " "is returned; otherwise, *y* is evaluated and the resulting value is returned." @@ -2522,7 +2550,7 @@ msgstr "" "valeur est renvoyée ; sinon, *y* est évalué et la valeur résultante est " "renvoyée." -#: ../Doc/reference/expressions.rst:1567 +#: ../Doc/reference/expressions.rst:1645 msgid "" "The expression ``x or y`` first evaluates *x*; if *x* is true, its value is " "returned; otherwise, *y* is evaluated and the resulting value is returned." @@ -2531,9 +2559,9 @@ msgstr "" "valeur est renvoyée ; sinon, *y* est évalué et la valeur résultante est " "renvoyée." -#: ../Doc/reference/expressions.rst:1570 +#: ../Doc/reference/expressions.rst:1648 msgid "" -"(Note that neither :keyword:`and` nor :keyword:`or` restrict the value and " +"Note that neither :keyword:`and` nor :keyword:`or` restrict the value and " "type they return to ``False`` and ``True``, but rather return the last " "evaluated argument. This is sometimes useful, e.g., if ``s`` is a string " "that should be replaced by a default value if it is empty, the expression " @@ -2550,19 +2578,19 @@ msgstr "" "de son argument (par exemple, ``not 'truc'`` produit ``False`` plutôt que " "``''``." -#: ../Doc/reference/expressions.rst:1580 +#: ../Doc/reference/expressions.rst:1660 msgid "Conditional expressions" msgstr "Expressions conditionnelles" -#: ../Doc/reference/expressions.rst:1591 +#: ../Doc/reference/expressions.rst:1673 msgid "" "Conditional expressions (sometimes called a \"ternary operator\") have the " "lowest priority of all Python operations." msgstr "" -"Les expressions conditionnelles (parfois appelées \"opérateur ternaire\") " +"Les expressions conditionnelles (parfois appelées « opérateur ternaire ») " "sont les moins prioritaires de toutes les opérations Python." -#: ../Doc/reference/expressions.rst:1594 +#: ../Doc/reference/expressions.rst:1676 msgid "" "The expression ``x if C else y`` first evaluates the condition, *C* rather " "than *x*. If *C* is true, *x* is evaluated and its value is returned; " @@ -2572,16 +2600,16 @@ msgstr "" "est vrai, alors *x* est évalué et sa valeur est renvoyée ; sinon, *y* est " "évalué et sa valeur est renvoyée." -#: ../Doc/reference/expressions.rst:1598 +#: ../Doc/reference/expressions.rst:1680 msgid "See :pep:`308` for more details about conditional expressions." msgstr "" "Voir la :pep:`308` pour plus de détails sur les expressions conditionnelles." -#: ../Doc/reference/expressions.rst:1605 +#: ../Doc/reference/expressions.rst:1687 msgid "Lambdas" msgstr "Expressions lambda" -#: ../Doc/reference/expressions.rst:1616 +#: ../Doc/reference/expressions.rst:1699 msgid "" "Lambda expressions (sometimes called lambda forms) are used to create " "anonymous functions. The expression ``lambda parameters: expression`` yields " @@ -2592,7 +2620,7 @@ msgstr "" "L'expression ``lambda parameters: expression`` produit un objet fonction. " "Cet objet anonyme se comporte comme un objet fonction défini par :" -#: ../Doc/reference/expressions.rst:1625 +#: ../Doc/reference/expressions.rst:1708 msgid "" "See section :ref:`function` for the syntax of parameter lists. Note that " "functions created with lambda expressions cannot contain statements or " @@ -2602,11 +2630,11 @@ msgstr "" "Notez que les fonctions créées par des expressions lambda ne peuvent pas " "contenir d'instructions ou d'annotations." -#: ../Doc/reference/expressions.rst:1633 +#: ../Doc/reference/expressions.rst:1716 msgid "Expression lists" msgstr "Listes d'expressions" -#: ../Doc/reference/expressions.rst:1645 +#: ../Doc/reference/expressions.rst:1730 msgid "" "Except when part of a list or set display, an expression list containing at " "least one comma yields a tuple. The length of the tuple is the number of " @@ -2617,7 +2645,7 @@ msgstr "" "(*tuple*). La longueur du n-uplet est le nombre d'expressions dans la liste. " "Les expressions sont évaluées de la gauche vers la droite." -#: ../Doc/reference/expressions.rst:1654 +#: ../Doc/reference/expressions.rst:1739 msgid "" "An asterisk ``*`` denotes :dfn:`iterable unpacking`. Its operand must be " "an :term:`iterable`. The iterable is expanded into a sequence of items, " @@ -2629,14 +2657,14 @@ msgstr "" "L'itérable est développé en une séquence d'éléments qui sont inclus dans un " "nouvel objet *tuple*, *list* ou *set* à l'emplacement du dépaquetage." -#: ../Doc/reference/expressions.rst:1659 +#: ../Doc/reference/expressions.rst:1744 msgid "" "Iterable unpacking in expression lists, originally proposed by :pep:`448`." msgstr "" "dépaquetage d'itérables dans les listes d'expressions, proposé à l'origine " "par la :pep:`448`." -#: ../Doc/reference/expressions.rst:1664 +#: ../Doc/reference/expressions.rst:1749 msgid "" "The trailing comma is required only to create a single tuple (a.k.a. a " "*singleton*); it is optional in all other cases. A single expression " @@ -2650,11 +2678,11 @@ msgstr "" "produit la valeur de cette expression (pour créer un *tuple* vide, utilisez " "une paire de parenthèses vide : ``()``)." -#: ../Doc/reference/expressions.rst:1674 +#: ../Doc/reference/expressions.rst:1759 msgid "Evaluation order" msgstr "Ordre d'évaluation" -#: ../Doc/reference/expressions.rst:1678 +#: ../Doc/reference/expressions.rst:1763 msgid "" "Python evaluates expressions from left to right. Notice that while " "evaluating an assignment, the right-hand side is evaluated before the left-" @@ -2664,7 +2692,7 @@ msgstr "" "lors de l'évaluation d'une assignation, la partie droite de l'assignation " "est évaluée avant la partie gauche." -#: ../Doc/reference/expressions.rst:1681 +#: ../Doc/reference/expressions.rst:1766 msgid "" "In the following lines, expressions will be evaluated in the arithmetic " "order of their suffixes::" @@ -2672,11 +2700,11 @@ msgstr "" "Dans les lignes qui suivent, les expressions sont évaluées suivant l'ordre " "arithmétique de leurs suffixes ::" -#: ../Doc/reference/expressions.rst:1695 +#: ../Doc/reference/expressions.rst:1780 msgid "Operator precedence" msgstr "Priorités des opérateurs" -#: ../Doc/reference/expressions.rst:1699 +#: ../Doc/reference/expressions.rst:1785 msgid "" "The following table summarizes the operator precedence in Python, from " "lowest precedence (least binding) to highest precedence (most binding). " @@ -2689,9 +2717,9 @@ msgstr "" "ont la même priorité. À moins que la syntaxe ne soit explicitement indiquée, " "les opérateurs sont binaires. Les opérateurs dans la même cases regroupent " "de la gauche vers la droite (sauf pour la puissance qui regroupe de la " -"droite vers la gauche). " +"droite vers la gauche)." -#: ../Doc/reference/expressions.rst:1705 +#: ../Doc/reference/expressions.rst:1791 msgid "" "Note that comparisons, membership tests, and identity tests, all have the " "same precedence and have a left-to-right chaining feature as described in " @@ -2701,55 +2729,55 @@ msgstr "" "d'identifiants possèdent tous la même priorité et s'enchaînent de la gauche " "vers la droite comme décrit dans la section :ref:`comparisons`." -#: ../Doc/reference/expressions.rst:1711 +#: ../Doc/reference/expressions.rst:1797 msgid "Operator" msgstr "Opérateur" -#: ../Doc/reference/expressions.rst:1711 +#: ../Doc/reference/expressions.rst:1797 msgid "Description" msgstr "Description" -#: ../Doc/reference/expressions.rst:1713 +#: ../Doc/reference/expressions.rst:1799 msgid ":keyword:`lambda`" msgstr ":keyword:`lambda`" -#: ../Doc/reference/expressions.rst:1713 +#: ../Doc/reference/expressions.rst:1799 msgid "Lambda expression" msgstr "Expression lambda" -#: ../Doc/reference/expressions.rst:1715 -msgid ":keyword:`if` -- :keyword:`else`" -msgstr ":keyword:`if` -- :keyword:`else`" +#: ../Doc/reference/expressions.rst:1801 +msgid ":keyword:`if ` -- :keyword:`!else`" +msgstr ":keyword:`if ` -- :keyword:`!else`" -#: ../Doc/reference/expressions.rst:1715 +#: ../Doc/reference/expressions.rst:1801 msgid "Conditional expression" msgstr "Expressions conditionnelle" -#: ../Doc/reference/expressions.rst:1717 +#: ../Doc/reference/expressions.rst:1803 msgid ":keyword:`or`" msgstr ":keyword:`or`" -#: ../Doc/reference/expressions.rst:1717 +#: ../Doc/reference/expressions.rst:1803 msgid "Boolean OR" msgstr "OR (booléen)" -#: ../Doc/reference/expressions.rst:1719 +#: ../Doc/reference/expressions.rst:1805 msgid ":keyword:`and`" msgstr ":keyword:`and`" -#: ../Doc/reference/expressions.rst:1719 +#: ../Doc/reference/expressions.rst:1805 msgid "Boolean AND" msgstr "AND (booléen)" -#: ../Doc/reference/expressions.rst:1721 +#: ../Doc/reference/expressions.rst:1807 msgid ":keyword:`not` ``x``" msgstr ":keyword:`not` ``x``" -#: ../Doc/reference/expressions.rst:1721 +#: ../Doc/reference/expressions.rst:1807 msgid "Boolean NOT" msgstr "NOT (booléen)" -#: ../Doc/reference/expressions.rst:1723 +#: ../Doc/reference/expressions.rst:1809 msgid "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" @@ -2757,56 +2785,56 @@ msgstr "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" -#: ../Doc/reference/expressions.rst:1723 +#: ../Doc/reference/expressions.rst:1809 msgid "Comparisons, including membership tests and identity tests" msgstr "" "Comparaisons, y compris les tests d'appartenance et les tests d'identifiants" -#: ../Doc/reference/expressions.rst:1727 +#: ../Doc/reference/expressions.rst:1813 msgid "``|``" msgstr "``|``" -#: ../Doc/reference/expressions.rst:1727 +#: ../Doc/reference/expressions.rst:1813 msgid "Bitwise OR" msgstr "OR (bit à bit)" -#: ../Doc/reference/expressions.rst:1729 +#: ../Doc/reference/expressions.rst:1815 msgid "``^``" msgstr "``^``" -#: ../Doc/reference/expressions.rst:1729 +#: ../Doc/reference/expressions.rst:1815 msgid "Bitwise XOR" msgstr "XOR (bit à bit)" -#: ../Doc/reference/expressions.rst:1731 +#: ../Doc/reference/expressions.rst:1817 msgid "``&``" msgstr "``&``" -#: ../Doc/reference/expressions.rst:1731 +#: ../Doc/reference/expressions.rst:1817 msgid "Bitwise AND" msgstr "AND (bit à bit)" -#: ../Doc/reference/expressions.rst:1733 +#: ../Doc/reference/expressions.rst:1819 msgid "``<<``, ``>>``" msgstr "``<<``, ``>>``" -#: ../Doc/reference/expressions.rst:1733 +#: ../Doc/reference/expressions.rst:1819 msgid "Shifts" msgstr "décalages" -#: ../Doc/reference/expressions.rst:1735 +#: ../Doc/reference/expressions.rst:1821 msgid "``+``, ``-``" msgstr "``+``, ``-``" -#: ../Doc/reference/expressions.rst:1735 +#: ../Doc/reference/expressions.rst:1821 msgid "Addition and subtraction" msgstr "Addition et soustraction" -#: ../Doc/reference/expressions.rst:1737 +#: ../Doc/reference/expressions.rst:1823 msgid "``*``, ``@``, ``/``, ``//``, ``%``" msgstr "``*``, ``@``, ``/``, ``//``, ``%``" -#: ../Doc/reference/expressions.rst:1737 +#: ../Doc/reference/expressions.rst:1823 msgid "" "Multiplication, matrix multiplication, division, floor division, remainder " "[#]_" @@ -2814,36 +2842,36 @@ msgstr "" "Multiplication, multiplication de matrices, division, division entière, " "reste [#]_" -#: ../Doc/reference/expressions.rst:1741 +#: ../Doc/reference/expressions.rst:1827 msgid "``+x``, ``-x``, ``~x``" msgstr "``+x``, ``-x``, ``~x``" -#: ../Doc/reference/expressions.rst:1741 +#: ../Doc/reference/expressions.rst:1827 msgid "Positive, negative, bitwise NOT" msgstr "NOT (positif, négatif, bit à bit)" -#: ../Doc/reference/expressions.rst:1743 +#: ../Doc/reference/expressions.rst:1829 msgid "``**``" msgstr "``**``" -#: ../Doc/reference/expressions.rst:1743 +#: ../Doc/reference/expressions.rst:1829 msgid "Exponentiation [#]_" msgstr "Puissance [#]_" -#: ../Doc/reference/expressions.rst:1745 -msgid "``await`` ``x``" -msgstr "``await`` ``x``" +#: ../Doc/reference/expressions.rst:1831 +msgid ":keyword:`await` ``x``" +msgstr ":keyword:`await` ``x``" -#: ../Doc/reference/expressions.rst:1747 +#: ../Doc/reference/expressions.rst:1833 msgid "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" msgstr "" "``x[indice]``, ``x[indice:indice]``, ``x(arguments...)``, ``x.attribut``" -#: ../Doc/reference/expressions.rst:1747 +#: ../Doc/reference/expressions.rst:1833 msgid "Subscription, slicing, call, attribute reference" msgstr "indiçage, tranches, appel, référence à un attribut" -#: ../Doc/reference/expressions.rst:1750 +#: ../Doc/reference/expressions.rst:1836 msgid "" "``(expressions...)``, ``[expressions...]``, ``{key: value...}``, " "``{expressions...}``" @@ -2851,17 +2879,17 @@ msgstr "" "``(expressions...)``, ``[expressions...]``, ``{clé: valeur...}``, " "``{expressions...}``" -#: ../Doc/reference/expressions.rst:1750 +#: ../Doc/reference/expressions.rst:1836 msgid "Binding or tuple display, list display, dictionary display, set display" msgstr "" "liaison ou agencement de n-uplet, agencement de liste, agencement de " "dictionnaire, agencement d'ensemble" -#: ../Doc/reference/expressions.rst:1758 +#: ../Doc/reference/expressions.rst:1844 msgid "Footnotes" msgstr "Notes" -#: ../Doc/reference/expressions.rst:1759 +#: ../Doc/reference/expressions.rst:1845 msgid "" "While ``abs(x%y) < abs(y)`` is true mathematically, for floats it may not be " "true numerically due to roundoff. For example, and assuming a platform on " @@ -2882,7 +2910,7 @@ msgstr "" "argument, c'est-à-dire ``-1e-100`` dans ce cas. La meilleure approche dépend " "de l'application." -#: ../Doc/reference/expressions.rst:1768 +#: ../Doc/reference/expressions.rst:1854 msgid "" "If x is very close to an exact integer multiple of y, it's possible for ``x//" "y`` to be one larger than ``(x-x%y)//y`` due to rounding. In such cases, " @@ -2894,7 +2922,7 @@ msgstr "" "Dans de tels cas, Python renvoie le second résultat afin d'avoir ``divmod(x," "y)[0] * y + x % y`` le plus proche de ``x``." -#: ../Doc/reference/expressions.rst:1773 +#: ../Doc/reference/expressions.rst:1859 msgid "" "The Unicode standard distinguishes between :dfn:`code points` (e.g. U+0041) " "and :dfn:`abstract characters` (e.g. \"LATIN CAPITAL LETTER A\"). While most " @@ -2908,18 +2936,18 @@ msgid "" "(COMBINING CEDILLA)." msgstr "" "Le standard Unicode distingue les :dfn:`points codes` (*code points* en " -"anglais, par exemple U+0041) et les :dfn:`caractères abstraits` (*abstract " -"characters* en anglais, par exemple \"LATIN CAPITAL LETTER A\"). Bien que la " +"anglais, par exemple *U+0041*) et les :dfn:`caractères abstraits` (*abstract " +"characters* en anglais, par exemple « LATIN CAPITAL LETTER A »). Bien que la " "plupart des caractères abstraits de l'Unicode ne sont représentés que par un " "seul point code, il y a un certain nombre de caractères abstraits qui " "peuvent être représentés par une séquence de plus qu'un point code. Par " -"exemple, le caractère abstrait \"LATIN CAPITAL LETTER C WITH CEDILLA\" peut " -"être représenté comme un unique :dfn:`caractère précomposé` au point code U" -"+00C7, ou en tant que séquence d'un :dfn:`caractère de base` à la position U" -"+0043 (LATIN CAPITAL LETTER C) du code, suivi par un :dfn:`caractère " -"combiné` à la position U+0327 (COMBINING CEDILLA) du code." +"exemple, le caractère abstrait « LATIN CAPITAL LETTER C WITH CEDILLA » peut " +"être représenté comme un unique :dfn:`caractère précomposé` au point code *U" +"+00C7*, ou en tant que séquence d'un :dfn:`caractère de base` à la position " +"*U+0043* (LATIN CAPITAL LETTER C) du code, suivi par un :dfn:`caractère " +"combiné` à la position *U+0327* (*COMBINING CEDILLA*) du code." -#: ../Doc/reference/expressions.rst:1784 +#: ../Doc/reference/expressions.rst:1870 msgid "" "The comparison operators on strings compare at the level of Unicode code " "points. This may be counter-intuitive to humans. For example, ``\"\\u00C7\" " @@ -2932,7 +2960,7 @@ msgstr "" "chaînes représentent le même caractère abstrait \"LATIN CAPITAL LETTER C " "WITH CEDILLA\"." -#: ../Doc/reference/expressions.rst:1789 +#: ../Doc/reference/expressions.rst:1875 msgid "" "To compare strings at the level of abstract characters (that is, in a way " "intuitive to humans), use :func:`unicodedata.normalize`." @@ -2941,7 +2969,7 @@ msgstr "" "quelque chose d'intuitif pour les humains), utilisez :func:`unicodedata." "normalize`." -#: ../Doc/reference/expressions.rst:1792 +#: ../Doc/reference/expressions.rst:1878 msgid "" "Due to automatic garbage-collection, free lists, and the dynamic nature of " "descriptors, you may notice seemingly unusual behaviour in certain uses of " @@ -2954,7 +2982,7 @@ msgstr "" "cela implique des comparaisons entre des méthodes d'instances ou des " "constantes. Allez vérifier dans la documentation pour plus d'informations." -#: ../Doc/reference/expressions.rst:1797 +#: ../Doc/reference/expressions.rst:1883 msgid "" "The ``%`` operator is also used for string formatting; the same precedence " "applies." @@ -2962,7 +2990,7 @@ msgstr "" "L'opérateur ``%`` est aussi utilisé pour formater les chaînes de " "caractères ; il y possède la même priorité." -#: ../Doc/reference/expressions.rst:1800 +#: ../Doc/reference/expressions.rst:1886 msgid "" "The power operator ``**`` binds less tightly than an arithmetic or bitwise " "unary operator on its right, that is, ``2**-1`` is ``0.5``." @@ -2970,6 +2998,9 @@ msgstr "" "L'opérateur puissance ``**`` est moins prioritaire qu'un opérateur unaire " "arithmétique ou bit à bit sur sa droite. Ainsi, ``2**-1`` vaut ``0.5``." +#~ msgid "``await`` ``x``" +#~ msgstr "``await`` ``x``" + #~ msgid "" #~ "The not-a-number values :const:`float('NaN')` and :const:`Decimal('NaN')` " #~ "are special. They are identical to themselves (``x is x`` is true) but " diff --git a/reference/grammar.po b/reference/grammar.po index 52396ab69..a8bf8f8cf 100644 --- a/reference/grammar.po +++ b/reference/grammar.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-02-15 00:52+0100\n" +"PO-Revision-Date: 2018-10-05 08:42+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -24,5 +24,5 @@ msgid "" "used to parse Python source files:" msgstr "" "Ceci est la grammaire de Python, exhaustive, telle qu'elle est lue par le " -"générateur de parseur, et utilisée pour parser des fichiers sources en " +"générateur d'analyseur, et utilisée pour analyser des fichiers sources en " "Python :" diff --git a/reference/import.po b/reference/import.po index a96fd9e33..6f5d013c1 100644 --- a/reference/import.po +++ b/reference/import.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-02 22:43+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-01 23:45+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/reference/import.rst:6 msgid "The import system" @@ -38,19 +38,20 @@ msgstr "" msgid "" "The :keyword:`import` statement combines two operations; it searches for the " "named module, then it binds the results of that search to a name in the " -"local scope. The search operation of the :keyword:`import` statement is " +"local scope. The search operation of the :keyword:`!import` statement is " "defined as a call to the :func:`__import__` function, with the appropriate " "arguments. The return value of :func:`__import__` is used to perform the " -"name binding operation of the :keyword:`import` statement. See the :keyword:" -"`import` statement for the exact details of that name binding operation." +"name binding operation of the :keyword:`!import` statement. See the :" +"keyword:`!import` statement for the exact details of that name binding " +"operation." msgstr "" "L'instruction :keyword:`import` effectue deux opérations ; elle cherche le " "module dont le nom a été donné puis elle lie le résultat de cette recherche " "à un nom dans la portée locale. L'opération de recherche de l'instruction :" -"keyword:`import` consiste à appeler la fonction :func:`__import__` avec les " +"keyword:`!import` consiste à appeler la fonction :func:`__import__` avec les " "arguments adéquats. La valeur renvoyée par :func:`__import__` est utilisée " "pour effectuer l'opération de liaison avec le nom fourni à l'instruction :" -"keyword:`import`. Reportez-vous à l'instruction :keyword:`import` pour les " +"keyword:`!import`. Reportez-vous à l'instruction :keyword:`!import` pour les " "détails exacts de l'opération de liaison avec le nom." #: ../Doc/reference/import.rst:25 @@ -131,7 +132,7 @@ msgstr "" #: ../Doc/reference/import.rst:62 msgid "Packages" -msgstr "Différents types de paquets" +msgstr "Les paquets" #: ../Doc/reference/import.rst:67 msgid "" @@ -188,7 +189,7 @@ msgstr "" "Tous les modules ont un nom. Les noms des sous-paquets sont séparés du nom " "du paquet parent par des points (`.`), à l'instar de la syntaxe standard " "d'accès aux attributs en Python. Ainsi, vous pouvez avoir un module nommé :" -"mod:`sys` et un paquet nommé :mod:`email`, qui a son tour possède un sous-" +"mod:`sys` et un paquet nommé :mod:`email`, qui à son tour possède un sous-" "paquet nommé :mod:`email.mime` avec un module dans ce sous-paquet nommé :mod:" "`email.mime.text`." @@ -209,7 +210,7 @@ msgid "" "additional attributes to the module when it is imported." msgstr "" "Python définit deux types de paquets, les :term:`paquets classiques ` et les :term:`paquets espaces de noms `. Les " +"package>` et les :term:`paquets espaces de nommage `. Les " "paquets classiques sont les paquets traditionnels tels qu'ils existaient " "dans Python 3.2 et antérieurs. Un paquet classique est typiquement " "implémenté sous la forme d'un répertoire contenant un fichier ``__init__." @@ -238,7 +239,7 @@ msgstr "" #: ../Doc/reference/import.rst:127 msgid "Namespace packages" -msgstr "Paquets espaces de noms" +msgstr "Paquets espaces de nommage" #: ../Doc/reference/import.rst:133 msgid "" @@ -250,14 +251,14 @@ msgid "" "objects on the file system; they may be virtual modules that have no " "concrete representation." msgstr "" -"Un paquet-espace de noms est la combinaison de plusieurs :term:`portions " +"Un paquet-espace de nommage est la combinaison de plusieurs :term:`portions " "` où chaque portion fournit un sous-paquet au paquet parent. Les " "portions peuvent être situées à différents endroits du système de fichiers. " "Les portions peuvent aussi être stockées dans des fichiers zip, sur le " "réseau ou à tout autre endroit dans lequel Python cherche pendant " -"l'importation. Les paquets-espaces de noms peuvent correspondre directement " -"à des objets du système de fichiers, ou pas ; ils peuvent être des modules " -"virtuels qui n'ont aucune représentation concrète." +"l'importation. Les paquets-espaces de nommage peuvent correspondre " +"directement à des objets du système de fichiers, ou pas ; ils peuvent être " +"des modules virtuels qui n'ont aucune représentation concrète." #: ../Doc/reference/import.rst:141 msgid "" @@ -267,7 +268,7 @@ msgid "" "that package if the path of their parent package (or :data:`sys.path` for a " "top level package) changes." msgstr "" -"Les paquets-espaces de noms n'utilisent pas une liste ordinaire pour leur " +"Les paquets-espaces de nommage n'utilisent pas une liste ordinaire pour leur " "attribut ``__path__``. Ils utilisent en lieu et place un type itérable " "personnalisé qui effectue automatiquement une nouvelle recherche de portions " "de paquets à la tentative suivante d'importation dans le paquet si le chemin " @@ -283,18 +284,19 @@ msgid "" "create a namespace package for the top-level ``parent`` package whenever it " "or one of its subpackages is imported." msgstr "" -"Pour les paquets-espaces de noms, il n'existe pas de fichier ``parent/" +"Pour les paquets-espaces de nommage, il n'existe pas de fichier ``parent/" "__init__.py``. En fait, il peut y avoir plusieurs répertoires ``parent`` " "trouvés pendant le processus d'importation, où chacun est apporté par une " "portion différente. Ainsi, ``parent/one`` n'est pas forcément physiquement à " -"côté de ``parent/two``. Dans ce cas, Python crée un paquet-espace de noms " +"côté de ``parent/two``. Dans ce cas, Python crée un paquet-espace de nommage " "pour le paquet de plus haut niveau ``parent`` dès que lui ou l'un de ses " "sous-paquet est importé." #: ../Doc/reference/import.rst:154 msgid "See also :pep:`420` for the namespace package specification." msgstr "" -"Voir aussi la :pep:`420` pour les spécifications des paquets-espaces de noms." +"Voir aussi la :pep:`420` pour les spécifications des paquets-espaces de " +"nommage." #: ../Doc/reference/import.rst:158 msgid "Searching" @@ -488,7 +490,7 @@ msgstr "" "Le mécanisme d'importation est conçu pour être extensible ; vous pouvez y " "insérer des *points d'entrée automatique* (*hooks* en anglais). Il existe " "deux types de points d'entrée automatique pour l'importation : les *méta-" -"points d'entrée* et les *points d'entrée sur le chemin des imports*." +"points d'entrée* et les *points d'entrée sur le chemin des importations*." #: ../Doc/reference/import.rst:259 msgid "" @@ -513,11 +515,11 @@ msgid "" "encountered. Import path hooks are registered by adding new callables to :" "data:`sys.path_hooks` as described below." msgstr "" -"Les points d'entrée sur le chemin des imports sont appelés pendant le " +"Les points d'entrée sur le chemin des importations sont appelés pendant le " "traitement de :data:`sys.path` (ou ``package.__path__``), au moment où le " "chemin qui leur correspond est atteint. Les points d'entrée sur le chemin " -"des imports sont enregistrés en ajoutant de nouveaux appelables à :data:`sys." -"path_hooks`, comme décrit ci-dessous." +"des importations sont enregistrés en ajoutant de nouveaux appelables à :data:" +"`sys.path_hooks`, comme décrit ci-dessous." #: ../Doc/reference/import.rst:272 msgid "The meta path" @@ -626,7 +628,7 @@ msgid "" msgstr "" "Le :data:`sys.meta_path` de Python comprend trois chercheurs par défaut : un " "qui sait importer les modules natifs, un qui sait importer les modules gelés " -"et un qui sait importer les modules depuis un :term:`chemin des imports " +"et un qui sait importer les modules depuis un :term:`chemin des importations " "` (c'est le :term:`chercheur dans path `)." #: ../Doc/reference/import.rst:323 @@ -691,7 +693,7 @@ msgid "" "effect, must remain in the cache. This contrasts with reloading where even " "the failing module is left in :data:`sys.modules`." msgstr "" -"Si le chargement échoue, le module en cause -- et seulement ce module -- est " +"Si le chargement échoue, le module en cause (et seulement ce module) est " "enlevé de :data:`sys.modules`. Tout module déjà dans le cache de :data:`sys." "modules` et tout module qui a été chargé avec succès par effet de bord doit " "rester dans le cache. C'est différent dans le cas d'un rechargement où même " @@ -706,7 +708,7 @@ msgid "" msgstr "" "Après que le module est créé mais avant son exécution, le mécanisme " "d'importation définit les attributs relatifs à l'importation " -"(\"_init_module_attrs\" dans l'exemple de pseudo-code ci-dessus), comme " +"(``_init_module_attrs`` dans l'exemple de pseudo-code ci-dessus), comme " "indiqué brièvement dans une :ref:`section ` que nous " "abordons ensuite." @@ -717,7 +719,7 @@ msgid "" "which gets to decide what gets populated and how." msgstr "" "L'exécution du module est le moment clé du chargement dans lequel l'espace " -"de noms du module est peuplé. L'exécution est entièrement déléguée au " +"de nommage du module est peuplé. L'exécution est entièrement déléguée au " "chargeur qui doit décider ce qui est peuplé et comment." #: ../Doc/reference/import.rst:395 @@ -725,8 +727,8 @@ msgid "" "The module created during loading and passed to exec_module() may not be the " "one returned at the end of import [#fnlo]_." msgstr "" -"Le modulé créé pendant le chargement et passé à exec_module() peut ne pas " -"être celui qui est renvoyé à la fin de l'importation [#fnlo]_." +"Le modulé créé pendant le chargement et passé à ``exec_module()`` peut ne " +"pas être celui qui est renvoyé à la fin de l'importation [#fnlo]_." #: ../Doc/reference/import.rst:398 msgid "" @@ -842,7 +844,7 @@ msgstr "" "La méthode ``load_module()`` *doit* implémenter toutes les fonctionnalités " "de chargement décrites ci-dessus en plus de l'exécution du module. Toutes " "les contraintes s'appliquent aussi, avec quelques précisions " -"supplémentaires :" +"supplémentaires :" #: ../Doc/reference/import.rst:449 msgid "" @@ -882,7 +884,7 @@ msgid "" "A :exc:`DeprecationWarning` is raised when ``exec_module()`` is defined but " "``create_module()`` is not." msgstr "" -"Un avertissement :exc:`DeprecationWarning` est levé quand ``exec_module()`` " +"Un avertissement :exc:`DeprecationWarning` est levé quand ``exec_module()`` " "est définie mais ``create_module()`` ne l'est pas." #: ../Doc/reference/import.rst:468 @@ -908,7 +910,7 @@ msgid "" msgstr "" "Quand un sous-module est chargé, quel que soit le mécanisme (par exemple " "avec les instructions ``import``, ``import-from`` ou avec la fonction native " -"``__import__()``), une liaison est créée dans l'espace de noms du module " +"``__import__()``), une liaison est créée dans l'espace de nommage du module " "parent vers l'objet sous-module. Par exemple, si le paquet ``spam`` possède " "un sous-module ``foo``, après l'importation de ``spam.foo``, ``spam`` " "possède un attribut ``foo`` qui est lié au sous-module. Supposons que nous " @@ -1083,7 +1085,7 @@ msgid "" "defined." msgstr "" "``__spec__.parent`` est utilisé par défaut quand ``__package__`` n'est pas " -"defini." +"défini." #: ../Doc/reference/import.rst:586 msgid "" @@ -1094,9 +1096,9 @@ msgid "" "details on the semantics of ``__path__`` are given :ref:`below `." msgstr "" -"Si le module est un paquet (classique ou espace de noms), l'attribut " +"Si le module est un paquet (classique ou espace de nommage), l'attribut " "``__path__`` de l'objet module doit être défini. La valeur doit être un " -"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " +"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " "contexte. Si ``__path__`` n'est pas vide, il doit produire des chaînes " "lorsque l'on itère dessus. Vous trouvez plus de détails sur la sémantique de " "``__path__`` :ref:`plus loin ci-dessous `." @@ -1128,9 +1130,9 @@ msgid "" msgstr "" "Si ``__file__`` est défini, il peut être judicieux de définir l'attribut " "``__cached__`` dont la valeur est le chemin vers une version compilée du " -"code (par exemple, le fichier bytecode). Le fichier n'a pas besoin d'exister " -"pour définir cet attribut : le chemin peut simplement pointer vers l'endroit " -"où le fichier compilé aurait été placé (voir la :pep:`3147`)." +"code (par exemple, le fichier *bytecode*). Le fichier n'a pas besoin " +"d'exister pour définir cet attribut : le chemin peut simplement pointer vers " +"l'endroit où le fichier compilé aurait été placé (voir la :pep:`3147`)." #: ../Doc/reference/import.rst:608 msgid "" @@ -1178,7 +1180,7 @@ msgid "" "data:`sys.path_hooks` (described below) are consulted when traversing a " "package's ``__path__``." msgstr "" -"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " +"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " "être vide. Les mêmes règles que pour :data:`sys.path` s'appliquent au " "``__path__`` d'un paquet et :data:`sys.path_hooks` (dont la description est " "donnée plus bas) est consulté pendant le parcours de ``__path__`` du paquet." @@ -1194,11 +1196,11 @@ msgid "" msgstr "" "Le fichier ``__init__.py`` d'un paquet peut définir ou modifier l'attribut " "``__path__`` d'un paquet, et c'est ainsi qu'étaient implémentés les paquets-" -"espaces de noms avant la :pep:`420`. Depuis l'adoption de la :pep:`420`, les " -"paquets-espaces de noms n'ont plus besoin d'avoir des fichiers ``__init__." -"py`` qui ne font que de la manipulation de ``__path__`` ; le mécanisme " -"d'importation définit automatiquement ``__path__`` correctement pour un " -"paquet-espace de noms." +"espaces de nommage avant la :pep:`420`. Depuis l'adoption de la :pep:`420`, " +"les paquets-espaces de nommage n'ont plus besoin d'avoir des fichiers " +"``__init__.py`` qui ne font que de la manipulation de ``__path__`` ; le " +"mécanisme d'importation définit automatiquement ``__path__`` correctement " +"pour un paquet-espace de nommage." #: ../Doc/reference/import.rst:640 msgid "Module reprs" @@ -1234,7 +1236,7 @@ msgstr "" #: ../Doc/reference/import.rst:653 msgid "Here are the exact rules used:" -msgstr "Les règles exactes utilisées sont :" +msgstr "Les règles exactes utilisées sont :" #: ../Doc/reference/import.rst:655 msgid "" @@ -1243,8 +1245,8 @@ msgid "" "\"has_location\" attributes are consulted." msgstr "" "Si le module possède un attribut ``__spec__``, la valeur est utilisée pour " -"générer la représentation. Les attributs \"name\", \"loader\", \"origin\" et " -"\"has_location\" sont consultés." +"générer la représentation. Les attributs *name*, *loader*, *origin* et " +"*has_location* sont consultés." #: ../Doc/reference/import.rst:659 msgid "" @@ -1293,7 +1295,7 @@ msgstr "" #: ../Doc/reference/import.rst:680 msgid "Cached bytecode invalidation" -msgstr "Invalidation de bytecode mis en cache" +msgstr "Invalidation de *bytecode* mis en cache" #: ../Doc/reference/import.rst:682 msgid "" @@ -1304,7 +1306,7 @@ msgid "" "cache file by checking the stored metadata in the cache file against at " "source's metadata." msgstr "" -"Avant que Python ne charge du bytecode en cache à partir d'un fichier ``." +"Avant que Python ne charge du *bytecode* en cache à partir d'un fichier ``." "pyc``, il vérifie si ce cache est bien à jour par rapport au fichier source " "``.py``. Python effectue cette vérification en stockant l'horodatage de la " "dernière modification de la source ainsi que sa taille dans le fichier cache " @@ -1328,7 +1330,7 @@ msgstr "" "Python gère également les fichiers caches \"avec empreintes\", qui stockent " "une empreinte (*hash* en anglais) du contenu de la source plutôt que des " "métadonnées. Il existe deux variations des fichiers ``.pyc`` avec " -"empreintes : vérifiés et non-vérifiés. Pour les fichiers ``.pyc``avec " +"empreintes : vérifiés et non-vérifiés. Pour les fichiers ``.pyc`` avec " "empreinte vérifiés, Python valide le fichier cache en calculant l'empreinte " "du fichier source et compare les empreintes. Si l'empreinte stockée dans le " "fichier cache est invalide, Python la recalcule et écrit un nouveau fichier " @@ -1343,11 +1345,11 @@ msgid "" "based invalidation of bytecode caches." msgstr "" "Ajout des fichiers ``.pyc`` avec empreinte. Auparavant, Python gérait les " -"caches de bytecode sur la base de l'horodatage." +"caches de *bytecode* sur la base de l'horodatage." #: ../Doc/reference/import.rst:706 msgid "The Path Based Finder" -msgstr "Le chercheur dans path" +msgstr "Le chercheur dans *path*" #: ../Doc/reference/import.rst:711 msgid "" @@ -1360,8 +1362,8 @@ msgstr "" "Comme indiqué précédemment, Python est livré par défaut avec plusieurs " "chercheurs dans les méta-chemins. L'un deux, appelé :term:`chercheur dans " "path ` (:class:`~importlib.machinery.PathFinder`), " -"recherche dans le :term:`chemin des imports ` qui contient une " -"liste :term:`d'entrées dans path `. Chaque entrée désigne un " +"recherche dans le :term:`chemin des importations ` qui contient " +"une liste :term:`d'entrées dans path `. Chaque entrée désigne un " "emplacement où rechercher des modules." #: ../Doc/reference/import.rst:717 @@ -1370,10 +1372,10 @@ msgid "" "it traverses the individual path entries, associating each of them with a " "path entry finder that knows how to handle that particular kind of path." msgstr "" -"Le chercheur dans path en tant que tel ne sait pas comment importer quoi que " -"ce soit. Il ne fait que parcourir chaque entrée de \"path\" et associe à " -"chacune d'elle un \"chercheur d'entrée dans path\" qui sait comment gérer le " -"type particulier de chemin considéré." +"Le chercheur dans *path* en tant que tel ne sait pas comment importer quoi " +"que ce soit. Il ne fait que parcourir chaque entrée de *path* et associe à " +"chacune d'elle un \"chercheur d'entrée dans *path*\" qui sait comment gérer " +"le type particulier de chemin considéré." #: ../Doc/reference/import.rst:721 msgid "" @@ -1385,14 +1387,14 @@ msgid "" "also handle loading all of these file types (other than shared libraries) " "from zipfiles." msgstr "" -"L'ensemble par défaut des \"chercheurs d'entrée dans path\" implémente toute " -"la sémantique pour trouver des modules dans le système de fichiers, gérer " -"des fichiers spéciaux tels que le code source Python (fichiers ``.py``), le " -"bytecode Python (fichiers ``.pyc``) et les bibliothèques partagées (par " -"exemple les fichiers ``.so``). Quand le module :mod:`zipimport` de la " -"bibliothèque standard le permet, les \"chercheurs d'entrée dans path\" par " -"défaut savent aussi gérer tous ces types de fichiers (autres que les " -"bibliothèques partagées) encapsulés dans des fichiers zip." +"L'ensemble par défaut des \"chercheurs d'entrée dans *path*\" implémente " +"toute la sémantique pour trouver des modules dans le système de fichiers, " +"gérer des fichiers spéciaux tels que le code source Python (fichiers ``." +"py``), le *bytecode* Python (fichiers ``.pyc``) et les bibliothèques " +"partagées (par exemple les fichiers ``.so``). Quand le module :mod:" +"`zipimport` de la bibliothèque standard le permet, les \"chercheurs d'entrée " +"dans *path*\" par défaut savent aussi gérer tous ces types de fichiers " +"(autres que les bibliothèques partagées) encapsulés dans des fichiers zip." #: ../Doc/reference/import.rst:728 msgid "" @@ -1414,12 +1416,12 @@ msgid "" "protocol described below, which was then used to get a loader for the module " "from the web." msgstr "" -"Le chercheur dans path fournit aussi des points d'entrées (ou *hooks*) et " +"Le chercheur dans *path* fournit aussi des points d'entrées (ou *hooks*) et " "des protocoles de manière à pouvoir étendre et personnaliser les types de " "chemins dans lesquels chercher. Par exemple, si vous voulez pouvoir chercher " -"dans des URL réseau, vous pouvez écrire une fonction \"point d'entrée\" qui " +"dans des URL réseau, vous pouvez écrire une fonction « point d'entrée » qui " "implémente la sémantique HTTP pour chercher des modules sur la toile. Ce " -"point d'entrée (qui doit être un *callable*) doit renvoyer un :term:" +"point d'entrée (qui doit être un appelable) doit renvoyer un :term:" "`chercheur d'entrée dans path ` qui gère le protocole " "décrit plus bas et qui sera utilisé pour obtenir un chargeur de module sur " "la toile." @@ -1451,14 +1453,14 @@ msgid "" "removed from :data:`sys.meta_path`, none of the path entry finder semantics " "would be invoked." msgstr "" -"Au contraire, les \"chercheurs d'entrée dans path\" sont, dans un sens, un " -"détail d'implémentation du chercheur dans path et, en fait, si le chercheur " -"dans path était enlevé de :data:`sys.meta_path`, aucune des sémantiques des " -"\"chercheurs d'entrée dans path\" ne serait invoquée." +"Au contraire, les \"chercheurs d'entrée dans *path*\" sont, dans un sens, un " +"détail d'implémentation du chercheur dans *path* et, en fait, si le " +"chercheur dans *path* était enlevé de :data:`sys.meta_path`, aucune des " +"sémantiques des \"chercheurs d'entrée dans *path*\" ne serait invoquée." #: ../Doc/reference/import.rst:755 msgid "Path entry finders" -msgstr "Chercheurs d'entrée dans path" +msgstr "Chercheurs d'entrée dans *path*" #: ../Doc/reference/import.rst:763 msgid "" @@ -1486,7 +1488,7 @@ msgstr "" "MetaPathFinder.find_spec` décrit précédemment. Cependant, il autorise des " "points d'entrée (*hooks* en anglais) supplémentaires qui peuvent être " "utilisés pour personnaliser la façon dont les modules sont trouvés et " -"chargés depuis le :term:`chemin des imports `." +"chargés depuis le :term:`chemin des importations `." #: ../Doc/reference/import.rst:773 msgid "" @@ -1514,10 +1516,10 @@ msgid "" "determined by the individual :term:`path entry finders `." msgstr "" ":data:`sys.path` contient une liste de chaînes de caractères indiquant des " -"emplacements où chercher des modules ou des paquets. Elle est initialisée à " +"emplacements où chercher des modules ou des paquets. Elle est initialisée à " "partir de la variable d'environnement :data:`PYTHONPATH` et de plusieurs " "autres valeurs par défaut qui dépendent de l'installation et de " -"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " +"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " "du système de fichiers, des fichiers zip et possiblement d'autres \"endroits" "\" (lisez le module :mod:`site`) tels que des URL ou des requêtes dans des " "bases de données où Python doit rechercher des modules. :data:`sys.path` ne " @@ -1538,12 +1540,12 @@ msgid "" msgstr "" "Le :term:`chercheur dans path ` est un :term:`chercheur " "dans les méta-chemins `, donc le mécanisme d'importation " -"commence la recherche dans le :term:`chemin des imports ` par " -"un appel à la méthode :meth:`~importlib.machinery.PathFinder.find_spec` du " -"chercheur dans path, comme décrit précédemment. Quand l'argument ``path`` " +"commence la recherche dans le :term:`chemin des importations ` " +"par un appel à la méthode :meth:`~importlib.machinery.PathFinder.find_spec` " +"du chercheur dans *path*, comme décrit précédemment. Quand l'argument *path* " "de :meth:`~importlib.machinery.PathFinder.find_spec` est donné, c'est une " -"liste de chemins à parcourir - typiquement un attribut ``__path__`` pour une " -"importation à l'intérieur d'un paquet. Si l'argument ``path`` est ``None``, " +"liste de chemins à parcourir, typiquement un attribut ``__path__`` pour une " +"importation à l'intérieur d'un paquet. Si l'argument *path* est ``None``, " "cela indique une importation de niveau le plus haut et :data:`sys.path` est " "utilisée." @@ -1562,20 +1564,20 @@ msgid "" "cache entries from :data:`sys.path_importer_cache` forcing the path based " "finder to perform the path entry search again [#fnpic]_." msgstr "" -"Le chercheur dans path itère sur chaque entrée dans le \"path\" et, pour " +"Le chercheur dans *path* itère sur chaque entrée dans le *path* et, pour " "chacune, regarde s'il trouve un :term:`chercheur d'entrée dans path ` (:class:`~importlib.abc.PathEntryFinder`) approprié à cette " "entrée. Comme cette opération est coûteuse (elle peut faire appel à " -"plusieurs `stat()` pour cela), le chercheur dans path maintient un cache de " -"correspondance entre les entrées et les \"chercheurs d'entrée dans path\". " -"Ce cache est géré par :data:`sys.path_importer_cache` (en dépit de son nom, " -"ce cache stocke les objets chercheurs plutôt que les simples objets :term:" -"`importateurs `). Ainsi, la recherche coûteuse pour une :term:" +"plusieurs `stat()` pour cela), le chercheur dans *path* maintient un cache " +"de correspondance entre les entrées et les \"chercheurs d'entrée dans *path*" +"\". Ce cache est géré par :data:`sys.path_importer_cache` (en dépit de son " +"nom, ce cache stocke les objets chercheurs plutôt que les simples objets :" +"term:`importateurs `). Ainsi, la recherche coûteuse pour une :term:" "`entrée de path ` spécifique n'a besoin d'être effectuée qu'une " "seule fois par le :term:`chercheur d'entrée dans path `. " "Le code de l'utilisateur peut très bien supprimer les entrées du cache :data:" -"`sys.path_importer_cache`, forçant ainsi le chercheur dans path à effectuer " -"une nouvelle fois la recherche sur chaque entrée [#fnpic]_." +"`sys.path_importer_cache`, forçant ainsi le chercheur dans *path* à " +"effectuer une nouvelle fois la recherche sur chaque entrée [#fnpic]_." #: ../Doc/reference/import.rst:811 msgid "" @@ -1592,19 +1594,19 @@ msgid "" "file system encoding, UTF-8, or something else), and if the hook cannot " "decode the argument, it should raise :exc:`ImportError`." msgstr "" -"Si une entrée n'est pas présente dans le cache, le chercheur dans path itère " -"sur chaque *callable* de :data:`sys.path_hooks`. Chaque :term:`point " +"Si une entrée n'est pas présente dans le cache, le chercheur dans *path* " +"itère sur chaque *callable* de :data:`sys.path_hooks`. Chaque :term:`point " "d'entrée sur une entrée de path ` de cette liste est appelé " "avec un unique argument, l'entrée dans laquelle chercher. L'appelable peut " "soit renvoyer un :term:`chercheur d'entrée dans path ` " "apte à prendre en charge l'entrée ou lever une :exc:`ImportError`. Une :exc:" -"`ImportError` est utilisée par le chercheur dans path pour signaler que le " +"`ImportError` est utilisée par le chercheur dans *path* pour signaler que le " "point d'entrée n'a pas trouvé de :term:`chercheur d'entrée dans path ` pour cette :term:`entrée `. L'exception est " -"ignorée et l'itération sur le :term:`chemin des imports ` se " -"poursuit. Le point d'entrée doit attendre qu'on lui passe soit une chaîne de " -"caractères soit une chaîne d'octets ; l'encodage des chaînes d'octets est à " -"la main du point d'entrée (par exemple, ce peut être l'encodage du système " +"ignorée et l'itération sur le :term:`chemin des importations ` " +"se poursuit. Le point d'entrée doit attendre qu'on lui passe soit une chaîne " +"de caractères soit une chaîne d'octets ; l'encodage des chaînes d'octets est " +"à la main du point d'entrée (par exemple, ce peut être l'encodage du système " "de fichiers, de l'UTF-8 ou autre chose) et, si le point d'entrée n'arrive " "pas à décoder l'argument, il doit lever une :exc:`ImportError`." @@ -1620,10 +1622,10 @@ msgstr "" "Si l'itération sur :data:`sys.path_hooks` se termine sans qu'aucun :term:" "`chercheur d'entrée dans path ` ne soit renvoyé, alors la " "méthode :meth:`~importlib.machinery.PathFinder.find_spec` du chercheur dans " -"path stocke ``None`` dans le :data:`sys.path_importer_cache` (pour indiquer " -"qu'il n'y a pas de chercheur pour cette entrée) et renvoie ``None``, " -"indiquant que ce :term:`chercheur dans les méta-chemins ` " -"n'a pas trouvé le module." +"*path* stocke ``None`` dans le :data:`sys.path_importer_cache` (pour " +"indiquer qu'il n'y a pas de chercheur pour cette entrée) et renvoie " +"``None``, indiquant que ce :term:`chercheur dans les méta-chemins ` n'a pas trouvé le module." #: ../Doc/reference/import.rst:832 msgid "" @@ -1649,8 +1651,8 @@ msgid "" "machinery.PathFinder.find_spec` will be the actual current working directory " "and not the empty string." msgstr "" -"Le répertoire de travail courant -- noté sous la forme d'une chaîne de " -"caractères vide -- est géré d'une manière légèrement différente des autres " +"Le répertoire de travail courant — noté sous la forme d'une chaîne de " +"caractères vide — est géré d'une manière légèrement différente des autres " "entrées de :data:`sys.path`. D'abord, si le répertoire de travail courant " "s'avère ne pas exister, aucune valeur n'est stockée dans :data:`sys." "path_importer_cache`. Ensuite, la valeur pour le répertoire de travail " @@ -1661,7 +1663,7 @@ msgstr "" #: ../Doc/reference/import.rst:847 msgid "Path entry finder protocol" -msgstr "Protocole des chercheurs d'entrée dans path" +msgstr "Protocole des chercheurs d'entrée dans *path*" #: ../Doc/reference/import.rst:849 msgid "" @@ -1670,8 +1672,8 @@ msgid "" "the :meth:`~importlib.abc.PathEntryFinder.find_spec` method." msgstr "" "Afin de gérer les importations de modules, l'initialisation des paquets et " -"d'être capables de contribuer aux portions des paquets-espaces de noms, les " -"chercheurs d'entrée dans path doivent implémenter la méthode :meth:" +"d'être capables de contribuer aux portions des paquets-espaces de nommage, " +"les chercheurs d'entrée dans *path* doivent implémenter la méthode :meth:" "`~importlib.abc.PathEntryFinder.find_spec`." #: ../Doc/reference/import.rst:853 @@ -1694,9 +1696,9 @@ msgid "" "``None`` and \"submodule_search_locations\" to a list containing the portion." msgstr "" "Pour indiquer au mécanisme d'importation que le spécificateur représente " -"une :term:`portion ` d'un espace de noms, le chercheur d'entrée " -"dans path définit le chargeur du spécificateur à ``None`` et l'attribut " -"\"submodule_search_locations\" à une liste contenant la portion." +"une :term:`portion ` d'un espace de nommage, le chercheur d'entrée " +"dans *path* définit le chargeur du spécificateur à ``None`` et l'attribut " +"*submodule_search_locations* à une liste contenant la portion." #: ../Doc/reference/import.rst:863 msgid "" @@ -1717,11 +1719,11 @@ msgid "" "backward compatibility. However, if ``find_spec()`` is implemented on the " "path entry finder, the legacy methods are ignored." msgstr "" -"Les vieux chercheurs d'entrée dans path peuvent implémenter une des deux " -"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont " -"toujours prises en compte dans le cadre de la compatibilité descendante. " -"Cependant, si ``find_spec()`` est implémentée par le chercheur d'entrée dans " -"path, les méthodes historiques sont ignorées." +"Les vieux chercheurs d'entrée dans *path* peuvent implémenter une des deux " +"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont toujours " +"prises en compte dans le cadre de la compatibilité descendante. Cependant, " +"si ``find_spec()`` est implémentée par le chercheur d'entrée dans *path*, " +"les méthodes historiques sont ignorées." #: ../Doc/reference/import.rst:874 msgid "" @@ -1740,15 +1742,15 @@ msgstr "" "La méthode :meth:`~importlib.abc.PathEntryFinder.find_loader` prend un " "argument, le nom complètement qualifié du module en cours d'importation. " "``find_loader()`` renvoie un couple dont le premier élément est le chargeur " -"et le second est une :term:`portion ` d'espace de noms. Quand le " +"et le second est une :term:`portion ` d'espace de nommage. Quand le " "premier élément (c'est-à-dire le chargeur) est ``None``, cela signifie que, " -"bien que le chercheur d'entrée dans path n'a pas de chargeur pour le module " -"considéré, il sait que cette entrée contribue à une portion d'espace de noms " -"pour le module considéré. C'est presque toujours le cas quand vous demandez " -"à Python d'importer un paquet-espace de noms qui n'est pas présent " -"physiquement sur le système de fichiers. Quand un chercheur d'entrée dans " -"path renvoie ``None`` pour le chargeur, la valeur du second élément du " -"couple renvoyé doit être une séquence, éventuellement vide." +"bien que le chercheur d'entrée dans *path* n'a pas de chargeur pour le " +"module considéré, il sait que cette entrée contribue à une portion d'espace " +"de nommage pour le module considéré. C'est presque toujours le cas quand " +"vous demandez à Python d'importer un paquet-espace de nommage qui n'est pas " +"présent physiquement sur le système de fichiers. Quand un chercheur d'entrée " +"dans *path* renvoie ``None`` pour le chargeur, la valeur du second élément " +"du couple renvoyé doit être une séquence, éventuellement vide." #: ../Doc/reference/import.rst:886 msgid "" @@ -1758,7 +1760,7 @@ msgid "" msgstr "" "Si ``find_loader()`` renvoie une valeur de chargeur qui n'est pas ``None``, " "la portion est ignorée et le chargeur est renvoyé par le chercheur dans " -"path, mettant un terme à la recherche dans les chemins." +"*path*, mettant un terme à la recherche dans les chemins." #: ../Doc/reference/import.rst:890 msgid "" @@ -1770,11 +1772,11 @@ msgid "" "initial call to the path hook)." msgstr "" "À fin de compatibilité descendante avec d'autres implémentations du " -"protocole d'importation, beaucoup de chercheurs d'entrée dans path gèrent " +"protocole d'importation, beaucoup de chercheurs d'entrée dans *path* gèrent " "aussi la méthode traditionnelle ``find_module()`` que l'on trouve dans les " "chercheurs dans les méta-chemins. Cependant, les méthodes ``find_module()`` " -"des chercheurs d'entrée dans path ne sont jamais appelées avec un argument " -"``path`` (il est convenu qu'elles enregistrent les informations relatives au " +"des chercheurs d'entrée dans *path* ne sont jamais appelées avec un argument " +"*path* (il est convenu qu'elles enregistrent les informations relatives au " "chemin approprié au moment de leur appel initial au point d'entrée)." #: ../Doc/reference/import.rst:897 @@ -1785,11 +1787,11 @@ msgid "" "entry finder, the import system will always call ``find_loader()`` in " "preference to ``find_module()``." msgstr "" -"La méthode ``find_module()`` des chercheurs d'entrée dans path est obsolète " -"car elle n'autorise pas le chercheur d'entrée dans path à contribuer aux " -"portions d'espaces de noms des paquets-espaces de noms. Si à la fois " -"``find_loader()`` et ``find_module()`` sont définies pour un chercheur " -"d'entrée dans path, le système d'importation utilise toujours " +"La méthode ``find_module()`` des chercheurs d'entrée dans *path* est " +"obsolète car elle n'autorise pas le chercheur d'entrée dans *path* à " +"contribuer aux portions d'espaces de nommage des paquets-espaces de nommage. " +"Si à la fois ``find_loader()`` et ``find_module()`` sont définies pour un " +"chercheur d'entrée dans *path*, le système d'importation utilise toujours " "``find_loader()`` plutôt que ``find_module()``." #: ../Doc/reference/import.rst:905 @@ -1837,11 +1839,54 @@ msgstr "" "indique que la recherche dans le méta-chemin peut continuer alors que la " "levée de l'exception termine immédiatement la recherche." -#: ../Doc/reference/import.rst:926 +#: ../Doc/reference/import.rst:927 +msgid "Package Relative Imports" +msgstr "Importations relatives au paquet" + +#: ../Doc/reference/import.rst:929 +msgid "" +"Relative imports use leading dots. A single leading dot indicates a relative " +"import, starting with the current package. Two or more leading dots indicate " +"a relative import to the parent(s) of the current package, one level per dot " +"after the first. For example, given the following package layout::" +msgstr "" +"Les importations relatives commencent par une suite de points. Un seul point " +"avant indique une importation relative, démarrant avec le paquet actuel. " +"Deux points ou plus avant indiquent une importation relative au parent du " +"paquet actuel, un niveau par point avant le premier. Par exemple, en ayant " +"le contenu suivant ::" + +#: ../Doc/reference/import.rst:945 +msgid "" +"In either ``subpackage1/moduleX.py`` or ``subpackage1/__init__.py``, the " +"following are valid relative imports::" +msgstr "" +"Dans ``subpackage1/moduleX.py`` ou ``subpackage1/__init__.py``, les " +"importations suivantes sont des importations relatives valides ::" + +#: ../Doc/reference/import.rst:955 +msgid "" +"Absolute imports may use either the ``import <>`` or ``from <> import <>`` " +"syntax, but relative imports may only use the second form; the reason for " +"this is that::" +msgstr "" +"Les importations absolues peuvent utiliser soit la syntaxe ``import <>``, " +"soit ``from <> import <>``, mais les importations relatives doivent " +"seulement utiliser la deuxième forme, la raison étant ::" + +#: ../Doc/reference/import.rst:961 +msgid "" +"should expose ``XXX.YYY.ZZZ`` as a usable expression, but .moduleY is not a " +"valid expression." +msgstr "" +"devrait exposer ``XXX.YYY.ZZZ`` comme une expression utilisable, mais ``." +"moduleY`` n’est pas une expression valide." + +#: ../Doc/reference/import.rst:966 msgid "Special considerations for __main__" -msgstr "Cas particulier de __main__" +msgstr "Cas particulier de ``__main__``" -#: ../Doc/reference/import.rst:928 +#: ../Doc/reference/import.rst:968 msgid "" "The :mod:`__main__` module is a special case relative to Python's import " "system. As noted :ref:`elsewhere `, the ``__main__`` module is " @@ -1859,11 +1904,11 @@ msgstr "" "natif. Effectivement, la manière dont est initialisé ``__main__`` dépend des " "drapeaux et options avec lesquels l'interpréteur est lancé." -#: ../Doc/reference/import.rst:939 +#: ../Doc/reference/import.rst:979 msgid "__main__.__spec__" -msgstr "__main__.__spec__" +msgstr "``__main__.__spec__``" -#: ../Doc/reference/import.rst:941 +#: ../Doc/reference/import.rst:981 msgid "" "Depending on how :mod:`__main__` is initialized, ``__main__.__spec__`` gets " "set appropriately or to ``None``." @@ -1871,7 +1916,7 @@ msgstr "" "En fonction de la manière dont :mod:`__main__` est initialisé, ``__main__." "__spec__`` est défini de manière conforme ou mis à ``None``." -#: ../Doc/reference/import.rst:944 +#: ../Doc/reference/import.rst:984 msgid "" "When Python is started with the :option:`-m` option, ``__spec__`` is set to " "the module spec of the corresponding module or package. ``__spec__`` is also " @@ -1884,7 +1929,7 @@ msgstr "" "que partie de l'exécution d'un répertoire, d'un fichier zip ou d'une entrée " "de :data:`sys.path`." -#: ../Doc/reference/import.rst:949 +#: ../Doc/reference/import.rst:989 msgid "" "In :ref:`the remaining cases ` ``__main__." "__spec__`` is set to ``None``, as the code used to populate the :mod:" @@ -1894,23 +1939,23 @@ msgstr "" "__spec__`` est mis à ``None``, car le code qui peuple :mod:`__main__` ne " "trouve pas de correspondance directe avec un module que l'on importe :" -#: ../Doc/reference/import.rst:953 +#: ../Doc/reference/import.rst:993 msgid "interactive prompt" msgstr "invite de commande interactive" -#: ../Doc/reference/import.rst:954 -msgid "-c switch" -msgstr "option -c de la ligne de commande" +#: ../Doc/reference/import.rst:994 +msgid ":option:`-c` option" +msgstr "l'option :option:`-c`" -#: ../Doc/reference/import.rst:955 +#: ../Doc/reference/import.rst:995 msgid "running from stdin" msgstr "lecture depuis l'entrée standard" -#: ../Doc/reference/import.rst:956 +#: ../Doc/reference/import.rst:996 msgid "running directly from a source or bytecode file" -msgstr "lecture depuis un fichier de code source ou de bytecode" +msgstr "lecture depuis un fichier de code source ou de *bytecode*" -#: ../Doc/reference/import.rst:958 +#: ../Doc/reference/import.rst:998 msgid "" "Note that ``__main__.__spec__`` is always ``None`` in the last case, *even " "if* the file could technically be imported directly as a module instead. Use " @@ -1922,7 +1967,7 @@ msgstr "" "que module. Utilisez l'option :option:`-m` si vous souhaitez disposer de " "métadonnées valides du module dans :mod:`__main__`." -#: ../Doc/reference/import.rst:963 +#: ../Doc/reference/import.rst:1003 msgid "" "Note also that even when ``__main__`` corresponds with an importable module " "and ``__main__.__spec__`` is set accordingly, they're still considered " @@ -1934,47 +1979,57 @@ msgstr "" "que ``__main__.__spec__`` est défini en conséquence, ils seront toujours " "considérés comme des modules *distincts*. Cela est dû au fait que le bloc " "encadré par ``if __name__ == \"__main__\":`` ne s'exécute que quand le " -"module est utilisé pour peupler l'espace de noms de ``__main__``, et pas " +"module est utilisé pour peupler l'espace de nommage de ``__main__``, et pas " "durant une importation normale." -#: ../Doc/reference/import.rst:971 +#: ../Doc/reference/import.rst:1011 msgid "Open issues" -msgstr "" +msgstr "Idées d'amélioration" -#: ../Doc/reference/import.rst:973 +#: ../Doc/reference/import.rst:1013 msgid "XXX It would be really nice to have a diagram." msgstr "XXX Ce serait vraiment bien de disposer d'un diagramme." -#: ../Doc/reference/import.rst:975 +#: ../Doc/reference/import.rst:1015 msgid "" "XXX * (import_machinery.rst) how about a section devoted just to the " "attributes of modules and packages, perhaps expanding upon or supplanting " "the related entries in the data model reference page?" msgstr "" +"XXX * (``import_machinery.rst``) Pourquoi pas une section dédiée aux " +"attributs des modules et paquets, développant ou remplaçant les entrées " +"associées dans la page de référence du modèle de données ?" -#: ../Doc/reference/import.rst:979 +#: ../Doc/reference/import.rst:1019 msgid "" "XXX runpy, pkgutil, et al in the library manual should all get \"See Also\" " "links at the top pointing to the new import system section." msgstr "" +"XXX *runpy*, *pkgutil* et autres dans le manuel de la bibliothèque devraient " +"comporter un lien \"Lisez aussi\" en début de page pointant vers la section " +"du nouveau mécanisme d'import." -#: ../Doc/reference/import.rst:982 +#: ../Doc/reference/import.rst:1022 msgid "" "XXX Add more explanation regarding the different ways in which ``__main__`` " "is initialized?" msgstr "" +"XXX Ajouter des explications sur les différentes manières dont ``__main__`` " +"est initialisé ?" -#: ../Doc/reference/import.rst:985 +#: ../Doc/reference/import.rst:1025 msgid "" "XXX Add more info on ``__main__`` quirks/pitfalls (i.e. copy from :pep:" "`395`)." msgstr "" +"XXX Ajouter des informations sur les pièges et bizarreries de ``__main__`` " +"(c-à-d des extraits de la :pep:`395`)." -#: ../Doc/reference/import.rst:990 +#: ../Doc/reference/import.rst:1030 msgid "References" msgstr "Références" -#: ../Doc/reference/import.rst:992 +#: ../Doc/reference/import.rst:1032 msgid "" "The import machinery has evolved considerably since Python's early days. " "The original `specification for packages `_ originale est toujours disponible, bien que quelques détails " "ont changé depuis l'écriture de ce document." -#: ../Doc/reference/import.rst:997 +#: ../Doc/reference/import.rst:1037 msgid "" "The original specification for :data:`sys.meta_path` was :pep:`302`, with " "subsequent extension in :pep:`420`." @@ -1994,18 +2049,18 @@ msgstr "" "La spécification originale de :data:`sys.meta_path` se trouve dans la :pep:" "`302`. La :pep:`420` contient des extensions significatives." -#: ../Doc/reference/import.rst:1000 +#: ../Doc/reference/import.rst:1040 msgid "" ":pep:`420` introduced :term:`namespace packages ` for " "Python 3.3. :pep:`420` also introduced the :meth:`find_loader` protocol as " "an alternative to :meth:`find_module`." msgstr "" -"La :pep:`420` a introduit les :term:`paquets-espaces de noms ` pour Python 3.3. :pep:`420` a aussi introduit le protocole :meth:" -"`recherche du chargeur ` comme une alternative à :meth:" +"La :pep:`420` a introduit les :term:`paquets-espaces de nommage ` pour Python 3.3. La :pep:`420` a aussi introduit le protocole :" +"meth:`recherche du chargeur ` comme une alternative à :meth:" "`find_module`." -#: ../Doc/reference/import.rst:1004 +#: ../Doc/reference/import.rst:1044 msgid "" ":pep:`366` describes the addition of the ``__package__`` attribute for " "explicit relative imports in main modules." @@ -2013,7 +2068,7 @@ msgstr "" "La :pep:`366` décrit l'ajout de l'attribut ``__package__`` pour les " "importations relatives explicites dans les modules principaux." -#: ../Doc/reference/import.rst:1007 +#: ../Doc/reference/import.rst:1047 msgid "" ":pep:`328` introduced absolute and explicit relative imports and initially " "proposed ``__name__`` for semantics :pep:`366` would eventually specify for " @@ -2023,11 +2078,11 @@ msgstr "" "relatives explicites. Elle a aussi proposé ``__name__`` pour la sémantique " "que la :pep:`366` attribuait à ``__package__``." -#: ../Doc/reference/import.rst:1011 +#: ../Doc/reference/import.rst:1051 msgid ":pep:`338` defines executing modules as scripts." msgstr ":pep:`338` définit l'exécution de modules en tant que scripts." -#: ../Doc/reference/import.rst:1013 +#: ../Doc/reference/import.rst:1053 msgid "" ":pep:`451` adds the encapsulation of per-module import state in spec " "objects. It also off-loads most of the boilerplate responsibilities of " @@ -2041,15 +2096,15 @@ msgstr "" "permettent de supprimer plusieurs API dans le système d'importation et " "d'ajouter de nouvelles méthodes aux chercheurs et chargeurs." -#: ../Doc/reference/import.rst:1020 +#: ../Doc/reference/import.rst:1060 msgid "Footnotes" msgstr "Notes" -#: ../Doc/reference/import.rst:1021 +#: ../Doc/reference/import.rst:1061 msgid "See :class:`types.ModuleType`." msgstr "Voir :class:`types.ModuleType`." -#: ../Doc/reference/import.rst:1023 +#: ../Doc/reference/import.rst:1063 msgid "" "The importlib implementation avoids using the return value directly. " "Instead, it gets the module object by looking the module name up in :data:" @@ -2057,14 +2112,14 @@ msgid "" "replace itself in :data:`sys.modules`. This is implementation-specific " "behavior that is not guaranteed to work in other Python implementations." msgstr "" -"L'implémentation de importlib évite d'utiliser directement la valeur de " +"L'implémentation de *importlib* évite d'utiliser directement la valeur de " "retour. À la place, elle récupère l'objet module en recherchant le nom du " "module dans :data:`sys.modules`. L'effet indirect est que le module importé " "peut remplacer le module de même nom dans :data:`sys.modules`. C'est un " "comportement spécifique à l'implémentation dont le résultat n'est pas " "garanti pour les autres implémentations de Python." -#: ../Doc/reference/import.rst:1030 +#: ../Doc/reference/import.rst:1070 msgid "" "In legacy code, it is possible to find instances of :class:`imp." "NullImporter` in the :data:`sys.path_importer_cache`. It is recommended " @@ -2075,3 +2130,6 @@ msgstr "" "`imp.NullImporter` dans :data:`sys.path_importer_cache`. Il est recommandé " "de modifier ce code afin d'utiliser ``None`` à la place. Lisez :ref:" "`portingpythoncode` pour plus de détails." + +#~ msgid "-c switch" +#~ msgstr "option *-c* de la ligne de commande" diff --git a/reference/index.po b/reference/index.po index e46bb3d43..3f6b27e3e 100644 --- a/reference/index.po +++ b/reference/index.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-02-15 00:52+0100\n" +"PO-Revision-Date: 2018-10-05 08:54+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -29,8 +29,8 @@ msgid "" "picture of how to write a Python extension module, and the :ref:`c-api-" "index` describes the interfaces available to C/C++ programmers in detail." msgstr "" -"Cette documentation décrit la syntaxe et la \"sémantique interne\" du " -"langage. Elle peut être laconique, mais essaye d'être exhautive et exacte. " +"Cette documentation décrit la syntaxe et la « sémantique interne » du " +"langage. Elle peut être laconique, mais essaye d'être exhaustive et exacte. " "La sémantique des objets natifs secondaires, des fonctions, et des modules " "est documentée dans :ref:`library-index`. Pour une présentation informelle " "du langage, voyez plutôt :ref:`tutorial-index`. Pour les développeurs C ou C+" diff --git a/reference/introduction.po b/reference/introduction.po index 36647af32..dc0191232 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-05-02 00:10+0200\n" -"PO-Revision-Date: 2018-05-01 17:29+0200\n" +"PO-Revision-Date: 2018-10-07 19:09+0200\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.0.2\n" +"X-Generator: Poedit 2.1.1\n" #: ../Doc/reference/introduction.rst:6 msgid "Introduction" @@ -42,7 +42,7 @@ msgid "" "volunteer your time --- or invent a cloning machine :-)." msgstr "" "Nous essayons d'être le plus précis possible et nous utilisons le français " -"(NdT : ou l’anglais pour les parties qui ne sont pas encore traduites) " +"(NdT : ou l’anglais pour les parties qui ne sont pas encore traduites) " "plutôt que des spécifications formelles, sauf pour la syntaxe et l’analyse " "lexicale. Nous espérons ainsi rendre ce document plus compréhensible pour un " "grand nombre de lecteurs, même si cela laisse un peu de place à l’ambiguïté. " @@ -51,9 +51,9 @@ msgstr "" "hypothèses et, finalement, vous aurez certainement implémenté un langage " "sensiblement différent. D’un autre côté, si vous utilisez Python et que vous " "vous demandez quelles règles s’appliquent pour telle partie du langage, vous " -"devriez trouver une réponse satisfaisante ici. Si vous souhaitez voir une " +"devriez trouver une réponse satisfaisante ici. Si vous souhaitez voir une " "définition plus formelle du langage, nous acceptons toutes les bonnes " -"volontés (ou bien inventez une machine pour nous cloner :-)." +"volontés (ou bien inventez une machine pour nous cloner ☺)." #: ../Doc/reference/introduction.rst:23 msgid "" @@ -121,7 +121,7 @@ msgstr "" #: ../Doc/reference/introduction.rst:57 msgid "Jython" -msgstr "" +msgstr "Jython" #: ../Doc/reference/introduction.rst:54 msgid "" @@ -140,7 +140,7 @@ msgstr "" #: ../Doc/reference/introduction.rst:63 msgid "Python for .NET" -msgstr "" +msgstr "Python pour .NET" #: ../Doc/reference/introduction.rst:60 msgid "" @@ -156,7 +156,7 @@ msgstr "" #: ../Doc/reference/introduction.rst:69 msgid "IronPython" -msgstr "" +msgstr "IronPython" #: ../Doc/reference/introduction.rst:66 msgid "" @@ -173,7 +173,7 @@ msgstr "" #: ../Doc/reference/introduction.rst:77 msgid "PyPy" -msgstr "" +msgstr "PyPy" #: ../Doc/reference/introduction.rst:72 msgid "" @@ -229,8 +229,8 @@ msgid "" "and grammar rules in this document.)" msgstr "" "La première ligne indique qu'un ``name`` est un ``lc_letter`` suivi d'une " -"suite de zéro ou plus ``lc_letter``\\s ou underscores. Un ``lc_letter`` est, " -"à son tour, l'un des caractères ``'a'`` à ``'z'`` (cette règle est " +"suite de zéro ou plus ``lc_letter``\\s ou tiret bas. Un ``lc_letter`` est, à " +"son tour, l'un des caractères ``'a'`` à ``'z'`` (cette règle est " "effectivement respectée pour les noms définis dans les règles lexicales et " "grammaticales de ce document)." @@ -273,11 +273,11 @@ msgid "" "'control character' if needed." msgstr "" "Dans les définitions lexicales (comme dans l'exemple ci-dessus), deux autres " -"conventions sont utilisées : deux caractères littéraux séparés par des " +"conventions sont utilisées : deux caractères littéraux séparés par des " "points de suspension signifient le choix d'un seul caractère dans la plage " "donnée (en incluant les bornes) de caractères ASCII. Une phrase entre les " "signes inférieur et supérieur (``<...>``) donne une description informelle " -"du symbole défini ; par exemple, pour décrire la notion de \"caractère de " +"du symbole défini ; par exemple, pour décrire la notion de \"caractère de " "contrôle\" si nécessaire." #: ../Doc/reference/introduction.rst:126 @@ -291,9 +291,9 @@ msgid "" "definitions." msgstr "" "Même si la notation utilisée est presque la même, il existe une grande " -"différence entre la signification des définitions lexicales et syntaxiques : " +"différence entre la signification des définitions lexicales et syntaxiques : " "une définition lexicale opère sur les caractères individuels de l'entrée, " "tandis qu'une définition syntaxique opère sur le flux de lexèmes générés par " "l'analyse lexicale. Toutes les notations sous la forme BNF dans le chapitre " -"suivant (« Analyse lexicale ») sont des définitions lexicales ; les " +"suivant (« Analyse lexicale ») sont des définitions lexicales ; les " "notations dans les chapitres suivants sont des définitions syntaxiques." diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index ba9eb047b..b61534bb3 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -5,12 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-03 20:49+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:51+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/reference/lexical_analysis.rst:6 msgid "Lexical analysis" @@ -34,7 +37,7 @@ msgid "" "`3120` for details. If the source file cannot be decoded, a :exc:" "`SyntaxError` is raised." msgstr "" -"Python lit le texte du programme comme des suites de caractères Unicode ; " +"Python lit le texte du programme comme des suites de caractères Unicode ; " "l'encodage du fichier source peut être spécifié par une déclaration " "d'encodage et vaut par défaut UTF-8, voir la :pep:`3120` pour les détails. " "Si le fichier source ne peut pas être décodé, une exception :exc:" @@ -84,7 +87,7 @@ msgstr "" "Une ligne physique est une suite de caractères terminée par une séquence de " "fin de ligne. Dans les fichiers sources et les chaînes de caractères, " "n'importe quelle séquence de fin de ligne des plateformes standards peut " -"être utilisée ; Unix utilise le caractère ASCII LF (pour *linefeed*, saut de " +"être utilisée ; Unix utilise le caractère ASCII LF (pour *linefeed*, saut de " "ligne en français), Windows utilise la séquence CR LF (*carriage return* " "suivi de *linefeed*) et Macintosh utilisait le caractère ASCII CR. Toutes " "ces séquences peuvent être utilisées, quelle que soit la plateforme. La fin " @@ -104,12 +107,12 @@ msgstr "" msgid "Comments" msgstr "Commentaires" -#: ../Doc/reference/lexical_analysis.rst:69 +#: ../Doc/reference/lexical_analysis.rst:70 msgid "" "A comment starts with a hash character (``#``) that is not part of a string " "literal, and ends at the end of the physical line. A comment signifies the " "end of the logical line unless the implicit line joining rules are invoked. " -"Comments are ignored by the syntax; they are not tokens." +"Comments are ignored by the syntax." msgstr "" "Un commentaire commence par le caractère croisillon (``#``, *hash* en " "anglais et qui ressemble au symbole musical dièse, c'est pourquoi il est " @@ -119,11 +122,11 @@ msgstr "" "continuation de ligne implicite ne s'applique. Les commentaires sont ignorés " "au niveau syntaxique, ce ne sont pas des lexèmes." -#: ../Doc/reference/lexical_analysis.rst:78 +#: ../Doc/reference/lexical_analysis.rst:79 msgid "Encoding declarations" msgstr "Déclaration d'encodage" -#: ../Doc/reference/lexical_analysis.rst:82 +#: ../Doc/reference/lexical_analysis.rst:84 msgid "" "If a comment in the first or second line of the Python script matches the " "regular expression ``coding[=:]\\s*([-\\w.]+)``, this comment is processed " @@ -134,21 +137,21 @@ msgid "" msgstr "" "Si un commentaire placé sur la première ou deuxième ligne du script Python " "correspond à l'expression rationnelle ``coding[=:]\\s*([-\\w.]+)``, ce " -"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " +"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " "de cette expression désigne l'encodage du fichier source. Cette déclaration " "d'encodage doit être seule sur sa ligne et, si elle est sur la deuxième " "ligne, la première ligne doit aussi être une ligne composée uniquement d'un " -"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" +"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" -#: ../Doc/reference/lexical_analysis.rst:91 +#: ../Doc/reference/lexical_analysis.rst:93 msgid "which is recognized also by GNU Emacs, and ::" -msgstr "qui est reconnue aussi par GNU Emacs et ::" +msgstr "qui est reconnue aussi par GNU Emacs et ::" -#: ../Doc/reference/lexical_analysis.rst:95 +#: ../Doc/reference/lexical_analysis.rst:97 msgid "which is recognized by Bram Moolenaar's VIM." msgstr "qui est reconnue par VIM de Bram Moolenaar." -#: ../Doc/reference/lexical_analysis.rst:97 +#: ../Doc/reference/lexical_analysis.rst:99 msgid "" "If no encoding declaration is found, the default encoding is UTF-8. In " "addition, if the first bytes of the file are the UTF-8 byte-order mark " @@ -162,7 +165,7 @@ msgstr "" "UTF-8 (cette convention est reconnue, entre autres, par :program:`notepad` " "de Microsoft)." -#: ../Doc/reference/lexical_analysis.rst:102 +#: ../Doc/reference/lexical_analysis.rst:104 msgid "" "If an encoding is declared, the encoding name must be recognized by Python. " "The encoding is used for all lexical analysis, including string literals, " @@ -172,11 +175,11 @@ msgstr "" "Python. L'encodage est utilisé pour toute l'analyse lexicale, y compris les " "chaînes de caractères, les commentaires et les identifiants." -#: ../Doc/reference/lexical_analysis.rst:112 +#: ../Doc/reference/lexical_analysis.rst:114 msgid "Explicit line joining" msgstr "Continuation de ligne explicite" -#: ../Doc/reference/lexical_analysis.rst:116 +#: ../Doc/reference/lexical_analysis.rst:118 msgid "" "Two or more physical lines may be joined into logical lines using backslash " "characters (``\\``), as follows: when a physical line ends in a backslash " @@ -192,7 +195,7 @@ msgstr "" "logique, en supprimant la barre oblique inversée et le caractère de fin de " "ligne. Par exemple ::" -#: ../Doc/reference/lexical_analysis.rst:127 +#: ../Doc/reference/lexical_analysis.rst:129 msgid "" "A line ending in a backslash cannot carry a comment. A backslash does not " "continue a comment. A backslash does not continue a token except for string " @@ -209,11 +212,11 @@ msgstr "" "n'est pas autorisée ailleurs sur la ligne, en dehors d'une chaîne de " "caractères." -#: ../Doc/reference/lexical_analysis.rst:137 +#: ../Doc/reference/lexical_analysis.rst:139 msgid "Implicit line joining" msgstr "Continuation de ligne implicite" -#: ../Doc/reference/lexical_analysis.rst:139 +#: ../Doc/reference/lexical_analysis.rst:141 msgid "" "Expressions in parentheses, square brackets or curly braces can be split " "over more than one physical line without using backslashes. For example::" @@ -222,7 +225,7 @@ msgstr "" "réparties sur plusieurs lignes sans utiliser de barre oblique inversée. Par " "exemple ::" -#: ../Doc/reference/lexical_analysis.rst:147 +#: ../Doc/reference/lexical_analysis.rst:149 msgid "" "Implicitly continued lines can carry comments. The indentation of the " "continuation lines is not important. Blank continuation lines are allowed. " @@ -238,11 +241,11 @@ msgstr "" "triples guillemets (voir ci-dessous) ; dans ce cas, elles ne peuvent pas " "avoir de commentaires." -#: ../Doc/reference/lexical_analysis.rst:157 +#: ../Doc/reference/lexical_analysis.rst:159 msgid "Blank lines" msgstr "Lignes vierges" -#: ../Doc/reference/lexical_analysis.rst:161 +#: ../Doc/reference/lexical_analysis.rst:163 msgid "" "A logical line that contains only spaces, tabs, formfeeds and possibly a " "comment, is ignored (i.e., no NEWLINE token is generated). During " @@ -260,11 +263,11 @@ msgstr "" "complètement vierge (c'est-à-dire ne contenant strictement rien, même pas " "une espace ou un commentaire) termine une instruction multi-lignes." -#: ../Doc/reference/lexical_analysis.rst:172 +#: ../Doc/reference/lexical_analysis.rst:174 msgid "Indentation" msgstr "Indentation" -#: ../Doc/reference/lexical_analysis.rst:176 +#: ../Doc/reference/lexical_analysis.rst:178 msgid "" "Leading whitespace (spaces and tabs) at the beginning of a logical line is " "used to compute the indentation level of the line, which in turn is used to " @@ -274,7 +277,7 @@ msgstr "" "connaître le niveau d’indentation de la ligne, qui est ensuite utilisé pour " "déterminer comment les instructions sont groupées." -#: ../Doc/reference/lexical_analysis.rst:180 +#: ../Doc/reference/lexical_analysis.rst:182 msgid "" "Tabs are replaced (from left to right) by one to eight spaces such that the " "total number of characters up to and including the replacement is a multiple " @@ -293,7 +296,7 @@ msgstr "" "inversées ; les espaces jusqu'à la première barre oblique inversée " "déterminent l'indentation." -#: ../Doc/reference/lexical_analysis.rst:188 +#: ../Doc/reference/lexical_analysis.rst:190 msgid "" "Indentation is rejected as inconsistent if a source file mixes tabs and " "spaces in a way that makes the meaning dependent on the worth of a tab in " @@ -304,7 +307,7 @@ msgstr "" "signification dépend du nombre d'espaces que représente une tabulation. Une " "exception :exc:`TabError` est levée dans ce cas." -#: ../Doc/reference/lexical_analysis.rst:192 +#: ../Doc/reference/lexical_analysis.rst:194 msgid "" "**Cross-platform compatibility note:** because of the nature of text editors " "on non-UNIX platforms, it is unwise to use a mixture of spaces and tabs for " @@ -317,7 +320,7 @@ msgstr "" "seul fichier source. Il convient également de noter que des plateformes " "peuvent explicitement limiter le niveau d'indentation maximal." -#: ../Doc/reference/lexical_analysis.rst:197 +#: ../Doc/reference/lexical_analysis.rst:199 msgid "" "A formfeed character may be present at the start of the line; it will be " "ignored for the indentation calculations above. Formfeed characters " @@ -329,7 +332,7 @@ msgstr "" "page se trouvant ailleurs avec les espaces en tête de ligne ont un effet " "indéfini (par exemple, ils peuvent remettre à zéro le nombre d'espaces)." -#: ../Doc/reference/lexical_analysis.rst:204 +#: ../Doc/reference/lexical_analysis.rst:206 msgid "" "The indentation levels of consecutive lines are used to generate INDENT and " "DEDENT tokens, using a stack, as follows." @@ -337,7 +340,7 @@ msgstr "" "Les niveaux d'indentation de lignes consécutives sont utilisés pour générer " "les lexèmes INDENT et DEDENT, en utilisant une pile, de cette façon :" -#: ../Doc/reference/lexical_analysis.rst:207 +#: ../Doc/reference/lexical_analysis.rst:209 msgid "" "Before the first line of the file is read, a single zero is pushed on the " "stack; this will never be popped off again. The numbers pushed on the stack " @@ -350,7 +353,7 @@ msgid "" "generated. At the end of the file, a DEDENT token is generated for each " "number remaining on the stack that is larger than zero." msgstr "" -"Avant que la première ligne du fichier ne soit lue, un \"zéro\" est posé sur " +"Avant que la première ligne du fichier ne soit lue, un « zéro » est posé sur " "la pile ; il ne sera plus jamais enlevé. Les nombres empilés sont toujours " "strictement croissants de bas en haut. Au début de chaque ligne logique, le " "niveau d'indentation de la ligne est comparé au sommet de la pile. S'ils " @@ -361,7 +364,7 @@ msgstr "" "produit. À la fin du fichier, un lexème DEDENT est produit pour chaque " "nombre supérieur à zéro restant sur la pile." -#: ../Doc/reference/lexical_analysis.rst:218 +#: ../Doc/reference/lexical_analysis.rst:220 msgid "" "Here is an example of a correctly (though confusingly) indented piece of " "Python code::" @@ -369,11 +372,11 @@ msgstr "" "Voici un exemple de code Python correctement indenté (bien que très " "confus) ::" -#: ../Doc/reference/lexical_analysis.rst:233 +#: ../Doc/reference/lexical_analysis.rst:235 msgid "The following example shows various indentation errors::" msgstr "L'exemple suivant montre plusieurs erreurs d'indentation ::" -#: ../Doc/reference/lexical_analysis.rst:243 +#: ../Doc/reference/lexical_analysis.rst:245 msgid "" "(Actually, the first three errors are detected by the parser; only the last " "error is found by the lexical analyzer --- the indentation of ``return r`` " @@ -383,11 +386,11 @@ msgstr "" "syntaxique ; seule la dernière erreur est trouvée par l'analyseur lexical " "(l'indentation de ``return r`` ne correspond à aucun niveau dans la pile)." -#: ../Doc/reference/lexical_analysis.rst:251 +#: ../Doc/reference/lexical_analysis.rst:253 msgid "Whitespace between tokens" msgstr "Espaces entre lexèmes" -#: ../Doc/reference/lexical_analysis.rst:253 +#: ../Doc/reference/lexical_analysis.rst:255 msgid "" "Except at the beginning of a logical line or in string literals, the " "whitespace characters space, tab and formfeed can be used interchangeably to " @@ -396,17 +399,17 @@ msgid "" "is one token, but a b is two tokens)." msgstr "" "Sauf au début d'une ligne logique ou dans les chaînes de caractères, les " -"caractères \"blancs\" espace, tabulation et saut de page peuvent être " +"caractères « blancs » espace, tabulation et saut de page peuvent être " "utilisés de manière interchangeable pour séparer les lexèmes. Un blanc n'est " "nécessaire entre deux lexèmes que si leur concaténation pourrait être " "interprétée comme un lexème différent (par exemple, ab est un lexème, mais a " "b comporte deux lexèmes)." -#: ../Doc/reference/lexical_analysis.rst:263 +#: ../Doc/reference/lexical_analysis.rst:265 msgid "Other tokens" msgstr "Autres lexèmes" -#: ../Doc/reference/lexical_analysis.rst:265 +#: ../Doc/reference/lexical_analysis.rst:267 msgid "" "Besides NEWLINE, INDENT and DEDENT, the following categories of tokens " "exist: *identifiers*, *keywords*, *literals*, *operators*, and *delimiters*. " @@ -422,11 +425,11 @@ msgstr "" "ambiguïté existe, le lexème correspond à la plus grande chaîne possible qui " "forme un lexème licite, en lisant de la gauche vers la droite." -#: ../Doc/reference/lexical_analysis.rst:275 +#: ../Doc/reference/lexical_analysis.rst:277 msgid "Identifiers and keywords" msgstr "Identifiants et mots-clés" -#: ../Doc/reference/lexical_analysis.rst:279 +#: ../Doc/reference/lexical_analysis.rst:281 msgid "" "Identifiers (also referred to as *names*) are described by the following " "lexical definitions." @@ -434,29 +437,29 @@ msgstr "" "Les identifiants (aussi appelés *noms*) sont décrits par les définitions " "lexicales suivantes." -#: ../Doc/reference/lexical_analysis.rst:282 +#: ../Doc/reference/lexical_analysis.rst:284 msgid "" "The syntax of identifiers in Python is based on the Unicode standard annex " "UAX-31, with elaboration and changes as defined below; see also :pep:`3131` " "for further details." msgstr "" "La syntaxe des identifiants en Python est basée sur l'annexe UAX-31 du " -"standard Unicode avec les modifications définies ci-dessous ; consultez la :" +"standard Unicode avec les modifications définies ci-dessous ; consultez la :" "pep:`3131` pour plus de détails." -#: ../Doc/reference/lexical_analysis.rst:286 +#: ../Doc/reference/lexical_analysis.rst:288 msgid "" "Within the ASCII range (U+0001..U+007F), the valid characters for " "identifiers are the same as in Python 2.x: the uppercase and lowercase " "letters ``A`` through ``Z``, the underscore ``_`` and, except for the first " "character, the digits ``0`` through ``9``." msgstr "" -"Dans l'intervalle ASCII (U+0001..U+007F), les caractères licites pour les " +"Dans l'intervalle ASCII (*U+0001..U+007F*), les caractères licites pour les " "identifiants sont les mêmes que pour Python 2.x : les lettres minuscules et " "majuscules de ``A`` à ``Z``, le souligné (ou *underscore*) ``_`` et, sauf " "pour le premier caractère, les chiffres de ``0`` à ``9``." -#: ../Doc/reference/lexical_analysis.rst:291 +#: ../Doc/reference/lexical_analysis.rst:293 msgid "" "Python 3.0 introduces additional characters from outside the ASCII range " "(see :pep:`3131`). For these characters, the classification uses the " @@ -465,65 +468,65 @@ msgid "" msgstr "" "Python 3.0 introduit des caractères supplémentaires en dehors de " "l'intervalle ASCII (voir la :pep:`3131`). Pour ces caractères, la " -"classification utilise la version de la \"base de données des caractères " -"Unicode\" telle qu'incluse dans le module :mod:`unicodedata`." +"classification utilise la version de la « base de données des caractères " +"Unicode » telle qu'incluse dans le module :mod:`unicodedata`." -#: ../Doc/reference/lexical_analysis.rst:295 +#: ../Doc/reference/lexical_analysis.rst:297 msgid "Identifiers are unlimited in length. Case is significant." msgstr "" "Les identifiants n'ont pas de limite de longueur. La casse est prise en " "compte." -#: ../Doc/reference/lexical_analysis.rst:304 +#: ../Doc/reference/lexical_analysis.rst:306 msgid "The Unicode category codes mentioned above stand for:" msgstr "Les codes de catégories Unicode cités ci-dessus signifient :" -#: ../Doc/reference/lexical_analysis.rst:306 +#: ../Doc/reference/lexical_analysis.rst:308 msgid "*Lu* - uppercase letters" -msgstr "*Lu* -- lettre majuscules" +msgstr "*Lu* — lettres majuscules" -#: ../Doc/reference/lexical_analysis.rst:307 +#: ../Doc/reference/lexical_analysis.rst:309 msgid "*Ll* - lowercase letters" -msgstr "*Ll* -- lettres minuscules" +msgstr "*Ll* — lettres minuscules" -#: ../Doc/reference/lexical_analysis.rst:308 +#: ../Doc/reference/lexical_analysis.rst:310 msgid "*Lt* - titlecase letters" msgstr "" -"*Lt* -- lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" +"*Lt* — lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" -#: ../Doc/reference/lexical_analysis.rst:309 +#: ../Doc/reference/lexical_analysis.rst:311 msgid "*Lm* - modifier letters" -msgstr "*Lm* -- lettres modificatives avec chasse" +msgstr "*Lm* — lettres modificatives avec chasse" -#: ../Doc/reference/lexical_analysis.rst:310 +#: ../Doc/reference/lexical_analysis.rst:312 msgid "*Lo* - other letters" -msgstr "*Lo* -- autres lettres" +msgstr "*Lo* — autres lettres" -#: ../Doc/reference/lexical_analysis.rst:311 +#: ../Doc/reference/lexical_analysis.rst:313 msgid "*Nl* - letter numbers" -msgstr "*Nl* -- nombres lettres (par exemple, les nombres romains)" +msgstr "*Nl* — nombres lettres (par exemple, les nombres romains)" -#: ../Doc/reference/lexical_analysis.rst:312 +#: ../Doc/reference/lexical_analysis.rst:314 msgid "*Mn* - nonspacing marks" msgstr "" -"*Mn* -- symboles que l'on combine avec d'autres (accents ou autres) sans " +"*Mn* — symboles que l'on combine avec d'autres (accents ou autres) sans " "générer d'espace (*nonspacing marks* en anglais)" -#: ../Doc/reference/lexical_analysis.rst:313 +#: ../Doc/reference/lexical_analysis.rst:315 msgid "*Mc* - spacing combining marks" msgstr "" -"*Mc* -- symboles que l'on combine avec d'autres en générant une espace " +"*Mc* — symboles que l'on combine avec d'autres en générant une espace " "(*spacing combining marks* en anglais)" -#: ../Doc/reference/lexical_analysis.rst:314 +#: ../Doc/reference/lexical_analysis.rst:316 msgid "*Nd* - decimal numbers" -msgstr "*Nd* -- chiffres (arabes et autres)" +msgstr "*Nd* — chiffres (arabes et autres)" -#: ../Doc/reference/lexical_analysis.rst:315 +#: ../Doc/reference/lexical_analysis.rst:317 msgid "*Pc* - connector punctuations" -msgstr "*Pc* -- connecteurs (tirets et autres lignes)" +msgstr "*Pc* — connecteurs (tirets et autres lignes)" -#: ../Doc/reference/lexical_analysis.rst:316 +#: ../Doc/reference/lexical_analysis.rst:318 msgid "" "*Other_ID_Start* - explicit list of characters in `PropList.txt `_ to support backwards " @@ -533,11 +536,11 @@ msgstr "" "www.unicode.org/Public/11.0.0/ucd/PropList.txt>`_ pour la compatibilité " "descendante" -#: ../Doc/reference/lexical_analysis.rst:319 +#: ../Doc/reference/lexical_analysis.rst:321 msgid "*Other_ID_Continue* - likewise" -msgstr "*Other_ID_Continue* -- pareillement" +msgstr "*Other_ID_Continue* — pareillement" -#: ../Doc/reference/lexical_analysis.rst:321 +#: ../Doc/reference/lexical_analysis.rst:323 msgid "" "All identifiers are converted into the normal form NFKC while parsing; " "comparison of identifiers is based on NFKC." @@ -546,7 +549,7 @@ msgstr "" "l'analyse syntaxique : la comparaison des identifiants se base sur leur " "forme NFKC." -#: ../Doc/reference/lexical_analysis.rst:324 +#: ../Doc/reference/lexical_analysis.rst:326 msgid "" "A non-normative HTML file listing all valid identifier characters for " "Unicode 4.1 can be found at https://www.dcl.hpi.uni-potsdam.de/home/loewis/" @@ -556,11 +559,11 @@ msgstr "" "valides pour Unicode 4.1 se trouve à https://www.dcl.hpi.uni-potsdam.de/home/" "loewis/table-3131.html." -#: ../Doc/reference/lexical_analysis.rst:332 +#: ../Doc/reference/lexical_analysis.rst:334 msgid "Keywords" msgstr "Mots-clés" -#: ../Doc/reference/lexical_analysis.rst:338 +#: ../Doc/reference/lexical_analysis.rst:340 msgid "" "The following identifiers are used as reserved words, or *keywords* of the " "language, and cannot be used as ordinary identifiers. They must be spelled " @@ -570,25 +573,25 @@ msgstr "" "peuvent pas être utilisés en tant qu'identifiants normaux. Ils doivent être " "écrits exactement comme ci-dessous :" -#: ../Doc/reference/lexical_analysis.rst:355 +#: ../Doc/reference/lexical_analysis.rst:360 msgid "Reserved classes of identifiers" msgstr "Classes réservées pour les identifiants" -#: ../Doc/reference/lexical_analysis.rst:357 +#: ../Doc/reference/lexical_analysis.rst:362 msgid "" "Certain classes of identifiers (besides keywords) have special meanings. " "These classes are identified by the patterns of leading and trailing " "underscore characters:" msgstr "" "Certaines classes d'identifiants (outre les mots-clés) ont une signification " -"particulière. Ces classes se reconnaissent par des caractères de " +"particulière. Ces classes se reconnaissent par des caractères de " "soulignement en tête et en queue d'identifiant :" -#: ../Doc/reference/lexical_analysis.rst:371 +#: ../Doc/reference/lexical_analysis.rst:376 msgid "``_*``" msgstr "``_*``" -#: ../Doc/reference/lexical_analysis.rst:362 +#: ../Doc/reference/lexical_analysis.rst:367 msgid "" "Not imported by ``from module import *``. The special identifier ``_`` is " "used in the interactive interpreter to store the result of the last " @@ -596,13 +599,13 @@ msgid "" "interactive mode, ``_`` has no special meaning and is not defined. See " "section :ref:`import`." msgstr "" -"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " +"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " "Il est utilisé dans l'interpréteur interactif pour stocker le résultat de la " -"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " +"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " "vous n'êtes pas en mode interactif, ``_`` n'a pas de signification " "particulière et n'est pas défini. Voir la section :ref:`import`." -#: ../Doc/reference/lexical_analysis.rst:369 +#: ../Doc/reference/lexical_analysis.rst:374 msgid "" "The name ``_`` is often used in conjunction with internationalization; refer " "to the documentation for the :mod:`gettext` module for more information on " @@ -612,11 +615,11 @@ msgstr "" "reportez-vous à la documentation du module :mod:`gettext` pour plus " "d'informations sur cette convention." -#: ../Doc/reference/lexical_analysis.rst:379 +#: ../Doc/reference/lexical_analysis.rst:384 msgid "``__*__``" msgstr "``__*__``" -#: ../Doc/reference/lexical_analysis.rst:374 +#: ../Doc/reference/lexical_analysis.rst:379 msgid "" "System-defined names. These names are defined by the interpreter and its " "implementation (including the standard library). Current system names are " @@ -634,44 +637,44 @@ msgstr "" "explicitement la documentation, est sujette à des mauvaises surprises sans " "avertissement." -#: ../Doc/reference/lexical_analysis.rst:386 +#: ../Doc/reference/lexical_analysis.rst:391 msgid "``__*``" msgstr "``__*``" -#: ../Doc/reference/lexical_analysis.rst:382 +#: ../Doc/reference/lexical_analysis.rst:387 msgid "" "Class-private names. Names in this category, when used within the context " "of a class definition, are re-written to use a mangled form to help avoid " "name clashes between \"private\" attributes of base and derived classes. See " "section :ref:`atom-identifiers`." msgstr "" -"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " +"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " "utilisés dans le contexte d'une définition de classe, sont réécrits sous une " -"forme modifiée pour éviter les conflits de noms entre les attributs \"privés" -"\" des classes de base et les classes dérivées. Voir la section :ref:`atom-" -"identifiers`." +"forme modifiée pour éviter les conflits de noms entre les attributs " +"« privés » des classes de base et les classes dérivées. Voir la section :ref:" +"`atom-identifiers`." -#: ../Doc/reference/lexical_analysis.rst:391 +#: ../Doc/reference/lexical_analysis.rst:396 msgid "Literals" msgstr "Littéraux" -#: ../Doc/reference/lexical_analysis.rst:395 +#: ../Doc/reference/lexical_analysis.rst:400 msgid "Literals are notations for constant values of some built-in types." msgstr "" "Les littéraux sont des notations pour indiquer des valeurs constantes de " "certains types natifs." -#: ../Doc/reference/lexical_analysis.rst:401 +#: ../Doc/reference/lexical_analysis.rst:411 msgid "String and Bytes literals" msgstr "Littéraux de chaînes de caractères et de suites d'octets" -#: ../Doc/reference/lexical_analysis.rst:405 +#: ../Doc/reference/lexical_analysis.rst:413 msgid "String literals are described by the following lexical definitions:" msgstr "" "Les chaînes de caractères littérales sont définies par les définitions " "lexicales suivantes :" -#: ../Doc/reference/lexical_analysis.rst:430 +#: ../Doc/reference/lexical_analysis.rst:438 msgid "" "One syntactic restriction not indicated by these productions is that " "whitespace is not allowed between the :token:`stringprefix` or :token:" @@ -680,12 +683,12 @@ msgid "" "is given in the source file; see section :ref:`encodings`." msgstr "" "Une restriction syntaxique non indiquée par ces règles est qu'aucun blanc " -"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " +"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " "reste du littéral. Le jeu de caractères source est défini par la déclaration " "d'encodage ; il vaut UTF-8 si aucune déclaration d'encodage n'est donnée " -"dans le fichier source ; voir la section :ref:`encodings`." +"dans le fichier source ; voir la section :ref:`encodings`." -#: ../Doc/reference/lexical_analysis.rst:438 +#: ../Doc/reference/lexical_analysis.rst:448 msgid "" "In plain English: Both types of literals can be enclosed in matching single " "quotes (``'``) or double quotes (``\"``). They can also be enclosed in " @@ -695,15 +698,15 @@ msgid "" "newline, backslash itself, or the quote character." msgstr "" "Description en français : les deux types de littéraux peuvent être encadrés " -"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils " -"peuvent aussi être encadrés par une paire de trois guillemets simples ou une " -"paire de trois guillemets doubles (on appelle alors généralement ces chaînes " +"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils peuvent " +"aussi être encadrés par une paire de trois guillemets simples ou une paire " +"de trois guillemets doubles (on appelle alors généralement ces chaînes " "*entre triples guillemets*). La barre oblique inversée peut être utilisée " "pour échapper des caractères qui auraient sinon une signification spéciale, " "tels que le retour à la ligne, la barre oblique inversée elle-même ou le " "guillemet utilisé pour délimiter la chaîne." -#: ../Doc/reference/lexical_analysis.rst:445 +#: ../Doc/reference/lexical_analysis.rst:459 msgid "" "Bytes literals are always prefixed with ``'b'`` or ``'B'``; they produce an " "instance of the :class:`bytes` type instead of the :class:`str` type. They " @@ -716,7 +719,7 @@ msgstr "" "dont la valeur est supérieure ou égale à 128 doivent être exprimés à l'aide " "d'échappements." -#: ../Doc/reference/lexical_analysis.rst:450 +#: ../Doc/reference/lexical_analysis.rst:468 msgid "" "Both string and bytes literals may optionally be prefixed with a letter " "``'r'`` or ``'R'``; such strings are called :dfn:`raw strings` and treat " @@ -733,7 +736,7 @@ msgstr "" "Unicode de Python 2.x se comportent différemment, la syntaxe ``'ur'`` n'est " "pas reconnue en Python 3.x." -#: ../Doc/reference/lexical_analysis.rst:457 +#: ../Doc/reference/lexical_analysis.rst:475 msgid "" "The ``'rb'`` prefix of raw bytes literals has been added as a synonym of " "``'br'``." @@ -741,7 +744,7 @@ msgstr "" "le préfixe ``'rb'`` a été ajouté comme synonyme de ``'br'`` pour les " "littéraux de suites d'octets." -#: ../Doc/reference/lexical_analysis.rst:461 +#: ../Doc/reference/lexical_analysis.rst:479 msgid "" "Support for the unicode legacy literal (``u'value'``) was reintroduced to " "simplify the maintenance of dual Python 2.x and 3.x codebases. See :pep:" @@ -751,7 +754,7 @@ msgstr "" "afin de simplifier la maintenance de code compatible Python 2.x et 3.x. Voir " "la :pep:`414` pour davantage d'informations." -#: ../Doc/reference/lexical_analysis.rst:466 +#: ../Doc/reference/lexical_analysis.rst:488 msgid "" "A string literal with ``'f'`` or ``'F'`` in its prefix is a :dfn:`formatted " "string literal`; see :ref:`f-strings`. The ``'f'`` may be combined with " @@ -764,7 +767,7 @@ msgstr "" "donc les chaînes de caractères formatées sont possibles mais les littéraux " "de suites d'octets ne peuvent pas l'être." -#: ../Doc/reference/lexical_analysis.rst:471 +#: ../Doc/reference/lexical_analysis.rst:493 msgid "" "In triple-quoted literals, unescaped newlines and quotes are allowed (and " "are retained), except that three unescaped quotes in a row terminate the " @@ -774,10 +777,10 @@ msgstr "" "Dans les chaînes entre triples guillemets, les sauts de ligne et guillemets " "peuvent ne pas être échappés (et sont donc pris en compte), mais trois " "guillemets non échappés à la suite terminent le littéral (on entend par " -"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " +"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " "``'`` ou ``\"``)." -#: ../Doc/reference/lexical_analysis.rst:477 +#: ../Doc/reference/lexical_analysis.rst:512 msgid "" "Unless an ``'r'`` or ``'R'`` prefix is present, escape sequences in string " "and bytes literals are interpreted according to rules similar to those used " @@ -786,193 +789,193 @@ msgstr "" "À moins que le préfixe ``'r'`` ou ``'R'`` ne soit présent, les séquences " "d'échappement dans les littéraux de chaînes et suites d'octets sont " "interprétées comme elles le seraient par le C Standard. Les séquences " -"d'échappement reconnues sont :" +"d'échappement reconnues sont :" -#: ../Doc/reference/lexical_analysis.rst:482 -#: ../Doc/reference/lexical_analysis.rst:515 +#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:550 msgid "Escape Sequence" msgstr "Séquence d'échappement" -#: ../Doc/reference/lexical_analysis.rst:482 -#: ../Doc/reference/lexical_analysis.rst:515 +#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:550 msgid "Meaning" msgstr "Signification" -#: ../Doc/reference/lexical_analysis.rst:482 -#: ../Doc/reference/lexical_analysis.rst:515 +#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:550 msgid "Notes" msgstr "Notes" -#: ../Doc/reference/lexical_analysis.rst:484 +#: ../Doc/reference/lexical_analysis.rst:519 msgid "``\\newline``" msgstr "``\\newline``" -#: ../Doc/reference/lexical_analysis.rst:484 +#: ../Doc/reference/lexical_analysis.rst:519 msgid "Backslash and newline ignored" msgstr "barre oblique inversée et retour à la ligne ignorés" -#: ../Doc/reference/lexical_analysis.rst:486 +#: ../Doc/reference/lexical_analysis.rst:521 msgid "``\\\\``" -msgstr "" +msgstr "``\\\\``" -#: ../Doc/reference/lexical_analysis.rst:486 +#: ../Doc/reference/lexical_analysis.rst:521 msgid "Backslash (``\\``)" msgstr "barre oblique inversée (``\\``)" -#: ../Doc/reference/lexical_analysis.rst:488 +#: ../Doc/reference/lexical_analysis.rst:523 msgid "``\\'``" -msgstr "" +msgstr "``\\'``" -#: ../Doc/reference/lexical_analysis.rst:488 +#: ../Doc/reference/lexical_analysis.rst:523 msgid "Single quote (``'``)" -msgstr "guillemet simple (``'``)" +msgstr "guillemet simple (``'``)" -#: ../Doc/reference/lexical_analysis.rst:490 +#: ../Doc/reference/lexical_analysis.rst:525 msgid "``\\\"``" -msgstr "" +msgstr "``\\\"``" -#: ../Doc/reference/lexical_analysis.rst:490 +#: ../Doc/reference/lexical_analysis.rst:525 msgid "Double quote (``\"``)" msgstr "guillemet double (``\"``)" -#: ../Doc/reference/lexical_analysis.rst:492 +#: ../Doc/reference/lexical_analysis.rst:527 msgid "``\\a``" -msgstr "" +msgstr "``\\a``" -#: ../Doc/reference/lexical_analysis.rst:492 +#: ../Doc/reference/lexical_analysis.rst:527 msgid "ASCII Bell (BEL)" msgstr "cloche ASCII (BEL)" -#: ../Doc/reference/lexical_analysis.rst:494 +#: ../Doc/reference/lexical_analysis.rst:529 msgid "``\\b``" msgstr "``\\b``" -#: ../Doc/reference/lexical_analysis.rst:494 +#: ../Doc/reference/lexical_analysis.rst:529 msgid "ASCII Backspace (BS)" msgstr "retour arrière ASCII (BS)" -#: ../Doc/reference/lexical_analysis.rst:496 +#: ../Doc/reference/lexical_analysis.rst:531 msgid "``\\f``" -msgstr "" +msgstr "``\\f``" -#: ../Doc/reference/lexical_analysis.rst:496 +#: ../Doc/reference/lexical_analysis.rst:531 msgid "ASCII Formfeed (FF)" msgstr "saut de page ASCII (FF)" -#: ../Doc/reference/lexical_analysis.rst:498 +#: ../Doc/reference/lexical_analysis.rst:533 msgid "``\\n``" msgstr "``\\n``" -#: ../Doc/reference/lexical_analysis.rst:498 +#: ../Doc/reference/lexical_analysis.rst:533 msgid "ASCII Linefeed (LF)" msgstr "saut de ligne ASCII (LF)" -#: ../Doc/reference/lexical_analysis.rst:500 +#: ../Doc/reference/lexical_analysis.rst:535 msgid "``\\r``" msgstr "``\\r``" -#: ../Doc/reference/lexical_analysis.rst:500 +#: ../Doc/reference/lexical_analysis.rst:535 msgid "ASCII Carriage Return (CR)" msgstr "retour à la ligne ASCII (CR)" -#: ../Doc/reference/lexical_analysis.rst:502 +#: ../Doc/reference/lexical_analysis.rst:537 msgid "``\\t``" -msgstr "" +msgstr "``\\t``" -#: ../Doc/reference/lexical_analysis.rst:502 +#: ../Doc/reference/lexical_analysis.rst:537 msgid "ASCII Horizontal Tab (TAB)" msgstr "tabulation horizontale ASCII (TAB)" -#: ../Doc/reference/lexical_analysis.rst:504 +#: ../Doc/reference/lexical_analysis.rst:539 msgid "``\\v``" -msgstr "" +msgstr "``\\v``" -#: ../Doc/reference/lexical_analysis.rst:504 +#: ../Doc/reference/lexical_analysis.rst:539 msgid "ASCII Vertical Tab (VT)" msgstr "tabulation verticale ASCII (VT)" -#: ../Doc/reference/lexical_analysis.rst:506 +#: ../Doc/reference/lexical_analysis.rst:541 msgid "``\\ooo``" -msgstr "" +msgstr "``\\ooo``" -#: ../Doc/reference/lexical_analysis.rst:506 +#: ../Doc/reference/lexical_analysis.rst:541 msgid "Character with octal value *ooo*" msgstr "caractère dont le code est *ooo* en octal" -#: ../Doc/reference/lexical_analysis.rst:506 +#: ../Doc/reference/lexical_analysis.rst:541 msgid "(1,3)" -msgstr "" +msgstr "(1,3)" -#: ../Doc/reference/lexical_analysis.rst:509 +#: ../Doc/reference/lexical_analysis.rst:544 msgid "``\\xhh``" -msgstr "" +msgstr "``\\xhh``" -#: ../Doc/reference/lexical_analysis.rst:509 +#: ../Doc/reference/lexical_analysis.rst:544 msgid "Character with hex value *hh*" msgstr "caractère dont le code est *ooo* en hexadécimal" -#: ../Doc/reference/lexical_analysis.rst:509 +#: ../Doc/reference/lexical_analysis.rst:544 msgid "(2,3)" -msgstr "" +msgstr "(2,3)" -#: ../Doc/reference/lexical_analysis.rst:512 +#: ../Doc/reference/lexical_analysis.rst:547 msgid "Escape sequences only recognized in string literals are:" msgstr "" "Les séquences d'échappement reconnues seulement dans les chaînes littérales " "sont :" -#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:552 msgid "``\\N{name}``" msgstr "``\\N{name}``" -#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:552 msgid "Character named *name* in the Unicode database" msgstr "caractère dont le nom est *name* dans la base de données Unicode" -#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:552 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/reference/lexical_analysis.rst:520 +#: ../Doc/reference/lexical_analysis.rst:555 msgid "``\\uxxxx``" -msgstr "" +msgstr "``\\uxxxx``" -#: ../Doc/reference/lexical_analysis.rst:520 +#: ../Doc/reference/lexical_analysis.rst:555 msgid "Character with 16-bit hex value *xxxx*" msgstr "caractère dont le code est *xxxx* en hexadécimal" -#: ../Doc/reference/lexical_analysis.rst:520 +#: ../Doc/reference/lexical_analysis.rst:555 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/reference/lexical_analysis.rst:523 +#: ../Doc/reference/lexical_analysis.rst:558 msgid "``\\Uxxxxxxxx``" msgstr "``\\Uxxxxxxxx``" -#: ../Doc/reference/lexical_analysis.rst:523 +#: ../Doc/reference/lexical_analysis.rst:558 msgid "Character with 32-bit hex value *xxxxxxxx*" msgstr "caractère dont le code est *xxxxxxxx* en hexadécimal sur 32 bits" -#: ../Doc/reference/lexical_analysis.rst:523 +#: ../Doc/reference/lexical_analysis.rst:558 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/reference/lexical_analysis.rst:527 +#: ../Doc/reference/lexical_analysis.rst:562 msgid "Notes:" msgstr "Notes :" -#: ../Doc/reference/lexical_analysis.rst:530 +#: ../Doc/reference/lexical_analysis.rst:565 msgid "As in Standard C, up to three octal digits are accepted." msgstr "" "Comme dans le C Standard, jusqu'à trois chiffres en base huit sont acceptés." -#: ../Doc/reference/lexical_analysis.rst:533 +#: ../Doc/reference/lexical_analysis.rst:568 msgid "Unlike in Standard C, exactly two hex digits are required." msgstr "" "Contrairement au C Standard, il est obligatoire de fournir deux chiffres " "hexadécimaux." -#: ../Doc/reference/lexical_analysis.rst:536 +#: ../Doc/reference/lexical_analysis.rst:571 msgid "" "In a bytes literal, hexadecimal and octal escapes denote the byte with the " "given value. In a string literal, these escapes denote a Unicode character " @@ -982,15 +985,15 @@ msgstr "" "un octet dont la valeur est donnée. Dans une chaîne littérale, un " "échappement est un caractère Unicode dont le code est donné." -#: ../Doc/reference/lexical_analysis.rst:541 +#: ../Doc/reference/lexical_analysis.rst:576 msgid "Support for name aliases [#]_ has been added." msgstr "Ajout du support pour les alias de noms [#]_." -#: ../Doc/reference/lexical_analysis.rst:545 +#: ../Doc/reference/lexical_analysis.rst:580 msgid "Exactly four hex digits are required." msgstr "Exactement quatre chiffres hexadécimaux sont requis." -#: ../Doc/reference/lexical_analysis.rst:548 +#: ../Doc/reference/lexical_analysis.rst:583 msgid "" "Any Unicode character can be encoded this way. Exactly eight hex digits are " "required." @@ -998,7 +1001,7 @@ msgstr "" "N'importe quel caractère Unicode peut être encodé de cette façon. Exactement " "huit chiffres hexadécimaux sont requis." -#: ../Doc/reference/lexical_analysis.rst:554 +#: ../Doc/reference/lexical_analysis.rst:589 msgid "" "Unlike Standard C, all unrecognized escape sequences are left in the string " "unchanged, i.e., *the backslash is left in the result*. (This behavior is " @@ -1016,7 +1019,7 @@ msgstr "" "dans les littéraux de chaînes de caractères ne sont pas reconnues pour les " "littéraux de suites d'octets." -#: ../Doc/reference/lexical_analysis.rst:561 +#: ../Doc/reference/lexical_analysis.rst:596 msgid "" "Unrecognized escape sequences produce a DeprecationWarning. In some future " "version of Python they will be a SyntaxError." @@ -1025,7 +1028,7 @@ msgstr "" "DeprecationWarning. Dans les futures versions de Python, elles génèreront " "une erreur de syntaxe." -#: ../Doc/reference/lexical_analysis.rst:565 +#: ../Doc/reference/lexical_analysis.rst:600 msgid "" "Even in a raw literal, quotes can be escaped with a backslash, but the " "backslash remains in the result; for example, ``r\"\\\"\"`` is a valid " @@ -1050,11 +1053,11 @@ msgstr "" "comme deux caractères faisant partie du littéral et *non* comme une " "continuation de ligne." -#: ../Doc/reference/lexical_analysis.rst:578 +#: ../Doc/reference/lexical_analysis.rst:613 msgid "String literal concatenation" msgstr "Concaténation de chaînes de caractères" -#: ../Doc/reference/lexical_analysis.rst:580 +#: ../Doc/reference/lexical_analysis.rst:615 msgid "" "Multiple adjacent string or bytes literals (delimited by whitespace), " "possibly using different quoting conventions, are allowed, and their meaning " @@ -1072,7 +1075,7 @@ msgstr "" "caractères sur plusieurs lignes ou même pour ajouter des commentaires à des " "portions de chaînes de caractères. Par exemple ::" -#: ../Doc/reference/lexical_analysis.rst:591 +#: ../Doc/reference/lexical_analysis.rst:626 msgid "" "Note that this feature is defined at the syntactical level, but implemented " "at compile time. The '+' operator must be used to concatenate string " @@ -1084,17 +1087,17 @@ msgstr "" "Notez que cette fonctionnalité agit au niveau syntaxique mais est " "implémentée au moment de la compilation. Pour concaténer les expressions des " "chaînes de caractères au moment de l'exécution, vous devez utiliser " -"l'opérateur '+'. Notez également que la concaténation littérale peut " +"l'opérateur ``+``. Notez également que la concaténation littérale peut " "utiliser un style différent de guillemets pour chaque composant (et même " "mélanger des chaînes de caractères brutes et des chaînes de caractères entre " "triples guillemets). Enfin, les chaînes de caractères formatées peuvent être " "concaténées avec des chaînes de caractères ordinaires." -#: ../Doc/reference/lexical_analysis.rst:607 +#: ../Doc/reference/lexical_analysis.rst:645 msgid "Formatted string literals" msgstr "Chaînes de caractères formatées littérales" -#: ../Doc/reference/lexical_analysis.rst:611 +#: ../Doc/reference/lexical_analysis.rst:649 msgid "" "A :dfn:`formatted string literal` or :dfn:`f-string` is a string literal " "that is prefixed with ``'f'`` or ``'F'``. These strings may contain " @@ -1109,7 +1112,7 @@ msgstr "" "littéraux de chaines ont des valeurs constantes, les chaines formatées sont " "de vraies expressions évaluées à l'exécution." -#: ../Doc/reference/lexical_analysis.rst:617 +#: ../Doc/reference/lexical_analysis.rst:655 msgid "" "Escape sequences are decoded like in ordinary string literals (except when a " "literal is also marked as a raw string). After decoding, the grammar for " @@ -1120,7 +1123,7 @@ msgstr "" "marquée comme une chaîne brute). Après décodage, la grammaire s'appliquant " "au contenu de la chaîne de caractères est :" -#: ../Doc/reference/lexical_analysis.rst:631 +#: ../Doc/reference/lexical_analysis.rst:669 msgid "" "The parts of the string outside curly braces are treated literally, except " "that any doubled curly braces ``'{{'`` or ``'}}'`` are replaced with the " @@ -1136,11 +1139,11 @@ msgstr "" "remplacées par la simple accolade correspondante. Une simple accolade " "ouvrante ``'{'`` marque le début du champ à remplacer, qui commence par une " "expression Python. Après l'expression, il peut y avoir un champ de " -"conversion, introduit par un point d'exclamation ``'!'``. La spécification " -"de format peut aussi être ajouté, introduite par le caractère deux-points " +"conversion, introduit par un point d'exclamation ``'!'``. Une spécification " +"de format peut aussi être ajoutée, introduite par le caractère deux-points " "``':'``. Le champ à remplacer se termine par une accolade fermante ``'}'``." -#: ../Doc/reference/lexical_analysis.rst:640 +#: ../Doc/reference/lexical_analysis.rst:678 msgid "" "Expressions in formatted string literals are treated like regular Python " "expressions surrounded by parentheses, with a few exceptions. An empty " @@ -1160,7 +1163,7 @@ msgstr "" "évaluée dans le contexte où la chaîne de caractères formatée apparaît, de " "gauche à droite." -#: ../Doc/reference/lexical_analysis.rst:648 +#: ../Doc/reference/lexical_analysis.rst:686 msgid "" "If a conversion is specified, the result of evaluating the expression is " "converted before formatting. Conversion ``'!s'`` calls :func:`str` on the " @@ -1171,7 +1174,7 @@ msgstr "" "`str` sur le résultat, ``'!r'`` appelle :func:`repr` et ``'!a'`` appelle :" "func:`ascii`." -#: ../Doc/reference/lexical_analysis.rst:652 +#: ../Doc/reference/lexical_analysis.rst:690 msgid "" "The result is then formatted using the :func:`format` protocol. The format " "specifier is passed to the :meth:`__format__` method of the expression or " @@ -1185,7 +1188,7 @@ msgstr "" "lorsque la spécification de format est omise. Le résultat formaté est alors " "inclus dans la valeur finale de la chaîne complète." -#: ../Doc/reference/lexical_analysis.rst:658 +#: ../Doc/reference/lexical_analysis.rst:696 msgid "" "Top-level format specifiers may include nested replacement fields. These " "nested fields may include their own conversion fields and :ref:`format " @@ -1198,9 +1201,9 @@ msgstr "" "conversion et :ref:`spécifications de format ` mais " "l'imbrication ne doit pas aller plus profond. Le :ref:`mini-langage de " "spécification de format ` est le même que celui utilisé par la " -"méthode .format() du type str." +"méthode ``.format()`` du type ``str``." -#: ../Doc/reference/lexical_analysis.rst:664 +#: ../Doc/reference/lexical_analysis.rst:702 msgid "" "Formatted string literals may be concatenated, but replacement fields cannot " "be split across literals." @@ -1208,11 +1211,11 @@ msgstr "" "Les chaînes formatées littérales peuvent être concaténées mais les champs à " "remplacer ne peuvent pas être divisés entre les littéraux." -#: ../Doc/reference/lexical_analysis.rst:667 +#: ../Doc/reference/lexical_analysis.rst:705 msgid "Some examples of formatted string literals::" msgstr "Quelques exemples de chaines formatées littérales ::" -#: ../Doc/reference/lexical_analysis.rst:686 +#: ../Doc/reference/lexical_analysis.rst:724 msgid "" "A consequence of sharing the same syntax as regular string literals is that " "characters in the replacement fields must not conflict with the quoting used " @@ -1223,14 +1226,14 @@ msgstr "" "entrer en conflit avec le guillemet utilisé pour encadrer la chaine formatée " "littérale ::" -#: ../Doc/reference/lexical_analysis.rst:693 +#: ../Doc/reference/lexical_analysis.rst:731 msgid "" "Backslashes are not allowed in format expressions and will raise an error::" msgstr "" -"La barre oblique inversée n'est pas autorisée dans les expressions des " -"champs à remplacer et son utilisation génère une erreur ::" +"La barre oblique inversée (ou antislash) n'est pas autorisée dans les " +"expressions des champs à remplacer et son utilisation génère une erreur ::" -#: ../Doc/reference/lexical_analysis.rst:698 +#: ../Doc/reference/lexical_analysis.rst:736 msgid "" "To include a value in which a backslash escape is required, create a " "temporary variable." @@ -1238,15 +1241,15 @@ msgstr "" "Pour inclure une valeur où l'échappement par barre oblique inversée est " "nécessaire, vous devez créer une variable temporaire." -#: ../Doc/reference/lexical_analysis.rst:705 +#: ../Doc/reference/lexical_analysis.rst:743 msgid "" "Formatted string literals cannot be used as docstrings, even if they do not " "include expressions." msgstr "" "Une chaine formatée littérale ne peut pas être utilisée en tant que " -"docstring, même si elle ne comporte pas d'expression." +"*docstring*, même si elle ne comporte pas d'expression." -#: ../Doc/reference/lexical_analysis.rst:716 +#: ../Doc/reference/lexical_analysis.rst:754 msgid "" "See also :pep:`498` for the proposal that added formatted string literals, " "and :meth:`str.format`, which uses a related format string mechanism." @@ -1255,11 +1258,11 @@ msgstr "" "littérales et :meth:`str.format` qui utilise un mécanisme similaire pour " "formater les chaînes de caractères." -#: ../Doc/reference/lexical_analysis.rst:723 +#: ../Doc/reference/lexical_analysis.rst:761 msgid "Numeric literals" msgstr "Littéraux numériques" -#: ../Doc/reference/lexical_analysis.rst:729 +#: ../Doc/reference/lexical_analysis.rst:767 msgid "" "There are three types of numeric literals: integers, floating point numbers, " "and imaginary numbers. There are no complex literals (complex numbers can " @@ -1270,7 +1273,7 @@ msgstr "" "complexes (les nombres complexes peuvent être construits en ajoutant un " "nombre réel et un nombre imaginaire)." -#: ../Doc/reference/lexical_analysis.rst:733 +#: ../Doc/reference/lexical_analysis.rst:771 msgid "" "Note that numeric literals do not include a sign; a phrase like ``-1`` is " "actually an expression composed of the unary operator '``-``' and the " @@ -1278,18 +1281,18 @@ msgid "" msgstr "" "Notez que les littéraux numériques ne comportent pas de signe ; une phrase " "telle que ``-1`` est en fait une expression composée de l'opérateur unitaire " -"'``-``' et du littéral ``1``." +"``-`` et du littéral ``1``." -#: ../Doc/reference/lexical_analysis.rst:741 +#: ../Doc/reference/lexical_analysis.rst:785 msgid "Integer literals" msgstr "Entiers littéraux" -#: ../Doc/reference/lexical_analysis.rst:743 +#: ../Doc/reference/lexical_analysis.rst:787 msgid "Integer literals are described by the following lexical definitions:" msgstr "" "Les entiers littéraux sont décrits par les définitions lexicales suivantes :" -#: ../Doc/reference/lexical_analysis.rst:757 +#: ../Doc/reference/lexical_analysis.rst:801 msgid "" "There is no limit for the length of integer literals apart from what can be " "stored in available memory." @@ -1297,18 +1300,18 @@ msgstr "" "Il n'y a pas de limite pour la longueur des entiers littéraux, sauf celle " "relative à la capacité mémoire." -#: ../Doc/reference/lexical_analysis.rst:760 +#: ../Doc/reference/lexical_analysis.rst:804 msgid "" "Underscores are ignored for determining the numeric value of the literal. " "They can be used to group digits for enhanced readability. One underscore " "can occur between digits, and after base specifiers like ``0x``." msgstr "" -"Les soulignés sont ignorés pour déterminer la valeur numérique du littéral. " +"Les tirets bas sont ignorés pour déterminer la valeur numérique du littéral. " "Ils peuvent être utilisés pour grouper les chiffres afin de faciliter la " "lecture. Un souligné peut être placé entre des chiffres ou après la " "spécification de la base telle que ``0x``." -#: ../Doc/reference/lexical_analysis.rst:764 +#: ../Doc/reference/lexical_analysis.rst:808 msgid "" "Note that leading zeros in a non-zero decimal number are not allowed. This " "is for disambiguation with C-style octal literals, which Python used before " @@ -1319,27 +1322,27 @@ msgstr "" "les littéraux en base octale selon le style C que Python utilisait avant la " "version 3.0." -#: ../Doc/reference/lexical_analysis.rst:768 +#: ../Doc/reference/lexical_analysis.rst:812 msgid "Some examples of integer literals::" msgstr "Quelques exemples d'entiers littéraux ::" -#: ../Doc/reference/lexical_analysis.rst:774 -#: ../Doc/reference/lexical_analysis.rst:802 +#: ../Doc/reference/lexical_analysis.rst:818 +#: ../Doc/reference/lexical_analysis.rst:850 msgid "Underscores are now allowed for grouping purposes in literals." -msgstr "Les soulignés ne sont pas autorisés pour grouper les littéraux." +msgstr "Les tirets bas ne sont pas autorisés pour grouper les littéraux." -#: ../Doc/reference/lexical_analysis.rst:781 +#: ../Doc/reference/lexical_analysis.rst:829 msgid "Floating point literals" msgstr "Nombres à virgule flottante littéraux" -#: ../Doc/reference/lexical_analysis.rst:783 +#: ../Doc/reference/lexical_analysis.rst:831 msgid "" "Floating point literals are described by the following lexical definitions:" msgstr "" "Les nombres à virgule flottante littéraux sont décrits par les définitions " "lexicales suivantes :" -#: ../Doc/reference/lexical_analysis.rst:793 +#: ../Doc/reference/lexical_analysis.rst:841 msgid "" "Note that the integer and exponent parts are always interpreted using radix " "10. For example, ``077e010`` is legal, and denotes the same number as " @@ -1353,21 +1356,21 @@ msgstr "" "virgule flottante dépend de l'implémentation. Comme pour les entiers " "littéraux, les soulignés permettent de grouper des chiffres." -#: ../Doc/reference/lexical_analysis.rst:798 +#: ../Doc/reference/lexical_analysis.rst:846 msgid "Some examples of floating point literals::" msgstr "Quelques exemples de nombres à virgule flottante littéraux ::" -#: ../Doc/reference/lexical_analysis.rst:809 +#: ../Doc/reference/lexical_analysis.rst:859 msgid "Imaginary literals" msgstr "Imaginaires littéraux" -#: ../Doc/reference/lexical_analysis.rst:811 +#: ../Doc/reference/lexical_analysis.rst:861 msgid "Imaginary literals are described by the following lexical definitions:" msgstr "" "Les nombres imaginaires sont décrits par les définitions lexicales " "suivantes :" -#: ../Doc/reference/lexical_analysis.rst:816 +#: ../Doc/reference/lexical_analysis.rst:866 msgid "" "An imaginary literal yields a complex number with a real part of 0.0. " "Complex numbers are represented as a pair of floating point numbers and have " @@ -1382,23 +1385,23 @@ msgstr "" "nulle, ajoutez un nombre à virgule flottante à votre littéral imaginaire. " "Par exemple ``(3+4j)``. Voici d'autres exemples de littéraux imaginaires ::" -#: ../Doc/reference/lexical_analysis.rst:828 +#: ../Doc/reference/lexical_analysis.rst:878 msgid "Operators" msgstr "Opérateurs" -#: ../Doc/reference/lexical_analysis.rst:832 +#: ../Doc/reference/lexical_analysis.rst:882 msgid "The following tokens are operators:" msgstr "Les lexèmes suivants sont des opérateurs :" -#: ../Doc/reference/lexical_analysis.rst:845 +#: ../Doc/reference/lexical_analysis.rst:895 msgid "Delimiters" msgstr "Délimiteurs" -#: ../Doc/reference/lexical_analysis.rst:849 +#: ../Doc/reference/lexical_analysis.rst:899 msgid "The following tokens serve as delimiters in the grammar:" msgstr "Les lexèmes suivants servent de délimiteurs dans la grammaire :" -#: ../Doc/reference/lexical_analysis.rst:858 +#: ../Doc/reference/lexical_analysis.rst:908 msgid "" "The period can also occur in floating-point and imaginary literals. A " "sequence of three periods has a special meaning as an ellipsis literal. The " @@ -1411,16 +1414,16 @@ msgstr "" "la liste, les opérateurs d'assignation augmentés, servent de délimiteurs " "pour l'analyseur lexical mais sont aussi des opérateurs." -#: ../Doc/reference/lexical_analysis.rst:863 +#: ../Doc/reference/lexical_analysis.rst:913 msgid "" "The following printing ASCII characters have special meaning as part of " "other tokens or are otherwise significant to the lexical analyzer:" msgstr "" "Les caractères ASCII suivants ont une signification spéciale en tant que " -"partie d'autres lexèmes ou ont une signification particulière pour " +"partie d'autres lexèmes ou ont une signification particulière pour " "l'analyseur lexical :" -#: ../Doc/reference/lexical_analysis.rst:870 +#: ../Doc/reference/lexical_analysis.rst:920 msgid "" "The following printing ASCII characters are not used in Python. Their " "occurrence outside string literals and comments is an unconditional error:" @@ -1429,10 +1432,10 @@ msgstr "" "apparaissent en dehors de chaines littérales ou de commentaires, ils " "produisent une erreur :" -#: ../Doc/reference/lexical_analysis.rst:879 +#: ../Doc/reference/lexical_analysis.rst:929 msgid "Footnotes" msgstr "Notes" -#: ../Doc/reference/lexical_analysis.rst:880 +#: ../Doc/reference/lexical_analysis.rst:930 msgid "http://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" -msgstr "" +msgstr "http://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 1f4099c47..dc55bf4bd 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-07-03 11:41+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-01 23:56+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.0.2\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/reference/simple_stmts.rst:6 msgid "Simple statements" @@ -29,11 +29,11 @@ msgstr "" "instructions simples peuvent être écrites sur une seule ligne, séparées par " "des points-virgules. La syntaxe d'une instruction simple est :" -#: ../Doc/reference/simple_stmts.rst:35 +#: ../Doc/reference/simple_stmts.rst:36 msgid "Expression statements" msgstr "Les expressions" -#: ../Doc/reference/simple_stmts.rst:42 +#: ../Doc/reference/simple_stmts.rst:43 msgid "" "Expression statements are used (mostly interactively) to compute and write a " "value, or (usually) to call a procedure (a function that returns no " @@ -43,12 +43,12 @@ msgid "" msgstr "" "Les expressions sont utilisées (généralement de manière interactive) comme " "instructions pour calculer et écrire des valeurs, appeler une procédure (une " -"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " +"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " "procédures renvoient la valeur ``None``). D'autres utilisations des " "expressions sont autorisées et parfois utiles. La syntaxe pour une " "expression en tant qu'instruction est :" -#: ../Doc/reference/simple_stmts.rst:51 +#: ../Doc/reference/simple_stmts.rst:52 msgid "" "An expression statement evaluates the expression list (which may be a single " "expression)." @@ -56,7 +56,7 @@ msgstr "" "Ce genre d'instruction évalue la liste d'expressions (qui peut se limiter à " "une seule expression)." -#: ../Doc/reference/simple_stmts.rst:63 +#: ../Doc/reference/simple_stmts.rst:64 msgid "" "In interactive mode, if the value is not ``None``, it is converted to a " "string using the built-in :func:`repr` function and the resulting string is " @@ -68,19 +68,19 @@ msgstr "" "est écrite sur la sortie standard sur sa propre ligne. Si le résultat est " "``None``, rien n'est écrit ce qui est usuel pour les appels de procédures." -#: ../Doc/reference/simple_stmts.rst:71 +#: ../Doc/reference/simple_stmts.rst:72 msgid "Assignment statements" msgstr "Les assignations" -#: ../Doc/reference/simple_stmts.rst:81 +#: ../Doc/reference/simple_stmts.rst:82 msgid "" "Assignment statements are used to (re)bind names to values and to modify " "attributes or items of mutable objects:" msgstr "" -"Les assignations sont utilisées pour (re-)lier des noms à des valeurs et " -"modifier des attributs ou des éléments d'objets muables :" +"Les assignations sont utilisées pour lier ou relier des noms à des valeurs " +"et modifier des attributs ou des éléments d'objets muables :" -#: ../Doc/reference/simple_stmts.rst:95 +#: ../Doc/reference/simple_stmts.rst:96 msgid "" "(See section :ref:`primaries` for the syntax definitions for *attributeref*, " "*subscription*, and *slicing*.)" @@ -88,7 +88,7 @@ msgstr "" "Voir la section :ref:`primaries` pour la définition des syntaxes de " "*attributeref*, *subscription* et *slicing*." -#: ../Doc/reference/simple_stmts.rst:98 +#: ../Doc/reference/simple_stmts.rst:99 msgid "" "An assignment statement evaluates the expression list (remember that this " "can be a single expression or a comma-separated list, the latter yielding a " @@ -100,7 +100,7 @@ msgstr "" "des virgules, cette dernière produisant un n-uplet) et assigne l'unique " "objet résultant à chaque liste cible, de la gauche vers la droite." -#: ../Doc/reference/simple_stmts.rst:107 +#: ../Doc/reference/simple_stmts.rst:108 msgid "" "Assignment is defined recursively depending on the form of the target " "(list). When a target is part of a mutable object (an attribute reference, " @@ -118,7 +118,7 @@ msgstr "" "différents types et les exceptions levées sont données dans les définitions " "des types d'objets (voir la section :ref:`types`)." -#: ../Doc/reference/simple_stmts.rst:116 +#: ../Doc/reference/simple_stmts.rst:121 msgid "" "Assignment of an object to a target list, optionally enclosed in parentheses " "or square brackets, is recursively defined as follows." @@ -126,32 +126,25 @@ msgstr "" "L'assignation d'un objet à une liste cible, optionnellement entourée par des " "parenthèses ou des crochets, est définie récursivement comme suit." -#: ../Doc/reference/simple_stmts.rst:119 -msgid "If the target list is empty: The object must also be an empty iterable." -msgstr "si la liste cible est vide : l'objet doit aussi être un itérable vide." - -#: ../Doc/reference/simple_stmts.rst:121 +#: ../Doc/reference/simple_stmts.rst:124 msgid "" -"If the target list is a single target in parentheses: The object is assigned " -"to that target." +"If the target list is a single target with no trailing comma, optionally in " +"parentheses, the object is assigned to that target." msgstr "" -"si la liste cible est une simple cible entre parenthèses : l'objet est " -"assigné à cette cible." +"Si la liste cible est une cible unique sans virgule de fin, optionnellement " +"entre parenthèses, l'objet est assigné à cette cible." -#: ../Doc/reference/simple_stmts.rst:124 +#: ../Doc/reference/simple_stmts.rst:127 ../Doc/reference/simple_stmts.rst:139 msgid "" -"If the target list is a comma-separated list of targets, or a single target " -"in square brackets: The object must be an iterable with the same number of " -"items as there are targets in the target list, and the items are assigned, " -"from left to right, to the corresponding targets." +"Else: The object must be an iterable with the same number of items as there " +"are targets in the target list, and the items are assigned, from left to " +"right, to the corresponding targets." msgstr "" -"Si la liste cible est une liste de cibles dont les éléments sont séparés par " -"des virgules, ou une cible unique entourée par des crochets : l'objet doit " -"être un itérable avec le même nombre d'éléments qu'il y a de cibles dans la " -"liste cible ; les éléments sont alors assignés, de la gauche vers la droite, " -"aux cibles correspondantes." +"Sinon : l'objet doit être un itérable avec le même nombre d'éléments qu'il y " +"a de cibles dans la liste cible ; les éléments sont assignés, de la gauche " +"vers la droite, vers les cibles correspondantes." -#: ../Doc/reference/simple_stmts.rst:129 +#: ../Doc/reference/simple_stmts.rst:131 msgid "" "If the target list contains one target prefixed with an asterisk, called a " "\"starred\" target: The object must be an iterable with at least as many " @@ -170,46 +163,37 @@ msgstr "" "liste des éléments restants dans l'itérable est alors assignée à la cible " "étoilée (cette liste peut être vide)." -#: ../Doc/reference/simple_stmts.rst:137 -msgid "" -"Else: The object must be an iterable with the same number of items as there " -"are targets in the target list, and the items are assigned, from left to " -"right, to the corresponding targets." -msgstr "" -"Sinon : l'objet doit être un itérable avec le même nombre d'éléments qu'il y " -"a de cibles dans la liste cible ; les éléments sont assignés, de la gauche " -"vers la droite, vers les cibles correspondantes." - -#: ../Doc/reference/simple_stmts.rst:141 +#: ../Doc/reference/simple_stmts.rst:143 msgid "" "Assignment of an object to a single target is recursively defined as follows." msgstr "" "L'assignation d'un objet vers une cible unique est définie récursivement " "comme suit." -#: ../Doc/reference/simple_stmts.rst:143 +#: ../Doc/reference/simple_stmts.rst:145 msgid "If the target is an identifier (name):" msgstr "Si la cible est une variable (un nom) :" -#: ../Doc/reference/simple_stmts.rst:145 +#: ../Doc/reference/simple_stmts.rst:147 msgid "" "If the name does not occur in a :keyword:`global` or :keyword:`nonlocal` " "statement in the current code block: the name is bound to the object in the " "current local namespace." msgstr "" "si le nom n'apparaît pas dans une instruction :keyword:`global` ou :keyword:" -"`nonlocal` (respectivement) du bloc de code courant : le nom est lié à " -"l'objet dans l'espace courant des noms locaux." +"`nonlocal` (respectivement) du bloc de code courant, le nom est lié à " +"l'objet dans l'espace courant des noms locaux ;" -#: ../Doc/reference/simple_stmts.rst:149 +#: ../Doc/reference/simple_stmts.rst:151 msgid "" "Otherwise: the name is bound to the object in the global namespace or the " "outer namespace determined by :keyword:`nonlocal`, respectively." msgstr "" -"Sinon : le nom est lié à l'objet dans l'espace des noms globaux ou dans un " -"espace de noms plus large déterminé par :keyword:`nonlocal`, respectivement." +"sinon le nom est lié à l'objet dans l'espace des noms globaux ou dans un " +"espace de nommage plus large déterminé par :keyword:`nonlocal`, " +"respectivement." -#: ../Doc/reference/simple_stmts.rst:154 +#: ../Doc/reference/simple_stmts.rst:156 msgid "" "The name is rebound if it was already bound. This may cause the reference " "count for the object previously bound to the name to reach zero, causing the " @@ -220,7 +204,7 @@ msgstr "" "à zéro, entrainant la dé-allocation de l'objet et l'appel de son destructeur " "(s'il existe)." -#: ../Doc/reference/simple_stmts.rst:160 +#: ../Doc/reference/simple_stmts.rst:162 msgid "" "If the target is an attribute reference: The primary expression in the " "reference is evaluated. It should yield an object with assignable " @@ -236,7 +220,7 @@ msgstr "" "pas possible, une exception est levée (habituellement, mais pas " "nécessairement, :exc:`AttributeError`)." -#: ../Doc/reference/simple_stmts.rst:169 +#: ../Doc/reference/simple_stmts.rst:171 msgid "" "Note: If the object is a class instance and the attribute reference occurs " "on both sides of the assignment operator, the RHS expression, ``a.x`` can " @@ -258,7 +242,7 @@ msgstr "" "l'expression \"à gauche\" crée un nouvel attribut d'instance comme cible de " "l'assignation ::" -#: ../Doc/reference/simple_stmts.rst:183 +#: ../Doc/reference/simple_stmts.rst:185 msgid "" "This description does not necessarily apply to descriptor attributes, such " "as properties created with :func:`property`." @@ -266,7 +250,7 @@ msgstr "" "Cette description ne s'applique pas nécessairement aux attributs des " "descripteurs, telles que les propriétés créées avec :func:`property`." -#: ../Doc/reference/simple_stmts.rst:190 +#: ../Doc/reference/simple_stmts.rst:192 msgid "" "If the target is a subscription: The primary expression in the reference is " "evaluated. It should yield either a mutable sequence object (such as a " @@ -278,7 +262,7 @@ msgstr "" "liste) ou un objet tableau de correspondances (tel qu'un dictionnaire). " "Ensuite, l'expression de la sélection est évaluée." -#: ../Doc/reference/simple_stmts.rst:199 +#: ../Doc/reference/simple_stmts.rst:201 msgid "" "If the primary is a mutable sequence object (such as a list), the subscript " "must yield an integer. If it is negative, the sequence's length is added to " @@ -297,7 +281,7 @@ msgstr "" "à une sélection dans une séquence ne peut pas ajouter de nouveaux éléments à " "une liste)." -#: ../Doc/reference/simple_stmts.rst:210 +#: ../Doc/reference/simple_stmts.rst:212 msgid "" "If the primary is a mapping object (such as a dictionary), the subscript " "must have a type compatible with the mapping's key type, and the mapping is " @@ -313,15 +297,15 @@ msgstr "" "une correspondance déjà existante pour une clé donnée ou insérer un nouveau " "couple clé-valeur." -#: ../Doc/reference/simple_stmts.rst:216 +#: ../Doc/reference/simple_stmts.rst:218 msgid "" "For user-defined objects, the :meth:`__setitem__` method is called with " "appropriate arguments." msgstr "" -"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " +"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " "les arguments appropriés." -#: ../Doc/reference/simple_stmts.rst:221 +#: ../Doc/reference/simple_stmts.rst:223 msgid "" "If the target is a slicing: The primary expression in the reference is " "evaluated. It should yield a mutable sequence object (such as a list). The " @@ -345,10 +329,10 @@ msgstr "" "résultantes sont coupées pour être dans l'intervalle zéro -- longueur de la " "séquence, inclus. Finalement, Python demande à l'objet séquence de remplacer " "la tranche avec les éléments de la séquence à assigner. La longueur de la " -"tranche peut être différent de la longueur de la séquence à assigner, ce qui " -"modifie alors la longueur de la séquence cible, si celle-ci le permet." +"tranche peut être différente de la longueur de la séquence à assigner, ce " +"qui modifie alors la longueur de la séquence cible, si celle-ci le permet." -#: ../Doc/reference/simple_stmts.rst:235 +#: ../Doc/reference/simple_stmts.rst:237 msgid "" "In the current implementation, the syntax for targets is taken to be the " "same as for expressions, and invalid syntax is rejected during the code " @@ -358,7 +342,7 @@ msgstr "" "celle des expressions. Toute syntaxe invalide est rejetée pendant la phase " "de génération de code, ce qui produit des messages d'erreurs moins détaillés." -#: ../Doc/reference/simple_stmts.rst:239 +#: ../Doc/reference/simple_stmts.rst:241 msgid "" "Although the definition of assignment implies that overlaps between the left-" "hand side and the right-hand side are 'simultaneous' (for example ``a, b = " @@ -367,25 +351,25 @@ msgid "" "instance, the following program prints ``[0, 2]``::" msgstr "" "Bien que la définition de l'assignation implique que le passage entre le " -"côté gauche et le côté droit soient \"simultanés\" (par exemple, ``a, b = b, " +"côté gauche et le côté droit soient « simultanés » (par exemple, ``a, b = b, " "a`` permute les deux variables), le passage *à l'intérieur* des collections " "de variables que l'on assigne intervient de la gauche vers la droite, ce qui " "peut entraîner quelques confusions. Par exemple, le programme suivant " "affiche ``[0, 2]`` ::" -#: ../Doc/reference/simple_stmts.rst:253 +#: ../Doc/reference/simple_stmts.rst:255 msgid ":pep:`3132` - Extended Iterable Unpacking" msgstr ":pep:`3132` -- dépaquetage étendu d'itérable" -#: ../Doc/reference/simple_stmts.rst:254 +#: ../Doc/reference/simple_stmts.rst:256 msgid "The specification for the ``*target`` feature." msgstr "Spécification de la fonctionnalité ``*cible``." -#: ../Doc/reference/simple_stmts.rst:260 +#: ../Doc/reference/simple_stmts.rst:262 msgid "Augmented assignment statements" msgstr "Les assignations augmentées" -#: ../Doc/reference/simple_stmts.rst:278 +#: ../Doc/reference/simple_stmts.rst:280 msgid "" "Augmented assignment is the combination, in a single statement, of a binary " "operation and an assignment statement:" @@ -393,7 +377,7 @@ msgstr "" "Une assignation augmentée est la combinaison, dans une seule instruction, " "d'une opération binaire et d'une assignation :" -#: ../Doc/reference/simple_stmts.rst:287 +#: ../Doc/reference/simple_stmts.rst:289 msgid "" "(See section :ref:`primaries` for the syntax definitions of the last three " "symbols.)" @@ -401,7 +385,7 @@ msgstr "" "Voir la section :ref:`primaries` pour la définition des syntaxes des trois " "derniers symboles." -#: ../Doc/reference/simple_stmts.rst:290 +#: ../Doc/reference/simple_stmts.rst:292 msgid "" "An augmented assignment evaluates the target (which, unlike normal " "assignment statements, cannot be an unpacking) and the expression list, " @@ -415,7 +399,7 @@ msgstr "" "d'assignation) sur les deux opérandes et assigne le résultat à la cible " "originale. La cible n'est évaluée qu'une seule fois." -#: ../Doc/reference/simple_stmts.rst:295 +#: ../Doc/reference/simple_stmts.rst:297 msgid "" "An augmented assignment expression like ``x += 1`` can be rewritten as ``x = " "x + 1`` to achieve a similar, but not exactly equal effect. In the augmented " @@ -430,7 +414,7 @@ msgstr "" "que plutôt que de créer un nouvel objet et l'assigner à la cible, c'est le " "vieil objet qui est modifié." -#: ../Doc/reference/simple_stmts.rst:301 +#: ../Doc/reference/simple_stmts.rst:303 msgid "" "Unlike normal assignments, augmented assignments evaluate the left-hand side " "*before* evaluating the right-hand side. For example, ``a[i] += f(x)`` " @@ -442,7 +426,7 @@ msgstr "" "f(x)`` commence par s'intéresser à ``a[i]``, puis Python évalue ``f(x)``, " "effectue l'addition et, enfin, écrit le résultat dans ``a[i]``." -#: ../Doc/reference/simple_stmts.rst:306 +#: ../Doc/reference/simple_stmts.rst:308 msgid "" "With the exception of assigning to tuples and multiple targets in a single " "statement, the assignment done by augmented assignment statements is handled " @@ -457,7 +441,7 @@ msgstr "" "effectuée par assignation augmentée est la même que les opérations binaires " "normales." -#: ../Doc/reference/simple_stmts.rst:312 +#: ../Doc/reference/simple_stmts.rst:314 msgid "" "For targets which are attribute references, the same :ref:`caveat about " "class and instance attributes ` applies as for regular " @@ -467,19 +451,21 @@ msgstr "" "en garde sur les attributs de classe et d'instances ` " "s'applique que pour les assignations normales." -#: ../Doc/reference/simple_stmts.rst:319 +#: ../Doc/reference/simple_stmts.rst:321 msgid "Annotated assignment statements" msgstr "Les assignations annotées" -#: ../Doc/reference/simple_stmts.rst:325 +#: ../Doc/reference/simple_stmts.rst:328 msgid "" -"Annotation assignment is the combination, in a single statement, of a " -"variable or attribute annotation and an optional assignment statement:" +":term:`Annotation ` assignment is the combination, in a " +"single statement, of a variable or attribute annotation and an optional " +"assignment statement:" msgstr "" -"Une assignation annotée est la combinaison, dans une seule instruction, " -"d'une annotation de variable ou d'attribut et d'une assignation optionnelle :" +"Une assignation :term:`annotée ` est la combinaison, " +"dans une seule instruction, d'une annotation de variable ou d'attribut et " +"d'une assignation optionnelle :" -#: ../Doc/reference/simple_stmts.rst:331 +#: ../Doc/reference/simple_stmts.rst:334 msgid "" "The difference from normal :ref:`assignment` is that only single target and " "only single right hand side value is allowed." @@ -488,7 +474,7 @@ msgstr "" "`) est qu'une seule cible et qu'une seule valeur à droite ne " "sont autorisées." -#: ../Doc/reference/simple_stmts.rst:334 +#: ../Doc/reference/simple_stmts.rst:337 msgid "" "For simple names as assignment targets, if in class or module scope, the " "annotations are evaluated and stored in a special class or module attribute :" @@ -505,7 +491,7 @@ msgstr "" "en écriture et est automatiquement créé au démarrage de l'exécution du corps " "de la classe ou du module, si les annotations sont trouvées statiquement." -#: ../Doc/reference/simple_stmts.rst:342 +#: ../Doc/reference/simple_stmts.rst:345 msgid "" "For expressions as assignment targets, the annotations are evaluated if in " "class or module scope, but not stored." @@ -513,7 +499,7 @@ msgstr "" "Pour les expressions en tant que cibles d'assignations, les annotations sont " "évaluées dans la portée de la classe ou du module, mais ne sont pas stockées." -#: ../Doc/reference/simple_stmts.rst:345 +#: ../Doc/reference/simple_stmts.rst:348 msgid "" "If a name is annotated in a function scope, then this name is local for that " "scope. Annotations are never evaluated and stored in function scopes." @@ -522,7 +508,7 @@ msgstr "" "cette portée. Les annotations ne sont jamais évaluées et stockées dans les " "portées des fonctions." -#: ../Doc/reference/simple_stmts.rst:348 +#: ../Doc/reference/simple_stmts.rst:351 msgid "" "If the right hand side is present, an annotated assignment performs the " "actual assignment before evaluating annotations (where applicable). If the " @@ -536,18 +522,39 @@ msgstr "" "d'expression, alors l'interpréteur évalue la cible sauf pour le dernier " "appel à :meth:`__setitem__` ou :meth:`__setattr__`." -#: ../Doc/reference/simple_stmts.rst:356 +#: ../Doc/reference/simple_stmts.rst:362 +msgid ":pep:`526` - Syntax for Variable Annotations" +msgstr ":pep:`526` -- Syntaxe pour les annotations de variables" + +#: ../Doc/reference/simple_stmts.rst:360 +msgid "" +"The proposal that added syntax for annotating the types of variables " +"(including class variables and instance variables), instead of expressing " +"them through comments." +msgstr "" +"La proposition qui a ajouté la syntaxe pour annoter les types de variables " +"(y compris les variables de classe et les variables d'instance), au lieu de " +"les exprimer par le biais de commentaires." + +#: ../Doc/reference/simple_stmts.rst:366 +msgid ":pep:`484` - Type hints" +msgstr ":pep:`484` -- Indices de type" + +#: ../Doc/reference/simple_stmts.rst:365 msgid "" -":pep:`526` - Variable and attribute annotation syntax :pep:`484` - Type hints" +"The proposal that added the :mod:`typing` module to provide a standard " +"syntax for type annotations that can be used in static analysis tools and " +"IDEs." msgstr "" -":pep:`526` -- Syntaxe pour les annotations de variables et d'attributs, :pep:" -"`484` -- Indications de types" +"La proposition qui a ajouté le module :mod:`typing` pour fournir une syntaxe " +"standard pour les annotations de type qui peuvent être utilisées dans les " +"outils d'analyse statique et les EDIs." -#: ../Doc/reference/simple_stmts.rst:363 -msgid "The :keyword:`assert` statement" -msgstr "L'instruction :keyword:`assert`" +#: ../Doc/reference/simple_stmts.rst:373 +msgid "The :keyword:`!assert` statement" +msgstr "L'instruction :keyword:`!assert`" -#: ../Doc/reference/simple_stmts.rst:369 +#: ../Doc/reference/simple_stmts.rst:380 msgid "" "Assert statements are a convenient way to insert debugging assertions into a " "program:" @@ -555,50 +562,50 @@ msgstr "" "Les instructions ``assert`` sont une manière pratique d'insérer des tests de " "débogage au sein d'un programme :" -#: ../Doc/reference/simple_stmts.rst:375 +#: ../Doc/reference/simple_stmts.rst:386 msgid "The simple form, ``assert expression``, is equivalent to ::" -msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" +msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" -#: ../Doc/reference/simple_stmts.rst:380 +#: ../Doc/reference/simple_stmts.rst:391 msgid "" "The extended form, ``assert expression1, expression2``, is equivalent to ::" msgstr "" -"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" +"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" -#: ../Doc/reference/simple_stmts.rst:389 +#: ../Doc/reference/simple_stmts.rst:400 msgid "" "These equivalences assume that :const:`__debug__` and :exc:`AssertionError` " "refer to the built-in variables with those names. In the current " "implementation, the built-in variable :const:`__debug__` is ``True`` under " "normal circumstances, ``False`` when optimization is requested (command line " -"option -O). The current code generator emits no code for an assert " -"statement when optimization is requested at compile time. Note that it is " -"unnecessary to include the source code for the expression that failed in the " -"error message; it will be displayed as part of the stack trace." +"option :option:`-O`). The current code generator emits no code for an " +"assert statement when optimization is requested at compile time. Note that " +"it is unnecessary to include the source code for the expression that failed " +"in the error message; it will be displayed as part of the stack trace." msgstr "" "Ces équivalences supposent que :const:`__debug__` et :exc:`AssertionError` " "font référence aux variables natives ainsi nommées. Dans l'implémentation " "actuelle, la variable native :const:`__debug__` vaut ``True`` dans des " "circonstances normales, ``False`` quand les optimisations sont demandées " -"(ligne de commande avec l'option -O). Le générateur de code actuel ne " -"produit aucun code pour une instruction assert quand vous demandez les " -"optimisations à la compilation. Notez qu'il est superflu d'inclure le code " -"source dans le message d'erreur pour l'expression qui a échoué : il est " +"(ligne de commande avec l'option :option:`-O`). Le générateur de code actuel " +"ne produit aucun code pour une instruction ``assert`` quand vous demandez " +"les optimisations à la compilation. Notez qu'il est superflu d'inclure le " +"code source dans le message d'erreur pour l'expression qui a échoué : il est " "affiché dans la pile d'appels." -#: ../Doc/reference/simple_stmts.rst:398 +#: ../Doc/reference/simple_stmts.rst:409 msgid "" "Assignments to :const:`__debug__` are illegal. The value for the built-in " "variable is determined when the interpreter starts." msgstr "" -"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " +"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " "native est déterminée au moment où l'interpréteur démarre." -#: ../Doc/reference/simple_stmts.rst:405 -msgid "The :keyword:`pass` statement" -msgstr "L'instruction :keyword:`pass`" +#: ../Doc/reference/simple_stmts.rst:416 +msgid "The :keyword:`!pass` statement" +msgstr "L'instruction :keyword:`!pass`" -#: ../Doc/reference/simple_stmts.rst:415 +#: ../Doc/reference/simple_stmts.rst:426 msgid "" ":keyword:`pass` is a null operation --- when it is executed, nothing " "happens. It is useful as a placeholder when a statement is required " @@ -609,11 +616,11 @@ msgstr "" "syntaxiquement requise mais qu'aucun code ne doit être exécuté. Par " "exemple ::" -#: ../Doc/reference/simple_stmts.rst:427 -msgid "The :keyword:`del` statement" -msgstr "L'instruction :keyword:`del`" +#: ../Doc/reference/simple_stmts.rst:438 +msgid "The :keyword:`!del` statement" +msgstr "L'instruction :keyword:`!del`" -#: ../Doc/reference/simple_stmts.rst:437 +#: ../Doc/reference/simple_stmts.rst:448 msgid "" "Deletion is recursively defined very similar to the way assignment is " "defined. Rather than spelling it out in full details, here are some hints." @@ -622,7 +629,7 @@ msgstr "" "l'assignation. Plutôt que de détailler cela de manière approfondie, voici " "quelques indices." -#: ../Doc/reference/simple_stmts.rst:440 +#: ../Doc/reference/simple_stmts.rst:451 msgid "" "Deletion of a target list recursively deletes each target, from left to " "right." @@ -630,7 +637,7 @@ msgstr "" "La suppression d'une liste cible (*target_list* dans la grammaire ci-dessus) " "supprime récursivement chaque cible, de la gauche vers la droite." -#: ../Doc/reference/simple_stmts.rst:446 +#: ../Doc/reference/simple_stmts.rst:457 msgid "" "Deletion of a name removes the binding of that name from the local or global " "namespace, depending on whether the name occurs in a :keyword:`global` " @@ -640,9 +647,9 @@ msgstr "" "La suppression d'un nom détruit le lien entre ce nom dans l'espace des noms " "locaux, ou l'espace des noms globaux si ce nom apparaît dans une " "instruction :keyword:`global` dans le même bloc de code. Si le nom n'est pas " -"lié, une exception :exc:`NameError` est levée." +"lié, une exception :exc:`NameError` est levée." -#: ../Doc/reference/simple_stmts.rst:453 +#: ../Doc/reference/simple_stmts.rst:464 msgid "" "Deletion of attribute references, subscriptions and slicings is passed to " "the primary object involved; deletion of a slicing is in general equivalent " @@ -654,7 +661,7 @@ msgstr "" "général équivalente à l'assignation d'une tranche vide du type adéquat (mais " "ceci est au final déterminé par l'objet que l'on tranche)." -#: ../Doc/reference/simple_stmts.rst:458 +#: ../Doc/reference/simple_stmts.rst:469 msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block." @@ -662,11 +669,11 @@ msgstr "" "Auparavant, il était illégal de supprimer un nom dans l'espace des noms " "locaux si celui-ci apparaissait comme variable libre dans un bloc imbriqué." -#: ../Doc/reference/simple_stmts.rst:466 -msgid "The :keyword:`return` statement" -msgstr "L'instruction :keyword:`return`" +#: ../Doc/reference/simple_stmts.rst:477 +msgid "The :keyword:`!return` statement" +msgstr "L'instruction :keyword:`!return`" -#: ../Doc/reference/simple_stmts.rst:476 +#: ../Doc/reference/simple_stmts.rst:487 msgid "" ":keyword:`return` may only occur syntactically nested in a function " "definition, not within a nested class definition." @@ -674,7 +681,7 @@ msgstr "" ":keyword:`return` ne peut être placée qu'à l'intérieur d'une définition de " "fonction, pas à l'intérieur d'une définition de classe." -#: ../Doc/reference/simple_stmts.rst:479 +#: ../Doc/reference/simple_stmts.rst:490 msgid "" "If an expression list is present, it is evaluated, else ``None`` is " "substituted." @@ -683,7 +690,7 @@ msgstr "" "est présente, elle est évaluée, sinon ``None`` est utilisée comme valeur par " "défaut." -#: ../Doc/reference/simple_stmts.rst:481 +#: ../Doc/reference/simple_stmts.rst:492 msgid "" ":keyword:`return` leaves the current function call with the expression list " "(or ``None``) as return value." @@ -691,17 +698,17 @@ msgstr "" ":keyword:`return` quitte l'appel à la fonction courante avec la liste " "d'expressions (ou ``None``) comme valeur de retour." -#: ../Doc/reference/simple_stmts.rst:486 +#: ../Doc/reference/simple_stmts.rst:497 msgid "" "When :keyword:`return` passes control out of a :keyword:`try` statement with " -"a :keyword:`finally` clause, that :keyword:`finally` clause is executed " +"a :keyword:`finally` clause, that :keyword:`!finally` clause is executed " "before really leaving the function." msgstr "" "Quand :keyword:`return` fait sortir d'une instruction :keyword:`try` avec " -"une clause :keyword:`finally`, cette clause :keyword:`finally` est exécutée " +"une clause :keyword:`finally`, cette clause :keyword:`!finally` est exécutée " "avant de réellement quitter la fonction." -#: ../Doc/reference/simple_stmts.rst:490 +#: ../Doc/reference/simple_stmts.rst:501 msgid "" "In a generator function, the :keyword:`return` statement indicates that the " "generator is done and will cause :exc:`StopIteration` to be raised. The " @@ -714,23 +721,23 @@ msgstr "" "construire l'exception :exc:`StopIteration` et devient l'attribut :attr:" "`StopIteration.value`." -#: ../Doc/reference/simple_stmts.rst:495 +#: ../Doc/reference/simple_stmts.rst:506 msgid "" "In an asynchronous generator function, an empty :keyword:`return` statement " "indicates that the asynchronous generator is done and will cause :exc:" -"`StopAsyncIteration` to be raised. A non-empty :keyword:`return` statement " +"`StopAsyncIteration` to be raised. A non-empty :keyword:`!return` statement " "is a syntax error in an asynchronous generator function." msgstr "" "Dans une fonction générateur asynchrone, une instruction :keyword:`return` " "vide indique que le générateur asynchrone est terminé et provoque la levée " -"d'une :exc:`StopAsyncIteration`. Une instruction :keyword:`return` non vide " +"d'une :exc:`StopAsyncIteration`. Une instruction :keyword:`!return` non vide " "est une erreur de syntaxe dans une fonction générateur asynchrone." -#: ../Doc/reference/simple_stmts.rst:503 -msgid "The :keyword:`yield` statement" -msgstr "L'instruction :keyword:`yield`" +#: ../Doc/reference/simple_stmts.rst:514 +msgid "The :keyword:`!yield` statement" +msgstr "L'instruction :keyword:`!yield`" -#: ../Doc/reference/simple_stmts.rst:515 +#: ../Doc/reference/simple_stmts.rst:526 msgid "" "A :keyword:`yield` statement is semantically equivalent to a :ref:`yield " "expression `. The yield statement can be used to omit the " @@ -740,27 +747,27 @@ msgstr "" "L'instruction :keyword:`yield` est sémantiquement équivalente à une :ref:" "`expression yield `. L'instruction *yield* peut être utilisée " "pour omettre les parenthèses qui seraient autrement requises dans " -"l'instruction équivalente d'expression yield. Par exemple, les instructions " -"yield ::" +"l'instruction équivalente d'expression *yield*. Par exemple, les " +"instructions *yield* ::" -#: ../Doc/reference/simple_stmts.rst:523 +#: ../Doc/reference/simple_stmts.rst:534 msgid "are equivalent to the yield expression statements ::" -msgstr "sont équivalentes aux instructions expressions yield ::" +msgstr "sont équivalentes aux instructions expressions *yield* ::" -#: ../Doc/reference/simple_stmts.rst:528 +#: ../Doc/reference/simple_stmts.rst:539 msgid "" "Yield expressions and statements are only used when defining a :term:" "`generator` function, and are only used in the body of the generator " "function. Using yield in a function definition is sufficient to cause that " "definition to create a generator function instead of a normal function." msgstr "" -"Les expressions et les instructions yield sont utilisées seulement dans la " +"Les expressions et les instructions *yield* sont utilisées seulement dans la " "définition des fonctions :term:`générateurs ` et apparaissent " -"uniquement dans le corps de la fonction générateur. L'utilisation de yield " +"uniquement dans le corps de la fonction générateur. L'utilisation de *yield* " "dans la définition d'une fonction est suffisant pour que cette définition " "crée une fonction générateur au lieu d'une fonction normale." -#: ../Doc/reference/simple_stmts.rst:533 +#: ../Doc/reference/simple_stmts.rst:544 msgid "" "For full details of :keyword:`yield` semantics, refer to the :ref:" "`yieldexpr` section." @@ -768,11 +775,11 @@ msgstr "" "Pour tous les détails sur la sémantique de :keyword:`yield`, reportez-vous à " "la section :ref:`yieldexpr`." -#: ../Doc/reference/simple_stmts.rst:539 -msgid "The :keyword:`raise` statement" -msgstr "L'instruction :keyword:`raise`" - #: ../Doc/reference/simple_stmts.rst:550 +msgid "The :keyword:`!raise` statement" +msgstr "L'instruction :keyword:`!raise`" + +#: ../Doc/reference/simple_stmts.rst:561 msgid "" "If no expressions are present, :keyword:`raise` re-raises the last exception " "that was active in the current scope. If no exception is active in the " @@ -784,19 +791,19 @@ msgstr "" "dans la portée courante, une exception :exc:`RuntimeError` est levée, " "indiquant que c'est une erreur." -#: ../Doc/reference/simple_stmts.rst:555 +#: ../Doc/reference/simple_stmts.rst:566 msgid "" "Otherwise, :keyword:`raise` evaluates the first expression as the exception " "object. It must be either a subclass or an instance of :class:" "`BaseException`. If it is a class, the exception instance will be obtained " "when needed by instantiating the class with no arguments." msgstr "" -"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " +"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " "exception. Ce doit être une sous-classe ou une instance de :class:" "`BaseException`. Si c'est une classe, l'instance de l'exception est obtenue " "en instanciant la classe sans argument (au moment voulu)." -#: ../Doc/reference/simple_stmts.rst:560 +#: ../Doc/reference/simple_stmts.rst:571 msgid "" "The :dfn:`type` of the exception is the exception instance's class, the :dfn:" "`value` is the instance itself." @@ -804,7 +811,7 @@ msgstr "" "Le :dfn:`type` de l'exception est la classe de l'instance de l'exception, " "la :dfn:`value` est l'instance elle-même." -#: ../Doc/reference/simple_stmts.rst:565 +#: ../Doc/reference/simple_stmts.rst:576 msgid "" "A traceback object is normally created automatically when an exception is " "raised and attached to it as the :attr:`__traceback__` attribute, which is " @@ -813,13 +820,13 @@ msgid "" "exception instance, with its traceback set to its argument), like so::" msgstr "" "Normalement, un objet *trace d'appels* est créé automatiquement quand une " -"exception est levée et il lui est rattaché comme attribut :attr:" +"exception est levée et il lui est rattaché comme attribut :attr:" "`__traceback__`, en lecture-écriture. Vous pouvez créer une exception et " "définir votre propre trace d'appels d'un seul coup en utilisant la méthode " "des exceptions :meth:`with_traceback` (qui renvoie la même instance " "d'exception avec sa trace d'appels passée en argument), comme ceci ::" -#: ../Doc/reference/simple_stmts.rst:577 +#: ../Doc/reference/simple_stmts.rst:588 msgid "" "The ``from`` clause is used for exception chaining: if given, the second " "*expression* must be another exception class or instance, which will then be " @@ -828,12 +835,12 @@ msgid "" "be printed::" msgstr "" "La clause ``from`` est utilisée pour chaîner les exceptions : si vous la " -"fournissez, la seconde \"expression\" doit être une autre classe ou instance " +"fournissez, la seconde « expression » doit être une autre classe ou instance " "d'exception, qui est rattachée à l'exception levée en tant qu'attribut :attr:" "`__cause__` (en lecture-écriture). Si l'exception levée n'est pas gérée, les " "deux exceptions sont affichées ::" -#: ../Doc/reference/simple_stmts.rst:598 +#: ../Doc/reference/simple_stmts.rst:609 msgid "" "A similar mechanism works implicitly if an exception is raised inside an " "exception handler or a :keyword:`finally` clause: the previous exception is " @@ -844,7 +851,7 @@ msgstr "" "`finally` : la première exception est rattachée à l'attribut :attr:" "`__context__` de la nouvelle exception ::" -#: ../Doc/reference/simple_stmts.rst:617 +#: ../Doc/reference/simple_stmts.rst:628 msgid "" "Exception chaining can be explicitly suppressed by specifying :const:`None` " "in the ``from`` clause::" @@ -852,7 +859,7 @@ msgstr "" "Le chaînage d'exceptions peut être explicitement supprimé en spécifiant :" "const:`None` dans la clause ``from`` ::" -#: ../Doc/reference/simple_stmts.rst:629 +#: ../Doc/reference/simple_stmts.rst:640 msgid "" "Additional information on exceptions can be found in section :ref:" "`exceptions`, and information about handling exceptions is in section :ref:" @@ -862,13 +869,13 @@ msgstr "" "section :ref:`exceptions` et sur la gestion des exceptions dans la section :" "ref:`try`." -#: ../Doc/reference/simple_stmts.rst:632 +#: ../Doc/reference/simple_stmts.rst:643 msgid ":const:`None` is now permitted as ``Y`` in ``raise X from Y``." msgstr "" ":const:`None` est dorénavant autorisée en tant que ``Y`` dans ``raise X from " "Y``." -#: ../Doc/reference/simple_stmts.rst:635 +#: ../Doc/reference/simple_stmts.rst:646 msgid "" "The ``__suppress_context__`` attribute to suppress automatic display of the " "exception context." @@ -876,11 +883,11 @@ msgstr "" "L'attribut ``__suppress_context__`` pour supprimer l'affichage automatique " "du contexte de l'exception." -#: ../Doc/reference/simple_stmts.rst:642 -msgid "The :keyword:`break` statement" -msgstr "L'instruction :keyword:`break`" - #: ../Doc/reference/simple_stmts.rst:653 +msgid "The :keyword:`!break` statement" +msgstr "L'instruction :keyword:`!break`" + +#: ../Doc/reference/simple_stmts.rst:664 msgid "" ":keyword:`break` may only occur syntactically nested in a :keyword:`for` or :" "keyword:`while` loop, but not nested in a function or class definition " @@ -890,15 +897,15 @@ msgstr "" "boucle :keyword:`for` ou :keyword:`while`, mais pas dans une définition de " "fonction ou de classe à l'intérieur de cette boucle." -#: ../Doc/reference/simple_stmts.rst:660 +#: ../Doc/reference/simple_stmts.rst:671 msgid "" -"It terminates the nearest enclosing loop, skipping the optional :keyword:" -"`else` clause if the loop has one." +"It terminates the nearest enclosing loop, skipping the optional :keyword:`!" +"else` clause if the loop has one." msgstr "" "Elle termine la boucle la plus imbriquée, shuntant l'éventuelle clause :" -"keyword:`else` de la boucle." +"keyword:`!else` de la boucle." -#: ../Doc/reference/simple_stmts.rst:663 +#: ../Doc/reference/simple_stmts.rst:674 msgid "" "If a :keyword:`for` loop is terminated by :keyword:`break`, the loop control " "target keeps its current value." @@ -906,21 +913,21 @@ msgstr "" "Si une boucle :keyword:`for` est terminée par un :keyword:`break`, la cible " "qui contrôle la boucle garde sa valeur." -#: ../Doc/reference/simple_stmts.rst:668 +#: ../Doc/reference/simple_stmts.rst:679 msgid "" "When :keyword:`break` passes control out of a :keyword:`try` statement with " -"a :keyword:`finally` clause, that :keyword:`finally` clause is executed " +"a :keyword:`finally` clause, that :keyword:`!finally` clause is executed " "before really leaving the loop." msgstr "" "Quand :keyword:`break` passe le contrôle en dehors d'une instruction :" "keyword:`try` qui comporte une clause :keyword:`finally`, cette clause :" -"keyword:`finally` est exécutée avant de quitter la boucle." +"keyword:`!finally` est exécutée avant de quitter la boucle." -#: ../Doc/reference/simple_stmts.rst:676 -msgid "The :keyword:`continue` statement" -msgstr "L'instruction :keyword:`continue`" +#: ../Doc/reference/simple_stmts.rst:687 +msgid "The :keyword:`!continue` statement" +msgstr "L'instruction :keyword:`!continue`" -#: ../Doc/reference/simple_stmts.rst:688 +#: ../Doc/reference/simple_stmts.rst:699 msgid "" ":keyword:`continue` may only occur syntactically nested in a :keyword:`for` " "or :keyword:`while` loop, but not nested in a function or class definition " @@ -933,22 +940,22 @@ msgstr "" "de cette boucle. Elle fait continuer le flot d'exécution au prochain cycle " "de la boucle la plus imbriquée." -#: ../Doc/reference/simple_stmts.rst:693 +#: ../Doc/reference/simple_stmts.rst:704 msgid "" "When :keyword:`continue` passes control out of a :keyword:`try` statement " -"with a :keyword:`finally` clause, that :keyword:`finally` clause is executed " -"before really starting the next loop cycle." +"with a :keyword:`finally` clause, that :keyword:`!finally` clause is " +"executed before really starting the next loop cycle." msgstr "" "Quand :keyword:`continue` passe le contrôle en dehors d'une instruction :" "keyword:`try` qui comporte une clause :keyword:`finally`, cette clause :" -"keyword:`finally` est exécutée avant de commencer le cycle suivant de la " +"keyword:`!finally` est exécutée avant de commencer le cycle suivant de la " "boucle." -#: ../Doc/reference/simple_stmts.rst:702 -msgid "The :keyword:`import` statement" -msgstr "L'instruction :keyword:`import`" +#: ../Doc/reference/simple_stmts.rst:713 +msgid "The :keyword:`!import` statement" +msgstr "L'instruction :keyword:`!import`" -#: ../Doc/reference/simple_stmts.rst:720 +#: ../Doc/reference/simple_stmts.rst:734 msgid "" "The basic import statement (no :keyword:`from` clause) is executed in two " "steps:" @@ -956,11 +963,11 @@ msgstr "" "L'instruction de base *import* (sans clause :keyword:`from`) est exécutée en " "deux étapes :" -#: ../Doc/reference/simple_stmts.rst:723 +#: ../Doc/reference/simple_stmts.rst:737 msgid "find a module, loading and initializing it if necessary" msgstr "trouve un module, le charge et l'initialise si nécessaire" -#: ../Doc/reference/simple_stmts.rst:724 +#: ../Doc/reference/simple_stmts.rst:738 msgid "" "define a name or names in the local namespace for the scope where the :" "keyword:`import` statement occurs." @@ -968,7 +975,7 @@ msgstr "" "définit un ou des noms (*name* dans la grammaire ci-dessus) dans l'espace " "des noms locaux de la portée où l'instruction :keyword:`import` apparaît." -#: ../Doc/reference/simple_stmts.rst:727 +#: ../Doc/reference/simple_stmts.rst:741 msgid "" "When the statement contains multiple clauses (separated by commas) the two " "steps are carried out separately for each clause, just as though the clauses " @@ -978,7 +985,7 @@ msgstr "" "les deux étapes sont menées séparément pour chaque clause, comme si les " "clauses étaient séparées dans des instructions d'importations individuelles." -#: ../Doc/reference/simple_stmts.rst:732 +#: ../Doc/reference/simple_stmts.rst:746 msgid "" "The details of the first step, finding and loading modules are described in " "greater detail in the section on the :ref:`import system `, " @@ -989,7 +996,7 @@ msgid "" "module, which includes execution of the module's code." msgstr "" "Les détails de la première étape, de recherche et de chargement des modules " -"sont décrits largement dans la section relative au :ref:`système " +"sont décrits largement dans la section relative au :ref:`système " "d'importation `, qui décrit également les différents types de " "paquets et modules qui peuvent être importés, de même que les points " "d'entrée pouvant être utilisés pour personnaliser le système d'importation. " @@ -997,23 +1004,23 @@ msgstr "" "n'a pas été trouvé, soit qu'une erreur s'est produite lors de " "l'initialisation du module, ce qui comprend l'exécution du code du module." -#: ../Doc/reference/simple_stmts.rst:740 +#: ../Doc/reference/simple_stmts.rst:754 msgid "" "If the requested module is retrieved successfully, it will be made available " "in the local namespace in one of three ways:" msgstr "" "Si le module requis est bien récupéré, il est mis à disposition de l'espace " -"de noms locaux suivant l'une des trois façons suivantes :" +"de nommage local suivant l'une des trois façons suivantes :" -#: ../Doc/reference/simple_stmts.rst:745 +#: ../Doc/reference/simple_stmts.rst:759 msgid "" -"If the module name is followed by :keyword:`as`, then the name following :" -"keyword:`as` is bound directly to the imported module." +"If the module name is followed by :keyword:`!as`, then the name following :" +"keyword:`!as` is bound directly to the imported module." msgstr "" -"Si le nom du module est suivi par :keyword:`as`, alors le nom suivant :" -"keyword:`as` est directement lié au module importé." +"Si le nom du module est suivi par :keyword:`!as`, alors le nom suivant :" +"keyword:`!as` est directement lié au module importé." -#: ../Doc/reference/simple_stmts.rst:747 +#: ../Doc/reference/simple_stmts.rst:761 msgid "" "If no other name is specified, and the module being imported is a top level " "module, the module's name is bound in the local namespace as a reference to " @@ -1023,7 +1030,7 @@ msgstr "" "est un module de niveau le plus haut, le nom du module est lié dans l'espace " "des noms locaux au module importé ;" -#: ../Doc/reference/simple_stmts.rst:750 +#: ../Doc/reference/simple_stmts.rst:764 msgid "" "If the module being imported is *not* a top level module, then the name of " "the top level package that contains the module is bound in the local " @@ -1036,11 +1043,11 @@ msgstr "" "pouvez accéder au module importé en utilisant son nom pleinement qualifié et " "non directement." -#: ../Doc/reference/simple_stmts.rst:761 +#: ../Doc/reference/simple_stmts.rst:774 msgid "The :keyword:`from` form uses a slightly more complex process:" msgstr "La forme :keyword:`from` utilise un processus un peu plus complexe :" -#: ../Doc/reference/simple_stmts.rst:763 +#: ../Doc/reference/simple_stmts.rst:776 msgid "" "find the module specified in the :keyword:`from` clause, loading and " "initializing it if necessary;" @@ -1048,15 +1055,15 @@ msgstr "" "trouve le module spécifié dans la clause :keyword:`from`, le charge et " "l'initialise si nécessaire ;" -#: ../Doc/reference/simple_stmts.rst:765 +#: ../Doc/reference/simple_stmts.rst:778 msgid "for each of the identifiers specified in the :keyword:`import` clauses:" msgstr "pour chaque nom spécifié dans les clauses :keyword:`import` :" -#: ../Doc/reference/simple_stmts.rst:767 +#: ../Doc/reference/simple_stmts.rst:780 msgid "check if the imported module has an attribute by that name" msgstr "vérifie si le module importé possède un attribut avec ce nom ;" -#: ../Doc/reference/simple_stmts.rst:768 +#: ../Doc/reference/simple_stmts.rst:781 msgid "" "if not, attempt to import a submodule with that name and then check the " "imported module again for that attribute" @@ -1064,25 +1071,25 @@ msgstr "" "si non, essaie d'importer un sous-module avec ce nom puis vérifie si le " "module importé possède lui-même cet attribut ;" -#: ../Doc/reference/simple_stmts.rst:770 +#: ../Doc/reference/simple_stmts.rst:783 msgid "if the attribute is not found, :exc:`ImportError` is raised." msgstr "si l'attribut n'est pas trouvé, une :exc:`ImportError` est levée." -#: ../Doc/reference/simple_stmts.rst:771 +#: ../Doc/reference/simple_stmts.rst:784 msgid "" "otherwise, a reference to that value is stored in the local namespace, using " -"the name in the :keyword:`as` clause if it is present, otherwise using the " +"the name in the :keyword:`!as` clause if it is present, otherwise using the " "attribute name" msgstr "" "sinon, une référence à cette valeur est stockée dans l'espace des noms " -"locaux, en utilisant le nom de la clause :keyword:`as` si elle est présente, " -"sinon en utilisant le nom de l'attribut." +"locaux, en utilisant le nom de la clause :keyword:`!as` si elle est " +"présente, sinon en utilisant le nom de l'attribut." -#: ../Doc/reference/simple_stmts.rst:775 +#: ../Doc/reference/simple_stmts.rst:788 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" -#: ../Doc/reference/simple_stmts.rst:783 +#: ../Doc/reference/simple_stmts.rst:798 msgid "" "If the list of identifiers is replaced by a star (``'*'``), all public names " "defined in the module are bound in the local namespace for the scope where " @@ -1092,7 +1099,7 @@ msgstr "" "publics définis dans le module sont liés dans l'espace des noms locaux de la " "portée où apparaît l'instruction :keyword:`import`." -#: ../Doc/reference/simple_stmts.rst:789 +#: ../Doc/reference/simple_stmts.rst:804 msgid "" "The *public names* defined by a module are determined by checking the " "module's namespace for a variable named ``__all__``; if defined, it must be " @@ -1105,18 +1112,18 @@ msgid "" "API (such as library modules which were imported and used within the module)." msgstr "" "Les *noms publics* définis par un module sont déterminés en cherchant dans " -"l'espace de noms du module une variable nommée ``__all__`` ; Si elle est " +"l'espace de nommage du module une variable nommée ``__all__`` ; Si elle est " "définie, elle doit être une séquence de chaînes désignant les noms définis " "ou importés par ce module. Les noms donnés dans ``__all__`` sont tous " "considérés publics et doivent exister. Si ``__all__`` n'est pas définie, " "l'ensemble des noms publics contient tous les noms trouvés dans l'espace des " "noms du module qui ne commencent pas par un caractère souligné (``_``). " "``__all__`` doit contenir toute l'API publique. Elle est destinée à éviter " -"l'export accidentel d'éléments qui ne font pas partie de l'API (tels que des " -"modules de bibliothèques qui ont été importés et utilisé à l'intérieur du " -"module)." +"l'exportation accidentelle d'éléments qui ne font pas partie de l'API (tels " +"que des modules de bibliothèques qui ont été importés et utilisés à " +"l'intérieur du module)." -#: ../Doc/reference/simple_stmts.rst:799 +#: ../Doc/reference/simple_stmts.rst:814 msgid "" "The wild card form of import --- ``from module import *`` --- is only " "allowed at the module level. Attempting to use it in class or function " @@ -1126,7 +1133,7 @@ msgstr "" "autorisée seulement au niveau du module. Si vous essayez de l'utiliser dans " "une définition de classe ou de fonction, cela lève une :exc:`SyntaxError`." -#: ../Doc/reference/simple_stmts.rst:806 +#: ../Doc/reference/simple_stmts.rst:821 msgid "" "When specifying what module to import you do not have to specify the " "absolute name of the module. When a module or package is contained within " @@ -1139,8 +1146,8 @@ msgid "" "levels, etc. So if you execute ``from . import mod`` from a module in the " "``pkg`` package then you will end up importing ``pkg.mod``. If you execute " "``from ..subpkg2 import mod`` from within ``pkg.subpkg1`` you will import " -"``pkg.subpkg2.mod``. The specification for relative imports is contained " -"within :pep:`328`." +"``pkg.subpkg2.mod``. The specification for relative imports is contained in " +"the :ref:`relativeimports` section." msgstr "" "Quand vous spécifiez les modules à importer, vous n'avez pas besoin de " "spécifier les noms absolus des modules. Quand un module ou un paquet est " @@ -1156,9 +1163,9 @@ msgstr "" "paquet ``pkg``, vous importez finalement ``pkg.mod``. Et si vous exécutez " "``from ..souspkg2 import mod`` depuis ``pkg.souspkg1``, vous importez " "finalement ``pkg.souspkg2.mod``. La spécification des importations relatives " -"se situe dans la :pep:`328`." +"se situe dans la section :ref:`relativeimports`." -#: ../Doc/reference/simple_stmts.rst:819 +#: ../Doc/reference/simple_stmts.rst:835 msgid "" ":func:`importlib.import_module` is provided to support applications that " "determine dynamically the modules to be loaded." @@ -1166,11 +1173,11 @@ msgstr "" ":func:`importlib.import_module` est fournie pour gérer les applications qui " "déterminent dynamiquement les modules à charger." -#: ../Doc/reference/simple_stmts.rst:826 +#: ../Doc/reference/simple_stmts.rst:842 msgid "Future statements" msgstr "L'instruction future" -#: ../Doc/reference/simple_stmts.rst:830 +#: ../Doc/reference/simple_stmts.rst:848 msgid "" "A :dfn:`future statement` is a directive to the compiler that a particular " "module should be compiled using syntax or semantics that will be available " @@ -1181,7 +1188,7 @@ msgstr "" "sémantique qui sera disponible dans une future version de Python où cette " "fonctionnalité est devenue un standard." -#: ../Doc/reference/simple_stmts.rst:834 +#: ../Doc/reference/simple_stmts.rst:852 msgid "" "The future statement is intended to ease migration to future versions of " "Python that introduce incompatible changes to the language. It allows use " @@ -1194,7 +1201,7 @@ msgstr "" "module avant qu'une version n'officialise cette fonctionnalité comme un " "standard." -#: ../Doc/reference/simple_stmts.rst:846 +#: ../Doc/reference/simple_stmts.rst:864 msgid "" "A future statement must appear near the top of the module. The only lines " "that can appear before a future statement are:" @@ -1202,31 +1209,31 @@ msgstr "" "Une instruction *future* doit apparaître en haut du module. Les seules " "lignes autorisées avant une instruction *future* sont :" -#: ../Doc/reference/simple_stmts.rst:849 +#: ../Doc/reference/simple_stmts.rst:867 msgid "the module docstring (if any)," msgstr "la chaîne de documentation du module (si elle existe)," -#: ../Doc/reference/simple_stmts.rst:850 +#: ../Doc/reference/simple_stmts.rst:868 msgid "comments," msgstr "des commentaires," -#: ../Doc/reference/simple_stmts.rst:851 +#: ../Doc/reference/simple_stmts.rst:869 msgid "blank lines, and" msgstr "des lignes vides et" -#: ../Doc/reference/simple_stmts.rst:852 +#: ../Doc/reference/simple_stmts.rst:870 msgid "other future statements." msgstr "d'autres instructions *future*." -#: ../Doc/reference/simple_stmts.rst:854 +#: ../Doc/reference/simple_stmts.rst:872 msgid "" "The only feature in Python 3.7 that requires using the future statement is " "``annotations``." msgstr "" "La seule fonctionnalité dans Python 3.7 qui nécessite l'utilisation de " -"l'instruction `future` est ``annotations``. " +"l'instruction `future` est ``annotations``." -#: ../Doc/reference/simple_stmts.rst:857 +#: ../Doc/reference/simple_stmts.rst:875 msgid "" "All historical features enabled by the future statement are still recognized " "by Python 3. The list includes ``absolute_import``, ``division``, " @@ -1243,7 +1250,7 @@ msgstr "" "elles sont de toute manière activées ; elles ne sont conservées que par " "souci de compatibilité descendante." -#: ../Doc/reference/simple_stmts.rst:864 +#: ../Doc/reference/simple_stmts.rst:882 msgid "" "A future statement is recognized and treated specially at compile time: " "Changes to the semantics of core constructs are often implemented by " @@ -1260,7 +1267,7 @@ msgstr "" "le module de manière différente. De telles décisions ne peuvent pas être " "différées au moment de l'exécution." -#: ../Doc/reference/simple_stmts.rst:871 +#: ../Doc/reference/simple_stmts.rst:889 msgid "" "For any given release, the compiler knows which feature names have been " "defined, and raises a compile-time error if a future statement contains a " @@ -1270,7 +1277,7 @@ msgstr "" "définies et lève une erreur à la compilation si une instruction *future* " "contient une fonctionnalité qui lui est inconnue." -#: ../Doc/reference/simple_stmts.rst:875 +#: ../Doc/reference/simple_stmts.rst:893 msgid "" "The direct runtime semantics are the same as for any import statement: there " "is a standard module :mod:`__future__`, described later, and it will be " @@ -1278,10 +1285,10 @@ msgid "" msgstr "" "La sémantique à l'exécution est la même que pour toute autre instruction " "d'importation : il existe un module standard :mod:`__future__`, décrit plus " -"loin, qui est importé comme les autres au moment ou l'instruction *future* " +"loin, qui est importé comme les autres au moment où l'instruction *future* " "est exécutée." -#: ../Doc/reference/simple_stmts.rst:879 +#: ../Doc/reference/simple_stmts.rst:897 msgid "" "The interesting runtime semantics depend on the specific feature enabled by " "the future statement." @@ -1289,11 +1296,11 @@ msgstr "" "La sémantique particulière à l'exécution dépend des fonctionnalités " "apportées par l'instruction *future*." -#: ../Doc/reference/simple_stmts.rst:882 +#: ../Doc/reference/simple_stmts.rst:900 msgid "Note that there is nothing special about the statement::" msgstr "Notez que l'instruction suivante est tout à fait normale ::" -#: ../Doc/reference/simple_stmts.rst:886 +#: ../Doc/reference/simple_stmts.rst:904 msgid "" "That is not a future statement; it's an ordinary import statement with no " "special semantics or syntax restrictions." @@ -1301,7 +1308,7 @@ msgstr "" "Ce n'est pas une instruction *future* ; c'est une instruction d'importation " "ordinaire qui n'a aucune sémantique particulière ou restriction de syntaxe." -#: ../Doc/reference/simple_stmts.rst:889 +#: ../Doc/reference/simple_stmts.rst:907 msgid "" "Code compiled by calls to the built-in functions :func:`exec` and :func:" "`compile` that occur in a module :mod:`M` containing a future statement " @@ -1313,10 +1320,9 @@ msgstr "" "`compile` dans un module :mod:`M` comportant une instruction *future* " "utilise, par défaut, la nouvelle syntaxe ou sémantique associée à " "l'instruction *future*. Ceci peut être contrôle par des arguments optionnels " -"à :func:`compile` --- voir la documentation de cette fonction pour les " -"détails." +"à :func:`compile` — voir la documentation de cette fonction pour les détails." -#: ../Doc/reference/simple_stmts.rst:895 +#: ../Doc/reference/simple_stmts.rst:913 msgid "" "A future statement typed at an interactive interpreter prompt will take " "effect for the rest of the interpreter session. If an interpreter is " @@ -1326,47 +1332,47 @@ msgid "" msgstr "" "Une instruction *future* entrée à l'invite de l'interpréteur interactif est " "effective pour le reste de la session de l'interpréteur. Si l'interpréteur " -"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " +"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " "être exécuté et que ce script contient une instruction *future*, elle est " "effective pour la session interactive qui démarre après l'exécution du " "script." -#: ../Doc/reference/simple_stmts.rst:903 +#: ../Doc/reference/simple_stmts.rst:921 msgid ":pep:`236` - Back to the __future__" -msgstr ":pep:`236` -- retour vers le __future__" +msgstr ":pep:`236` — retour vers le ``__future__``" -#: ../Doc/reference/simple_stmts.rst:904 +#: ../Doc/reference/simple_stmts.rst:922 msgid "The original proposal for the __future__ mechanism." -msgstr "La proposition originale pour le mécanisme de __future__." +msgstr "La proposition originale pour le mécanisme de ``__future__``." -#: ../Doc/reference/simple_stmts.rst:910 -msgid "The :keyword:`global` statement" -msgstr "L'instruction :keyword:`global`" +#: ../Doc/reference/simple_stmts.rst:928 +msgid "The :keyword:`!global` statement" +msgstr "L'instruction :keyword:`!global`" -#: ../Doc/reference/simple_stmts.rst:919 +#: ../Doc/reference/simple_stmts.rst:938 msgid "" "The :keyword:`global` statement is a declaration which holds for the entire " "current code block. It means that the listed identifiers are to be " "interpreted as globals. It would be impossible to assign to a global " -"variable without :keyword:`global`, although free variables may refer to " +"variable without :keyword:`!global`, although free variables may refer to " "globals without being declared global." msgstr "" "L'instruction :keyword:`global` est une déclaration qui couvre l'ensemble du " "bloc de code courant. Elle signifie que les noms (*identifier* dans la " "grammaire ci-dessus) listés doivent être interprétés comme globaux. Il est " -"impossible d'assigner une variable globale sans :keyword:`global`, mais " +"impossible d'assigner une variable globale sans :keyword:`!global`, mais " "rappelez-vous que les variables libres peuvent faire référence à des " "variables globales sans avoir été déclarées en tant que telles." -#: ../Doc/reference/simple_stmts.rst:925 +#: ../Doc/reference/simple_stmts.rst:944 msgid "" "Names listed in a :keyword:`global` statement must not be used in the same " -"code block textually preceding that :keyword:`global` statement." +"code block textually preceding that :keyword:`!global` statement." msgstr "" "Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " -"utilisés, dans le même bloc de code, avant l'instruction :keyword:`global`." +"utilisés, dans le même bloc de code, avant l'instruction :keyword:`!global`." -#: ../Doc/reference/simple_stmts.rst:928 +#: ../Doc/reference/simple_stmts.rst:947 msgid "" "Names listed in a :keyword:`global` statement must not be defined as formal " "parameters or in a :keyword:`for` loop control target, :keyword:`class` " @@ -1375,10 +1381,10 @@ msgid "" msgstr "" "Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " "définis en tant que paramètre formel, cible d'une boucle :keyword:`for`, " -"dans une définition de :keyword:`class`, de fonction, d'instruction :" -"keyword:`import` ou une annotation de variable." +"dans une définition de :keyword:`class`, de fonction, d'instruction :keyword:" +"`import` ou une annotation de variable." -#: ../Doc/reference/simple_stmts.rst:935 +#: ../Doc/reference/simple_stmts.rst:954 msgid "" "The current implementation does not enforce some of these restrictions, but " "programs should not abuse this freedom, as future implementations may " @@ -1389,31 +1395,31 @@ msgstr "" "faire la vérification ou modifier le comportement du programme sans vous " "avertir." -#: ../Doc/reference/simple_stmts.rst:944 +#: ../Doc/reference/simple_stmts.rst:963 msgid "" "**Programmer's note:** :keyword:`global` is a directive to the parser. It " -"applies only to code parsed at the same time as the :keyword:`global` " -"statement. In particular, a :keyword:`global` statement contained in a " +"applies only to code parsed at the same time as the :keyword:`!global` " +"statement. In particular, a :keyword:`!global` statement contained in a " "string or code object supplied to the built-in :func:`exec` function does " "not affect the code block *containing* the function call, and code contained " -"in such a string is unaffected by :keyword:`global` statements in the code " +"in such a string is unaffected by :keyword:`!global` statements in the code " "containing the function call. The same applies to the :func:`eval` and :" "func:`compile` functions." msgstr "" "**Note pour les programmeurs :** :keyword:`global` est une directive à " "l'attention de l'analyseur syntaxique. Elle s'applique uniquement au code " -"analysé en même temps que l'instruction :keyword:`global`. En particulier, " -"une instruction :keyword:`global` contenue dans une chaîne ou un objet code " +"analysé en même temps que l'instruction :keyword:`!global`. En particulier, " +"une instruction :keyword:`!global` contenue dans une chaîne ou un objet code " "fourni à la fonction native :func:`exec` n'affecte pas le code *contenant* " "cet appel et le code contenu dans un telle chaîne n'est pas affecté par une " -"instruction :keyword:`global` placée dans le code contenant l'appel. Il en " +"instruction :keyword:`!global` placée dans le code contenant l'appel. Il en " "est de même pour les fonctions :func:`eval` et :func:`compile`." -#: ../Doc/reference/simple_stmts.rst:956 -msgid "The :keyword:`nonlocal` statement" -msgstr "L'instruction :keyword:`nonlocal`" +#: ../Doc/reference/simple_stmts.rst:975 +msgid "The :keyword:`!nonlocal` statement" +msgstr "L'instruction :keyword:`!nonlocal`" -#: ../Doc/reference/simple_stmts.rst:967 +#: ../Doc/reference/simple_stmts.rst:987 msgid "" "The :keyword:`nonlocal` statement causes the listed identifiers to refer to " "previously bound variables in the nearest enclosing scope excluding globals. " @@ -1429,7 +1435,7 @@ msgstr "" "lier à des variables en dehors de la portée locale du code mais sans avoir " "de portée globale (c'est-à-dire de niveau module)." -#: ../Doc/reference/simple_stmts.rst:977 +#: ../Doc/reference/simple_stmts.rst:997 msgid "" "Names listed in a :keyword:`nonlocal` statement, unlike those listed in a :" "keyword:`global` statement, must refer to pre-existing bindings in an " @@ -1442,7 +1448,7 @@ msgstr "" "existantes dans les portées englobantes (en effet, la portée dans laquelle " "devrait être créée la liaison ne peut pas être déterminée *a priori*)." -#: ../Doc/reference/simple_stmts.rst:982 +#: ../Doc/reference/simple_stmts.rst:1002 msgid "" "Names listed in a :keyword:`nonlocal` statement must not collide with pre-" "existing bindings in the local scope." @@ -1450,10 +1456,34 @@ msgstr "" "Les noms listés dans l'instruction :keyword:`nonlocal` ne doivent entrer en " "collision avec des liaisons déjà établies dans la portée locale." -#: ../Doc/reference/simple_stmts.rst:987 +#: ../Doc/reference/simple_stmts.rst:1007 msgid ":pep:`3104` - Access to Names in Outer Scopes" msgstr ":pep:`3104` -- Accès à des noms en dehors de la portée locale" -#: ../Doc/reference/simple_stmts.rst:988 +#: ../Doc/reference/simple_stmts.rst:1008 msgid "The specification for the :keyword:`nonlocal` statement." msgstr "Les spécifications pour l'instruction :keyword:`nonlocal`." + +#~ msgid "" +#~ "If the target list is empty: The object must also be an empty iterable." +#~ msgstr "" +#~ "si la liste cible est vide : l'objet doit aussi être un itérable vide." + +#~ msgid "" +#~ "If the target list is a comma-separated list of targets, or a single " +#~ "target in square brackets: The object must be an iterable with the same " +#~ "number of items as there are targets in the target list, and the items " +#~ "are assigned, from left to right, to the corresponding targets." +#~ msgstr "" +#~ "Si la liste cible est une liste de cibles dont les éléments sont séparés " +#~ "par des virgules, ou une cible unique entourée par des crochets : l'objet " +#~ "doit être un itérable avec le même nombre d'éléments qu'il y a de cibles " +#~ "dans la liste cible ; les éléments sont alors assignés, de la gauche vers " +#~ "la droite, aux cibles correspondantes." + +#~ msgid "" +#~ ":pep:`526` - Variable and attribute annotation syntax :pep:`484` - Type " +#~ "hints" +#~ msgstr "" +#~ ":pep:`526` -- Syntaxe pour les annotations de variables et d'attributs, :" +#~ "pep:`484` -- Indications de types" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index 2f66d6443..e3ac130aa 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-02 22:54+0200\n" +"PO-Revision-Date: 2019-03-19 23:26+0100\n" "Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -53,7 +53,7 @@ msgstr "" "modules intégrés et standard sont disponibles mais aucun n'a été initialisé, " "à l'exception de :mod:`sys` (divers services système), :mod:`builtins` " "(fonctions natives, exceptions et ``None``) et :mod:`__main__`. Ce dernier " -"est utilisé pour avoir des espaces de noms locaux et globaux pour " +"est utilisé pour avoir des espaces de nommage locaux et globaux pour " "l'exécution du programme complet." #: ../Doc/reference/toplevel_components.rst:36 @@ -72,11 +72,11 @@ msgid "" "identical to that of a complete program; each statement is executed in the " "namespace of :mod:`__main__`." msgstr "" -"L'interpréteur peut également être invoqué en mode interactif ; dans ce cas, " +"L'interpréteur peut également être invoqué en mode interactif ; dans ce cas, " "il ne lit et n'exécute pas un programme complet mais lit et exécute une " "seule instruction (éventuellement composée) à la fois. L'environnement " -"initial est identique à celui d'un programme complet ; chaque instruction " -"est exécutée dans l'espace de noms de :mod:`__main__`." +"initial est identique à celui d'un programme complet ; chaque instruction " +"est exécutée dans l'espace de nommage de :mod:`__main__`." #: ../Doc/reference/toplevel_components.rst:55 msgid "" @@ -86,11 +86,11 @@ msgid "" "is a tty device, the interpreter enters interactive mode; otherwise, it " "executes the file as a complete program." msgstr "" -"Un programme complet peut être transmis à l'interpréteur sous trois formes : " +"Un programme complet peut être transmis à l'interpréteur sous trois formes : " "avec l'option :option:`-c` *chaîne* en ligne de commande, avec un fichier " -"passé comme premier argument de ligne de commande ou comme entrée standard. " +"passé comme premier argument de ligne de commande ou comme entrée standard. " "Si le fichier ou l'entrée standard est un périphérique tty, l'interpréteur " -"entre en mode interactif ; sinon, il exécute le fichier comme un programme " +"entre en mode interactif ; sinon, il exécute le fichier comme un programme " "complet." #: ../Doc/reference/toplevel_components.rst:65 @@ -101,21 +101,21 @@ msgstr "Fichier d'entrée" msgid "All input read from non-interactive files has the same form:" msgstr "" "Toutes les entrées lues à partir de fichiers non interactifs sont de la même " -"forme :" +"forme :" #: ../Doc/reference/toplevel_components.rst:72 msgid "This syntax is used in the following situations:" -msgstr "Cette syntaxe est utilisée dans les situations suivantes :" +msgstr "Cette syntaxe est utilisée dans les situations suivantes :" #: ../Doc/reference/toplevel_components.rst:74 msgid "when parsing a complete Python program (from a file or from a string);" msgstr "" "lors de l'analyse d'un programme Python complet (à partir d'un fichier ou " -"d'une chaîne de caractères) ;" +"d'une chaîne de caractères) ;" #: ../Doc/reference/toplevel_components.rst:76 msgid "when parsing a module;" -msgstr "lors de l'analyse d'un module ;" +msgstr "lors de l'analyse d'un module ;" #: ../Doc/reference/toplevel_components.rst:78 msgid "when parsing a string passed to the :func:`exec` function;" @@ -130,7 +130,7 @@ msgstr "Entrée interactive" #: ../Doc/reference/toplevel_components.rst:86 msgid "Input in interactive mode is parsed using the following grammar:" msgstr "" -"L'entrée en mode interactif est analysée à l'aide de la grammaire suivante :" +"L'entrée en mode interactif est analysée à l'aide de la grammaire suivante :" #: ../Doc/reference/toplevel_components.rst:91 msgid "" @@ -139,7 +139,7 @@ msgid "" "input." msgstr "" "Notez qu'une instruction composée (de niveau supérieur) doit être suivie " -"d'une ligne blanche en mode interactif ; c'est nécessaire pour aider " +"d'une ligne blanche en mode interactif ; c'est nécessaire pour aider " "l'analyseur à détecter la fin de l'entrée." #: ../Doc/reference/toplevel_components.rst:98 @@ -153,4 +153,4 @@ msgid "" msgstr "" ":func:`eval` est utilisée pour évaluer les expressions entrées. Elle ignore " "les espaces en tête. L'argument de :func:`eval`, de type chaîne de " -"caractères, doit être de la forme suivante :" +"caractères, doit être de la forme suivante :" diff --git a/sphinx.po b/sphinx.po index 7f1650f1a..5a7d0b9b7 100644 --- a/sphinx.po +++ b/sphinx.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-03 20:52+0200\n" -"Last-Translator: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2019-08-16 22:54+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.0.2\n" +"X-Generator: Poedit 2.2\n" #: ../Doc/tools/templates/customsourcelink.html:3 msgid "This Page" @@ -21,7 +21,7 @@ msgstr "Cette page" #: ../Doc/tools/templates/customsourcelink.html:5 msgid "Report a Bug" -msgstr "Signalement de bug" +msgstr "Signalement de bogue" #: ../Doc/tools/templates/customsourcelink.html:8 msgid "Show Source" @@ -86,7 +86,7 @@ msgstr "Installation et utilisation de Python" #: ../Doc/tools/templates/indexcontent.html:22 msgid "how to use Python on different platforms" -msgstr "Utilisation de Python sur différentes plateformes" +msgstr "utilisation de Python sur différentes plateformes" #: ../Doc/tools/templates/indexcontent.html:23 msgid "Python HOWTOs" @@ -102,7 +102,7 @@ msgstr "Installation de modules Python" #: ../Doc/tools/templates/indexcontent.html:27 msgid "installing from the Python Package Index & other sources" -msgstr "Installation depuis le *Python Package Index* ou d'autres sources" +msgstr "installation depuis le *Python Package Index* ou d'autres sources" #: ../Doc/tools/templates/indexcontent.html:28 msgid "Distributing Python Modules" @@ -162,7 +162,7 @@ msgstr "Glossaire" #: ../Doc/tools/templates/indexcontent.html:47 msgid "the most important terms explained" -msgstr "Explication des mots les plus importants" +msgstr "explication des mots les plus importants" #: ../Doc/tools/templates/indexcontent.html:49 msgid "Search page" @@ -186,7 +186,7 @@ msgstr "Méta informations :" #: ../Doc/tools/templates/indexcontent.html:59 msgid "Reporting bugs" -msgstr "Signalement de bug" +msgstr "Signalement de bogue" #: ../Doc/tools/templates/indexcontent.html:60 msgid "About the documentation" @@ -197,7 +197,7 @@ msgid "History and License of Python" msgstr "Histoire et licence de Python" #: ../Doc/tools/templates/indexcontent.html:63 -#: ../Doc/tools/templates/layout.html:108 +#: ../Doc/tools/templates/layout.html:127 msgid "Copyright" msgstr "Copyright" @@ -210,83 +210,104 @@ msgid "Download these documents" msgstr "Téléchargement de ces documentations" #: ../Doc/tools/templates/indexsidebar.html:3 -msgid "Docs for other versions" -msgstr "Docs des autres versions" +msgid "Docs by version" +msgstr "Docs par version" #: ../Doc/tools/templates/indexsidebar.html:5 -msgid "Python 3.8 (in development)" -msgstr "Python 3.8 (en développement)" +msgid "Python 3.9 (in development)" +msgstr "Python 3.9 (en développement)" #: ../Doc/tools/templates/indexsidebar.html:6 -msgid "Python 3.6 (stable)" -msgstr "Python 3.6 (stable)" +msgid "Python 3.8 (pre-release)" +msgstr "Python 3.8 (pré-lancement)" #: ../Doc/tools/templates/indexsidebar.html:7 +msgid "Python 3.7 (stable)" +msgstr "Python 3.7 (stable)" + +#: ../Doc/tools/templates/indexsidebar.html:8 +msgid "Python 3.6 (security-fixes)" +msgstr "Python 3.6 (correctifs de sécurité)" + +#: ../Doc/tools/templates/indexsidebar.html:9 msgid "Python 3.5 (security-fixes)" msgstr "Python 3.5 (correctifs de sécurité)" -#: ../Doc/tools/templates/indexsidebar.html:8 +#: ../Doc/tools/templates/indexsidebar.html:10 msgid "Python 2.7 (stable)" msgstr "Python 2.7 (stable)" -#: ../Doc/tools/templates/indexsidebar.html:9 -msgid "Old versions" -msgstr "Anciennes versions" +#: ../Doc/tools/templates/indexsidebar.html:11 +msgid "All versions" +msgstr "Toutes les versions" -#: ../Doc/tools/templates/indexsidebar.html:12 +#: ../Doc/tools/templates/indexsidebar.html:14 msgid "Other resources" msgstr "Autres ressources" -#: ../Doc/tools/templates/indexsidebar.html:15 +#: ../Doc/tools/templates/indexsidebar.html:17 msgid "PEP Index" msgstr "Index des PEP" -#: ../Doc/tools/templates/indexsidebar.html:16 +#: ../Doc/tools/templates/indexsidebar.html:18 msgid "Beginner's Guide" msgstr "Guide du débutant" -#: ../Doc/tools/templates/indexsidebar.html:17 +#: ../Doc/tools/templates/indexsidebar.html:19 msgid "Book List" msgstr "Liste de livres" -#: ../Doc/tools/templates/indexsidebar.html:18 +#: ../Doc/tools/templates/indexsidebar.html:20 msgid "Audio/Visual Talks" msgstr "Documents multimédia" -#: ../Doc/tools/templates/layout.html:10 +#: ../Doc/tools/templates/layout.html:6 +msgid "" +"This document is for an old version of Python that is no longer supported.\n" +" You should upgrade, and read the " +msgstr "" +"Ce document est relatif à une vieille version de Python qui n'est plus " +"soutenue.\n" +" Mettez à jour votre version et lisez " + +#: ../Doc/tools/templates/layout.html:8 +msgid " Python documentation for the current stable release" +msgstr "Bienvenue sur la documentation de la version stable actuelle de Python" + +#: ../Doc/tools/templates/layout.html:21 msgid "Documentation " msgstr "Documentation" -#: ../Doc/tools/templates/layout.html:21 +#: ../Doc/tools/templates/layout.html:32 msgid "Quick search" msgstr "Recherche rapide" -#: ../Doc/tools/templates/layout.html:22 +#: ../Doc/tools/templates/layout.html:33 msgid "Go" -msgstr "Go" +msgstr "C'est parti" -#: ../Doc/tools/templates/layout.html:110 +#: ../Doc/tools/templates/layout.html:129 msgid "The Python Software Foundation is a non-profit corporation." msgstr "La Python Software Foundation est une organisation à but non lucratif." -#: ../Doc/tools/templates/layout.html:111 +#: ../Doc/tools/templates/layout.html:130 msgid "Please donate." msgstr "Les dons sont bienvenus." -#: ../Doc/tools/templates/layout.html:113 +#: ../Doc/tools/templates/layout.html:132 msgid "Last updated on %(last_updated)s." msgstr "Dernière mise-à-jour le %(last_updated)s." -#: ../Doc/tools/templates/layout.html:114 +#: ../Doc/tools/templates/layout.html:133 msgid "Found a bug?" -msgstr "Vous avez trouvé un bug ?" +msgstr "Vous avez trouvé un bogue ?" -#: ../Doc/tools/templates/layout.html:116 +#: ../Doc/tools/templates/layout.html:135 msgid "" "Created using Sphinx " "%(sphinx_version)s." msgstr "" "Créé via Sphinx %(sphinx_version)s." -#~ msgid "Python 3.7 (pre-release)" -#~ msgstr "Python 3.7 (pré-lancement)" +#~ msgid "Python 3.6 (stable)" +#~ msgstr "Python 3.6 (stable)" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 85ece9847..0e1cd4fa4 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-08-01 00:29+0200\n" +"PO-Revision-Date: 2019-03-19 23:11+0100\n" "Last-Translator: Christophe Nanteuil \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -74,7 +74,7 @@ msgid "" "like shell scripts, by putting the line ::" msgstr "" "Sur les systèmes Unix, un script Python peut être rendu directement " -"exécutable, comme un script *shell*, en ajoutant la ligne : ::" +"exécutable, comme un script *shell*, en ajoutant la ligne ::" #: ../Doc/tutorial/appendix.rst:45 msgid "" @@ -109,7 +109,7 @@ msgid "" "extension can also be ``.pyw``, in that case, the console window that " "normally appears is suppressed." msgstr "" -"Sur les système Windows il n'y a pas de \"mode exécutable\". L'installateur " +"Sur les systèmes Windows il n'y a pas de \"mode exécutable\". L'installateur " "Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` " "de telle sorte qu'un double clic sur un fichier Python le lance comme un " "script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console " @@ -147,7 +147,7 @@ msgstr "" "instructions depuis un fichier, ni quand :file:`/dev/tty` est donné " "explicitement comme fichier source (pour tout le reste, Python se comporte " "alors comme dans une session interactive). Les instructions de ce fichier " -"sont exécutées dans le même espace de noms que vos commandes, donc les " +"sont exécutées dans le même espace de nommage que vos commandes, donc les " "objets définis et modules importés peuvent être utilisés directement dans la " "session interactive. Dans ce fichier, il est aussi possible de changer les " "invites de commande ``sys.ps1`` et ``sys.ps2``." @@ -162,9 +162,9 @@ msgid "" msgstr "" "Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, " "vous pouvez le programmer dans le fichier de démarrage global, par exemple " -"avec le code suivant : ``if os.\"\"path.isfile('.pythonrc.py'): exec(open('." +"avec le code suivant : ``if os.path.isfile('.pythonrc.py'): exec(open('." "pythonrc.py').read())``. Et si vous voulez exécuter le fichier de démarrage " -"depuis un script, vous devez le faire explicitement dans le script : ::" +"depuis un script, vous devez le faire explicitement dans le script ::" #: ../Doc/tutorial/appendix.rst:102 msgid "The Customization Modules" @@ -179,8 +179,8 @@ msgid "" msgstr "" "Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:" "`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord " -"trouver l'emplacement de votre dossier \"site-packages\" utilisateur. " -"Démarrez Python et exécutez ce code : ::" +"trouver l'emplacement de votre dossier « site-packages » utilisateur. " +"Démarrez Python et exécutez ce code ::" #: ../Doc/tutorial/appendix.rst:112 msgid "" @@ -192,7 +192,7 @@ msgstr "" "Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` et y " "écrire ce que vous voulez. Il est toujours pris en compte par Python, peu " "importe le mode, sauf lorsque vous démarrez avec l'option :option:`-s` qui " -"désactive l'import automatique." +"désactive l'importation automatique." #: ../Doc/tutorial/appendix.rst:116 msgid "" @@ -212,4 +212,4 @@ msgstr "Notes" #: ../Doc/tutorial/appendix.rst:124 msgid "A problem with the GNU Readline package may prevent this." -msgstr "Un problème avec GNU Readline peut l'en empêcher." +msgstr "Un problème avec GNU *Readline* peut l'en empêcher." diff --git a/tutorial/appetite.po b/tutorial/appetite.po index ac541586d..9b66c2d93 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-08 09:58+0100\n" -"PO-Revision-Date: 2018-08-01 00:14+0200\n" +"PO-Revision-Date: 2019-06-18 22:05+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -28,8 +28,8 @@ msgid "" "custom database, or a specialized GUI application, or a simple game." msgstr "" "Lorsqu'on travaille beaucoup sur ordinateur, on finit souvent par vouloir " -"automatiser certaines tâches : par exemple, effectuer une recherche et un " -"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " +"automatiser certaines tâches : par exemple, effectuer une recherche et un " +"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " "réorganiser des photos d'une manière un peu compliquée. Pour vous, ce peut " "être créer une petite base de données, une application graphique ou un " "simple jeu." @@ -86,15 +86,15 @@ msgid "" "in Python as in those languages." msgstr "" "Python reste facile à utiliser, mais c'est un vrai langage de " -"programmation : il offre une bien meilleure structure et prise en charge des " +"programmation : il offre une bien meilleure structure et prise en charge des " "grands programmes que les scripts shell ou les fichiers batch. Par ailleurs, " "Python permet de beaucoup mieux vérifier les erreurs que le langage C et, en " "tant que *langage de très haut niveau*, il possède nativement des types de " "données très évolués tels que les tableaux de taille variable ou les " "dictionnaires. Grâce à ses types de données plus universels, Python est " -"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être Awk " -"ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au moins " -"aussi facilement en Python que dans ces langages." +"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être " +"*Awk* ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au " +"moins aussi facilement en Python que dans ces langages." #: ../Doc/tutorial/appetite.rst:37 msgid "" @@ -109,8 +109,9 @@ msgstr "" "réutilisés dans d'autres programmes Python. Il est fourni avec une grande " "variété de modules standards que vous pouvez utiliser comme base de vos " "programmes, ou comme exemples pour apprendre à programmer. Certains de ces " -"modules donnent accès aux entrées/sorties, aux appels système, aux sockets " -"réseaux et même aux outils comme Tk pour créer des interfaces graphiques." +"modules donnent accès aux entrées/sorties, aux appels système, aux " +"connecteurs réseaux et même aux outils comme Tk pour créer des interfaces " +"graphiques." #: ../Doc/tutorial/appetite.rst:44 msgid "" @@ -169,7 +170,7 @@ msgid "" "Python interpreter into an application written in C and use it as an " "extension or command language for that application." msgstr "" -"Python est *extensible* : si vous savez écrire un programme en C, une " +"Python est *extensible* : si vous savez écrire un programme en C, une " "nouvelle fonction ou module peut être facilement ajouté à l'interpréteur " "afin de l'étendre, que ce soit pour effectuer des opérations critiques à " "vitesse maximale ou pour lier des programmes en Python à des bibliothèques " @@ -185,10 +186,10 @@ msgid "" "Circus\" and has nothing to do with reptiles. Making references to Monty " "Python skits in documentation is not only allowed, it is encouraged!" msgstr "" -"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " -"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " +"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " +"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " "sketchs des Monty Python dans la documentation n'est pas seulement permis, " -"c'est encouragé !" +"c'est encouragé !" #: ../Doc/tutorial/appetite.rst:74 msgid "" diff --git a/tutorial/classes.po b/tutorial/classes.po index 8f6918cfe..c56359133 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-08-03 19:10+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-07-08 22:45+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.0.2\n" +"X-Generator: Poedit 2.2\n" #: ../Doc/tutorial/classes.rst:5 msgid "Classes" @@ -93,11 +93,11 @@ msgid "" "since its object-oriented semantics are closer to those of Python than C++, " "but I expect that few readers have heard of it.)" msgstr "" -"Par manque d'ontologie pour parler des classes, nous utilisons parfois des " -"termes de Smalltalk et C++. Nous voulions utiliser les termes de Modula-3 " -"puisque sa sémantique orientée objet est plus proche de celle de Python que C" -"++, mais il est probable que seul un petit nombre de lecteurs les " -"connaissent." +"En l'absence d'une terminologie communément admise pour parler des classes, " +"nous utilisons parfois des termes de Smalltalk et C++. Nous voulions " +"utiliser les termes de Modula-3 puisque sa sémantique orientée objet est " +"plus proche de celle de Python que C++, mais il est probable que seul un " +"petit nombre de lecteurs les connaissent." #: ../Doc/tutorial/classes.rst:43 msgid "A Word About Names and Objects" @@ -120,7 +120,7 @@ msgid "" msgstr "" "Les objets possèdent une existence propre et plusieurs noms peuvent être " "utilisés (dans divers contextes) pour faire référence à un même objet. Ce " -"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " +"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " "pas au premier coup d'œil en Python et il peut être ignoré tant qu'on " "travaille avec des types de base immuables (nombres, chaînes, tuples). " "Cependant, les alias peuvent produire des effets surprenants sur la " @@ -129,13 +129,13 @@ msgstr "" "utilisation est bénéfique au programme car les alias se comportent, d'un " "certain point de vue, comme des pointeurs. Par exemple, transmettre un objet " "n'a aucun coût car c'est simplement un pointeur qui est transmis par " -"l'implémentation ; et si une fonction modifie un objet passé en argument, le " +"l'implémentation ; et si une fonction modifie un objet passé en argument, le " "code à l'origine de l'appel voit le changement. Ceci élimine le besoin " "d'avoir deux mécanismes de transmission d'arguments comme en Pascal." #: ../Doc/tutorial/classes.rst:61 msgid "Python Scopes and Namespaces" -msgstr "Portées et espaces de noms en Python" +msgstr "Portées et espaces de nommage en Python" #: ../Doc/tutorial/classes.rst:63 msgid "" @@ -147,9 +147,9 @@ msgid "" msgstr "" "Avant de présenter les classes, nous devons aborder la notion de portée en " "Python. Les définitions de classes font d'habiles manipulations avec les " -"espaces de noms, vous devez donc savoir comment les portées et les espaces " -"de noms fonctionnent. Soit dit en passant, la connaissance de ce sujet est " -"aussi utile aux développeurs Python expérimentés." +"espaces de nommage, vous devez donc savoir comment les portées et les " +"espaces de nommage fonctionnent. Soit dit en passant, la connaissance de ce " +"sujet est aussi utile aux développeurs Python expérimentés." #: ../Doc/tutorial/classes.rst:69 msgid "Let's begin with some definitions." @@ -169,19 +169,19 @@ msgid "" "may both define a function ``maximize`` without confusion --- users of the " "modules must prefix it with the module name." msgstr "" -"Un *espace de noms* est une table de correspondance entre des noms et des " -"objets. La plupart des espaces de noms sont actuellement implémentés sous " +"Un *espace de nommage* est une table de correspondance entre des noms et des " +"objets. La plupart des espaces de nommage sont actuellement implémentés sous " "forme de dictionnaires Python, mais ceci n'est normalement pas visible (sauf " "pour les performances) et peut changer dans le futur. Comme exemples " -"d'espaces de noms, nous pouvons citer les primitives (fonctions comme :func:" -"`abs` et les noms des exceptions de base) ; les noms globaux dans un " -"module ; et les noms locaux lors d'un appel de fonction. D'une certaine " +"d'espaces de nommage, nous pouvons citer les primitives (fonctions comme :" +"func:`abs` et les noms des exceptions de base) ; les noms globaux dans un " +"module ; et les noms locaux lors d'un appel de fonction. D'une certaine " "manière, l'ensemble des attributs d'un objet forme lui-même un espace de " -"noms. L'important à retenir concernant les espaces de noms est qu'il n'y a " -"absolument aucun lien entre les noms de différents espaces de noms ; par " -"exemple, deux modules différents peuvent définir une fonction ``maximize`` " -"sans qu'il n'y ait de confusion. Les utilisateurs des modules doivent " -"préfixer le nom de la fonction avec celui du module." +"nommage. L'important à retenir concernant les espaces de nommage est qu'il " +"n'y a absolument aucun lien entre les noms de différents espaces de " +"nommage ; par exemple, deux modules différents peuvent définir une fonction " +"``maximize`` sans qu'il n'y ait de confusion. Les utilisateurs des modules " +"doivent préfixer le nom de la fonction avec celui du module." #: ../Doc/tutorial/classes.rst:82 msgid "" @@ -200,7 +200,7 @@ msgstr "" "nomfonction``, ``nommodule`` est un objet module et ``nomfonction`` est un " "attribut de cet objet. Dans ces conditions, il existe une correspondance " "directe entre les attributs du module et les noms globaux définis dans le " -"module : ils partagent le même espace de noms [#]_ !" +"module : ils partagent le même espace de nommage [#]_ !" #: ../Doc/tutorial/classes.rst:90 msgid "" @@ -229,17 +229,17 @@ msgid "" "`__main__`, so they have their own global namespace. (The built-in names " "actually also live in a module; this is called :mod:`builtins`.)" msgstr "" -"Les espaces de noms sont créés à différents moments et ont différentes " -"durées de vie. L'espace de noms contenant les primitives est créé au " -"démarrage de l'interpréteur Python et n'est jamais effacé. L'espace de noms " -"globaux pour un module est créé lorsque la définition du module est lue. " -"Habituellement, les espaces de noms des modules durent aussi jusqu'à l'arrêt " -"de l'interpréteur. Les instructions exécutées par la première invocation de " -"l'interpréteur, qu'elles soient lues depuis un fichier de script ou de " -"manière interactive, sont considérées comme faisant partie d'un module " -"appelé :mod:`__main__`, de façon qu'elles possèdent leur propre espace de " -"noms (les primitives vivent elles-mêmes dans un module, appelé :mod:" -"`builtins`)." +"Les espaces de nommage sont créés à différents moments et ont différentes " +"durées de vie. L'espace de nommage contenant les primitives est créé au " +"démarrage de l'interpréteur Python et n'est jamais effacé. L'espace de " +"nommage globaux pour un module est créé lorsque la définition du module est " +"lue. Habituellement, les espaces de nommage des modules durent aussi jusqu'à " +"l'arrêt de l'interpréteur. Les instructions exécutées par la première " +"invocation de l'interpréteur, qu'elles soient lues depuis un fichier de " +"script ou de manière interactive, sont considérées comme faisant partie d'un " +"module appelé :mod:`__main__`, de façon qu'elles possèdent leur propre " +"espace de nommage (les primitives vivent elles-mêmes dans un module, appelé :" +"mod:`builtins`)." #: ../Doc/tutorial/classes.rst:106 msgid "" @@ -251,9 +251,9 @@ msgid "" msgstr "" "L'espace des noms locaux d'une fonction est créé lors de son appel, puis " "effacé lorsqu'elle renvoie un résultat ou lève une exception non prise en " -"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " +"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " "passe réellement). Bien sûr, des invocations récursives ont chacune leur " -"propre espace de noms." +"propre espace de nommage." #: ../Doc/tutorial/classes.rst:112 msgid "" @@ -261,9 +261,10 @@ msgid "" "directly accessible. \"Directly accessible\" here means that an unqualified " "reference to a name attempts to find the name in the namespace." msgstr "" -"La *portée* est la zone textuelle d'un programme Python où un espace de noms " -"est directement accessible. « Directement accessible » signifie ici qu'une " -"référence non qualifiée à un nom est cherchée dans l'espace de noms." +"La *portée* est la zone textuelle d'un programme Python où un espace de " +"nommage est directement accessible. « Directement accessible » signifie ici " +"qu'une référence non qualifiée à un nom est cherchée dans l'espace de " +"nommage." #: ../Doc/tutorial/classes.rst:116 msgid "" @@ -273,14 +274,14 @@ msgid "" msgstr "" "Bien que les portées soient déterminées de manière statique, elles sont " "utilisées de manière dynamique. À n'importe quel moment de l'exécution, il y " -"a au minimum trois portées imbriquées dont les espaces de noms sont " +"a au minimum trois portées imbriquées dont les espaces de nommage sont " "directement accessibles :" #: ../Doc/tutorial/classes.rst:120 msgid "the innermost scope, which is searched first, contains the local names" msgstr "" "la portée la plus au centre, celle qui est consultée en premier, contient " -"les noms locaux ;" +"les noms locaux ;" #: ../Doc/tutorial/classes.rst:121 msgid "" @@ -300,8 +301,8 @@ msgid "" "the outermost scope (searched last) is the namespace containing built-in " "names" msgstr "" -"la portée englobante, consultée en dernier, est l'espace de noms contenant " -"les primitives." +"la portée englobante, consultée en dernier, est l'espace de nommage " +"contenant les primitives." #: ../Doc/tutorial/classes.rst:126 msgid "" @@ -331,8 +332,9 @@ msgid "" msgstr "" "Habituellement, la portée locale référence les noms locaux de la fonction " "courante. En dehors des fonctions, la portée locale référence le même espace " -"de noms que la portée globale : l'espace de noms du module. Les définitions " -"de classes créent un nouvel espace de noms dans la portée locale." +"de nommage que la portée globale : l'espace de nommage du module. Les " +"définitions de classes créent un nouvel espace de nommage dans la portée " +"locale." #: ../Doc/tutorial/classes.rst:138 msgid "" @@ -346,12 +348,12 @@ msgid "" msgstr "" "Il est important de réaliser que les portées sont déterminées de manière " "textuelle : la portée globale d'une fonction définie dans un module est " -"l'espace de noms de ce module, quelle que soit la provenance de l'appel à la " -"fonction. En revanche, la recherche réelle des noms est faite dynamiquement " -"au moment de l'exécution. Cependant la définition du langage est en train " -"d'évoluer vers une résolution statique des noms au moment de la « " -"compilation », donc ne vous basez pas sur une résolution dynamique (en " -"réalité, les variables locales sont déjà déterminées de manière statique) !" +"l'espace de nommage de ce module, quelle que soit la provenance de l'appel à " +"la fonction. En revanche, la recherche réelle des noms est faite " +"dynamiquement au moment de l'exécution. Cependant la définition du langage " +"est en train d'évoluer vers une résolution statique des noms au moment de la " +"« compilation », donc ne vous basez pas sur une résolution dynamique (en " +"réalité, les variables locales sont déjà déterminées de manière statique) !" #: ../Doc/tutorial/classes.rst:146 msgid "" @@ -368,11 +370,12 @@ msgstr "" "n'est active, les affectations de noms vont toujours dans la portée la plus " "proche. Les affectations ne copient aucune donnée : elles se contentent de " "lier des noms à des objets. Ceci est également vrai pour l'effacement : " -"l'instruction ``del x`` supprime la liaison de ``x`` dans l'espace de noms " -"référencé par la portée locale. En réalité, toutes les opérations qui " -"impliquent des nouveaux noms utilisent la portée locale : en particulier, " -"les instructions :keyword:`import` et les définitions de fonctions " -"effectuent une liaison du module ou du nom de fonction dans la portée locale." +"l'instruction ``del x`` supprime la liaison de ``x`` dans l'espace de " +"nommage référencé par la portée locale. En réalité, toutes les opérations " +"qui impliquent des nouveaux noms utilisent la portée locale : en " +"particulier, les instructions :keyword:`import` et les définitions de " +"fonctions effectuent une liaison du module ou du nom de fonction dans la " +"portée locale." #: ../Doc/tutorial/classes.rst:154 msgid "" @@ -383,12 +386,12 @@ msgid "" msgstr "" "L'instruction :keyword:`global` peut être utilisée pour indiquer que " "certaines variables existent dans la portée globale et doivent être reliées " -"en local ; l'instruction :keyword:`nonlocal` indique que certaines variables " +"en local ; l'instruction :keyword:`nonlocal` indique que certaines variables " "existent dans une portée supérieure et doivent être reliées en local." #: ../Doc/tutorial/classes.rst:162 msgid "Scopes and Namespaces Example" -msgstr "Exemple de portées et d'espaces de noms" +msgstr "Exemple de portées et d'espaces de nommage" #: ../Doc/tutorial/classes.rst:164 msgid "" @@ -397,7 +400,7 @@ msgid "" "variable binding::" msgstr "" "Ceci est un exemple montrant comment utiliser les différentes portées et " -"espaces de noms, et comment :keyword:`global` et :keyword:`nonlocal` " +"espaces de nommage, et comment :keyword:`global` et :keyword:`nonlocal` " "modifient l'affectation de variable ::" #: ../Doc/tutorial/classes.rst:191 @@ -480,10 +483,10 @@ msgid "" "new namespace. In particular, function definitions bind the name of the new " "function here." msgstr "" -"Quand une classe est définie, un nouvel espace de noms est créé et utilisé " -"comme portée locale --- Ainsi, toutes les affectations de variables locales " -"entrent dans ce nouvel espace de noms. En particulier, les définitions de " -"fonctions y lient le nom de la nouvelle fonction." +"Quand une classe est définie, un nouvel espace de nommage est créé et " +"utilisé comme portée locale --- Ainsi, toutes les affectations de variables " +"locales entrent dans ce nouvel espace de nommage. En particulier, les " +"définitions de fonctions y lient le nom de la nouvelle fonction." #: ../Doc/tutorial/classes.rst:247 msgid "" @@ -496,12 +499,12 @@ msgid "" "`ClassName` in the example)." msgstr "" "À la fin de la définition d'une classe, un *objet classe* est créé. C'est, " -"pour simplifier, une encapsulation du contenu de l'espace de noms créé par " -"la définition de classe. Nous revoyons les objets classes dans la prochaine " -"section. La portée locale initiale (celle qui prévaut avant le début de la " -"définition de la classe) est ré-instanciée et l'objet de classe est lié ici " -"au nom de classe donné dans l'en-tête de définition de classe (:class:" -"`ClassName` dans l'exemple)." +"pour simplifier, une encapsulation du contenu de l'espace de nommage créé " +"par la définition de classe. Nous revoyons les objets classes dans la " +"prochaine section. La portée locale initiale (celle qui prévaut avant le " +"début de la définition de la classe) est ré-instanciée et l'objet de classe " +"est lié ici au nom de classe donné dans l'en-tête de définition de classe (:" +"class:`ClassName` dans l'exemple)." #: ../Doc/tutorial/classes.rst:259 msgid "Class Objects" @@ -525,8 +528,8 @@ msgstr "" "Les *références d'attributs* utilisent la syntaxe standard utilisée pour " "toutes les références d'attributs en Python : ``obj.nom``. Les noms " "d'attribut valides sont tous les noms qui se trouvaient dans l'espace de " -"noms de la classe quand l'objet classe a été créé. Donc, si la définition de " -"classe est de cette forme ::" +"nommage de la classe quand l'objet classe a été créé. Donc, si la définition " +"de classe est de cette forme ::" #: ../Doc/tutorial/classes.rst:276 msgid "" @@ -595,7 +598,7 @@ msgid "" msgstr "" "Bien sûr, la méthode :meth:`__init__` peut avoir des arguments pour une plus " "grande flexibilité. Dans ce cas, les arguments donnés à l'opérateur " -"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple ::" +"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple ::" #: ../Doc/tutorial/classes.rst:322 msgid "Instance Objects" @@ -657,7 +660,7 @@ msgid "" "``MyClass.f`` --- it is a *method object*, not a function object." msgstr "" "Les noms de méthodes valides d'un objet instance dépendent de sa classe. Par " -"définition, tous les attributs d'une classe qui sont des objets fonction " +"définition, tous les attributs d'une classe qui sont des objets fonctions " "définissent les méthodes correspondantes de ses instances. Donc, dans notre " "exemple, ``x.f`` est une référence valide à une méthode car ``MyClass.f`` " "est une fonction, mais pas ``x.i`` car ``MyClass.i`` n'en est pas une. " @@ -681,8 +684,8 @@ msgid "" msgstr "" "Dans l'exemple de la classe :class:`MyClass`, cela renvoie la chaîne de " "caractères ``hello world``. Toutefois, il n'est pas nécessaire d'appeler la " -"méthode directement: ``x.f`` est un objet méthode, il peut être gardé de " -"coté et être appelé plus tard. Par exemple ::" +"méthode directement : ``x.f`` est un objet méthode, il peut être gardé de " +"côté et être appelé plus tard. Par exemple ::" #: ../Doc/tutorial/classes.rst:374 msgid "will continue to print ``hello world`` until the end of time." @@ -702,7 +705,7 @@ msgstr "" "alors que la définition de la méthode :meth:`f` spécifie bien qu'elle prend " "un argument. Qu'est-il arrivé à l'argument ? Python doit sûrement lever une " "exception lorsqu'une fonction qui requiert un argument est appelée sans -- " -"même si l'argument n'est pas utilisé..." +"même si l'argument n'est pas utilisé…" #: ../Doc/tutorial/classes.rst:382 msgid "" @@ -717,7 +720,7 @@ msgstr "" "En fait, vous avez peut-être deviné la réponse : la particularité des " "méthodes est que l'objet est passé comme premier argument de la fonction. " "Dans notre exemple, l'appel ``x.f()`` est exactement équivalent à ``MyClass." -"f(x)``. En général, appeler une méthode avec une liste de *n* arguments est " +"f(x)``. En général, appeler une méthode avec une liste de *n* arguments est " "équivalent à appeler la fonction correspondante avec une liste d'arguments " "créée en ajoutant l'instance de l'objet de la méthode avant le premier " "argument." @@ -735,7 +738,7 @@ msgid "" "called with this new argument list." msgstr "" "Si vous ne comprenez toujours pas comment les méthodes fonctionnent, un coup " -"d'œil à l'implémentation vous aidera peut être. Lorsque un attribut d'une " +"d'œil à l'implémentation vous aidera peut-être. Lorsque un attribut d'une " "instance est référencé et que ce n'est pas un attribut 'données', sa classe " "est recherchée. Si le nom correspond à un attribut valide et que c'est un " "objet fonction, un objet méthode est créé en générant un objet abstrait qui " @@ -768,11 +771,10 @@ msgid "" "by all *Dog* instances::" msgstr "" "Comme nous l'avons vu dans :ref:`tut-object`, les données partagées :term:" -"`muable ` (telles que les listes, dictionnaires, etc...) peuvent " -"avoir des effets surprenants. Par exemple, la liste *tricks* dans le code " -"suivant ne devrait pas être utilisée en tant que variable de classe car, " -"dans ce cas, une seule liste est partagée par toutes les instances de " -"*Dog* ::" +"`muable ` (telles que les listes, dictionnaires, etc.) peuvent avoir " +"des effets surprenants. Par exemple, la liste *tricks* dans le code suivant " +"ne devrait pas être utilisée en tant que variable de classe car, dans ce " +"cas, une seule liste est partagée par toutes les instances de *Dog* ::" #: ../Doc/tutorial/classes.rst:450 msgid "Correct design of the class should use an instance variable instead::" @@ -817,9 +819,9 @@ msgstr "" "des utilisateurs ordinaires (\"clients\") d'un objet. En d'autres termes, " "les classes ne sont pas utilisables pour implémenter des types de données " "purement abstraits. En fait, il n'est pas possible en Python d'imposer de " -"masquer des données --- tout est basé sur des conventions (d'un autre coté, " +"masquer des données — tout est basé sur des conventions (d'un autre côté, " "l'implémentation de Python, écrite en C, peut complètement masquer les " -"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " +"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " "ceci peut être utilisé par des extensions de Python écrites en C)." #: ../Doc/tutorial/classes.rst:493 @@ -846,7 +848,7 @@ msgid "" "variables when glancing through a method." msgstr "" "Il n'y a pas de notation abrégée pour référencer des attributs 'données' (ou " -"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " +"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " "en fait la lisibilité des méthodes : il n'y a aucune chance de confondre " "variables locales et variables d'instances quand on regarde le code d'une " "méthode." @@ -1023,7 +1025,7 @@ msgstr "" #: ../Doc/tutorial/classes.rst:608 msgid "Python has two built-in functions that work with inheritance:" -msgstr "Python définit deux fonctions primitives pour gérer l'héritage :" +msgstr "Python définit deux fonctions primitives pour gérer l'héritage :" #: ../Doc/tutorial/classes.rst:610 msgid "" @@ -1075,7 +1077,7 @@ msgstr "" "de gauche à droite, sans chercher deux fois dans la même classe si elle " "apparaît plusieurs fois dans la hiérarchie. Ainsi, si un attribut n'est pas " "trouvé dans :class:`DerivedClassName`, il est recherché dans :class:`Base1`, " -"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " +"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " "est pas trouvé, il est recherché dans :class:`Base2` et ses classes de base, " "et ainsi de suite." @@ -1147,7 +1149,7 @@ msgstr "" "Il doit être vu comme un détail d'implémentation pouvant faire l'objet de " "modifications futures sans préavis." -#: ../Doc/tutorial/classes.rst:675 +#: ../Doc/tutorial/classes.rst:678 msgid "" "Since there is a valid use-case for class-private members (namely to avoid " "name clashes of names with names defined by subclasses), there is limited " @@ -1168,7 +1170,7 @@ msgstr "" "effectué sans tenir compte de la position syntaxique de l'identifiant, tant " "qu'il est présent dans la définition d'une classe." -#: ../Doc/tutorial/classes.rst:684 +#: ../Doc/tutorial/classes.rst:687 msgid "" "Name mangling is helpful for letting subclasses override methods without " "breaking intraclass method calls. For example::" @@ -1177,19 +1179,32 @@ msgstr "" "surcharger des méthodes sans casser les appels de méthodes à l'intérieur " "d'une classe. Par exemple ::" -#: ../Doc/tutorial/classes.rst:706 +#: ../Doc/tutorial/classes.rst:709 +msgid "" +"The above example would work even if ``MappingSubclass`` were to introduce a " +"``__update`` identifier since it is replaced with ``_Mapping__update`` in " +"the ``Mapping`` class and ``_MappingSubclass__update`` in the " +"``MappingSubclass`` class respectively." +msgstr "" +"L'exemple si dessus fonctionnerait même si ``MappingSubclass`` introduisait " +"un identifieur ``__update`` puisqu'il a été remplacé avec " +"``_Mapping__update`` dans la classe ``Mapping`` et " +"``_MappingSubclass__update`` dans la classe ``MappingSubclass`` " +"respectivement." + +#: ../Doc/tutorial/classes.rst:714 msgid "" "Note that the mangling rules are designed mostly to avoid accidents; it " "still is possible to access or modify a variable that is considered " "private. This can even be useful in special circumstances, such as in the " "debugger." msgstr "" -"Notez que ces règles sont conçues avant tout pour éviter les accidents ; il " +"Notez que ces règles sont conçues avant tout pour éviter les accidents ; il " "reste possible d'accéder ou de modifier une variable considérée comme " "privée. Ceci peut même être utile dans certaines circonstances, comme au " "sein du débogueur." -#: ../Doc/tutorial/classes.rst:710 +#: ../Doc/tutorial/classes.rst:718 msgid "" "Notice that code passed to ``exec()`` or ``eval()`` does not consider the " "classname of the invoking class to be the current class; this is similar to " @@ -1199,17 +1214,17 @@ msgid "" "referencing ``__dict__`` directly." msgstr "" "Remarquez que le code que vous passez à ``exec()``, ``eval()`` ne considère " -"pas le nom de la classe appelante comme étant la classe courante ; le même " +"pas le nom de la classe appelante comme étant la classe courante ; le même " "effet s'applique à la directive ``global`` dont l'effet est, de la même " "façon, restreint au code compilé dans le même ensemble de byte-code. Les " "mêmes restrictions s'appliquent à ``getattr()``, ``setattr()`` et " "``delattr()``, ainsi qu'aux références directes à ``__dict__``." -#: ../Doc/tutorial/classes.rst:721 +#: ../Doc/tutorial/classes.rst:729 msgid "Odds and Ends" msgstr "Trucs et astuces" -#: ../Doc/tutorial/classes.rst:723 +#: ../Doc/tutorial/classes.rst:731 msgid "" "Sometimes it is useful to have a data type similar to the Pascal \"record\" " "or C \"struct\", bundling together a few named data items. An empty class " @@ -1220,7 +1235,7 @@ msgstr "" "'données' nommés. La définition d'une classe vide remplit parfaitement ce " "besoin ::" -#: ../Doc/tutorial/classes.rst:737 +#: ../Doc/tutorial/classes.rst:745 msgid "" "A piece of Python code that expects a particular abstract data type can " "often be passed a class that emulates the methods of that data type " @@ -1236,7 +1251,7 @@ msgstr "" "classe qui implémente les méthodes :meth:`read` et :meth:`!readline` en " "puisant ses données à partir d'un tampon de chaînes de caractères." -#: ../Doc/tutorial/classes.rst:748 +#: ../Doc/tutorial/classes.rst:756 msgid "" "Instance method objects have attributes, too: ``m.__self__`` is the instance " "object with the method :meth:`m`, and ``m.__func__`` is the function object " @@ -1246,11 +1261,11 @@ msgstr "" "l'instance d'objet avec la méthode :meth:`m` et ``m.__func__`` est l'objet " "fonction correspondant à la méthode." -#: ../Doc/tutorial/classes.rst:756 +#: ../Doc/tutorial/classes.rst:764 msgid "Iterators" msgstr "Itérateurs" -#: ../Doc/tutorial/classes.rst:758 +#: ../Doc/tutorial/classes.rst:766 msgid "" "By now you have probably noticed that most container objects can be looped " "over using a :keyword:`for` statement::" @@ -1258,7 +1273,7 @@ msgstr "" "Vous avez maintenant certainement remarqué que l'on peut itérer sur la " "plupart des objets conteneurs en utilisant une instruction :keyword:`for` ::" -#: ../Doc/tutorial/classes.rst:772 +#: ../Doc/tutorial/classes.rst:780 msgid "" "This style of access is clear, concise, and convenient. The use of " "iterators pervades and unifies Python. Behind the scenes, the :keyword:" @@ -1266,9 +1281,9 @@ msgid "" "returns an iterator object that defines the method :meth:`~iterator." "__next__` which accesses elements in the container one at a time. When " "there are no more elements, :meth:`~iterator.__next__` raises a :exc:" -"`StopIteration` exception which tells the :keyword:`for` loop to terminate. " -"You can call the :meth:`~iterator.__next__` method using the :func:`next` " -"built-in function; this example shows how it all works::" +"`StopIteration` exception which tells the :keyword:`!for` loop to " +"terminate. You can call the :meth:`~iterator.__next__` method using the :" +"func:`next` built-in function; this example shows how it all works::" msgstr "" "Ce style est simple, concis et pratique. L'utilisation d'itérateurs imprègne " "et unifie Python. En arrière plan, l'instruction :keyword:`for` appelle la " @@ -1276,11 +1291,11 @@ msgstr "" "itérateur qui définit la méthode :meth:`~iterator.__next__`, laquelle accède " "aux éléments du conteneur un par un. Lorsqu'il n'y a plus d'élément, :meth:" "`~iterator.__next__` lève une exception :exc:`StopIteration` qui indique à " -"la boucle de l'instruction :keyword:`for` de se terminer. Vous pouvez " +"la boucle de l'instruction :keyword:`!for` de se terminer. Vous pouvez " "appeler la méthode :meth:`~iterator.__next__` en utilisant la fonction " "native :func:`next`. Cet exemple montre comment tout cela fonctionne ::" -#: ../Doc/tutorial/classes.rst:797 +#: ../Doc/tutorial/classes.rst:805 msgid "" "Having seen the mechanics behind the iterator protocol, it is easy to add " "iterator behavior to your classes. Define an :meth:`__iter__` method which " @@ -1293,11 +1308,11 @@ msgstr "" "__next__`. Si la classe définit elle-même la méthode :meth:`__next__`, " "alors :meth:`__iter__` peut simplement renvoyer ``self`` ::" -#: ../Doc/tutorial/classes.rst:834 +#: ../Doc/tutorial/classes.rst:842 msgid "Generators" msgstr "Générateurs" -#: ../Doc/tutorial/classes.rst:836 +#: ../Doc/tutorial/classes.rst:844 msgid "" ":term:`Generator`\\s are a simple and powerful tool for creating iterators. " "They are written like regular functions but use the :keyword:`yield` " @@ -1306,15 +1321,15 @@ msgid "" "data values and which statement was last executed). An example shows that " "generators can be trivially easy to create::" msgstr "" -"Les :term:`générateur`\\s sont des outils simples et puissants pour créer " -"des itérateurs. Ils sont écrits comme des fonctions classiques mais " -"utilisent l'instruction :keyword:`yield` lorsqu'ils veulent renvoyer des " -"données. À chaque fois qu'il est appelé par :func:`next`, le générateur " +"Les :term:`générateurs ` sont des outils simples et puissants " +"pour créer des itérateurs. Ils sont écrits comme des fonctions classiques " +"mais utilisent l'instruction :keyword:`yield` lorsqu'ils veulent renvoyer " +"des données. À chaque fois qu'il est appelé par :func:`next`, le générateur " "reprend son exécution là où il s'était arrêté (en conservant tout son " "contexte d'exécution). Un exemple montre très bien combien les générateurs " "sont simples à créer ::" -#: ../Doc/tutorial/classes.rst:857 +#: ../Doc/tutorial/classes.rst:865 msgid "" "Anything that can be done with generators can also be done with class-based " "iterators as described in the previous section. What makes generators so " @@ -1326,7 +1341,7 @@ msgstr "" "précédent. Ce qui rend les générateurs si compacts, c'est que les méthodes :" "meth:`__iter__` et :meth:`~generator.__next__` sont créées automatiquement." -#: ../Doc/tutorial/classes.rst:862 +#: ../Doc/tutorial/classes.rst:870 msgid "" "Another key feature is that the local variables and execution state are " "automatically saved between calls. This made the function easier to write " @@ -1339,7 +1354,7 @@ msgstr "" "beaucoup plus lisible qu'avec une approche utilisant des variables " "d'instance telles que ``self.index`` et ``self.data``." -#: ../Doc/tutorial/classes.rst:867 +#: ../Doc/tutorial/classes.rst:875 msgid "" "In addition to automatic method creation and saving program state, when " "generators terminate, they automatically raise :exc:`StopIteration`. In " @@ -1352,11 +1367,11 @@ msgstr "" "ces fonctionnalités rend très simple la création d'itérateurs, sans plus " "d'effort que l'écriture d'une fonction classique." -#: ../Doc/tutorial/classes.rst:876 +#: ../Doc/tutorial/classes.rst:884 msgid "Generator Expressions" msgstr "Expressions et générateurs" -#: ../Doc/tutorial/classes.rst:878 +#: ../Doc/tutorial/classes.rst:886 msgid "" "Some simple generators can be coded succinctly as expressions using a syntax " "similar to list comprehensions but with parentheses instead of square " @@ -1373,15 +1388,15 @@ msgstr "" "définitions complètes de générateurs et ont tendance à être plus économes en " "mémoire que leur équivalent en compréhension de listes." -#: ../Doc/tutorial/classes.rst:885 +#: ../Doc/tutorial/classes.rst:893 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" -#: ../Doc/tutorial/classes.rst:909 +#: ../Doc/tutorial/classes.rst:917 msgid "Footnotes" -msgstr "Notes" +msgstr "Notes de bas de page" -#: ../Doc/tutorial/classes.rst:910 +#: ../Doc/tutorial/classes.rst:918 msgid "" "Except for one thing. Module objects have a secret read-only attribute " "called :attr:`~object.__dict__` which returns the dictionary used to " @@ -1392,10 +1407,11 @@ msgid "" msgstr "" "Il existe une exception : les modules disposent d'un attribut secret en " "lecture seule appelé :attr:`~object.__dict__` qui renvoie le dictionnaire " -"utilisé pour implémenter l'espace de noms du module ; le nom :attr:`~object." -"__dict__` est un attribut mais pas un nom global. Évidemment, si vous " -"l'utilisez, vous brisez l'abstraction de l'implémentation des espaces de " -"noms. Il est donc réservé à des choses comme les débogueurs post-mortem." +"utilisé pour implémenter l'espace de nommage du module ; le nom :attr:" +"`~object.__dict__` est un attribut mais pas un nom global. Évidemment, si " +"vous l'utilisez, vous brisez l'abstraction de l'implémentation des espaces " +"de nommage. Il est donc réservé à des choses comme les débogueurs post-" +"mortem." #~ msgid "Exceptions Are Classes Too" #~ msgstr "Les exceptions sont aussi des classes" @@ -1420,7 +1436,7 @@ msgstr "" #~ "class derived from it. The first form is a shorthand for::" #~ msgstr "" #~ "Dans la première forme, ``Class`` doit être une instance de :class:`type` " -#~ "ou d'une classe dérivée. La seconde forme est un raccourci pour : ::" +#~ "ou d'une classe dérivée. La seconde forme est un raccourci pour ::" #~ msgid "" #~ "A class in an :keyword:`except` clause is compatible with an exception if " @@ -1433,7 +1449,7 @@ msgstr "" #~ "exception si elle est de la même classe ou d'une de ses classes dérivées. " #~ "Mais l'inverse n'est pas vrai, une clause ``except`` spécifiant une " #~ "classe dérivée n'est pas compatible avec une classe de base. Par exemple, " -#~ "le code suivant affiche B, C et D dans cet ordre : ::" +#~ "le code suivant affiche B, C et D dans cet ordre ::" #~ msgid "" #~ "Note that if the except clauses were reversed (with ``except B`` first), " diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 3f2d72b7a..8c46e2f33 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-04-29 00:24+0200\n" -"PO-Revision-Date: 2018-07-31 23:54+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-19 21:37+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/tutorial/controlflow.rst:5 msgid "More Control Flow Tools" @@ -29,8 +29,8 @@ msgstr "" "d'autres langages, mais toujours avec ses propres tournures." #: ../Doc/tutorial/controlflow.rst:14 -msgid ":keyword:`if` Statements" -msgstr "L'instruction :keyword:`if`" +msgid ":keyword:`!if` Statements" +msgstr "L'instruction :keyword:`!if`" #: ../Doc/tutorial/controlflow.rst:16 msgid "" @@ -42,21 +42,21 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:33 msgid "" "There can be zero or more :keyword:`elif` parts, and the :keyword:`else` " -"part is optional. The keyword ':keyword:`elif`' is short for 'else if', and " -"is useful to avoid excessive indentation. An :keyword:`if` ... :keyword:" -"`elif` ... :keyword:`elif` ... sequence is a substitute for the ``switch`` " -"or ``case`` statements found in other languages." +"part is optional. The keyword ':keyword:`!elif`' is short for 'else if', " +"and is useful to avoid excessive indentation. An :keyword:`!if` ... :" +"keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the " +"``switch`` or ``case`` statements found in other languages." msgstr "" "Il peut y avoir un nombre quelconque de parties :keyword:`elif` et la " -"partie :keyword:`else` est facultative. Le mot clé :keyword:`elif` est un " +"partie :keyword:`else` est facultative. Le mot clé :keyword:`!elif` est un " "raccourci pour *else if*, mais permet de gagner un niveau d'indentation. Une " -"séquence :keyword:`if` ... :keyword:`elif` ... :keyword:`elif` ... est par " -"ailleurs équivalente aux instructions ``switch`` ou ``case`` disponibles " +"séquence :keyword:`!if` ... :keyword:`!elif` ... :keyword:`!elif` ... est " +"par ailleurs équivalente aux instructions ``switch`` ou ``case`` disponibles " "dans d'autres langages." #: ../Doc/tutorial/controlflow.rst:43 -msgid ":keyword:`for` Statements" -msgstr "L'instruction :keyword:`for`" +msgid ":keyword:`!for` Statements" +msgstr "L'instruction :keyword:`!for`" #: ../Doc/tutorial/controlflow.rst:48 msgid "" @@ -64,18 +64,18 @@ msgid "" "used to in C or Pascal. Rather than always iterating over an arithmetic " "progression of numbers (like in Pascal), or giving the user the ability to " "define both the iteration step and halting condition (as C), Python's :" -"keyword:`for` statement iterates over the items of any sequence (a list or a " -"string), in the order that they appear in the sequence. For example (no pun " -"intended):" +"keyword:`!for` statement iterates over the items of any sequence (a list or " +"a string), in the order that they appear in the sequence. For example (no " +"pun intended):" msgstr "" "L'instruction :keyword:`for` que propose Python est un peu différente de " "celle que l'on peut trouver en C ou en Pascal. Au lieu de toujours itérer " "sur une suite arithmétique de nombres (comme en Pascal), ou de donner à " "l'utilisateur la possibilité de définir le pas d'itération et la condition " -"de fin (comme en C), l'instruction :keyword:`for` en Python itère sur les " +"de fin (comme en C), l'instruction :keyword:`!for` en Python itère sur les " "éléments d'une séquence (qui peut être une liste, une chaîne de " -"caractères...), dans l'ordre dans lequel ils apparaissent dans la séquence. " -"Par exemple ::" +"caractères…), dans l'ordre dans lequel ils apparaissent dans la séquence. " +"Par exemple :" #: ../Doc/tutorial/controlflow.rst:69 msgid "" @@ -107,7 +107,7 @@ msgid "" "If you do need to iterate over a sequence of numbers, the built-in function :" "func:`range` comes in handy. It generates arithmetic progressions::" msgstr "" -"Si vous devez itérer sur une suite de nombres, la fonction intégrée :func:" +"Si vous devez itérer sur une suite de nombres, la fonction native :func:" "`range` est faite pour cela. Elle génère des suites arithmétiques ::" #: ../Doc/tutorial/controlflow.rst:102 @@ -118,10 +118,10 @@ msgid "" "a different increment (even negative; sometimes this is called the 'step')::" msgstr "" "Le dernier élément fourni en paramètre ne fait jamais partie de la liste " -"générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " -"vont de 0 à 9. Il est possible de spécifier une valeur de début et/ou une " -"valeur d'incrément différente(s) (y compris négative pour cette dernière, " -"que l'on appelle également parfois le 'pas') ::" +"générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " +"vont de 0 à 9. Il est possible de spécifier une valeur de début et une " +"valeur d'incrément différentes (y compris négative pour cette dernière, que " +"l'on appelle également parfois le 'pas') ::" #: ../Doc/tutorial/controlflow.rst:116 msgid "" @@ -180,11 +180,11 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:158 msgid "" -":keyword:`break` and :keyword:`continue` Statements, and :keyword:`else` " +":keyword:`!break` and :keyword:`!continue` Statements, and :keyword:`!else` " "Clauses on Loops" msgstr "" -"Les instructions :keyword:`break`, :keyword:`continue` et les clauses :" -"keyword:`else` au sein des boucles" +"Les instructions :keyword:`!break`, :keyword:`!continue` et les clauses :" +"keyword:`!else` au sein des boucles" #: ../Doc/tutorial/controlflow.rst:160 msgid "" @@ -196,18 +196,19 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:163 msgid "" -"Loop statements may have an ``else`` clause; it is executed when the loop " -"terminates through exhaustion of the list (with :keyword:`for`) or when the " -"condition becomes false (with :keyword:`while`), but not when the loop is " -"terminated by a :keyword:`break` statement. This is exemplified by the " +"Loop statements may have an :keyword:`!else` clause; it is executed when the " +"loop terminates through exhaustion of the list (with :keyword:`for`) or when " +"the condition becomes false (with :keyword:`while`), but not when the loop " +"is terminated by a :keyword:`break` statement. This is exemplified by the " "following loop, which searches for prime numbers::" msgstr "" -"Les boucles peuvent également disposer d'une instruction ``else`` ; celle-ci " -"est exécutée lorsqu'une boucle se termine alors que tous ses éléments ont " -"été traités (dans le cas d'un :keyword:`for`) ou que la condition devient " -"fausse (dans le cas d'un :keyword:`while`), mais pas lorsque la boucle est " -"interrompue par une instruction :keyword:`break`. L'exemple suivant, qui " -"effectue une recherche de nombres premiers, en est une démonstration ::" +"Les boucles peuvent également disposer d'une instruction :keyword:`!else` ; " +"celle-ci est exécutée lorsqu'une boucle se termine alors que tous ses " +"éléments ont été traités (dans le cas d'un :keyword:`for`) ou que la " +"condition devient fausse (dans le cas d'un :keyword:`while`), mais pas " +"lorsque la boucle est interrompue par une instruction :keyword:`break`. " +"L'exemple suivant, qui effectue une recherche de nombres premiers, en est " +"une démonstration ::" #: ../Doc/tutorial/controlflow.rst:187 msgid "" @@ -222,17 +223,17 @@ msgstr "" msgid "" "When used with a loop, the ``else`` clause has more in common with the " "``else`` clause of a :keyword:`try` statement than it does that of :keyword:" -"`if` statements: a :keyword:`try` statement's ``else`` clause runs when no " +"`if` statements: a :keyword:`!try` statement's ``else`` clause runs when no " "exception occurs, and a loop's ``else`` clause runs when no ``break`` " -"occurs. For more on the :keyword:`try` statement and exceptions, see :ref:" +"occurs. For more on the :keyword:`!try` statement and exceptions, see :ref:" "`tut-handling`." msgstr "" "Lorsqu'elle utilisée dans une boucle, la clause ``else`` est donc plus " "proche de celle associée à une instruction :keyword:`try` que de celle " "associée à une instruction :keyword:`if` : la clause ``else`` d'une " -"instruction :keyword:`try` s'exécute lorsqu'aucune exception n'est " +"instruction :keyword:`!try` s'exécute lorsqu'aucune exception n'est " "déclenchée, et celle d'une boucle lorsque aucun ``break`` n'intervient. Plus " -"plus d'informations sur l'instruction :keyword:`try` et le traitement des " +"plus d'informations sur l'instruction :keyword:`!try` et le traitement des " "exceptions, consultez :ref:`tut-handling`." #: ../Doc/tutorial/controlflow.rst:197 @@ -241,11 +242,11 @@ msgid "" "next iteration of the loop::" msgstr "" "L'instruction :keyword:`continue`, également empruntée au C, fait passer la " -"boucle à son itération suivante : ::" +"boucle à son itération suivante ::" #: ../Doc/tutorial/controlflow.rst:217 -msgid ":keyword:`pass` Statements" -msgstr "L'instruction :keyword:`pass`" +msgid ":keyword:`!pass` Statements" +msgstr "L'instruction :keyword:`!pass`" #: ../Doc/tutorial/controlflow.rst:219 msgid "" @@ -254,24 +255,24 @@ msgid "" msgstr "" "L'instruction :keyword:`pass` ne fait rien. Elle peut être utilisée " "lorsqu'une instruction est nécessaire pour fournir une syntaxe correcte, " -"mais qu'aucune action ne doit être effectuée. Par exemple : ::" +"mais qu'aucune action ne doit être effectuée. Par exemple ::" #: ../Doc/tutorial/controlflow.rst:226 msgid "This is commonly used for creating minimal classes::" msgstr "" -"On utilise couramment cette instruction pour créer des classes minimales : ::" +"On utilise couramment cette instruction pour créer des classes minimales ::" #: ../Doc/tutorial/controlflow.rst:232 msgid "" "Another place :keyword:`pass` can be used is as a place-holder for a " "function or conditional body when you are working on new code, allowing you " -"to keep thinking at a more abstract level. The :keyword:`pass` is silently " +"to keep thinking at a more abstract level. The :keyword:`!pass` is silently " "ignored::" msgstr "" "Un autre cas d'utilisation du :keyword:`pass` est de réserver un espace en " "phase de développement pour une fonction ou un traitement conditionnel, vous " "permettant ainsi de construire votre code à un niveau plus abstrait. " -"L'instruction :keyword:`pass` est alors ignorée silencieusement : ::" +"L'instruction :keyword:`!pass` est alors ignorée silencieusement ::" #: ../Doc/tutorial/controlflow.rst:243 msgid "Defining Functions" @@ -283,7 +284,7 @@ msgid "" "boundary::" msgstr "" "On peut créer une fonction qui écrit la suite de Fibonacci jusqu'à une " -"limite imposée : ::" +"limite imposée ::" #: ../Doc/tutorial/controlflow.rst:265 msgid "" @@ -308,13 +309,13 @@ msgid "" "write, so make a habit of it." msgstr "" "La première instruction d'une fonction peut, de façon facultative, être une " -"chaîne de caractères littérale ; cette chaîne de caractères sera alors la " +"chaîne de caractères littérale ; cette chaîne de caractères sera alors la " "chaîne de documentation de la fonction, appelée :dfn:`docstring` (consultez " "la section :ref:`tut-docstrings` pour en savoir plus). Il existe des outils " "qui utilisent ces chaînes de documentation pour générer automatiquement une " "documentation en ligne ou imprimée, ou pour permettre à l'utilisateur de " -"naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une " -"bonne pratique que de documenter le code que vous écrivez !" +"naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une " +"bonne pratique que de documenter le code que vous écrivez." #: ../Doc/tutorial/controlflow.rst:277 msgid "" @@ -323,22 +324,26 @@ msgid "" "in a function store the value in the local symbol table; whereas variable " "references first look in the local symbol table, then in the local symbol " "tables of enclosing functions, then in the global symbol table, and finally " -"in the table of built-in names. Thus, global variables cannot be directly " -"assigned a value within a function (unless named in a :keyword:`global` " +"in the table of built-in names. Thus, global variables and variables of " +"enclosing functions cannot be directly assigned a value within a function " +"(unless, for global variables, named in a :keyword:`global` statement, or, " +"for variables of enclosing functions, named in a :keyword:`nonlocal` " "statement), although they may be referenced." msgstr "" "*L'exécution* d'une fonction introduit une nouvelle table de symboles " "utilisée par les variables locales de la fonction. Plus précisément, toutes " "les affectations de variables effectuées au sein d'une fonction stockent la " -"valeur dans la table de symboles locale ; en revanche, les références de " +"valeur dans la table de symboles locale ; en revanche, les références de " "variables sont recherchées dans la table de symboles locale, puis dans la " "table de symboles locale des fonctions englobantes, puis dans la table de " "symboles globale et finalement dans la table de noms des primitives. Par " "conséquent, bien qu'elles puissent être référencées, il est impossible " -"d'affecter une valeur à une variable globale (sauf en utilisant une " -"instruction :keyword:`global`)." +"d'affecter une valeur à une variable globale ou à une variable d'une " +"fonction englobante (sauf pour les variables globales désignées dans une " +"instruction :keyword:`global` et pour les variables des fonctions " +"englobantes désignées dans une instruction :keyword:`nonlocal`)." -#: ../Doc/tutorial/controlflow.rst:286 +#: ../Doc/tutorial/controlflow.rst:288 msgid "" "The actual parameters (arguments) to a function call are introduced in the " "local symbol table of the called function when it is called; thus, arguments " @@ -348,12 +353,12 @@ msgid "" msgstr "" "Les paramètres effectifs (arguments) d'une fonction sont introduits dans la " "table de symboles locale de la fonction appelée au moment où elle est " -"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " +"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " "la *valeur* étant toujours une *référence* à un objet et non la valeur de " "l'objet lui-même. [#]_ Lorsqu'une fonction appelle une autre fonction, une " "nouvelle table de symboles locale est créée pour cet appel." -#: ../Doc/tutorial/controlflow.rst:292 +#: ../Doc/tutorial/controlflow.rst:294 msgid "" "A function definition introduces the function name in the current symbol " "table. The value of the function name has a type that is recognized by the " @@ -363,11 +368,12 @@ msgid "" msgstr "" "Une définition de fonction introduit le nom de la fonction dans la table de " "symboles courante. La valeur du nom de la fonction est un type qui est " -"reconnu par l'interpréteur comme une fonction utilisateur. Cette valeur peut " -"être affectée à un autre nom qui pourra alors être utilisé également comme " -"une fonction. Ceci fournit un mécanisme de renommage général : ::" +"reconnu par l'interpréteur comme une fonction définie par l'utilisateur. " +"Cette valeur peut être affectée à un autre nom qui pourra alors être utilisé " +"également comme une fonction. Ceci fournit un mécanisme de renommage " +"général ::" -#: ../Doc/tutorial/controlflow.rst:304 +#: ../Doc/tutorial/controlflow.rst:306 msgid "" "Coming from other languages, you might object that ``fib`` is not a function " "but a procedure since it doesn't return a value. In fact, even functions " @@ -386,31 +392,31 @@ msgstr "" "Vous pouvez le constater, si vous y tenez vraiment, en utilisant :func:" "`print` ::" -#: ../Doc/tutorial/controlflow.rst:315 +#: ../Doc/tutorial/controlflow.rst:317 msgid "" "It is simple to write a function that returns a list of the numbers of the " "Fibonacci series, instead of printing it::" msgstr "" "Il est facile d'écrire une fonction qui renvoie une liste de la série de " -"Fibonacci au lieu de l'afficher : ::" +"Fibonacci au lieu de l'afficher ::" -#: ../Doc/tutorial/controlflow.rst:331 +#: ../Doc/tutorial/controlflow.rst:333 msgid "This example, as usual, demonstrates some new Python features:" msgstr "" "Cet exemple, comme d'habitude, illustre de nouvelles fonctionnalités de " -"Python :" +"Python :" -#: ../Doc/tutorial/controlflow.rst:333 +#: ../Doc/tutorial/controlflow.rst:335 msgid "" "The :keyword:`return` statement returns with a value from a function. :" -"keyword:`return` without an expression argument returns ``None``. Falling " +"keyword:`!return` without an expression argument returns ``None``. Falling " "off the end of a function also returns ``None``." msgstr "" "L'instruction :keyword:`return` provoque la sortie de la fonction en " -"renvoyant une valeur. :keyword:`return` sans expression en paramètre renvoie " -"``None``. Arriver à la fin d'une fonction renvoie également ``None``." +"renvoyant une valeur. :keyword:`!return` sans expression en paramètre " +"renvoie ``None``. Arriver à la fin d'une fonction renvoie également ``None``." -#: ../Doc/tutorial/controlflow.rst:337 +#: ../Doc/tutorial/controlflow.rst:339 msgid "" "The statement ``result.append(a)`` calls a *method* of the list object " "``result``. A method is a function that 'belongs' to an object and is named " @@ -432,15 +438,15 @@ msgstr "" "même nom sans qu'il n'y ait d'ambigüité (vous pouvez définir vos propres " "types d'objets et leurs méthodes en utilisant des *classes*, voir :ref:`tut-" "classes`). La méthode :meth:`append` donnée dans cet exemple est définie " -"pour les listes ; elles ajoute un nouvel élément à la fin de la liste. Dans " +"pour les listes ; elle ajoute un nouvel élément à la fin de la liste. Dans " "cet exemple, elle est l'équivalent de ``result = result + [a]``, mais elle " "est plus efficace." -#: ../Doc/tutorial/controlflow.rst:352 +#: ../Doc/tutorial/controlflow.rst:354 msgid "More on Defining Functions" msgstr "D'avantage sur la définition des fonctions" -#: ../Doc/tutorial/controlflow.rst:354 +#: ../Doc/tutorial/controlflow.rst:356 msgid "" "It is also possible to define functions with a variable number of arguments. " "There are three forms, which can be combined." @@ -448,11 +454,11 @@ msgstr "" "Il est également possible de définir des fonctions avec un nombre variable " "d'arguments. Trois syntaxes peuvent être utilisées, éventuellement combinées." -#: ../Doc/tutorial/controlflow.rst:361 +#: ../Doc/tutorial/controlflow.rst:363 msgid "Default Argument Values" msgstr "Valeur par défaut des arguments" -#: ../Doc/tutorial/controlflow.rst:363 +#: ../Doc/tutorial/controlflow.rst:365 msgid "" "The most useful form is to specify a default value for one or more " "arguments. This creates a function that can be called with fewer arguments " @@ -460,36 +466,36 @@ msgid "" msgstr "" "La forme la plus utile consiste à indiquer une valeur par défaut pour " "certains arguments. Ceci crée une fonction qui pourra être appelée avec " -"moins d'arguments que ceux présents dans sa définition. Par exemple : ::" +"moins d'arguments que ceux présents dans sa définition. Par exemple ::" -#: ../Doc/tutorial/controlflow.rst:379 +#: ../Doc/tutorial/controlflow.rst:381 msgid "This function can be called in several ways:" -msgstr "Cette fonction peut être appelée de plusieurs façons :" +msgstr "Cette fonction peut être appelée de plusieurs façons :" -#: ../Doc/tutorial/controlflow.rst:381 +#: ../Doc/tutorial/controlflow.rst:383 msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" msgstr "" -"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " +"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " "want to quit?')``" -#: ../Doc/tutorial/controlflow.rst:383 +#: ../Doc/tutorial/controlflow.rst:385 msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" msgstr "" -"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " +"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " "overwrite the file?', 2)``" -#: ../Doc/tutorial/controlflow.rst:385 +#: ../Doc/tutorial/controlflow.rst:387 msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " "on, only yes or no!')``" msgstr "" -"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " +"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " "'Come on, only yes or no!')``" -#: ../Doc/tutorial/controlflow.rst:388 +#: ../Doc/tutorial/controlflow.rst:390 msgid "" "This example also introduces the :keyword:`in` keyword. This tests whether " "or not a sequence contains a certain value." @@ -497,19 +503,19 @@ msgstr "" "Cet exemple présente également le mot-clé :keyword:`in`. Celui-ci permet de " "tester si une séquence contient une certaine valeur." -#: ../Doc/tutorial/controlflow.rst:391 +#: ../Doc/tutorial/controlflow.rst:393 msgid "" "The default values are evaluated at the point of function definition in the " "*defining* scope, so that ::" msgstr "" "Les valeurs par défaut sont évaluées lors de la définition de la fonction " -"dans la portée de *définition*, de telle sorte que : ::" +"dans la portée de *définition*, de telle sorte que ::" -#: ../Doc/tutorial/controlflow.rst:402 +#: ../Doc/tutorial/controlflow.rst:404 msgid "will print ``5``." -msgstr "Affiche ``5``." +msgstr "affiche ``5``." -#: ../Doc/tutorial/controlflow.rst:404 +#: ../Doc/tutorial/controlflow.rst:406 msgid "" "**Important warning:** The default value is evaluated only once. This makes " "a difference when the default is a mutable object such as a list, " @@ -520,25 +526,25 @@ msgstr "" "seule fois. Ceci fait une différence lorsque cette valeur par défaut est un " "objet muable tel qu'une liste, un dictionnaire ou des instances de la " "plupart des classes. Par exemple, la fonction suivante accumule les " -"arguments qui lui sont passés au fil des appels successifs : ::" +"arguments qui lui sont passés au fil des appels successifs ::" -#: ../Doc/tutorial/controlflow.rst:417 +#: ../Doc/tutorial/controlflow.rst:419 msgid "This will print ::" -msgstr "Ceci affiche : ::" +msgstr "Ceci affiche ::" -#: ../Doc/tutorial/controlflow.rst:423 +#: ../Doc/tutorial/controlflow.rst:425 msgid "" "If you don't want the default to be shared between subsequent calls, you can " "write the function like this instead::" msgstr "" "Si vous ne voulez pas que cette valeur par défaut soit partagée entre des " -"appels successifs, vous pouvez écrire la fonction de cette façon : ::" +"appels successifs, vous pouvez écrire la fonction de cette façon ::" -#: ../Doc/tutorial/controlflow.rst:436 +#: ../Doc/tutorial/controlflow.rst:438 msgid "Keyword Arguments" msgstr "Les arguments nommés" -#: ../Doc/tutorial/controlflow.rst:438 +#: ../Doc/tutorial/controlflow.rst:440 msgid "" "Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following " @@ -546,9 +552,9 @@ msgid "" msgstr "" "Les fonctions peuvent également être appelées en utilisant des :term:" "`arguments nommés ` sous la forme ``kwarg=value``. Par " -"exemple, la fonction suivante : ::" +"exemple, la fonction suivante ::" -#: ../Doc/tutorial/controlflow.rst:447 +#: ../Doc/tutorial/controlflow.rst:449 msgid "" "accepts one required argument (``voltage``) and three optional arguments " "(``state``, ``action``, and ``type``). This function can be called in any " @@ -556,13 +562,13 @@ msgid "" msgstr "" "accepte un argument obligatoire (``voltage``) et trois arguments facultatifs " "(``state``, ``action`` et ``type``). Cette fonction peut être appelée de " -"n'importe laquelle des façons suivantes : ::" +"n'importe laquelle des façons suivantes ::" -#: ../Doc/tutorial/controlflow.rst:458 +#: ../Doc/tutorial/controlflow.rst:460 msgid "but all the following calls would be invalid::" -msgstr "mais tous les appels qui suivent sont incorrects : ::" +msgstr "mais tous les appels qui suivent sont incorrects ::" -#: ../Doc/tutorial/controlflow.rst:465 +#: ../Doc/tutorial/controlflow.rst:467 msgid "" "In a function call, keyword arguments must follow positional arguments. All " "the keyword arguments passed must match one of the arguments accepted by the " @@ -576,39 +582,39 @@ msgstr "" "positionnés. Tous les arguments nommés doivent correspondre à l'un des " "arguments acceptés par la fonction (par exemple, ``actor`` n'est pas un " "argument accepté par la fonction ``parrot``), mais leur ordre n'est pas " -"important. Ceci inclut également les arguments facultatifs " +"important. Ceci inclut également les arguments obligatoires " "(``parrot(voltage=1000)`` est également correct). Aucun argument ne peut " "recevoir une valeur plus d'une fois, comme l'illustre cet exemple incorrect " -"du fait de cette restriction : ::" +"du fait de cette restriction ::" -#: ../Doc/tutorial/controlflow.rst:481 +#: ../Doc/tutorial/controlflow.rst:483 msgid "" "When a final formal parameter of the form ``**name`` is present, it receives " "a dictionary (see :ref:`typesmapping`) containing all keyword arguments " "except for those corresponding to a formal parameter. This may be combined " "with a formal parameter of the form ``*name`` (described in the next " -"subsection) which receives a tuple containing the positional arguments " -"beyond the formal parameter list. (``*name`` must occur before ``**name``.) " -"For example, if we define a function like this::" +"subsection) which receives a :ref:`tuple ` containing the " +"positional arguments beyond the formal parameter list. (``*name`` must " +"occur before ``**name``.) For example, if we define a function like this::" msgstr "" "Quand un dernier paramètre formel est présent sous la forme ``**name``, il " "reçoit un dictionnaire (voir :ref:`typesmapping`) contenant tous les " "arguments nommés à l'exception de ceux correspondant à un paramètre formel. " "Ceci peut être combiné à un paramètre formel sous la forme ``*name`` (décrit " -"dans la section suivante) qui lui reçoit un tuple contenant les arguments " -"positionnés au-delà de la liste des paramètres formels (``*name`` doit être " -"présent avant ``**name``). Par exemple, si vous définissez une fonction " -"comme ceci ::" +"dans la section suivante) qui lui reçoit un :ref:`n-uplet ` " +"contenant les arguments positionnés au-delà de la liste des paramètres " +"formels (``*name`` doit être présent avant ``**name``). Par exemple, si vous " +"définissez une fonction comme ceci ::" -#: ../Doc/tutorial/controlflow.rst:498 +#: ../Doc/tutorial/controlflow.rst:500 msgid "It could be called like this::" -msgstr "Elle pourrait être appelée comme ceci : ::" +msgstr "Elle pourrait être appelée comme ceci ::" -#: ../Doc/tutorial/controlflow.rst:506 +#: ../Doc/tutorial/controlflow.rst:508 msgid "and of course it would print:" msgstr "et, bien sûr, elle affiche :" -#: ../Doc/tutorial/controlflow.rst:519 +#: ../Doc/tutorial/controlflow.rst:521 msgid "" "Note that the order in which the keyword arguments are printed is guaranteed " "to match the order in which they were provided in the function call." @@ -616,11 +622,11 @@ msgstr "" "Notez que Python garantit que l'ordre d'affichage des arguments est le même " "que l'ordre dans lesquels ils sont fournis lors de l'appel à la fonction." -#: ../Doc/tutorial/controlflow.rst:526 +#: ../Doc/tutorial/controlflow.rst:528 msgid "Arbitrary Argument Lists" msgstr "Listes d'arguments arbitraires" -#: ../Doc/tutorial/controlflow.rst:531 +#: ../Doc/tutorial/controlflow.rst:533 msgid "" "Finally, the least frequently used option is to specify that a function can " "be called with an arbitrary number of arguments. These arguments will be " @@ -631,9 +637,9 @@ msgstr "" "fonction peut être appelée avec un nombre arbitraire d'arguments. Ces " "arguments sont intégrés dans un tuple (voir :ref:`tut-tuples`). Avant le " "nombre variable d'arguments, zéro arguments normaux ou plus peuvent " -"apparaître : ::" +"apparaître ::" -#: ../Doc/tutorial/controlflow.rst:540 +#: ../Doc/tutorial/controlflow.rst:542 msgid "" "Normally, these ``variadic`` arguments will be last in the list of formal " "parameters, because they scoop up all remaining input arguments that are " @@ -643,20 +649,20 @@ msgid "" msgstr "" "Normalement, ces arguments ``variadiques`` sont les derniers paramètres, " "parce qu'ils agrègent toutes les valeurs suivantes. Tout paramètre placé " -"après le paramètre ``*arg`` ne pourra être utilisé que par son nom." +"après le paramètre ``*arg`` ne pourra être utilisé que par son nom. ::" -#: ../Doc/tutorial/controlflow.rst:557 +#: ../Doc/tutorial/controlflow.rst:559 msgid "Unpacking Argument Lists" msgstr "Séparation des listes d'arguments" -#: ../Doc/tutorial/controlflow.rst:559 +#: ../Doc/tutorial/controlflow.rst:561 msgid "" "The reverse situation occurs when the arguments are already in a list or " "tuple but need to be unpacked for a function call requiring separate " "positional arguments. For instance, the built-in :func:`range` function " "expects separate *start* and *stop* arguments. If they are not available " -"separately, write the function call with the ``*``\\ -operator to unpack " -"the arguments out of a list or tuple::" +"separately, write the function call with the ``*`` operator to unpack the " +"arguments out of a list or tuple::" msgstr "" "La situation inverse intervient lorsque les arguments sont déjà dans une " "liste ou un tuple mais doivent être séparés pour un appel de fonction " @@ -664,21 +670,21 @@ msgstr "" "func:`range` attend des arguments *start* et *stop* distincts. S'ils ne sont " "pas disponibles séparément, écrivez l'appel de fonction en utilisant " "l'opérateur ``*`` pour séparer les arguments présents dans une liste ou un " -"tuple : ::" +"tuple ::" -#: ../Doc/tutorial/controlflow.rst:575 +#: ../Doc/tutorial/controlflow.rst:577 msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " -"``**``\\ -operator::" +"``**`` operator::" msgstr "" "De la même façon, les dictionnaires peuvent fournir des arguments nommés en " "utilisant l'opérateur ``**`` ::" -#: ../Doc/tutorial/controlflow.rst:591 +#: ../Doc/tutorial/controlflow.rst:593 msgid "Lambda Expressions" msgstr "Fonctions anonymes" -#: ../Doc/tutorial/controlflow.rst:593 +#: ../Doc/tutorial/controlflow.rst:595 msgid "" "Small anonymous functions can be created with the :keyword:`lambda` keyword. " "This function returns the sum of its two arguments: ``lambda a, b: a+b``. " @@ -689,28 +695,27 @@ msgid "" "scope::" msgstr "" "Avec le mot-clé :keyword:`lambda`, vous pouvez créer de petites fonctions " -"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " +"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " "a, b: a+b``. Les fonctions lambda peuvent être utilisées partout où un objet " "fonction est attendu. Elles sont syntaxiquement restreintes à une seule " "expression. Sémantiquement, elles ne sont que du sucre syntaxique pour une " "définition de fonction normale. Comme les fonctions imbriquées, les " -"fonctions lambda peuvent référencer des variables de la portée " -"englobante : ::" +"fonctions lambda peuvent référencer des variables de la portée englobante ::" -#: ../Doc/tutorial/controlflow.rst:610 +#: ../Doc/tutorial/controlflow.rst:612 msgid "" "The above example uses a lambda expression to return a function. Another " "use is to pass a small function as an argument::" msgstr "" "L'exemple précédent utilise une fonction anonyme pour renvoyer une fonction. " "Une autre utilisation classique est de donner une fonction minimaliste " -"directement en temps que paramètre ::" +"directement en tant que paramètre ::" -#: ../Doc/tutorial/controlflow.rst:622 +#: ../Doc/tutorial/controlflow.rst:624 msgid "Documentation Strings" msgstr "Chaînes de documentation" -#: ../Doc/tutorial/controlflow.rst:629 +#: ../Doc/tutorial/controlflow.rst:631 msgid "" "Here are some conventions about the content and formatting of documentation " "strings." @@ -718,7 +723,7 @@ msgstr "" "Voici quelques conventions concernant le contenu et le format des chaînes de " "documentation." -#: ../Doc/tutorial/controlflow.rst:632 +#: ../Doc/tutorial/controlflow.rst:634 msgid "" "The first line should always be a short, concise summary of the object's " "purpose. For brevity, it should not explicitly state the object's name or " @@ -732,7 +737,7 @@ msgstr "" "nom est un verbe qui décrit une opération). Cette ligne devrait commencer " "avec une majuscule et se terminer par un point." -#: ../Doc/tutorial/controlflow.rst:638 +#: ../Doc/tutorial/controlflow.rst:640 msgid "" "If there are more lines in the documentation string, the second line should " "be blank, visually separating the summary from the rest of the description. " @@ -744,7 +749,7 @@ msgstr "" "Les autres lignes peuvent alors constituer un ou plusieurs paragraphes " "décrivant le mode d'utilisation de l'objet, ses effets de bord, etc." -#: ../Doc/tutorial/controlflow.rst:643 +#: ../Doc/tutorial/controlflow.rst:645 msgid "" "The Python parser does not strip indentation from multi-line string literals " "in Python, so tools that process documentation have to strip indentation if " @@ -761,7 +766,7 @@ msgstr "" "L'analyseur de code Python ne supprime pas l'indentation des chaînes de " "caractères littérales multi-lignes, donc les outils qui utilisent la " "documentation doivent si besoin faire cette opération eux-mêmes. La " -"convention suivante s'applique : la première ligne non vide *après* la " +"convention suivante s'applique : la première ligne non vide *après* la " "première détermine la profondeur d'indentation de l'ensemble de la chaîne de " "documentation (on ne peut pas utiliser la première ligne qui est " "généralement accolée aux guillemets d'ouverture de la chaîne de caractères " @@ -772,15 +777,15 @@ msgstr "" "début de ligne doivent être supprimées. L'équivalent des espaces doit être " "testé après expansion des tabulations (normalement remplacés par 4 espaces)." -#: ../Doc/tutorial/controlflow.rst:655 +#: ../Doc/tutorial/controlflow.rst:657 msgid "Here is an example of a multi-line docstring::" -msgstr "Voici un exemple de chaîne de documentation multi-lignes : ::" +msgstr "Voici un exemple de chaîne de documentation multi-lignes ::" -#: ../Doc/tutorial/controlflow.rst:673 +#: ../Doc/tutorial/controlflow.rst:675 msgid "Function Annotations" msgstr "Annotations de fonctions" -#: ../Doc/tutorial/controlflow.rst:680 +#: ../Doc/tutorial/controlflow.rst:683 msgid "" ":ref:`Function annotations ` are completely optional metadata " "information about the types used by user-defined functions (see :pep:`3107` " @@ -788,34 +793,33 @@ msgid "" msgstr "" ":ref:`Les annotations de fonction ` sont des métadonnées " "optionnelles décrivant les types utilisés par une fonction définie par " -"l'utilisateur (voir les PEPs :pep:`3107` et la :pep:`484` pour plus " -"d'informations)." - -#: ../Doc/tutorial/controlflow.rst:684 -msgid "" -"Annotations are stored in the :attr:`__annotations__` attribute of the " -"function as a dictionary and have no effect on any other part of the " -"function. Parameter annotations are defined by a colon after the parameter " -"name, followed by an expression evaluating to the value of the annotation. " -"Return annotations are defined by a literal ``->``, followed by an " -"expression, between the parameter list and the colon denoting the end of " -"the :keyword:`def` statement. The following example has a positional " -"argument, a keyword argument, and the return value annotated::" -msgstr "" -"Les annotations sont stockées dans l'attribut :attr:`__annotations__` de la " -"fonction, sous forme d'un dictionnaire, et n'ont aucun autre effet. Les " -"annotations sur les paramètres sont définis par deux points (:) après le nom " -"du paramètre suivi d'une expression donnant la valeur de l'annotation. Les " -"annotations de retour sont définies par ``->`` suivi d'une expression, entre " -"la liste des paramètres et les deux points de fin de l'instruction :keyword:" -"`def`. L'exemple suivant a un paramètre positionnel, un paramètre nommé et " -"une valeur de retour annotée : ::" - -#: ../Doc/tutorial/controlflow.rst:706 +"l'utilisateur (voir les :pep:`3107` et :pep:`484` pour plus d'informations)." + +#: ../Doc/tutorial/controlflow.rst:687 +msgid "" +":term:`Annotations ` are stored in the :attr:" +"`__annotations__` attribute of the function as a dictionary and have no " +"effect on any other part of the function. Parameter annotations are defined " +"by a colon after the parameter name, followed by an expression evaluating to " +"the value of the annotation. Return annotations are defined by a literal ``-" +">``, followed by an expression, between the parameter list and the colon " +"denoting the end of the :keyword:`def` statement. The following example has " +"a positional argument, a keyword argument, and the return value annotated::" +msgstr "" +"Les :term:`annotations ` sont stockées dans l'attribut :" +"attr:`__annotations__` de la fonction, sous forme d'un dictionnaire, et " +"n'ont aucun autre effet. Les annotations sur les paramètres sont définies " +"par deux points (`:`) après le nom du paramètre suivi d'une expression " +"donnant la valeur de l'annotation. Les annotations de retour sont définies " +"par ``->`` suivi d'une expression, entre la liste des paramètres et les deux " +"points de fin de l'instruction :keyword:`def`. L'exemple suivant a un " +"paramètre positionnel, un paramètre nommé et la valeur de retour annotés ::" + +#: ../Doc/tutorial/controlflow.rst:709 msgid "Intermezzo: Coding Style" -msgstr "Aparté : le style de codage" +msgstr "Aparté : le style de codage" -#: ../Doc/tutorial/controlflow.rst:711 +#: ../Doc/tutorial/controlflow.rst:714 msgid "" "Now that you are about to write longer, more complex pieces of Python, it is " "a good time to talk about *coding style*. Most languages can be written (or " @@ -826,11 +830,11 @@ msgstr "" "Maintenant que vous êtes prêt à écrire des programmes plus longs et plus " "complexes, il est temps de parler du *style de codage*. La plupart des " "langages peuvent être écrits (ou plutôt *formatés*) selon différents " -"styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " +"styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " "votre code plus facile aux autres est toujours une bonne idée et adopter un " "bon style de codage peut énormément vous y aider." -#: ../Doc/tutorial/controlflow.rst:717 +#: ../Doc/tutorial/controlflow.rst:720 msgid "" "For Python, :pep:`8` has emerged as the style guide that most projects " "adhere to; it promotes a very readable and eye-pleasing coding style. Every " @@ -838,15 +842,15 @@ msgid "" "points extracted for you:" msgstr "" "En Python, la plupart des projets adhèrent au style défini dans la :pep:" -"`8` ; elle met en avant un style de codage très lisible et agréable à l’œil. " +"`8` ; elle met en avant un style de codage très lisible et agréable à l’œil. " "Chaque développeur Python se doit donc de la lire et de s'en inspirer autant " -"que possible ; voici ses principaux points notables :" +"que possible ; voici ses principaux points notables :" -#: ../Doc/tutorial/controlflow.rst:722 +#: ../Doc/tutorial/controlflow.rst:725 msgid "Use 4-space indentation, and no tabs." msgstr "Utilisez des indentations de 4 espaces et pas de tabulation." -#: ../Doc/tutorial/controlflow.rst:724 +#: ../Doc/tutorial/controlflow.rst:727 msgid "" "4 spaces are a good compromise between small indentation (allows greater " "nesting depth) and large indentation (easier to read). Tabs introduce " @@ -857,13 +861,13 @@ msgstr "" "le code plus facile à lire). Les tabulations introduisent de la confusion et " "doivent être proscrites autant que possible." -#: ../Doc/tutorial/controlflow.rst:728 +#: ../Doc/tutorial/controlflow.rst:731 msgid "Wrap lines so that they don't exceed 79 characters." msgstr "" "Faites en sorte que les lignes ne dépassent pas 79 caractères, au besoin en " "insérant des retours à la ligne." -#: ../Doc/tutorial/controlflow.rst:730 +#: ../Doc/tutorial/controlflow.rst:733 msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." @@ -872,7 +876,7 @@ msgstr "" "écran et, pour les autres, cela leur permet de visualiser plusieurs fichiers " "côte à côte." -#: ../Doc/tutorial/controlflow.rst:733 +#: ../Doc/tutorial/controlflow.rst:736 msgid "" "Use blank lines to separate functions and classes, and larger blocks of code " "inside functions." @@ -880,24 +884,24 @@ msgstr "" "Utilisez des lignes vides pour séparer les fonctions et les classes, ou pour " "scinder de gros blocs de code à l'intérieur de fonctions." -#: ../Doc/tutorial/controlflow.rst:736 +#: ../Doc/tutorial/controlflow.rst:739 msgid "When possible, put comments on a line of their own." msgstr "" -"Lorsque c'est possible, placez les commentaires sur leur propres lignes." +"Lorsque c'est possible, placez les commentaires sur leurs propres lignes." -#: ../Doc/tutorial/controlflow.rst:738 +#: ../Doc/tutorial/controlflow.rst:741 msgid "Use docstrings." msgstr "Utilisez les chaînes de documentation." -#: ../Doc/tutorial/controlflow.rst:740 +#: ../Doc/tutorial/controlflow.rst:743 msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." msgstr "" "Utilisez des espaces autour des opérateurs et après les virgules, mais pas " -"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." +"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." -#: ../Doc/tutorial/controlflow.rst:743 +#: ../Doc/tutorial/controlflow.rst:746 msgid "" "Name your classes and functions consistently; the convention is to use " "``CamelCase`` for classes and ``lower_case_with_underscores`` for functions " @@ -910,7 +914,7 @@ msgstr "" "toujours ``self`` comme nom du premier argument des méthodes (voyez :ref:" "`tut-firstclasses` pour en savoir plus sur les classes et les méthodes)." -#: ../Doc/tutorial/controlflow.rst:748 +#: ../Doc/tutorial/controlflow.rst:751 msgid "" "Don't use fancy encodings if your code is meant to be used in international " "environments. Python's default, UTF-8, or even plain ASCII work best in any " @@ -920,7 +924,7 @@ msgstr "" "utilisé dans des environnements internationaux. Par défaut, Python travaille " "en UTF-8. Pour couvrir tous les cas, préférez le simple ASCII." -#: ../Doc/tutorial/controlflow.rst:752 +#: ../Doc/tutorial/controlflow.rst:755 msgid "" "Likewise, don't use non-ASCII characters in identifiers if there is only the " "slightest chance people speaking a different language will read or maintain " @@ -930,11 +934,11 @@ msgstr "" "variables s'il est envisageable qu'une personne parlant une autre langue " "lise ou doive modifier votre code." -#: ../Doc/tutorial/controlflow.rst:758 +#: ../Doc/tutorial/controlflow.rst:761 msgid "Footnotes" msgstr "Notes" -#: ../Doc/tutorial/controlflow.rst:759 +#: ../Doc/tutorial/controlflow.rst:762 msgid "" "Actually, *call by object reference* would be a better description, since if " "a mutable object is passed, the caller will see any changes the callee makes " @@ -943,7 +947,7 @@ msgstr "" "En fait, *appels par référence d'objets* serait sans doute une description " "plus juste dans la mesure où, si un objet muable est passé en argument, " "l'appelant verra toutes les modifications qui lui auront été apportées par " -"l'appelé (insertion d'éléments dans une liste...)." +"l'appelé (insertion d'éléments dans une liste…)." #~ msgid "" #~ "Note that the list of keyword argument names is created by sorting the " diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 0650d9646..3ae70c371 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-08-03 19:09+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-02-17 18:53+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.0.2\n" +"X-Generator: Poedit 2.2\n" #: ../Doc/tutorial/datastructures.rst:5 msgid "Data Structures" @@ -37,7 +37,7 @@ msgid "" "list objects:" msgstr "" "Le type liste dispose de méthodes supplémentaires. Voici toutes les méthodes " -"des objets de type liste :" +"des objets de type liste :" #: ../Doc/tutorial/datastructures.rst:22 msgid "" @@ -50,7 +50,7 @@ msgid "" "Extend the list by appending all the items from the iterable. Equivalent to " "``a[len(a):] = iterable``." msgstr "" -"Étend la liste en y ajoutant tous les éléments de l'itérable. Équivalent à " +"Étend la liste en y ajoutant tous les éléments de l'itérable. Équivalent à " "``a[len(a):] = iterable``." #: ../Doc/tutorial/datastructures.rst:35 @@ -67,10 +67,11 @@ msgstr "" #: ../Doc/tutorial/datastructures.rst:43 msgid "" "Remove the first item from the list whose value is equal to *x*. It raises " -"a ``ValueError`` if there is no such item." +"a :exc:`ValueError` if there is no such item." msgstr "" "Supprime de la liste le premier élément dont la valeur est égale à *x*. Une " -"``ValueError`` est levée s'il n'existe aucun élément avec cette valeur." +"exception :exc:`ValueError` est levée s'il n'existe aucun élément avec cette " +"valeur." #: ../Doc/tutorial/datastructures.rst:50 msgid "" @@ -85,7 +86,7 @@ msgstr "" "valeur de retour. Si aucune position n'est spécifiée, ``a.pop()`` enlève et " "renvoie le dernier élément de la liste (les crochets autour du *i* dans la " "signature de la méthode indiquent que ce paramètre est facultatif et non que " -"vous devez placer des crochets dans votre code ! Vous retrouverez cette " +"vous devez placer des crochets dans votre code ! Vous retrouverez cette " "notation fréquemment dans le Guide de Référence de la Bibliothèque Python)." #: ../Doc/tutorial/datastructures.rst:60 @@ -110,7 +111,7 @@ msgid "" msgstr "" "Les arguments optionnels *start* et *end* sont interprétés de la même " "manière que dans la notation des tranches et sont utilisés pour limiter la " -"recherche à une sous-séquence particulière. L'index renvoyé est calculé " +"recherche à une sous-séquence particulière. L'indice renvoyé est calculé " "relativement au début de la séquence complète et non relativement à *start*." #: ../Doc/tutorial/datastructures.rst:78 @@ -122,12 +123,12 @@ msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." msgstr "" -"Classe les éléments sur place (les arguments peuvent personnaliser le " -"classement, voir :func:`sorted` pour leur explication)." +"Ordonne les éléments dans la liste (les arguments peuvent personnaliser " +"l'ordonnancement, voir :func:`sorted` pour leur explication)." #: ../Doc/tutorial/datastructures.rst:91 msgid "Reverse the elements of the list in place." -msgstr "Inverse l'ordre des éléments de la liste, sur place." +msgstr "Inverse l'ordre des éléments dans la liste." #: ../Doc/tutorial/datastructures.rst:97 msgid "Return a shallow copy of the list. Equivalent to ``a[:]``." @@ -135,7 +136,7 @@ msgstr "Renvoie une copie superficielle de la liste. Équivalent à ``a[:]``." #: ../Doc/tutorial/datastructures.rst:100 msgid "An example that uses most of the list methods::" -msgstr "L'exemple suivant utilise la plupart des méthodes des listes : ::" +msgstr "L'exemple suivant utilise la plupart des méthodes des listes ::" #: ../Doc/tutorial/datastructures.rst:123 msgid "" @@ -146,7 +147,7 @@ msgid "" msgstr "" "Vous avez probablement remarqué que les méthodes telles que ``insert``, " "``remove`` ou ``sort``, qui ne font que modifier la liste, n'affichent pas " -"de valeur de retour (elles renvoient ``None``) [1]_. C'est un principe " +"de valeur de retour (elles renvoient ``None``) [1]_. C'est un principe " "respecté par toutes les structures de données variables en Python." #: ../Doc/tutorial/datastructures.rst:132 @@ -162,11 +163,11 @@ msgid "" "For example::" msgstr "" "Les méthodes des listes rendent très facile leur utilisation comme des " -"piles, où le dernier élément ajouté est le premier récupéré (\"dernier " -"entré, premier sorti\" ou LIFO pour *last-in, first-out* en anglais). Pour " +"piles, où le dernier élément ajouté est le premier récupéré (« dernier " +"entré, premier sorti » ou LIFO pour *last-in, first-out* en anglais). Pour " "ajouter un élément sur la pile, utilisez la méthode :meth:`append`. Pour " "récupérer l'objet au sommet de la pile, utilisez la méthode :meth:`pop` sans " -"indicateur de position. Par exemple : ::" +"indicateur de position. Par exemple ::" #: ../Doc/tutorial/datastructures.rst:162 msgid "Using Lists as Queues" @@ -181,8 +182,8 @@ msgid "" "(because all of the other elements have to be shifted by one)." msgstr "" "Il est également possible d'utiliser une liste comme une file, où le premier " -"élément ajouté est le premier récupéré (\"premier entré, premier sorti\" ou " -"FIFO pour *first-in, first-out*) ; toutefois, les listes ne sont pas très " +"élément ajouté est le premier récupéré (« premier entré, premier sorti » ou " +"FIFO pour *first-in, first-out*) ; toutefois, les listes ne sont pas très " "efficaces pour réaliser ce type de traitement. Alors que les ajouts et " "suppressions en fin de liste sont rapides, les opérations d'insertions ou de " "retraits en début de liste sont lentes (car tous les autres éléments doivent " @@ -195,7 +196,7 @@ msgid "" msgstr "" "Pour implémenter une file, utilisez la classe :class:`collections.deque` qui " "a été conçue pour réaliser rapidement les opérations d'ajouts et de retraits " -"aux deux extrémités. Par exemple : ::" +"aux deux extrémités. Par exemple ::" #: ../Doc/tutorial/datastructures.rst:190 msgid "List Comprehensions" @@ -211,13 +212,13 @@ msgstr "" "Les compréhensions de listes fournissent un moyen de construire des listes " "de manière très concise. Une application classique est la construction de " "nouvelles listes où chaque élément est le résultat d'une opération appliquée " -"à chaque élément d'une autre séquence ; ou de créer une sous-séquence des " +"à chaque élément d'une autre séquence ; ou de créer une sous-séquence des " "éléments satisfaisant une condition spécifique." #: ../Doc/tutorial/datastructures.rst:197 msgid "For example, assume we want to create a list of squares, like::" msgstr "" -"Par exemple, supposons que l'on veuille créer une liste de carrés, comme : ::" +"Par exemple, supposons que l'on veuille créer une liste de carrés, comme ::" #: ../Doc/tutorial/datastructures.rst:206 msgid "" @@ -227,11 +228,11 @@ msgid "" msgstr "" "Notez que cela crée (ou remplace) une variable nommée ``x`` qui existe " "toujours après l'exécution de la boucle. On peut calculer une liste de " -"carrés sans effet de bord avec : ::" +"carrés sans effet de bord avec ::" #: ../Doc/tutorial/datastructures.rst:212 msgid "or, equivalently::" -msgstr "ou, de manière équivalente : ::" +msgstr "ou, de manière équivalente ::" #: ../Doc/tutorial/datastructures.rst:216 msgid "which is more concise and readable." @@ -240,22 +241,22 @@ msgstr "qui est plus court et lisible." #: ../Doc/tutorial/datastructures.rst:218 msgid "" "A list comprehension consists of brackets containing an expression followed " -"by a :keyword:`for` clause, then zero or more :keyword:`for` or :keyword:" -"`if` clauses. The result will be a new list resulting from evaluating the " -"expression in the context of the :keyword:`for` and :keyword:`if` clauses " +"by a :keyword:`!for` clause, then zero or more :keyword:`!for` or :keyword:`!" +"if` clauses. The result will be a new list resulting from evaluating the " +"expression in the context of the :keyword:`!for` and :keyword:`!if` clauses " "which follow it. For example, this listcomp combines the elements of two " "lists if they are not equal::" msgstr "" "Une compréhension de liste consiste à placer entre crochets une expression " -"suivie par une clause :keyword:`for` puis par zéro ou plus clauses :keyword:" -"`for` ou :keyword:`if`. Le résultat est une nouvelle liste résultat de " -"l'évaluation de l'expression dans le contexte des clauses :keyword:`for` et :" -"keyword:`if` qui la suivent. Par exemple, cette compréhension de liste " -"combine les éléments de deux listes s'ils ne sont pas égaux : ::" +"suivie par une clause :keyword:`!for` puis par zéro ou plus clauses :keyword:" +"`!for` ou :keyword:`!if`. Le résultat est une nouvelle liste résultat de " +"l'évaluation de l'expression dans le contexte des clauses :keyword:`!for` " +"et :keyword:`!if` qui la suivent. Par exemple, cette compréhension de liste " +"combine les éléments de deux listes s'ils ne sont pas égaux ::" #: ../Doc/tutorial/datastructures.rst:228 msgid "and it's equivalent to::" -msgstr "et c'est équivalent à : ::" +msgstr "et c'est équivalent à ::" #: ../Doc/tutorial/datastructures.rst:239 msgid "" @@ -270,15 +271,15 @@ msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" -"Si l'expression est un tuple (c'est-à-dire ``(x, y)`` dans cet exemple), " -"elle doit être entourée par des parenthèses : ::" +"Si l'expression est un n-uplet (c'est-à-dire ``(x, y)`` dans cet exemple), " +"elle doit être entourée par des parenthèses ::" #: ../Doc/tutorial/datastructures.rst:273 msgid "" "List comprehensions can contain complex expressions and nested functions::" msgstr "" "Les compréhensions de listes peuvent contenir des expressions complexes et " -"des fonctions imbriquées : ::" +"des fonctions imbriquées ::" #: ../Doc/tutorial/datastructures.rst:280 msgid "Nested List Comprehensions" @@ -298,11 +299,11 @@ msgid "" "lists of length 4::" msgstr "" "Voyez l'exemple suivant d'une matrice de 3 par 4, implémentée sous la forme " -"de 3 listes de 4 éléments : ::" +"de 3 listes de 4 éléments ::" #: ../Doc/tutorial/datastructures.rst:294 msgid "The following list comprehension will transpose rows and columns::" -msgstr "Cette compréhension de liste transpose les lignes et les colonnes : ::" +msgstr "Cette compréhension de liste transpose les lignes et les colonnes ::" #: ../Doc/tutorial/datastructures.rst:299 msgid "" @@ -312,11 +313,11 @@ msgid "" msgstr "" "Comme nous l'avons vu dans la section précédente, la compréhension de liste " "imbriquée est évaluée dans le contexte de l'instruction :keyword:`for` qui " -"la suit, donc cet exemple est équivalent à : ::" +"la suit, donc cet exemple est équivalent à ::" #: ../Doc/tutorial/datastructures.rst:310 msgid "which, in turn, is the same as::" -msgstr "lequel à son tour est équivalent à : ::" +msgstr "lequel à son tour est équivalent à ::" #: ../Doc/tutorial/datastructures.rst:323 msgid "" @@ -325,7 +326,7 @@ msgid "" msgstr "" "Dans des cas concrets, il est toujours préférable d'utiliser des fonctions " "natives plutôt que des instructions de contrôle de flux complexes. La " -"fonction :func:`zip` ferait dans ce cas un excellent travail : ::" +"fonction :func:`zip` ferait dans ce cas un excellent travail ::" #: ../Doc/tutorial/datastructures.rst:329 msgid "" @@ -335,28 +336,28 @@ msgstr "" "de cette ligne." #: ../Doc/tutorial/datastructures.rst:334 -msgid "The :keyword:`del` statement" -msgstr "L'instruction :keyword:`del`" +msgid "The :keyword:`!del` statement" +msgstr "L'instruction :keyword:`!del`" #: ../Doc/tutorial/datastructures.rst:336 msgid "" "There is a way to remove an item from a list given its index instead of its " "value: the :keyword:`del` statement. This differs from the :meth:`pop` " -"method which returns a value. The :keyword:`del` statement can also be used " -"to remove slices from a list or clear the entire list (which we did earlier " -"by assignment of an empty list to the slice). For example::" +"method which returns a value. The :keyword:`!del` statement can also be " +"used to remove slices from a list or clear the entire list (which we did " +"earlier by assignment of an empty list to the slice). For example::" msgstr "" "Il existe un moyen de retirer un élément d'une liste à partir de sa position " -"au lieu de sa valeur : l'instruction :keyword:`del`. Elle diffère de la " -"méthode :meth:`pop` qui, elle, renvoie une valeur. L'instruction :keyword:" -"`del` peut également être utilisée pour supprimer des tranches d'une liste " -"ou la vider complètement (ce que nous avions fait auparavant en affectant " -"une liste vide à la tranche). Par exemple : ::" +"au lieu de sa valeur : l'instruction :keyword:`del`. Elle diffère de la " +"méthode :meth:`pop` qui, elle, renvoie une valeur. L'instruction :keyword:`!" +"del` peut également être utilisée pour supprimer des tranches d'une liste ou " +"la vider complètement (ce que nous avions fait auparavant en affectant une " +"liste vide à la tranche). Par exemple ::" #: ../Doc/tutorial/datastructures.rst:353 msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" -":keyword:`del` peut aussi être utilisée pour supprimer des variables : ::" +":keyword:`del` peut aussi être utilisée pour supprimer des variables ::" #: ../Doc/tutorial/datastructures.rst:357 msgid "" @@ -380,18 +381,19 @@ msgid "" "the *tuple*." msgstr "" "Nous avons vu que les listes et les chaînes de caractères ont beaucoup de " -"propriétés en commun, comme l'indexation et les opérations sur des tranches. " -"Ce sont deux exemple de *séquences* (voir :ref:`typesseq`). Comme Python est " -"un langage en constante évolution, d'autres types de séquences y seront peut-" -"être ajoutés. Il existe également un autre type standard de séquence : le " -"*tuple*." +"propriétés en commun, comme l'indiçage et les opérations sur des tranches. " +"Ce sont deux exemples de *séquences* (voir :ref:`typesseq`). Comme Python " +"est un langage en constante évolution, d'autres types de séquences y seront " +"peut-être ajoutés. Il existe également un autre type standard de séquence : " +"le *tuple* (ou n-uplet, dénomination que nous utiliserons dans la suite de " +"cette documentation)." #: ../Doc/tutorial/datastructures.rst:372 msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" -"Un tuple consiste en différentes valeurs séparées par des virgules, comme " -"par exemple : ::" +"Un n-uplet consiste en différentes valeurs séparées par des virgules, par " +"exemple ::" #: ../Doc/tutorial/datastructures.rst:394 msgid "" @@ -402,12 +404,12 @@ msgid "" "the individual items of a tuple, however it is possible to create tuples " "which contain mutable objects, such as lists." msgstr "" -"Comme vous pouvez le voir, les tuples sont toujours affichés entre " -"parenthèses, de façon à ce que des tuples imbriqués soient interprétés " -"correctement ; ils peuvent être entrés avec ou sans parenthèses, même si " -"celles-ci sont souvent nécessaires (notamment lorsqu'un tuple fait partie " +"Comme vous pouvez le voir, les n-uplets sont toujours affichés entre " +"parenthèses, de façon à ce que des n-uplets imbriqués soient interprétés " +"correctement ; ils peuvent être saisis avec ou sans parenthèses, même si " +"celles-ci sont souvent nécessaires (notamment lorsqu'un n-uplet fait partie " "d'une expression plus longue). Il n'est pas possible d'affecter de valeur à " -"un élément d'un tuple ; par contre, il est possible de créer des tuples " +"un élément d'un n-uplet ; par contre, il est possible de créer des n-uplets " "contenant des objets muables, comme des listes." #: ../Doc/tutorial/datastructures.rst:401 @@ -420,14 +422,14 @@ msgid "" "`mutable`, and their elements are usually homogeneous and are accessed by " "iterating over the list." msgstr "" -"Si les tuples peuvent sembler similaires aux listes, ils sont souvent " -"utilisés dans des cas différents et pour des raisons différentes. Les tuples " -"sont :term:`immuable`\\s et contiennent souvent des séquences hétérogènes " -"d'éléments qui sont accédés par \"déballage\" (voir plus loin) ou indexation " -"(ou même par attributs dans le cas des :func:`namedtuples `). Les listes sont souvent :term:`muable ` et " -"contiennent des éléments homogènes qui sont accédés par itération sur la " -"liste." +"Si les n-uplets peuvent sembler similaires aux listes, ils sont souvent " +"utilisés dans des cas différents et pour des raisons différentes. Les n-" +"uplets sont :term:`immuable`\\s et contiennent souvent des séquences " +"hétérogènes d'éléments qui sont accédés par « dissociation » (*unpacking* en " +"anglais, voir plus loin) ou par indice (ou même par attributs dans le cas " +"des :func:`namedtuples `). Les listes sont souvent :" +"term:`muable `\\s et contiennent des éléments généralement homogènes " +"qui sont accédés par itération sur la liste." #: ../Doc/tutorial/datastructures.rst:409 msgid "" @@ -437,12 +439,12 @@ msgid "" "constructed by following a value with a comma (it is not sufficient to " "enclose a single value in parentheses). Ugly, but effective. For example::" msgstr "" -"Un problème spécifique est la construction de tuples ne contenant aucun ou " -"un seul élément : la syntaxe a quelques tournures spécifiques pour s'en " -"accommoder. Les tuples vides sont construits par une paire de parenthèses " -"vides ; un tuple avec un seul élément est construit en faisant suivre la " +"Un problème spécifique est la construction de n-uplets ne contenant aucun ou " +"un seul élément : la syntaxe a quelques tournures spécifiques pour s'en " +"accommoder. Les n-uplets vides sont construits par une paire de parenthèses " +"vides ; un n-uplet avec un seul élément est construit en faisant suivre la " "valeur par une virgule (il n'est pas suffisant de placer cette valeur entre " -"parenthèses). Pas très joli, mais efficace. Par exemple : ::" +"parenthèses). Pas très joli, mais efficace. Par exemple ::" #: ../Doc/tutorial/datastructures.rst:424 msgid "" @@ -450,9 +452,10 @@ msgid "" "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " "together in a tuple. The reverse operation is also possible::" msgstr "" -"L'instruction ``t = 12345, 54321, 'hello !'`` est un exemple d'un *emballage " -"de tuple* : les valeurs ``12345``, ``54321`` et ``hello !`` sont emballées " -"ensemble dans un tuple. L'opération inverse est aussi possible : ::" +"L'instruction ``t = 12345, 54321, 'hello !'`` est un exemple d'un " +"*d'agrégation de n-uplet* (*tuple packing* en anglais) : les valeurs " +"``12345``, ``54321`` et ``hello !`` sont agrégées ensemble dans un n-uplet. " +"L'opération inverse est aussi possible ::" #: ../Doc/tutorial/datastructures.rst:430 msgid "" @@ -462,12 +465,12 @@ msgid "" "in the sequence. Note that multiple assignment is really just a combination " "of tuple packing and sequence unpacking." msgstr "" -"Ceci est appelé, de façon plus ou moins appropriée, un *déballage de " +"Ceci est appelé, de façon plus ou moins appropriée, un *dissociation de " "séquence* (*sequence unpacking* en anglais) et fonctionne pour toute " -"séquence placée à droite de l'expression. Ce déballage requiert autant de " -"variables dans la partie gauche qu'il y a d'éléments dans la séquence. Notez " -"également que cette affectation multiple est juste une combinaison entre un " -"emballage de tuple et un déballage de séquence." +"séquence placée à droite de l'expression. Cette dissociation requiert autant " +"de variables dans la partie gauche qu'il y a d'éléments dans la séquence. " +"Notez également que cette affectation multiple est juste une combinaison " +"entre une agrégation de n-uplet et une dissociation de séquence." #: ../Doc/tutorial/datastructures.rst:440 msgid "Sets" @@ -496,12 +499,12 @@ msgid "" "section." msgstr "" "Des accolades ou la fonction :func:`set` peuvent être utilisés pour créer " -"des ensembles. Notez que pour créer un ensemble vide, ``{}`` ne " -"fonctionne pas, cela crée un dictionnaire vide. Utilisez plutôt ``set()``." +"des ensembles. Notez que pour créer un ensemble vide, ``{}`` ne fonctionne " +"pas, cela crée un dictionnaire vide. Utilisez plutôt ``set()``." #: ../Doc/tutorial/datastructures.rst:451 msgid "Here is a brief demonstration::" -msgstr "Voici une brève démonstration : ::" +msgstr "Voici une brève démonstration ::" #: ../Doc/tutorial/datastructures.rst:476 msgid "" @@ -509,7 +512,7 @@ msgid "" "are also supported::" msgstr "" "Tout comme pour les :ref:`compréhensions de listes `, il est " -"possible d'écrire des compréhensions d'ensembles : ::" +"possible d'écrire des compréhensions d'ensembles ::" #: ../Doc/tutorial/datastructures.rst:487 msgid "Dictionaries" @@ -530,15 +533,15 @@ msgid "" msgstr "" "Un autre type de donnée très utile, natif dans Python, est le *dictionnaire* " "(voir :ref:`typesmapping`). Ces dictionnaires sont parfois présents dans " -"d'autres langages sous le nom de \"mémoires associatives\" ou de \"tableaux " -"associatifs\". À la différence des séquences, qui sont indexées par des " +"d'autres langages sous le nom de « mémoires associatives » ou de « tableaux " +"associatifs ». À la différence des séquences, qui sont indexées par des " "nombres, les dictionnaires sont indexés par des *clés*, qui peuvent être de " -"n'importe quel type immuable ; les chaînes de caractères et les nombres " -"peuvent toujours être des clés. Des tuples peuvent être utilisés comme clés " -"s'ils ne contiennent que des chaînes, des nombres ou des tuples ; si un " -"tuple contient un objet muable, de façon directe ou indirecte, il ne peut " -"pas être utilisé comme une clé. Vous ne pouvez pas utiliser des listes comme " -"clés, car les listes peuvent être modifiées en place en utilisant des " +"n'importe quel type immuable ; les chaînes de caractères et les nombres " +"peuvent toujours être des clés. Des n-uplets peuvent être utilisés comme " +"clés s'ils ne contiennent que des chaînes, des nombres ou des n-uplets ; si " +"un n-uplet contient un objet muable, de façon directe ou indirecte, il ne " +"peut pas être utilisé comme une clé. Vous ne pouvez pas utiliser des listes " +"comme clés, car les listes peuvent être modifiées en place en utilisant des " "affectations par position, par tranches ou via des méthodes comme :meth:" "`append` ou :meth:`extend`." @@ -552,10 +555,10 @@ msgid "" msgstr "" "Le plus simple est de considérer les dictionnaires comme des ensembles de " "paires *clé: valeur*, les clés devant être uniques (au sein d'un " -"dictionnaire). Une paire d'accolades crée un dictionnaire vide : ``{}``. " +"dictionnaire). Une paire d'accolades crée un dictionnaire vide : ``{}``. " "Placer une liste de paires clé:valeur séparées par des virgules à " "l'intérieur des accolades ajoute les valeurs correspondantes au " -"dictionnaire ; c'est également de cette façon que les dictionnaires sont " +"dictionnaire ; c'est également de cette façon que les dictionnaires sont " "affichés." #: ../Doc/tutorial/datastructures.rst:506 @@ -582,12 +585,12 @@ msgid "" msgstr "" "Exécuter ``list(d)`` sur un dictionnaire ``d`` renvoie une liste de toutes " "les clés utilisées dans le dictionnaire, dans l'ordre d'insertion (si vous " -"voulez qu'elles soient classées, utilisez ``sorted(d)``). Pour tester si une " -"clé est dans le dictionnaire, utilisez le mot-clé :keyword:`in`." +"voulez qu'elles soient ordonnées, utilisez ``sorted(d)``). Pour tester si " +"une clé est dans le dictionnaire, utilisez le mot-clé :keyword:`in`." #: ../Doc/tutorial/datastructures.rst:517 msgid "Here is a small example using a dictionary::" -msgstr "Voici un petit exemple utilisant un dictionnaire : ::" +msgstr "Voici un petit exemple utilisant un dictionnaire ::" #: ../Doc/tutorial/datastructures.rst:538 msgid "" @@ -595,7 +598,7 @@ msgid "" "key-value pairs::" msgstr "" "Le constructeur :func:`dict` fabrique un dictionnaire directement à partir " -"d'une liste de paires clé-valeur stockées sous la forme de tuples : ::" +"d'une liste de paires clé-valeur stockées sous la forme de n-uplets ::" #: ../Doc/tutorial/datastructures.rst:544 msgid "" @@ -603,7 +606,7 @@ msgid "" "arbitrary key and value expressions::" msgstr "" "De plus, il est possible de créer des dictionnaires par compréhension depuis " -"un jeu de clef et valeurs : ::" +"un jeu de clef et valeurs ::" #: ../Doc/tutorial/datastructures.rst:550 msgid "" @@ -611,7 +614,7 @@ msgid "" "using keyword arguments::" msgstr "" "Lorsque les clés sont de simples chaînes de caractères, il est parfois plus " -"facile de spécifier les paires en utilisant des paramètres nommés : ::" +"facile de spécifier les paires en utilisant des paramètres nommés ::" #: ../Doc/tutorial/datastructures.rst:560 msgid "Looping Techniques" @@ -624,7 +627,7 @@ msgid "" msgstr "" "Lorsque vous faites une boucle sur un dictionnaire, les clés et leurs " "valeurs peuvent être récupérées en même temps en utilisant la méthode :meth:" -"`items` ::" +"`items` ::" #: ../Doc/tutorial/datastructures.rst:572 msgid "" @@ -633,7 +636,7 @@ msgid "" msgstr "" "Lorsque vous itérez sur une séquence, la position et la valeur " "correspondante peuvent être récupérées en même temps en utilisant la " -"fonction :func:`enumerate`. ::" +"fonction :func:`enumerate`. ::" #: ../Doc/tutorial/datastructures.rst:582 msgid "" @@ -641,7 +644,7 @@ msgid "" "paired with the :func:`zip` function. ::" msgstr "" "Pour faire des boucles sur deux séquences ou plus en même temps, les " -"éléments peuvent être associés par la fonction :func:`zip` ::" +"éléments peuvent être associés par la fonction :func:`zip` ::" #: ../Doc/tutorial/datastructures.rst:594 msgid "" @@ -650,16 +653,16 @@ msgid "" msgstr "" "Pour faire une boucle en sens inverse sur une séquence, commencez par " "spécifier la séquence dans son ordre normal, puis appliquez la fonction :" -"func:`reversed` ::" +"func:`reversed` ::" #: ../Doc/tutorial/datastructures.rst:606 msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" msgstr "" -"Pour faire une boucle selon un certain classement sur une séquence, utilisez " -"la fonction :func:`sorted`, elle renvoie une nouvelle liste classée sans " -"altérer la source : ::" +"Pour parcourir les éléments d'une séquence de manière ordonnée, utilisez la " +"fonction :func:`sorted`, elle renvoie une nouvelle liste ordonnée sans " +"altérer la source ::" #: ../Doc/tutorial/datastructures.rst:618 msgid "" @@ -692,7 +695,7 @@ msgid "" msgstr "" "Les opérateurs de comparaison ``in`` et ``not in`` testent si une valeur est " "présente ou non dans une séquence. Les opérateurs ``is`` et ``is not`` " -"testent si deux objets sont vraiment le même objet ; ceci n'est important " +"testent si deux objets sont vraiment le même objet ; ceci n'est important " "que pour des objets muables comme des listes. Tous les opérateurs de " "comparaison ont la même priorité, qui est plus faible que celle des " "opérateurs numériques." @@ -703,7 +706,7 @@ msgid "" "is less than ``b`` and moreover ``b`` equals ``c``." msgstr "" "Les comparaisons peuvent être enchaînées. Par exemple, ``a < b == c`` teste " -"si ``a`` est inférieur ou égal à ``b`` et si, de plus, ``b`` égale ``c``." +"si ``a`` est inférieur à ``b`` et si, de plus, ``b`` égale ``c``." #: ../Doc/tutorial/datastructures.rst:649 msgid "" @@ -717,7 +720,7 @@ msgstr "" "Les comparaisons peuvent être combinées en utilisant les opérateurs booléens " "``and`` et ``or``, le résultat d'une comparaison (ou de toute expression " "booléenne) pouvant être inversé avec ``not``. Ces opérateurs ont une " -"priorité inférieure à celle des opérateurs de comparaison ; entre eux, " +"priorité inférieure à celle des opérateurs de comparaison ; entre eux, " "``not`` a la priorité la plus élevée et ``or`` la plus faible, de telle " "sorte que ``A and not B or C`` est équivalent à ``(A and (not B)) or C``. " "Comme toujours, des parenthèses peuvent être utilisées pour exprimer " @@ -733,7 +736,7 @@ msgid "" "return value of a short-circuit operator is the last evaluated argument." msgstr "" "Les opérateurs booléens ``and`` et ``or`` sont appelés opérateurs *en " -"circuit court* : leurs arguments sont évalués de la gauche vers la droite et " +"circuit court* : leurs arguments sont évalués de la gauche vers la droite et " "l'évaluation s'arrête dès que le résultat est déterminé. Par exemple, si " "``A`` et ``C`` sont vrais et ``B`` est faux, ``A and B and C`` n'évalue pas " "l'expression ``C``. Lorsqu'elle est utilisée en tant que valeur et non en " @@ -746,7 +749,7 @@ msgid "" "expression to a variable. For example, ::" msgstr "" "Il est possible d'affecter le résultat d'une comparaison ou d'une autre " -"expression booléenne à une variable. Par exemple : ::" +"expression booléenne à une variable. Par exemple ::" #: ../Doc/tutorial/datastructures.rst:671 msgid "" @@ -792,7 +795,7 @@ msgstr "" "une sous-séquence de l'autre, la séquence la plus courte est celle dont la " "valeur est inférieure. La comparaison lexicographique des chaînes de " "caractères utilise le code Unicode des caractères. Voici quelques exemples " -"de comparaisons entre séquences de même type : ::" +"de comparaisons entre séquences de même type ::" #: ../Doc/tutorial/datastructures.rst:702 msgid "" @@ -804,7 +807,7 @@ msgid "" msgstr "" "Comparer des objets de type différents avec ``<`` ou ``>`` est autorisé si " "les objets ont des méthodes de comparaison appropriées. Par exemple, les " -"types numériques sont comparées via leur valeur numérique, donc 0 égale 0,0, " +"types numériques sont comparés via leur valeur numérique, donc 0 égale 0,0, " "etc. Dans les autres cas, au lieu de donner un ordre imprévisible, " "l'interpréteur lève une exception :exc:`TypeError`." @@ -818,7 +821,7 @@ msgid "" "such as ``d->insert(\"a\")->remove(\"b\")->sort();``." msgstr "" "D'autres langages renvoient l'objet modifié, ce qui permet de chaîner les " -"méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``." +"méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``." #~ msgid "" #~ "Calling ``d.keys()`` will return a :dfn:`dictionary view` object. It " diff --git a/tutorial/errors.po b/tutorial/errors.po index ca105200f..dea012df4 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: 2018-07-31 23:51+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-01-03 17:19+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.0.2\n" +"X-Generator: Poedit 2.2\n" #: ../Doc/tutorial/errors.rst:5 msgid "Errors and Exceptions" @@ -27,7 +27,7 @@ msgid "" msgstr "" "Jusqu'ici, les messages d'erreurs ont seulement été mentionnés. Mais si vous " "avez essayé les exemples vous avez certainement vu plus que cela. En fait, " -"il y a au moins deux types d'erreurs à distinguer : les *erreurs de syntaxe* " +"il y a au moins deux types d'erreurs à distinguer : les *erreurs de syntaxe* " "et les *exceptions*." #: ../Doc/tutorial/errors.rst:15 @@ -41,7 +41,7 @@ msgid "" msgstr "" "Les erreurs de syntaxe, qui sont des erreurs d'analyse du code, sont peut-" "être celles que vous rencontrez le plus souvent lorsque vous êtes encore en " -"phase d'apprentissage de Python : ::" +"phase d'apprentissage de Python ::" #: ../Doc/tutorial/errors.rst:26 msgid "" @@ -52,7 +52,7 @@ msgid "" "colon (``':'``) is missing before it. File name and line number are printed " "so you know where to look in case the input came from a script." msgstr "" -"L'analyseur indique la ligne incriminée et affiche une petite 'flèche' " +"L'analyseur indique la ligne incriminée et affiche une petite « flèche » " "pointant vers le premier endroit de la ligne où l'erreur a été détectée. " "L'erreur est causée (ou, au moins, a été détectée comme telle) par le " "symbole placé *avant* la flèche. Dans cet exemple la flèche est sur la " @@ -75,10 +75,10 @@ msgid "" msgstr "" "Même si une instruction ou une expression est syntaxiquement correcte, elle " "peut générer une erreur lors de son exécution. Les erreurs détectées durant " -"l'exécution sont appelées des *exceptions* et ne sont pas toujours fatales : " +"l'exécution sont appelées des *exceptions* et ne sont pas toujours fatales : " "nous apprendrons bientôt comment les traiter dans vos programmes. La plupart " "des exceptions toutefois ne sont pas prises en charge par les programmes, ce " -"qui génère des messages d'erreurs comme celui-ci : ::" +"qui génère des messages d'erreurs comme celui-ci ::" #: ../Doc/tutorial/errors.rst:58 msgid "" @@ -93,13 +93,13 @@ msgid "" msgstr "" "La dernière ligne du message d'erreur indique ce qui s'est passé. Les " "exceptions peuvent être de différents types et ce type est indiqué dans le " -"message : les types indiqués dans l'exemple sont :exc:`ZeroDivisionError`, :" +"message : les types indiqués dans l'exemple sont :exc:`ZeroDivisionError`, :" "exc:`NameError` et :exc:`TypeError`. Le texte affiché comme type de " "l'exception est le nom de l'exception native qui a été déclenchée. Ceci est " "vrai pour toutes les exceptions natives mais n'est pas une obligation pour " "les exceptions définies par l'utilisateur (même si c'est une convention bien " "pratique). Les noms des exceptions standards sont des identifiants natifs " -"(pas des mots réservés)." +"(pas des mots-clef réservés)." #: ../Doc/tutorial/errors.rst:66 msgid "" @@ -116,11 +116,10 @@ msgid "" "a stack traceback listing source lines; however, it will not display lines " "read from standard input." msgstr "" -"La partie précédente dans le message d'erreur indique le contexte dans " -"lequel s'est produite l'exception, sous la forme d'une trace de pile " -"d'exécution. En général, celle-ci contient les lignes du code source ; " -"toutefois, les lignes lues à partir de l'entrée standard ne sont pas " -"affichées." +"La partie précédente du message d'erreur indique le contexte dans lequel " +"s'est produite l'exception, sous la forme d'une trace de pile d'exécution. " +"En général, celle-ci contient les lignes du code source ; toutefois, les " +"lignes lues à partir de l'entrée standard ne sont pas affichées." #: ../Doc/tutorial/errors.rst:74 msgid "" @@ -148,7 +147,7 @@ msgstr "" "l'utilisateur d'interrompre le programme (en utilisant :kbd:`Control-C` ou " "un autre raccourci que le système accepte) ; notez qu'une interruption " "générée par l'utilisateur est signalée en levant l'exception :exc:" -"`KeyboardInterrupt`." +"`KeyboardInterrupt`. ::" #: ../Doc/tutorial/errors.rst:96 msgid "The :keyword:`try` statement works as follows." @@ -160,7 +159,7 @@ msgid "" "keyword:`except` keywords) is executed." msgstr "" "premièrement, la *clause try* (instruction(s) placée(s) entre les mots-clés :" -"keyword:`try` et :keyword:`except`) est exécutée ;" +"keyword:`try` et :keyword:`except`) est exécutée." #: ../Doc/tutorial/errors.rst:101 msgid "" @@ -168,7 +167,7 @@ msgid "" "keyword:`try` statement is finished." msgstr "" "si aucune exception n'intervient, la clause ``except`` est sautée et " -"l'exécution de l'instruction :keyword:`try` est terminée ;" +"l'exécution de l'instruction :keyword:`try` est terminée." #: ../Doc/tutorial/errors.rst:104 msgid "" @@ -181,7 +180,7 @@ msgstr "" "reste de cette clause est sauté. Si le type d'exception levée correspond à " "un nom indiqué après le mot-clé :keyword:`except`, la clause ``except`` " "correspondante est exécutée, puis l'exécution continue après l'instruction :" -"keyword:`try` ;" +"keyword:`try`." #: ../Doc/tutorial/errors.rst:109 msgid "" @@ -201,16 +200,16 @@ msgid "" "A :keyword:`try` statement may have more than one except clause, to specify " "handlers for different exceptions. At most one handler will be executed. " "Handlers only handle exceptions that occur in the corresponding try clause, " -"not in other handlers of the same :keyword:`try` statement. An except " +"not in other handlers of the same :keyword:`!try` statement. An except " "clause may name multiple exceptions as a parenthesized tuple, for example::" msgstr "" "Une instruction :keyword:`try` peut comporter plusieurs clauses ``except`` " "pour permettre la prise en charge de différentes exceptions. Mais un seul " "gestionnaire, au plus, sera exécuté. Les gestionnaires ne prennent en charge " -"que les exceptions qui interviennent dans la clause `try` correspondante, " -"pas dans d'autres gestionnaires de la même instruction :keyword:`try`. Mais " +"que les exceptions qui interviennent dans la clause `!try` correspondante, " +"pas dans d'autres gestionnaires de la même instruction :keyword:`!try`. Mais " "une même clause ``except`` peut citer plusieurs exceptions sous la forme " -"d'un tuple entre parenthèses, comme dans cet exemple : ::" +"d'un tuple entre parenthèses, comme dans cet exemple ::" #: ../Doc/tutorial/errors.rst:123 msgid "" @@ -223,7 +222,7 @@ msgstr "" "exception si elle est de la même classe ou d'une de ses classes dérivées. " "Mais l'inverse n'est pas vrai, une clause ``except`` spécifiant une classe " "dérivée n'est pas compatible avec une classe de base. Par exemple, le code " -"suivant affiche B, C et D dans cet ordre : ::" +"suivant affiche B, C et D dans cet ordre ::" #: ../Doc/tutorial/errors.rst:147 msgid "" @@ -231,8 +230,8 @@ msgid "" "would have printed B, B, B --- the first matching except clause is triggered." msgstr "" "Notez que si les clauses ``except`` avaient été inversées (avec ``except B`` " -"en premier), il aurait affiché B, B, B --- la première clause ``except`` " -"correspondante étant déclenchée." +"en premier), il aurait affiché B, B, B — la première clause ``except`` qui " +"correspond est déclenchée." #: ../Doc/tutorial/errors.rst:150 msgid "" @@ -260,19 +259,19 @@ msgstr "" "*clause else* optionnelle qui, lorsqu'elle est présente, doit se placer " "après toutes les clauses ``except``. Elle est utile pour du code qui doit " "être exécuté lorsqu'aucune exception n'a été levée par la clause ``try``. " -"Par exemple : ::" +"Par exemple ::" #: ../Doc/tutorial/errors.rst:183 msgid "" -"The use of the :keyword:`else` clause is better than adding additional code " +"The use of the :keyword:`!else` clause is better than adding additional code " "to the :keyword:`try` clause because it avoids accidentally catching an " -"exception that wasn't raised by the code being protected by the :keyword:" -"`try` ... :keyword:`except` statement." +"exception that wasn't raised by the code being protected by the :keyword:`!" +"try` ... :keyword:`!except` statement." msgstr "" -"Il vaut mieux utiliser la clause :keyword:`else` plutôt que d'ajouter du " +"Il vaut mieux utiliser la clause :keyword:`!else` plutôt que d'ajouter du " "code à la clause :keyword:`try` car cela évite de capturer accidentellement " "une exception qui n'a pas été levée par le code initialement protégé par " -"l'instruction :keyword:`try` ... :keyword:`except`." +"l'instruction :keyword:`!try` ... :keyword:`!except`." #: ../Doc/tutorial/errors.rst:188 msgid "" @@ -318,7 +317,7 @@ msgstr "" "Les gestionnaires d'exceptions n'interceptent pas que les exceptions qui " "sont levées immédiatement dans leur clause ``try``, mais aussi celles qui " "sont levées au sein de fonctions appelées (parfois indirectement) dans la " -"clause ``try``. Par exemple : ::" +"clause ``try``. Par exemple ::" #: ../Doc/tutorial/errors.rst:237 msgid "Raising Exceptions" @@ -330,7 +329,7 @@ msgid "" "exception to occur. For example::" msgstr "" "L'instruction :keyword:`raise` permet au programmeur de déclencher une " -"exception spécifique. Par exemple : ::" +"exception spécifique. Par exemple ::" #: ../Doc/tutorial/errors.rst:247 msgid "" @@ -343,8 +342,7 @@ msgstr "" "Le seul argument à :keyword:`raise` indique l'exception à déclencher. Cela " "peut être soit une instance d'exception, soit une classe d'exception (une " "classe dérivée de :class:`Exception`). Si une classe est donnée, elle est " -"implicitement instanciée *via* l'appel de son constructeur, sans " -"argument : ::" +"implicitement instanciée *via* l'appel de son constructeur, sans argument ::" #: ../Doc/tutorial/errors.rst:254 msgid "" @@ -354,7 +352,7 @@ msgid "" msgstr "" "Si vous avez besoin de savoir si une exception a été levée mais que vous " "n'avez pas intention de la gérer, une forme plus simple de l'instruction :" -"keyword:`raise` permet de propager l'exception : ::" +"keyword:`raise` permet de propager l'exception ::" #: ../Doc/tutorial/errors.rst:273 msgid "User-defined Exceptions" @@ -389,11 +387,11 @@ msgstr "" "l'on crée un module qui peut déclencher plusieurs types d'erreurs distincts, " "une pratique courante est de créer une classe de base pour l'ensemble des " "exceptions définies dans ce module et de créer des sous-classes spécifiques " -"d'exceptions pour les différentes conditions d'erreurs : ::" +"d'exceptions pour les différentes conditions d'erreurs ::" #: ../Doc/tutorial/errors.rst:317 msgid "" -"Most exceptions are defined with names that end in \"Error,\" similar to the " +"Most exceptions are defined with names that end in \"Error\", similar to the " "naming of the standard exceptions." msgstr "" "La plupart des exceptions sont définies avec des noms qui se terminent par " @@ -422,42 +420,42 @@ msgid "" msgstr "" "L'instruction :keyword:`try` a une autre clause optionnelle qui est destinée " "à définir des actions de nettoyage devant être exécutées dans certaines " -"circonstances. Par exemple : ::" +"circonstances. Par exemple ::" #: ../Doc/tutorial/errors.rst:344 msgid "" "A *finally clause* is always executed before leaving the :keyword:`try` " "statement, whether an exception has occurred or not. When an exception has " -"occurred in the :keyword:`try` clause and has not been handled by an :" -"keyword:`except` clause (or it has occurred in an :keyword:`except` or :" -"keyword:`else` clause), it is re-raised after the :keyword:`finally` clause " -"has been executed. The :keyword:`finally` clause is also executed \"on the " -"way out\" when any other clause of the :keyword:`try` statement is left via " +"occurred in the :keyword:`!try` clause and has not been handled by an :" +"keyword:`except` clause (or it has occurred in an :keyword:`!except` or :" +"keyword:`!else` clause), it is re-raised after the :keyword:`finally` clause " +"has been executed. The :keyword:`!finally` clause is also executed \"on the " +"way out\" when any other clause of the :keyword:`!try` statement is left via " "a :keyword:`break`, :keyword:`continue` or :keyword:`return` statement. A " "more complicated example::" msgstr "" "Une *clause finally* est toujours exécutée avant de quitter l'instruction :" "keyword:`try`, qu'une exception ait été levée ou non. Quand une exception a " -"été levée dans la clause :keyword:`try` et n'a pas été prise en charge par " +"été levée dans la clause :keyword:`!try` et n'a pas été prise en charge par " "une clause :keyword:`except` (ou si elle a été levée dans une clause :" -"keyword:`except` ou :keyword:`else`), elle est propagée après l'exécution de " -"la clause :keyword:`finally`. La clause :keyword:`finally` est également " +"keyword:`!except` ou :keyword:`!else`), elle est propagée après l'exécution " +"de la clause :keyword:`finally`. La clause :keyword:`!finally` est également " "exécutée \"à la sortie\" quand n'importe quelle autre clause de " -"l'instruction :keyword:`try` est abandonnée par une instruction :keyword:" +"l'instruction :keyword:`!try` est abandonnée par une instruction :keyword:" "`break`, :keyword:`continue` ou :keyword:`return`. Voici un exemple plus " -"compliqué : ::" +"compliqué ::" #: ../Doc/tutorial/errors.rst:377 msgid "" "As you can see, the :keyword:`finally` clause is executed in any event. " "The :exc:`TypeError` raised by dividing two strings is not handled by the :" -"keyword:`except` clause and therefore re-raised after the :keyword:`finally` " -"clause has been executed." +"keyword:`except` clause and therefore re-raised after the :keyword:`!" +"finally` clause has been executed." msgstr "" "Comme vous pouvez le voir, la clause :keyword:`finally` est exécutée dans " "tous les cas. L'exception de type :exc:`TypeError`, déclenchée en divisant " "deux chaînes de caractères, n'est pas prise en charge par la clause :keyword:" -"`except` et est donc propagée après que la clause :keyword:`finally` a été " +"`except` et est donc propagée après que la clause :keyword:`!finally` a été " "exécutée." #: ../Doc/tutorial/errors.rst:382 @@ -484,8 +482,7 @@ msgstr "" "Certains objets définissent des actions de nettoyage standards qui doivent " "être exécutées lorsque l'objet n'est plus nécessaire, indépendamment du fait " "que l'opération ayant utilisé l'objet ait réussi ou non. Regardez l'exemple " -"suivant, qui tente d'ouvrir un fichier et d'afficher son contenu à " -"l'écran : ::" +"suivant, qui tente d'ouvrir un fichier et d'afficher son contenu à l'écran ::" #: ../Doc/tutorial/errors.rst:400 msgid "" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index 0fb4f6cc5..15a0bdeee 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/tutorial/floatingpoint.rst:9 msgid "Floating Point Arithmetic: Issues and Limitations" -msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" +msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" #: ../Doc/tutorial/floatingpoint.rst:14 msgid "" @@ -24,15 +24,14 @@ msgid "" "(binary) fractions. For example, the decimal fraction ::" msgstr "" "Les nombres à virgule flottante sont représentés, au niveau matériel, en " -"fractions de nombres binaires (base 2). Par exemple, la fraction " -"décimale : ::" +"fractions de nombres binaires (base 2). Par exemple, la fraction décimale ::" #: ../Doc/tutorial/floatingpoint.rst:19 msgid "" "has value 1/10 + 2/100 + 5/1000, and in the same way the binary fraction ::" msgstr "" "a la valeur 1/10 + 2/100 + 5/1000 et, de la même manière, la fraction " -"binaire : ::" +"binaire ::" #: ../Doc/tutorial/floatingpoint.rst:23 msgid "" @@ -62,7 +61,7 @@ msgid "" "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" "Le problème est plus simple à aborder en base 10. Prenons par exemple, la " -"fraction 1/3. Vous pouvez l'approximer en une fraction décimale : ::" +"fraction 1/3. Vous pouvez l'approximer en une fraction décimale ::" #: ../Doc/tutorial/floatingpoint.rst:37 ../Doc/tutorial/floatingpoint.rst:41 msgid "or, better, ::" @@ -86,7 +85,7 @@ msgid "" msgstr "" "De la même manière, peu importe combien de décimales en base 2 vous " "utilisez, la valeur décimale 0.1 ne peut pas être représentée exactement en " -"fraction binaire. En base 2, 1/10 est le nombre périodique suivant : ::" +"fraction binaire. En base 2, 1/10 est le nombre périodique suivant ::" #: ../Doc/tutorial/floatingpoint.rst:55 msgid "" @@ -116,7 +115,7 @@ msgstr "" "il est facile d'oublier que la valeur stockée est une approximation de la " "fraction décimale d'origine. Python n'affiche qu'une approximation décimale " "de la valeur stockée en binaire. Si Python devait afficher la vraie valeur " -"décimale de l'approximation binaire stockée pour 0,1, il afficherait : ::" +"décimale de l'approximation binaire stockée pour 0,1, il afficherait ::" #: ../Doc/tutorial/floatingpoint.rst:71 msgid "" @@ -125,7 +124,7 @@ msgid "" msgstr "" "C'est bien plus de décimales que ce qu'attendent la plupart des " "utilisateurs, donc Python affiche une valeur arrondie afin d'améliorer la " -"lisibilité : ::" +"lisibilité ::" #: ../Doc/tutorial/floatingpoint.rst:77 msgid "" @@ -197,7 +196,7 @@ msgid "" "simply rounding the *display* of the true machine value." msgstr "" "Il est important de comprendre que tout cela n'est, au sens propre, qu'une " -"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " +"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " "réellement dans la machine à *l'affichage*." #: ../Doc/tutorial/floatingpoint.rst:114 @@ -206,7 +205,7 @@ msgid "" "summing three values of 0.1 may not yield exactly 0.3, either::" msgstr "" "Une autre conséquence du fait que 0,1 n'est pas exactement stocké 1/10 est " -"que la somme de trois valeurs de 0,1 ne donne pas 0,3 non plus : ::" +"que la somme de trois valeurs de 0,1 ne donne pas 0,3 non plus ::" #: ../Doc/tutorial/floatingpoint.rst:120 msgid "" @@ -217,7 +216,7 @@ msgstr "" "Aussi, puisque 0,1 ne peut pas être stocké avec une représentation plus " "proche de sa valeur exacte 1/10, comme 0,3 qui ne peut pas être plus proche " "de sa valeur exacte 3/10, arrondir au préalable avec la fonction :func:" -"`round` n'aide en rien : ::" +"`round` n'aide en rien ::" #: ../Doc/tutorial/floatingpoint.rst:127 msgid "" @@ -227,7 +226,7 @@ msgid "" msgstr "" "Bien que les nombres ne peuvent se rapprocher plus de la valeur qu’on attend " "qu’ils aient, la fonction :func:`round` peut être utile à postériori pour " -"arrondir deux valeurs inexactes et pouvoir les comparer : ::" +"arrondir deux valeurs inexactes et pouvoir les comparer ::" #: ../Doc/tutorial/floatingpoint.rst:134 msgid "" @@ -254,7 +253,7 @@ msgid "" "error." msgstr "" "Même s'il est vrai qu'il n'existe pas de réponse simple, ce n'est pas la " -"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " +"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " "erreurs, en Python, dans les opérations de nombres à virgule flottante sont " "dues au matériel sous-jacent et, sur la plupart des machines, sont de " "l'ordre de 1 sur 2\\*\\*53 par opération. C'est plus que suffisant pour la " @@ -319,7 +318,7 @@ msgstr "" "Python fournit des outils qui peuvent être utiles dans les rares occasions " "où vous voulez réellement connaître la valeur exacte d'un nombre à virgule " "flottante. La méthode :meth:`float.as_integer_ratio` donne la valeur du " -"nombre sous forme de fraction : ::" +"nombre sous forme de fraction ::" #: ../Doc/tutorial/floatingpoint.rst:173 msgid "" @@ -327,7 +326,7 @@ msgid "" "value::" msgstr "" "Puisque le ratio est exact, il peut être utilisé pour recréer la valeur " -"originale sans perte : ::" +"originale sans perte ::" #: ../Doc/tutorial/floatingpoint.rst:179 msgid "" @@ -335,7 +334,7 @@ msgid "" "again giving the exact value stored by your computer::" msgstr "" "La méthode :meth:`float.hex` donne le nombre en hexadécimal (base 16), " -"donnant ici aussi la valeur exacte stockée par la machine : ::" +"donnant ici aussi la valeur exacte stockée par la machine ::" #: ../Doc/tutorial/floatingpoint.rst:185 msgid "" @@ -343,7 +342,7 @@ msgid "" "value exactly::" msgstr "" "Cette représentation hexadécimale petit être utilisée pour reconstruire, " -"sans approximation, le *float* : ::" +"sans approximation, le *float* ::" #: ../Doc/tutorial/floatingpoint.rst:191 msgid "" @@ -408,19 +407,19 @@ msgid "" "strives to convert 0.1 to the closest fraction it can of the form *J*/2**\\ " "*N* where *J* is an integer containing exactly 53 bits. Rewriting ::" msgstr "" -"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " +"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " "binaire. Cependant, toutes les machines d'aujourd'hui (novembre 2000) " "suivent la norme IEEE-754 en ce qui concerne l'arithmétique des nombres à " -"virgule flottante et la plupart des plateformes utilisent un \"IEEE-754 " -"double précision\" pour représenter les *floats* de Python. Les \"IEEE-754 " -"double précision\" utilisent 53 bits de précision donc, à la lecture, " +"virgule flottante et la plupart des plateformes utilisent un « IEEE-754 " +"double précision » pour représenter les *floats* de Python. Les « IEEE-754 " +"double précision » utilisent 53 bits de précision donc, à la lecture, " "l'ordinateur essaie de convertir 0,1 dans la fraction la plus proche " "possible de la forme *J*/2**\\ *N* avec *J* un nombre entier d'exactement 53 " -"bits. Pour réécrire : ::" +"bits. Pour réécrire ::" #: ../Doc/tutorial/floatingpoint.rst:229 msgid "as ::" -msgstr "en : ::" +msgstr "en ::" #: ../Doc/tutorial/floatingpoint.rst:233 msgid "" @@ -428,7 +427,7 @@ msgid "" "2**53``), the best value for *N* is 56::" msgstr "" "en se rappelant que *J* fait exactement 53 bits (donc ``>= 2**52`` mais ``< " -"2**53``), la meilleure valeur possible pour *N* est 56 : ::" +"2**53``), la meilleure valeur possible pour *N* est 56 ::" #: ../Doc/tutorial/floatingpoint.rst:239 msgid "" @@ -437,7 +436,7 @@ msgid "" msgstr "" "Donc 56 est la seule valeur possible pour *N* qui laisse exactement 53 bits " "pour *J*. La meilleure valeur possible pour *J* est donc ce quotient, " -"arrondi : ::" +"arrondi ::" #: ../Doc/tutorial/floatingpoint.rst:246 msgid "" @@ -445,21 +444,21 @@ msgid "" "obtained by rounding up::" msgstr "" "Puisque la retenue est plus grande que la moitié de 10, la meilleure " -"approximation est obtenue en arrondissant par le haut : ::" +"approximation est obtenue en arrondissant par le haut ::" #: ../Doc/tutorial/floatingpoint.rst:252 msgid "" "Therefore the best possible approximation to 1/10 in 754 double precision " "is::" msgstr "" -"Par conséquent la meilleure approximation possible pour 1/10 en \"IEEE-754 " -"double précision\" est celle au-dessus de 2\\*\\*56, soit : ::" +"Par conséquent la meilleure approximation possible pour 1/10 en « IEEE-754 " +"double précision » est celle au-dessus de 2\\*\\*56, soit ::" #: ../Doc/tutorial/floatingpoint.rst:256 msgid "" "Dividing both the numerator and denominator by two reduces the fraction to::" msgstr "" -"Diviser le numérateur et le dénominateur par deux réduit la fraction à : ::" +"Diviser le numérateur et le dénominateur par deux réduit la fraction à ::" #: ../Doc/tutorial/floatingpoint.rst:260 msgid "" @@ -470,7 +469,7 @@ msgstr "" "Notez que puisque l'arrondi a été fait vers le haut, le résultat est en " "réalité légèrement plus grand que 1/10 ; si nous n'avions pas arrondi par le " "haut, le quotient aurait été légèrement plus petit que 1/10. Mais dans aucun " -"cas il ne vaut *exactement* 1/10 !" +"cas il ne vaut *exactement* 1/10 !" #: ../Doc/tutorial/floatingpoint.rst:264 msgid "" @@ -479,7 +478,7 @@ msgid "" msgstr "" "Donc l'ordinateur ne \"voit\" jamais 1/10 : ce qu'il voit est la fraction " "exacte donnée ci-dessus, la meilleure approximation utilisant les nombres à " -"virgule flottante double précision de l'\"IEEE-754\" : ::" +"virgule flottante double précision de l'« IEEE-754 » ::" #: ../Doc/tutorial/floatingpoint.rst:270 msgid "" @@ -487,7 +486,7 @@ msgid "" "decimal digits::" msgstr "" "Si nous multiplions cette fraction par 10\\*\\*30, nous pouvons observer les " -"valeurs de ses 55 décimales de poids fort : ::" +"valeurs de ses 55 décimales de poids fort ::" #: ../Doc/tutorial/floatingpoint.rst:276 msgid "" @@ -500,12 +499,11 @@ msgstr "" "0,1000000000000000055511151231257827021181583404541015625. Au lieu " "d'afficher toutes les décimales, beaucoup de langages (dont les vieilles " "versions de Python) arrondissent le résultat à la 17\\ :sup:`e` décimale " -"significative : ::" +"significative ::" #: ../Doc/tutorial/floatingpoint.rst:284 msgid "" "The :mod:`fractions` and :mod:`decimal` modules make these calculations " "easy::" msgstr "" -"Les modules :mod:`fractions` et :mod:`decimal` rendent simples ces " -"calculs : ::" +"Les modules :mod:`fractions` et :mod:`decimal` rendent simples ces calculs ::" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 233d690a1..60b7bf01f 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-08-03 19:14+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-01-03 17:12+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.0.4\n" +"X-Generator: Poedit 2.1.1\n" #: ../Doc/tutorial/inputoutput.rst:5 msgid "Input and Output" @@ -53,6 +53,9 @@ msgid "" "simply printing space-separated values. There are several ways to format " "output." msgstr "" +"Souvent vous voudrez plus de contrôle sur le formatage de vos sorties et " +"aller au delà d’un affichage de valeurs séparées par des espaces. Il y a " +"plusieurs moyens de les formater." #: ../Doc/tutorial/inputoutput.rst:25 msgid "" @@ -61,16 +64,25 @@ msgid "" "Inside this string, you can write a Python expression between ``{`` and ``}" "`` characters that can refer to variables or literal values." msgstr "" +"Pour utiliser :ref:`les expressions formatées `, commencez " +"une chaine de caractère avec ``f`` ou ``F`` avant d’ouvrir vos guillemets " +"doubles ou triples. Dans ces chaines de caractère, vous pouvez entrer des " +"expressions Python entre les caractères ``{`` et ``}`` qui peuvent contenir " +"des variables ou des valeurs littérales." -#: ../Doc/tutorial/inputoutput.rst:36 +#: ../Doc/tutorial/inputoutput.rst:37 msgid "" "The :meth:`str.format` method of strings requires more manual effort. " "You'll still use ``{`` and ``}`` to mark where a variable will be " "substituted and can provide detailed formatting directives, but you'll also " "need to provide the information to be formatted." msgstr "" +"La méthode :meth:`str.format` sur les chaines de caractères exige un plus " +"grand effort manuel. Vous utiliserez toujours les caractères ``{`` et ``}`` " +"pour indiquer où une variable sera substituée et donner des détails sur son " +"formatage, mais vous devrez également fournir les informations à formater." -#: ../Doc/tutorial/inputoutput.rst:48 +#: ../Doc/tutorial/inputoutput.rst:50 msgid "" "Finally, you can do all the string handling yourself by using string slicing " "and concatenation operations to create any layout you can imagine. The " @@ -81,7 +93,7 @@ msgstr "" "même, et ainsi créer n'importe quel agencement. Le type des chaînes a des " "méthodes utiles pour aligner des chaînes dans une largeur de taille fixe." -#: ../Doc/tutorial/inputoutput.rst:53 +#: ../Doc/tutorial/inputoutput.rst:55 msgid "" "When you don't need fancy output but just want a quick display of some " "variables for debugging purposes, you can convert any value to a string with " @@ -90,9 +102,9 @@ msgstr "" "Lorsque qu'un affichage basique suffit, pour afficher simplement une " "variable pour en inspecter le contenu, vous pouvez convertir n'importe " "quelle valeur en chaîne de caractères en utilisant la fonction :func:`repr` " -"ou la fonction :func:`str`.\n" +"ou la fonction :func:`str`." -#: ../Doc/tutorial/inputoutput.rst:57 +#: ../Doc/tutorial/inputoutput.rst:59 msgid "" "The :func:`str` function is meant to return representations of values which " "are fairly human-readable, while :func:`repr` is meant to generate " @@ -114,11 +126,11 @@ msgstr "" "deux fonctions. Les chaînes de caractères, en particulier, ont deux " "représentations distinctes." -#: ../Doc/tutorial/inputoutput.rst:66 +#: ../Doc/tutorial/inputoutput.rst:68 msgid "Some examples::" -msgstr "Quelques exemples : ::" +msgstr "Quelques exemples ::" -#: ../Doc/tutorial/inputoutput.rst:89 +#: ../Doc/tutorial/inputoutput.rst:91 msgid "" "The :mod:`string` module contains a :class:`~string.Template` class that " "offers yet another way to substitute values into strings, using placeholders " @@ -130,19 +142,23 @@ msgstr "" "utilisant des marqueurs comme ``$x``, et en les remplaçant par les valeurs " "d'un dictionnaire, mais sa capacité à formater les chaînes est plus limitée." -#: ../Doc/tutorial/inputoutput.rst:98 +#: ../Doc/tutorial/inputoutput.rst:100 msgid "Formatted String Literals" -msgstr "" +msgstr "Les chaines de caractères formatées (*f-strings*)" -#: ../Doc/tutorial/inputoutput.rst:100 +#: ../Doc/tutorial/inputoutput.rst:102 msgid "" ":ref:`Formatted string literals ` (also called f-strings for " "short) let you include the value of Python expressions inside a string by " "prefixing the string with ``f`` or ``F`` and writing expressions as " "``{expression}``." msgstr "" +":ref:`Les chaines de caractères formatées ` (aussi appelées f-" +"strings) vous permettent d’inclure la valeur d’expressions Python dans des " +"chaines de caractères en les préfixant avec ``f`` ou ``F`` et écrire des " +"expressions comme ``{expression}``." -#: ../Doc/tutorial/inputoutput.rst:105 +#: ../Doc/tutorial/inputoutput.rst:107 msgid "" "An optional format specifier can follow the expression. This allows greater " "control over how the value is formatted. The following example rounds pi to " @@ -152,37 +168,42 @@ msgstr "" "plus grand contrôle sur la façon dont la valeur est rendue. L'exemple " "suivant arrondit pi à trois décimales après la virgule ::" -#: ../Doc/tutorial/inputoutput.rst:112 +#: ../Doc/tutorial/inputoutput.rst:115 msgid "" "Passing an integer after the ``':'`` will cause that field to be a minimum " "number of characters wide. This is useful for making columns line up. ::" msgstr "" "Donner un entier après le ``':'`` indique la largeur minimale de ce champ en " -"nombre de caractères. C'est utile pour faire de jolis tableaux ::" +"nombre de caractères. C'est utile pour faire de jolis tableaux ::" -#: ../Doc/tutorial/inputoutput.rst:123 +#: ../Doc/tutorial/inputoutput.rst:126 msgid "" "Other modifiers can be used to convert the value before it is formatted. ``'!" "a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " "applies :func:`repr`::" msgstr "" +"D’autres modificateurs peuvent être utilisés pour convertir la valeur avant " +"son formatage. ``'!a'`` applique :func:`ascii`, ``'!s'`` applique :func:" +"`str`, et ``'!r'`` applique :func:`repr` ::" -#: ../Doc/tutorial/inputoutput.rst:133 +#: ../Doc/tutorial/inputoutput.rst:136 msgid "" "For a reference on these format specifications, see the reference guide for " "the :ref:`formatspec`." msgstr "" +"Pour une référence sur ces spécifications de formats, voir le guide de " +"référence pour les :ref:`formatspec`." -#: ../Doc/tutorial/inputoutput.rst:139 +#: ../Doc/tutorial/inputoutput.rst:142 msgid "The String format() Method" -msgstr "" +msgstr "La méthode de chaine de caractères ``format()``" -#: ../Doc/tutorial/inputoutput.rst:141 +#: ../Doc/tutorial/inputoutput.rst:144 msgid "Basic usage of the :meth:`str.format` method looks like this::" msgstr "" -"L'utilisation de base de la méthode :meth:`str.format` ressemble à ceci : ::" +"L'utilisation de base de la méthode :meth:`str.format` ressemble à ceci ::" -#: ../Doc/tutorial/inputoutput.rst:146 +#: ../Doc/tutorial/inputoutput.rst:149 msgid "" "The brackets and characters within them (called format fields) are replaced " "with the objects passed into the :meth:`str.format` method. A number in the " @@ -194,20 +215,20 @@ msgstr "" "meth:`str.format`. Un nombre entre accolades se réfère à la position de " "l'objet passé à la méthode :meth:`str.format`. ::" -#: ../Doc/tutorial/inputoutput.rst:156 +#: ../Doc/tutorial/inputoutput.rst:159 msgid "" "If keyword arguments are used in the :meth:`str.format` method, their values " "are referred to by using the name of the argument. ::" msgstr "" "Si des arguments nommés sont utilisés dans la méthode :meth:`str.format`, " -"leurs valeurs sont utilisées en se basant sur le nom des arguments : ::" +"leurs valeurs sont utilisées en se basant sur le nom des arguments ::" -#: ../Doc/tutorial/inputoutput.rst:163 +#: ../Doc/tutorial/inputoutput.rst:166 msgid "Positional and keyword arguments can be arbitrarily combined::" msgstr "" -"Les arguments positionnés et nommés peuvent être combinés arbitrairement : ::" +"Les arguments positionnés et nommés peuvent être combinés arbitrairement ::" -#: ../Doc/tutorial/inputoutput.rst:169 +#: ../Doc/tutorial/inputoutput.rst:172 msgid "" "If you have a really long format string that you don't want to split up, it " "would be nice if you could reference the variables to be formatted by name " @@ -217,17 +238,17 @@ msgstr "" "Si vous avez une chaîne de formatage vraiment longue que vous ne voulez pas " "découper, il est possible de référencer les variables à formater par leur " "nom plutôt que par leur position. Utilisez simplement un dictionnaire et la " -"notation entre crochets ``'[]'`` pour accéder aux clés : ::" +"notation entre crochets ``'[]'`` pour accéder aux clés ::" -#: ../Doc/tutorial/inputoutput.rst:179 +#: ../Doc/tutorial/inputoutput.rst:182 msgid "" "This could also be done by passing the table as keyword arguments with the " "'**' notation. ::" msgstr "" -"vous pouvez obtenir le même résultat en passant le tableau comme des " +"Vous pouvez obtenir le même résultat en passant le tableau comme des " "arguments nommés en utilisant la notation ``**`` ::" -#: ../Doc/tutorial/inputoutput.rst:186 +#: ../Doc/tutorial/inputoutput.rst:189 msgid "" "This is particularly useful in combination with the built-in function :func:" "`vars`, which returns a dictionary containing all local variables." @@ -235,13 +256,16 @@ msgstr "" "C'est particulièrement utile en combinaison avec la fonction native :func:" "`vars` qui renvoie un dictionnaire contenant toutes les variables locales." -#: ../Doc/tutorial/inputoutput.rst:189 +#: ../Doc/tutorial/inputoutput.rst:192 msgid "" "As an example, the following lines produce a tidily-aligned set of columns " "giving integers and their squares and cubes::" msgstr "" +"A titre d’exemple, les lignes suivantes produisent un ensemble de colonnes " +"alignées de façon ordonnée donnant les entiers, leurs carrés et leurs " +"cubes ::" -#: ../Doc/tutorial/inputoutput.rst:206 +#: ../Doc/tutorial/inputoutput.rst:209 msgid "" "For a complete overview of string formatting with :meth:`str.format`, see :" "ref:`formatstrings`." @@ -249,15 +273,15 @@ msgstr "" "Pour avoir une description complète du formatage des chaînes de caractères " "avec la méthode :meth:`str.format`, lisez : :ref:`formatstrings`." -#: ../Doc/tutorial/inputoutput.rst:211 +#: ../Doc/tutorial/inputoutput.rst:214 msgid "Manual String Formatting" msgstr "Formatage de chaînes à la main" -#: ../Doc/tutorial/inputoutput.rst:213 +#: ../Doc/tutorial/inputoutput.rst:216 msgid "Here's the same table of squares and cubes, formatted manually::" msgstr "Voici le même tableau de carrés et de cubes, formaté à la main ::" -#: ../Doc/tutorial/inputoutput.rst:231 +#: ../Doc/tutorial/inputoutput.rst:234 msgid "" "(Note that the one space between each column was added by the way :func:" "`print` works: it always adds spaces between its arguments.)" @@ -265,7 +289,7 @@ msgstr "" "(Remarquez que l'espace séparant les colonnes vient de la manière donc :func:" "`print` fonctionne : il ajoute toujours des espaces entre ses arguments.)" -#: ../Doc/tutorial/inputoutput.rst:234 +#: ../Doc/tutorial/inputoutput.rst:237 msgid "" "The :meth:`str.rjust` method of string objects right-justifies a string in a " "field of a given width by padding it with spaces on the left. There are " @@ -287,20 +311,19 @@ msgstr "" "valeurs, vous pouvez toujours utiliser une tranche, comme dans ``x.ljust(n)[:" "n]``)." -#: ../Doc/tutorial/inputoutput.rst:243 +#: ../Doc/tutorial/inputoutput.rst:246 msgid "" "There is another method, :meth:`str.zfill`, which pads a numeric string on " "the left with zeros. It understands about plus and minus signs::" msgstr "" "Il existe une autre méthode, :meth:`str.zfill`, qui comble une chaîne " -"numérique à gauche avec des zéros. Elle comprend les signes plus et " -"moins : ::" +"numérique à gauche avec des zéros. Elle comprend les signes plus et moins ::" -#: ../Doc/tutorial/inputoutput.rst:255 +#: ../Doc/tutorial/inputoutput.rst:258 msgid "Old string formatting" msgstr "Anciennes méthodes de formatage de chaînes" -#: ../Doc/tutorial/inputoutput.rst:257 +#: ../Doc/tutorial/inputoutput.rst:260 msgid "" "The ``%`` operator can also be used for string formatting. It interprets the " "left argument much like a :c:func:`sprintf`\\ -style format string to be " @@ -310,20 +333,20 @@ msgstr "" "L'opérateur ``%`` peut aussi être utilisé pour formater des chaînes. Il " "interprète l'argument de gauche pratiquement comme une chaîne de formatage " "de la fonction :c:func:`sprintf` à appliquer à l'argument de droite, et il " -"renvoie la chaîne résultant de cette opération de formatage. Par exemple : ::" +"renvoie la chaîne résultant de cette opération de formatage. Par exemple ::" -#: ../Doc/tutorial/inputoutput.rst:266 +#: ../Doc/tutorial/inputoutput.rst:269 msgid "" "More information can be found in the :ref:`old-string-formatting` section." msgstr "" "Vous trouvez plus d'informations dans la section :ref:`old-string-" "formatting`." -#: ../Doc/tutorial/inputoutput.rst:272 +#: ../Doc/tutorial/inputoutput.rst:275 msgid "Reading and Writing Files" msgstr "Lecture et écriture de fichiers" -#: ../Doc/tutorial/inputoutput.rst:278 +#: ../Doc/tutorial/inputoutput.rst:281 msgid "" ":func:`open` returns a :term:`file object`, and is most commonly used with " "two arguments: ``open(filename, mode)``." @@ -331,7 +354,7 @@ msgstr "" "La fonction :func:`open` renvoie un :term:`objet fichier` et est le plus " "souvent utilisée avec deux arguments : ``open(nomfichier, mode)``." -#: ../Doc/tutorial/inputoutput.rst:290 +#: ../Doc/tutorial/inputoutput.rst:293 msgid "" "The first argument is a string containing the filename. The second argument " "is another string containing a few characters describing the way in which " @@ -351,7 +374,7 @@ msgstr "" "ajoutée à la fin). ``'r+'`` ouvre le fichier en mode lecture/écriture. " "L'argument *mode* est optionnel, sa valeur par défaut est ``'r'``." -#: ../Doc/tutorial/inputoutput.rst:299 +#: ../Doc/tutorial/inputoutput.rst:302 msgid "" "Normally, files are opened in :dfn:`text mode`, that means, you read and " "write strings from and to the file, which are encoded in a specific " @@ -369,7 +392,7 @@ msgstr "" "d'octets (type *bytes*). Ce mode est à utiliser pour les fichiers contenant " "autre chose que du texte." -#: ../Doc/tutorial/inputoutput.rst:306 +#: ../Doc/tutorial/inputoutput.rst:309 msgid "" "In text mode, the default when reading is to convert platform-specific line " "endings (``\\n`` on Unix, ``\\r\\n`` on Windows) to just ``\\n``. When " @@ -389,21 +412,21 @@ msgstr "" "`EXE`. Soyez particulièrement attentifs à ouvrir ces fichiers binaires en " "mode binaire." -#: ../Doc/tutorial/inputoutput.rst:314 +#: ../Doc/tutorial/inputoutput.rst:317 msgid "" "It is good practice to use the :keyword:`with` keyword when dealing with " "file objects. The advantage is that the file is properly closed after its " "suite finishes, even if an exception is raised at some point. Using :" -"keyword:`with` is also much shorter than writing equivalent :keyword:`try`\\ " -"-\\ :keyword:`finally` blocks::" +"keyword:`!with` is also much shorter than writing equivalent :keyword:`try`" +"\\ -\\ :keyword:`finally` blocks::" msgstr "" "C'est une bonne pratique d'utiliser le mot-clé :keyword:`with` lorsque vous " "traitez des fichiers. Vous fermez ainsi toujours correctement le fichier, " -"même si une exception est levée. Utiliser :keyword:`with` est aussi beaucoup " -"plus court que d'utiliser l'équivalent avec des blocs :keyword:`try`\\ -\\ :" -"keyword:`finally` : ::" +"même si une exception est levée. Utiliser :keyword:`!with` est aussi " +"beaucoup plus court que d'utiliser l'équivalent avec des blocs :keyword:`try`" +"\\ -\\ :keyword:`finally` ::" -#: ../Doc/tutorial/inputoutput.rst:325 +#: ../Doc/tutorial/inputoutput.rst:328 msgid "" "If you're not using the :keyword:`with` keyword, then you should call ``f." "close()`` to close the file and immediately free up any system resources " @@ -420,7 +443,7 @@ msgstr "" "risque est que différentes implémentations de Python risquent faire ce " "nettoyage à des moments différents." -#: ../Doc/tutorial/inputoutput.rst:333 +#: ../Doc/tutorial/inputoutput.rst:336 msgid "" "After a file object is closed, either by a :keyword:`with` statement or by " "calling ``f.close()``, attempts to use the file object will automatically " @@ -430,11 +453,11 @@ msgstr "" "`with` ou en appelant ``f.close()``, toute tentative d'utilisation de " "l'objet fichier échoue systématiquement. ::" -#: ../Doc/tutorial/inputoutput.rst:347 +#: ../Doc/tutorial/inputoutput.rst:350 msgid "Methods of File Objects" msgstr "Méthodes des objets fichiers" -#: ../Doc/tutorial/inputoutput.rst:349 +#: ../Doc/tutorial/inputoutput.rst:352 msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." @@ -442,7 +465,7 @@ msgstr "" "Les derniers exemples de cette section supposent qu'un objet fichier appelé " "``f`` a déjà été créé." -#: ../Doc/tutorial/inputoutput.rst:352 +#: ../Doc/tutorial/inputoutput.rst:355 msgid "" "To read a file's contents, call ``f.read(size)``, which reads some quantity " "of data and returns it as a string (in text mode) or bytes object (in binary " @@ -461,7 +484,7 @@ msgstr "" "*taille* octets sont lus et donnés. Lorsque la fin du fichier est atteinte, " "``f.read()`` renvoie une chaîne vide (``''``). ::" -#: ../Doc/tutorial/inputoutput.rst:366 +#: ../Doc/tutorial/inputoutput.rst:369 msgid "" "``f.readline()`` reads a single line from the file; a newline character (``" "\\n``) is left at the end of the string, and is only omitted on the last " @@ -478,16 +501,16 @@ msgstr "" "atteinte, alors qu'une ligne vide est représentée par ``'\\n'`` (une chaîne " "de caractères ne contenant qu'une fin de ligne). ::" -#: ../Doc/tutorial/inputoutput.rst:380 +#: ../Doc/tutorial/inputoutput.rst:383 msgid "" "For reading lines from a file, you can loop over the file object. This is " "memory efficient, fast, and leads to simple code::" msgstr "" "Pour lire ligne à ligne, vous pouvez aussi boucler sur l'objet fichier. " "C'est plus efficace en terme de gestion mémoire, plus rapide et donne un " -"code plus simple : ::" +"code plus simple ::" -#: ../Doc/tutorial/inputoutput.rst:389 +#: ../Doc/tutorial/inputoutput.rst:392 msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." @@ -495,7 +518,7 @@ msgstr "" "Pour construire une liste avec toutes les lignes d'un fichier, il est aussi " "possible d'utiliser ``list(f)`` ou ``f.readlines()``." -#: ../Doc/tutorial/inputoutput.rst:392 +#: ../Doc/tutorial/inputoutput.rst:395 msgid "" "``f.write(string)`` writes the contents of *string* to the file, returning " "the number of characters written. ::" @@ -503,15 +526,15 @@ msgstr "" "``f.write(chaine)`` écrit le contenu de *chaine* dans le fichier et renvoie " "le nombre de caractères écrits. ::" -#: ../Doc/tutorial/inputoutput.rst:398 +#: ../Doc/tutorial/inputoutput.rst:401 msgid "" "Other types of objects need to be converted -- either to a string (in text " "mode) or a bytes object (in binary mode) -- before writing them::" msgstr "" "Les autres types doivent être convertis, soit en une chaîne (en mode texte), " -"soit en objet *bytes* (en mode binaire) avant de les écrire : ::" +"soit en objet *bytes* (en mode binaire) avant de les écrire ::" -#: ../Doc/tutorial/inputoutput.rst:406 +#: ../Doc/tutorial/inputoutput.rst:409 msgid "" "``f.tell()`` returns an integer giving the file object's current position in " "the file represented as number of bytes from the beginning of the file when " @@ -521,7 +544,7 @@ msgstr "" "fichier, mesurée en octets à partir du début du fichier lorsque le fichier " "est ouvert en mode binaire, ou un nombre obscur en mode texte." -#: ../Doc/tutorial/inputoutput.rst:410 +#: ../Doc/tutorial/inputoutput.rst:413 msgid "" "To change the file object's position, use ``f.seek(offset, from_what)``. " "The position is computed from adding *offset* to a reference point; the " @@ -536,9 +559,9 @@ msgstr "" "de référence ; ce point de référence est déterminé par l'argument " "*a_partir_de* : 0 pour le début du fichier, 1 pour la position actuelle et 2 " "pour la fin du fichier. *a_partir_de* peut être omis et sa valeur par défaut " -"est 0 (Python utilise le début du fichier comme point de référence) : ::" +"est 0 (Python utilise le début du fichier comme point de référence) ::" -#: ../Doc/tutorial/inputoutput.rst:429 +#: ../Doc/tutorial/inputoutput.rst:432 msgid "" "In text files (those opened without a ``b`` in the mode string), only seeks " "relative to the beginning of the file are allowed (the exception being " @@ -553,7 +576,7 @@ msgstr "" "renvoyées par ``f.tell()``, ou zéro. Toute autre valeur pour le paramètre " "*decalage* produit un comportement indéfini." -#: ../Doc/tutorial/inputoutput.rst:435 +#: ../Doc/tutorial/inputoutput.rst:438 msgid "" "File objects have some additional methods, such as :meth:`~file.isatty` and :" "meth:`~file.truncate` which are less frequently used; consult the Library " @@ -564,11 +587,11 @@ msgstr "" "consultez la Référence de la Bibliothèque Standard pour avoir un guide " "complet des objets fichiers." -#: ../Doc/tutorial/inputoutput.rst:443 +#: ../Doc/tutorial/inputoutput.rst:446 msgid "Saving structured data with :mod:`json`" msgstr "Sauvegarde de données structurées avec le module :mod:`json`" -#: ../Doc/tutorial/inputoutput.rst:447 +#: ../Doc/tutorial/inputoutput.rst:450 msgid "" "Strings can easily be written to and read from a file. Numbers take a bit " "more effort, since the :meth:`read` method only returns strings, which will " @@ -586,7 +609,7 @@ msgstr "" "instances de classes, le traitement lecture/écriture à la main devient vite " "compliqué." -#: ../Doc/tutorial/inputoutput.rst:454 +#: ../Doc/tutorial/inputoutput.rst:457 msgid "" "Rather than having users constantly writing and debugging code to save " "complicated data types to files, Python allows you to use the popular data " @@ -609,7 +632,7 @@ msgstr "" "et sa dé-sérialisation, la chaîne représentant les données peut avoir été " "stockée ou transmise à une autre machine." -#: ../Doc/tutorial/inputoutput.rst:465 +#: ../Doc/tutorial/inputoutput.rst:468 msgid "" "The JSON format is commonly used by modern applications to allow for data " "exchange. Many programmers are already familiar with it, which makes it a " @@ -619,15 +642,15 @@ msgstr "" "échanger des données. Beaucoup de développeurs le maîtrise, ce qui en fait " "un format de prédilection pour l'interopérabilité." -#: ../Doc/tutorial/inputoutput.rst:469 +#: ../Doc/tutorial/inputoutput.rst:472 msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" msgstr "" "Si vous avez un objet ``x``, vous pouvez voir sa représentation JSON en " -"tapant simplement : ::" +"tapant simplement ::" -#: ../Doc/tutorial/inputoutput.rst:476 +#: ../Doc/tutorial/inputoutput.rst:479 msgid "" "Another variant of the :func:`~json.dumps` function, called :func:`~json." "dump`, simply serializes the object to a :term:`text file`. So if ``f`` is " @@ -636,17 +659,17 @@ msgstr "" "Une variante de la fonction :func:`~json.dumps`, nommée :func:`~json.dump`, " "sérialise simplement l'objet donné vers un :term:`fichier texte `. Donc si ``f`` est un :term:`fichier texte ` ouvert en " -"écriture, il est possible de faire : ::" +"écriture, il est possible de faire ::" -#: ../Doc/tutorial/inputoutput.rst:482 +#: ../Doc/tutorial/inputoutput.rst:485 msgid "" "To decode the object again, if ``f`` is a :term:`text file` object which has " "been opened for reading::" msgstr "" "Pour reconstruire l'objet, si ``f`` est cette fois un :term:`fichier texte` " -"ouvert en lecture : ::" +"ouvert en lecture ::" -#: ../Doc/tutorial/inputoutput.rst:487 +#: ../Doc/tutorial/inputoutput.rst:490 msgid "" "This simple serialization technique can handle lists and dictionaries, but " "serializing arbitrary class instances in JSON requires a bit of extra " @@ -658,11 +681,11 @@ msgstr "" "plus de travail. La documentation du module :mod:`json` explique comment " "faire." -#: ../Doc/tutorial/inputoutput.rst:493 +#: ../Doc/tutorial/inputoutput.rst:496 msgid ":mod:`pickle` - the pickle module" msgstr "Le module :mod:`pickle`" -#: ../Doc/tutorial/inputoutput.rst:495 +#: ../Doc/tutorial/inputoutput.rst:498 msgid "" "Contrary to :ref:`JSON `, *pickle* is a protocol which allows the " "serialization of arbitrarily complex Python objects. As such, it is " @@ -686,4 +709,4 @@ msgstr "" #~ msgstr "" #~ "``'!a'`` (appliquer :func:`ascii`), ``'!s'`` (appliquer :func:`str`) et " #~ "``'!r'`` (appliquer :func:`repr`) peuvent être utilisées pour convertir " -#~ "les valeurs avant leur formatage : ::" +#~ "les valeurs avant leur formatage ::" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 98691778d..8cec2a8fb 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -51,7 +51,7 @@ msgid "" msgstr "" "La complétion de noms de variables et de modules est :ref:`automatiquement " "activée ` au démarrage de l'interpréteur. Ainsi, la " -"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " +"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " "s'effectue dans les noms d'instructions Python, les noms des variables " "locales et les noms de modules disponibles. Pour les expressions pointées " "telles que ``string.a``, l'expression est évaluée jusqu'au dernier ``'.'`` " @@ -82,7 +82,7 @@ msgstr "" "(l'analyseur sait si une indentation doit suivre) ; le mécanisme de " "complétion devrait utiliser la table de symboles de l'interpréteur. Une " "commande pour vérifier (ou même suggérer) les correspondances de " -"parenthèses, de guillemets..., serait également utile." +"parenthèses, de guillemets, etc., serait également utile." #: ../Doc/tutorial/interactive.rst:45 msgid "" @@ -93,7 +93,7 @@ msgid "" "interactive environment is bpython_." msgstr "" "Une alternative améliorée de l'interpréteur interactif est développée depuis " -"maintenant quelques temps : IPython_. Il fournit la complétion, " +"maintenant quelques temps : IPython_. Il fournit la complétion, " "l'exploration d'objets et une gestion avancée de l'historique. Il peut " "également être personnalisé en profondeur et embarqué dans d'autres " "applications. Un autre environnement interactif amélioré similaire est " diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index 02475c779..3b64a3cf5 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-02 22:52+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-04-11 21:43+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/tutorial/interpreter.rst:5 msgid "Using the Python Interpreter" @@ -50,14 +50,15 @@ msgstr "" #: ../Doc/tutorial/interpreter.rst:26 msgid "" "On Windows machines, the Python installation is usually placed in :file:`C:\\" -"\\Python36`, though you can change this when you're running the installer. " -"To add this directory to your path, you can type the following command into " -"the command prompt in a DOS box::" +"\\Python37`, though you can change this when you're running the installer. " +"To add this directory to your path, you can type the following command " +"into :ref:`a command prompt window `::" msgstr "" "Sur les machines Windows, Python est habituellement installé dans :file:`C:\\" -"\\Python36`, même si vous pouvez changer cela lorsque vous lancez " +"\\Python37`, même si vous pouvez changer cela lorsque vous lancez " "l'installateur. Pour ajouter ce dossier à votre chemin de recherche, vous " -"pouvez taper la commande suivante dans un prompt de commande DOS : ::" +"pouvez taper la commande suivante dans :ref:`une invite de commande Windows " +"` : ::" #: ../Doc/tutorial/interpreter.rst:33 msgid "" @@ -249,7 +250,7 @@ msgid "" msgstr "" "Pour annoncer un encodage différent de l'encodage par défaut, une ligne de " "commentaire particulière doit être ajoutée en tant que *première* ligne du " -"fichier. Sa syntaxe est la suivante : ::" +"fichier. Sa syntaxe est la suivante ::" #: ../Doc/tutorial/interpreter.rst:146 msgid "where *encoding* is one of the valid :mod:`codecs` supported by Python." @@ -261,7 +262,7 @@ msgid "" "line of your source code file should be::" msgstr "" "Par exemple, pour déclarer un encodage *Windows-1252*, la première ligne de " -"votre code source doit être : ::" +"votre code source doit être ::" #: ../Doc/tutorial/interpreter.rst:153 msgid "" @@ -271,8 +272,7 @@ msgid "" msgstr "" "Une exception à la règle *première ligne* est lorsque la première ligne est " "un :ref:`shebang UNIX `. Dans ce cas, la déclaration de " -"l'encodage doit être placée sur la deuxième ligne du fichier. Par " -"exemple : ::" +"l'encodage doit être placée sur la deuxième ligne du fichier. Par exemple ::" #: ../Doc/tutorial/interpreter.rst:161 msgid "Footnotes" @@ -315,7 +315,7 @@ msgstr "" #~ "write::" #~ msgstr "" #~ "Par exemple, si votre éditeur de gère pas l'UTF-8 et insiste pour " -#~ "utiliser un autre encodage, disons Windows-1252, vous pouvez écrire : ::" +#~ "utiliser un autre encodage, disons Windows-1252, vous pouvez écrire ::" #~ msgid "" #~ "and still use all characters in the Windows-1252 character set in the " diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 1e1e55e93..e6b9b8d2c 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" -"PO-Revision-Date: 2018-08-01 00:34+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 23:05+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.0.2\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/tutorial/introduction.rst:5 msgid "An Informal Introduction to Python" @@ -29,14 +29,14 @@ msgid "" "type a blank line; this is used to end a multi-line command." msgstr "" "Dans les exemples qui suivent, les entrées et sorties se distinguent par la " -"présence ou l'absence d'invite (:term:`>>>` et :term:`...`) : pour " +"présence ou l'absence d'invite (:term:`>>>` et :term:`...`) : pour " "reproduire les exemples, vous devez taper tout ce qui est après l'invite, au " -"moment où celle-ci apparaît ; les lignes qui n'affichent pas d'invite sont " +"moment où celle-ci apparaît ; les lignes qui n'affichent pas d'invite sont " "les sorties de l'interpréteur. Notez qu'une invite secondaire affichée seule " -"sur une ligne dans un exemple indique que vous devez entrer une ligne vide ; " +"sur une ligne dans un exemple indique que vous devez entrer une ligne vide ; " "ceci est utilisé pour terminer une commande multi-lignes." -#: ../Doc/tutorial/introduction.rst:14 +#: ../Doc/tutorial/introduction.rst:16 msgid "" "Many of the examples in this manual, even those entered at the interactive " "prompt, include comments. Comments in Python start with the hash character, " @@ -56,15 +56,15 @@ msgstr "" "servent qu'à expliquer le code et ne sont pas interprétés par Python, ils " "peuvent être ignorés lorsque vous tapez les exemples." -#: ../Doc/tutorial/introduction.rst:22 +#: ../Doc/tutorial/introduction.rst:24 msgid "Some examples::" -msgstr "Quelques exemples : ::" +msgstr "Quelques exemples ::" -#: ../Doc/tutorial/introduction.rst:33 +#: ../Doc/tutorial/introduction.rst:35 msgid "Using Python as a Calculator" msgstr "Utilisation de Python comme une calculatrice" -#: ../Doc/tutorial/introduction.rst:35 +#: ../Doc/tutorial/introduction.rst:37 msgid "" "Let's try some simple Python commands. Start the interpreter and wait for " "the primary prompt, ``>>>``. (It shouldn't take long.)" @@ -72,11 +72,11 @@ msgstr "" "Essayons quelques commandes Python simples. Démarrez l'interpréteur et " "attendez l'invite primaire, ``>>>``. Ça ne devrait pas être long." -#: ../Doc/tutorial/introduction.rst:42 +#: ../Doc/tutorial/introduction.rst:44 msgid "Numbers" msgstr "Les nombres" -#: ../Doc/tutorial/introduction.rst:44 +#: ../Doc/tutorial/introduction.rst:46 msgid "" "The interpreter acts as a simple calculator: you can type an expression at " "it and it will write the value. Expression syntax is straightforward: the " @@ -84,24 +84,24 @@ msgid "" "languages (for example, Pascal or C); parentheses (``()``) can be used for " "grouping. For example::" msgstr "" -"L'interpréteur agit comme une simple calculatrice : vous pouvez lui entrer " +"L'interpréteur agit comme une simple calculatrice : vous pouvez lui entrer " "une expression et il vous affiche la valeur. La syntaxe des expressions est " -"simple : les opérateurs ``+``, ``-``, ``*`` et ``/`` fonctionnent comme dans " -"la plupart des langages (par exemple, Pascal ou C) ; les parenthèses peuvent " -"être utilisées pour faire des regroupements. Par exemple : ::" +"simple : les opérateurs ``+``, ``-``, ``*`` et ``/`` fonctionnent comme dans " +"la plupart des langages (par exemple, Pascal ou C) ; les parenthèses peuvent " +"être utilisées pour faire des regroupements. Par exemple ::" -#: ../Doc/tutorial/introduction.rst:59 +#: ../Doc/tutorial/introduction.rst:61 msgid "" "The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`, the " "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type :class:" "`float`. We will see more about numeric types later in the tutorial." msgstr "" -"Les nombre entiers (comme ``2``, ``4``, ``20``) sont de type :class:`int`, " +"Les nombres entiers (comme ``2``, ``4``, ``20``) sont de type :class:`int`, " "alors que les décimaux (comme ``5.0``, ``1.6``) sont de type :class:`float`. " "Vous trouvez plus de détails sur les types numériques plus loin dans ce " "tutoriel." -#: ../Doc/tutorial/introduction.rst:63 +#: ../Doc/tutorial/introduction.rst:65 msgid "" "Division (``/``) always returns a float. To do :term:`floor division` and " "get an integer result (discarding any fractional result) you can use the ``//" @@ -110,44 +110,44 @@ msgstr "" "Les divisions (``/``) donnent toujours des :class:`float`. Utilisez " "l'opérateur ``//`` pour effectuer des divisions entières et donc obtenir un " "résultat entier. Pour obtenir le reste d'une division entière, utilisez " -"l'opérateur ``%`` : ::" +"l'opérateur ``%`` ::" -#: ../Doc/tutorial/introduction.rst:77 +#: ../Doc/tutorial/introduction.rst:79 msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" msgstr "" "En Python, il est possible de calculer des puissances avec l'opérateur " -"``**`` [#]_ : ::" +"``**`` [#]_ ::" -#: ../Doc/tutorial/introduction.rst:84 +#: ../Doc/tutorial/introduction.rst:86 msgid "" "The equal sign (``=``) is used to assign a value to a variable. Afterwards, " "no result is displayed before the next interactive prompt::" msgstr "" "Le signe égal (``=``) est utilisé pour affecter une valeur à une variable. " -"Dans ce cas, aucun résultat n'est affiché avant l'invite suivante : ::" +"Dans ce cas, aucun résultat n'est affiché avant l'invite suivante ::" -#: ../Doc/tutorial/introduction.rst:92 +#: ../Doc/tutorial/introduction.rst:94 msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" msgstr "" "Si une variable n'est pas \"définie\" (si aucune valeur ne lui a été " -"affectée), son utilisation produit une erreur : ::" +"affectée), son utilisation produit une erreur ::" -#: ../Doc/tutorial/introduction.rst:100 +#: ../Doc/tutorial/introduction.rst:102 msgid "" "There is full support for floating point; operators with mixed type operands " "convert the integer operand to floating point::" msgstr "" -"Les nombres à virgule flottante sont tout à fait admis (NdT : Python utilise " +"Les nombres à virgule flottante sont tout à fait admis (NdT : Python utilise " "le point *.* comme séparateur entre la partie entière et la partie décimale " -"des nombres, c'est la convention anglo-saxonne) ; les opérateurs avec des " +"des nombres, c'est la convention anglo-saxonne) ; les opérateurs avec des " "opérandes de types différents convertissent l'opérande de type entier en " -"type virgule flottante : ::" +"type virgule flottante ::" -#: ../Doc/tutorial/introduction.rst:106 +#: ../Doc/tutorial/introduction.rst:108 msgid "" "In interactive mode, the last printed expression is assigned to the variable " "``_``. This means that when you are using Python as a desk calculator, it " @@ -155,9 +155,9 @@ msgid "" msgstr "" "En mode interactif, la dernière expression affichée est affectée à la " "variable ``_``. Ainsi, lorsque vous utilisez Python comme calculatrice, cela " -"vous permet de continuer des calculs facilement, par exemple : ::" +"vous permet de continuer des calculs facilement, par exemple ::" -#: ../Doc/tutorial/introduction.rst:119 +#: ../Doc/tutorial/introduction.rst:121 msgid "" "This variable should be treated as read-only by the user. Don't explicitly " "assign a value to it --- you would create an independent local variable with " @@ -168,7 +168,7 @@ msgstr "" "ainsi une variable locale indépendante, avec le même nom, qui masquerait la " "variable native et son fonctionnement magique." -#: ../Doc/tutorial/introduction.rst:123 +#: ../Doc/tutorial/introduction.rst:125 msgid "" "In addition to :class:`int` and :class:`float`, Python supports other types " "of numbers, such as :class:`~decimal.Decimal` and :class:`~fractions." @@ -181,11 +181,11 @@ msgstr "" "les :ref:`nombres complexes `, en utilisant le suffixe ``j`` " "ou ``J`` pour indiquer la partie imaginaire (tel que ``3+5j``)." -#: ../Doc/tutorial/introduction.rst:133 +#: ../Doc/tutorial/introduction.rst:135 msgid "Strings" msgstr "Chaînes de caractères" -#: ../Doc/tutorial/introduction.rst:135 +#: ../Doc/tutorial/introduction.rst:137 msgid "" "Besides numbers, Python can also manipulate strings, which can be expressed " "in several ways. They can be enclosed in single quotes (``'...'``) or " @@ -196,9 +196,9 @@ msgstr "" "qui peuvent être exprimées de différentes manières. Elles peuvent être " "écrites entre guillemets simples (``'...'``) ou entre guillemets (``\"..." "\"``) sans distinction [#]_. ``\\`` peut être utilisé pour protéger un " -"guillemet : ::" +"guillemet ::" -#: ../Doc/tutorial/introduction.rst:153 +#: ../Doc/tutorial/introduction.rst:155 msgid "" "In the interactive interpreter, the output string is enclosed in quotes and " "special characters are escaped with backslashes. While this might sometimes " @@ -218,9 +218,9 @@ msgstr "" "elle est affichée entre guillemets simples. La fonction :func:`print` " "affiche les chaînes de manière plus lisible, en retirant les guillemets et " "en affichant les caractères spéciaux qui étaient protégés par une barre " -"oblique inverse : ::" +"oblique inverse ::" -#: ../Doc/tutorial/introduction.rst:173 +#: ../Doc/tutorial/introduction.rst:175 msgid "" "If you don't want characters prefaced by ``\\`` to be interpreted as special " "characters, you can use *raw strings* by adding an ``r`` before the first " @@ -228,9 +228,9 @@ msgid "" msgstr "" "Si vous ne voulez pas que les caractères précédés d'un ``\\`` soient " "interprétés comme étant spéciaux, utilisez les *chaînes brutes* (*raw " -"strings* en anglais) en préfixant la chaîne d'un ``r`` : ::" +"strings* en anglais) en préfixant la chaîne d'un ``r`` ::" -#: ../Doc/tutorial/introduction.rst:183 +#: ../Doc/tutorial/introduction.rst:185 msgid "" "String literals can span multiple lines. One way is using triple-quotes: ``" "\"\"\"...\"\"\"`` or ``'''...'''``. End of lines are automatically included " @@ -238,20 +238,20 @@ msgid "" "end of the line. The following example::" msgstr "" "Les chaînes de caractères peuvent s'étendre sur plusieurs lignes. Utilisez " -"alors des triples guillemets, simples ou doubles : ``'''...'''`` ou ``" +"alors des triples guillemets, simples ou doubles : ``'''...'''`` ou ``" "\"\"\"...\"\"\"``. Les retours à la ligne sont automatiquement inclus, mais " "on peut l'empêcher en ajoutant ``\\`` à la fin de la ligne. L'exemple " -"suivant : ::" +"suivant ::" -#: ../Doc/tutorial/introduction.rst:194 +#: ../Doc/tutorial/introduction.rst:196 msgid "" "produces the following output (note that the initial newline is not " "included):" msgstr "" "produit l'affichage suivant (notez que le premier retour à la ligne n'est " -"pas inclus) :" +"pas inclus) :" -#: ../Doc/tutorial/introduction.rst:202 +#: ../Doc/tutorial/introduction.rst:204 msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" @@ -259,36 +259,36 @@ msgstr "" "Les chaînes peuvent être concaténées (collées ensemble) avec l'opérateur ``" "+`` et répétées avec l'opérateur ``*`` ::" -#: ../Doc/tutorial/introduction.rst:209 +#: ../Doc/tutorial/introduction.rst:211 msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" msgstr "" -"Plusieurs chaînes de caractères, écrites littéralement (c'est à dire entre " +"Plusieurs chaînes de caractères, écrites littéralement (c'est-à-dire entre " "guillemets), côte à côte, sont automatiquement concaténées. ::" -#: ../Doc/tutorial/introduction.rst:215 +#: ../Doc/tutorial/introduction.rst:217 msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" "Cette fonctionnalité est surtout intéressante pour couper des chaînes trop " -"longues : ::" +"longues ::" -#: ../Doc/tutorial/introduction.rst:222 +#: ../Doc/tutorial/introduction.rst:224 msgid "" "This only works with two literals though, not with variables or expressions::" msgstr "" "Cela ne fonctionne cependant qu'avec les chaînes littérales, pas avec les " -"variables ni les expressions : ::" +"variables ni les expressions ::" -#: ../Doc/tutorial/introduction.rst:236 +#: ../Doc/tutorial/introduction.rst:238 msgid "" "If you want to concatenate variables or a variable and a literal, use ``+``::" msgstr "" "Pour concaténer des variables, ou des variables avec des chaînes littérales, " -"utilisez l'opérateur ``+`` : ::" +"utilisez l'opérateur ``+`` ::" -#: ../Doc/tutorial/introduction.rst:241 +#: ../Doc/tutorial/introduction.rst:243 msgid "" "Strings can be *indexed* (subscripted), with the first character having " "index 0. There is no separate character type; a character is simply a string " @@ -299,20 +299,20 @@ msgstr "" "position 0. Il n'existe pas de type distinct pour les caractères, un " "caractère est simplement une chaîne de longueur 1 ::" -#: ../Doc/tutorial/introduction.rst:251 +#: ../Doc/tutorial/introduction.rst:253 msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" "Les indices peuvent également être négatifs, on compte alors en partant de " -"la droite. Par exemple : ::" +"la droite. Par exemple ::" -#: ../Doc/tutorial/introduction.rst:260 +#: ../Doc/tutorial/introduction.rst:262 msgid "Note that since -0 is the same as 0, negative indices start from -1." msgstr "" "Notez que, comme ``-0`` égale ``0``, les indices négatifs commencent par " "``-1``." -#: ../Doc/tutorial/introduction.rst:262 +#: ../Doc/tutorial/introduction.rst:264 msgid "" "In addition to indexing, *slicing* is also supported. While indexing is " "used to obtain individual characters, *slicing* allows you to obtain " @@ -321,26 +321,26 @@ msgstr "" "En plus d'accéder à un élément par son indice, il est aussi possible de " "\"trancher\" (*slice* en anglais) une chaîne. Accéder à une chaîne par un " "indice permet d'obtenir un caractère, *trancher* permet d'obtenir une sous-" -"chaîne : ::" +"chaîne ::" -#: ../Doc/tutorial/introduction.rst:270 +#: ../Doc/tutorial/introduction.rst:272 msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" msgstr "" "Notez que le début est toujours inclus et la fin toujours exclue. Cela " -"assure que ``s[:i] + s[i:]`` est toujours égal à ``s`` : ::" +"assure que ``s[:i] + s[i:]`` est toujours égal à ``s`` ::" -#: ../Doc/tutorial/introduction.rst:278 +#: ../Doc/tutorial/introduction.rst:280 msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero, " "an omitted second index defaults to the size of the string being sliced. ::" msgstr "" -"Les valeurs par défaut des indices de tranches ont une utilité ; le premier " +"Les valeurs par défaut des indices de tranches ont une utilité ; le premier " "indice vaut zéro par défaut (i.e. lorsqu'il est omis), le deuxième " -"correspond par défaut à la taille de la chaîne de caractères : ::" +"correspond par défaut à la taille de la chaîne de caractères ::" -#: ../Doc/tutorial/introduction.rst:288 +#: ../Doc/tutorial/introduction.rst:290 msgid "" "One way to remember how slices work is to think of the indices as pointing " "*between* characters, with the left edge of the first character numbered 0. " @@ -350,21 +350,21 @@ msgstr "" "Pour mémoriser la façon dont les tranches fonctionnent, vous pouvez imaginer " "que les indices pointent *entre* les caractères, le côté gauche du premier " "caractère ayant la position 0. Le côté droit du dernier caractère d'une " -"chaîne de *n* caractères a alors pour indice *n*. Par exemple : ::" +"chaîne de *n* caractères a alors pour indice *n*. Par exemple ::" -#: ../Doc/tutorial/introduction.rst:299 +#: ../Doc/tutorial/introduction.rst:301 msgid "" "The first row of numbers gives the position of the indices 0...6 in the " "string; the second row gives the corresponding negative indices. The slice " "from *i* to *j* consists of all characters between the edges labeled *i* and " "*j*, respectively." msgstr "" -"La première ligne de nombres donne la position des indices 0...6 dans la " -"chaîne ; la deuxième ligne donne l'indice négatif correspondant. La tranche " +"La première ligne de nombres donne la position des indices 0…6 dans la " +"chaîne ; la deuxième ligne donne l'indice négatif correspondant. La tranche " "de *i* à *j* est constituée de tous les caractères situés entre les bords " "libellés *i* et *j*, respectivement." -#: ../Doc/tutorial/introduction.rst:304 +#: ../Doc/tutorial/introduction.rst:306 msgid "" "For non-negative indices, the length of a slice is the difference of the " "indices, if both are within bounds. For example, the length of " @@ -374,54 +374,54 @@ msgstr "" "entre ces indices, si les deux sont entre les bornes. Par exemple, la " "longueur de ``word[1:3]`` est 2." -#: ../Doc/tutorial/introduction.rst:308 +#: ../Doc/tutorial/introduction.rst:310 msgid "Attempting to use an index that is too large will result in an error::" -msgstr "Utiliser un indice trop grand produit une erreur : ::" +msgstr "Utiliser un indice trop grand produit une erreur ::" -#: ../Doc/tutorial/introduction.rst:315 +#: ../Doc/tutorial/introduction.rst:317 msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" msgstr "" "Cependant, les indices hors bornes sont gérés silencieusement lorsqu'ils " -"sont utilisés dans des tranches : ::" +"sont utilisés dans des tranches ::" -#: ../Doc/tutorial/introduction.rst:323 +#: ../Doc/tutorial/introduction.rst:325 msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" msgstr "" "Les chaînes de caractères, en Python, ne peuvent pas être modifiées. On dit " -"qu'elles sont :term:`immuable`\\s. Affecter une nouvelle valeur à un indice " -"dans une chaîne produit une erreur : ::" +"qu'elles sont :term:`immuables `. Affecter une nouvelle valeur à " +"un indice dans une chaîne produit une erreur ::" -#: ../Doc/tutorial/introduction.rst:335 +#: ../Doc/tutorial/introduction.rst:337 msgid "If you need a different string, you should create a new one::" msgstr "" "Si vous avez besoin d'une chaîne différente, vous devez en créer une " -"nouvelle : ::" +"nouvelle ::" -#: ../Doc/tutorial/introduction.rst:342 +#: ../Doc/tutorial/introduction.rst:344 msgid "The built-in function :func:`len` returns the length of a string::" -msgstr "La fonction native :func:`len` renvoie la longueur d'une chaîne : ::" +msgstr "La fonction native :func:`len` renvoie la longueur d'une chaîne ::" -#: ../Doc/tutorial/introduction.rst:353 +#: ../Doc/tutorial/introduction.rst:355 msgid ":ref:`textseq`" msgstr ":ref:`textseq`" -#: ../Doc/tutorial/introduction.rst:352 +#: ../Doc/tutorial/introduction.rst:354 msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" -"Les chaînes de caractères sont des exemples de *types séquences* ; elles " +"Les chaînes de caractères sont des exemples de *types séquences* ; elles " "acceptent donc les opérations classiques prises en charge par ces types." -#: ../Doc/tutorial/introduction.rst:357 +#: ../Doc/tutorial/introduction.rst:359 msgid ":ref:`string-methods`" msgstr ":ref:`string-methods`" -#: ../Doc/tutorial/introduction.rst:356 +#: ../Doc/tutorial/introduction.rst:358 msgid "" "Strings support a large number of methods for basic transformations and " "searching." @@ -429,28 +429,28 @@ msgstr "" "Les chaînes de caractères gèrent un large éventail de méthodes de " "transformations basiques et de recherche." -#: ../Doc/tutorial/introduction.rst:360 +#: ../Doc/tutorial/introduction.rst:362 msgid ":ref:`f-strings`" msgstr ":ref:`f-strings`" -#: ../Doc/tutorial/introduction.rst:360 +#: ../Doc/tutorial/introduction.rst:362 msgid "String literals that have embedded expressions." msgstr "Des chaînes littérales qui contiennent des expressions." -#: ../Doc/tutorial/introduction.rst:363 +#: ../Doc/tutorial/introduction.rst:365 msgid ":ref:`formatstrings`" msgstr ":ref:`formatstrings`" -#: ../Doc/tutorial/introduction.rst:363 +#: ../Doc/tutorial/introduction.rst:365 msgid "Information about string formatting with :meth:`str.format`." msgstr "" "Informations sur le formatage des chaînes avec la méthode :meth:`str.format`." -#: ../Doc/tutorial/introduction.rst:366 +#: ../Doc/tutorial/introduction.rst:368 msgid ":ref:`old-string-formatting`" msgstr ":ref:`old-string-formatting`" -#: ../Doc/tutorial/introduction.rst:366 +#: ../Doc/tutorial/introduction.rst:368 msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." @@ -458,11 +458,11 @@ msgstr "" "Description détaillée des anciennes méthodes de mise en forme, appelées " "lorsque les chaînes de caractères sont à gauche de l'opérateur ``%``." -#: ../Doc/tutorial/introduction.rst:373 +#: ../Doc/tutorial/introduction.rst:375 msgid "Lists" msgstr "Listes" -#: ../Doc/tutorial/introduction.rst:375 +#: ../Doc/tutorial/introduction.rst:377 msgid "" "Python knows a number of *compound* data types, used to group together other " "values. The most versatile is the *list*, which can be written as a list of " @@ -470,20 +470,20 @@ msgid "" "items of different types, but usually the items all have the same type. ::" msgstr "" "Python connaît différents types de données *combinés*, utilisés pour " -"regrouper plusieurs valeurs. La plus souple est la *liste*, qui peut être " -"écrite comme une suite, placée entre crochets, de valeurs (éléments) séparés " +"regrouper plusieurs valeurs. Le plus souple est la *liste*, qui peut être " +"écrit comme une suite, placée entre crochets, de valeurs (éléments) séparées " "par des virgules. Les éléments d'une liste ne sont pas obligatoirement tous " "du même type, bien qu'à l'usage ce soit souvent le cas. ::" -#: ../Doc/tutorial/introduction.rst:384 +#: ../Doc/tutorial/introduction.rst:386 msgid "" -"Like strings (and all other built-in :term:`sequence` type), lists can be " +"Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" msgstr "" "Comme les chaînes de caractères (et toute autre type de :term:`sequence`), " -"les listes peuvent être indicées et découpées : ::" +"les listes peuvent être indicées et découpées ::" -#: ../Doc/tutorial/introduction.rst:394 +#: ../Doc/tutorial/introduction.rst:396 msgid "" "All slice operations return a new list containing the requested elements. " "This means that the following slice returns a new (shallow) copy of the " @@ -491,55 +491,55 @@ msgid "" msgstr "" "Toutes les opérations par tranches renvoient une nouvelle liste contenant " "les éléments demandés. Cela signifie que l'opération suivante renvoie une " -"copie (superficielle) de la liste : ::" +"copie (superficielle) de la liste ::" -#: ../Doc/tutorial/introduction.rst:400 +#: ../Doc/tutorial/introduction.rst:402 msgid "Lists also support operations like concatenation::" -msgstr "Les listes gèrent aussi les opérations comme les concaténations : ::" +msgstr "Les listes gèrent aussi les opérations comme les concaténations ::" -#: ../Doc/tutorial/introduction.rst:405 +#: ../Doc/tutorial/introduction.rst:407 msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" msgstr "" -"Mais à la différence des chaînes qui sont :term:`immuable`\\s, les listes " -"sont :term:`muables `\\s : il est possible de modifier leur " -"contenu : ::" +"Mais à la différence des chaînes qui sont :term:`immuables `, les " +"listes sont :term:`muables ` : il est possible de modifier leur " +"contenu ::" -#: ../Doc/tutorial/introduction.rst:415 +#: ../Doc/tutorial/introduction.rst:417 msgid "" "You can also add new items at the end of the list, by using the :meth:`~list." "append` *method* (we will see more about methods later)::" msgstr "" "Il est aussi possible d'ajouter de nouveaux éléments à la fin d'une liste " "avec la méthode :meth:`~list.append` (les méthodes sont abordées plus " -"tard) : ::" +"tard) ::" -#: ../Doc/tutorial/introduction.rst:423 +#: ../Doc/tutorial/introduction.rst:425 msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" msgstr "" "Des affectations de tranches sont également possibles, ce qui peut même " -"modifier la taille de la liste ou la vider complètement : ::" +"modifier la taille de la liste ou la vider complètement ::" -#: ../Doc/tutorial/introduction.rst:442 +#: ../Doc/tutorial/introduction.rst:444 msgid "The built-in function :func:`len` also applies to lists::" -msgstr "La primitive :func:`len` s'applique aussi aux listes : ::" +msgstr "La primitive :func:`len` s'applique aussi aux listes ::" -#: ../Doc/tutorial/introduction.rst:448 +#: ../Doc/tutorial/introduction.rst:450 msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" msgstr "" "Il est possible d'imbriquer des listes (i.e. créer des listes contenant " -"d'autres listes). Par exemple : ::" +"d'autres listes). Par exemple ::" -#: ../Doc/tutorial/introduction.rst:464 +#: ../Doc/tutorial/introduction.rst:466 msgid "First Steps Towards Programming" msgstr "Premiers pas vers la programmation" -#: ../Doc/tutorial/introduction.rst:466 +#: ../Doc/tutorial/introduction.rst:468 msgid "" "Of course, we can use Python for more complicated tasks than adding two and " "two together. For instance, we can write an initial sub-sequence of the " @@ -549,13 +549,13 @@ msgstr "" "Bien entendu, on peut utiliser Python pour des tâches plus compliquées que " "d'additionner deux et deux. Par exemple, on peut écrire le début de la " "`suite de Fibonacci `_ " -"comme ceci : ::" +"comme ceci ::" -#: ../Doc/tutorial/introduction.rst:486 +#: ../Doc/tutorial/introduction.rst:488 msgid "This example introduces several new features." msgstr "Cet exemple introduit plusieurs nouvelles fonctionnalités." -#: ../Doc/tutorial/introduction.rst:488 +#: ../Doc/tutorial/introduction.rst:490 msgid "" "The first line contains a *multiple assignment*: the variables ``a`` and " "``b`` simultaneously get the new values 0 and 1. On the last line this is " @@ -563,14 +563,14 @@ msgid "" "all evaluated first before any of the assignments take place. The right-" "hand side expressions are evaluated from the left to the right." msgstr "" -"La première ligne contient une *affectation multiple* : les variables ``a`` " +"La première ligne contient une *affectation multiple* : les variables ``a`` " "et ``b`` se voient affecter simultanément leurs nouvelles valeurs 0 et 1. " "Cette méthode est encore utilisée à la dernière ligne, pour démontrer que " "les expressions sur la partie droite de l'affectation sont toutes évaluées " "avant que les affectations ne soient effectuées. Ces expressions en partie " "droite sont toujours évaluées de la gauche vers la droite." -#: ../Doc/tutorial/introduction.rst:494 +#: ../Doc/tutorial/introduction.rst:496 msgid "" "The :keyword:`while` loop executes as long as the condition (here: ``a < " "10``) remains true. In Python, like in C, any non-zero integer value is " @@ -581,17 +581,17 @@ msgid "" "than), ``>`` (greater than), ``==`` (equal to), ``<=`` (less than or equal " "to), ``>=`` (greater than or equal to) and ``!=`` (not equal to)." msgstr "" -"La boucle :keyword:`while` s'exécute tant que la condition (ici : ``a < " +"La boucle :keyword:`while` s'exécute tant que la condition (ici : ``a < " "10``) reste vraie. En Python, comme en C, tout entier différent de zéro est " "vrai et zéro est faux. La condition peut aussi être une chaîne de " -"caractères, une liste, ou en fait toute séquence ; une séquence avec une " +"caractères, une liste, ou en fait toute séquence ; une séquence avec une " "valeur non nulle est vraie, une séquence vide est fausse. Le test utilisé " "dans l'exemple est une simple comparaison. Les opérateurs de comparaison " -"standards sont écrits comme en C : ``<`` (inférieur), ``>`` (supérieur), " +"standards sont écrits comme en C : ``<`` (inférieur), ``>`` (supérieur), " "``==`` (égal), ``<=`` (inférieur ou égal), ``>=`` (supérieur ou égal) et ``!" "=`` (non égal)." -#: ../Doc/tutorial/introduction.rst:503 +#: ../Doc/tutorial/introduction.rst:505 msgid "" "The *body* of the loop is *indented*: indentation is Python's way of " "grouping statements. At the interactive prompt, you have to type a tab or " @@ -602,18 +602,18 @@ msgid "" "(since the parser cannot guess when you have typed the last line). Note " "that each line within a basic block must be indented by the same amount." msgstr "" -"Le *corps* de la boucle est *indenté* : l'indentation est la méthode " +"Le *corps* de la boucle est *indenté* : l'indentation est la méthode " "utilisée par Python pour regrouper des instructions. En mode interactif, " "vous devez saisir une tabulation ou des espaces pour chaque ligne indentée. " "En pratique, vous aurez intérêt à utiliser un éditeur de texte pour les " -"saisies plus compliquées ; tous les éditeurs de texte dignes de ce nom " +"saisies plus compliquées ; tous les éditeurs de texte dignes de ce nom " "disposent d'une fonction d'auto-indentation. Lorsqu'une expression composée " "est saisie en mode interactif, elle doit être suivie d'une ligne vide pour " "indiquer qu'elle est terminée (car l'analyseur ne peut pas deviner que vous " "venez de saisir la dernière ligne). Notez bien que toutes les lignes à " "l'intérieur d'un bloc doivent être indentées au même niveau." -#: ../Doc/tutorial/introduction.rst:512 +#: ../Doc/tutorial/introduction.rst:514 msgid "" "The :func:`print` function writes the value of the argument(s) it is given. " "It differs from just writing the expression you want to write (as we did " @@ -622,27 +622,27 @@ msgid "" "without quotes, and a space is inserted between items, so you can format " "things nicely, like this::" msgstr "" -"La fonction :func:`print` écrit les valeur des paramètres qui lui sont " +"La fonction :func:`print` écrit les valeurs des paramètres qui lui sont " "fournis. Ce n'est pas la même chose que d'écrire l'expression que vous " "voulez afficher (comme nous l'avons fait dans l'exemple de la calculatrice), " "en raison de la manière qu'a ``print`` de gérer les paramètres multiples, " "les nombres décimaux et les chaînes. Les chaînes sont affichées sans " "apostrophe et une espace est insérée entre les éléments de telle sorte que " -"vous pouvez facilement formater les choses, comme ceci : ::" +"vous pouvez facilement formater les choses, comme ceci ::" -#: ../Doc/tutorial/introduction.rst:523 +#: ../Doc/tutorial/introduction.rst:525 msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" msgstr "" "Le paramètre nommé *end* peut servir pour enlever le retour à la ligne ou " -"pour terminer la ligne par une autre chaîne : ::" +"pour terminer la ligne par une autre chaîne ::" -#: ../Doc/tutorial/introduction.rst:535 +#: ../Doc/tutorial/introduction.rst:537 msgid "Footnotes" msgstr "Notes" -#: ../Doc/tutorial/introduction.rst:536 +#: ../Doc/tutorial/introduction.rst:538 msgid "" "Since ``**`` has higher precedence than ``-``, ``-3**2`` will be interpreted " "as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you " @@ -650,9 +650,9 @@ msgid "" msgstr "" "Puisque ``**`` est prioritaire sur ``-``, ``-3 ** 2`` est interprété ``-(3 " "** 2)`` et vaut donc ``-9``. Pour éviter cela et obtenir ``9``, utilisez des " -"parenthèses : ``(-3) ** 2``." +"parenthèses : ``(-3) ** 2``." -#: ../Doc/tutorial/introduction.rst:540 +#: ../Doc/tutorial/introduction.rst:542 msgid "" "Unlike other languages, special characters such as ``\\n`` have the same " "meaning with both single (``'...'``) and double (``\"...\"``) quotes. The " diff --git a/tutorial/modules.po b/tutorial/modules.po index afabdf4da..2e99e1dcb 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-31 23:47+0200\n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-19 22:03+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -67,14 +67,13 @@ msgstr "" "nom de fichier est le nom du module suffixé de :file:`.py`. À l'intérieur " "d'un module, son propre nom est accessible par la variable ``__name__``. Par " "exemple, prenez votre éditeur favori et créez un fichier :file:`fibo.py` " -"dans le répertoire courant qui contient : ::" +"dans le répertoire courant qui contient ::" #: ../Doc/tutorial/modules.rst:45 msgid "" "Now enter the Python interpreter and import this module with the following " "command::" -msgstr "" -"Maintenant, ouvrez un interpréteur et importez le module en tapant : ::" +msgstr "Maintenant, ouvrez un interpréteur et importez le module en tapant ::" #: ../Doc/tutorial/modules.rst:50 msgid "" @@ -84,14 +83,14 @@ msgid "" msgstr "" "Cela n'importe pas les noms des fonctions définies dans ``fibo`` directement " "dans la table des symboles courants mais y ajoute simplement ``fibo``. Vous " -"pouvez donc appeler les fonctions *via* le nom du module : ::" +"pouvez donc appeler les fonctions *via* le nom du module ::" #: ../Doc/tutorial/modules.rst:61 msgid "" "If you intend to use a function often you can assign it to a local name::" msgstr "" "Si vous avez l'intention d'utiliser souvent une fonction, il est possible de " -"lui assigner un nom local : ::" +"lui assigner un nom local ::" #: ../Doc/tutorial/modules.rst:71 msgid "More on Modules" @@ -125,7 +124,7 @@ msgstr "" "sans se soucier de collisions de noms avec des variables globales définies " "par l'utilisateur du module. Cependant, si vous savez ce que vous faites, " "vous pouvez modifier une variable globale d'un module avec la même notation " -"que pour accéder aux fonctions : ``nommodule.nomelement``." +"que pour accéder aux fonctions : ``nommodule.nomelement``." #: ../Doc/tutorial/modules.rst:85 msgid "" @@ -147,7 +146,7 @@ msgid "" msgstr "" "Il existe une variante de l'instruction :keyword:`import` qui importe les " "noms d'un module directement dans la table de symboles du module qui " -"l'importe, par exemple : ::" +"l'importe, par exemple ::" #: ../Doc/tutorial/modules.rst:97 msgid "" @@ -162,7 +161,7 @@ msgstr "" msgid "There is even a variant to import all names that a module defines::" msgstr "" "Il existe même une variante permettant d'importer tous les noms qu'un module " -"définit : ::" +"définit ::" #: ../Doc/tutorial/modules.rst:106 msgid "" @@ -188,11 +187,11 @@ msgstr "" #: ../Doc/tutorial/modules.rst:115 msgid "" -"If the module name is followed by :keyword:`as`, then the name following :" -"keyword:`as` is bound directly to the imported module." +"If the module name is followed by :keyword:`!as`, then the name following :" +"keyword:`!as` is bound directly to the imported module." msgstr "" -"Si le nom du module est suivi par :keyword:`as`, alors le nom suivant :" -"keyword:`as` est directement lié au module importé." +"Si le nom du module est suivi par :keyword:`!as`, alors le nom suivant :" +"keyword:`!as` est directement lié au module importé." #: ../Doc/tutorial/modules.rst:124 msgid "" @@ -217,9 +216,9 @@ msgid "" msgstr "" "pour des raisons de performance, chaque module n'est importé qu'une fois par " "session. Si vous changez le code d'un module vous devez donc redémarrer " -"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " +"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " "seul module que vous voulez tester en mode interactif, vous pouvez le ré-" -"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " +"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " "``import importlib; importlib.reload(nommodule)``." #: ../Doc/tutorial/modules.rst:146 @@ -228,7 +227,7 @@ msgstr "Exécuter des modules comme des scripts" #: ../Doc/tutorial/modules.rst:148 msgid "When you run a Python module with ::" -msgstr "Lorsque vous exécutez un module Python avec : ::" +msgstr "Lorsque vous exécutez un module Python avec ::" #: ../Doc/tutorial/modules.rst:152 msgid "" @@ -238,7 +237,7 @@ msgid "" msgstr "" "le code du module est exécuté comme si vous l'aviez importé mais son " "``__name__`` vaut ``\"__main__\"``. Donc, en ajoutant ces lignes à la fin du " -"module : ::" +"module ::" #: ../Doc/tutorial/modules.rst:160 msgid "" @@ -252,7 +251,7 @@ msgstr "" #: ../Doc/tutorial/modules.rst:169 msgid "If the module is imported, the code is not run::" -msgstr "Si le fichier est importé, le code n'est pas exécuté : ::" +msgstr "Si le fichier est importé, le code n'est pas exécuté ::" #: ../Doc/tutorial/modules.rst:174 msgid "" @@ -279,7 +278,7 @@ msgstr "" "recherché parmi les modules natifs puis, s'il n'est pas trouvé, " "l'interpréteur cherche un fichier nommé :file:`spam.py` dans une liste de " "dossiers donnée par la variable :data:`sys.path`. Par défaut, :data:`sys." -"path` est initialisée à : ::" +"path` est initialisée à ::" #: ../Doc/tutorial/modules.rst:190 msgid "" @@ -287,7 +286,7 @@ msgid "" "file is specified)." msgstr "" "le dossier contenant le script courant (ou le dossier courant si aucun " -"script n'est donné) ;" +"script n'est donné) ;" #: ../Doc/tutorial/modules.rst:192 msgid "" @@ -295,7 +294,7 @@ msgid "" "shell variable :envvar:`PATH`)." msgstr "" ":envvar:`PYTHONPATH` (une liste de dossiers, utilisant la même syntaxe que " -"la variable shell :envvar:`PATH`) ;" +"la variable shell :envvar:`PATH`) ;" #: ../Doc/tutorial/modules.rst:194 msgid "The installation-dependent default." @@ -373,16 +372,16 @@ msgid "" "distribution, the compiled module must be in the source directory, and there " "must not be a source module." msgstr "" -"Il existe deux situations où Python ne vérifie pas le cache : le premier cas " +"Il existe deux situations où Python ne vérifie pas le cache : le premier cas " "est lorsque le module est donné par la ligne de commande (cas où le module " -"est toujours recompilé, sans même cacher sa version compilée) ; le second " +"est toujours recompilé, sans même cacher sa version compilée) ; le second " "cas est lorsque le module n'a pas de source. Pour gérer un module sans " "source (où seule la version compilée est fournie), le module compilé doit se " "trouver dans le dossier source et sa source ne doit pas être présente." #: ../Doc/tutorial/modules.rst:234 msgid "Some tips for experts:" -msgstr "Astuces pour les experts :" +msgstr "Astuces pour les experts :" #: ../Doc/tutorial/modules.rst:236 msgid "" @@ -401,7 +400,7 @@ msgstr "" "besoin de ces ``__doc__``, vous ne devriez utiliser ``-OO`` que si vous " "savez ce que vous faites. Les modules \"optimisés\" sont marqués d'un ``opt-" "`` et sont généralement plus petits. Les versions futures de Python " -"pourraient changer les effets de l'optimisation ;" +"pourraient changer les effets de l'optimisation ;" #: ../Doc/tutorial/modules.rst:244 msgid "" @@ -410,7 +409,7 @@ msgid "" "pyc`` files is the speed with which they are loaded." msgstr "" "un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, " -"il est juste chargé plus vite ;" +"il est juste chargé plus vite ;" #: ../Doc/tutorial/modules.rst:248 msgid "" @@ -418,7 +417,7 @@ msgid "" "directory." msgstr "" "le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les " -"modules d'un dossier ;" +"modules d'un dossier ;" #: ../Doc/tutorial/modules.rst:251 msgid "" @@ -456,7 +455,7 @@ msgstr "" "mod:`winreg` n'est proposé que sur les systèmes Windows. Un module mérite " "une attention particulière, le module :mod:`sys`, qui est présent dans tous " "les interpréteurs Python. Les variables ``sys.ps1`` et ``sys.ps2`` " -"définissent les chaînes d'invites principales et secondaires : ::" +"définissent les chaînes d'invites principales et secondaires ::" #: ../Doc/tutorial/modules.rst:285 msgid "" @@ -479,7 +478,7 @@ msgstr "" "chemin par défaut pris de la variable d'environnement :envvar:`PYTHONPATH` " "ou d'une valeur par défaut interne si :envvar:`PYTHONPATH` n'est pas " "définie. ``sys.path`` est modifiable en utilisant les opérations habituelles " -"des listes : ::" +"des listes ::" #: ../Doc/tutorial/modules.rst:300 msgid "The :func:`dir` Function" @@ -492,18 +491,18 @@ msgid "" msgstr "" "La fonction interne :func:`dir` est utilisée pour trouver quels noms sont " "définis par un module. Elle donne une liste de chaînes classées par ordre " -"lexicographique : ::" +"lexicographique ::" #: ../Doc/tutorial/modules.rst:327 msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" -msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis : ::" +msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis ::" #: ../Doc/tutorial/modules.rst:335 msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" -"Notez qu'elle liste tous les types de noms : les variables, fonctions, " +"Notez qu'elle liste tous les types de noms : les variables, fonctions, " "modules, etc." #: ../Doc/tutorial/modules.rst:339 @@ -514,7 +513,7 @@ msgid "" msgstr "" ":func:`dir` ne liste ni les fonctions primitives, ni les variables internes. " "Si vous voulez les lister, elles sont définies dans le module :mod:" -"`builtins` : ::" +"`builtins` ::" #: ../Doc/tutorial/modules.rst:378 msgid "Packages" @@ -530,7 +529,7 @@ msgid "" "authors of multi-module packages like NumPy or Pillow from having to worry " "about each other's module names." msgstr "" -"Les paquets sont un moyen de structurer les espaces de noms des modules " +"Les paquets sont un moyen de structurer les espaces de nommage des modules " "Python en utilisant une notation \"pointée\". Par exemple, le nom de module :" "mod:`A.B` désigne le sous-module ``B`` du paquet ``A``. De la même manière " "que l'utilisation des modules évite aux auteurs de différents modules " @@ -560,11 +559,11 @@ msgstr "" "file:`.aiff`, :file:`.au`), vous avez donc besoin de créer et maintenir un " "nombre croissant de modules pour gérer la conversion entre tous ces formats. " "Vous voulez aussi pouvoir appliquer un certain nombre d'opérations sur ces " -"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo " +"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo " "artificiel, etc. Donc, en plus des modules de conversion, vous allez écrire " "une myriade de modules permettant d'effectuer ces opérations. Voici une " "structure possible pour votre paquet (exprimée sous la forme d'une " -"arborescence de fichiers :" +"arborescence de fichiers :" #: ../Doc/tutorial/modules.rst:425 msgid "" @@ -576,21 +575,20 @@ msgstr "" #: ../Doc/tutorial/modules.rst:428 msgid "" -"The :file:`__init__.py` files are required to make Python treat the " -"directories as containing packages; this is done to prevent directories with " -"a common name, such as ``string``, from unintentionally hiding valid modules " -"that occur later on the module search path. In the simplest case, :file:" -"`__init__.py` can just be an empty file, but it can also execute " -"initialization code for the package or set the ``__all__`` variable, " -"described later." +"The :file:`__init__.py` files are required to make Python treat directories " +"containing the file as packages. This prevents directories with a common " +"name, such as ``string``, unintentionally hiding valid modules that occur " +"later on the module search path. In the simplest case, :file:`__init__.py` " +"can just be an empty file, but it can also execute initialization code for " +"the package or set the ``__all__`` variable, described later." msgstr "" "Les fichiers :file:`__init__.py` sont nécessaires pour que Python considère " -"les dossiers comme contenant des paquets, cela évite que des dossiers ayant " -"des noms courants comme ``string`` ne masquent des modules qui auraient été " -"trouvés plus tard dans la recherche des dossiers. Dans le plus simple des " -"cas, :file:`__init__.py` peut être vide, mais il peut aussi exécuter du code " -"d'initialisation pour son paquet ou configurer la variable ``__all__`` " -"(documentée plus loin)." +"un dossier contenant ce fichier comme un paquet. Cela évite que des dossiers " +"ayant des noms courants comme ``string`` ne masquent des modules qui " +"auraient été trouvés plus tard dans la recherche des dossiers. Dans le plus " +"simple des cas, :file:`__init__.py` peut être vide, mais il peut aussi " +"exécuter du code d'initialisation pour son paquet ou configurer la variable " +"``__all__`` (documentée plus loin)." #: ../Doc/tutorial/modules.rst:435 msgid "" @@ -598,7 +596,7 @@ msgid "" "example::" msgstr "" "Les utilisateurs d'un module peuvent importer ses modules individuellement, " -"par exemple : ::" +"par exemple ::" #: ../Doc/tutorial/modules.rst:440 msgid "" @@ -610,7 +608,7 @@ msgstr "" #: ../Doc/tutorial/modules.rst:445 msgid "An alternative way of importing the submodule is::" -msgstr "Une autre manière d'importer des sous-modules est : ::" +msgstr "Une autre manière d'importer des sous-modules est ::" #: ../Doc/tutorial/modules.rst:449 msgid "" @@ -618,7 +616,7 @@ msgid "" "its package prefix, so it can be used as follows::" msgstr "" "charge aussi le sous-module :mod:`echo` et le rend disponible sans avoir à " -"indiquer le préfixe du paquet. Il peut donc être utilisé comme ceci : ::" +"indiquer le préfixe du paquet. Il peut donc être utilisé comme ceci ::" #: ../Doc/tutorial/modules.rst:454 msgid "" @@ -626,7 +624,7 @@ msgid "" "directly::" msgstr "" "Une autre méthode consiste à importer la fonction ou la variable désirée " -"directement : ::" +"directement ::" #: ../Doc/tutorial/modules.rst:458 msgid "" @@ -634,7 +632,7 @@ msgid "" "func:`echofilter` directly available::" msgstr "" "Le sous-module :mod:`echo` est toujours chargé mais ici la fonction :func:" -"`echofilter` est disponible directement : ::" +"`echofilter` est disponible directement ::" #: ../Doc/tutorial/modules.rst:463 msgid "" @@ -677,7 +675,7 @@ msgid "" "could take a long time and importing sub-modules might have unwanted side-" "effects that should only happen when the sub-module is explicitly imported." msgstr "" -"Qu'arrive-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " +"Qu'arrive-t-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " "Idéalement, on pourrait espérer que Python aille chercher tous les sous-" "modules du paquet sur le système de fichiers et qu'ils seraient tous " "importés. Cela pourrait être long et importer certains sous-modules pourrait " @@ -705,7 +703,7 @@ msgstr "" "cette liste à jour lorsque de nouvelles versions du paquet sont publiées. Un " "auteur de paquet peut aussi décider de ne pas autoriser d'importer ``*`` " "pour son paquet. Par exemple, le fichier :file:`sound/effects/__init__.py` " -"peut contenir le code suivant : ::" +"peut contenir le code suivant ::" #: ../Doc/tutorial/modules.rst:501 msgid "" @@ -729,13 +727,13 @@ msgid "" msgstr "" "Si ``__all__`` n'est pas définie, l'instruction ``from sound.effects import " "*`` n'importe *pas* tous les sous-modules du paquet :mod:`sound.effects` " -"dans l'espace de noms courant mais s'assure seulement que le paquet :mod:" +"dans l'espace de nommage courant mais s'assure seulement que le paquet :mod:" "`sound.effects` a été importé (i.e. que tout le code du fichier :file:" "`__init__.py` a été exécuté) et importe ensuite les noms définis dans le " "paquet. Cela inclut tous les noms définis (et sous-modules chargés " "explicitement) par :file:`__init__.py`. Sont aussi inclus tous les sous-" "modules du paquet ayant été chargés explicitement par une instruction :" -"keyword:`import`. Typiquement : ::" +"keyword:`import`. Typiquement ::" #: ../Doc/tutorial/modules.rst:517 msgid "" @@ -745,7 +743,7 @@ msgid "" "when ``__all__`` is defined.)" msgstr "" "Dans cet exemple, les modules :mod:`echo` et :mod:`surround` sont importés " -"dans l'espace de noms courant lorsque ``from...import`` est exécuté parce " +"dans l'espace de nommage courant lorsque ``from...import`` est exécuté parce " "qu'ils sont définis dans le paquet :mod:`sound.effects` (cela fonctionne " "aussi lorsque ``__all__`` est définie)." @@ -762,15 +760,15 @@ msgstr "" #: ../Doc/tutorial/modules.rst:526 msgid "" -"Remember, there is nothing wrong with using ``from Package import " +"Remember, there is nothing wrong with using ``from package import " "specific_submodule``! In fact, this is the recommended notation unless the " "importing module needs to use submodules with the same name from different " "packages." msgstr "" "Rappelez-vous que rien ne vous empêche d'utiliser ``from paquet import " -"sous_module_specifique`` ! C'est d'ailleurs la manière recommandée, à moins " -"que le module qui fait les imports ait besoin de sous-modules ayant le même " -"nom mais provenant de paquets différents." +"sous_module_specifique`` ! C'est d'ailleurs la manière recommandée, à moins " +"que le module qui fait les importations ait besoin de sous-modules ayant le " +"même nom mais provenant de paquets différents." #: ../Doc/tutorial/modules.rst:533 msgid "Intra-package References" @@ -785,10 +783,10 @@ msgid "" "package, it can use ``from sound.effects import echo``." msgstr "" "Lorsque les paquets sont organisés en sous-paquets (comme le paquet :mod:" -"`sound` par exemple), vous pouvez utiliser des imports absolus pour cibler " -"des paquets voisins. Par exemple, si le module :mod:`sound.filters.vocoder` " -"a besoin du module :mod:`echo` du paquet :mod:`sound.effects`, il peut " -"utiliser ``from sound.effects import echo``." +"`sound` par exemple), vous pouvez utiliser des importations absolues pour " +"cibler des paquets voisins. Par exemple, si le module :mod:`sound.filters." +"vocoder` a besoin du module :mod:`echo` du paquet :mod:`sound.effects`, il " +"peut utiliser ``from sound.effects import echo``." #: ../Doc/tutorial/modules.rst:541 msgid "" @@ -797,10 +795,10 @@ msgid "" "current and parent packages involved in the relative import. From the :mod:" "`surround` module for example, you might use::" msgstr "" -"Il est aussi possible d'écrire des imports relatifs de la forme ``from " -"module import name``. Ces imports relatifs sont préfixés par des points pour " -"indiquer leur origine (paquet courant ou parent). Depuis le module :mod:" -"`surround`, par exemple vous pouvez écrire : ::" +"Il est aussi possible d'écrire des importations relatives de la forme ``from " +"module import name``. Ces importations relatives sont préfixées par des " +"points pour indiquer leur origine (paquet courant ou parent). Depuis le " +"module :mod:`surround`, par exemple vous pouvez écrire ::" #: ../Doc/tutorial/modules.rst:550 msgid "" @@ -809,10 +807,10 @@ msgid "" "intended for use as the main module of a Python application must always use " "absolute imports." msgstr "" -"Notez que les imports relatifs se fient au nom du module actuel. Puisque le " -"nom du module principal est toujours ``\"__main__\"``, les modules utilisés " -"par le module principal d'une application ne peuvent être importés que par " -"des imports absolus." +"Notez que les importations relatives se fient au nom du module actuel. " +"Puisque le nom du module principal est toujours ``\"__main__\"``, les " +"modules utilisés par le module principal d'une application ne peuvent être " +"importés que par des importations absolues." #: ../Doc/tutorial/modules.rst:556 msgid "Packages in Multiple Directories" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index 3b7a1f94b..35e8780c9 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -25,7 +25,7 @@ msgid "" "operating system::" msgstr "" "Le module :mod:`os` propose des dizaines de fonctions pour interagir avec le " -"système d'exploitation : ::" +"système d'exploitation ::" #: ../Doc/tutorial/stdlib.rst:23 msgid "" @@ -43,7 +43,7 @@ msgid "" "interactive aids for working with large modules like :mod:`os`::" msgstr "" "Les primitives :func:`dir` et :func:`help` sont des aides utiles lorsque " -"vous travaillez en mode interactif avez des gros modules comme :mod:`os` : ::" +"vous travaillez en mode interactif avez des gros modules comme :mod:`os` ::" #: ../Doc/tutorial/stdlib.rst:38 msgid "" @@ -51,7 +51,7 @@ msgid "" "provides a higher level interface that is easier to use::" msgstr "" "Pour la gestion des fichiers et dossiers, le module :mod:`shutil` expose une " -"interface plus abstraite et plus facile à utiliser : ::" +"interface plus abstraite et plus facile à utiliser ::" #: ../Doc/tutorial/stdlib.rst:51 msgid "File Wildcards" @@ -63,7 +63,7 @@ msgid "" "directory wildcard searches::" msgstr "" "Le module :mod:`glob` fournit une fonction pour construire des listes de " -"fichiers à partir de motifs : ::" +"fichiers à partir de motifs ::" #: ../Doc/tutorial/stdlib.rst:64 msgid "Command Line Arguments" @@ -80,7 +80,7 @@ msgstr "" "paramètres qui leur sont donnés. Ces paramètres sont stockés dans la " "variable ``argv`` du module :mod:`sys` sous la forme d'une liste. Par " "exemple, l'affichage suivant vient de l'exécution de ``python demo.py one " -"two three`` depuis la ligne de commande : ::" +"two three`` depuis la ligne de commande ::" #: ../Doc/tutorial/stdlib.rst:75 msgid "" @@ -105,7 +105,7 @@ msgid "" msgstr "" "Le module :mod:`sys` a aussi des attributs pour *stdin*, *stdout* et " "*stderr*. Ce dernier est utile pour émettre des messages d'avertissement ou " -"d'erreur qui restent visibles même si *stdout* est redirigé : ::" +"d'erreur qui restent visibles même si *stdout* est redirigé ::" #: ../Doc/tutorial/stdlib.rst:92 msgid "The most direct way to terminate a script is to use ``sys.exit()``." @@ -125,8 +125,7 @@ msgstr "" "Le module :mod:`re` fournit des outils basés sur les expressions " "rationnelles permettant des opérations complexes sur les chaînes. C'est une " "solution optimisée, utilisant une syntaxe concise, pour rechercher des " -"motifs complexes ou effectuer des remplacements complexes dans les " -"chaînes : ::" +"motifs complexes ou effectuer des remplacements complexes dans les chaînes ::" #: ../Doc/tutorial/stdlib.rst:110 msgid "" @@ -134,8 +133,7 @@ msgid "" "because they are easier to read and debug::" msgstr "" "Lorsque les opérations sont simples, il est préférable d'utiliser les " -"méthodes des chaînes. Elles sont plus lisibles et plus faciles à " -"déboguer : ::" +"méthodes des chaînes. Elles sont plus lisibles et plus faciles à déboguer ::" #: ../Doc/tutorial/stdlib.rst:120 msgid "Mathematics" @@ -147,13 +145,12 @@ msgid "" "for floating point math::" msgstr "" "Le module :mod:`math` donne accès aux fonctions sur les nombres à virgule " -"flottante (*float* en anglais) de la bibliothèque C : ::" +"flottante (*float* en anglais) de la bibliothèque C ::" #: ../Doc/tutorial/stdlib.rst:131 msgid "The :mod:`random` module provides tools for making random selections::" msgstr "" -"Le module :mod:`random` offre des outils pour faire des tirages " -"aléatoires : ::" +"Le module :mod:`random` offre des outils pour faire des tirages aléatoires ::" #: ../Doc/tutorial/stdlib.rst:143 msgid "" @@ -161,7 +158,7 @@ msgid "" "mean, median, variance, etc.) of numeric data::" msgstr "" "Le module :mod:`statistics` permet de calculer des valeurs statistiques " -"basiques (moyenne, médiane, variance, ...) : ::" +"basiques (moyenne, médiane, variance…) ::" #: ../Doc/tutorial/stdlib.rst:155 msgid "" @@ -184,12 +181,13 @@ msgstr "" "Il existe beaucoup de modules permettant d'accéder à internet et gérer les " "protocoles réseaux. Les deux plus simples sont :mod:`urllib.request` qui " "permet de récupérer des données à partir d'une URL et :mod:`smtplib` pour " -"envoyer des courriers électroniques : ::" +"envoyer des courriers électroniques ::" #: ../Doc/tutorial/stdlib.rst:186 msgid "(Note that the second example needs a mailserver running on localhost.)" msgstr "" -"Notez que le deuxième exemple a besoin d'un serveur mail tournant localement." +"(Notez que le deuxième exemple a besoin d'un serveur mail tournant " +"localement.)" #: ../Doc/tutorial/stdlib.rst:192 msgid "Dates and Times" @@ -208,7 +206,7 @@ msgstr "" "dates et d'heures soit possible, la priorité de l'implémentation est mise " "sur l'extraction efficace des attributs pour le formatage et la " "manipulation. Le module gère aussi les objets dépendant des fuseaux " -"horaires : ::" +"horaires ::" #: ../Doc/tutorial/stdlib.rst:218 msgid "Data Compression" @@ -247,7 +245,7 @@ msgstr "" "Par exemple, pour échanger deux variables, il peut être tentant d'utiliser " "l'empaquetage et le dépaquetage de tuples plutôt que la méthode " "traditionnelle. Le module :mod:`timeit` montre rapidement le léger gain de " -"performance obtenu : ::" +"performance obtenu ::" #: ../Doc/tutorial/stdlib.rst:256 msgid "" @@ -269,7 +267,7 @@ msgid "" "function as it is developed and to run those tests frequently during the " "development process." msgstr "" -"Une approche possible pour développer des application de très bonne qualité " +"Une approche possible pour développer des applications de très bonne qualité " "est d'écrire des tests pour chaque fonction au fur et à mesure de son " "développement, puis d'exécuter ces tests fréquemment lors du processus de " "développement." @@ -286,7 +284,7 @@ msgstr "" "Le module :mod:`doctest` cherche des tests dans les chaînes de " "documentation. Un test ressemble à un simple copier-coller d'un appel et son " "résultat depuis le mode interactif. Cela améliore la documentation en " -"fournissant des exemples tout en prouvant qu'ils sont justes : ::" +"fournissant des exemples tout en prouvant qu'ils sont justes ::" #: ../Doc/tutorial/stdlib.rst:288 msgid "" @@ -296,7 +294,7 @@ msgid "" msgstr "" "Le module :mod:`unittest` requiert plus d'efforts que le module :mod:" "`doctest` mais il permet de construire un jeu de tests plus complet que l'on " -"fait évoluer dans un fichier séparé : ::" +"fait évoluer dans un fichier séparé ::" #: ../Doc/tutorial/stdlib.rst:310 msgid "Batteries Included" diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index dcdf0f340..97c87860a 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: 2018-02-14 12:20+0100\n" +"PO-Revision-Date: 2019-06-18 22:06+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -38,7 +38,7 @@ msgid "" msgstr "" "Le module :mod:`reprlib` est une variante de la fonction :func:`repr`, " "spécialisé dans l'affichage concis de conteneurs volumineux ou fortement " -"imbriqués : ::" +"imbriqués ::" #: ../Doc/tutorial/stdlib2.rst:23 msgid "" @@ -51,7 +51,7 @@ msgstr "" "objets, aussi bien natifs que ceux définis par l'utilisateur, de manière à " "être lisible par l'interpréteur. Lorsque le résultat fait plus d'une ligne, " "il est séparé sur plusieurs lignes et est indenté pour rendre la structure " -"plus visible : ::" +"plus visible ::" #: ../Doc/tutorial/stdlib2.rst:39 msgid "" @@ -59,7 +59,7 @@ msgid "" "width::" msgstr "" "Le module :mod:`textwrap` formate des paragraphes de texte pour tenir sur un " -"écran d'une largeur donnée : ::" +"écran d'une largeur donnée ::" #: ../Doc/tutorial/stdlib2.rst:53 msgid "" @@ -70,11 +70,11 @@ msgstr "" "Le module :mod:`locale` utilise une base de données des formats spécifiques " "à chaque région pour les dates, nombres, etc. L'attribut ``grouping`` de la " "fonction de formatage permet de formater directement des nombres avec un " -"séparateur : ::" +"séparateur ::" #: ../Doc/tutorial/stdlib2.rst:72 msgid "Templating" -msgstr "Gabarits (Templates)" +msgstr "Gabarits (*templates* en anglais)" #: ../Doc/tutorial/stdlib2.rst:74 msgid "" @@ -83,7 +83,7 @@ msgid "" "allows users to customize their applications without having to alter the " "application." msgstr "" -"Le module :mod:`string` contient une classe polyvalente : :class:`~string." +"Le module :mod:`string` contient une classe polyvalente : :class:`~string." "Template`. Elle permet d'écrire des gabarits (*templates* en anglais) avec " "une syntaxe simple, dans le but d'être utilisable par des non-développeurs. " "Ainsi, vos utilisateurs peuvent personnaliser leur application sans la " @@ -101,7 +101,7 @@ msgstr "" "Python valide (caractères alphanumériques et tirets-bas). Entourer le " "marqueur d'accolades permet de lui coller d'autres caractères " "alphanumériques sans intercaler une espace. Écrire ``$$`` produit un simple " -"``$`` : ::" +"``$`` ::" #: ../Doc/tutorial/stdlib2.rst:88 msgid "" @@ -116,7 +116,7 @@ msgstr "" "ni sous forme d'un paramètre nommé. Dans certains cas, lorsque la donnée à " "appliquer peut n'être fournie que partiellement par l'utilisateur, la " "méthode :meth:`~string.Template.safe_substitute` est plus appropriée car " -"elle laisse tels quels les marqueurs manquants : ::" +"elle laisse tels quels les marqueurs manquants ::" #: ../Doc/tutorial/stdlib2.rst:103 msgid "" @@ -128,7 +128,7 @@ msgstr "" "Les classes filles de ``Template`` peuvent définir leur propre délimiteur. " "Typiquement, un script de renommage de photos par lots peut choisir le " "symbole pourcent comme marqueur pour les champs tels que la date actuelle, " -"le numéro de l'image ou son format : ::" +"le numéro de l'image ou son format ::" #: ../Doc/tutorial/stdlib2.rst:125 msgid "" @@ -138,7 +138,7 @@ msgid "" msgstr "" "Une autre utilisation des gabarits consiste à séparer la logique métier des " "détails spécifiques à chaque format de sortie. Il est ainsi possible de " -"générer des gabarits spécifiques pour les fichiers XML, texte, HTML ..." +"générer des gabarits spécifiques pour les fichiers XML, texte, HTML…" #: ../Doc/tutorial/stdlib2.rst:133 msgid "Working with Binary Data Record Layouts" @@ -155,11 +155,11 @@ msgid "" msgstr "" "Le module :mod:`struct` expose les fonctions :func:`~struct.pack` et :func:" "`~struct.unpack` permettant de travailler avec des données binaires. " -"L'exemple suivant montre comment parcourir une entête de fichier ZIP sans " +"L'exemple suivant montre comment parcourir un entête de fichier ZIP sans " "recourir au module :mod:`zipfile`. Les marqueurs ``\"H\"`` et ``\"I\"`` " "représentent des nombres entiers non signés, stockés respectivement sur deux " "et quatre octets. Le ``\"<\"`` indique qu'ils ont une taille standard et " -"utilisent la convention petit-boutiste : ::" +"utilisent la convention petit-boutiste ::" #: ../Doc/tutorial/stdlib2.rst:166 msgid "Multi-threading" @@ -188,7 +188,7 @@ msgid "" msgstr "" "Le code suivant donne un exemple d'utilisation du module :mod:`threading` " "exécutant des tâches en arrière-plan pendant que le programme principal " -"continue de s'exécuter : ::" +"continue de s'exécuter ::" #: ../Doc/tutorial/stdlib2.rst:197 msgid "" @@ -235,11 +235,11 @@ msgid "" msgstr "" "Le module :mod:`logging` est un système de journalisation complet. Dans son " "utilisation la plus élémentaire, les messages sont simplement envoyés dans " -"un fichier ou sur ``sys.stderr`` : ::" +"un fichier ou sur ``sys.stderr`` ::" #: ../Doc/tutorial/stdlib2.rst:225 msgid "This produces the following output:" -msgstr "Cela produit l'affichage suivant :" +msgstr "Cela produit l'affichage suivant :" #: ../Doc/tutorial/stdlib2.rst:233 msgid "" @@ -252,11 +252,11 @@ msgid "" msgstr "" "Par défaut, les messages d'information et de débogage sont ignorés, les " "autres sont envoyés vers la sortie standard. Il est aussi possible d'envoyer " -"les messages par courriel, datagrammes, sur des sockets ou vers un serveur " -"HTTP. Des nouveaux filtres permettent d'utiliser des sorties différentes en " -"fonction de la priorité du message : :const:`~logging.DEBUG`, :const:" -"`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging.ERROR` et :" -"const:`~logging.CRITICAL`." +"les messages par courriel, datagrammes, en utilisant des connecteurs réseau " +"ou vers un serveur HTTP. Des nouveaux filtres permettent d'utiliser des " +"sorties différentes en fonction de la priorité du message : :const:`~logging." +"DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging." +"ERROR` et :const:`~logging.CRITICAL`." #: ../Doc/tutorial/stdlib2.rst:240 msgid "" @@ -302,7 +302,7 @@ msgstr "" "une référence. Lorsqu'un objet n'est pas utilisé, il est automatiquement " "supprimé du tableau des références faibles et une fonction de rappel " "(*callback* en anglais) est appelée. Un exemple typique est le cache " -"d'objets coûteux à créer : ::" +"d'objets coûteux à créer ::" #: ../Doc/tutorial/stdlib2.rst:289 msgid "Tools for Working with Lists" @@ -330,7 +330,7 @@ msgstr "" "permettant de stocker que des listes homogènes mais d'une manière plus " "compacte. L'exemple suivant montre une liste de nombres stockés chacun sur " "deux octets non signés (marqueur ``\"H\"``) plutôt que d'utiliser 16 octets " -"comme l'aurait fait une liste classique : ::" +"comme l'aurait fait une liste classique ::" #: ../Doc/tutorial/stdlib2.rst:308 msgid "" @@ -344,7 +344,7 @@ msgstr "" "ou l'extraction des éléments par la gauche et plus lente pour accéder aux " "éléments du milieu. Ces objets sont particulièrement adaptés pour construire " "des queues ou des algorithmes de parcours d'arbres en largeur (ou BFS, pour " -"*Breadth First Search* en anglais) : ::" +"*Breadth First Search* en anglais) ::" #: ../Doc/tutorial/stdlib2.rst:329 msgid "" @@ -354,7 +354,7 @@ msgid "" msgstr "" "En plus de fournir des implémentations de listes alternatives, la " "bibliothèque fournit des outils tels que :mod:`bisect`, un module contenant " -"des fonctions de manipulation de listes triées : ::" +"des fonctions de manipulation de listes triées ::" #: ../Doc/tutorial/stdlib2.rst:339 msgid "" @@ -367,7 +367,7 @@ msgstr "" "partir de simples listes. La valeur la plus faible est toujours à la " "première position (indice 0). C'est utile dans les cas où l'application " "accède souvent à l'élément le plus petit mais sans vouloir classer " -"entièrement la liste : ::" +"entièrement la liste ::" #: ../Doc/tutorial/stdlib2.rst:355 msgid "Decimal Floating Point Arithmetic" @@ -379,10 +379,10 @@ msgid "" "decimal floating point arithmetic. Compared to the built-in :class:`float` " "implementation of binary floating point, the class is especially helpful for" msgstr "" -"Le module :mod:`decimal` expose la classe :class:`~decimal.Decimal` : elle " +"Le module :mod:`decimal` exporte la classe :class:`~decimal.Decimal` : elle " "est spécialisée dans le calcul de nombres décimaux représentés en virgule " "flottante. Par rapport à la classe native :class:`float`, elle est " -"particulièrement utile pour :" +"particulièrement utile pour :" #: ../Doc/tutorial/stdlib2.rst:361 msgid "" @@ -420,10 +420,10 @@ msgid "" "results in decimal floating point and binary floating point. The difference " "becomes significant if the results are rounded to the nearest cent::" msgstr "" -"Par exemple, calculer 5 % de taxe sur une facture de 70 centimes donne un " +"Par exemple, calculer 5 % de taxe sur une facture de 70 centimes donne un " "résultat différent en nombre à virgule flottante binaire et décimale. La " "différence devient significative lorsqu'on arrondit le résultat au centime " -"près : ::" +"près ::" #: ../Doc/tutorial/stdlib2.rst:379 msgid "" @@ -449,7 +449,7 @@ msgid "" msgstr "" "La représentation exacte de la classe :class:`~decimal.Decimal` lui permet " "de faire des calculs de modulo ou des tests d'égalité qui ne seraient pas " -"possibles avec une représentation à virgule flottante binaire : ::" +"possibles avec une représentation à virgule flottante binaire ::" #: ../Doc/tutorial/stdlib2.rst:399 msgid "" @@ -457,4 +457,4 @@ msgid "" "needed::" msgstr "" "Le module :mod:`decimal` permet de faire des calculs avec autant de " -"précision que nécessaire : ::" +"précision que nécessaire ::" diff --git a/tutorial/venv.po b/tutorial/venv.po index d3a966edc..ae5ee54e6 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -90,7 +90,7 @@ msgid "" "system, you can select a specific Python version by running ``python3`` or " "whichever version you want." msgstr "" -"Le module utilisé pour créer et gérer des environnements virtuels s'appelle :" +"Le module utilisé pour créer et gérer des environnements virtuels s'appelle :" "mod:`venv`. :mod:`venv` installe en général la version de Python la plus " "récente dont vous disposez. Si plusieurs versions de Python sont sur votre " "système, vous pouvez choisir une version particulière en exécutant ``python3." @@ -104,7 +104,7 @@ msgid "" msgstr "" "Pour créer un environnement virtuel, décidez d'un dossier où vous voulez le " "placer et exécutez le module :mod:`venv` comme un script avec le chemin du " -"dossier : ::" +"dossier ::" #: ../Doc/tutorial/venv.rst:49 msgid "" @@ -122,11 +122,11 @@ msgstr "Une fois l'environnement virtuel créé, vous pouvez l'activer." #: ../Doc/tutorial/venv.rst:55 msgid "On Windows, run::" -msgstr "Sur Windows, lancez : ::" +msgstr "Sur Windows, lancez ::" #: ../Doc/tutorial/venv.rst:59 msgid "On Unix or MacOS, run::" -msgstr "Sur Unix et MacOS, lancez : ::" +msgstr "Sur Unix et MacOS, lancez ::" #: ../Doc/tutorial/venv.rst:63 msgid "" @@ -147,9 +147,9 @@ msgid "" msgstr "" "Activer l'environnement virtuel change le prompt de votre ligne de commande " "pour afficher le nom de l'environnement virtuel que vous utilisez. Cela " -"modifie aussi l'environnement afin, lorsque vous tapez``python``, d'exécuter " -"la version spécifique de Python installée dans l'environnement. Par " -"exemple : ::" +"modifie aussi l'environnement afin, lorsque vous tapez ``python``, " +"d'exécuter la version spécifique de Python installée dans l'environnement. " +"Par exemple ::" #: ../Doc/tutorial/venv.rst:87 msgid "Managing Packages with pip" @@ -175,7 +175,7 @@ msgid "" "\"freeze\", etc. (Consult the :ref:`installing-index` guide for complete " "documentation for ``pip``.)" msgstr "" -"``pip`` a plusieurs sous-commandes : ``search``, ``install``, ``uninstall``, " +"``pip`` a plusieurs sous-commandes : ``search``, ``install``, ``uninstall``, " "``freeze``, etc. Consultez le guide :ref:`installing-index` pour une " "documentation exhaustive sur ``pip``." @@ -184,8 +184,7 @@ msgid "" "You can install the latest version of a package by specifying a package's " "name:" msgstr "" -"Vous pouvez installer la dernière version d'un paquet en indiquant son " -"nom : ::" +"Vous pouvez installer la dernière version d'un paquet en indiquant son nom ::" #: ../Doc/tutorial/venv.rst:120 msgid "" @@ -193,7 +192,7 @@ msgid "" "name followed by ``==`` and the version number:" msgstr "" "Vous pouvez installer une version spécifique d'un paquet en donnant le nom " -"du paquet suivi de ``==`` et du numéro de version souhaitée : ::" +"du paquet suivi de ``==`` et du numéro de version souhaitée ::" #: ../Doc/tutorial/venv.rst:131 msgid "" @@ -205,7 +204,7 @@ msgstr "" "Si vous relancez cette commande, ``pip`` remarque que la version demandée " "est déjà installée et ne fait rien. Vous pouvez fournir un numéro de version " "différent pour récupérer cette version ou lancer ``pip install --upgrade`` " -"pour mettre à jour le paquet à la dernière version : ::" +"pour mettre à jour le paquet à la dernière version ::" #: ../Doc/tutorial/venv.rst:146 msgid "" @@ -224,8 +223,7 @@ msgid "" "``pip list`` will display all of the packages installed in the virtual " "environment:" msgstr "" -"``pip list`` liste tous les paquets installés dans l'environnement " -"virtuel : ::" +"``pip list`` liste tous les paquets installés dans l'environnement virtuel ::" #: ../Doc/tutorial/venv.rst:178 msgid "" @@ -235,7 +233,7 @@ msgid "" msgstr "" "``pip freeze`` produit une liste similaire des paquets installés mais " "l'affichage adopte un format que ``pip install`` peut lire. La convention " -"habituelle est de mettre cette liste dans un fichier ``requirements.txt`` :" +"habituelle est de mettre cette liste dans un fichier ``requirements.txt`` :" #: ../Doc/tutorial/venv.rst:190 msgid "" @@ -246,7 +244,7 @@ msgstr "" "Le fichier ``requirements.txt`` peut alors être ajouté dans un système de " "gestion de versions comme faisant partie de votre application. Les " "utilisateurs peuvent alors installer tous les paquets nécessaires à " -"l'application avec ``install -r`` :" +"l'application avec ``install -r`` :" #: ../Doc/tutorial/venv.rst:207 msgid "" diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 549130a66..a056d0736 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: 2018-06-10 15:28+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-05-23 23:43+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" #: ../Doc/tutorial/whatnow.rst:5 msgid "What Now?" @@ -26,7 +27,7 @@ msgid "" msgstr "" "La lecture de ce tutoriel a probablement renforcé votre intérêt pour Python " "et vous devez être impatient de l'utiliser pour résoudre des vrais " -"problèmes. Où aller pour en apprendre plus ?" +"problèmes. Où aller pour en apprendre plus ?" #: ../Doc/tutorial/whatnow.rst:11 msgid "" @@ -34,11 +35,11 @@ msgid "" "in the set are:" msgstr "" "Ce tutoriel fait partie de la documentation de Python, et la documentation " -"de Python est vaste : ::" +"de Python est vaste ::" #: ../Doc/tutorial/whatnow.rst:14 msgid ":ref:`library-index`:" -msgstr ":ref:`library-index`:" +msgstr ":ref:`library-index` :" #: ../Doc/tutorial/whatnow.rst:16 msgid "" @@ -106,13 +107,13 @@ msgstr "" #: ../Doc/tutorial/whatnow.rst:41 msgid "" "https://pypi.org: The Python Package Index, previously also nicknamed the " -"Cheese Shop, is an index of user-created Python modules that are available " -"for download. Once you begin releasing code, you can register it here so " -"that others can find it." +"Cheese Shop [#]_, is an index of user-created Python modules that are " +"available for download. Once you begin releasing code, you can register it " +"here so that others can find it." msgstr "" "https://pypi.org (*The Python Package Index* en anglais, pour le " "\"répertoire des paquets Python\") : auparavant surnommé \"La Fromagerie" -"\" (*The Cheese Shop* en anglais), c'est un catalogue de modules Python " +"\" [#]_ (*The Cheese Shop* en anglais), c'est un catalogue de modules Python " "disponibles au téléchargement, construit par les utilisateurs. Lorsque vous " "commencez à distribuer du code, vous pouvez l'inscrire ici afin que les " "autres puissent le trouver." @@ -124,7 +125,7 @@ msgid "" "Particularly notable contributions are collected in a book also titled " "Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" msgstr "" -"https://code.activestate.com/recipes/langs/python/: \"The Python Cookbook\" " +"https://code.activestate.com/recipes/langs/python/ : \"The Python Cookbook\" " "est un recueil assez imposant d'exemples de code, de modules et de scripts. " "Les contributions les plus remarquables y sont regroupées dans le livre " "\"Python Cookbook\" (O'Reilly & Associates, ISBN 0-596-00797-3)." @@ -163,7 +164,7 @@ msgid "" msgstr "" "Pour poser des questions ou remonter des problèmes liés à Python, vous " "pouvez écrire sur le forum :newsgroup:`comp.lang.python` ou les envoyer à la " -"liste de diffusion à python-list@python.org. Le forum et la liste de " +"liste de diffusion . Le forum et la liste de " "diffusion sont liées, un message publié sur l'un sera automatiquement " "transféré sur l'autre. Des centaines de messages y sont publiés chaque jour, " "posant (ou répondant à) des questions, suggérant de nouvelles " @@ -181,3 +182,16 @@ msgstr "" "`Foire Aux Questions ` (aussi appelée FAQ). La FAQ répond à " "beaucoup de questions fréquentes et contient probablement une solution à " "votre problème." + +#: ../Doc/tutorial/whatnow.rst:73 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/tutorial/whatnow.rst:74 +msgid "" +"\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop, " +"but whatever cheese he asks for, the clerk says it's missing." +msgstr "" +"« Cheese Shop » est un sketch de Monty Python : un client entre dans une " +"fromagerie, mais peu importe le fromage que demande le client, le vendeur " +"dit qu’il n’en a pas." diff --git a/using/cmdline.po b/using/cmdline.po index 3567bfc63..b16856cae 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-08-01 23:52+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-03-19 23:22+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -182,11 +182,11 @@ msgid "" "passed to the interpreter as the script argument." msgstr "" "Les noms de paquets sont aussi autorisés (ainsi que les paquets-espace de " -"noms, *namespace packages* en anglais). Quand un nom de paquet est donné à " -"la place d'un simple module, l'interpréteur exécute ``.__main__`` comme " -"module principal. Ce comportement est délibérément identique au traitement " -"d'un dossier ou d'un fichier zip donné en argument à l'interpréteur comme " -"script." +"nommage, *namespace packages* en anglais). Quand un nom de paquet est donné " +"à la place d'un simple module, l'interpréteur exécute ``.__main__`` " +"comme module principal. Ce comportement est délibérément identique au " +"traitement d'un dossier ou d'un fichier zip donné en argument à " +"l'interpréteur comme script." #: ../Doc/using/cmdline.rst:93 msgid "" @@ -195,8 +195,8 @@ msgid "" "still be used for precompiled modules, even if the original source file is " "not available." msgstr "" -"cette option ne peut pas être utilisée avec les modules intégrés et les " -"modules d'extension écrits en C, étant donné qu'il ne possèdent pas de " +"Cette option ne peut pas être utilisée avec les modules natifs et les " +"modules d'extension écrits en C, étant donné qu'ils ne possèdent pas de " "fichiers modules en Python. Cependant, elle peut toujours être utilisée pour " "les modules pré-compilés, même si le fichier source original n'est pas " "disponible." @@ -224,7 +224,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:111 msgid ":func:`runpy.run_module`" -msgstr "" +msgstr ":func:`runpy.run_module`" #: ../Doc/using/cmdline.rst:111 ../Doc/using/cmdline.rst:153 msgid "Equivalent functionality directly available to Python code" @@ -240,7 +240,7 @@ msgstr "Fournir le nom d'un paquet pour exécuter un sous-module ``__main__``." #: ../Doc/using/cmdline.rst:119 msgid "namespace packages are also supported" -msgstr "Les paquets-espaces de noms sont supportés." +msgstr "les paquets-espaces de nommage sont aussi gérés" #: ../Doc/using/cmdline.rst:125 msgid "" @@ -301,7 +301,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:152 msgid ":func:`runpy.run_path`" -msgstr "" +msgstr ":func:`runpy.run_path`" #: ../Doc/using/cmdline.rst:156 msgid "" @@ -319,12 +319,12 @@ msgstr "" #: ../Doc/using/cmdline.rst:162 msgid ":ref:`tut-invoking`" -msgstr "" +msgstr ":ref:`tut-invoking`" #: ../Doc/using/cmdline.rst:164 msgid "Automatic enabling of tab-completion and history editing." msgstr "" -"activation automatique de la complétion par tabulation et édition de " +"Activation automatique de la complétion par tabulation et édition de " "l'historique." #: ../Doc/using/cmdline.rst:169 @@ -348,7 +348,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:194 msgid "The ``-VV`` option." -msgstr "option ``-VV``." +msgstr "L'option ``-VV``." #: ../Doc/using/cmdline.rst:200 msgid "Miscellaneous options" @@ -374,8 +374,8 @@ msgid "" "If given, Python won't try to write ``.pyc`` files on the import of source " "modules. See also :envvar:`PYTHONDONTWRITEBYTECODE`." msgstr "" -"S'il est donné, Python ne tente pas d'écrire de fichier ``.pyc``` ou ``." -"pyo`` à l'importation des modules source. Voir aussi :envvar:" +"S'il est donné, Python ne tente pas d'écrire de fichier ``.pyc`` ou ``.pyo`` " +"à l'importation des modules sources. Voir aussi :envvar:" "`PYTHONDONTWRITEBYTECODE`." #: ../Doc/using/cmdline.rst:219 @@ -388,12 +388,22 @@ msgid "" "to ``never``, hash-based ``.pyc`` files are not validated against their " "corresponding source files." msgstr "" +"Contrôle la façon dont sont validés les fichiers ``.pyc`` avec empreinte " +"(voir :ref:`pyc-invalidation`). Quand la valeur est ``default``, les caches " +"de fichiers de code intermédiaire sont validés en fonction de leur " +"sémantique par défaut. Quand la valeur est ``always``, tous les fichiers ``." +"pyc``, qu'ils soient vérifiés ou non, sont validés par rapport à leurs " +"fichiers sources correspondants. Quand la valeur est ``never``, les fichiers " +"``.pyc`` ne sont pas validés par rapport à leurs fichiers sources " +"correspondants." #: ../Doc/using/cmdline.rst:227 msgid "" "The semantics of timestamp-based ``.pyc`` files are unaffected by this " "option." msgstr "" +"La sémantique des fichiers ``.pyc`` générés en fonction de l'horodatage " +"n'est pas affectée par cette option." #: ../Doc/using/cmdline.rst:233 msgid "" @@ -455,10 +465,14 @@ msgid "" "adding ``.opt-1`` before the ``.pyc`` extension (see :pep:`488`). See also :" "envvar:`PYTHONOPTIMIZE`." msgstr "" +"Enlève les instructions *assert* et tout le code qui dépend de la valeur de :" +"const:`__debug__`. Ajoute ``.opt-1`` au nom de fichier du code intermédiaire " +"(:term:`bytecode`), avant l'extension ``.pyc`` (voir la :pep:`488`). Voir " +"aussi :envvar:`PYTHONOPTIMIZE`." #: ../Doc/using/cmdline.rst:272 ../Doc/using/cmdline.rst:282 msgid "Modify ``.pyc`` filenames according to :pep:`488`." -msgstr "" +msgstr "modifie les noms de fichiers ``.pyc`` suivant la :pep:`488`." #: ../Doc/using/cmdline.rst:278 msgid "" @@ -466,6 +480,9 @@ msgid "" "compiled (:term:`bytecode`) files by adding ``.opt-2`` before the ``.pyc`` " "extension (see :pep:`488`)." msgstr "" +"Agit comme :option:`-O` et ignore aussi les *docstrings*. Ajoute ``.opt-2`` " +"au nom de fichier du code intermédiaire (:term:`bytecode`), avant " +"l'extension ``.pyc`` (voir la :pep:`488`)." #: ../Doc/using/cmdline.rst:288 msgid "" @@ -478,6 +495,9 @@ msgid "" "`PYTHONHASHSEED` environment variable is set to ``0``, since hash " "randomization is enabled by default." msgstr "" +"Active l'imprévisibilité du hachage. Cette option ne produit un effet que si " +"la variable d'environnement :envvar:`PYTHONHASHSEED` est mise à ``0``, " +"puisque l'imprévisibilité du hachage est activée par défaut." #: ../Doc/using/cmdline.rst:299 msgid "" @@ -487,8 +507,8 @@ msgid "" "individual Python process, they are not predictable between repeated " "invocations of Python." msgstr "" -"Sur les versions précédentes de Python, cette option activait la " -"randomisation des empreintes de manière à ce que les :meth:`__hash__` de " +"Sur les versions précédentes de Python, cette option activait " +"l'imprévisibilité des empreintes de manière à ce que les :meth:`__hash__` de " "chaînes, bytes et ``datetime`` soient \"salés\" avec une valeur aléatoire " "non prévisible. Bien que ce sel soit constant durant le déroulement d'un " "processus Python, il n'est pas prévisible pour des invocations répétées de " @@ -501,11 +521,11 @@ msgid "" "performance of a dict construction, O(n^2) complexity. See http://www.ocert." "org/advisories/ocert-2011-003.html for details." msgstr "" -"La randomisation des empreintes a pour objectif de se protéger contre les " +"L'imprévisibilité des empreintes a pour objectif de se protéger contre les " "dénis de service qui utiliseraient des valeurs d'entrée judicieusement " "choisies afin de forcer la construction des dictionnaires dans le pire cas, " -"c'est-à-dire avec une complexité en O(n^2). Voir http://www.ocert.org/" -"advisories/ocert-2011-003.html pour obtenir les détails." +"c'est-à-dire avec une complexité en O(n\\ :sup:`2`). Voir http://www.ocert." +"org/advisories/ocert-2011-003.html pour obtenir les détails." #: ../Doc/using/cmdline.rst:310 msgid "" @@ -517,7 +537,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:313 msgid "The option is no longer ignored." -msgstr "" +msgstr "cette option n'est plus ignorée." #: ../Doc/using/cmdline.rst:321 msgid "" @@ -530,7 +550,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:326 ../Doc/using/cmdline.rst:634 #: ../Doc/using/cmdline.rst:646 msgid ":pep:`370` -- Per user site-packages directory" -msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." +msgstr ":pep:`370` — Répertoire site-packages propre à l'utilisateur" #: ../Doc/using/cmdline.rst:331 msgid "" @@ -549,6 +569,8 @@ msgid "" "Force the stdout and stderr streams to be unbuffered. This option has no " "effect on the stdin stream." msgstr "" +"Force les flux de sortie et d'erreur standards à ne pas utiliser de tampon. " +"Cette option n'a pas d'effet sur le flux d'entrée standard." #: ../Doc/using/cmdline.rst:342 msgid "See also :envvar:`PYTHONUNBUFFERED`." @@ -557,6 +579,8 @@ msgstr "Voir aussi :envvar:`PYTHONUNBUFFERED`." #: ../Doc/using/cmdline.rst:344 msgid "The text layer of the stdout and stderr streams now is unbuffered." msgstr "" +"la couche texte des flux de sortie et d'erreur standards n'utilise " +"maintenant plus de tampon." #: ../Doc/using/cmdline.rst:350 msgid "" @@ -570,7 +594,7 @@ msgstr "" "l'emplacement (nom du fichier ou module natif) à partir duquel il est " "chargé. Lorsque l'option est doublée (:option:`!-vv`), affiche un message " "pour chaque fichier vérifié lors de la recherche du module. Fournit aussi " -"des informations sur le nettoyage du module à la fin. Voir aussi :envvar:" +"des informations sur le nettoyage des modules à la fin. Voir aussi :envvar:" "`PYTHONVERBOSE`." #: ../Doc/using/cmdline.rst:360 @@ -621,6 +645,9 @@ msgid "" "warnings emitted by a process (even those that are otherwise ignored by " "default)::" msgstr "" +"Les configurations les plus simples forcent l'application de l'action à tous " +"les avertissements émis par un processus (même ceux qui auraient été ignorés " +"par défaut) ::" #: ../Doc/using/cmdline.rst:391 msgid "" @@ -628,12 +655,17 @@ msgid "" "Wa``, ``-We``) and the interpreter will resolve them to the appropriate " "action name." msgstr "" +"Les noms des actions peuvent être abrégés à votre convenance (par exemple. " +"``-Wi``, ``-Wd``, ``-Wa``, ``-We``), l'interpréteur fait la résolution vers " +"le nom adéquat." #: ../Doc/using/cmdline.rst:395 ../Doc/using/cmdline.rst:673 msgid "" "See :ref:`warning-filter` and :ref:`describing-warning-filters` for more " "details." msgstr "" +"Voir :ref:`warning-filter` et :ref:`describing-warning-filters` pour plus " +"de détails." #: ../Doc/using/cmdline.rst:401 msgid "" @@ -700,6 +732,13 @@ msgid "" "application. Typical usage is ``python3 -X importtime -c 'import " "asyncio'``. See also :envvar:`PYTHONPROFILEIMPORTTIME`." msgstr "" +"``-X importtime`` affiche le temps mis pour chaque importation. Le temps " +"total par module est affiché (y compris le temps pris par les importations " +"imbriquées) ainsi que le temps propre du module (c-à-d sans les importations " +"imbriquées). Notez que l'affichage peut être perturbé dans une application " +"avec de multiples fils d'exécution. L'utilisation classique est ``python3 -" +"X importtime -c 'import asyncio'``. Voir aussi :envvar:" +"`PYTHONPROFILEIMPORTTIME`." #: ../Doc/using/cmdline.rst:427 msgid "" @@ -708,32 +747,45 @@ msgid "" "not be more verbose than the default if the code is correct: new warnings " "are only emitted when an issue is detected. Effect of the developer mode:" msgstr "" +"``-X dev``: active le \"mode développeur\" de CPython, injectant des " +"vérifications à l'exécution qui ne sont pas actives par défaut. Ce n'est pas " +"plus verbeux que le mode par défaut si le code est correct : les " +"avertissements supplémentaires ne sont émis que quand un problème est " +"détecté. Effets du mode développeur :" #: ../Doc/using/cmdline.rst:432 msgid "Add ``default`` warning filter, as :option:`-W` ``default``." msgstr "" +"ajoute le filtre ``default`` pour les avertissements, comme l'option :option:" +"`-W` ``default``." #: ../Doc/using/cmdline.rst:433 msgid "" "Install debug hooks on memory allocators: see the :c:func:" "`PyMem_SetupDebugHooks` C function." msgstr "" +"Installe des points d'entrée (*hook* en anglais) pour le débogage dans les " +"allocateurs de mémoire : voir la fonction C :c:func:`PyMem_SetupDebugHooks`." #: ../Doc/using/cmdline.rst:435 msgid "" "Enable the :mod:`faulthandler` module to dump the Python traceback on a " "crash." msgstr "" +"Active le module :mod:`faulthandler` pour décharger la pile d'appels de " +"Python en cas de crash." #: ../Doc/using/cmdline.rst:437 msgid "Enable :ref:`asyncio debug mode `." -msgstr "" +msgstr "Active le :ref:`mode de débogage d'asyncio `." #: ../Doc/using/cmdline.rst:438 msgid "" "Set the :attr:`~sys.flags.dev_mode` attribute of :attr:`sys.flags` to " "``True``" msgstr "" +"Définit l'attribut :attr:`~sys.flags.dev_mode` de :attr:`sys.flags` à " +"``True``." #: ../Doc/using/cmdline.rst:441 msgid "" @@ -742,6 +794,11 @@ msgid "" "(even when it would otherwise activate automatically). See :envvar:" "`PYTHONUTF8` for more details." msgstr "" +"``-X utf8`` active le mode UTF-8 pour les interfaces avec le système " +"d'exploitation, prenant le dessus sur le mode par défaut qui s'appuie sur la " +"configuration régionale. ``-X utf8=0`` désactive explicitement le mode UTF-8 " +"(même s'il avait du s'activer automatiquement). Voir :envvar:`PYTHONUTF8` " +"pour plus de détails." #: ../Doc/using/cmdline.rst:446 msgid "" @@ -753,7 +810,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:449 msgid "The :option:`-X` option was added." -msgstr "L'option :option:`-X` a été ajoutée." +msgstr "l'option :option:`-X` a été ajoutée." #: ../Doc/using/cmdline.rst:452 msgid "The ``-X faulthandler`` option." @@ -769,7 +826,7 @@ msgstr "option ``-X showalloccount``." #: ../Doc/using/cmdline.rst:461 msgid "The ``-X importtime``, ``-X dev`` and ``-X utf8`` options." -msgstr "Les options ``-X importtime``, ``-X dev`` et ``-X utf8``." +msgstr "les options ``-X importtime``, ``-X dev`` et ``-X utf8``." #: ../Doc/using/cmdline.rst:466 msgid "Options you shouldn't use" @@ -790,10 +847,10 @@ msgid "" "command-line switches override environmental variables where there is a " "conflict." msgstr "" -"Ces variables d'environnement modifient le comportement de Python. Elles " -"sont analysées avant les options de la ligne de commande, autres que *-E* ou " -"*-I*. Il est d'usage que les options de la ligne de commande prennent le pas " -"sur les variables d'environnement en cas de conflit." +"Les variables d'environnement suivantes modifient le comportement de Python. " +"Elles sont analysées avant les options de la ligne de commande, autres que *-" +"E* ou *-I*. Il est d'usage que les options de la ligne de commande prennent " +"le pas sur les variables d'environnement en cas de conflit." #: ../Doc/using/cmdline.rst:487 msgid "" @@ -818,7 +875,7 @@ msgstr "" "Quand :envvar:`PYTHONHOME` est défini à un simple répertoire, sa valeur " "remplace à la fois :file:`{préfixe}` et :file:`{préfixe_exec}`. Pour " "spécifier des valeurs différentes à ces variables, définissez :envvar:" -"`PYTHONHOME` à :file:`{prefix}:{exec_prefix}`." +"`PYTHONHOME` à :file:`{préfixe}:{préfixe_exec}`." #: ../Doc/using/cmdline.rst:500 msgid "" @@ -829,9 +886,9 @@ msgid "" msgstr "" "Augmente le chemin de recherche par défaut des fichiers de modules. Le " "format est le même que pour :envvar:`PATH` du shell : un ou plusieurs " -"chemins de répertoires séparés par :data:`os.pathsep` (par exemple, deux " -"points sous Unix et point-virgule sous Windows). Les répertoires qui " -"n'existent pas sont ignorés silencieusement." +"chemins de répertoires séparés par :data:`os.pathsep` (par exemple, le " +"caractère deux-points sous Unix et point-virgule sous Windows). Les " +"répertoires qui n'existent pas sont ignorés silencieusement." #: ../Doc/using/cmdline.rst:505 msgid "" @@ -879,11 +936,11 @@ msgid "" msgstr "" "S'il s'agit d'un nom de fichier accessible en lecture, les commandes Python " "de ce fichier sont exécutées avant que la première invite ne soit affichée " -"en mode interactif. Le fichier est exécuté dans le même espace de noms que " -"les commandes interactives, de manière à ce que les objets définis ou " +"en mode interactif. Le fichier est exécuté dans le même espace de nommage " +"que les commandes interactives, de manière à ce que les objets définis ou " "importés puissent être utilisés sans qualificatif dans la session " "interactive. Vous pouvez aussi changer les invites :data:`sys.ps1` et :data:" -"`sys.ps2` ainsi que la fonction automatique (*hook* en anglais) :data:`sys." +"`sys.ps2` ainsi que le point d'entrée (*hook* en anglais) :data:`sys." "__interactivehook__` dans ce fichier." #: ../Doc/using/cmdline.rst:531 @@ -906,6 +963,14 @@ msgid "" "the string \"0\" causes the default implementation of :func:`sys." "breakpointhook` to do nothing but return immediately." msgstr "" +"Si elle est définie, elle fait référence à un appelable en utilisant la " +"notation des chemins délimités par des points. Le module contenant " +"l'appelable est importé et l'appelable est alors lancé par l'implémentation " +"par défaut de :func:`sys.breakpointhook`, elle-même étant appelée par la " +"fonction native :func:`breakpoint`. Si elle n'est pas définie ou définie par " +"une chaîne vide, elle vaut la même chose que `pdb.set_trace`. La définir à " +"la chaîne \"0\" entraine que l'implémentation par défaut de :func:`sys." +"breakpointhook` ne fait rien et s'interrompt immédiatement." #: ../Doc/using/cmdline.rst:550 msgid "" @@ -922,7 +987,7 @@ msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-i` option." msgstr "" -"Si elle est définie à une chaîne non vide, C'est équivalent à spécifier " +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " "l'option :option:`-i`." #: ../Doc/using/cmdline.rst:560 @@ -975,8 +1040,8 @@ msgid "" "seed the hashes of str, bytes and datetime objects." msgstr "" "Si cette variable n'est pas définie ou définie à ``random``, une valeur " -"aléatoire est utilisée pour saler les empreintes des objets chaines, bytes " -"et ``datetime``." +"aléatoire est utilisée pour saler les empreintes des objets de type chaine, " +"``bytes`` et ``datetime``." #: ../Doc/using/cmdline.rst:595 msgid "" @@ -986,7 +1051,7 @@ msgid "" msgstr "" "Si :envvar:`PYTHONHASHSEED` est définie à une valeur entière, elle est " "utilisée comme valeur de salage pour générer les empreintes des types " -"utilisant la randomisation du hachage." +"utilisant l'imprévisibilité du hachage." #: ../Doc/using/cmdline.rst:599 msgid "" @@ -1003,8 +1068,8 @@ msgid "" "The integer must be a decimal number in the range [0,4294967295]. " "Specifying the value 0 will disable hash randomization." msgstr "" -"Le nombre entier doit être écrit en base 10 et compris entre 0 et " -"4 294 967 295. Spécifier la valeur 0 désactive la randomisation des " +"Le nombre entier doit être écrit en base 10 et être compris entre 0 et " +"4 294 967 295. Spécifier la valeur 0 désactive l'imprévisibilité des " "empreintes." #: ../Doc/using/cmdline.rst:611 @@ -1040,7 +1105,7 @@ msgid "" "also specified. Files and pipes redirected through the standard streams are " "not affected." msgstr "" -"Sous Windows, l'encodage spécifié par cette variable est ignoré pour le " +"sous Windows, l'encodage spécifié par cette variable est ignoré pour le " "tampon des consoles interactives à moins que :envvar:" "`PYTHONLEGACYWINDOWSSTDIO` ne soit aussi spécifié. Les fichiers et tubes " "(*pipes* en anglais) redirigés vers les flux standards ne sont pas concernés." @@ -1051,7 +1116,7 @@ msgid "" "` to :data:`sys.path`." msgstr "" "Si elle est définie, Python n'ajoute pas le répertoire :data:`site-packages " -"utilisateur ` à :data:`sys.path`." +"propre à l'utilisateur ` à :data:`sys.path`." #: ../Doc/using/cmdline.rst:639 msgid "" @@ -1061,9 +1126,10 @@ msgid "" "for ``python setup.py install --user``." msgstr "" "Définit le répertoire :data:`base utilisateur `. Celui-ci " -"est utilisé pour déterminer le chemin du répertoire utilisateur :data:`site-" -"packages ` et :ref:`Installation alternative : le schéma " -"user ` pour ``python setup.py install --user``." +"est utilisé pour déterminer le chemin du :data:`répertoire site-packages " +"propre à l'utilisateur ` et des :ref:`schémas d'installation " +"de Distutils ` pour ``python setup.py install --" +"user``." #: ../Doc/using/cmdline.rst:651 msgid "" @@ -1072,7 +1138,7 @@ msgid "" "X." msgstr "" "Si cette variable d'environnement est définie, ``sys.argv[0]`` est définie à " -"la même valeur au lieu de la valeur fournie par l'exécutable. Ne fonctionne " +"cette valeur au lieu de la valeur fournie par l'exécutable. Ne fonctionne " "que sur Mac OS X." #: ../Doc/using/cmdline.rst:657 @@ -1083,8 +1149,8 @@ msgid "" msgstr "" "C'est équivalent à spécifier l'option :option:`-W`. Si la valeur est une " "chaîne séparée par des virgules, c'est équivalent à spécifier l'option :" -"option:`-W` plusieurs fois, auquel cas c'est la dernière de la liste qui " -"sera prise en compte." +"option:`-W` plusieurs fois. Dans ce cas, les filtres spécifiés en derniers " +"prennent le pas sur ceux qui les précèdent dans la liste." #: ../Doc/using/cmdline.rst:679 msgid "" @@ -1121,9 +1187,9 @@ msgid "" "how long each import takes. This is exactly equivalent to setting ``-X " "importtime`` on the command line." msgstr "" -"Si elle est définie et n'est pas une chaîne vide, Python affichera le temps " -"pris par les imports. C'est exactement équivalent à donner ``-X importtime`` " -"en ligne de commande." +"Si elle est définie et n'est pas une chaîne vide, Python affiche le temps " +"pris par les importations. C'est exactement équivalent à donner ``-X " +"importtime`` en ligne de commande." #: ../Doc/using/cmdline.rst:710 msgid "" @@ -1136,8 +1202,8 @@ msgstr "" #: ../Doc/using/cmdline.rst:718 msgid "Set the Python memory allocators and/or install debug hooks." msgstr "" -"Définit l'allocateur mémoire de Python ou installe des fonctions " -"automatiques de débogage." +"Définit l'allocateur mémoire de Python ou installe des points d'entrée " +"(*hooks* en anglais) de débogage." #: ../Doc/using/cmdline.rst:720 msgid "Set the family of memory allocators used by Python:" @@ -1148,6 +1214,8 @@ msgid "" "``default``: use the :ref:`default memory allocators `." msgstr "" +"``default``: utilise les :ref:`allocateurs de mémoire par défaut `." #: ../Doc/using/cmdline.rst:724 msgid "" @@ -1172,27 +1240,27 @@ msgstr "" #: ../Doc/using/cmdline.rst:731 msgid "Install debug hooks:" -msgstr "Installe des fonctions automatiques de débogage :" +msgstr "Installe des points d'entrée de débogage :" #: ../Doc/using/cmdline.rst:733 msgid "" "``debug``: install debug hooks on top of the :ref:`default memory allocators " "`." msgstr "" -"``debug`` : installe des fonctions automatiques de débogage de :ref:" -"`l'allocateur de mémoire par défaut `." +"``debug`` : installe des points d'entrée de débogage pour :ref:`l'allocateur " +"de mémoire par défaut `." #: ../Doc/using/cmdline.rst:735 msgid "``malloc_debug``: same as ``malloc`` but also install debug hooks" msgstr "" -"``malloc_debug``: identique à ``malloc`` mais installe aussi des fonctions " -"automatiques de débogage." +"``malloc_debug``: identique à ``malloc`` mais installe aussi des points " +"d'entrée de débogage." #: ../Doc/using/cmdline.rst:736 msgid "``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks" msgstr "" -"``pymalloc_debug``: identique à ``pymalloc`` mais installe aussi des " -"fonctions automatiques de débogage." +"``pymalloc_debug``: identique à ``pymalloc`` mais installe aussi des points " +"d'entrée de débogage." #: ../Doc/using/cmdline.rst:738 msgid "" @@ -1201,12 +1269,12 @@ msgid "" "memory allocators)." msgstr "" "Reportez-vous au chapitre :ref:`default-memory-allocators` et à la fonction :" -"c:func:`PyMem_SetupDebugHooks` (configure des fonctions de débogage sur les " -"allocateurs de mémoire de Python)." +"c:func:`PyMem_SetupDebugHooks` (configure des points d'entrée de débogage " +"sur les allocateurs de mémoire de Python)." #: ../Doc/using/cmdline.rst:742 msgid "Added the ``\"default\"`` allocator." -msgstr "" +msgstr "l'allocateur ``default`` a été ajouté." #: ../Doc/using/cmdline.rst:750 msgid "" @@ -1235,7 +1303,7 @@ msgid "" "This variable can now also be used on Python compiled in release mode. It " "now has no effect if set to an empty string." msgstr "" -"Cette variable peut maintenant être utilisée avec Python compilé en mode " +"cette variable peut maintenant être utilisée avec Python compilé en mode " "*release*. Elle n'a pas d'effet si elle est définie à une chaine vide." #: ../Doc/using/cmdline.rst:765 @@ -1259,13 +1327,13 @@ msgstr "" "Vous pouvez aussi activer ceci à l'exécution avec :func:`sys." "_enablelegacywindowsfsencoding()`." -#: ../Doc/using/cmdline.rst:772 ../Doc/using/cmdline.rst:786 -msgid "Availability: Windows" -msgstr "Disponibilité : Windows" +#: ../Doc/using/cmdline.rst:773 ../Doc/using/cmdline.rst:787 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." #: ../Doc/using/cmdline.rst:774 msgid "See :pep:`529` for more details." -msgstr "Voir la :pep:`529` pour plus d'informations." +msgstr "voir la :pep:`529` pour plus d'informations." #: ../Doc/using/cmdline.rst:779 msgid "" @@ -1292,6 +1360,10 @@ msgid "" "to skip coercing the legacy ASCII-based C and POSIX locales to a more " "capable UTF-8 based alternative." msgstr "" +"Si elle est définie à la valeur ``0``, l'application en ligne de commande " +"principale Python ne prend pas en compte les configurations régionales C et " +"POSIX à base ASCII, mais bascule sur une alternative basée sur l'UTF-8 qui " +"doit posséder plus de possibilités." #: ../Doc/using/cmdline.rst:797 msgid "" @@ -1303,18 +1375,26 @@ msgid "" "``LC_CTYPE`` category in the order listed before loading the interpreter " "runtime:" msgstr "" +"Si cette variable n'est pas définie (ou est définie à une valeur autre que " +"``0``), que la variable d'environnement de configuration régionale " +"``LC_ALL`` est également non définie et que la configuration régionale " +"indiquée dans la catégorie ``LC_TYPE`` est soit la région par défaut ``C``, " +"soit la région ``POSIX`` qui demande explicitement de l'ASCII, alors " +"l'interpréteur en ligne de commande Python essaie de configurer les " +"paramètres régionaux pour la catégorie ``LC_TYPE`` dans l'ordre suivant " +"avant de charger l'exécutable de l'interpréteur :" #: ../Doc/using/cmdline.rst:805 msgid "``C.UTF-8``" -msgstr "" +msgstr "``C.UTF-8``" #: ../Doc/using/cmdline.rst:806 msgid "``C.utf8``" -msgstr "" +msgstr "``C.utf8``" #: ../Doc/using/cmdline.rst:807 msgid "``UTF-8``" -msgstr "" +msgstr "``UTF-8``" #: ../Doc/using/cmdline.rst:809 msgid "" @@ -1328,6 +1408,17 @@ msgid "" "in operations that query the environment rather than the current C locale " "(such as Python's own :func:`locale.getdefaultlocale`)." msgstr "" +"Si la définition d'une des configurations régionales fonctionne, la variable " +"d'environnement ``LC_TYPE`` est aussi définie ainsi dans l'environnement du " +"processus avant que l'exécutable Python ne soit initialisé. Ceci assure que, " +"en plus d'être vue par l'interpréteur lui-même et tous les autres composants " +"prenant en charge la configuration régionale dans le même processus (telle " +"que la bibliothèque GNU ``readline``), la configuration mise à jour est " +"aussi valable pour les sous-processus (indépendamment du fait qu'ils " +"utilisent un interpréteur Python ou non) ainsi que pour les opérations qui " +"font appel à l'environnement (qui utiliseraient sinon la configuration " +"régionale C courante, tel que c'est le cas pour la propre fonction Python :" +"func:`locale.getdefaultlocale`)." #: ../Doc/using/cmdline.rst:819 msgid "" @@ -1338,6 +1429,13 @@ msgid "" "in any other locale). This stream handling behavior can be overridden using :" "envvar:`PYTHONIOENCODING` as usual." msgstr "" +"La configuration d'une de ces variables régionales (soit explicitement, soit " +"*via* le mécanisme décrit ci-dessus) active automatiquement " +"``surrogateescape`` pour la :ref:`gestion des erreurs ` de :" +"data:`sys.stdin` et :data:`sys.stdout` (:data:`sys.stderr` continue " +"d'utiliser ``backslashreplace`` comme pour toute autre configuration " +"régionale). Ce comportement relatif à la gestion des flux standards peut " +"être surchargé, comme d'habitude, par :envvar:`PYTHONIOENCODING`." #: ../Doc/using/cmdline.rst:826 msgid "" @@ -1346,6 +1444,10 @@ msgid "" "activates, or else if a locale that *would* have triggered coercion is still " "active when the Python runtime is initialized." msgstr "" +"À fin de débogage, définir ``PYTHONCOERCECLOCALE=warn`` indique à Python " +"d'émettre les messages d'avertissement sur ``stderr`` si la configuration " +"régionale est activée, ou si une configuration régionale qui *aurait* activé " +"est toujours active quand l'interpréteur Python est initialisé." #: ../Doc/using/cmdline.rst:831 msgid "" @@ -1355,14 +1457,20 @@ msgid "" "order to force the interpreter to use ``ASCII`` instead of ``UTF-8`` for " "system interfaces." msgstr "" +"Notez également que même si la contrainte sur la configuration régionale est " +"désactivée, ou si elle ne trouve pas une configuration satisfaisante et " +"échoue, :envvar:`PYTHONUTF8` s'active par défaut avec une configuration " +"régionale par défaut à base ASCII. Ces fonctionnalités doivent être " +"désactivées pour forcer l'interpréteur à utiliser ``ASCII`` en lieu et place " +"de ``UTF-8`` pour les interfaces avec le système." -#: ../Doc/using/cmdline.rst:837 ../Doc/using/cmdline.rst:898 -msgid "Availability: \\*nix" -msgstr "Disponibilité : Systèmes de type UNIX" +#: ../Doc/using/cmdline.rst:838 ../Doc/using/cmdline.rst:899 +msgid ":ref:`Availability `: \\*nix." +msgstr ":ref:`Disponibilité ` : systèmes de type UNIX." #: ../Doc/using/cmdline.rst:839 msgid "See :pep:`538` for more details." -msgstr "Voir la :pep:`538` pour plus d'informations." +msgstr "voir la :pep:`538` pour plus d'informations." #: ../Doc/using/cmdline.rst:845 msgid "" @@ -1378,16 +1486,21 @@ msgid "" "used as the text encoding for system interfaces, regardless of the current " "locale setting." msgstr "" +"Si elle vaut ``1``, active le mode UTF-8 pour l'interpréteur, où ``UTF-8`` " +"est utilisé pour encoder le texte en interface avec le système, quelle que " +"soit la configuration régionale en vigueur." #: ../Doc/using/cmdline.rst:856 msgid "This means that:" -msgstr "" +msgstr "Ce qui signifie que :" #: ../Doc/using/cmdline.rst:858 msgid "" ":func:`sys.getfilesystemencoding()` returns ``'UTF-8'`` (the locale encoding " "is ignored)." msgstr "" +":func:`sys.getfilesystemencoding()` renvoie ``'UTF-8'`` (l'encodage défini " +"par la configuration régionale est ignoré)." #: ../Doc/using/cmdline.rst:860 msgid "" @@ -1395,6 +1508,9 @@ msgid "" "encoding is ignored, and the function's ``do_setlocale`` parameter has no " "effect)." msgstr "" +":func:`locale.getpreferredencoding()` renvoie ``'UTF-8'`` (l'encodage défini " +"par la configuration régionale est ignoré et le paramètre ``do_setlocale`` " +"de la fonction n'a aucun effet)." #: ../Doc/using/cmdline.rst:863 msgid "" @@ -1404,22 +1520,33 @@ msgid "" "(:data:`sys.stderr` continues to use ``backslashreplace`` as it does in the " "default locale-aware mode)" msgstr "" +":data:`sys.stdin`, :data:`sys.stdout` et :data:`sys.stderr` utilisent tous " +"l'UTF-8 pour l'encodage du texte, avec le :ref:`gestionnaire d'erreurs " +"` ``surrogateescape`` activé pour :data:`sys.stdin` et :data:" +"`sys.stdout` (:data:`sys.stderr` continue d'utiliser ``backslashreplace`` " +"comme pour le mode par défaut où il prend en compte la configuration " +"régionale)." #: ../Doc/using/cmdline.rst:869 msgid "" "As a consequence of the changes in those lower level APIs, other higher " "level APIs also exhibit different default behaviours:" msgstr "" +"En raison des changements apportés à ces API de bas-niveau, les API de haut-" +"niveau ont un comportement par défaut différent :" #: ../Doc/using/cmdline.rst:872 msgid "" "Command line arguments, environment variables and filenames are decoded to " "text using the UTF-8 encoding." msgstr "" +"les arguments en ligne de commande, les variables d'environnement et les " +"noms de fichiers sont décodés en texte en utilisant l'UTF-8." #: ../Doc/using/cmdline.rst:874 msgid ":func:`os.fsdecode()` and :func:`os.fsencode()` use the UTF-8 encoding." msgstr "" +":func:`os.fsdecode()` et :func:`os.fsencode()` utilisent l'encodage UTF-8." #: ../Doc/using/cmdline.rst:875 msgid "" @@ -1428,6 +1555,11 @@ msgid "" "default so that attempting to open a binary file in text mode is likely to " "raise an exception rather than producing nonsense data." msgstr "" +":func:`open()`, :func:`io.open()` et :func:`codecs.open()` utilisent " +"l'encodage UTF-8 par défaut. Cependant, elles utilisent le gestionnaire " +"d'erreurs \"strict\" par défaut, de manière à ce qu'ouvrir un fichier " +"binaire en mode texte lève une exception plutôt que de produire de la donnée " +"sans aucun sens." #: ../Doc/using/cmdline.rst:880 msgid "" @@ -1435,16 +1567,24 @@ msgid "" "envvar:`PYTHONIOENCODING` (just as they can be in the default locale-aware " "mode)." msgstr "" +"Notez que la configuration des flux standards en mode UTF-8 peut être " +"surchargée par :envvar:`PYTHONIOENCODING` (de la même manière qu'elles " +"peuvent l'être dans le mode par défaut qui est configuré pour la région " +"locale)." #: ../Doc/using/cmdline.rst:884 msgid "If set to ``0``, the interpreter runs in its default locale-aware mode." msgstr "" +"Si elle vaut ``0``, l'interpréteur fonctionne dans le mode configuré pour la " +"région locale (mode par défaut)." #: ../Doc/using/cmdline.rst:886 msgid "" "Setting any other non-empty string causes an error during interpreter " "initialisation." msgstr "" +"Définir une valeur autre (non vide) entraine une erreur pendant " +"l'initialisation de l'interpréteur." #: ../Doc/using/cmdline.rst:889 msgid "" @@ -1455,14 +1595,21 @@ msgid "" "such legacy locales, the interpreter will default to enabling UTF-8 mode " "unless explicitly instructed not to do so." msgstr "" +"Si cette variable d'environnement n'est pas définie, l'interpréteur se " +"configure pour utiliser la configuration régionale en cours, *à moins que* " +"cette configuration régionale ne soit identifiée comme ASCII (comme décrit " +"pour :envvar:`PYTHONCOERCECLOCALE`), et que soit la contrainte est " +"désactivée, soit elle échoue. Dans cette configuration régionale, " +"l'interpréteur active par défaut le mode UTF-8 à moins que vous n'indiquiez " +"explicitement de ne pas le faire." #: ../Doc/using/cmdline.rst:896 msgid "Also available as the :option:`-X` ``utf8`` option." -msgstr "" +msgstr "Également disponible en tant qu'option :option:`-X` ``utf8``." #: ../Doc/using/cmdline.rst:900 msgid "See :pep:`540` for more details." -msgstr "Voir la :pep:`540` pour plus d'informations." +msgstr "voir la :pep:`540` pour plus d'informations." #: ../Doc/using/cmdline.rst:905 msgid "Debug-mode variables" @@ -1558,7 +1705,7 @@ msgstr "" #~ "Déclenche une exception au lieu d'afficher un message d'avertissement." #~ msgid "The full form of argument is::" -#~ msgstr "La forme complète de l'argument est : ::" +#~ msgstr "La forme complète de l'argument est ::" #~ msgid "" #~ "Here, *action* is as explained above but only applies to messages that " diff --git a/using/mac.po b/using/mac.po index 35c904f1f..f36571290 100644 --- a/using/mac.po +++ b/using/mac.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-07-31 18:44+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-06-12 14:38+0200\n" +"PO-Revision-Date: 2018-11-23 10:07+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" #: ../Doc/using/mac.rst:6 msgid "Using Python on a Macintosh" @@ -24,7 +25,7 @@ msgstr "Auteur" #: ../Doc/using/mac.rst:8 msgid "Bob Savage " -msgstr "" +msgstr "Bob Savage " #: ../Doc/using/mac.rst:11 msgid "" @@ -35,7 +36,7 @@ msgstr "" "Python sur un Macintosh exécutant Mac OS X est en principe très similaire à " "Python sur n'importe quelle autre plateforme Unix, mais il y a un certain " "nombre de fonctionnalités additionnelle telle que l'IDE et le gestionnaire " -"de packages qui méritent d'être soulignées." +"de paquets qui méritent d'être soulignées." #: ../Doc/using/mac.rst:18 msgid "Getting and Installing MacPython" @@ -50,10 +51,10 @@ msgid "" "CPU's, is available there." msgstr "" "Mac OS X 10.8 contient déjà Python 2.7 pré-installé par Apple. Si vous le " -"souhaitez,vous êtes invités à installer la version la plus récente de Python " -"3 à partir du site de Python (https://www.python.org). Une version \"binaire " -"universelle\" de Python, qui s'exécute nativement sur les nouveaux " -"processeurs Intel de Macet les processeurs PPC, CPUs hérités de Mac, y est " +"souhaitez, vous êtes invités à installer la version la plus récente de " +"Python 3 à partir du site de Python (https://www.python.org). Une version " +"\"binaire universelle\" de Python, qui s'exécute nativement sur les nouveaux " +"processeurs Intel de Mac et les processeurs PPC, CPUs hérités de Mac, y est " "disponible." #: ../Doc/using/mac.rst:26 @@ -61,13 +62,20 @@ msgid "What you get after installing is a number of things:" msgstr "Vous obtiendrez un certain nombre de choses après installation:" #: ../Doc/using/mac.rst:28 +#, fuzzy msgid "" -"A :file:`MacPython 3.6` folder in your :file:`Applications` folder. In here " -"you find IDLE, the development environment that is a standard part of " -"official Python distributions; PythonLauncher, which handles double-clicking " -"Python scripts from the Finder; and the \"Build Applet\" tool, which allows " -"you to package Python scripts as standalone applications on your system." -msgstr "" +"A :file:`Python 3.7` folder in your :file:`Applications` folder. In here you " +"find IDLE, the development environment that is a standard part of official " +"Python distributions; PythonLauncher, which handles double-clicking Python " +"scripts from the Finder; and the \"Build Applet\" tool, which allows you to " +"package Python scripts as standalone applications on your system." +msgstr "" +"Un dossier :file:`MacPython 3.6` dans votre dossier :file:`Applications`. " +"Dedans vous trouverez **IDLE**, l'environnement de développement qui fait " +"partie des distributions Python officielles ; **PythonLauncher**, qui gère " +"le lancement de scripts Python depuis le ``Finder`` ; et l'outil **\"Build " +"Applet\"**, qui permets d'empaqueter des scripts Python en tant " +"qu'applications à part entière sur votre système." #: ../Doc/using/mac.rst:34 msgid "" @@ -76,6 +84,11 @@ msgid "" "shell path. To uninstall MacPython, you can simply remove these three " "things. A symlink to the Python executable is placed in /usr/local/bin/." msgstr "" +"Un **framework** :file:`/Library/Frameworks/Python.framework`, qui inclut " +"l’exécutable Python et ses bibliothèques. L’installateur ajoute ce chemin à " +"votre **PATH**. Pour désinstaller MacPython, vous pouvez simplement " +"supprimer ces trois choses. Un lien symbolique vers l'exécutable Python est " +"placé dans ``/usr/local/bin/``." #: ../Doc/using/mac.rst:39 msgid "" @@ -87,6 +100,14 @@ msgid "" "but functional Python installations on your computer, so it will be " "important that your paths and usages are consistent with what you want to do." msgstr "" +"Le **build** Python fourni par Apple est installé dans :file:`/System/" +"Library/Frameworks/Python.framework` et :file:`/usr/bin/python`. Vous ne " +"devriez jamais les modifier ou supprimer, car ils sont contrôlés et utilisés " +"par Apple (ou d'autres logiciels). Rappelez vous que si vous choisissez " +"d'installer un Python plus récent depuis python.org, vous aurez deux " +"installations de Python différentes et fonctionnelles sur votre ordinateur, " +"il est donc important que vos chemins et utilisations soit cohérentes avec " +"ce que vous voulez faire." #: ../Doc/using/mac.rst:47 msgid "" @@ -94,16 +115,22 @@ msgid "" "you are completely new to Python you should start reading the tutorial " "introduction in that document." msgstr "" +"**IDLE** inclut un menu d'aide qui vous permet d’accéder à la documentation " +"Python. Si vous êtes entièrement novice, vous devriez commencer par lire le " +"tutoriel d'introduction dans ce document." #: ../Doc/using/mac.rst:51 msgid "" "If you are familiar with Python on other Unix platforms you should read the " "section on running Python scripts from the Unix shell." msgstr "" +"Si vous êtes familier avec Python sur d'autres plateformes Unix, vous " +"devriez lire la section sur comment exécuter des scripts Python depuis un " +"shell Unix." #: ../Doc/using/mac.rst:56 msgid "How to run a Python script" -msgstr "" +msgstr "Comment exécuter un script Python" #: ../Doc/using/mac.rst:58 msgid "" @@ -111,6 +138,9 @@ msgid "" "integrated development environment, see section :ref:`ide` and use the Help " "menu when the IDE is running." msgstr "" +"Le meilleur moyen de démarrer avec Python sur Max OS X est d'utiliser " +"l'environnement de développement intégré **IDLE**, voir la section :ref:" +"`ide` et utilisez le menu d'aide (**Help**) quand l'``IDE`` est lancé." #: ../Doc/using/mac.rst:62 msgid "" @@ -124,20 +154,33 @@ msgid "" "program:`Gvim` (http://macvim-dev.github.io/macvim/) and :program:`Aquamacs` " "(http://aquamacs.org/)." msgstr "" +"Si vous souhaitez exécuter des scripts Python depuis l'invite de commande " +"dans la fenêtre Terminal, ou depuis le **Finder**, vous avez d'abord besoin " +"d'un éditeur pour créer votre script. Max OS X propose un certain nombre " +"d’éditeurs shell Unix standards, dont :program:`vim` et :program:`emacs`. Si " +"vous voulez une interface plus Mac, :program:`BBEdit` ou :program:" +"`TextWrangler` de Bare Bones Software (voir http://www.barebones.com/" +"products/bbedit/index.html) sont de bons choix, tout comme :program:" +"`TextMate` (voir https://macromates.com/). D'autres éditeurs existent comme :" +"program:`Gvim` (http://macvim-dev.github.io/macvim/) et :program:`Aquamacs` " +"(http://aquamacs.org/)." #: ../Doc/using/mac.rst:72 msgid "" "To run your script from the Terminal window you must make sure that :file:`/" "usr/local/bin` is in your shell search path." msgstr "" +"Pour exécuter votre script depuis la fenêtre Terminal, vous devez vous " +"assurer que :file:`/usr/local/bin` est dans le chemin de recherche de votre " +"shell (**PATH**)." #: ../Doc/using/mac.rst:75 msgid "To run your script from the Finder you have two options:" -msgstr "" +msgstr "Pour exécuter votre script depuis le Finder vous avez deux options :" #: ../Doc/using/mac.rst:77 msgid "Drag it to :program:`PythonLauncher`" -msgstr "" +msgstr "Glissez-le vers :program:`PythonLauncher`" #: ../Doc/using/mac.rst:79 msgid "" @@ -147,10 +190,17 @@ msgid "" "script is launched. Option-dragging allows you to change these for one " "invocation, or use its Preferences menu to change things globally." msgstr "" +"Sélectionnez :program:`PythonLauncher` en tant qu'application par défaut " +"pour ouvrir votre script (ou n'importe quel script ``.py``) depuis la " +"fenêtre **info** de votre Finder puis double-cliquez votre script. :program:" +"`PythonLauncher` a des préférences variées pour contrôler comment votre " +"script est exécuté. Glisser des options permets de les changer pour une " +"invocation, ou utilisez le menu Préférences pour changer les choses " +"globalement." #: ../Doc/using/mac.rst:89 msgid "Running scripts with a GUI" -msgstr "" +msgstr "Lancer des scripts avec une interface graphique" #: ../Doc/using/mac.rst:91 msgid "" @@ -159,15 +209,24 @@ msgid "" "anything that has a GUI) need to be run in a special way. Use :program:" "`pythonw` instead of :program:`python` to start such scripts." msgstr "" +"Avec les anciennes versions de Python, il y a une bizarrerie Max OS X dont " +"vous devez être au courant : les programmes qui communiquent avec le " +"gestionnaires de fenêtre **Aqua** (en d'autres termes, tout ce qui a une " +"interface graphique) doivent être exécutés de façon spécifique. Utilisez :" +"program:`pythonw` au lieu de :program:`python` pour exécuter ce genre de " +"scripts." #: ../Doc/using/mac.rst:96 +#, fuzzy msgid "" -"With Python 3.6, you can use either :program:`python` or :program:`pythonw`." +"With Python 3.7, you can use either :program:`python` or :program:`pythonw`." msgstr "" +"Avec Python 3.6, vous pouvez utilisez :program:`python` ou :program:" +"`pythonw`." #: ../Doc/using/mac.rst:100 msgid "Configuration" -msgstr "" +msgstr "Configuration" #: ../Doc/using/mac.rst:102 msgid "" @@ -177,16 +236,24 @@ msgid "" "or :file:`.cshrc` at startup. You need to create a file :file:`~/.MacOSX/" "environment.plist`. See Apple's Technical Document QA1067 for details." msgstr "" +"Python sur OS X respecte tous les standards Unix pour les variables " +"d'environnement comme :envvar:`PYTHONPATH`, mais définir ces variables pour " +"des programmes exécutés depuis le Finder n'est pas standard car le Finder ne " +"lit pas votre :file:`.profile` ou :file:`.cshrc` au démarrage. Vous devez " +"créer un fichier :file:`~/.MacOSX/environment.plist`. Voir le document " +"technique d'Apple QA1067 pour plus de détails." #: ../Doc/using/mac.rst:109 msgid "" "For more information on installation Python packages in MacPython, see " "section :ref:`mac-package-manager`." msgstr "" +"Pour plus d'informations sur l'installation de paquets Python dans " +"**MacPython**, voir la section :ref:`mac-package-manager`." #: ../Doc/using/mac.rst:116 msgid "The IDE" -msgstr "" +msgstr "L'*IDE*" #: ../Doc/using/mac.rst:118 msgid "" @@ -194,43 +261,57 @@ msgid "" "introduction to using IDLE can be found at http://www.hashcollision.org/hkn/" "python/idle_intro/index.html." msgstr "" +"**MacPython** est livré avec l'environnement de développement standard " +"**IDLE**. Une bonne introduction sur l’utilisation d'**IDLE** peut être " +"trouvée à http://www.hashcollision.org/hkn/python/idle_intro/index.html." #: ../Doc/using/mac.rst:126 msgid "Installing Additional Python Packages" -msgstr "" +msgstr "Installation de paquets Python additionnels" #: ../Doc/using/mac.rst:128 msgid "There are several methods to install additional Python packages:" msgstr "" +"Il y a plusieurs méthodes pour installer des paquets Python supplémentaires :" #: ../Doc/using/mac.rst:130 msgid "" "Packages can be installed via the standard Python distutils mode (``python " "setup.py install``)." msgstr "" +"Les paquets peuvent être installés en utilisant **distutils** (``python " +"setup.py install``)." #: ../Doc/using/mac.rst:133 msgid "" "Many packages can also be installed via the :program:`setuptools` extension " "or :program:`pip` wrapper, see https://pip.pypa.io/." msgstr "" +"Beaucoup de paquets peuvent aussi être installés via l'extension :program:" +"`setuptools` ou :program:`pip`, voir https://pip.pypa.io/." #: ../Doc/using/mac.rst:138 msgid "GUI Programming on the Mac" -msgstr "" +msgstr "Programmation d'interface graphique sur le Mac" #: ../Doc/using/mac.rst:140 msgid "" "There are several options for building GUI applications on the Mac with " "Python." msgstr "" +"Il y a plusieurs options pour construire des applications avec interface " +"graphique sur le Mac avec Python." #: ../Doc/using/mac.rst:142 msgid "" "*PyObjC* is a Python binding to Apple's Objective-C/Cocoa framework, which " "is the foundation of most modern Mac development. Information on PyObjC is " -"available from https://pythonhosted.org/pyobjc/." +"available from https://pypi.org/project/pyobjc/." msgstr "" +"*PyObjC* est un **binding** Python vers le **framework** Objective-C/Cocoa " +"d'Apple, qui est la base de la plupart des développements modernes sur Mac. " +"Des informations sur PyObjC sont disponible à https://pypi.org/project/" +"pyobjc/." #: ../Doc/using/mac.rst:146 msgid "" @@ -239,6 +320,12 @@ msgid "" "bundled with OS X by Apple, and the latest version can be downloaded and " "installed from https://www.activestate.com; it can also be built from source." msgstr "" +"La boîte à outils standard de Python pour des interfaces graphique est :mod:" +"`tkinter`, basé sur la boite a outils multi-plateformes **Tk** (https://www." +"tcl.tk). Une version native **Aqua** de **Tk** est empaquetée avec OS X par " +"Apple, et la dernière version peut être téléchargée et installée depuis " +"https://www.activestate.com ; elle peut aussi être construite depuis les " +"sources." #: ../Doc/using/mac.rst:151 msgid "" @@ -246,6 +333,9 @@ msgid "" "on Mac OS X. Packages and documentation are available from https://www." "wxpython.org." msgstr "" +"*wxPython* est une boîte à outils multi-plateformes pour interfaces " +"graphique populaire qui tourne nativement sur Mac OS X. Les paquets et la " +"documentation sont disponibles sur https://www.wxpython.org." #: ../Doc/using/mac.rst:154 msgid "" @@ -253,10 +343,13 @@ msgid "" "Mac OS X. More information can be found at https://riverbankcomputing.com/" "software/pyqt/intro." msgstr "" +"*PyQt* est une boîte à outils multi-plateformes pour interfaces graphique " +"populaire qui tourne nativement sur Mac OS X. Plus d'informations disponible " +"sur https://riverbankcomputing.com/software/pyqt/intro." #: ../Doc/using/mac.rst:160 msgid "Distributing Python Applications on the Mac" -msgstr "" +msgstr "Distribuer des Applications Python sur le Mac" #: ../Doc/using/mac.rst:162 msgid "" @@ -265,6 +358,11 @@ msgid "" "Mac application. This tool, however, is not robust enough to distribute " "Python applications to other users." msgstr "" +"L'outil \"Build Applet\" qui est placé dans le dossier MacPython 3.6 est " +"suffisant pour empaqueter des petits scripts Python sur votre propre machine " +"et pour les exécuter en tant qu'application Mac standard. Cependant, cet " +"outil n'est pas assez robuste pour distribuer des applications Python à " +"d'autres utilisateurs." #: ../Doc/using/mac.rst:167 msgid "" @@ -272,6 +370,9 @@ msgid "" "is :program:`py2app`. More information on installing and using py2app can be " "found at http://undefined.org/python/#py2app." msgstr "" +"L'outil standard pour déployer des applications Python sur le Mac est :" +"program:`py2app`. Plus d'information sur l'installation et l'utilisation de " +"**py2app** sur http://undefined.org/python/#py2app." #: ../Doc/using/mac.rst:173 msgid "Other Resources" @@ -282,15 +383,17 @@ msgid "" "The MacPython mailing list is an excellent support resource for Python users " "and developers on the Mac:" msgstr "" +"La liste de diffusion courriel **MacPython** est une excellente ressource " +"support pour les utilisateurs et développeurs Python sur Mac :" #: ../Doc/using/mac.rst:178 msgid "https://www.python.org/community/sigs/current/pythonmac-sig/" -msgstr "" +msgstr "https://www.python.org/community/sigs/current/pythonmac-sig/" #: ../Doc/using/mac.rst:180 msgid "Another useful resource is the MacPython wiki:" -msgstr "" +msgstr "Une autre ressource utile est le wiki **MacPython** :" #: ../Doc/using/mac.rst:182 msgid "https://wiki.python.org/moin/MacPython" -msgstr "" +msgstr "https://wiki.python.org/moin/MacPython" diff --git a/using/unix.po b/using/unix.po index d80ce3cd3..2097ebac1 100644 --- a/using/unix.po +++ b/using/unix.po @@ -5,26 +5,27 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\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" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2018-12-14 10:10+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" #: ../Doc/using/unix.rst:7 msgid "Using Python on Unix platforms" -msgstr "" +msgstr "Utilisation de Python sur les plateformes Unix" #: ../Doc/using/unix.rst:13 msgid "Getting and installing the latest version of Python" -msgstr "" +msgstr "Récupérer et installer la dernière version de Python" #: ../Doc/using/unix.rst:16 msgid "On Linux" -msgstr "" +msgstr "Sur Linux" #: ../Doc/using/unix.rst:18 msgid "" @@ -33,6 +34,11 @@ msgid "" "use that are not available on your distro's package. You can easily compile " "the latest version of Python from source." msgstr "" +"Python est pré-installé sur la plupart des distributions Linux, et est " +"disponible en paquet sur toutes les autres. Cependant, il y a certaines " +"fonctionnalités que vous voudrez utiliser qui ne seront pas disponibles sur " +"le paquet de votre distribution. Vous pouvez facilement compiler la dernière " +"version de Python depuis les sources." #: ../Doc/using/unix.rst:23 msgid "" @@ -40,60 +46,67 @@ msgid "" "repositories as well, you can easily make packages for your own distro. " "Have a look at the following links:" msgstr "" +"Dans le cas où Python n'est pas pré-installé et n'est pas dans les dépôts " +"non plus, vous pouvez facilement faire les paquets pour votre propre " +"distribution. Jetez un œil à ces liens :" #: ../Doc/using/unix.rst:29 msgid "https://www.debian.org/doc/manuals/maint-guide/first.en.html" -msgstr "" +msgstr "https://www.debian.org/doc/manuals/maint-guide/first.fr.html" #: ../Doc/using/unix.rst:30 msgid "for Debian users" -msgstr "" +msgstr "pour les utilisateurs de Debian" #: ../Doc/using/unix.rst:31 msgid "https://en.opensuse.org/Portal:Packaging" -msgstr "" +msgstr "https://en.opensuse.org/Portal:Packaging" #: ../Doc/using/unix.rst:32 msgid "for OpenSuse users" -msgstr "" +msgstr "pour les utilisateurs d'OpenSuse" #: ../Doc/using/unix.rst:33 msgid "" "https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/" "RPM_Guide/ch-creating-rpms.html" msgstr "" +"https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/" +"RPM_Guide/ch-creating-rpms.html" #: ../Doc/using/unix.rst:34 msgid "for Fedora users" -msgstr "" +msgstr "pour les utilisateurs de Fedora" #: ../Doc/using/unix.rst:35 msgid "http://www.slackbook.org/html/package-management-making-packages.html" -msgstr "" +msgstr "http://www.slackbook.org/html/package-management-making-packages.html" #: ../Doc/using/unix.rst:36 msgid "for Slackware users" -msgstr "" +msgstr "pour les utilisateurs de Slackware" #: ../Doc/using/unix.rst:40 msgid "On FreeBSD and OpenBSD" -msgstr "" +msgstr "Sur FreeBSD et OpenBSD" #: ../Doc/using/unix.rst:42 msgid "FreeBSD users, to add the package use::" -msgstr "" +msgstr "Utilisateurs de FreeBSD, pour installer le paquet, utilisez ::" #: ../Doc/using/unix.rst:46 msgid "OpenBSD users, to add the package use::" -msgstr "" +msgstr "Utilisateurs d'OpenBSD, pour installer le paquet, utilisez ::" #: ../Doc/using/unix.rst:52 msgid "For example i386 users get the 2.5.1 version of Python using::" msgstr "" +"Par exemple les utilisateurs d'``i386`` récupèrent la version 2.5.1 de " +"Python en faisant ::" #: ../Doc/using/unix.rst:58 msgid "On OpenSolaris" -msgstr "" +msgstr "Sur OpenSolaris" #: ../Doc/using/unix.rst:60 msgid "" @@ -101,10 +114,13 @@ msgid "" "versions of Python are available and can be installed with e.g. ``pkgutil -i " "python27``." msgstr "" +"Vous pouvez récupérer Python depuis `OpenCSW `_. " +"Différentes versions de Python sont disponibles et peuvent être installées. " +"Exemple : ``pkgutil -i python27``." #: ../Doc/using/unix.rst:67 msgid "Building Python" -msgstr "" +msgstr "Compiler Python" #: ../Doc/using/unix.rst:69 msgid "" @@ -114,10 +130,15 @@ msgid "" "devguide.python.org/setup/#getting-the-source-code>`_. (If you want to " "contribute patches, you will need a clone.)" msgstr "" +"Si vous voulez compiler CPython vous-même, la première chose à faire est de " +"récupérer le `code source `_. Vous " +"pouvez télécharger la dernière version ou faire un `clone `_. (Si vous voulez contribuer à " +"des correctifs, il vous faut un clone.)" #: ../Doc/using/unix.rst:75 msgid "The build process consists in the usual ::" -msgstr "" +msgstr "Le processus de compilation est le suivant ::" #: ../Doc/using/unix.rst:81 msgid "" @@ -125,6 +146,9 @@ msgid "" "are extensively documented in the :source:`README.rst` file in the root of " "the Python source tree." msgstr "" +"Les options de configuration et mises en garde pour certaines plateformes " +"Unix spécifiques sont largement documentées dans le fichier :source:`README." +"rst` à la racine du dossier des sources Python." #: ../Doc/using/unix.rst:87 msgid "" @@ -132,10 +156,13 @@ msgid "" "``make altinstall`` is therefore recommended instead of ``make install`` " "since it only installs :file:`{exec_prefix}/bin/python{version}`." msgstr "" +"``make install`` peut écraser ou cacher le binaire :file:`python3`. ``make " +"altinstall`` est donc recommandé à la place de ``make install`` puisqu'il " +"installe seulement :file:`{exec_prefix}/bin/python{version}`." #: ../Doc/using/unix.rst:93 msgid "Python-related paths and files" -msgstr "" +msgstr "Fichiers et chemins liés à Python" #: ../Doc/using/unix.rst:95 msgid "" @@ -144,15 +171,21 @@ msgid "" "${exec_prefix}``) are installation-dependent and should be interpreted as " "for GNU software; they may be the same." msgstr "" +"Ceux-ci sont sujets à des différences en fonction des conventions locales " +"d'installation ; :envvar:`prefix` (``${prefix}``) et :envvar:`exec_prefix` " +"(``${exec_prefix}``) sont dépendants de l’installation et doivent être " +"interprétés comme pour des logiciels GNU ; ils peuvent être égaux." #: ../Doc/using/unix.rst:100 msgid "" "For example, on most Linux systems, the default for both is :file:`/usr`." msgstr "" +"Par exemple, sur la plupart des systèmes Linux, leur valeur par défaut est :" +"file:`/usr`." #: ../Doc/using/unix.rst:103 msgid "File/directory" -msgstr "" +msgstr "Fichier/dossier" #: ../Doc/using/unix.rst:103 msgid "Meaning" @@ -160,50 +193,60 @@ msgstr "Signification" #: ../Doc/using/unix.rst:105 msgid ":file:`{exec_prefix}/bin/python3`" -msgstr "" +msgstr ":file:`{exec_prefix}/bin/python3`" #: ../Doc/using/unix.rst:105 msgid "Recommended location of the interpreter." -msgstr "" +msgstr "Emplacement recommandé de l'interpréteur." #: ../Doc/using/unix.rst:107 msgid "" ":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" "python{version}`" msgstr "" +":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" +"python{version}`" #: ../Doc/using/unix.rst:107 msgid "" "Recommended locations of the directories containing the standard modules." -msgstr "" +msgstr "Emplacements recommandés des dossiers contenant les modules standards." #: ../Doc/using/unix.rst:110 msgid "" ":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" "python{version}`" msgstr "" +":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" +"python{version}`" #: ../Doc/using/unix.rst:110 msgid "" "Recommended locations of the directories containing the include files needed " "for developing Python extensions and embedding the interpreter." msgstr "" +"Emplacements recommandés des dossiers contenant les entêtes nécessaires au " +"développement d'extensions Python et à l'intégration de l'interpréteur." #: ../Doc/using/unix.rst:118 msgid "Miscellaneous" -msgstr "" +msgstr "Divers" #: ../Doc/using/unix.rst:120 msgid "" "To easily use Python scripts on Unix, you need to make them executable, e.g. " "with" msgstr "" +"Pour utiliser facilement des scripts Python sur Unix, vous devez les rendre " +"exécutables, par exemple avec" #: ../Doc/using/unix.rst:127 msgid "" "and put an appropriate Shebang line at the top of the script. A good choice " "is usually ::" msgstr "" +"et mettre un *shebang* approprié en haut du script. Un bon choix est " +"généralement ::" #: ../Doc/using/unix.rst:132 msgid "" @@ -211,23 +254,33 @@ msgid "" "However, some Unices may not have the :program:`env` command, so you may " "need to hardcode ``/usr/bin/python3`` as the interpreter path." msgstr "" +"qui cherche l’interpréteur Python dans le :envvar:`PATH` complet. Cependant, " +"certains systèmes Unix peuvent ne pas avoir la commande :program:`env`, donc " +"vous devrez littéralement écrire ``/usr/bin/python3`` en tant que chemin " +"d’interpréteur." #: ../Doc/using/unix.rst:136 msgid "" "To use shell commands in your Python scripts, look at the :mod:`subprocess` " "module." msgstr "" +"Pour utiliser des commandes *shell* dans vos scripts Python, regardez le " +"module :mod:`subprocess`." #: ../Doc/using/unix.rst:140 msgid "Editors and IDEs" -msgstr "" +msgstr "Éditeurs et IDEs" #: ../Doc/using/unix.rst:142 msgid "" "There are a number of IDEs that support Python programming language. Many " -"editors and IDEs provide syntax highlighting, debugging tools, and PEP-8 " +"editors and IDEs provide syntax highlighting, debugging tools, and :pep:`8` " "checks." msgstr "" +"Il y a un grand nombre d'environnement de développement qui gèrent le " +"langage de programmation Python. Beaucoup d'éditeurs et d'EDIs proposent une " +"mise en surbrillance de la syntaxe, des outils de débogage et une " +"vérification PEP-8." #: ../Doc/using/unix.rst:145 msgid "" @@ -235,3 +288,7 @@ msgid "" "and `Integrated Development Environments `_ for a comprehensive list." msgstr "" +"Merci d'aller sur `Python Editors `_ et `Integrated Development Environments `_ pour une liste " +"exhaustive." diff --git a/using/windows.po b/using/windows.po index e4e0373e5..268ec5a4d 100644 --- a/using/windows.po +++ b/using/windows.po @@ -5,30 +5,32 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2018-06-10 15:28+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-16 23:27+0200\n" +"Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" -"Language: fr\n" +"Language: fr_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: Poedit 2.2.1\n" +"X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/using/windows.rst:7 msgid "Using Python on Windows" -msgstr "Utiliser Python sur Windows" +msgstr "Utilisation de Python sur Windows" #: ../Doc/using/windows.rst:12 msgid "" "This document aims to give an overview of Windows-specific behaviour you " "should know about when using Python on Microsoft Windows." msgstr "" +"Ce document a pour but de donner une vue d'ensemble des comportements " +"spécifiques à Windows dont vous devriez être au courant si vous utilisez " +"Python sur Microsoft Windows." -#: ../Doc/using/windows.rst:16 -msgid "Installing Python" -msgstr "Installer Python" - -#: ../Doc/using/windows.rst:18 +#: ../Doc/using/windows.rst:15 msgid "" "Unlike most Unix systems and services, Windows does not include a system " "supported installation of Python. To make Python available, the CPython team " @@ -39,24 +41,87 @@ msgid "" "able to install for all users of a single machine, and a separate ZIP file " "is available for application-local distributions." msgstr "" +"Contrairement à la plupart des systèmes Unix, Windows n'inclut pas " +"d'installation de Python par défaut. Pour rendre Python disponible, l’équipe " +"CPython a compilé des installateurs (paquets MSI) pour chaque `release " +"`_ depuis plusieurs années. Ces " +"installateurs sont principalement destinés à une installation par " +"utilisateur de Python, avec l’interpréteur et la bibliothèque standard " +"utilisés par un seul utilisateur. Cet installateur peut aussi installer " +"Python pour tous les utilisateurs sur une seule machine et un fichier ZIP " +"séparé est disponible pour intégrer Python dans d'autres applications." -#: ../Doc/using/windows.rst:28 -msgid "Supported Versions" -msgstr "Versions supportées" - -#: ../Doc/using/windows.rst:30 +#: ../Doc/using/windows.rst:24 msgid "" "As specified in :pep:`11`, a Python release only supports a Windows platform " "while Microsoft considers the platform under extended support. This means " "that Python |version| supports Windows Vista and newer. If you require " "Windows XP support then please install Python 3.4." msgstr "" +"Comme spécifié dans la :pep:`11`, une *release* Python ne gère qu'une " +"plateforme Windows alors que Microsoft considère la plateforme sous support " +"étendu. Ce qui veut dire que Python |version| supporte Windows Vista et " +"plus. Si vous avez besoin de compatibilité Windows XP, vous devez utiliser " +"Python 3.4." + +#: ../Doc/using/windows.rst:29 +msgid "" +"There are a number of different installers available for Windows, each with " +"certain benefits and downsides." +msgstr "" +"Il existe un certain nombre d'installateurs différents disponibles pour " +"Windows, chacun avec certains avantages et inconvénients." + +#: ../Doc/using/windows.rst:32 +msgid "" +":ref:`windows-full` contains all components and is the best option for " +"developers using Python for any kind of project." +msgstr "" +":ref:`windows-full` contient tous les composants et est la meilleure option " +"pour les développeurs utilisant Python pour tout type de projet." + +#: ../Doc/using/windows.rst:35 +msgid "" +":ref:`windows-store` is a simple installation of Python that is suitable for " +"running scripts and packages, and using IDLE or other development " +"environments. It requires Windows 10, but can be safely installed without " +"corrupting other programs. It also provides many convenient commands for " +"launching Python and its tools." +msgstr "" +":ref:`windows-store` est une simple installation de Python qui convient à " +"l'exécution de scripts, de paquets et à l’utilisation d’IDLE ou d'autres " +"environnements de développement. Il nécessite Windows 10, mais peut être " +"installé en toute sécurité sans endommager d'autres programmes. Il fournit " +"également de nombreuses commandes pratiques pour lancer Python et ses outils." + +#: ../Doc/using/windows.rst:41 +msgid "" +":ref:`windows-nuget` are lightweight installations intended for continuous " +"integration systems. It can be used to build Python packages or run scripts, " +"but is not updateable and has no user interface tools." +msgstr "" +":ref:`windows-nuget` sont des installations légères destinées aux systèmes " +"d'intégration continue. Ils peuvent être utilisés pour créer des packages " +"Python ou exécuter des scripts, mais ne sont pas modifiables et n'ont pas " +"d'outils d'interface utilisateur." + +#: ../Doc/using/windows.rst:45 +msgid "" +":ref:`windows-embeddable` is a minimal package of Python suitable for " +"embedding into a larger application." +msgstr "" +":ref:`windows-embeddable` est un paquet minimal de Python approprié pour " +"l'intégration dans une plus grande application." + +#: ../Doc/using/windows.rst:52 +msgid "The full installer" +msgstr "L'installateur complet" -#: ../Doc/using/windows.rst:36 -msgid "Installation Steps" +#: ../Doc/using/windows.rst:55 +msgid "Installation steps" msgstr "Étapes d'installation" -#: ../Doc/using/windows.rst:38 +#: ../Doc/using/windows.rst:57 msgid "" "Four Python |version| installers are available for download - two each for " "the 32-bit and 64-bit versions of the interpreter. The *web installer* is a " @@ -66,97 +131,130 @@ msgid "" "connection for optional features. See :ref:`install-layout-option` for other " "ways to avoid downloading during installation." msgstr "" +"Quatre installateurs Python |version| sont disponibles au téléchargement — " +"deux de chaque pour les versions 32-bit et 64-bit de l'interpréteur. " +"L'**installateur web** est léger, et téléchargera automatiquement les " +"composants nécessaires. L'**installateur hors-ligne** inclut les composants " +"nécessaires pour une installation par défaut et n'a besoin d'une connexion " +"internet que pour des fonctionnalités optionnelles. Voir :ref:`install-" +"layout-option` pour d'autres moyens d’éviter des téléchargements durant " +"l'installation." -#: ../Doc/using/windows.rst:46 +#: ../Doc/using/windows.rst:65 msgid "After starting the installer, one of two options may be selected:" -msgstr "" +msgstr "Après avoir lancé l'installateur, deux options s'affichent :" -#: ../Doc/using/windows.rst:50 +#: ../Doc/using/windows.rst:69 msgid "If you select \"Install Now\":" -msgstr "" +msgstr "Si vous sélectionnez \"Installer Maintenant\" (``Install Now``):" -#: ../Doc/using/windows.rst:52 +#: ../Doc/using/windows.rst:71 msgid "" "You will *not* need to be an administrator (unless a system update for the C " "Runtime Library is required or you install the :ref:`launcher` for all users)" msgstr "" +"Vous n'aurez *pas* besoin d'avoir les droits d'administrateur (sauf si une " +"mise à jour de la bibliothèque d'exécution C est nécessaire ou si vous " +"installez le :ref:`launcher` pour tous les utilisateurs)" -#: ../Doc/using/windows.rst:55 +#: ../Doc/using/windows.rst:74 msgid "Python will be installed into your user directory" msgstr "Python sera installé dans votre répertoire utilisateur" -#: ../Doc/using/windows.rst:56 +#: ../Doc/using/windows.rst:75 msgid "" "The :ref:`launcher` will be installed according to the option at the bottom " "of the first page" msgstr "" +"Le :ref:`launcher` sera installé suivant l'option en bas de la première page" -#: ../Doc/using/windows.rst:58 +#: ../Doc/using/windows.rst:77 msgid "The standard library, test suite, launcher and pip will be installed" msgstr "" +"La bibliothèque standard, la suite de tests, le lanceur et *pip* seront " +"installés" -#: ../Doc/using/windows.rst:59 +#: ../Doc/using/windows.rst:78 msgid "If selected, the install directory will be added to your :envvar:`PATH`" msgstr "" +"Si l'option est cochée, le dossier d'installation sera ajouté à votre :" +"envvar:`PATH`" -#: ../Doc/using/windows.rst:60 +#: ../Doc/using/windows.rst:79 msgid "Shortcuts will only be visible for the current user" -msgstr "" +msgstr "Les raccourcis ne seront visibles que pour l'utilisateur actuel" -#: ../Doc/using/windows.rst:62 +#: ../Doc/using/windows.rst:81 msgid "" "Selecting \"Customize installation\" will allow you to select the features " "to install, the installation location and other options or post-install " "actions. To install debugging symbols or binaries, you will need to use this " "option." msgstr "" +"Sélectionner \"Personnaliser l'installation\" (``Customize installation``) " +"vous permettra de sélectionner les fonctionnalités à installer, le chemin " +"d'installation et d'autres options ou des options post-installation. Pour " +"installer des binaires ou symboles de débogage, vous devrez utiliser cette " +"option." -#: ../Doc/using/windows.rst:66 +#: ../Doc/using/windows.rst:85 msgid "" "To perform an all-users installation, you should select \"Customize " "installation\". In this case:" msgstr "" +"Pour effectuer une installation pour tous les utilisateurs, vous devez " +"sélectionner \"Personnaliser l'installation\". Dans ce cas :" -#: ../Doc/using/windows.rst:69 +#: ../Doc/using/windows.rst:88 msgid "You may be required to provide administrative credentials or approval" msgstr "" +"Vous pouvez avoir à donner une approbation ou des identifiants administrateur" -#: ../Doc/using/windows.rst:70 +#: ../Doc/using/windows.rst:89 msgid "Python will be installed into the Program Files directory" -msgstr "" +msgstr "Python sera installé dans le dossier *Program Files*" -#: ../Doc/using/windows.rst:71 +#: ../Doc/using/windows.rst:90 msgid "The :ref:`launcher` will be installed into the Windows directory" -msgstr "" +msgstr "Le :ref:`launcher` sera installé dans le dossier *Windows*" -#: ../Doc/using/windows.rst:72 +#: ../Doc/using/windows.rst:91 msgid "Optional features may be selected during installation" msgstr "" +"Des fonctionnalités optionnelles peuvent être sélectionnées durant " +"l'installation" -#: ../Doc/using/windows.rst:73 +#: ../Doc/using/windows.rst:92 msgid "The standard library can be pre-compiled to bytecode" msgstr "" +"La bibliothèque standard peut être pré-compilée en code intermédiaire " +"(*bytecode* en anglais)" -#: ../Doc/using/windows.rst:74 +#: ../Doc/using/windows.rst:93 msgid "" "If selected, the install directory will be added to the system :envvar:`PATH`" msgstr "" +"Si sélectionné, le chemin d'installation sera ajouté au :envvar:`PATH` " +"système" -#: ../Doc/using/windows.rst:75 +#: ../Doc/using/windows.rst:94 msgid "Shortcuts are available for all users" -msgstr "" +msgstr "Les raccourcis sont disponibles pour tous les utilisateurs" -#: ../Doc/using/windows.rst:80 +#: ../Doc/using/windows.rst:99 msgid "Removing the MAX_PATH Limitation" -msgstr "" +msgstr "Suppression de la limitation `MAX_PATH`" -#: ../Doc/using/windows.rst:82 +#: ../Doc/using/windows.rst:101 msgid "" "Windows historically has limited path lengths to 260 characters. This meant " "that paths longer than this would not resolve and errors would result." msgstr "" +"Historiquement les chemins sous Windows étaient limités 260 caractères. Cela " +"impliquait que les chemins plus longs n'étaient pas résolus, et seraient une " +"cause d'erreurs." -#: ../Doc/using/windows.rst:85 +#: ../Doc/using/windows.rst:104 msgid "" "In the latest versions of Windows, this limitation can be expanded to " "approximately 32,000 characters. Your administrator will need to activate " @@ -164,314 +262,368 @@ msgid "" "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control" "\\FileSystem@LongPathsEnabled`` to ``1``." msgstr "" +"Dans les dernières versions de Windows, cette limitation peut être étendue à " +"approximativement 32.000 caractères. Votre administrateur devra activer la " +"stratégie de groupe \"**Enable Win32 long paths**\" ou mettre la valeur du " +"registre ``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control" +"\\FileSystem@LongPathsEnabled`` à ``1``." -#: ../Doc/using/windows.rst:91 +#: ../Doc/using/windows.rst:110 msgid "" "This allows the :func:`open` function, the :mod:`os` module and most other " "path functionality to accept and return paths longer than 260 characters " "when using strings. (Use of bytes as paths is deprecated on Windows, and " "this feature is not available when using bytes.)" msgstr "" +"Ceci permet à la fonction :func:`open`, le module :mod:`os` et la plupart " +"des autres fonctionnalités utilisant des chemins d'accepter et de renvoyer " +"des chemins plus longs que 260 caractères quand vous utilisez des chaînes. " +"(L'utilisation de chemins sous forme de `bytes` obsolète sur Windows, et " +"cette fonctionnalité n'est pas disponible quand vous utilisez des `bytes`.)" -#: ../Doc/using/windows.rst:96 +#: ../Doc/using/windows.rst:115 msgid "After changing the above option, no further configuration is required." msgstr "" +"Après avoir changé l'option si-dessus, aucune configuration supplémentaire " +"n'est requise." -#: ../Doc/using/windows.rst:100 +#: ../Doc/using/windows.rst:119 msgid "Support for long paths was enabled in Python." -msgstr "" +msgstr "Gestion des chemins longs." -#: ../Doc/using/windows.rst:105 +#: ../Doc/using/windows.rst:124 msgid "Installing Without UI" -msgstr "" +msgstr "Installation sans l'interface utilisateur" -#: ../Doc/using/windows.rst:107 +#: ../Doc/using/windows.rst:126 msgid "" "All of the options available in the installer UI can also be specified from " "the command line, allowing scripted installers to replicate an installation " "on many machines without user interaction. These options may also be set " "without suppressing the UI in order to change some of the defaults." msgstr "" +"Toutes les options disponibles dans l'installateur graphique peuvent aussi " +"être spécifiées dans l'invite de commande, permettant à des installateurs " +"scriptés de répliquer une installation sur plusieurs machines sans " +"interaction humaine. Ces options peuvent aussi être ajoutées sans enlever " +"l'interface graphique pour changer les valeurs par défauts." -#: ../Doc/using/windows.rst:112 +#: ../Doc/using/windows.rst:131 msgid "" "To completely hide the installer UI and install Python silently, pass the ``/" "quiet`` option. To skip past the user interaction but still display progress " "and errors, pass the ``/passive`` option. The ``/uninstall`` option may be " "passed to immediately begin removing Python - no prompt will be displayed." msgstr "" +"Pour complétement cacher l'interface de l'installateur et installer Python " +"silencieusement, passez l'option ``/quiet``. Pour sauter les interactions " +"utilisateur mais afficher la progression et les erreurs, passez l'option ``/" +"passive``. L'option ``/uninstall`` peut être passée pour immédiatement " +"démarrer la suppression de Python -- Aucune confirmation ne sera demandée." -#: ../Doc/using/windows.rst:118 +#: ../Doc/using/windows.rst:137 msgid "" "All other options are passed as ``name=value``, where the value is usually " "``0`` to disable a feature, ``1`` to enable a feature, or a path. The full " "list of available options is shown below." msgstr "" +"Toutes les autres options sont passées sous la forme ``name=value``, ou " +"``value`` est normalement soit ``0`` pour désactiver une fonctionnalité, " +"soit ``1`` pour activer une fonctionnalité, soit un chemin. Ci-dessous la " +"liste complète des options." -#: ../Doc/using/windows.rst:123 +#: ../Doc/using/windows.rst:142 msgid "Name" msgstr "Nom" -#: ../Doc/using/windows.rst:123 +#: ../Doc/using/windows.rst:142 msgid "Description" msgstr "Description" -#: ../Doc/using/windows.rst:123 +#: ../Doc/using/windows.rst:142 msgid "Default" -msgstr "" +msgstr "Valeur par défaut" -#: ../Doc/using/windows.rst:125 +#: ../Doc/using/windows.rst:144 msgid "InstallAllUsers" -msgstr "" +msgstr "InstallAllUsers" -#: ../Doc/using/windows.rst:125 +#: ../Doc/using/windows.rst:144 msgid "Perform a system-wide installation." -msgstr "" +msgstr "Effectue une installation pour tous les utilisateurs." -#: ../Doc/using/windows.rst:125 ../Doc/using/windows.rst:146 -#: ../Doc/using/windows.rst:149 ../Doc/using/windows.rst:158 -#: ../Doc/using/windows.rst:176 ../Doc/using/windows.rst:184 -#: ../Doc/using/windows.rst:187 +#: ../Doc/using/windows.rst:144 ../Doc/using/windows.rst:167 +#: ../Doc/using/windows.rst:170 ../Doc/using/windows.rst:179 +#: ../Doc/using/windows.rst:197 ../Doc/using/windows.rst:205 +#: ../Doc/using/windows.rst:208 msgid "0" msgstr "0" -#: ../Doc/using/windows.rst:127 +#: ../Doc/using/windows.rst:146 msgid "TargetDir" -msgstr "" +msgstr "TargetDir" -#: ../Doc/using/windows.rst:127 +#: ../Doc/using/windows.rst:146 msgid "The installation directory" -msgstr "" +msgstr "Le dossier d'installation" -#: ../Doc/using/windows.rst:127 +#: ../Doc/using/windows.rst:146 msgid "Selected based on InstallAllUsers" -msgstr "" +msgstr "Sélection basée sur InstallAllUsers" -#: ../Doc/using/windows.rst:130 +#: ../Doc/using/windows.rst:149 msgid "DefaultAllUsersTargetDir" -msgstr "" +msgstr "DefaultAllUsersTargetDir" -#: ../Doc/using/windows.rst:130 +#: ../Doc/using/windows.rst:149 msgid "The default installation directory for all-user installs" msgstr "" +"Le dossier d'installation par défaut pour les installations pour tous les " +"utilisateurs" -#: ../Doc/using/windows.rst:130 +#: ../Doc/using/windows.rst:149 msgid "" ":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" "\\ Python X.Y`" msgstr "" +":file:`%ProgramFiles%\\\\\\ Python X.Y` ou :file:`\\ %ProgramFiles(x86)%\\\\" +"\\ Python X.Y`" -#: ../Doc/using/windows.rst:135 +#: ../Doc/using/windows.rst:154 msgid "DefaultJustForMeTargetDir" -msgstr "" +msgstr "DefaultJustForMeTargetDir" -#: ../Doc/using/windows.rst:135 +#: ../Doc/using/windows.rst:154 msgid "The default install directory for just-for-me installs" msgstr "" +"Le dossier d'installation par défaut pour des installations juste pour soi" -#: ../Doc/using/windows.rst:135 +#: ../Doc/using/windows.rst:154 msgid "" ":file:`%LocalAppData%\\\\\\ Programs\\\\PythonXY` or :file:`%LocalAppData%\\" -"\\\\ Programs\\\\PythonXY-32`" +"\\\\ Programs\\\\PythonXY-32` or :file:`%LocalAppData%\\\\\\ Programs\\" +"\\PythonXY-64`" msgstr "" +":file:`%LocalAppData%\\\\\\ Programs\\\\PythonXY` ou :file:`%LocalAppData%\\" +"\\\\ Programs\\\\PythonXY-32` ou :file:`%LocalAppData%\\\\\\ Programs\\" +"\\PythonXY-64`" -#: ../Doc/using/windows.rst:140 +#: ../Doc/using/windows.rst:161 msgid "DefaultCustomTargetDir" -msgstr "" +msgstr "DefaultCustomTargetDir" -#: ../Doc/using/windows.rst:140 +#: ../Doc/using/windows.rst:161 msgid "The default custom install directory displayed in the UI" msgstr "" +"Le dossier d'installation personnalisé par défaut affiché par l'interface " +"utilisateur" -#: ../Doc/using/windows.rst:140 ../Doc/using/windows.rst:189 +#: ../Doc/using/windows.rst:161 ../Doc/using/windows.rst:210 msgid "(empty)" -msgstr "" +msgstr "(vide)" -#: ../Doc/using/windows.rst:143 +#: ../Doc/using/windows.rst:164 msgid "AssociateFiles" -msgstr "" +msgstr "AssociateFiles" -#: ../Doc/using/windows.rst:143 +#: ../Doc/using/windows.rst:164 msgid "Create file associations if the launcher is also installed." -msgstr "" - -#: ../Doc/using/windows.rst:143 ../Doc/using/windows.rst:153 -#: ../Doc/using/windows.rst:156 ../Doc/using/windows.rst:160 -#: ../Doc/using/windows.rst:163 ../Doc/using/windows.rst:166 -#: ../Doc/using/windows.rst:168 ../Doc/using/windows.rst:171 -#: ../Doc/using/windows.rst:174 ../Doc/using/windows.rst:178 -#: ../Doc/using/windows.rst:180 ../Doc/using/windows.rst:182 +msgstr "Crée les associations de fichiers si le lanceur est aussi installé." + +#: ../Doc/using/windows.rst:164 ../Doc/using/windows.rst:174 +#: ../Doc/using/windows.rst:177 ../Doc/using/windows.rst:181 +#: ../Doc/using/windows.rst:184 ../Doc/using/windows.rst:187 +#: ../Doc/using/windows.rst:189 ../Doc/using/windows.rst:192 +#: ../Doc/using/windows.rst:195 ../Doc/using/windows.rst:199 +#: ../Doc/using/windows.rst:201 ../Doc/using/windows.rst:203 msgid "1" msgstr "1" -#: ../Doc/using/windows.rst:146 +#: ../Doc/using/windows.rst:167 msgid "CompileAll" -msgstr "" +msgstr "CompileAll" -#: ../Doc/using/windows.rst:146 +#: ../Doc/using/windows.rst:167 msgid "Compile all ``.py`` files to ``.pyc``." -msgstr "" +msgstr "Compile tous les fichiers ``.py`` en ``.pyc``." -#: ../Doc/using/windows.rst:149 +#: ../Doc/using/windows.rst:170 msgid "PrependPath" -msgstr "" +msgstr "PrependPath" -#: ../Doc/using/windows.rst:149 +#: ../Doc/using/windows.rst:170 msgid "" "Add install and Scripts directories to :envvar:`PATH` and ``.PY`` to :envvar:" "`PATHEXT`" msgstr "" +"Ajoute les dossiers ``install`` et ``Scripts`` à :envvar:`PATH` et assigne " +"``.PY`` à :envvar:`PATHEXT`" -#: ../Doc/using/windows.rst:153 +#: ../Doc/using/windows.rst:174 msgid "Shortcuts" -msgstr "" +msgstr "Shortcuts" -#: ../Doc/using/windows.rst:153 +#: ../Doc/using/windows.rst:174 msgid "" "Create shortcuts for the interpreter, documentation and IDLE if installed." msgstr "" +"Crée des raccourcis pour l'interpréteur, la documentation et IDLE si " +"installé." -#: ../Doc/using/windows.rst:156 +#: ../Doc/using/windows.rst:177 msgid "Include_doc" -msgstr "" +msgstr "Include_doc" -#: ../Doc/using/windows.rst:156 +#: ../Doc/using/windows.rst:177 msgid "Install Python manual" -msgstr "" +msgstr "Installe le manuel Python" -#: ../Doc/using/windows.rst:158 +#: ../Doc/using/windows.rst:179 msgid "Include_debug" -msgstr "" +msgstr "Include_debug" -#: ../Doc/using/windows.rst:158 +#: ../Doc/using/windows.rst:179 msgid "Install debug binaries" -msgstr "" +msgstr "Installe les binaires de débogage" -#: ../Doc/using/windows.rst:160 +#: ../Doc/using/windows.rst:181 msgid "Include_dev" -msgstr "" +msgstr "Include_dev" -#: ../Doc/using/windows.rst:160 +#: ../Doc/using/windows.rst:181 msgid "Install developer headers and libraries" -msgstr "" +msgstr "Installe les fichiers d'en-tête et les bibliothèques développeur" -#: ../Doc/using/windows.rst:163 +#: ../Doc/using/windows.rst:184 msgid "Include_exe" -msgstr "" +msgstr "Include_exe" -#: ../Doc/using/windows.rst:163 +#: ../Doc/using/windows.rst:184 msgid "Install :file:`python.exe` and related files" -msgstr "" +msgstr "Installe :file:`python.exe` et les fichiers connexes" -#: ../Doc/using/windows.rst:166 +#: ../Doc/using/windows.rst:187 msgid "Include_launcher" -msgstr "" +msgstr "Include_launcher" -#: ../Doc/using/windows.rst:166 +#: ../Doc/using/windows.rst:187 msgid "Install :ref:`launcher`." -msgstr "" +msgstr "Installe le :ref:`launcher`." -#: ../Doc/using/windows.rst:168 +#: ../Doc/using/windows.rst:189 msgid "InstallLauncherAllUsers" -msgstr "" +msgstr "InstallLauncherAllUsers" -#: ../Doc/using/windows.rst:168 +#: ../Doc/using/windows.rst:189 msgid "Installs :ref:`launcher` for all users." -msgstr "" +msgstr "Installe le :ref:`launcher` pour tous les utilisateurs." -#: ../Doc/using/windows.rst:171 +#: ../Doc/using/windows.rst:192 msgid "Include_lib" -msgstr "" +msgstr "Include_lib" -#: ../Doc/using/windows.rst:171 +#: ../Doc/using/windows.rst:192 msgid "Install standard library and extension modules" -msgstr "" +msgstr "Installe la bibliothèque standard et les modules d'extension" -#: ../Doc/using/windows.rst:174 +#: ../Doc/using/windows.rst:195 msgid "Include_pip" -msgstr "" +msgstr "Include_pip" -#: ../Doc/using/windows.rst:174 +#: ../Doc/using/windows.rst:195 msgid "Install bundled pip and setuptools" -msgstr "" +msgstr "Installe ``pip`` et ``setuptools``" -#: ../Doc/using/windows.rst:176 +#: ../Doc/using/windows.rst:197 msgid "Include_symbols" -msgstr "" +msgstr "Include_symbols" -#: ../Doc/using/windows.rst:176 +#: ../Doc/using/windows.rst:197 msgid "Install debugging symbols (`*`.pdb)" -msgstr "" +msgstr "Installe les symboles de débogage (``*.pdb``)" -#: ../Doc/using/windows.rst:178 +#: ../Doc/using/windows.rst:199 msgid "Include_tcltk" -msgstr "" +msgstr "Include_tcltk" -#: ../Doc/using/windows.rst:178 +#: ../Doc/using/windows.rst:199 msgid "Install Tcl/Tk support and IDLE" -msgstr "" +msgstr "Installe Tcl/Tk et IDLE" -#: ../Doc/using/windows.rst:180 +#: ../Doc/using/windows.rst:201 msgid "Include_test" -msgstr "" +msgstr "Include_test" -#: ../Doc/using/windows.rst:180 +#: ../Doc/using/windows.rst:201 msgid "Install standard library test suite" -msgstr "" +msgstr "Installe la suite de tests de la bibliothèque standard" -#: ../Doc/using/windows.rst:182 +#: ../Doc/using/windows.rst:203 msgid "Include_tools" -msgstr "" +msgstr "Include_tools" -#: ../Doc/using/windows.rst:182 +#: ../Doc/using/windows.rst:203 msgid "Install utility scripts" -msgstr "" +msgstr "Installe les scripts utilitaires" -#: ../Doc/using/windows.rst:184 +#: ../Doc/using/windows.rst:205 msgid "LauncherOnly" -msgstr "" +msgstr "LauncherOnly" -#: ../Doc/using/windows.rst:184 +#: ../Doc/using/windows.rst:205 msgid "Only installs the launcher. This will override most other options." msgstr "" +"Installe seulement le lanceur. Ceci écrasera la plupart des autres options." -#: ../Doc/using/windows.rst:187 +#: ../Doc/using/windows.rst:208 msgid "SimpleInstall" -msgstr "" +msgstr "SimpleInstall" -#: ../Doc/using/windows.rst:187 +#: ../Doc/using/windows.rst:208 msgid "Disable most install UI" -msgstr "" +msgstr "Désactive la plupart de l'interface d'installation" -#: ../Doc/using/windows.rst:189 +#: ../Doc/using/windows.rst:210 msgid "SimpleInstallDescription" -msgstr "" +msgstr "SimpleInstallDescription" -#: ../Doc/using/windows.rst:189 +#: ../Doc/using/windows.rst:210 msgid "A custom message to display when the simplified install UI is used." msgstr "" +"Un message personnalisé à afficher quand l'interface d'installation " +"simplifiée est utilisée." -#: ../Doc/using/windows.rst:193 +#: ../Doc/using/windows.rst:214 msgid "" "For example, to silently install a default, system-wide Python installation, " "you could use the following command (from an elevated command prompt)::" msgstr "" +"Par exemple, pour installer silencieusement Python sur tout le système, vous " +"pourriez utilisez la commande suivante (depuis une invite de commande " +"administrateur) ::" -#: ../Doc/using/windows.rst:198 +#: ../Doc/using/windows.rst:219 msgid "" "To allow users to easily install a personal copy of Python without the test " "suite, you could provide a shortcut with the following command. This will " "display a simplified initial page and disallow customization::" msgstr "" +"Pour permettre à l'utilisateur d'installer facilement une copie de Python " +"sans la suite de tests, vous pouvez proposer un raccourci avec la commande " +"suivante. Cela affichera une page initiale simplifiée et interdira la " +"personnalisation ::" -#: ../Doc/using/windows.rst:205 +#: ../Doc/using/windows.rst:226 msgid "" "(Note that omitting the launcher also omits file associations, and is only " "recommended for per-user installs when there is also a system-wide " "installation that included the launcher.)" msgstr "" +"(Notez qu'omettre le lanceur omet aussi les associations de fichiers, et " +"n'est recommandé que pour les installations par utilisateur quand il y a " +"aussi une installation complète sur le système qui a inclus de lanceur.)" -#: ../Doc/using/windows.rst:209 +#: ../Doc/using/windows.rst:230 msgid "" "The options listed above can also be provided in a file named ``unattend." "xml`` alongside the executable. This file specifies a list of options and " @@ -479,12 +631,18 @@ msgid "" "number if possible. Values provided as element text are always left as " "strings. This example file sets the same options as the previous example:" msgstr "" +"Les options listées ci-dessus peuvent aussi être passées dans un fichier " +"nommé ``unattend.xml`` à côté de l'exécutable. Ce fichier spécifie une liste " +"d'options et de valeurs. Quand une valeur est donnée en tant qu'attribut, " +"elle sera convertie en nombre si possible. Les valeurs données en élément " +"texte sont toujours laissées en tant que chaînes de caractères. Ce fichier " +"d'exemple propose les mêmes options que l'exemple précédent :" -#: ../Doc/using/windows.rst:228 +#: ../Doc/using/windows.rst:249 msgid "Installing Without Downloading" -msgstr "" +msgstr "Installation sans téléchargement" -#: ../Doc/using/windows.rst:230 +#: ../Doc/using/windows.rst:251 msgid "" "As some features of Python are not included in the initial installer " "download, selecting those features may require an internet connection. To " @@ -494,174 +652,555 @@ msgid "" "be bigger than required, but where a large number of installations are going " "to be performed it is very useful to have a locally cached copy." msgstr "" +"Comme certaines fonctionnalités de Python ne sont pas incluses dans " +"l'installateur initial, la sélection de certaines de ces fonctionnalités " +"peut demander une connexion Internet. Pour éviter ce besoin, tous les " +"composants nécessaires peuvent être téléchargés à la demande pour créer un " +"installateur complet qui ne demandera plus de connexion Internet " +"indépendamment des options sélectionnées. Notez que ce téléchargement peut " +"être plus gros que nécessaire, mais lorsqu'un un grand nombre " +"d'installations doivent être faites, il est très utile d'avoir une copie " +"locale." -#: ../Doc/using/windows.rst:238 +#: ../Doc/using/windows.rst:259 msgid "" "Execute the following command from Command Prompt to download all possible " -"required files. Remember to substitute ``python-3.6.0.exe`` for the actual " +"required files. Remember to substitute ``python-3.7.0.exe`` for the actual " "name of your installer, and to create layouts in their own directories to " "avoid collisions between files with the same name." msgstr "" +"Exécutez la commande suivante depuis l'invite de commande pour télécharger " +"tous les fichiers requis possibles. Rappelez-vous de remplacer " +"``python-3.7.0.exe`` par le nom actuel de votre installateur, et pour créer " +"des *couches* dans leurs propres dossiers pour éviter les conflits entre " +"fichiers du même nom." -#: ../Doc/using/windows.rst:247 +#: ../Doc/using/windows.rst:268 msgid "" "You may also specify the ``/quiet`` option to hide the progress display." msgstr "" +"Vous pouvez aussi spécifier l'option ``/quiet`` pour masquer la progression." -#: ../Doc/using/windows.rst:250 +#: ../Doc/using/windows.rst:271 msgid "Modifying an install" -msgstr "" +msgstr "Modification d'une installation" -#: ../Doc/using/windows.rst:252 +#: ../Doc/using/windows.rst:273 msgid "" "Once Python has been installed, you can add or remove features through the " "Programs and Features tool that is part of Windows. Select the Python entry " "and choose \"Uninstall/Change\" to open the installer in maintenance mode." msgstr "" +"Une fois Python installé, vous pouvez ajouter ou supprimer des " +"fonctionnalités depuis l'outil Windows *Programs and Features* (Programmes " +"et Fonctionnalités). Sélectionnez la ligne `Python` et choisissez " +"\"Uninstall/Change\" (Désinstaller/Modifier) pour ouvrir l'installateur en " +"mode maintenance." -#: ../Doc/using/windows.rst:256 +#: ../Doc/using/windows.rst:277 msgid "" "\"Modify\" allows you to add or remove features by modifying the checkboxes " "- unchanged checkboxes will not install or remove anything. Some options " "cannot be changed in this mode, such as the install directory; to modify " "these, you will need to remove and then reinstall Python completely." msgstr "" +"\"Modify\" vous permet d'ajouter ou d'enlever des fonctionnalités en " +"modifiant les cases à cocher (les cases inchangées n'installeront ou ne " +"supprimeront rien). Certaines options ne peuvent pas être modifiées dans ce " +"mode, comme le dossier d'installation. Pour modifier ces options, vous " +"devrez ré-installer Python entièrement." -#: ../Doc/using/windows.rst:261 +#: ../Doc/using/windows.rst:282 msgid "" "\"Repair\" will verify all the files that should be installed using the " "current settings and replace any that have been removed or modified." msgstr "" +"\"Repair\" vérifiera tous les fichiers qui doivent être installés avec les " +"paramètres actuels le sont, et remplacera ceux qui ont étés supprimés ou " +"modifiés." -#: ../Doc/using/windows.rst:264 +#: ../Doc/using/windows.rst:285 msgid "" "\"Uninstall\" will remove Python entirely, with the exception of the :ref:" "`launcher`, which has its own entry in Programs and Features." msgstr "" +"\"Uninstall\" désinstallera Python entièrement, à l'exception du :ref:" +"`launcher` qui à sa propre ligne dans *Programs and Features*." -#: ../Doc/using/windows.rst:268 -msgid "Other Platforms" +#: ../Doc/using/windows.rst:292 +msgid "The Microsoft Store package" +msgstr "Le paquet Microsoft Store" + +#: ../Doc/using/windows.rst:297 +msgid "" +"The Microsoft Store package is currently considered unstable while its " +"interactions with other tools and other copies of Python are evaluated. " +"While Python itself is stable, this installation method may change its " +"behavior and capabilities during Python 3.7 releases." msgstr "" +"Le paquet *Microsoft Store* est actuellement considéré comme instable le " +"temps que ses interactions avec d'autres outils et d'autres copies de Python " +"soient évaluées. Bien que Python lui-même soit stable, cette méthode " +"d'installation peut modifier son comportement et ses capacités durant les " +"versions de Python 3.7." -#: ../Doc/using/windows.rst:270 +#: ../Doc/using/windows.rst:302 msgid "" -"With ongoing development of Python, some platforms that used to be supported " -"earlier are no longer supported (due to the lack of users or developers). " -"Check :pep:`11` for details on all unsupported platforms." +"The Microsoft Store package is an easily installable Python interpreter that " +"is intended mainly for interactive use, for example, by students." msgstr "" +"Le paquet *Microsoft Store* est un interpréteur Python facilement " +"installable qui est destiné principalement à une utilisation interactive, " +"par exemple, par des étudiants." -#: ../Doc/using/windows.rst:274 -msgid "`Windows CE `_ is still supported." +#: ../Doc/using/windows.rst:305 +msgid "" +"To install the package, ensure you have the latest Windows 10 updates and " +"search the Microsoft Store app for \"Python |version|\". Ensure that the app " +"you select is published by the Python Software Foundation, and install it." msgstr "" +"Pour installer le paquet, assurez-vous d'avoir les dernières mises à jour de " +"Windows 10 et de chercher dans l'application *Microsoft Store* “Python |" +"version|”. Assurez-vous que l'application que vous sélectionnez est publiée " +"par la *Python Software Foundation* et installez-la." -#: ../Doc/using/windows.rst:275 +#: ../Doc/using/windows.rst:310 msgid "" -"The `Cygwin `_ installer offers to install the Python " -"interpreter as well (cf. `Cygwin package source `_, `Maintainer " -"releases `_)" +"Python will always be available for free on the Microsoft Store. If you are " +"asked to pay for it, you have not selected the correct package." msgstr "" +"Python sera toujours disponible gratuitement sur le Microsoft Store. Si vous " +"êtes invité à payer, vous n'avez pas sélectionné le bon paquet." -#: ../Doc/using/windows.rst:281 +#: ../Doc/using/windows.rst:313 msgid "" -"See `Python for Windows `_ for " -"detailed information about platforms with pre-compiled installers." +"After installation, Python may be launched by finding it in Start. " +"Alternatively, it will be available from any Command Prompt or PowerShell " +"session by typing ``python``. Further, pip and IDLE may be used by typing " +"``pip`` or ``idle``. IDLE can also be found in Start." msgstr "" +"Après l'installation, Python peut être lancé depuis le menu Démarrer. Il est " +"aussi disponible à partir de n'importe quelle invite de commande ou session " +"PowerShell en entrant ``python``. De plus, pip et IDLE peuvent être utilisés " +"en entrant ``pip`` ou ``idle`` . IDLE peut également être trouvé dans le " +"menu Démarrer." -#: ../Doc/using/windows.rst:288 +#: ../Doc/using/windows.rst:318 msgid "" -"`Python on XP `_" +"All three commands are also available with version number suffixes, for " +"example, as ``python3.exe`` and ``python3.x.exe`` as well as ``python.exe`` " +"(where ``3.x`` is the specific version you want to launch, such as |" +"version|)." msgstr "" +"Les trois commandes sont également disponibles avec les suffixes de numéro " +"de version, par exemple, ``python3.exe`` et ``python3.x.exe`` ainsi que " +"``python.exe`` (ou ``3.x`` est la version spécifique que vous souhaitez " +"lancer, tel que |version|)." -#: ../Doc/using/windows.rst:287 -msgid "\"7 Minutes to \"Hello World!\"\" by Richard Dooling, 2006" +#: ../Doc/using/windows.rst:323 +msgid "" +"Virtual environments can be created with ``python -m venv`` and activated " +"and used as normal." msgstr "" +"Les environnements virtuels peuvent être créés avec ``python -m venv`` et " +"activés et utilisés normalement." -#: ../Doc/using/windows.rst:294 +#: ../Doc/using/windows.rst:326 msgid "" -"`Installing on Windows `_" +"If you have installed another version of Python and added it to your " +"``PATH`` variable, it will be available as ``python.exe`` rather than the " +"one from the Microsoft Store. To access the new installation, use ``python3." +"exe`` or ``python3.x.exe``." msgstr "" +"Si vous avez installé une autre version de Python et l'avez ajoutée à votre " +"variable d'environnement ``PATH``, elle sera disponible en tant que ``python." +"exe`` plutôt que celle de la boutique Microsoft. Pour accéder à la nouvelle " +"installation, utilisez ``python3.exe`` ou ``python3.x.exe``." -#: ../Doc/using/windows.rst:291 +#: ../Doc/using/windows.rst:331 msgid "" -"in \"`Dive into Python: Python from novice to pro `_\" by Mark Pilgrim, 2004, ISBN 1-59059-356-1" +"To remove Python, open Settings and use Apps and Features, or else find " +"Python in Start and right-click to select Uninstall. Uninstalling will " +"remove all packages you installed directly into this Python installation, " +"but will not remove any virtual environments" msgstr "" +"Pour supprimer Python, depuis les paramètres Windows ouvrez *Apps and " +"Features* (Applications et Fonctionnalités), ou bien trouvez Python dans le " +"menu Démarrer et cliquez avec le bouton droit pour sélectionner " +"désinstaller. La désinstallation supprimera tous les paquets que vous avez " +"installés directement dans cette installation Python, mais ne supprimera " +"aucun environnement virtuel" + +#: ../Doc/using/windows.rst:337 +msgid "Known Issues" +msgstr "Problèmes connus" -#: ../Doc/using/windows.rst:298 +#: ../Doc/using/windows.rst:339 msgid "" -"`For Windows users `_" +"Currently, the ``py.exe`` launcher cannot be used to start Python when it " +"has been installed from the Microsoft Store." msgstr "" +"Actuellement, le lanceur ``py.exe`` ne peut pas être utilisé pour démarrer " +"Python lorsqu'il a été installé à partir de la boutique Microsoft." -#: ../Doc/using/windows.rst:297 +#: ../Doc/using/windows.rst:342 +msgid "" +"Because of restrictions on Microsoft Store apps, Python scripts may not have " +"full write access to shared locations such as ``TEMP`` and the registry. " +"Instead, it will write to a private copy. If your scripts must modify the " +"shared locations, you will need to install the full installer." +msgstr "" +"En raison de restrictions sur les applications Microsoft Store, les scripts " +"Python peuvent ne pas avoir un accès en écriture complet aux emplacements " +"partagés tels que ``TEMP`` et le registre. Au lieu de cela, il écrira sur " +"une copie privée. Si vos scripts doivent modifier les emplacements partagés, " +"vous devrez installer le programme d'installation complet." + +#: ../Doc/using/windows.rst:351 +msgid "The nuget.org packages" +msgstr "Les paquets *nuget.org*" + +#: ../Doc/using/windows.rst:355 +msgid "" +"The nuget.org package is a reduced size Python environment intended for use " +"on continuous integration and build systems that do not have a system-wide " +"install of Python. While nuget is \"the package manager for .NET\", it also " +"works perfectly fine for packages containing build-time tools." +msgstr "" +"Le paquet *nuget.org* est un environnement Python de taille réduite destiné " +"à être utilisé sur des systèmes d'intégration et de génération continus qui " +"n'ont pas Python d'installé. Alors que *nuget* est “le gestionnaire de " +"package pour .NET”, il fonctionne également parfaitement bien pour les " +"packages contenant des outils de *build-time*." + +#: ../Doc/using/windows.rst:360 +msgid "" +"Visit `nuget.org `_ for the most up-to-date " +"information on using nuget. What follows is a summary that is sufficient for " +"Python developers." +msgstr "" +"Visitez `nuget.org `_ pour les informations les plus " +"à jour sur l'utilisation de *nuget*. Ce qui suit est un résumé suffisant " +"pour les développeurs Python." + +#: ../Doc/using/windows.rst:364 +msgid "" +"The ``nuget.exe`` command line tool may be downloaded directly from " +"``https://aka.ms/nugetclidl``, for example, using curl or PowerShell. With " +"the tool, the latest version of Python for 64-bit or 32-bit machines is " +"installed using::" +msgstr "" +"L'outil de ligne de commande ``nuget.exe`` peut être téléchargé directement " +"à partir de ``https://aka.ms/nugetclidl``, par exemple, à l'aide de *curl* " +"ou de PowerShell. Avec l'outil, la dernière version de Python pour les " +"machines 64 bits ou 32 bits est installée à l'aide de ::" + +#: ../Doc/using/windows.rst:372 +msgid "" +"To select a particular version, add a ``-Version 3.x.y``. The output " +"directory may be changed from ``.``, and the package will be installed into " +"a subdirectory. By default, the subdirectory is named the same as the " +"package, and without the ``-ExcludeVersion`` option this name will include " +"the specific version installed. Inside the subdirectory is a ``tools`` " +"directory that contains the Python installation::" +msgstr "" +"Pour sélectionner une version particulière, ajoutez un ``-Version 3.x.y``. " +"Le répertoire d'installation être modifié (de ``.``), et le paquet sera " +"installé dans un sous-répertoire. Par défaut, le sous-répertoire est nommé " +"comme le paquet, et sans l'option ``-ExcludeVersion``, ce nom inclura la " +"version spécifique installée. À l'intérieur du sous-répertoire se trouve un " +"répertoire ``tools`` qui contient l'installation Python ::" + +#: ../Doc/using/windows.rst:387 +msgid "" +"In general, nuget packages are not upgradeable, and newer versions should be " +"installed side-by-side and referenced using the full path. Alternatively, " +"delete the package directory manually and install it again. Many CI systems " +"will do this automatically if they do not preserve files between builds." +msgstr "" +"En général, les paquets *nuget* ne peuvent pas êtres mis à jour et les " +"versions plus récentes doivent être installées côte à côte et référencées à " +"l'aide du chemin d'accès complet. Vous pouvez également supprimer le " +"répertoire du paquet manuellement et l'installer à nouveau. De nombreux " +"systèmes CI le feront automatiquement s'ils ne conservent pas les fichiers " +"entre les *builds*." + +#: ../Doc/using/windows.rst:392 +msgid "" +"Alongside the ``tools`` directory is a ``build\\native`` directory. This " +"contains a MSBuild properties file ``python.props`` that can be used in a C+" +"+ project to reference the Python install. Including the settings will " +"automatically use the headers and import libraries in your build." +msgstr "" +"À côté du répertoire ``tools`` est un répertoire ``build\\native``. Il " +"contient un fichier de propriétés MSBuild ``python.props`` qui peut être " +"utilisé dans un projet C++ pour référencer l'installation de Python. " +"L'inclusion des paramètres utilisera automatiquement les en-têtes et les " +"bibliothèques d'importation dans votre *build*." + +#: ../Doc/using/windows.rst:397 msgid "" -"in \"Installing Python\" in \"`A Byte of Python `_\" by Swaroop C H, 2003" +"The package information pages on nuget.org are `www.nuget.org/packages/" +"python `_ for the 64-bit version and " +"`www.nuget.org/packages/pythonx86 `_ for the 32-bit version." msgstr "" +"Les pages d’information sur *nuget.org* sont `www.nuget.org/packages/python " +"`_ pour la version 64 Bits et `www." +"nuget.org/packages/pythonx86 `_ " +"pour la version 32 Bits." -#: ../Doc/using/windows.rst:303 -msgid "Alternative bundles" +#: ../Doc/using/windows.rst:406 +msgid "The embeddable package" +msgstr "Le paquet intégrable" + +#: ../Doc/using/windows.rst:410 +msgid "" +"The embedded distribution is a ZIP file containing a minimal Python " +"environment. It is intended for acting as part of another application, " +"rather than being directly accessed by end-users." msgstr "" +"La distribution embarquée est un fichier ZIP contenant un environnement " +"Python minimal. Il est destiné à agir dans le cadre d'une autre application, " +"plutôt que d'être directement accessible par les utilisateurs finaux." -#: ../Doc/using/windows.rst:305 +#: ../Doc/using/windows.rst:414 +msgid "" +"When extracted, the embedded distribution is (almost) fully isolated from " +"the user's system, including environment variables, system registry " +"settings, and installed packages. The standard library is included as pre-" +"compiled and optimized ``.pyc`` files in a ZIP, and ``python3.dll``, " +"``python37.dll``, ``python.exe`` and ``pythonw.exe`` are all provided. Tcl/" +"tk (including all dependants, such as Idle), pip and the Python " +"documentation are not included." +msgstr "" +"Une fois extrait, la distribution intégrée est (presque) entièrement isolée " +"du système de l'utilisateur, y compris les variables d'environnement, les " +"paramètres du registre système et les paquets installés. La bibliothèque " +"standard est incluse en tant que fichiers pré-compilés et optimisés ``.pyc`` " +"dans un fichier ZIP, et ``python3.dll``, ``python37.dll``, ``python.exe`` et " +"``pythonw.exe`` sont tous fournis. *Tcl/Tk* (y compris tous les dépendants, " +"telles que IDLE), pip et la documentation Python ne sont pas inclus." + +#: ../Doc/using/windows.rst:423 +msgid "" +"The embedded distribution does not include the `Microsoft C Runtime `_ and it is the " +"responsibility of the application installer to provide this. The runtime may " +"have already been installed on a user's system previously or automatically " +"via Windows Update, and can be detected by finding ``ucrtbase.dll`` in the " +"system directory." +msgstr "" +"La distribution intégrée n'inclut pas le `Microsoft C Runtime `_ et il est de la " +"responsabilité de l'installateur d'application de le fournir. Le *runtime* " +"peut avoir déjà été installé sur le système d'un utilisateur précédemment ou " +"automatiquement via Windows Update, et peut être détecté en trouvant " +"``ucrtbase.dll`` dans le répertoire système." + +#: ../Doc/using/windows.rst:430 +msgid "" +"Third-party packages should be installed by the application installer " +"alongside the embedded distribution. Using pip to manage dependencies as for " +"a regular Python installation is not supported with this distribution, " +"though with some care it may be possible to include and use pip for " +"automatic updates. In general, third-party packages should be treated as " +"part of the application (\"vendoring\") so that the developer can ensure " +"compatibility with newer versions before providing updates to users." +msgstr "" +"Les paquets tiers doivent être installés par le programme d'installation de " +"l'application parallèlement à la distribution embarquée. L'utilisation de " +"pip pour gérer les dépendances comme pour une installation Python régulière " +"n'est pas prise en charge avec cette distribution, mais il reste possible " +"d'inclure et d'utiliser pip pour les mises à jour automatiques. En général, " +"les paquets tiers doivent être traités dans le cadre de l'application " +"(*vendoring*) afin que le développeur puisse assurer la compatibilité avec " +"les versions plus récentes avant de fournir des mises à jour aux " +"utilisateurs." + +#: ../Doc/using/windows.rst:438 +msgid "" +"The two recommended use cases for this distribution are described below." +msgstr "" +"Les deux cas d'utilisation recommandés pour cette distribution sont décrits " +"ci-dessous." + +#: ../Doc/using/windows.rst:441 +msgid "Python Application" +msgstr "Application Python" + +#: ../Doc/using/windows.rst:443 +msgid "" +"An application written in Python does not necessarily require users to be " +"aware of that fact. The embedded distribution may be used in this case to " +"include a private version of Python in an install package. Depending on how " +"transparent it should be (or conversely, how professional it should appear), " +"there are two options." +msgstr "" +"Une application écrite en Python n'exige pas nécessairement que les " +"utilisateurs soient au courant de ce fait. La distribution embarquée peut " +"être utilisée dans ce cas pour inclure une version privée de Python dans un " +"package d'installation. Selon la façon dont il devrait être transparent (ou " +"inversement, à quel point il doit paraître professionnel), il y a deux " +"options." + +#: ../Doc/using/windows.rst:449 +msgid "" +"Using a specialized executable as a launcher requires some coding, but " +"provides the most transparent experience for users. With a customized " +"launcher, there are no obvious indications that the program is running on " +"Python: icons can be customized, company and version information can be " +"specified, and file associations behave properly. In most cases, a custom " +"launcher should simply be able to call ``Py_Main`` with a hard-coded command " +"line." +msgstr "" +"L'utilisation d'un exécutable spécialisé en tant que lanceur nécessite de la " +"programmation, mais fournit l'expérience la plus transparente pour les " +"utilisateurs. Avec un lanceur personnalisé, il n'y a pas d'indications " +"évidentes que le programme s'exécute sur Python : les icônes peuvent être " +"personnalisées, les informations de la société et de la version peuvent être " +"spécifiées, et les associations de fichiers se comportent correctement. Dans " +"la plupart des cas, un lanceur personnalisé devrait simplement pouvoir " +"appeler ``Py_Main`` avec une ligne de commande codée en dur." + +#: ../Doc/using/windows.rst:456 +msgid "" +"The simpler approach is to provide a batch file or generated shortcut that " +"directly calls the ``python.exe`` or ``pythonw.exe`` with the required " +"command-line arguments. In this case, the application will appear to be " +"Python and not its actual name, and users may have trouble distinguishing it " +"from other running Python processes or file associations." +msgstr "" +"L'approche la plus simple consiste à fournir un fichier batch ou un " +"raccourci généré qui appelle directement le ``python.exe`` ou ``pythonw." +"exe`` avec les arguments de ligne de commande requis. Dans ce cas, " +"l'application semble être Python et non son nom réel, et les utilisateurs " +"peuvent avoir du mal à le distinguer des autres processus Python en cours " +"d'exécution ou des associations de fichiers." + +#: ../Doc/using/windows.rst:462 +msgid "" +"With the latter approach, packages should be installed as directories " +"alongside the Python executable to ensure they are available on the path. " +"With the specialized launcher, packages can be located in other locations as " +"there is an opportunity to specify the search path before launching the " +"application." +msgstr "" +"Avec cette dernière approche, les packages doivent être installés en tant " +"que répertoires à côté de l'exécutable Python pour s'assurer qu'ils soient " +"visibles par Python. Avec le lanceur spécialisé, les paquets peuvent être " +"installés dans d'autres emplacements car il y a une possibilité de spécifier " +"le chemin de recherche avant de lancer l'application." + +#: ../Doc/using/windows.rst:468 +msgid "Embedding Python" +msgstr "Embarquer Python" + +#: ../Doc/using/windows.rst:470 +msgid "" +"Applications written in native code often require some form of scripting " +"language, and the embedded Python distribution can be used for this purpose. " +"In general, the majority of the application is in native code, and some part " +"will either invoke ``python.exe`` or directly use ``python3.dll``. For " +"either case, extracting the embedded distribution to a subdirectory of the " +"application installation is sufficient to provide a loadable Python " +"interpreter." +msgstr "" +"Les applications écrites en code natif nécessitent souvent une certaine " +"forme de langage de *scripting*, et la distribution Python intégrée peut " +"être utilisée à cette fin. En général, la majorité de l'application est dans " +"le code natif, qui soit invoque ``python.exe`` soit utilise directement " +"``python3.dll``. Dans les deux cas, l'extraction de la distribution intégrée " +"dans un sous-répertoire de l'installation de l'application est suffisante " +"pour fournir un interpréteur Python chargeable." + +#: ../Doc/using/windows.rst:477 +msgid "" +"As with the application use, packages can be installed to any location as " +"there is an opportunity to specify search paths before initializing the " +"interpreter. Otherwise, there is no fundamental differences between using " +"the embedded distribution and a regular installation." +msgstr "" +"Comme pour l'utilisation de l'application, les paquets peuvent être " +"installés sur n'importe quel emplacement, car il est possible de spécifier " +"des chemins de recherche avant d'initialiser l'interpréteur. Sinon, il n'y a " +"pas de différences fondamentales entre l'utilisation de la distribution " +"embarquée et une installation classique." + +#: ../Doc/using/windows.rst:484 +msgid "Alternative bundles" +msgstr "Paquets alternatifs" + +#: ../Doc/using/windows.rst:486 msgid "" "Besides the standard CPython distribution, there are modified packages " "including additional functionality. The following is a list of popular " "versions and their key features:" msgstr "" +"À part la distribution standard CPython, il y a des paquets modifiés " +"incluant des fonctionnalités additionnelles. La liste qui suit est une liste " +"de versions populaires et de leurs fonctionnalités principales :" -#: ../Doc/using/windows.rst:310 +#: ../Doc/using/windows.rst:491 msgid "`ActivePython `_" -msgstr "" +msgstr "`ActivePython `_" -#: ../Doc/using/windows.rst:310 +#: ../Doc/using/windows.rst:491 msgid "Installer with multi-platform compatibility, documentation, PyWin32" msgstr "" +"Installeur avec une compatibilité multi-plateforme, de la documentation, et " +"*PyWin32*" -#: ../Doc/using/windows.rst:314 +#: ../Doc/using/windows.rst:495 msgid "`Anaconda `_" -msgstr "" +msgstr "`Anaconda `_" -#: ../Doc/using/windows.rst:313 +#: ../Doc/using/windows.rst:494 msgid "" "Popular scientific modules (such as numpy, scipy and pandas) and the " "``conda`` package manager." msgstr "" +"Des modules scientifiques populaires (comme *numpy*, *scipy* et *pandas*) et " +"le gestionnaire de paquets ``conda``." -#: ../Doc/using/windows.rst:318 +#: ../Doc/using/windows.rst:499 msgid "`Canopy `_" -msgstr "" +msgstr "`Canopy `_" -#: ../Doc/using/windows.rst:317 +#: ../Doc/using/windows.rst:498 msgid "" "A \"comprehensive Python analysis environment\" with editors and other " "development tools." msgstr "" +"Un \"environnement d'analyse complet Python\" avec des éditeurs et autres " +"outils de développement." -#: ../Doc/using/windows.rst:322 +#: ../Doc/using/windows.rst:503 msgid "`WinPython `_" -msgstr "" +msgstr "`WinPython `_" -#: ../Doc/using/windows.rst:321 +#: ../Doc/using/windows.rst:502 msgid "" "Windows-specific distribution with prebuilt scientific packages and tools " "for building packages." msgstr "" +"Distribution spécifique à Windows avec des paquets scientifiques pré-" +"compilés et des outils pour construire des paquets." -#: ../Doc/using/windows.rst:324 +#: ../Doc/using/windows.rst:505 msgid "" "Note that these packages may not include the latest versions of Python or " "other libraries, and are not maintained or supported by the core Python team." msgstr "" +"Notez que ces paquets peuvent ne pas inclure la dernière version de Python " +"ou d'autres bibliothèques, et ne sont pas maintenus ni supportés par les " +"*core devs* Python." -#: ../Doc/using/windows.rst:330 +#: ../Doc/using/windows.rst:511 msgid "Configuring Python" -msgstr "" +msgstr "Configurer Python" -#: ../Doc/using/windows.rst:332 +#: ../Doc/using/windows.rst:513 msgid "" "To run Python conveniently from a command prompt, you might consider " "changing some default environment variables in Windows. While the installer " @@ -669,30 +1208,45 @@ msgid "" "is only reliable for a single, system-wide installation. If you regularly " "use multiple versions of Python, consider using the :ref:`launcher`." msgstr "" +"Pour exécuter Python confortablement à partir d'une invite de commandes, " +"vous pouvez envisager de modifier certaines variables d'environnement par " +"défaut dans Windows. Bien que l'installateur offre une option pour " +"configurer les variables ``PATH`` et ``PATHEXT`` pour vous, ce n'est fiable " +"que pour une seule installation à l'échelle du système. Si vous utilisez " +"régulièrement plusieurs versions de Python, pensez à utiliser le :ref:" +"`launcher`." -#: ../Doc/using/windows.rst:342 +#: ../Doc/using/windows.rst:523 msgid "Excursus: Setting environment variables" -msgstr "" +msgstr "Digression : Définition des variables d'environnement" -#: ../Doc/using/windows.rst:344 +#: ../Doc/using/windows.rst:525 msgid "" "Windows allows environment variables to be configured permanently at both " "the User level and the System level, or temporarily in a command prompt." msgstr "" +"Windows permet de configurer les variables d'environnement de façon " +"permanente au niveau de l'utilisateur et du système, ou temporairement dans " +"une invite de commandes." -#: ../Doc/using/windows.rst:347 +#: ../Doc/using/windows.rst:528 msgid "" "To temporarily set environment variables, open Command Prompt and use the :" "command:`set` command:" msgstr "" +"Pour définir temporairement les variables d'environnement, ouvrez l'invite " +"de commandes et utilisez la commande :command:`set` :" -#: ../Doc/using/windows.rst:356 +#: ../Doc/using/windows.rst:537 msgid "" "These changes will apply to any further commands executed in that console, " "and will be inherited by any applications started from the console." msgstr "" +"Ces modifications s'appliqueront à toutes les autres commandes exécutées " +"dans cette console et seront héritées par toutes les applications démarrées " +"à partir de cette console." -#: ../Doc/using/windows.rst:359 +#: ../Doc/using/windows.rst:540 msgid "" "Including the variable name within percent signs will expand to the existing " "value, allowing you to add your new value at either the start or the end. " @@ -700,8 +1254,12 @@ msgid "" "exe` to the start is a common way to ensure the correct version of Python is " "launched." msgstr "" +"Un nom de variable entre des signes pour cent sera remplacé par sa valeur, " +"vous permettant d'ajouter votre nouvelle valeur au début ou à la fin. " +"Ajouter :program:`python.exe` au début de :envvar:`PATH` est un moyen " +"courant de s'assurer que la version correcte de Python est lancée." -#: ../Doc/using/windows.rst:365 +#: ../Doc/using/windows.rst:546 msgid "" "To permanently modify the default environment variables, click Start and " "search for 'edit environment variables', or open System properties, :" @@ -710,75 +1268,99 @@ msgid "" "variables. To change System variables, you need non-restricted access to " "your machine (i.e. Administrator rights)." msgstr "" +"Pour modifier définitivement les variables d'environnement par défaut, " +"recherchez « modifier les variables d'environnement », via le menu démarrer, " +"ou ouvrez « Propriétés Système », :guilabel:`Paramètres Système Avancés` et " +"cliquez sur le bouton :guilabel:`Variables d'Environnement`. Dans cette " +"boîte de dialogue, vous pouvez ajouter ou modifier des variables " +"utilisateurs et systèmes. Pour modifier les variables systèmes, vous avez " +"besoin d'un accès non restreint à votre ordinateur (c'est-à-dire aux droits " +"d'administrateur)." -#: ../Doc/using/windows.rst:374 +#: ../Doc/using/windows.rst:555 msgid "" "Windows will concatenate User variables *after* System variables, which may " "cause unexpected results when modifying :envvar:`PATH`." msgstr "" +"Windows va concaténer les variables utilisateurs *après* les variables " +"systèmes, ce qui peut provoquer des résultats inattendus lors de la " +"modification de :envvar:`PATH`." -#: ../Doc/using/windows.rst:377 +#: ../Doc/using/windows.rst:558 msgid "" "The :envvar:`PYTHONPATH` variable is used by all versions of Python 2 and " "Python 3, so you should not permanently configure this variable unless it " "only includes code that is compatible with all of your installed Python " "versions." msgstr "" +"La variable :envvar:`PYTHONPATH` est utilisée par toutes les versions de " +"Python 2 et Python 3, vous ne devez donc pas configurer cette variable de " +"façon permanente à moins qu'elle n'ajoute que du code compatible avec toutes " +"les versions de Python installées." -#: ../Doc/using/windows.rst:385 +#: ../Doc/using/windows.rst:566 msgid "https://www.microsoft.com/en-us/wdsi/help/folder-variables" -msgstr "" +msgstr "https://www.microsoft.com/en-us/wdsi/help/folder-variables" -#: ../Doc/using/windows.rst:385 +#: ../Doc/using/windows.rst:566 msgid "Environment variables in Windows NT" -msgstr "" +msgstr "Variables d'environnement dans Windows NT" -#: ../Doc/using/windows.rst:388 +#: ../Doc/using/windows.rst:569 msgid "https://technet.microsoft.com/en-us/library/cc754250.aspx" -msgstr "" +msgstr "https://technet.microsoft.com/en-us/library/cc754250.aspx" -#: ../Doc/using/windows.rst:388 +#: ../Doc/using/windows.rst:569 msgid "The SET command, for temporarily modifying environment variables" msgstr "" +"La commande SET, pour modifier temporairement les variables d'environnement" -#: ../Doc/using/windows.rst:391 +#: ../Doc/using/windows.rst:572 msgid "https://technet.microsoft.com/en-us/library/cc755104.aspx" -msgstr "" +msgstr "https://technet.microsoft.com/en-us/library/cc755104.aspx" -#: ../Doc/using/windows.rst:391 +#: ../Doc/using/windows.rst:572 msgid "The SETX command, for permanently modifying environment variables" msgstr "" +"La commande SETX, pour modifier de façon permanente les variables " +"d'environnement" -#: ../Doc/using/windows.rst:394 +#: ../Doc/using/windows.rst:575 msgid "" "https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-" "variables-in-windows-xp" msgstr "" +"https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-" +"variables-in-windows-xp" -#: ../Doc/using/windows.rst:394 +#: ../Doc/using/windows.rst:575 msgid "How To Manage Environment Variables in Windows XP" msgstr "Comment gérer les variables d'environnement sous Windows XP" -#: ../Doc/using/windows.rst:396 +#: ../Doc/using/windows.rst:577 msgid "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" -msgstr "" +msgstr "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" -#: ../Doc/using/windows.rst:397 +#: ../Doc/using/windows.rst:578 msgid "Setting Environment variables, Louis J. Farrugia" -msgstr "Définir les variables d'environnement, Louis J. Farrugia" +msgstr "Définir les variables d'environnement, *Louis J. Farrugia*" -#: ../Doc/using/windows.rst:402 +#: ../Doc/using/windows.rst:583 msgid "Finding the Python executable" msgstr "Trouver l'exécutable Python" -#: ../Doc/using/windows.rst:406 +#: ../Doc/using/windows.rst:587 msgid "" "Besides using the automatically created start menu entry for the Python " "interpreter, you might want to start Python in the command prompt. The " "installer has an option to set that up for you." msgstr "" +"En plus d'utiliser l'entrée du menu Démarrer automatiquement créée pour " +"l'interpréteur Python, vous souhaiterez peut-être démarrer Python depuis " +"l'invite de commandes. L'installateur a une option pour installer cela pour " +"vous." -#: ../Doc/using/windows.rst:410 +#: ../Doc/using/windows.rst:591 msgid "" "On the first page of the installer, an option labelled \"Add Python to PATH" "\" may be selected to have the installer add the install location into the :" @@ -788,8 +1370,16 @@ msgid "" "your scripts with command line options, see :ref:`using-on-cmdline` " "documentation." msgstr "" +"Sur la première page de l'installateur, une option intitulée \"Ajouter " +"Python au *PATH*\" peut être sélectionnée pour que l'installateur ajoute " +"l'emplacement d'installation dans le :envvar:`PATH`. L'emplacement du " +"dossier :file:`Scripts\\\\` y est également ajouté. Cela vous permet de " +"taper :command:`Python` pour exécuter l'interpréteur, et :command:`pip` pour " +"l'installateur de paquets. Ainsi, vous pouvez également exécuter vos scripts " +"avec les options de ligne de commande, voir la documentation :ref:`using-on-" +"cmdline`." -#: ../Doc/using/windows.rst:417 +#: ../Doc/using/windows.rst:598 msgid "" "If you don't enable this option at install time, you can always re-run the " "installer, select Modify, and enable it. Alternatively, you can manually " @@ -799,82 +1389,117 @@ msgid "" "entries. An example variable could look like this (assuming the first two " "entries already existed)::" msgstr "" +"Si vous n'activez pas cette option au moment de l'installation, vous pouvez " +"toujours ré-exécuter l'installateur, sélectionner Modifier et l'activer. " +"Vous pouvez également modifier manuellement le :envvar:`PATH` à l'aide des " +"instructions de :ref:`setting-envvars`. Vous devez définir votre variable " +"d'environnement :envvar:`PATH` pour inclure le répertoire de votre " +"installation Python, délimité par un point-virgule des autres entrées. Une " +"variable d'exemple pourrait ressembler à ceci (en supposant que les deux " +"premières entrées existaient déjà) ::" -#: ../Doc/using/windows.rst:430 +#: ../Doc/using/windows.rst:611 msgid "Python Launcher for Windows" -msgstr "" +msgstr "Lanceur Python pour Windows" -#: ../Doc/using/windows.rst:434 +#: ../Doc/using/windows.rst:615 msgid "" "The Python launcher for Windows is a utility which aids in locating and " "executing of different Python versions. It allows scripts (or the command-" "line) to indicate a preference for a specific Python version, and will " "locate and execute that version." msgstr "" +"Le lanceur Python pour Windows est un utilitaire qui facilite la recherche " +"et l'exécution de différentes versions de Python. Il permet aux scripts (ou " +"à la ligne de commande) d'indiquer une préférence pour une version Python " +"spécifique, cherchera et exécutera cette version." -#: ../Doc/using/windows.rst:439 +#: ../Doc/using/windows.rst:620 msgid "" "Unlike the :envvar:`PATH` variable, the launcher will correctly select the " "most appropriate version of Python. It will prefer per-user installations " "over system-wide ones, and orders by language version rather than using the " "most recently installed version." msgstr "" +"Contrairement à la variable :envvar:`PATH`, le lanceur sélectionne " +"correctement la version la plus appropriée de Python. Il préfère les " +"installations par utilisateur sur celles du système, et les trie par version " +"plutôt que d'utiliser la version la plus récente installée." -#: ../Doc/using/windows.rst:445 +#: ../Doc/using/windows.rst:625 +msgid "The launcher was originally specified in :pep:`397`." +msgstr "Le lanceur a été initialement spécifié dans :pep:`397`." + +#: ../Doc/using/windows.rst:628 msgid "Getting started" -msgstr "" +msgstr "Pour commencer" -#: ../Doc/using/windows.rst:448 +#: ../Doc/using/windows.rst:631 msgid "From the command-line" msgstr "Depuis la ligne de commande" -#: ../Doc/using/windows.rst:452 +#: ../Doc/using/windows.rst:635 msgid "" "System-wide installations of Python 3.3 and later will put the launcher on " "your :envvar:`PATH`. The launcher is compatible with all available versions " "of Python, so it does not matter which version is installed. To check that " "the launcher is available, execute the following command in Command Prompt:" msgstr "" +"Les installations systèmes de Python 3.3 et ultérieur mettent le lanceur " +"dans votre :envvar:`PATH`. Le lanceur est compatible avec toutes les " +"versions disponibles de Python, peu importe lesquelles sont installées. Pour " +"vérifier que le lanceur est disponible, exécutez la commande suivante dans " +"l'invite de commandes :" -#: ../Doc/using/windows.rst:461 +#: ../Doc/using/windows.rst:644 msgid "" "You should find that the latest version of Python you have installed is " "started - it can be exited as normal, and any additional command-line " "arguments specified will be sent directly to Python." msgstr "" +"Vous devriez voir se lancer la dernière version de Python installée — il " +"peut être quitté normalement, et tous les arguments de ligne de commande " +"supplémentaires spécifiés seront envoyés directement à Python." -#: ../Doc/using/windows.rst:465 +#: ../Doc/using/windows.rst:648 msgid "" "If you have multiple versions of Python installed (e.g., 2.7 and |version|) " "you will have noticed that Python |version| was started - to launch Python " "2.7, try the command:" msgstr "" +"Si plusieurs versions de Python sont installées (par exemple, 2.7 et |" +"version|), vous aurez remarqué que Python |version| se lance -- pour lancer " +"Python 2.7, essayez la commande :" -#: ../Doc/using/windows.rst:473 +#: ../Doc/using/windows.rst:656 msgid "" "If you want the latest version of Python 2.x you have installed, try the " "command:" msgstr "" +"Si vous voulez que la dernière version de Python 2.x que vous avez installé, " +"essayez la commande :" -#: ../Doc/using/windows.rst:480 +#: ../Doc/using/windows.rst:663 msgid "You should find the latest version of Python 2.x starts." -msgstr "" +msgstr "Remarquez que la dernière version de Python 2.x démarre." -#: ../Doc/using/windows.rst:482 +#: ../Doc/using/windows.rst:665 msgid "If you see the following error, you do not have the launcher installed:" -msgstr "" +msgstr "Si vous voyez l'erreur suivante, le lanceur n'est pas installé :" -#: ../Doc/using/windows.rst:489 +#: ../Doc/using/windows.rst:672 msgid "" "Per-user installations of Python do not add the launcher to :envvar:`PATH` " "unless the option was selected on installation." msgstr "" +"Les installations par utilisateur de Python n'ajoutent pas le lanceur à :" +"envvar:`PATH` sauf si l'option a été sélectionnée lors de l'installation." -#: ../Doc/using/windows.rst:493 +#: ../Doc/using/windows.rst:676 msgid "Virtual environments" -msgstr "" +msgstr "Environnements virtuels" -#: ../Doc/using/windows.rst:497 +#: ../Doc/using/windows.rst:680 msgid "" "If the launcher is run with no explicit Python version specification, and a " "virtual environment (created with the standard library :mod:`venv` module or " @@ -883,28 +1508,40 @@ msgid "" "interpreter, either deactivate the virtual environment, or explicitly " "specify the global Python version." msgstr "" +"Si le lanceur est exécuté sans version de Python explicite et qu'un " +"environnement virtuel (créé avec le module de la bibliothèque standard :mod:" +"`venv` ou l'outil externe ``virtualenv``) est actif, le lanceur exécute " +"l'interpréteur de l'environnement virtuel plutôt que l'interpréteur global. " +"Pour exécuter l'interpréteur global, désactivez l'environnement virtuel ou " +"spécifiez explicitement la version Python globale." -#: ../Doc/using/windows.rst:505 +#: ../Doc/using/windows.rst:688 msgid "From a script" -msgstr "" +msgstr "À partir d'un script" -#: ../Doc/using/windows.rst:507 +#: ../Doc/using/windows.rst:690 msgid "" "Let's create a test Python script - create a file called ``hello.py`` with " "the following contents" msgstr "" +"Créons un script Python de test, créez un fichier appelé ``hello.py`` avec " +"le contenu suivant" -#: ../Doc/using/windows.rst:516 +#: ../Doc/using/windows.rst:699 msgid "From the directory in which hello.py lives, execute the command:" msgstr "" +"À partir du répertoire dans lequel se trouve ``hello.py``, exécutez la " +"commande :" -#: ../Doc/using/windows.rst:522 +#: ../Doc/using/windows.rst:705 msgid "" "You should notice the version number of your latest Python 2.x installation " "is printed. Now try changing the first line to be:" msgstr "" +"Vous devriez voir le numéro de version du Python 2.x le plus récemment " +"installé. Maintenant, essayez de changer la première ligne en :" -#: ../Doc/using/windows.rst:529 +#: ../Doc/using/windows.rst:712 msgid "" "Re-executing the command should now print the latest Python 3.x information. " "As with the above command-line examples, you can specify a more explicit " @@ -912,20 +1549,30 @@ msgid "" "first line to ``#! python2.6`` and you should find the 2.6 version " "information printed." msgstr "" +"La commande doit maintenant afficher les dernières informations de Python 3." +"x. Comme pour les exemples de ligne de commande ci-dessus, vous pouvez " +"spécifier un qualificateur de version plus explicite. En supposant que vous " +"avez installé Python 2.6, essayez de changer la première ligne à ``#! " +"python2.6`` et vous devriez trouver les informations de version 2.6 " +"imprimées." -#: ../Doc/using/windows.rst:535 +#: ../Doc/using/windows.rst:718 msgid "" "Note that unlike interactive use, a bare \"python\" will use the latest " "version of Python 2.x that you have installed. This is for backward " "compatibility and for compatibility with Unix, where the command ``python`` " "typically refers to Python 2." msgstr "" +"Notez que, contrairement à l'utilisation interactive, un \"python\" nu " +"utilisera la dernière version de Python 2.x que vous avez installé. C'est " +"pour la compatibilité ascendante et pour la compatibilité avec UNIX, où la " +"commande ``python`` fait généralement référence à Python 2." -#: ../Doc/using/windows.rst:541 +#: ../Doc/using/windows.rst:724 msgid "From file associations" -msgstr "" +msgstr "À partir d'associations de fichiers" -#: ../Doc/using/windows.rst:543 +#: ../Doc/using/windows.rst:726 msgid "" "The launcher should have been associated with Python files (i.e. ``.py``, ``." "pyw``, ``.pyc`` files) when it was installed. This means that when you " @@ -933,18 +1580,27 @@ msgid "" "be used, and therefore you can use the same facilities described above to " "have the script specify the version which should be used." msgstr "" +"Le lanceur aurait dû être associé à des fichiers Python (des fichiers comme " +"``.py``, ``.pyw``, ``.pyc``) lorsqu'il a été installé. Cela signifie que " +"lorsque vous double-cliquez sur l'un de ces fichiers à partir de " +"l'Explorateur Windows, le lanceur sera utilisé, et donc vous pouvez utiliser " +"les mêmes installations décrites ci-dessus pour que le script spécifie la " +"version qui doit être utilisée." -#: ../Doc/using/windows.rst:549 +#: ../Doc/using/windows.rst:732 msgid "" "The key benefit of this is that a single launcher can support multiple " "Python versions at the same time depending on the contents of the first line." msgstr "" +"L'avantage principal de ceci est qu'un seul lanceur peut prendre en charge " +"plusieurs versions de Python en même temps en fonction du contenu de la " +"première ligne." -#: ../Doc/using/windows.rst:553 +#: ../Doc/using/windows.rst:736 msgid "Shebang Lines" -msgstr "" +msgstr "Lignes Shebang" -#: ../Doc/using/windows.rst:555 +#: ../Doc/using/windows.rst:738 msgid "" "If the first line of a script file starts with ``#!``, it is known as a " "\"shebang\" line. Linux and other Unix like operating systems have native " @@ -953,35 +1609,46 @@ msgid "" "facilities to be used with Python scripts on Windows and the examples above " "demonstrate their use." msgstr "" +"Si la première ligne d'un fichier de script commence par ``#!``, elle est " +"connue sous le nom de ligne \"*shebang*\". Linux et d'autres systèmes basés " +"sur Unix ont une prise en charge native de ces lignes et les *shebangs* sont " +"couramment utilisés sur ces systèmes pour indiquer comment un script doit " +"être exécuté. Ce lanceur permet aux mêmes installations d'être utilisés avec " +"des scripts Python sur Windows et les exemples ci-dessus démontrent leur " +"utilisation." -#: ../Doc/using/windows.rst:562 +#: ../Doc/using/windows.rst:745 msgid "" "To allow shebang lines in Python scripts to be portable between Unix and " "Windows, this launcher supports a number of 'virtual' commands to specify " "which interpreter to use. The supported virtual commands are:" msgstr "" +"Pour permettre aux *shebang* dans les scripts Python d'être portables entre " +"UNIX et Windows, ce lanceur prend en charge un certain nombre de commandes " +"« virtuelles » pour spécifier l'interpréteur à utiliser. Les commandes " +"virtuelles prises en charge sont :" -#: ../Doc/using/windows.rst:566 +#: ../Doc/using/windows.rst:749 msgid "``/usr/bin/env python``" -msgstr "" +msgstr "``/usr/bin/env python``" -#: ../Doc/using/windows.rst:567 +#: ../Doc/using/windows.rst:750 msgid "``/usr/bin/python``" -msgstr "" +msgstr "``/usr/bin/python``" -#: ../Doc/using/windows.rst:568 +#: ../Doc/using/windows.rst:751 msgid "``/usr/local/bin/python``" -msgstr "" +msgstr "``/usr/local/bin/python``" -#: ../Doc/using/windows.rst:569 +#: ../Doc/using/windows.rst:752 msgid "``python``" -msgstr "" +msgstr "``python``" -#: ../Doc/using/windows.rst:571 +#: ../Doc/using/windows.rst:754 msgid "For example, if the first line of your script starts with" -msgstr "" +msgstr "Par exemple, si la première ligne de votre script commence par" -#: ../Doc/using/windows.rst:577 +#: ../Doc/using/windows.rst:760 msgid "" "The default Python will be located and used. As many Python scripts written " "to work on Unix will already have this line, you should find these scripts " @@ -989,16 +1656,38 @@ msgid "" "script on Windows which you hope will be useful on Unix, you should use one " "of the shebang lines starting with ``/usr``." msgstr "" +"Le Python par défaut sera trouvé et utilisé. Comme de nombreux scripts " +"Python écrits pour fonctionner sur UNIX auront déjà cette ligne, ils " +"devraient fonctionner avec le lanceur sans modification. Si vous écrivez un " +"nouveau script sur Windows et que vous pensez qu'il sera utile sur UNIX, " +"vous devez utiliser l'une des lignes *shebang* commençant par ``/usr``." -#: ../Doc/using/windows.rst:583 +#: ../Doc/using/windows.rst:766 msgid "" "Any of the above virtual commands can be suffixed with an explicit version " -"(either just the major version, or the major and minor version) - for " -"example ``/usr/bin/python2.7`` - which will cause that specific version to " -"be located and used." +"(either just the major version, or the major and minor version). Furthermore " +"the 32-bit version can be requested by adding \"-32\" after the minor " +"version. I.e. ``/usr/bin/python2.7-32`` will request usage of the 32-bit " +"python 2.7." +msgstr "" +"Les commandes virtuelles ci-dessus peuvent être suffixées avec une version " +"explicite (soit seulement la version principale, soit la version principale " +"et mineure). De plus la version 32-bit peut être demandée en ajoutant " +"**-32** après le numéro de version mineur. Par exemple ``/usr/bin/" +"python2.7-32`` demande d’utiliser la version 32-bit de Python 2.7." + +#: ../Doc/using/windows.rst:774 +msgid "" +"Beginning with python launcher 3.7 it is possible to request 64-bit version " +"by the \"-64\" suffix. Furthermore it is possible to specify a major and " +"architecture without minor (i.e. ``/usr/bin/python3-64``)." msgstr "" +"Depuis la version 3.7 du lanceur Python, il est possible de demander une " +"version *64-bit* en utilisant le suffixe **-64**. De plus il est possible de " +"spécifier une version majeure et une architecture sans version mineure (par " +"exemple ``/usr/bin/python3-64``)." -#: ../Doc/using/windows.rst:588 +#: ../Doc/using/windows.rst:778 msgid "" "The ``/usr/bin/env`` form of shebang line has one further special property. " "Before looking for installed Python interpreters, this form will search the " @@ -1006,77 +1695,114 @@ msgid "" "behaviour of the Unix ``env`` program, which performs a :envvar:`PATH` " "search." msgstr "" +"La forme ``/usr/bin/env`` de ligne *shebang* possède une autre propriété " +"spéciale. Avant de rechercher les interpréteurs Python installés, cette " +"forme recherche d'abord l'exécutable dans le :envvar:`PATH`. Cela correspond " +"au comportement du programme Unix ``env``, qui effectue une recherche dans :" +"envvar:`PATH`." -#: ../Doc/using/windows.rst:594 +#: ../Doc/using/windows.rst:784 msgid "Arguments in shebang lines" -msgstr "" +msgstr "Arguments dans les lignes *shebang*" -#: ../Doc/using/windows.rst:596 +#: ../Doc/using/windows.rst:786 msgid "" "The shebang lines can also specify additional options to be passed to the " "Python interpreter. For example, if you have a shebang line:" msgstr "" +"Les lignes *shebang* peuvent également spécifier des options supplémentaires " +"à passer à l'interpréteur Python. Par exemple, si vous avez une ligne " +"*shebang* :" -#: ../Doc/using/windows.rst:603 +#: ../Doc/using/windows.rst:793 msgid "Then Python will be started with the ``-v`` option" -msgstr "" +msgstr "Alors, Python sera démarré avec l'option ``-v``" -#: ../Doc/using/windows.rst:606 +#: ../Doc/using/windows.rst:796 msgid "Customization" -msgstr "" +msgstr "Personnalisation" -#: ../Doc/using/windows.rst:609 +#: ../Doc/using/windows.rst:799 msgid "Customization via INI files" -msgstr "" +msgstr "Personnalisation via des fichiers INI" -#: ../Doc/using/windows.rst:611 +#: ../Doc/using/windows.rst:801 msgid "" "Two .ini files will be searched by the launcher - ``py.ini`` in the current " "user's \"application data\" directory (i.e. the directory returned by " "calling the Windows function ``SHGetFolderPath`` with " "``CSIDL_LOCAL_APPDATA``) and ``py.ini`` in the same directory as the " "launcher. The same .ini files are used for both the 'console' version of the " -"launcher (i.e. py.exe) and for the 'windows' version (i.e. pyw.exe)" +"launcher (i.e. py.exe) and for the 'windows' version (i.e. pyw.exe)." msgstr "" +"Deux fichiers ``.ini`` seront recherchés par le lanceur -- ``py.ini`` dans " +"le répertoire \"Application Data\" de l'utilisateur actuel (c'est-à-dire le " +"répertoire retourné en appelant la fonction Windows ``SHGetFolderPath`` avec " +"``CSIDL_LOCAL_APPDATA``) et ``py.ini`` dans le même répertoire que le " +"lanceur. Les mêmes fichiers ``.ini`` sont utilisés à la fois pour la version " +"« console » du lanceur (c'est-à-dire ``py.exe``) et pour la version " +"« fenêtrée » (c'est-à-dire ``pyw.exe``)." -#: ../Doc/using/windows.rst:618 +#: ../Doc/using/windows.rst:808 msgid "" "Customization specified in the \"application directory\" will have " "precedence over the one next to the executable, so a user, who may not have " "write access to the .ini file next to the launcher, can override commands in " -"that global .ini file)" +"that global .ini file." msgstr "" +"La personnalisation spécifiée dans le \"répertoire de l'application\" aura " +"la priorité sur celle à côté de l'exécutable, de sorte qu'un utilisateur, " +"qui peut ne pas avoir accès en écriture au fichier ``.ini`` à côté du " +"lanceur, peut substituer des commandes dans ce fichier ``.ini`` global)" -#: ../Doc/using/windows.rst:623 +#: ../Doc/using/windows.rst:813 msgid "Customizing default Python versions" -msgstr "" +msgstr "Personnalisation des versions Python par défaut" -#: ../Doc/using/windows.rst:625 +#: ../Doc/using/windows.rst:815 msgid "" "In some cases, a version qualifier can be included in a command to dictate " "which version of Python will be used by the command. A version qualifier " "starts with a major version number and can optionally be followed by a " -"period ('.') and a minor version specifier. If the minor qualifier is " -"specified, it may optionally be followed by \"-32\" to indicate the 32-bit " -"implementation of that version be used." +"period ('.') and a minor version specifier. Furthermore it is possible to " +"specifiy if a 32 or 64 bit implementation shall be requested by adding " +"\"-32\" or \"-64\"." msgstr "" +"Dans certains cas, un qualificateur de version peut être inclus dans une " +"commande pour dicter quelle version de Python sera utilisée par la commande. " +"Un qualificateur de version commence par un numéro de version majeure et " +"peut éventuellement être suivi d'un point (``.``) et d'un spécificateur de " +"version secondaire. De plus il est possible de préciser si une " +"implémentation 32 ou 64 bit doit être demandée en ajoutant **-32** ou " +"**-64**." -#: ../Doc/using/windows.rst:632 +#: ../Doc/using/windows.rst:821 msgid "" "For example, a shebang line of ``#!python`` has no version qualifier, while " "``#!python3`` has a version qualifier which specifies only a major version." msgstr "" +"Par exemple, une ligne *shebang* valant ``#!python`` n'a pas de " +"qualificateur de version, tandis que ``#!python3`` a un qualificateur de " +"version qui ne spécifie qu'une version majeure." -#: ../Doc/using/windows.rst:635 +#: ../Doc/using/windows.rst:824 msgid "" -"If no version qualifiers are found in a command, the environment variable " -"``PY_PYTHON`` can be set to specify the default version qualifier - the " -"default value is \"2\". Note this value could specify just a major version " -"(e.g. \"2\") or a major.minor qualifier (e.g. \"2.6\"), or even major." -"minor-32." +"If no version qualifiers are found in a command, the environment variable :" +"envvar:`PY_PYTHON` can be set to specify the default version qualifier. If " +"it is not set, the default is \"3\". The variable can specify any value that " +"may be passed on the command line, such as \"3\", \"3.7\", \"3.7-32\" or " +"\"3.7-64\". (Note that the \"-64\" option is only available with the " +"launcher included with Python 3.7 or newer.)" msgstr "" +"Si aucun qualificateur de version n'est trouvé dans une commande, la " +"variable d'environnement :envvar:`PY_PYTHON` peut être définie pour " +"spécifier le qualificateur de version par défaut. Si non définie, la valeur " +"par défaut est ``3``. La variable peut spécifier n’importe quelle valeur qui " +"peut être passée dans la ligne de commande telle que ``3``, ``3.7``, " +"``3.7-32`` ou ``3.7-64``. (Notez que l’option **-64** est seulement " +"disponible avec le lanceur inclus avec Python 3.7 ou plus récent.)" -#: ../Doc/using/windows.rst:640 +#: ../Doc/using/windows.rst:831 msgid "" "If no minor version qualifiers are found, the environment variable " "``PY_PYTHON{major}`` (where ``{major}`` is the current major version " @@ -1086,8 +1812,15 @@ msgid "" "is likely, although not guaranteed, to be the most recently installed " "version in that family." msgstr "" +"Si aucun qualificateur de version mineure n'est trouvé, la variable " +"d'environnement ``PY_PYTHON{major}`` (où ``{major}`` est le qualificateur de " +"version principale actuelle tel que déterminé ci-dessus) peut être définie " +"pour spécifier la version complète. Si aucune option de ce type n'est " +"trouvée, le lanceur énumérera les versions de Python installées et utilisera " +"la dernière version mineure trouvée pour la version principale, qui est " +"probablement la plus récemment installée dans cette famille." -#: ../Doc/using/windows.rst:648 +#: ../Doc/using/windows.rst:839 msgid "" "On 64-bit Windows with both 32-bit and 64-bit implementations of the same " "(major.minor) Python version installed, the 64-bit version will always be " @@ -1097,48 +1830,72 @@ msgid "" "of the launcher can be predicted knowing only what versions are installed on " "the PC and without regard to the order in which they were installed (i.e., " "without knowing whether a 32 or 64-bit version of Python and corresponding " -"launcher was installed last). As noted above, an optional \"-32\" suffix can " -"be used on a version specifier to change this behaviour." -msgstr "" - -#: ../Doc/using/windows.rst:659 +"launcher was installed last). As noted above, an optional \"-32\" or \"-64\" " +"suffix can be used on a version specifier to change this behaviour." +msgstr "" +"Sur Windows 64-bits avec les implémentations 32-bits et 64-bits de la même " +"version Python (``major.minor``) installée, la version 64-bit est toujours " +"préférée. Cela est vrai pour les implémentations 32-bits et 64-bits du " +"lanceur – un lanceur 32-bits préfère exécuter une installation Python de 64-" +"bits de la version spécifiée si elle est disponible. Le comportement du " +"lanceur est donc prévisible en sachant seulement quelles versions sont " +"installées sur le PC et sans tenir compte de l'ordre dans lequel ils ont été " +"installés (i.e., sans savoir si une version 32 ou 64-bit de Python et le " +"lanceur correspondant a été installé en dernier). Comme indiqué ci-dessus, " +"un suffixe optionnel ``-32`` ou ``-64`` peut être utilisé sur un " +"spécificateur de version pour modifier ce comportement." + +#: ../Doc/using/windows.rst:850 msgid "Examples:" -msgstr "Exemples : ::" +msgstr "Exemples :" -#: ../Doc/using/windows.rst:661 +#: ../Doc/using/windows.rst:852 msgid "" "If no relevant options are set, the commands ``python`` and ``python2`` will " "use the latest Python 2.x version installed and the command ``python3`` will " "use the latest Python 3.x installed." msgstr "" +"Si aucune option pertinente n'est définie, les commandes ``python`` et " +"``python2`` utiliseront la dernière version de Python 2.x installée et la " +"commande ``python3`` utilisera le dernier Python 3.x installé." -#: ../Doc/using/windows.rst:665 +#: ../Doc/using/windows.rst:856 msgid "" "The commands ``python3.1`` and ``python2.7`` will not consult any options at " "all as the versions are fully specified." msgstr "" +"Les commandes ``python3.1`` et ``python2.7`` ne consultent aucune option du " +"tout car les versions sont entièrement spécifiées." -#: ../Doc/using/windows.rst:668 +#: ../Doc/using/windows.rst:859 msgid "" "If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use " "the latest installed Python 3 version." msgstr "" +"Si ``PY_PYTHON=3``, les commandes ``python`` et ``python3`` utiliseront la " +"dernière version de Python 3 installée." -#: ../Doc/using/windows.rst:671 +#: ../Doc/using/windows.rst:862 msgid "" "If ``PY_PYTHON=3.1-32``, the command ``python`` will use the 32-bit " "implementation of 3.1 whereas the command ``python3`` will use the latest " "installed Python (PY_PYTHON was not considered at all as a major version was " "specified.)" msgstr "" +"Si ``PY_PYTHON=3.1-32``, la commande ``python`` utilisera l'implémentation " +"32-bits de 3.1 alors que la commande ``python3`` utilisera le dernier Python " +"installé (*PY_PYTHON* n'a pas été considéré du tout comme une version " +"majeure a été spécifiée.)" -#: ../Doc/using/windows.rst:676 +#: ../Doc/using/windows.rst:867 msgid "" "If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1``, the commands ``python`` and " "``python3`` will both use specifically 3.1" msgstr "" +"Si ``PY_PYTHON=3`` et ``PY_PYTHON3=3.1``, les commandes ``python`` et " +"``python3`` utiliseront spécifiquement 3.1" -#: ../Doc/using/windows.rst:679 +#: ../Doc/using/windows.rst:870 msgid "" "In addition to environment variables, the same settings can be configured in " "the .INI file used by the launcher. The section in the INI file is called " @@ -1147,26 +1904,35 @@ msgid "" "the INI file are case insensitive.) The contents of an environment variable " "will override things specified in the INI file." msgstr "" +"En plus des variables d'environnement, les mêmes paramètres peuvent être " +"configurés dans le ``.INI`` utilisé par le lanceur. La section dans le " +"fichier INI est appelée ``[defaults]`` et le nom de la clé sera le même que " +"les variables d'environnement sans le préfixe ``PY_`` principal (et notez " +"que les noms de clés dans le fichier **INI** sont insensibles à la case.) Le " +"contenu d'une variable d'environnement remplacera les éléments spécifiés " +"dans le fichier *INI*." -#: ../Doc/using/windows.rst:686 +#: ../Doc/using/windows.rst:877 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" -#: ../Doc/using/windows.rst:688 +#: ../Doc/using/windows.rst:879 msgid "Setting ``PY_PYTHON=3.1`` is equivalent to the INI file containing:" -msgstr "" +msgstr "Le paramètre ``PY_PYTHON=3.1`` équivaut au fichier **INI** contenant :" -#: ../Doc/using/windows.rst:695 +#: ../Doc/using/windows.rst:886 msgid "" "Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1`` is equivalent to the INI file " "containing:" msgstr "" +"Le paramètre ``PY_PYTHON=3`` et ``PY_PYTHON3=3.1`` équivaut au fichier *INI* " +"contenant :" -#: ../Doc/using/windows.rst:705 +#: ../Doc/using/windows.rst:896 msgid "Diagnostics" -msgstr "" +msgstr "Diagnostics" -#: ../Doc/using/windows.rst:707 +#: ../Doc/using/windows.rst:898 msgid "" "If an environment variable ``PYLAUNCH_DEBUG`` is set (to any value), the " "launcher will print diagnostic information to stderr (i.e. to the console). " @@ -1175,12 +1941,19 @@ msgid "" "particular version was chosen and the exact command-line used to execute the " "target Python." msgstr "" +"Si une variable d'environnement ``PYLAUNCH_DEBUG`` est définie (à n'importe " +"quelle valeur), le lanceur affichera des informations de diagnostic sur " +"*stderr* (c'est-à-dire sur la console). Bien que ces informations " +"parviennent à être en même temps nombreuses et concises, elles devraient " +"vous permettre de voir quelles versions de Python ont été trouvées, pourquoi " +"une version particulière a été choisie et la ligne de commande exacte " +"utilisée pour exécuter le Python cible." -#: ../Doc/using/windows.rst:719 +#: ../Doc/using/windows.rst:910 msgid "Finding modules" -msgstr "" +msgstr "Recherche de modules" -#: ../Doc/using/windows.rst:721 +#: ../Doc/using/windows.rst:912 msgid "" "Python usually stores its library (and thereby your site-packages folder) in " "the installation directory. So, if you had installed Python to :file:`C:\\" @@ -1188,8 +1961,13 @@ msgid "" "\\\\` and third-party modules should be stored in :file:`C:\\\\Python\\\\Lib" "\\\\site-packages\\\\`." msgstr "" +"Python stocke généralement sa bibliothèque (et donc votre dossier ``site-" +"packages``) dans le répertoire d'installation. Donc, si vous aviez installé " +"Python dans :file:`C:\\\\Python\\\\`, la bibliothèque par défaut résiderait " +"dans :file:`C:\\\\Python\\\\Lib\\\\` et les modules tiers devraient être " +"stockés dans :file:`C:\\\\Python\\\\Lib\\\\site-packages\\\\`." -#: ../Doc/using/windows.rst:727 +#: ../Doc/using/windows.rst:918 msgid "" "To completely override :data:`sys.path`, create a ``._pth`` file with the " "same name as the DLL (``python37._pth``) or the executable (``python._pth``) " @@ -1197,8 +1975,14 @@ msgid "" "based on the DLL name overrides the one based on the executable, which " "allows paths to be restricted for any program loading the runtime if desired." msgstr "" +"Pour remplacer complètement :data:`sys.path`, créez un fichier ``._pth`` " +"portant le même nom que le DLL (``python37._pth``) ou l'exécutable (``python." +"_pth``) et spécifiez une ligne pour chaque chemin à ajouter à :data:`sys." +"path`. Le fichier basé sur le nom de la DLL remplace celui basé sur " +"l'exécutable, qui permet aux chemins d'être restreints pour tout programme " +"chargeant le *runtime* si désiré." -#: ../Doc/using/windows.rst:733 +#: ../Doc/using/windows.rst:924 msgid "" "When the file exists, all registry and environment variables are ignored, " "isolated mode is enabled, and :mod:`site` is not imported unless one line in " @@ -1207,34 +1991,52 @@ msgid "" "the file. Import statements other than to ``site`` are not permitted, and " "arbitrary code cannot be specified." msgstr "" +"Lorsque le fichier existe, toutes les variables de registre et " +"d'environnement sont ignorées, le mode isolé est activé et :mod:`site` n'est " +"pas importé, sauf si une ligne du fichier spécifie ``import site``. Les " +"chemins et les lignes vides commençant par ``#`` sont ignorés. Chaque chemin " +"d'accès peut être absolu ou relatif à l'emplacement du fichier. Les " +"importations autres que vers *site* ne sont pas autorisées, ni n'importe " +"quelle instruction Python." -#: ../Doc/using/windows.rst:740 +#: ../Doc/using/windows.rst:931 msgid "" "Note that ``.pth`` files (without leading underscore) will be processed " "normally by the :mod:`site` module when ``import site`` has been specified." msgstr "" +"Notez que les fichiers ``.pth`` (sans `underscore` précédant le ``pth``) " +"seront traités normalement par le module :mod:`site` lorsque ``import site`` " +"a été spécifié." -#: ../Doc/using/windows.rst:743 +#: ../Doc/using/windows.rst:934 msgid "" "When no ``._pth`` file is found, this is how :data:`sys.path` is populated " "on Windows:" msgstr "" +"Lorsque aucun fichier ``._pth`` n'est trouvé, voilà comment :data:`sys.path` " +"est construit sur Windows :" -#: ../Doc/using/windows.rst:746 +#: ../Doc/using/windows.rst:937 msgid "" "An empty entry is added at the start, which corresponds to the current " "directory." msgstr "" +"Une entrée vide est ajoutée au début, qui correspond au répertoire courant." -#: ../Doc/using/windows.rst:749 +#: ../Doc/using/windows.rst:940 msgid "" "If the environment variable :envvar:`PYTHONPATH` exists, as described in :" "ref:`using-on-envvars`, its entries are added next. Note that on Windows, " "paths in this variable must be separated by semicolons, to distinguish them " "from the colon used in drive identifiers (``C:\\`` etc.)." msgstr "" +"Si la variable d'environnement :envvar:`PYTHONPATH` existe, comme décrit " +"dans :ref:`using-on-envvars`, ses entrées sont ajoutées ensuite. Notez que " +"sur Windows, les chemins d'accès de cette variable doivent être séparés par " +"des points-virgules, pour les distinguer des deux points utilisés dans les " +"identificateurs de lecteur (``C:\\`` etc.)." -#: ../Doc/using/windows.rst:754 +#: ../Doc/using/windows.rst:945 msgid "" "Additional \"application paths\" can be added in the registry as subkeys of :" "samp:`\\\\SOFTWARE\\\\Python\\\\PythonCore\\\\{version}\\\\PythonPath` under " @@ -1243,8 +2045,16 @@ msgid "" "cause each path to be added to :data:`sys.path`. (Note that all known " "installers only use HKLM, so HKCU is typically empty.)" msgstr "" +"Des \"chemins d'accès d'application\" supplémentaires peuvent être ajoutés " +"dans le registre en tant que sous-clés de :samp:`\\\\SOFTWARE\\\\Python\\" +"\\PythonCore\\\\{version}\\\\PythonPath` sous les ruches " +"``HKEY_CURRENT_USER`` et ``HKEY_LOCAL_MACHINE``. Les sous-clés qui ont des " +"chaînes de chemin délimitées par des points-virgules comme valeur par défaut " +"entraînent l'ajout de chaque chemin d'accès à :data:`sys.path`. (Notez que " +"tous les installateurs connus utilisent seulement HKLM, donc HKCU est " +"généralement vide.)" -#: ../Doc/using/windows.rst:761 +#: ../Doc/using/windows.rst:952 msgid "" "If the environment variable :envvar:`PYTHONHOME` is set, it is assumed as " "\"Python Home\". Otherwise, the path of the main Python executable is used " @@ -1254,82 +2064,124 @@ msgid "" "on that folder. Otherwise, the core Python path is constructed from the " "PythonPath stored in the registry." msgstr "" +"Si la variable d'environnement :envvar:`PYTHONHOME` est définie, elle est " +"supposée comme \"Python Home\". Sinon, le chemin de l'exécutable principal " +"de Python est utilisé pour chercher un \"fichier de repère\" (soit ``Lib\\os." +"py`` ou ``pythonXY.zip``) pour déduire le \"Python Home\". Si un \"Python " +"Home\" est trouvé, les sous-répertoires correspondants ajoutés à :data:`sys." +"path` (``Lib``, ``plat-win``, etc) sont basés sur ce dossier. Sinon, le " +"chemin d'accès Python principal est construit à partir du PythonPath stocké " +"dans le registre." -#: ../Doc/using/windows.rst:769 +#: ../Doc/using/windows.rst:960 msgid "" "If the Python Home cannot be located, no :envvar:`PYTHONPATH` is specified " "in the environment, and no registry entries can be found, a default path " "with relative entries is used (e.g. ``.\\Lib;.\\plat-win``, etc)." msgstr "" +"Si le \"Python Home\" ne peut pas être trouvé, :envvar:`PYTHONPATH` n'est " +"pas spécifié dans l'environnement et aucune entrée de registre ne peut être " +"trouvée, un chemin par défaut avec des entrées relatives est utilisé (par " +"exemple ``.\\Lib`` ; ``.\\plat-win``, etc.)." -#: ../Doc/using/windows.rst:773 +#: ../Doc/using/windows.rst:964 msgid "" "If a ``pyvenv.cfg`` file is found alongside the main executable or in the " "directory one level above the executable, the following variations apply:" msgstr "" +"Si un fichier ``pyvenv.cfg`` se trouve à côté de l'exécutable principal ou " +"dans le répertoire un niveau au-dessus de l'exécutable, les variantes " +"suivantes s'appliquent :" -#: ../Doc/using/windows.rst:776 +#: ../Doc/using/windows.rst:967 msgid "" "If ``home`` is an absolute path and :envvar:`PYTHONHOME` is not set, this " "path is used instead of the path to the main executable when deducing the " "home location." msgstr "" +"Si ``home`` est un chemin absolu et :envvar:`PYTHONHOME` n'est pas défini, " +"ce chemin d'accès est utilisé au lieu du chemin d'accès à l'exécutable " +"principal lors de la déduction de l'emplacement du `home`." -#: ../Doc/using/windows.rst:780 +#: ../Doc/using/windows.rst:971 msgid "The end result of all this is:" -msgstr "" +msgstr "Le résultat final de tout ceci est :" -#: ../Doc/using/windows.rst:782 +#: ../Doc/using/windows.rst:973 msgid "" "When running :file:`python.exe`, or any other .exe in the main Python " "directory (either an installed version, or directly from the PCbuild " "directory), the core path is deduced, and the core paths in the registry are " "ignored. Other \"application paths\" in the registry are always read." msgstr "" +"Lors de l'exécution de :file:`python.exe`, ou tout autre ``.exe`` dans le " +"répertoire principal de Python (soit une version installée, soit directement " +"à partir du répertoire PCbuild), le chemin principal est déduit et les " +"chemins d'accès principaux dans le Registre sont ignorés. D'autres \"chemins " +"d'application\" dans le registre sont toujours lus." -#: ../Doc/using/windows.rst:787 +#: ../Doc/using/windows.rst:978 msgid "" "When Python is hosted in another .exe (different directory, embedded via " "COM, etc), the \"Python Home\" will not be deduced, so the core path from " "the registry is used. Other \"application paths\" in the registry are " "always read." msgstr "" +"Lorsque Python est hébergé dans un autre fichier ``.exe`` (répertoire " +"différent, intégré via COM, etc.), le \"Python Home\" ne sera pas déduit, de " +"sorte que le chemin d'accès principal du registre est utilisé. D'autres " +"\"chemins d'application\" dans le registre sont toujours lus." -#: ../Doc/using/windows.rst:791 +#: ../Doc/using/windows.rst:982 msgid "" "If Python can't find its home and there are no registry value (frozen .exe, " "some very strange installation setup) you get a path with some default, but " "relative, paths." msgstr "" +"Si Python ne peut pas trouver son \"home\" et il n'y a pas de valeur de " +"registre (*.exe* gelé, une installation très étrange) vous obtenez un chemin " +"d'accès avec certains chemins par défaut, mais relatif." -#: ../Doc/using/windows.rst:795 +#: ../Doc/using/windows.rst:986 msgid "" "For those who want to bundle Python into their application or distribution, " "the following advice will prevent conflicts with other installations:" msgstr "" +"Pour ceux qui veulent intégrer Python dans leur application ou leur " +"distribution, les conseils suivants empêcheront les conflits avec d'autres " +"installations :" -#: ../Doc/using/windows.rst:798 +#: ../Doc/using/windows.rst:989 msgid "" "Include a ``._pth`` file alongside your executable containing the " "directories to include. This will ignore paths listed in the registry and " "environment variables, and also ignore :mod:`site` unless ``import site`` is " "listed." msgstr "" +"Incluez un fichier ``._pth`` à côté de votre exécutable contenant les " +"répertoires à inclure. Ceci ignorera les chemins répertoriés dans le " +"registre et les variables d'environnement, et ignorera également :mod:`site` " +"à moins que ``import site`` soit listé." -#: ../Doc/using/windows.rst:803 +#: ../Doc/using/windows.rst:994 msgid "" "If you are loading :file:`python3.dll` or :file:`python37.dll` in your own " "executable, explicitly call :c:func:`Py_SetPath` or (at least) :c:func:" "`Py_SetProgramName` before :c:func:`Py_Initialize`." msgstr "" +"Si vous chargez :file:`python3.dll` ou :file:`python37.dll` dans votre " +"propre exécutable, appelez explicitement :c:func:`Py_SetPath` ou (au moins) :" +"c:func:`Py_SetProgramName` avant :c:func:`Py_Initialize`." -#: ../Doc/using/windows.rst:807 +#: ../Doc/using/windows.rst:998 msgid "" "Clear and/or overwrite :envvar:`PYTHONPATH` and set :envvar:`PYTHONHOME` " "before launching :file:`python.exe` from your application." msgstr "" +"Effacer et/ou écraser :envvar:`PYTHONPATH` et configurez :envvar:" +"`PYTHONHOME` avant de lancer le :file:`python.exe` de votre application." -#: ../Doc/using/windows.rst:810 +#: ../Doc/using/windows.rst:1001 msgid "" "If you cannot use the previous suggestions (for example, you are a " "distribution that allows people to run :file:`python.exe` directly), ensure " @@ -1337,8 +2189,14 @@ msgid "" "directory. (Note that it will not be detected inside a ZIP file, but a " "correctly named ZIP file will be detected instead.)" msgstr "" +"Si vous ne pouvez pas utiliser les suggestions précédentes (par exemple, " +"vous êtes une distribution qui permet aux gens d'exécuter :file:`python.exe` " +"directement), assurez-vous que le point de repère :file:`Lib\\\\os.py` " +"existe dans votre répertoire d'installation. (Notez qu'il ne sera pas " +"détecté à l'intérieur d'un fichier ZIP, mais un fichier ZIP correctement " +"nommé sera détecté à la place.)" -#: ../Doc/using/windows.rst:816 +#: ../Doc/using/windows.rst:1007 msgid "" "These will ensure that the files in a system-wide installation will not take " "precedence over the copy of the standard library bundled with your " @@ -1347,75 +2205,100 @@ msgid "" "still be susceptible to non-standard paths in the registry and user site-" "packages." msgstr "" +"Ceux-ci garantiront que les fichiers d'une installation à l'échelle du " +"système n'auront pas la priorité sur la copie de la bibliothèque standard " +"livrée avec votre application. Sinon, vos utilisateurs pourraient rencontrer " +"des problèmes en utilisant votre application. Notez que la première " +"suggestion est la meilleure, car les autres peuvent encore être sensibles " +"aux chemins non-standard dans le registre et le *site-packages* utilisateur." -#: ../Doc/using/windows.rst:825 +#: ../Doc/using/windows.rst:1016 msgid "" "Adds ``._pth`` file support and removes ``applocal`` option from ``pyvenv." "cfg``." msgstr "" +"Ajout de la gestion des ``._pth`` et suppression de l'option ``applocal`` de " +"``pyvenv.cfg``." -#: ../Doc/using/windows.rst:827 +#: ../Doc/using/windows.rst:1018 msgid "" "Adds ``pythonXX.zip`` as a potential landmark when directly adjacent to the " "executable." msgstr "" +"Ajout de ``pythonXX.zip`` comme point de repère potentiel lorsqu'il est " +"directement adjacent à l'exécutable." -#: ../Doc/using/windows.rst:833 +#: ../Doc/using/windows.rst:1024 msgid "" "Modules specified in the registry under ``Modules`` (not ``PythonPath``) may " "be imported by :class:`importlib.machinery.WindowsRegistryFinder`. This " "finder is enabled on Windows in 3.6.0 and earlier, but may need to be " "explicitly added to :attr:`sys.meta_path` in the future." msgstr "" +"Les modules spécifiés dans le registre sous ``Modules`` (pas ``PythonPath``) " +"peuvent être importés par :class:`importlib.machinery." +"WindowsRegistryFinder`. Ce Finder est activé sur Windows dans 3.6.0 et plus " +"récent, mais il pourrait être nécessaire de l'ajouter explicitement à :attr:" +"`sys.meta_path` à l'avenir." -#: ../Doc/using/windows.rst:839 +#: ../Doc/using/windows.rst:1030 msgid "Additional modules" -msgstr "" +msgstr "Modules supplémentaires" -#: ../Doc/using/windows.rst:841 +#: ../Doc/using/windows.rst:1032 msgid "" "Even though Python aims to be portable among all platforms, there are " "features that are unique to Windows. A couple of modules, both in the " "standard library and external, and snippets exist to use these features." msgstr "" +"Même si Python a l'ambition d'être portable parmi toutes les plates-formes, " +"il existe des fonctionnalités propres à Windows. Certains modules, à la fois " +"dans la bibliothèque standard et externe, et des exemples existent pour " +"utiliser ces fonctionnalités." -#: ../Doc/using/windows.rst:845 +#: ../Doc/using/windows.rst:1036 msgid "" "The Windows-specific standard modules are documented in :ref:`mswin-specific-" "services`." msgstr "" +"Les modules standard de Windows sont documentés dans :ref:`mswin-specific-" +"services`." -#: ../Doc/using/windows.rst:849 +#: ../Doc/using/windows.rst:1040 msgid "PyWin32" msgstr "PyWin32" -#: ../Doc/using/windows.rst:851 +#: ../Doc/using/windows.rst:1042 msgid "" "The `PyWin32 `_ module by Mark Hammond is " "a collection of modules for advanced Windows-specific support. This " "includes utilities for:" msgstr "" "Le module `PyWin32 `_ de Mark Hammond est " -"une collection de modules pour un support avancé spécifique à Windows. Cela " +"une collection de modules pour un support avancé spécifique à Windows. Cela " "inclut les services pour :" -#: ../Doc/using/windows.rst:855 -msgid "`Component Object Model `_ (COM)" -msgstr "`Component Object Model `_ (COM)" +#: ../Doc/using/windows.rst:1046 +msgid "" +"`Component Object Model `_ (COM)" +msgstr "" +"`Component Object Model `_ (COM)" -#: ../Doc/using/windows.rst:856 +#: ../Doc/using/windows.rst:1049 msgid "Win32 API calls" msgstr "Appels à l'API Win32" -#: ../Doc/using/windows.rst:857 +#: ../Doc/using/windows.rst:1050 msgid "Registry" msgstr "Registre" -#: ../Doc/using/windows.rst:858 +#: ../Doc/using/windows.rst:1051 msgid "Event log" -msgstr "journal d'événement" +msgstr "Journal d'événement" -#: ../Doc/using/windows.rst:859 +#: ../Doc/using/windows.rst:1052 msgid "" "`Microsoft Foundation Classes `_ (MFC) user interfaces" @@ -1423,38 +2306,39 @@ msgstr "" "`Microsoft Foundation Classes `_ (MFC) interfaces utilisateur" -#: ../Doc/using/windows.rst:862 +#: ../Doc/using/windows.rst:1055 msgid "" "`PythonWin `_ is a sample MFC application shipped with PyWin32. " "It is an embeddable IDE with a built-in debugger." msgstr "" "`PythonWin `_ est une exemple d'application MFC livrée avec PyWin32. " +"windows/pythonwin/>`_ est un exemple d'application MFC livrée avec PyWin32. " "Il s'agit d'un IDE embarqué avec débogueur intégré." -#: ../Doc/using/windows.rst:869 +#: ../Doc/using/windows.rst:1062 msgid "" "`Win32 How Do I...? `_" msgstr "" +"`Win32 How Do I...? `_" -#: ../Doc/using/windows.rst:869 +#: ../Doc/using/windows.rst:1062 msgid "by Tim Golden" msgstr "par Tim Golden" -#: ../Doc/using/windows.rst:871 +#: ../Doc/using/windows.rst:1064 msgid "`Python and COM `_" -msgstr "" +msgstr "`Python and COM `_" -#: ../Doc/using/windows.rst:872 +#: ../Doc/using/windows.rst:1065 msgid "by David and Paul Boddie" msgstr "par David et Paul Boddie" -#: ../Doc/using/windows.rst:876 +#: ../Doc/using/windows.rst:1069 msgid "cx_Freeze" -msgstr "" +msgstr "cx_Freeze" -#: ../Doc/using/windows.rst:878 +#: ../Doc/using/windows.rst:1071 msgid "" "`cx_Freeze `_ is a :mod:" "`distutils` extension (see :ref:`extending-distutils`) which wraps Python " @@ -1462,44 +2346,63 @@ msgid "" "have done this, you can distribute your application without requiring your " "users to install Python." msgstr "" +"`cx_Freeze `_ est une " +"extension :mod:`distutils` (voir :ref:`extending-distutils`) qui encapsule " +"des scripts Python dans des programmes exécutables Windows (Fichiers :file:" +"`{*}.exe`). Lorsque vous l'avez fait, vous pouvez distribuer votre " +"application sans demander à vos utilisateurs d'installer Python." -#: ../Doc/using/windows.rst:886 +#: ../Doc/using/windows.rst:1079 msgid "WConio" msgstr "WConio" -#: ../Doc/using/windows.rst:888 +#: ../Doc/using/windows.rst:1081 msgid "" "Since Python's advanced terminal handling layer, :mod:`curses`, is " "restricted to Unix-like systems, there is a library exclusive to Windows as " "well: Windows Console I/O for Python." msgstr "" +"Depuis la couche avancée de gestion de terminal de Python, :mod:`curses`, " +"est limité aux systèmes de type UNIX, il existe une bibliothèque exclusive à " +"Windows : *Windows Console I/O for Python*." -#: ../Doc/using/windows.rst:892 +#: ../Doc/using/windows.rst:1085 msgid "" "`WConio `_ is a wrapper " "for Turbo-C's :file:`CONIO.H`, used to create text user interfaces." msgstr "" +"`WConio `_ est un " +"*wrapper* pour les fichiers Turbo-C :file:`CONIO.H`, utilisé pour créer des " +"interfaces texte utilisateur." -#: ../Doc/using/windows.rst:898 +#: ../Doc/using/windows.rst:1091 msgid "Compiling Python on Windows" msgstr "Compiler Python sous Windows" -#: ../Doc/using/windows.rst:900 +#: ../Doc/using/windows.rst:1093 msgid "" "If you want to compile CPython yourself, first thing you should do is get " "the `source `_. You can download " "either the latest release's source or just grab a fresh `checkout `_." msgstr "" +"Si vous voulez compiler CPython vous-même, la première chose à faire est " +"obtenir la `source `_. Vous pouvez " +"télécharger soit la source de la dernière version ou tout simplement prendre " +"un `checkout `_." -#: ../Doc/using/windows.rst:905 +#: ../Doc/using/windows.rst:1098 msgid "" "The source tree contains a build solution and project files for Microsoft " "Visual Studio 2015, which is the compiler used to build the official Python " "releases. These files are in the :file:`PCbuild` directory." msgstr "" +"L'arborescence source contient une solution de compilation et des fichiers " +"projet pour Microsoft Visual Studio 2015, qui est le compilateur utilisé " +"pour générer les versions officielles de Python. Ces fichiers se trouvent " +"dans le répertoire :file:`PCbuild`." -#: ../Doc/using/windows.rst:909 +#: ../Doc/using/windows.rst:1102 msgid "" "Check :file:`PCbuild/readme.txt` for general information on the build " "process." @@ -1507,182 +2410,94 @@ msgstr "" "Consultez :file:`PC/readme.txt` pour des informations générales sur le " "processus de construction." -#: ../Doc/using/windows.rst:912 +#: ../Doc/using/windows.rst:1105 msgid "For extension modules, consult :ref:`building-on-windows`." -msgstr "" +msgstr "Pour les modules d'extension, consultez :ref:`building-on-windows`." -#: ../Doc/using/windows.rst:919 +#: ../Doc/using/windows.rst:1112 msgid "" "`Python + Windows + distutils + SWIG + gcc MinGW `_" msgstr "" +"`Python + Windows + distutils + SWIG + gcc MinGW `_" -#: ../Doc/using/windows.rst:917 +#: ../Doc/using/windows.rst:1110 msgid "" "or \"Creating Python extensions in C/C++ with SWIG and compiling them with " "MinGW gcc under Windows\" or \"Installing Python extension with distutils " "and without Microsoft Visual C++\" by Sébastien Sauvage, 2003" msgstr "" +"ou \"*Creating Python extensions in C/C++ with SWIG and compiling them with " +"MinGW gcc under Windows*\" ou \"*Installing Python extension with distutils " +"and without Microsoft Visual C++*\" par Sébastien Sauvage, 2003" -#: ../Doc/using/windows.rst:921 -msgid "" -"`MingW -- Python extensions `_" -msgstr "" - -#: ../Doc/using/windows.rst:922 -msgid "by Trent Apted et al, 2007" -msgstr "par Trent Apted et al, 2007" - -#: ../Doc/using/windows.rst:926 -msgid "Embedded Distribution" -msgstr "" - -#: ../Doc/using/windows.rst:930 -msgid "" -"The embedded distribution is a ZIP file containing a minimal Python " -"environment. It is intended for acting as part of another application, " -"rather than being directly accessed by end-users." -msgstr "" - -#: ../Doc/using/windows.rst:934 -msgid "" -"When extracted, the embedded distribution is (almost) fully isolated from " -"the user's system, including environment variables, system registry " -"settings, and installed packages. The standard library is included as pre-" -"compiled and optimized ``.pyc`` files in a ZIP, and ``python3.dll``, " -"``python37.dll``, ``python.exe`` and ``pythonw.exe`` are all provided. Tcl/" -"tk (including all dependants, such as Idle), pip and the Python " -"documentation are not included." -msgstr "" - -#: ../Doc/using/windows.rst:943 -msgid "" -"The embedded distribution does not include the `Microsoft C Runtime `_ and it is the " -"responsibility of the application installer to provide this. The runtime may " -"have already been installed on a user's system previously or automatically " -"via Windows Update, and can be detected by finding ``ucrtbase.dll`` in the " -"system directory." -msgstr "" - -#: ../Doc/using/windows.rst:950 -msgid "" -"Third-party packages should be installed by the application installer " -"alongside the embedded distribution. Using pip to manage dependencies as for " -"a regular Python installation is not supported with this distribution, " -"though with some care it may be possible to include and use pip for " -"automatic updates. In general, third-party packages should be treated as " -"part of the application (\"vendoring\") so that the developer can ensure " -"compatibility with newer versions before providing updates to users." -msgstr "" - -#: ../Doc/using/windows.rst:958 -msgid "" -"The two recommended use cases for this distribution are described below." -msgstr "" - -#: ../Doc/using/windows.rst:961 -msgid "Python Application" -msgstr "" +#: ../Doc/using/windows.rst:1114 +msgid "`MingW -- Python extensions `_" +msgstr "`MingW -- Python extensions `_" -#: ../Doc/using/windows.rst:963 -msgid "" -"An application written in Python does not necessarily require users to be " -"aware of that fact. The embedded distribution may be used in this case to " -"include a private version of Python in an install package. Depending on how " -"transparent it should be (or conversely, how professional it should appear), " -"there are two options." -msgstr "" - -#: ../Doc/using/windows.rst:969 -msgid "" -"Using a specialized executable as a launcher requires some coding, but " -"provides the most transparent experience for users. With a customized " -"launcher, there are no obvious indications that the program is running on " -"Python: icons can be customized, company and version information can be " -"specified, and file associations behave properly. In most cases, a custom " -"launcher should simply be able to call ``Py_Main`` with a hard-coded command " -"line." -msgstr "" - -#: ../Doc/using/windows.rst:976 -msgid "" -"The simpler approach is to provide a batch file or generated shortcut that " -"directly calls the ``python.exe`` or ``pythonw.exe`` with the required " -"command-line arguments. In this case, the application will appear to be " -"Python and not its actual name, and users may have trouble distinguishing it " -"from other running Python processes or file associations." -msgstr "" +#: ../Doc/using/windows.rst:1118 +msgid "Other Platforms" +msgstr "Autres plateformes" -#: ../Doc/using/windows.rst:982 +#: ../Doc/using/windows.rst:1120 msgid "" -"With the latter approach, packages should be installed as directories " -"alongside the Python executable to ensure they are available on the path. " -"With the specialized launcher, packages can be located in other locations as " -"there is an opportunity to specify the search path before launching the " -"application." +"With ongoing development of Python, some platforms that used to be supported " +"earlier are no longer supported (due to the lack of users or developers). " +"Check :pep:`11` for details on all unsupported platforms." msgstr "" +"Avec le développement continu de Python, certaines plateformes qui étaient " +"auparavant prises en charge ne sont plus prises en charge (en raison du " +"manque d'utilisateurs ou de développeurs). Voir :pep:`11` pour plus de " +"détails sur toutes les plateformes non prises en charge." -#: ../Doc/using/windows.rst:988 -msgid "Embedding Python" +#: ../Doc/using/windows.rst:1124 +msgid "`Windows CE `_ is still supported." msgstr "" +"`Windows CE `_ est toujours pris en charge." -#: ../Doc/using/windows.rst:990 +#: ../Doc/using/windows.rst:1125 msgid "" -"Applications written in native code often require some form of scripting " -"language, and the embedded Python distribution can be used for this purpose. " -"In general, the majority of the application is in native code, and some part " -"will either invoke ``python.exe`` or directly use ``python3.dll``. For " -"either case, extracting the embedded distribution to a subdirectory of the " -"application installation is sufficient to provide a loadable Python " -"interpreter." +"The `Cygwin `_ installer offers to install the Python " +"interpreter as well (cf. `Cygwin package source `_, `Maintainer " +"releases `_)" msgstr "" +"L’installateur `Cygwin `_ offre d’installer " +"l’interpréteur Python (cf. `Cygwin package source `_, `Maintainer " +"releases `_)" -#: ../Doc/using/windows.rst:997 +#: ../Doc/using/windows.rst:1131 msgid "" -"As with the application use, packages can be installed to any location as " -"there is an opportunity to specify search paths before initializing the " -"interpreter. Otherwise, there is no fundamental differences between using " -"the embedded distribution and a regular installation." +"See `Python for Windows `_ for " +"detailed information about platforms with pre-compiled installers." msgstr "" +"Voir `Python pour Windows `_ pour " +"des instructions détaillées sur les plateformes avec installateurs pré-" +"compilés." -#: ../Doc/using/windows.rst:1003 -msgid "Other resources" -msgstr "Autres ressources" +#~ msgid "by Trent Apted et al, 2007" +#~ msgstr "par Trent Apted et al, 2007" -#: ../Doc/using/windows.rst:1010 -msgid "" -"`Python Programming On Win32 `_" -msgstr "" - -#: ../Doc/using/windows.rst:1008 -msgid "" -"\"Help for Windows Programmers\" by Mark Hammond and Andy Robinson, O'Reilly " -"Media, 2000, ISBN 1-56592-621-8" -msgstr "" -"\"Help for Windows Programmers\" de Mark Hammond et Andy Robinson, O'Reilly " -"Media, 2000, ISBN 1-56592-621-8" +#~ msgid "Installing Python" +#~ msgstr "Installer Python" -#: ../Doc/using/windows.rst:1013 -msgid "" -"`A Python for Windows Tutorial `_" -msgstr "" +#~ msgid "Supported Versions" +#~ msgstr "Versions supportées" -#: ../Doc/using/windows.rst:1013 -msgid "by Amanda Birmingham, 2004" -msgstr "par Amanda Birmingham, 2004" +#~ msgid "Other resources" +#~ msgstr "Autres ressources" -#: ../Doc/using/windows.rst:1015 -msgid ":pep:`397` - Python launcher for Windows" -msgstr "" +#~ msgid "" +#~ "\"Help for Windows Programmers\" by Mark Hammond and Andy Robinson, " +#~ "O'Reilly Media, 2000, ISBN 1-56592-621-8" +#~ msgstr "" +#~ "\"Help for Windows Programmers\" de Mark Hammond et Andy Robinson, " +#~ "O'Reilly Media, 2000, ISBN 1-56592-621-8" -#: ../Doc/using/windows.rst:1016 -msgid "" -"The proposal for the launcher to be included in the Python distribution." -msgstr "" +#~ msgid "by Amanda Birmingham, 2004" +#~ msgstr "par Amanda Birmingham, 2004" #, fuzzy #~ msgid "Installing on Windows" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 4919c5c49..5aaf5fcfc 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-02 00:10+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2018-07-31 23:43+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -125,6 +125,14 @@ msgid "" "available from Python's project page, located at https://sourceforge.net/" "projects/python/." msgstr "" +"Le changement le plus important dans Python 2.0 ne concerne peut-être pas le " +"code, mais le développement de Python : en mai 2000, les développeurs Python " +"ont commencé à utiliser les outils mis à disposition par SourceForge pour " +"stocker le code source, suivre les rapports de bogues et gérer la file " +"d’attente des soumissions de correctifs. Pour signaler des bogues ou " +"soumettre des correctifs pour Python 2.0, utilisez les outils de suivi des " +"bogues et de gestion des correctifs disponibles sur la page du projet " +"Python, à l’adresse https://sourceforge.net/projects/python/." #: ../Doc/whatsnew/2.0.rst:66 msgid "" @@ -145,6 +153,25 @@ msgid "" "access, probably that task would have been viewed as \"nice, but not worth " "the time and effort needed\" and it would never have gotten done." msgstr "" +"Le plus important des services maintenant hébergé chez SourceForge est " +"l’arborescence CVS Python, le référentiel sous contrôle de version contenant " +"le code source de Python. Auparavant, environ 7 personnes avaient un accès " +"en écriture à l’arborescence CVS et tous les correctifs devaient être " +"inspectés et archivés par l’une des personnes figurant sur cette liste " +"restreinte. Évidemment, ce n’était pas très évolutif. En déplaçant " +"l’arborescence CVS vers SourceForge, il est devenu possible d’accorder un " +"accès en écriture à davantage de personnes ; en septembre 2000, 27 personnes " +"pouvaient enregistrer les modifications, soit quatre fois plus. Cela rend " +"possible des modifications à grande échelle qui ne seraient pas tentées si " +"elles devaient être filtrées par le petit groupe de développeurs principaux. " +"Par exemple, un jour, Peter Schneider-Kamp a eu l’idée de supprimer la " +"compatibilité K&R C et de convertir le code source C de Python en ANSI C. " +"Après avoir obtenu l’approbation de la liste de diffusion *python-dev*, il " +"s’est lancé dans une série d’archives qui ont duré environ une semaine, " +"d’autres développeurs l'ont rejoint et le travail a été fait. S’il n’y avait " +"eut que 5 personnes ayant un accès en écriture, cette tâche aurait " +"probablement été considérée comme « agréable, mais ne valant pas le temps ni " +"les efforts nécessaires » et cela ne se serait jamais fait." #: ../Doc/whatsnew/2.0.rst:83 msgid "" @@ -160,6 +187,19 @@ msgid "" "notification e-mail messages that are completely unhelpful, so Ka-Ping Yee " "wrote an HTML screen-scraper that sends more useful messages." msgstr "" +"Le passage à l’utilisation des services de SourceForge a entraîné une " +"augmentation remarquable du rythme de développement. Les correctifs sont " +"maintenant soumis, commentés, révisés par des personnes autres que l’auteur " +"d’origine et échangés entre les personnes jusqu’à ce que le correctif soit " +"jugé utile. Les bogues sont suivis dans un emplacement central et peuvent " +"être attribués à une personne spécifique pour être corrigés. , et nous " +"pouvons compter le nombre de bogues ouverts pour mesurer les progrès. Cela " +"n’a pas coûté cher: les développeurs ont désormais plus de courrier " +"électronique à traiter, davantage de listes de diffusion à suivre et des " +"outils spéciaux ont dû être créés pour le nouvel environnement. Par exemple, " +"SourceForge envoie des messages électroniques de correctif et de " +"notification de bogues par défaut qui ne sont d’aucune utilité, Ka-Ping Yee " +"a donc créé un *scraper* HTML qui envoie des messages plus utiles." #: ../Doc/whatsnew/2.0.rst:95 msgid "" @@ -175,6 +215,19 @@ msgid "" "can still ignore the result of a vote, and approve or reject a change even " "if the community disagrees with him." msgstr "" +"La facilité d’ajout de code a provoqué quelques problèmes de croissance " +"initiaux, tels que le code a été archivé avant qu’il ne soit prêt ou sans " +"l’accord clair du groupe de développeurs. Le processus d’approbation qui a " +"émergé est quelque peu similaire à celui utilisé par le groupe Apache. Les " +"développeurs peuvent voter *+1*, *+0*, *-0* ou *-1* sur un patch; *+1* et " +"*-1* indiquent une acceptation ou un rejet, tandis que *+0* et *-0* " +"signifient que le développeur est généralement indifférent au changement, " +"bien qu’il présente une légère inclinaison positive ou négative. Le " +"changement le plus important par rapport au modèle Apache est que le vote " +"est essentiellement consultatif, permettant à Guido van Rossum, détenteur du " +"statut de « dictateur bienveillant à vie », de connaître l’opinion générale. " +"Il peut toujours ignorer le résultat d’un vote et approuver ou rejeter un " +"changement même si la communauté n’est pas d’accord avec lui." #: ../Doc/whatsnew/2.0.rst:106 msgid "" @@ -197,6 +250,11 @@ msgid "" "for Python. The PEP should provide a concise technical specification of the " "feature and a rationale for the feature." msgstr "" +"PEP signifie *Python Enhancement Proposition*. Une PEP est un document de " +"conception fournissant des informations à la communauté Python ou décrivant " +"une nouvelle fonctionnalité de Python. La PEP devrait fournir une " +"spécification technique concise de la fonctionnalité et une justification de " +"celle-ci." #: ../Doc/whatsnew/2.0.rst:125 msgid "" @@ -205,6 +263,11 @@ msgid "" "decisions that have gone into Python. The PEP author is responsible for " "building consensus within the community and documenting dissenting opinions." msgstr "" +"Nous souhaitons que les PEP soient les principaux mécanismes permettant de " +"proposer de nouvelles fonctionnalités, de recueillir les commentaires de la " +"communauté sur un problème et de documenter les décisions de conception " +"prises dans Python. L’auteur du PPE est chargé de créer un consensus au sein " +"de la communauté et de documenter les opinions divergentes." #: ../Doc/whatsnew/2.0.rst:130 msgid "" @@ -227,6 +290,10 @@ msgid "" "instead of the 8-bit number used by ASCII, meaning that 65,536 distinct " "characters can be supported." msgstr "" +"La plus grande nouveauté de Python 2.0 est un nouveau type de données " +"fondamental: les chaînes Unicode. Unicode utilise des nombres à 16 bits pour " +"représenter des caractères au lieu du nombre à 8 bits utilisé par ASCII, ce " +"qui signifie que 65 536 caractères distincts peuvent être pris en charge." #: ../Doc/whatsnew/2.0.rst:148 msgid "" @@ -237,6 +304,13 @@ msgid "" "was written up as :pep:`100`, \"Python Unicode Integration\". This article " "will simply cover the most significant points about the Unicode interfaces." msgstr "" +"La dernière interface de prise en charge Unicode a été mise au point après " +"de nombreuses discussions souvent houleuses sur la liste de diffusion " +"*python-dev*, et principalement implémentée par Marc-André Lemburg, basée " +"sur une implémentation de type chaîne Unicode de Fredrik Lundh. Une " +"explication détaillée de l’interface a été écrite ainsi :pep:" +"`100`, \"Intégration Python Unicode\". Cet article couvrira simplement les " +"points les plus significatifs sur les interfaces Unicode." #: ../Doc/whatsnew/2.0.rst:155 msgid "" @@ -246,6 +320,13 @@ msgid "" "The existing ``\\xHHHH`` escape sequence can also be used, and octal escapes " "can be used for characters up to U+01FF, which is represented by ``\\777``." msgstr "" +"Dans le code source Python, les chaînes Unicode sont écrites sous la forme " +"``u\"string\"``. Les caractères Unicode arbitraires peuvent être écrits en " +"utilisant une nouvelle séquence d'échappement, ``\\uHHHH``, où *HHHH* est un " +"nombre hexadécimal à 4 chiffres de 0000 à FFFF. La séquence d'échappement ``" +"\\xHHHH`` peut également être utilisée, et les échappements octaux peuvent " +"être utilisés pour les caractères allant jusqu'à U+01FF, représenté par ``" +"\\777``." #: ../Doc/whatsnew/2.0.rst:161 msgid "" @@ -260,12 +341,27 @@ msgid "" "installation by calling the ``sys.setdefaultencoding(encoding)`` function in " "a customized version of :file:`site.py`." msgstr "" +"Les chaînes Unicode, tout comme les chaînes ordinaires, sont un type de " +"séquence immuable. Ils peuvent être indexés et tranchés, mais pas modifiés " +"en place. Les chaînes Unicode ont une méthode ``encoder([encoding])`` qui " +"renvoie une chaîne de 8 bits dans l’encodage souhaité. Les codages sont " +"nommés par des chaînes, telles que ``’ascii’``, ``’utf-8’``, " +"``’iso-8859-1’``, ou autre chose. Une API de codec est définie pour " +"l’implémentation et l’enregistrement de nouveaux codages disponibles dans " +"tout un programme Python. Si aucun codage n’est spécifié, le codage par " +"défaut est généralement du code ASCII 7-bits, bien qu’il puisse être modifié " +"pour votre installation Python en appelant la fonction ``sys." +"setdefaultencoding (encoding)`` dans une version personnalisée de :file:" +"`site.py`." #: ../Doc/whatsnew/2.0.rst:172 msgid "" "Combining 8-bit and Unicode strings always coerces to Unicode, using the " "default ASCII encoding; the result of ``'a' + u'bc'`` is ``u'abc'``." msgstr "" +"La combinaison de chaînes 8 bits et Unicode est toujours forcée en Unicode, " +"à l’aide du codage ASCII par défaut; le résultat de ``’a’ + u’bc’`` est " +"``u’abc’``." #: ../Doc/whatsnew/2.0.rst:175 msgid "" @@ -301,6 +397,14 @@ msgid "" "errors to be silently ignored and ``'replace'`` uses U+FFFD, the official " "replacement character, in case of any problems." msgstr "" +"``unicode(string [, encoding] [, errors] )`` crée une chaîne Unicode à " +"partir d’une chaîne de 8 bits. ``encoding`` est une chaîne nommant le codage " +"à utiliser. Le paramètre ``errors`` spécifie le traitement des caractères " +"non valides pour l’ encodage en cours; en passant ``’strict’`` comme valeur, " +"une exception est générée pour toute erreur de codage, alors que " +"``’ignore’`` fait en sorte que les erreurs soient ignorées en silence et que " +"``’replace’`` utilise U+FFFD, caractère de remplacement officiel, en cas de " +"problème." #: ../Doc/whatsnew/2.0.rst:192 msgid "" @@ -310,6 +414,12 @@ msgid "" "built-ins; if you find a built-in function that accepts strings but doesn't " "accept Unicode strings at all, please report it as a bug.)" msgstr "" +"L’instruction ``exec`` et divers éléments intégrés tels que ``eval()``, " +"``getattr()`` et ``setattr()`` accepteront également les chaînes Unicode " +"ainsi que les chaînes ordinaires. (Il est possible que le processus de " +"résolution de ce problème ait échappé à certaines fonctions intégrées ; si " +"vous trouvez une fonction intégrée qui accepte les chaînes mais n’accepte " +"pas les chaînes Unicode, signalez-la comme un bogue.)" #: ../Doc/whatsnew/2.0.rst:198 msgid "" @@ -319,6 +429,12 @@ msgid "" "it's uppercase. ``unicodedata.bidirectional(u'\\u0660')`` returns 'AN', " "meaning that U+0660 is an Arabic number." msgstr "" +"Un nouveau module, :mod:`unicodedata`, fournit une interface aux propriétés " +"de caractère Unicode. Par exemple, ``unicodedata.category(u'A')`` renvoie la " +"chaîne de 2 caractères « Lu », le « L » désignant une lettre et « u » " +"signifiant qu’il s’agit d’une majuscule. ``unicodedata." +"bidirectional(u'\\u0660')`` renvoie « AN », ce qui signifie que U+0660 est " +"un nombre arabe." #: ../Doc/whatsnew/2.0.rst:204 msgid "" @@ -327,6 +443,11 @@ msgid "" "most often use the ``codecs.lookup(encoding)`` function, which returns a 4-" "element tuple: ``(encode_func, decode_func, stream_reader, stream_writer)``." msgstr "" +"Le module :mod:`codecs` contient des fonctions pour rechercher les codages " +"existants et en enregistrer de nouveaux. À moins que vous ne souhaitiez " +"implémenter un nouvel encodage, vous utiliserez le plus souvent la fonction " +"``codecs.lookup(encoding)``, qui renvoie un n-uplet à 4 éléments : " +"``(encode_func, decode_func, stream_reader, stream_writer)``." #: ../Doc/whatsnew/2.0.rst:209 msgid "" @@ -336,6 +457,11 @@ msgid "" "encoding, and *length* tells you how much of the Unicode string was " "converted." msgstr "" +"*encode_func* est une fonction qui prend une chaîne Unicode, et renvoie un n-" +"uplet de longueur 2 ``(string, length)``. *string* est une chaîne de " +"caractères à 8 bits contenant une partie (ou la totalité) de la chaîne " +"Unicode convertie en codage donné, et *length* vous indique le nombre de " +"caractères de la chaîne qui ont été convertis." #: ../Doc/whatsnew/2.0.rst:214 msgid "" @@ -344,6 +470,11 @@ msgid "" "Unicode string *ustring* and the integer *length* telling how much of the 8-" "bit string was consumed." msgstr "" +"*decode_func* est l’opposé de *encode_func*, en prenant une chaîne de " +"caractères à 8 bits et le retour d’un n-uplet de longueur 2 ``(ustring, " +"longueur)``, composé de la chaîne Unicode résultante *ustring* et l’entier " +"*length* indiquant combien de caractères de la chaîne de caractères à 8 bits " +"ont été consommés." #: ../Doc/whatsnew/2.0.rst:219 msgid "" @@ -352,6 +483,11 @@ msgid "" "meth:`readline`, and :meth:`readlines` methods. These methods will all " "translate from the given encoding and return Unicode strings." msgstr "" +"*stream_reader* est une classe qui prend en charge le décodage de l’entrée " +"d’un flux. *stream_reader(file_obj)* renvoie un objet qui prend en charge " +"les méthodes :meth:`read`, :meth:`readline` et :meth:`readlines`. Ces " +"méthodes se traduisent toutes à partir de l’encodage donné et retourneront " +"une chaînes de caractère Unicode." #: ../Doc/whatsnew/2.0.rst:224 msgid "" @@ -360,6 +496,11 @@ msgid "" "`write` and :meth:`writelines` methods. These methods expect Unicode " "strings, translating them to the given encoding on output." msgstr "" +"De même, *stream_writer* est une classe qui prend en charge le codage de " +"sortie d’un flux. *stream_writer(file_obj)* renvoie un objet qui prend en " +"charge les méthodes :meth:`write` et :meth:`writelines`. Ces méthodes " +"prennent en entrée des chaînes Unicode, qu'elles renvoient, traduites à " +"l'encodage donné, sur la sortie." #: ../Doc/whatsnew/2.0.rst:229 msgid "" @@ -371,7 +512,7 @@ msgstr "" #: ../Doc/whatsnew/2.0.rst:243 msgid "The following code would then read UTF-8 input from the file::" -msgstr "Le code suivant lirait ensuite le texte UTF-8 du fichier : ::" +msgstr "Le code suivant lirait ensuite le texte UTF-8 du fichier ::" #: ../Doc/whatsnew/2.0.rst:249 msgid "" @@ -391,6 +532,12 @@ msgid "" "future version of Python may drop support for 8-bit strings and provide only " "Unicode strings." msgstr "" +"Une option de ligne de commande ``-U`` a été ajoutée, ce qui fait que le " +"compilateur Python interprète toutes les chaînes de caractères comme des " +"chaînes de caractères Unicode. Ceci est destiné à être utilisé dans les " +"tests et rendre votre code Python compatible avec les versions futures, car " +"une version future de Python peut abandonner la prise en charge des chaînes " +"de caractères 8-bits et fournir uniquement des chaînes de caractères Unicode." #: ../Doc/whatsnew/2.0.rst:262 msgid "List Comprehensions" @@ -405,6 +552,13 @@ msgid "" "might want to pull out all the strings containing a given substring, or " "strip off trailing whitespace from each line." msgstr "" +"Les listes sont un type de données crucial dans Python, et de nombreux " +"programmes manipulent une liste à un moment donné. Deux opérations communes " +"sur les listes sont de boucler sur elles, soit de choisir les éléments qui " +"répondent à un certain critère, ou d’appliquer une certaine fonction à " +"chaque élément. Par exemple, à partir d’une liste de chaînes de caractères, " +"vous pouvez retirer toutes les chaînes contenant une sous-chaîne donnée, ou " +"enlever les espaces de chaque ligne." #: ../Doc/whatsnew/2.0.rst:271 msgid "" @@ -417,13 +571,26 @@ msgid "" "paragraph, finding all the strings in the list containing a given " "substring. You could write the following to do it::" msgstr "" +"Les fonctions existantes :func:`map` et :func:`filter` peuvent être " +"utilisées à cette fin, mais elles nécessitent une fonction en leurs " +"arguments. C’est très bien s’il y a une fonction intégrée existante qui " +"peut être passé directement, mais s’il n’y a pas, vous devez créer une " +"petite fonction pour faire le travail requis, et les règles de portée de " +"Python rendent le résultat laid si la petite fonction a besoin " +"d’informations supplémentaires. Prenons le premier exemple du paragraphe " +"précédent, en trouvant toutes les chaînes de la liste contenant une sous-" +"chaîne donnée. Vous pouvez écrire ce qui suit pour le faire::" #: ../Doc/whatsnew/2.0.rst:286 msgid "" "Because of Python's scoping rules, a default argument is used so that the " -"anonymous function created by the :keyword:`lambda` statement knows what " +"anonymous function created by the :keyword:`lambda` expression knows what " "substring is being searched for. List comprehensions make this cleaner::" msgstr "" +"En raison des règles de portée de Python, un argument par défaut est utilisé " +"de sorte que la fonction anonyme créée par l’expression :keyword:`lambda` " +"sait quelle sous-chaîne est recherchée. Les listes en compréhension rendent " +"ceci plus propre :" #: ../Doc/whatsnew/2.0.rst:292 msgid "List comprehensions have the form::" @@ -431,14 +598,21 @@ msgstr "Les compréhensions de liste sont de la forme suivante ::" #: ../Doc/whatsnew/2.0.rst:299 msgid "" -"The :keyword:`for`...\\ :keyword:`in` clauses contain the sequences to be " +"The :keyword:`!for`...\\ :keyword:`!in` clauses contain the sequences to be " "iterated over. The sequences do not have to be the same length, because " "they are *not* iterated over in parallel, but from left to right; this is " "explained more clearly in the following paragraphs. The elements of the " "generated list will be the successive values of *expression*. The final :" -"keyword:`if` clause is optional; if present, *expression* is only evaluated " +"keyword:`!if` clause is optional; if present, *expression* is only evaluated " "and added to the result if *condition* is true." msgstr "" +"Le :keyword:`!for`…\\ :keyword:`!in` clauses contiennent les séquences à " +"itérer. Les séquences n’ont pas à être de la même longueur, parce qu’elles " +"ne sont *pas* itérées en parallèle, mais de gauche à droite; cela est " +"expliqué plus clairement dans les paragraphes suivants. Les éléments de la " +"liste générée seront les valeurs successives de l’expression. La clause " +"finale :keyword:`!if` clause est facultative ; si présent, l’*expression* " +"n’est évaluée et ajoutée au résultat que si la *condition* est vraie." #: ../Doc/whatsnew/2.0.rst:307 msgid "" @@ -450,11 +624,15 @@ msgstr "" #: ../Doc/whatsnew/2.0.rst:319 msgid "" -"This means that when there are multiple :keyword:`for`...\\ :keyword:`in` " +"This means that when there are multiple :keyword:`!for`...\\ :keyword:`!in` " "clauses, the resulting list will be equal to the product of the lengths of " "all the sequences. If you have two lists of length 3, the output list is 9 " "elements long::" msgstr "" +"Cela signifie que lorsqu’il y a plusieurs :keyword:`!for`…\\ :keyword:`!in` " +"clauses, la liste résultante sera égale au produit des longueurs de toutes " +"les séquences. Si vous avez deux listes de longueur 3, la liste de sortie " +"est de longueur 9::" #: ../Doc/whatsnew/2.0.rst:330 msgid "" @@ -462,6 +640,10 @@ msgid "" "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 de ne pas introduire 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 ::" #: ../Doc/whatsnew/2.0.rst:339 msgid "" @@ -471,10 +653,16 @@ msgid "" "comprehension patch, which was then discussed for a seemingly endless time " "on the python-dev mailing list and kept up-to-date by Skip Montanaro." msgstr "" +"Le concept des liste en compréhension provient à l’origine du langage de " +"programmation fonctionnelle Haskell (https://www.haskell.org). Greg Ewing a " +"plaidé le plus efficacement pour les ajouter à Python et a écrit le patch de " +"compréhension de liste initiale, qui a ensuite été discuté pendant un temps " +"apparemment sans fin sur la liste de diffusion *python-dev* et maintenu à " +"jour par Skip Montanaro." #: ../Doc/whatsnew/2.0.rst:349 msgid "Augmented Assignment" -msgstr "" +msgstr "Opérateurs d’affectation augmentées" #: ../Doc/whatsnew/2.0.rst:351 msgid "" @@ -484,6 +672,11 @@ msgid "" "value of the variable ``a`` by 2, equivalent to the slightly lengthier ``a " "= a + 2``." msgstr "" +"Les opérateurs d’affectation soudées, une autre fonctionnalité demandée " +"depuis longtemps, ont été ajoutés à Python 2.0. Les opérateurs " +"d’affectations augmentées comprennent ``+=``, ``-=``, ``*=`` et ainsi de " +"suite. Par exemple, l’instruction ``a += 2`` incrémente la valeur de la " +"variable ``a`` par 2, équivalente à l’opération ``a = a + 2`` ." #: ../Doc/whatsnew/2.0.rst:356 msgid "" @@ -494,6 +687,13 @@ msgid "" "following :class:`Number` class stores a number and supports using += to " "create a new instance with an incremented value." msgstr "" +"La liste complète des opérateurs d’affectations pris en charge est ``+=``, " +"``-=``, ``*=``, ``/=``, ``%=``, ``**=``, ``&=``, ``|=``, ``^=``, ``>>=``, et " +"``<<=``. Les classes Python peuvent remplacer les opérateurs d’affectations " +"augmentées en définissant des méthodes nommées :meth:`__iadd__`, :meth:" +"`__isub__`, etc. Par exemple, la classe :class:`Number` stocke un nombre et " +"prend en charge l’utilisation de += en créant une nouvelle instance avec une " +"valeur incrémentée." #: ../Doc/whatsnew/2.0.rst:377 msgid "" @@ -502,6 +702,10 @@ msgid "" "value; this return value is bound as the new value of the variable on the " "left-hand side." msgstr "" +"La méthode spéciale :meth:`__iadd__` est appelée avec la valeur de " +"l’incrément, et doit renvoyer une nouvelle instance avec une valeur " +"correctement modifiée ; cette valeur de rendement est liée comme la nouvelle " +"valeur de la variable sur le côté gauche." #: ../Doc/whatsnew/2.0.rst:381 msgid "" @@ -709,9 +913,9 @@ msgid "" "computes this by simply trying every index of the sequence until either " "*obj* is found or an :exc:`IndexError` is encountered. Moshe Zadka " "contributed a patch which adds a :meth:`__contains__` magic method for " -"providing a custom implementation for :keyword:`in`. Additionally, new built-" -"in objects written in C can define what :keyword:`in` means for them via a " -"new slot in the sequence protocol." +"providing a custom implementation for :keyword:`!in`. Additionally, new " +"built-in objects written in C can define what :keyword:`!in` means for them " +"via a new slot in the sequence protocol." msgstr "" #: ../Doc/whatsnew/2.0.rst:547 diff --git a/whatsnew/2.1.po b/whatsnew/2.1.po index c9eda8b5b..d2cf5e014 100644 --- a/whatsnew/2.1.po +++ b/whatsnew/2.1.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-02 00:10+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2018-07-31 23:42+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -76,7 +76,7 @@ msgid "" "because the binding of the name ``g`` isn't in either its local namespace or " "in the module-level namespace. This isn't much of a problem in practice " "(how often do you recursively define interior functions like this?), but " -"this also made using the :keyword:`lambda` statement clumsier, and this was " +"this also made using the :keyword:`lambda` expression clumsier, and this was " "a problem in practice. In code which uses :keyword:`lambda` you can often " "find local variables being copied by passing them as the default values of " "arguments. ::" @@ -187,8 +187,8 @@ msgid "" "While it looks like a normal :keyword:`import` statement, it's not; there " "are strict rules on where such a future statement can be put. They can only " "be at the top of a module, and must precede any Python code or regular :" -"keyword:`import` statements. This is because such statements can affect how " -"the Python bytecode compiler parses code and generates bytecode, so they " +"keyword:`!import` statements. This is because such statements can affect " +"how the Python bytecode compiler parses code and generates bytecode, so they " "must precede any statement that will result in bytecodes being produced." msgstr "" @@ -1011,7 +1011,3 @@ msgid "" "Michael Hudson, Marc-André Lemburg, Fredrik Lundh, Neil Schemenauer, Thomas " "Wouters." msgstr "" - -#, fuzzy -#~ msgid "PEP 232 - Function Attributes" -#~ msgstr "PEP 232 : Attributs de fonctions" diff --git a/whatsnew/2.2.po b/whatsnew/2.2.po index dd9819b0c..cf7472f08 100644 --- a/whatsnew/2.2.po +++ b/whatsnew/2.2.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2018-08-01 00:07+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -176,7 +176,7 @@ msgid "" "This means that :keyword:`class` statements that don't have any base classes " "are always classic classes in Python 2.2. (Actually you can also change " "this by setting a module-level variable named :attr:`__metaclass__` --- see :" -"pep:`253` for the details --- but it's easier to just subclass :keyword:" +"pep:`253` for the details --- but it's easier to just subclass :class:" "`object`.)" msgstr "" @@ -632,7 +632,7 @@ msgstr "" #: ../Doc/whatsnew/2.2.rst:562 msgid "" "A new keyword, :keyword:`yield`, was introduced for generators. Any " -"function containing a :keyword:`yield` statement is a generator function; " +"function containing a :keyword:`!yield` statement is a generator function; " "this is detected by Python's bytecode compiler which compiles the function " "specially as a result. Because a new keyword was introduced, generators " "must be explicitly enabled in a module by including a ``from __future__ " @@ -646,14 +646,14 @@ msgid "" "instead it returns a generator object that supports the iterator protocol. " "On executing the :keyword:`yield` statement, the generator outputs the value " "of ``i``, similar to a :keyword:`return` statement. The big difference " -"between :keyword:`yield` and a :keyword:`return` statement is that on " -"reaching a :keyword:`yield` the generator's state of execution is suspended " +"between :keyword:`!yield` and a :keyword:`!return` statement is that on " +"reaching a :keyword:`!yield` the generator's state of execution is suspended " "and local variables are preserved. On the next call to the generator's " "``next()`` method, the function will resume executing immediately after the :" -"keyword:`yield` statement. (For complicated reasons, the :keyword:`yield` " -"statement isn't allowed inside the :keyword:`try` block of a :keyword:" +"keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield` " +"statement isn't allowed inside the :keyword:`!try` block of a :keyword:" "`try`...\\ :keyword:`finally` statement; read :pep:`255` for a full " -"explanation of the interaction between :keyword:`yield` and exceptions.)" +"explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" #: ../Doc/whatsnew/2.2.rst:583 @@ -670,11 +670,11 @@ msgstr "" msgid "" "Inside a generator function, the :keyword:`return` statement can only be " "used without a value, and signals the end of the procession of values; " -"afterwards the generator cannot return any further values. :keyword:`return` " -"with a value, such as ``return 5``, is a syntax error inside a generator " -"function. The end of the generator's results can also be indicated by " -"raising :exc:`StopIteration` manually, or by just letting the flow of " -"execution fall off the bottom of the function." +"afterwards the generator cannot return any further values. :keyword:`!" +"return` with a value, such as ``return 5``, is a syntax error inside a " +"generator function. The end of the generator's results can also be " +"indicated by raising :exc:`StopIteration` manually, or by just letting the " +"flow of execution fall off the bottom of the function." msgstr "" #: ../Doc/whatsnew/2.2.rst:611 @@ -979,8 +979,8 @@ msgid "" "because the binding of the name ``g`` isn't in either its local namespace or " "in the module-level namespace. This isn't much of a problem in practice " "(how often do you recursively define interior functions like this?), but " -"this also made using the :keyword:`lambda` statement clumsier, and this was " -"a problem in practice. In code which uses :keyword:`lambda` you can often " +"this also made using the :keyword:`lambda` expression clumsier, and this was " +"a problem in practice. In code which uses :keyword:`!lambda` you can often " "find local variables being copied by passing them as the default values of " "arguments. ::" msgstr "" @@ -1527,11 +1527,3 @@ msgid "" "Paalasma, Tim Peters, Jens Quade, Tom Reinhardt, Neil Schemenauer, Guido van " "Rossum, Greg Ward, Edward Welbourne." msgstr "" - -#, fuzzy -#~ msgid "PEP 234 - Iterators" -#~ msgstr "PEP 234 : Itérateurs" - -#, fuzzy -#~ msgid "PEP 255 - Simple Generators" -#~ msgstr "PEP 255 : Générateurs simples" diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index 73fe90e66..a1d829797 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2018-07-31 23:42+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -152,7 +152,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:151 msgid "" "A new keyword, :keyword:`yield`, was introduced for generators. Any " -"function containing a :keyword:`yield` statement is a generator function; " +"function containing a :keyword:`!yield` statement is a generator function; " "this is detected by Python's bytecode compiler which compiles the function " "specially as a result." msgstr "" @@ -163,14 +163,14 @@ msgid "" "instead it returns a generator object that supports the iterator protocol. " "On executing the :keyword:`yield` statement, the generator outputs the value " "of ``i``, similar to a :keyword:`return` statement. The big difference " -"between :keyword:`yield` and a :keyword:`return` statement is that on " -"reaching a :keyword:`yield` the generator's state of execution is suspended " +"between :keyword:`!yield` and a :keyword:`!return` statement is that on " +"reaching a :keyword:`!yield` the generator's state of execution is suspended " "and local variables are preserved. On the next call to the generator's ``." "next()`` method, the function will resume executing immediately after the :" -"keyword:`yield` statement. (For complicated reasons, the :keyword:`yield` " -"statement isn't allowed inside the :keyword:`try` block of a :keyword:" -"`try`...\\ :keyword:`finally` statement; read :pep:`255` for a full " -"explanation of the interaction between :keyword:`yield` and exceptions.)" +"keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield` " +"statement isn't allowed inside the :keyword:`try` block of a :keyword:`!" +"try`...\\ :keyword:`!finally` statement; read :pep:`255` for a full " +"explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" #: ../Doc/whatsnew/2.3.rst:169 @@ -187,11 +187,11 @@ msgstr "" msgid "" "Inside a generator function, the :keyword:`return` statement can only be " "used without a value, and signals the end of the procession of values; " -"afterwards the generator cannot return any further values. :keyword:`return` " -"with a value, such as ``return 5``, is a syntax error inside a generator " -"function. The end of the generator's results can also be indicated by " -"raising :exc:`StopIteration` manually, or by just letting the flow of " -"execution fall off the bottom of the function." +"afterwards the generator cannot return any further values. :keyword:`!" +"return` with a value, such as ``return 5``, is a syntax error inside a " +"generator function. The end of the generator's results can also be " +"indicated by raising :exc:`StopIteration` manually, or by just letting the " +"flow of execution fall off the bottom of the function." msgstr "" #: ../Doc/whatsnew/2.3.rst:197 @@ -327,7 +327,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:331 msgid ":pep:`273` - Import Modules from Zip Archives" -msgstr "" +msgstr ":pep:`273` - Import Modules from Zip Archives" #: ../Doc/whatsnew/2.3.rst:329 msgid "" @@ -614,7 +614,7 @@ msgid "" "arithmetic with Booleans, and would require that the expression in an :" "keyword:`if` statement always evaluate to a Boolean result. Python is not " "this strict and never will be, as :pep:`285` explicitly says. This means " -"you can still use any expression in an :keyword:`if` statement, even ones " +"you can still use any expression in an :keyword:`!if` statement, even ones " "that evaluate to a list or tuple or some random object. The Boolean type is " "a subclass of the :class:`int` class so that arithmetic using a Boolean " "still works. ::" @@ -786,7 +786,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:760 msgid ":pep:`302` - New Import Hooks" -msgstr "" +msgstr ":pep:`302` — Nouveaux crochets d'importation" #: ../Doc/whatsnew/2.3.rst:761 msgid "" @@ -2343,7 +2343,3 @@ msgid "" "Norwitz, Hans Nowak, Chris Reedy, Francesco Ricciardi, Vinay Sajip, Neil " "Schemenauer, Roman Suzi, Jason Tishler, Just van Rossum." msgstr "" - -#, fuzzy -#~ msgid "PEP 255 - Simple Generators" -#~ msgstr "PEP 255 : Générateurs simples" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index 22cf2179c..4f85cd2d8 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2018-07-31 23:32+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -440,7 +440,7 @@ msgid "" "Until Python 2.5, the :keyword:`try` statement came in two flavours. You " "could use a :keyword:`finally` block to ensure that code is always executed, " "or one or more :keyword:`except` blocks to catch specific exceptions. You " -"couldn't combine both :keyword:`except` blocks and a :keyword:`finally` " +"couldn't combine both :keyword:`!except` blocks and a :keyword:`!finally` " "block, because generating the right bytecode for the combined version was " "complicated and it wasn't clear what the semantics of the combined statement " "should be." @@ -505,14 +505,14 @@ msgid "" "values from 0 up to 9. On encountering the :keyword:`yield` statement, the " "iterator returns the provided value and suspends the function's execution, " "preserving the local variables. Execution resumes on the following call to " -"the iterator's :meth:`next` method, picking up after the :keyword:`yield` " +"the iterator's :meth:`next` method, picking up after the :keyword:`!yield` " "statement." msgstr "" #: ../Doc/whatsnew/2.5.rst:440 msgid "" "In Python 2.3, :keyword:`yield` was a statement; it didn't return any " -"value. In 2.5, :keyword:`yield` is now an expression, returning a value " +"value. In 2.5, :keyword:`!yield` is now an expression, returning a value " "that can be assigned to a variable or otherwise operated on::" msgstr "" @@ -533,25 +533,25 @@ msgid "" "operation, as in ``val = (yield i) + 12``.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:457 +#: ../Doc/whatsnew/2.5.rst:458 msgid "" "Values are sent into a generator by calling its ``send(value)`` method. The " "generator's code is then resumed and the :keyword:`yield` expression returns " "the specified *value*. If the regular :meth:`next` method is called, the :" -"keyword:`yield` returns :const:`None`." +"keyword:`!yield` returns :const:`None`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:462 +#: ../Doc/whatsnew/2.5.rst:463 msgid "" "Here's the previous example, modified to allow changing the value of the " "internal counter. ::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:475 +#: ../Doc/whatsnew/2.5.rst:476 msgid "And here's an example of changing the counter::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:492 +#: ../Doc/whatsnew/2.5.rst:493 msgid "" ":keyword:`yield` will usually return :const:`None`, so you should always " "check for this case. Don't just use its value in expressions unless you're " @@ -559,19 +559,19 @@ msgid "" "your generator function." msgstr "" -#: ../Doc/whatsnew/2.5.rst:497 +#: ../Doc/whatsnew/2.5.rst:498 msgid "" "In addition to :meth:`send`, there are two other new methods on generators:" msgstr "" -#: ../Doc/whatsnew/2.5.rst:499 +#: ../Doc/whatsnew/2.5.rst:500 msgid "" "``throw(type, value=None, traceback=None)`` is used to raise an exception " "inside the generator; the exception is raised by the :keyword:`yield` " "expression where the generator's execution is paused." msgstr "" -#: ../Doc/whatsnew/2.5.rst:503 +#: ../Doc/whatsnew/2.5.rst:504 msgid "" ":meth:`close` raises a new :exc:`GeneratorExit` exception inside the " "generator to terminate the iteration. On receiving this exception, the " @@ -583,20 +583,23 @@ msgid "" "generator is garbage-collected." msgstr "" -#: ../Doc/whatsnew/2.5.rst:511 +#: ../Doc/whatsnew/2.5.rst:512 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 "" -#: ../Doc/whatsnew/2.5.rst:514 +#: ../Doc/whatsnew/2.5.rst:515 msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." msgstr "" +"Ces changements cumulés transforment les générateurs de producteurs " +"unidirectionnels d'information vers un statut hybride à la fois producteur " +"et consommateur." -#: ../Doc/whatsnew/2.5.rst:517 +#: ../Doc/whatsnew/2.5.rst:518 msgid "" "Generators also become *coroutines*, a more generalized form of subroutines. " "Subroutines are entered at one point and exited at another point (the top of " @@ -606,7 +609,7 @@ msgid "" "effectively in Python." msgstr "" -#: ../Doc/whatsnew/2.5.rst:523 +#: ../Doc/whatsnew/2.5.rst:524 msgid "" "The addition of the :meth:`close` method has one side effect that isn't " "obvious. :meth:`close` is called when a generator is garbage-collected, so " @@ -621,7 +624,7 @@ msgid "" "PEP 343. I'll look at this new statement in the following section." msgstr "" -#: ../Doc/whatsnew/2.5.rst:535 +#: ../Doc/whatsnew/2.5.rst:536 msgid "" "Another even more esoteric effect of this change: previously, the :attr:" "`gi_frame` attribute of a generator was always a frame object. It's now " @@ -629,45 +632,45 @@ msgid "" "exhausted." msgstr "" -#: ../Doc/whatsnew/2.5.rst:548 +#: ../Doc/whatsnew/2.5.rst:549 msgid ":pep:`342` - Coroutines via Enhanced Generators" msgstr ":pep:`342` -- Coroutines *via* des générateurs améliorés" -#: ../Doc/whatsnew/2.5.rst:544 +#: ../Doc/whatsnew/2.5.rst:545 msgid "" "PEP written by Guido van Rossum and Phillip J. Eby; implemented by Phillip " "J. Eby. Includes examples of some fancier uses of generators as coroutines." msgstr "" -#: ../Doc/whatsnew/2.5.rst:547 +#: ../Doc/whatsnew/2.5.rst:548 msgid "" "Earlier versions of these features were proposed in :pep:`288` by Raymond " "Hettinger and :pep:`325` by Samuele Pedroni." msgstr "" -#: ../Doc/whatsnew/2.5.rst:551 +#: ../Doc/whatsnew/2.5.rst:552 msgid "https://en.wikipedia.org/wiki/Coroutine" msgstr "https://en.wikipedia.org/wiki/Coroutine" -#: ../Doc/whatsnew/2.5.rst:551 +#: ../Doc/whatsnew/2.5.rst:552 msgid "The Wikipedia entry for coroutines." msgstr "L’article de Wikipédia sur les coroutines." -#: ../Doc/whatsnew/2.5.rst:553 +#: ../Doc/whatsnew/2.5.rst:554 msgid "http://www.sidhe.org/~dan/blog/archives/000178.html" msgstr "http://www.sidhe.org/~dan/blog/archives/000178.html" -#: ../Doc/whatsnew/2.5.rst:554 +#: ../Doc/whatsnew/2.5.rst:555 msgid "" "An explanation of coroutines from a Perl point of view, written by Dan " "Sugalski." msgstr "" -#: ../Doc/whatsnew/2.5.rst:562 +#: ../Doc/whatsnew/2.5.rst:563 msgid "PEP 343: The 'with' statement" msgstr "" -#: ../Doc/whatsnew/2.5.rst:564 +#: ../Doc/whatsnew/2.5.rst:565 msgid "" "The ':keyword:`with`' statement clarifies code that previously would use " "``try...finally`` blocks to ensure that clean-up code is executed. In this " @@ -676,20 +679,20 @@ msgid "" "objects for use with this statement." msgstr "" -#: ../Doc/whatsnew/2.5.rst:570 +#: ../Doc/whatsnew/2.5.rst:571 msgid "" "The ':keyword:`with`' statement is a new control-flow structure whose basic " "structure is::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:576 +#: ../Doc/whatsnew/2.5.rst:577 msgid "" "The expression is evaluated, and it should result in an object that supports " "the context management protocol (that is, has :meth:`__enter__` and :meth:" "`__exit__` methods." msgstr "" -#: ../Doc/whatsnew/2.5.rst:580 +#: ../Doc/whatsnew/2.5.rst:581 msgid "" "The object's :meth:`__enter__` is called before *with-block* is executed and " "therefore can run set-up code. It also may return a value that is bound to " @@ -697,98 +700,98 @@ msgid "" "assigned the result of *expression*.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:585 +#: ../Doc/whatsnew/2.5.rst:586 msgid "" "After execution of the *with-block* is finished, the object's :meth:" "`__exit__` method is called, even if the block raised an exception, and can " "therefore run clean-up code." msgstr "" -#: ../Doc/whatsnew/2.5.rst:589 +#: ../Doc/whatsnew/2.5.rst:590 msgid "" "To enable the statement in Python 2.5, you need to add the following " "directive to your module::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:594 +#: ../Doc/whatsnew/2.5.rst:595 msgid "The statement will always be enabled in Python 2.6." msgstr "" -#: ../Doc/whatsnew/2.5.rst:596 +#: ../Doc/whatsnew/2.5.rst:597 msgid "" "Some standard Python objects now support the context management protocol and " "can be used with the ':keyword:`with`' statement. File objects are one " "example::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:604 +#: ../Doc/whatsnew/2.5.rst:605 msgid "" "After this statement has executed, the file object in *f* will have been " "automatically closed, even if the :keyword:`for` loop raised an exception " "part-way through the block." msgstr "" -#: ../Doc/whatsnew/2.5.rst:610 +#: ../Doc/whatsnew/2.5.rst:611 msgid "" "In this case, *f* is the same object created by :func:`open`, because :meth:" "`file.__enter__` returns *self*." msgstr "" -#: ../Doc/whatsnew/2.5.rst:613 +#: ../Doc/whatsnew/2.5.rst:614 msgid "" "The :mod:`threading` module's locks and condition variables also support " "the ':keyword:`with`' statement::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:621 +#: ../Doc/whatsnew/2.5.rst:622 msgid "" "The lock is acquired before the block is executed and always released once " "the block is complete." msgstr "" -#: ../Doc/whatsnew/2.5.rst:624 +#: ../Doc/whatsnew/2.5.rst:625 msgid "" "The new :func:`localcontext` function in the :mod:`decimal` module makes it " "easy to save and restore the current decimal context, which encapsulates the " "desired precision and rounding characteristics for computations::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:643 +#: ../Doc/whatsnew/2.5.rst:644 msgid "Writing Context Managers" msgstr "Écrire des gestionnaires de contexte" -#: ../Doc/whatsnew/2.5.rst:645 +#: ../Doc/whatsnew/2.5.rst:646 msgid "" "Under the hood, the ':keyword:`with`' statement is fairly complicated. Most " -"people will only use ':keyword:`with`' in company with existing objects and " +"people will only use ':keyword:`!with`' in company with existing objects and " "don't need to know these details, so you can skip the rest of this section " "if you like. Authors of new objects will need to understand the details of " "the underlying implementation and should keep reading." msgstr "" -#: ../Doc/whatsnew/2.5.rst:651 +#: ../Doc/whatsnew/2.5.rst:652 msgid "A high-level explanation of the context management protocol is:" msgstr "" -#: ../Doc/whatsnew/2.5.rst:653 +#: ../Doc/whatsnew/2.5.rst:654 msgid "" "The expression is evaluated and should result in an object called a " "\"context manager\". The context manager must have :meth:`__enter__` and :" "meth:`__exit__` methods." msgstr "" -#: ../Doc/whatsnew/2.5.rst:657 +#: ../Doc/whatsnew/2.5.rst:658 msgid "" "The context manager's :meth:`__enter__` method is called. The value " "returned is assigned to *VAR*. If no ``'as VAR'`` clause is present, the " "value is simply discarded." msgstr "" -#: ../Doc/whatsnew/2.5.rst:661 +#: ../Doc/whatsnew/2.5.rst:662 msgid "The code in *BLOCK* is executed." msgstr "Le code dans *BLOCK* est exécuté." -#: ../Doc/whatsnew/2.5.rst:663 +#: ../Doc/whatsnew/2.5.rst:664 msgid "" "If *BLOCK* raises an exception, the ``__exit__(type, value, traceback)`` is " "called with the exception details, the same values returned by :func:`sys." @@ -799,19 +802,19 @@ msgid "" "will never realize anything went wrong." msgstr "" -#: ../Doc/whatsnew/2.5.rst:671 +#: ../Doc/whatsnew/2.5.rst:672 msgid "" "If *BLOCK* didn't raise an exception, the :meth:`__exit__` method is still " "called, but *type*, *value*, and *traceback* are all ``None``." msgstr "" -#: ../Doc/whatsnew/2.5.rst:674 +#: ../Doc/whatsnew/2.5.rst:675 msgid "" "Let's think through an example. I won't present detailed code but will only " "sketch the methods necessary for a database that supports transactions." msgstr "" -#: ../Doc/whatsnew/2.5.rst:677 +#: ../Doc/whatsnew/2.5.rst:678 msgid "" "(For people unfamiliar with database terminology: a set of changes to the " "database are grouped into a transaction. Transactions can be either " @@ -820,20 +823,20 @@ msgid "" "unchanged. See any database textbook for more information.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:683 +#: ../Doc/whatsnew/2.5.rst:684 msgid "" "Let's assume there's an object representing a database connection. Our goal " "will be to let the user write code like this::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:692 +#: ../Doc/whatsnew/2.5.rst:693 msgid "" "The transaction should be committed if the code in the block runs flawlessly " "or rolled back if there's an exception. Here's the basic interface for :" "class:`DatabaseConnection` that I'll assume::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:705 +#: ../Doc/whatsnew/2.5.rst:706 msgid "" "The :meth:`__enter__` method is pretty easy, having only to start a new " "transaction. For this application the resulting cursor object would be a " @@ -842,7 +845,7 @@ msgid "" "variable name. ::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:717 +#: ../Doc/whatsnew/2.5.rst:718 msgid "" "The :meth:`__exit__` method is the most complicated because it's where most " "of the work has to be done. The method has to check if an exception " @@ -850,7 +853,7 @@ msgid "" "transaction is rolled back if there was an exception." msgstr "" -#: ../Doc/whatsnew/2.5.rst:722 +#: ../Doc/whatsnew/2.5.rst:723 msgid "" "In the code below, execution will just fall off the end of the function, " "returning the default value of ``None``. ``None`` is false, so the " @@ -858,55 +861,56 @@ msgid "" "explicit and add a :keyword:`return` statement at the marked location. ::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:742 +#: ../Doc/whatsnew/2.5.rst:743 msgid "The contextlib module" msgstr "Le module *contextlib*" -#: ../Doc/whatsnew/2.5.rst:744 +#: ../Doc/whatsnew/2.5.rst:745 msgid "" "The new :mod:`contextlib` module provides some functions and a decorator " "that are useful for writing objects for use with the ':keyword:`with`' " "statement." msgstr "" -#: ../Doc/whatsnew/2.5.rst:747 +#: ../Doc/whatsnew/2.5.rst:748 msgid "" "The decorator is called :func:`contextmanager`, and lets you write a single " "generator function instead of defining a new class. The generator should " "yield exactly one value. The code up to the :keyword:`yield` will be " "executed as the :meth:`__enter__` method, and the value yielded will be the " "method's return value that will get bound to the variable in the ':keyword:" -"`with`' statement's :keyword:`as` clause, if any. The code after the :" +"`with`' statement's :keyword:`!as` clause, if any. The code after the :" "keyword:`yield` will be executed in the :meth:`__exit__` method. Any " -"exception raised in the block will be raised by the :keyword:`yield` " +"exception raised in the block will be raised by the :keyword:`!yield` " "statement." msgstr "" -#: ../Doc/whatsnew/2.5.rst:756 +#: ../Doc/whatsnew/2.5.rst:757 msgid "" "Our database example from the previous section could be written using this " "decorator as::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:776 +#: ../Doc/whatsnew/2.5.rst:777 msgid "" "The :mod:`contextlib` module also has a ``nested(mgr1, mgr2, ...)`` function " "that combines a number of context managers so you don't need to write nested " -"':keyword:`with`' statements. In this example, the single ':keyword:`with`' " -"statement both starts a database transaction and acquires a thread lock::" +"':keyword:`with`' statements. In this example, the single ':keyword:`!" +"with`' statement both starts a database transaction and acquires a thread " +"lock::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:785 +#: ../Doc/whatsnew/2.5.rst:786 msgid "" "Finally, the ``closing(object)`` function returns *object* so that it can be " "bound to a variable, and calls ``object.close`` at the end of the block. ::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:802 +#: ../Doc/whatsnew/2.5.rst:803 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - The \"with\" statement" -#: ../Doc/whatsnew/2.5.rst:799 +#: ../Doc/whatsnew/2.5.rst:800 msgid "" "PEP written by Guido van Rossum and Nick Coghlan; implemented by Mike Bland, " "Guido van Rossum, and Neal Norwitz. The PEP shows the code generated for a " @@ -914,15 +918,15 @@ msgid "" "statement works." msgstr "" -#: ../Doc/whatsnew/2.5.rst:804 +#: ../Doc/whatsnew/2.5.rst:805 msgid "The documentation for the :mod:`contextlib` module." msgstr "" -#: ../Doc/whatsnew/2.5.rst:812 +#: ../Doc/whatsnew/2.5.rst:813 msgid "PEP 352: Exceptions as New-Style Classes" msgstr "" -#: ../Doc/whatsnew/2.5.rst:814 +#: ../Doc/whatsnew/2.5.rst:815 msgid "" "Exception classes can now be new-style classes, not just classic classes, " "and the built-in :exc:`Exception` class and all the standard built-in " @@ -930,13 +934,13 @@ msgid "" "classes." msgstr "" -#: ../Doc/whatsnew/2.5.rst:818 +#: ../Doc/whatsnew/2.5.rst:819 msgid "" "The inheritance hierarchy for exceptions has been rearranged a bit. In 2.5, " "the inheritance relationships are::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:827 +#: ../Doc/whatsnew/2.5.rst:828 msgid "" "This rearrangement was done because people often want to catch all " "exceptions that indicate program errors. :exc:`KeyboardInterrupt` and :exc:" @@ -947,7 +951,7 @@ msgid "" "The usual pattern is::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:842 +#: ../Doc/whatsnew/2.5.rst:843 msgid "" "In Python 2.5, you can now write ``except Exception`` to achieve the same " "result, catching all the exceptions that usually indicate errors but " @@ -955,7 +959,7 @@ msgid "" "previous versions, a bare ``except:`` still catches all exceptions." msgstr "" -#: ../Doc/whatsnew/2.5.rst:847 +#: ../Doc/whatsnew/2.5.rst:848 msgid "" "The goal for Python 3.0 is to require any class raised as an exception to " "derive from :exc:`BaseException` or some descendant of :exc:`BaseException`, " @@ -966,28 +970,28 @@ msgid "" "hasn't decided whether to do this or not." msgstr "" -#: ../Doc/whatsnew/2.5.rst:855 +#: ../Doc/whatsnew/2.5.rst:856 msgid "" "Raising of strings as exceptions, as in the statement ``raise \"Error " "occurred\"``, is deprecated in Python 2.5 and will trigger a warning. The " "aim is to be able to remove the string-exception feature in a few releases." msgstr "" -#: ../Doc/whatsnew/2.5.rst:862 +#: ../Doc/whatsnew/2.5.rst:863 msgid ":pep:`352` - Required Superclass for Exceptions" msgstr "" -#: ../Doc/whatsnew/2.5.rst:863 +#: ../Doc/whatsnew/2.5.rst:864 msgid "" "PEP written by Brett Cannon and Guido van Rossum; implemented by Brett " "Cannon." msgstr "" -#: ../Doc/whatsnew/2.5.rst:871 +#: ../Doc/whatsnew/2.5.rst:872 msgid "PEP 353: Using ssize_t as the index type" msgstr "" -#: ../Doc/whatsnew/2.5.rst:873 +#: ../Doc/whatsnew/2.5.rst:874 msgid "" "A wide-ranging change to Python's C API, using a new :c:type:`Py_ssize_t` " "type definition instead of :c:type:`int`, will permit the interpreter to " @@ -995,7 +999,7 @@ msgid "" "capacity on 32-bit platforms." msgstr "" -#: ../Doc/whatsnew/2.5.rst:878 +#: ../Doc/whatsnew/2.5.rst:879 msgid "" "Various pieces of the Python interpreter used C's :c:type:`int` type to " "store sizes or counts; for example, the number of items in a list or tuple " @@ -1007,7 +1011,7 @@ msgid "" "commonly available model leaves :c:type:`int` as 32 bits.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:887 +#: ../Doc/whatsnew/2.5.rst:888 msgid "" "A limit of 2147483647 items doesn't really matter on a 32-bit platform " "because you'll run out of memory before hitting the length limit. Each list " @@ -1016,7 +1020,7 @@ msgid "" "than a 32-bit address space can contain." msgstr "" -#: ../Doc/whatsnew/2.5.rst:893 +#: ../Doc/whatsnew/2.5.rst:894 msgid "" "It's possible to address that much memory on a 64-bit platform, however. " "The pointers for a list that size would only require 16 GiB of space, so " @@ -1029,7 +1033,7 @@ msgid "" "bit machines, and the transition would be more painful then.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:903 +#: ../Doc/whatsnew/2.5.rst:904 msgid "" "This change most strongly affects authors of C extension modules. Python " "strings and container types such as lists and tuples now use :c:type:" @@ -1038,7 +1042,7 @@ msgid "" "need to have some variables changed to :c:type:`Py_ssize_t`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:909 +#: ../Doc/whatsnew/2.5.rst:910 msgid "" "The :c:func:`PyArg_ParseTuple` and :c:func:`Py_BuildValue` functions have a " "new conversion code, ``n``, for :c:type:`Py_ssize_t`. :c:func:" @@ -1047,25 +1051,25 @@ msgid "" "including :file:`Python.h` to make them return :c:type:`Py_ssize_t`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:915 +#: ../Doc/whatsnew/2.5.rst:916 msgid "" ":pep:`353` has a section on conversion guidelines that extension authors " "should read to learn about supporting 64-bit platforms." msgstr "" -#: ../Doc/whatsnew/2.5.rst:921 +#: ../Doc/whatsnew/2.5.rst:922 msgid ":pep:`353` - Using ssize_t as the index type" msgstr "" -#: ../Doc/whatsnew/2.5.rst:922 +#: ../Doc/whatsnew/2.5.rst:923 msgid "PEP written and implemented by Martin von Löwis." msgstr "" -#: ../Doc/whatsnew/2.5.rst:930 +#: ../Doc/whatsnew/2.5.rst:931 msgid "PEP 357: The '__index__' method" msgstr "" -#: ../Doc/whatsnew/2.5.rst:932 +#: ../Doc/whatsnew/2.5.rst:933 msgid "" "The NumPy developers had a problem that could only be solved by adding a new " "special method, :meth:`__index__`. When using slice notation, as in " @@ -1076,7 +1080,7 @@ msgid "" "could be used as slice indexes." msgstr "" -#: ../Doc/whatsnew/2.5.rst:940 +#: ../Doc/whatsnew/2.5.rst:941 msgid "" "Slicing can't just use the existing :meth:`__int__` method because that " "method is also used to implement coercion to integers. If slicing used :" @@ -1084,21 +1088,21 @@ msgid "" "and that's clearly an undesirable behaviour." msgstr "" -#: ../Doc/whatsnew/2.5.rst:945 +#: ../Doc/whatsnew/2.5.rst:946 msgid "" "Instead, a new special method called :meth:`__index__` was added. It takes " "no arguments and returns an integer giving the slice index to use. For " "example::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:952 +#: ../Doc/whatsnew/2.5.rst:953 msgid "" "The return value must be either a Python integer or long integer. The " "interpreter will check that the type returned is correct, and raises a :exc:" "`TypeError` if this requirement isn't met." msgstr "" -#: ../Doc/whatsnew/2.5.rst:956 +#: ../Doc/whatsnew/2.5.rst:957 msgid "" "A corresponding :attr:`nb_index` slot was added to the C-level :c:type:" "`PyNumberMethods` structure to let C extensions implement this protocol. " @@ -1106,25 +1110,25 @@ msgid "" "`__index__` function and retrieve its result." msgstr "" -#: ../Doc/whatsnew/2.5.rst:964 +#: ../Doc/whatsnew/2.5.rst:965 msgid ":pep:`357` - Allowing Any Object to be Used for Slicing" msgstr "" -#: ../Doc/whatsnew/2.5.rst:965 +#: ../Doc/whatsnew/2.5.rst:966 msgid "PEP written and implemented by Travis Oliphant." msgstr "" -#: ../Doc/whatsnew/2.5.rst:973 +#: ../Doc/whatsnew/2.5.rst:974 msgid "Other Language Changes" msgstr "" -#: ../Doc/whatsnew/2.5.rst:975 +#: ../Doc/whatsnew/2.5.rst:976 msgid "" "Here are all of the changes that Python 2.5 makes to the core Python " "language." msgstr "" -#: ../Doc/whatsnew/2.5.rst:977 +#: ../Doc/whatsnew/2.5.rst:978 msgid "" "The :class:`dict` type has a new hook for letting subclasses provide a " "default value when a key isn't contained in the dictionary. When a key isn't " @@ -1134,13 +1138,13 @@ msgid "" "returns zero for any missing key::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:992 +#: ../Doc/whatsnew/2.5.rst:993 msgid "" "Both 8-bit and Unicode strings have new ``partition(sep)`` and " "``rpartition(sep)`` methods that simplify a common use case." msgstr "" -#: ../Doc/whatsnew/2.5.rst:995 +#: ../Doc/whatsnew/2.5.rst:996 msgid "" "The ``find(S)`` method is often used to get an index which is then used to " "slice the string and obtain the pieces that are before and after the " @@ -1153,26 +1157,26 @@ msgid "" "'reverse'." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1004 +#: ../Doc/whatsnew/2.5.rst:1005 msgid "Some examples::" -msgstr "Quelques exemples : ::" +msgstr "Quelques exemples ::" -#: ../Doc/whatsnew/2.5.rst:1017 +#: ../Doc/whatsnew/2.5.rst:1018 msgid "" "(Implemented by Fredrik Lundh following a suggestion by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1019 +#: ../Doc/whatsnew/2.5.rst:1020 msgid "" "The :meth:`startswith` and :meth:`endswith` methods of string types now " "accept tuples of strings to check for. ::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1025 +#: ../Doc/whatsnew/2.5.rst:1026 msgid "(Implemented by Georg Brandl following a suggestion by Tom Lynn.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1029 +#: ../Doc/whatsnew/2.5.rst:1030 msgid "" "The :func:`min` and :func:`max` built-in functions gained a ``key`` keyword " "parameter analogous to the ``key`` argument for :meth:`sort`. This " @@ -1182,11 +1186,11 @@ msgid "" "find the longest string in a list, you can do::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1042 +#: ../Doc/whatsnew/2.5.rst:1043 msgid "(Contributed by Steven Bethard and Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1044 +#: ../Doc/whatsnew/2.5.rst:1045 msgid "" "Two new built-in functions, :func:`any` and :func:`all`, evaluate whether an " "iterator contains any true or false values. :func:`any` returns :const:" @@ -1196,7 +1200,7 @@ msgid "" "Rossum, and implemented by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1051 +#: ../Doc/whatsnew/2.5.rst:1052 msgid "" "The result of a class's :meth:`__hash__` method can now be either a long " "integer or a regular integer. If a long integer is returned, the hash of " @@ -1206,7 +1210,7 @@ msgid "" "meth:`__hash__` methods (though this is discouraged)." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1060 +#: ../Doc/whatsnew/2.5.rst:1061 msgid "" "ASCII is now the default encoding for modules. It's now a syntax error if " "a module contains string literals with 8-bit characters but doesn't have an " @@ -1215,7 +1219,7 @@ msgid "" "you might add a line like this near the top of the source file::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1068 +#: ../Doc/whatsnew/2.5.rst:1069 msgid "" "A new warning, :class:`UnicodeWarning`, is triggered when you attempt to " "compare a Unicode string and an 8-bit string that can't be converted to " @@ -1223,7 +1227,7 @@ msgid "" "false::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1080 +#: ../Doc/whatsnew/2.5.rst:1081 msgid "" "Previously this would raise a :class:`UnicodeDecodeError` exception, but in " "2.5 this could result in puzzling problems when accessing a dictionary. If " @@ -1233,18 +1237,18 @@ msgid "" "in :file:`dictobject.c` that implements dictionaries." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1087 +#: ../Doc/whatsnew/2.5.rst:1088 msgid "" "Raising an exception for such a comparison is strictly correct, but the " "change might have broken code, so instead :class:`UnicodeWarning` was " "introduced." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1090 +#: ../Doc/whatsnew/2.5.rst:1091 msgid "(Implemented by Marc-André Lemburg.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1092 +#: ../Doc/whatsnew/2.5.rst:1093 msgid "" "One error that Python programmers sometimes make is forgetting to include " "an :file:`__init__.py` module in a package directory. Debugging this mistake " @@ -1257,28 +1261,28 @@ msgid "" "by Thomas Wouters.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1101 +#: ../Doc/whatsnew/2.5.rst:1102 msgid "" "The list of base classes in a class definition can now be empty. As an " "example, this is now legal::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1107 +#: ../Doc/whatsnew/2.5.rst:1108 msgid "(Implemented by Brett Cannon.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1115 +#: ../Doc/whatsnew/2.5.rst:1116 msgid "Interactive Interpreter Changes" msgstr "Changements de l’interpréteur interactif" -#: ../Doc/whatsnew/2.5.rst:1117 +#: ../Doc/whatsnew/2.5.rst:1118 msgid "" "In the interactive interpreter, ``quit`` and ``exit`` have long been " "strings so that new users get a somewhat helpful message when they try to " "quit::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1123 +#: ../Doc/whatsnew/2.5.rst:1124 msgid "" "In Python 2.5, ``quit`` and ``exit`` are now objects that still produce " "string representations of themselves, but are also callable. Newbies who try " @@ -1286,18 +1290,18 @@ msgid "" "(Implemented by Georg Brandl.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1128 +#: ../Doc/whatsnew/2.5.rst:1129 msgid "" "The Python executable now accepts the standard long options :option:`--" "help` and :option:`--version`; on Windows, it also accepts the :option:`/? " "<-?>` option for displaying a help message. (Implemented by Georg Brandl.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1138 +#: ../Doc/whatsnew/2.5.rst:1139 msgid "Optimizations" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1140 +#: ../Doc/whatsnew/2.5.rst:1141 msgid "" "Several of the optimizations were developed at the NeedForSpeed sprint, an " "event held in Reykjavik, Iceland, from May 21--28 2006. The sprint focused " @@ -1306,7 +1310,7 @@ msgid "" "sprint are specially marked in the following list." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1146 +#: ../Doc/whatsnew/2.5.rst:1147 msgid "" "When they were introduced in Python 2.4, the built-in :class:`set` and :" "class:`frozenset` types were built on top of Python's dictionary type. In " @@ -1315,7 +1319,7 @@ msgid "" "(Implemented by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1152 +#: ../Doc/whatsnew/2.5.rst:1153 msgid "" "The speed of some Unicode operations, such as finding substrings, string " "splitting, and character map encoding and decoding, has been improved. " @@ -1324,7 +1328,7 @@ msgid "" "Walter Dörwald and Martin von Löwis.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1160 +#: ../Doc/whatsnew/2.5.rst:1161 msgid "" "The ``long(str, base)`` function is now faster on long digit strings because " "fewer intermediate results are calculated. The peak is for strings of " @@ -1332,7 +1336,7 @@ msgid "" "by Alan McIntyre and committed at the NeedForSpeed sprint.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1167 +#: ../Doc/whatsnew/2.5.rst:1168 msgid "" "It's now illegal to mix iterating over a file with ``for line in file`` and " "calling the file object's :meth:`read`/:meth:`readline`/:meth:`readlines` " @@ -1343,21 +1347,21 @@ msgid "" "method. (Implemented by Thomas Wouters.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1177 +#: ../Doc/whatsnew/2.5.rst:1178 msgid "" "The :mod:`struct` module now compiles structure format strings into an " "internal representation and caches this representation, yielding a 20% " "speedup. (Contributed by Bob Ippolito at the NeedForSpeed sprint.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1181 +#: ../Doc/whatsnew/2.5.rst:1182 msgid "" "The :mod:`re` module got a 1 or 2% speedup by switching to Python's " "allocator functions instead of the system's :c:func:`malloc` and :c:func:" "`free`. (Contributed by Jack Diederich at the NeedForSpeed sprint.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1185 +#: ../Doc/whatsnew/2.5.rst:1186 msgid "" "The code generator's peephole optimizer now performs simple constant folding " "in expressions. If you write something like ``a = 2+3``, the code generator " @@ -1365,7 +1369,7 @@ msgid "" "(Proposed and implemented by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1190 +#: ../Doc/whatsnew/2.5.rst:1191 msgid "" "Function calls are now faster because code objects now keep the most " "recently finished frame (a \"zombie frame\") in an internal field of the " @@ -1376,7 +1380,7 @@ msgid "" "Neal Norwitz.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1200 +#: ../Doc/whatsnew/2.5.rst:1201 msgid "" "Python's built-in exceptions are now new-style classes, a change that speeds " "up instantiation considerably. Exception handling in Python 2.5 is " @@ -1384,18 +1388,18 @@ msgid "" "Brandl and Sean Reifschneider at the NeedForSpeed sprint.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1205 +#: ../Doc/whatsnew/2.5.rst:1206 msgid "" "Importing now caches the paths tried, recording whether they exist or not " "so that the interpreter makes fewer :c:func:`open` and :c:func:`stat` calls " "on startup. (Contributed by Martin von Löwis and Georg Brandl.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1217 +#: ../Doc/whatsnew/2.5.rst:1218 msgid "New, Improved, and Removed Modules" msgstr "Modules ajoutés, modifiés, et supprimés" -#: ../Doc/whatsnew/2.5.rst:1219 +#: ../Doc/whatsnew/2.5.rst:1220 msgid "" "The standard library received many enhancements and bug fixes in Python 2.5. " "Here's a partial list of the most notable changes, sorted alphabetically by " @@ -1404,13 +1408,13 @@ msgid "" "details." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1224 +#: ../Doc/whatsnew/2.5.rst:1225 msgid "" "The :mod:`audioop` module now supports the a-LAW encoding, and the code for " "u-LAW encoding has been improved. (Contributed by Lars Immisch.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1227 +#: ../Doc/whatsnew/2.5.rst:1228 msgid "" "The :mod:`codecs` module gained support for incremental codecs. The :func:" "`codec.lookup` function now returns a :class:`CodecInfo` instance instead of " @@ -1424,7 +1428,7 @@ msgid "" "Dörwald.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1239 +#: ../Doc/whatsnew/2.5.rst:1240 msgid "" "The :mod:`collections` module gained a new type, :class:`defaultdict`, that " "subclasses the standard :class:`dict` type. The new type mostly behaves " @@ -1432,7 +1436,7 @@ msgid "" "automatically adding it to the dictionary for the requested key value." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1244 +#: ../Doc/whatsnew/2.5.rst:1245 msgid "" "The first argument to :class:`defaultdict`'s constructor is a factory " "function that gets called whenever a key is requested but not found. This " @@ -1441,15 +1445,15 @@ msgid "" "make an index of words based on their initial letter like this::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1260 +#: ../Doc/whatsnew/2.5.rst:1261 msgid "Printing ``index`` results in the following output::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1268 +#: ../Doc/whatsnew/2.5.rst:1269 msgid "(Contributed by Guido van Rossum.)" msgstr "(Contribution par Guido van Rossum.)" -#: ../Doc/whatsnew/2.5.rst:1270 +#: ../Doc/whatsnew/2.5.rst:1271 msgid "" "The :class:`deque` double-ended queue type supplied by the :mod:" "`collections` module now has a ``remove(value)`` method that removes the " @@ -1457,14 +1461,14 @@ msgid "" "value isn't found. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1275 +#: ../Doc/whatsnew/2.5.rst:1276 msgid "" "New module: The :mod:`contextlib` module contains helper functions for use " "with the new ':keyword:`with`' statement. See section :ref:`contextlibmod` " "for more about this module." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1279 +#: ../Doc/whatsnew/2.5.rst:1280 msgid "" "New module: The :mod:`cProfile` module is a C implementation of the " "existing :mod:`profile` module that has much lower overhead. The module's " @@ -1475,7 +1479,7 @@ msgid "" "future versions of Python. (Contributed by Armin Rigo.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1287 +#: ../Doc/whatsnew/2.5.rst:1288 msgid "" "Also, the :mod:`pstats` module for analyzing the data measured by the " "profiler now supports directing the output to any file object by supplying a " @@ -1483,7 +1487,7 @@ msgid "" "Montanaro.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1291 +#: ../Doc/whatsnew/2.5.rst:1292 msgid "" "The :mod:`csv` module, which parses files in comma-separated value format, " "received several enhancements and a number of bugfixes. You can now set the " @@ -1495,7 +1499,7 @@ msgid "" "not the same as the number of records read." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1300 +#: ../Doc/whatsnew/2.5.rst:1301 msgid "" "The CSV parser is now stricter about multi-line quoted fields. Previously, " "if a line ended within a quoted field without a terminating newline " @@ -1507,11 +1511,11 @@ msgid "" "preserves the newline characters." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1308 +#: ../Doc/whatsnew/2.5.rst:1309 msgid "(Contributed by Skip Montanaro and Andrew McNamara.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1310 +#: ../Doc/whatsnew/2.5.rst:1311 msgid "" "The :class:`~datetime.datetime` class in the :mod:`datetime` module now has " "a ``strptime(string, format)`` method for parsing date strings, contributed " @@ -1519,7 +1523,7 @@ msgid "" "and :func:`time.strftime`::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1320 +#: ../Doc/whatsnew/2.5.rst:1321 msgid "" "The :meth:`SequenceMatcher.get_matching_blocks` method in the :mod:`difflib` " "module now guarantees to return a minimal list of blocks describing matching " @@ -1527,14 +1531,14 @@ msgid "" "matching elements into two list entries. (Enhancement by Tim Peters.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1325 +#: ../Doc/whatsnew/2.5.rst:1326 msgid "" "The :mod:`doctest` module gained a ``SKIP`` option that keeps an example " "from being executed at all. This is intended for code snippets that are " "usage examples intended for the reader and aren't actually test cases." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1329 +#: ../Doc/whatsnew/2.5.rst:1330 msgid "" "An *encoding* parameter was added to the :func:`testfile` function and the :" "class:`DocFileSuite` class to specify the file's encoding. This makes it " @@ -1542,13 +1546,13 @@ msgid "" "(Contributed by Bjorn Tillenius.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1336 +#: ../Doc/whatsnew/2.5.rst:1337 msgid "" "The :mod:`email` package has been updated to version 4.0. (Contributed by " "Barry Warsaw.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1344 +#: ../Doc/whatsnew/2.5.rst:1345 msgid "" "The :mod:`fileinput` module was made more flexible. Unicode filenames are " "now supported, and a *mode* parameter that defaults to ``\"r\"`` was added " @@ -1560,7 +1564,7 @@ msgid "" "(Contributed by Georg Brandl.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1353 +#: ../Doc/whatsnew/2.5.rst:1354 msgid "" "In the :mod:`gc` module, the new :func:`get_count` function returns a 3-" "tuple containing the current collection counts for the three GC " @@ -1571,7 +1575,7 @@ msgid "" "(Contributed by Barry Warsaw.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1360 +#: ../Doc/whatsnew/2.5.rst:1361 msgid "" "The :func:`nsmallest` and :func:`nlargest` functions in the :mod:`heapq` " "module now support a ``key`` keyword parameter similar to the one provided " @@ -1579,24 +1583,24 @@ msgid "" "example::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1372 ../Doc/whatsnew/2.5.rst:1381 +#: ../Doc/whatsnew/2.5.rst:1373 ../Doc/whatsnew/2.5.rst:1382 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1374 +#: ../Doc/whatsnew/2.5.rst:1375 msgid "" "The :func:`itertools.islice` function now accepts ``None`` for the start and " "step arguments. This makes it more compatible with the attributes of slice " "objects, so that you can now write the following::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1383 +#: ../Doc/whatsnew/2.5.rst:1384 msgid "" "The :func:`format` function in the :mod:`locale` module has been modified " "and two new functions were added, :func:`format_string` and :func:`currency`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1386 +#: ../Doc/whatsnew/2.5.rst:1387 msgid "" "The :func:`format` function's *val* parameter could previously be a string " "as long as no more than one %char specifier appeared; now the parameter must " @@ -1606,24 +1610,24 @@ msgid "" "of three digits." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1392 +#: ../Doc/whatsnew/2.5.rst:1393 msgid "" "To format strings with multiple %char specifiers, use the new :func:" "`format_string` function that works like :func:`format` but also supports " "mixing %char specifiers with arbitrary text." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1396 +#: ../Doc/whatsnew/2.5.rst:1397 msgid "" "A new :func:`currency` function was also added that formats a number " "according to the current locale's settings." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1399 +#: ../Doc/whatsnew/2.5.rst:1400 msgid "(Contributed by Georg Brandl.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1403 +#: ../Doc/whatsnew/2.5.rst:1404 msgid "" "The :mod:`mailbox` module underwent a massive rewrite to add the capability " "to modify mailboxes in addition to reading them. A new set of classes that " @@ -1634,27 +1638,27 @@ msgid "" "into an mbox-format one::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1421 +#: ../Doc/whatsnew/2.5.rst:1422 msgid "" "(Contributed by Gregory K. Johnson. Funding was provided by Google's 2005 " "Summer of Code.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1424 +#: ../Doc/whatsnew/2.5.rst:1425 msgid "" "New module: the :mod:`msilib` module allows creating Microsoft Installer :" "file:`.msi` files and CAB files. Some support for reading the :file:`.msi` " "database is also included. (Contributed by Martin von Löwis.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1428 +#: ../Doc/whatsnew/2.5.rst:1429 msgid "" "The :mod:`nis` module now supports accessing domains other than the system " "default domain by supplying a *domain* argument to the :func:`nis.match` " "and :func:`nis.maps` functions. (Contributed by Ben Bell.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1432 +#: ../Doc/whatsnew/2.5.rst:1433 msgid "" "The :mod:`operator` module's :func:`itemgetter` and :func:`attrgetter` " "functions now support multiple fields. A call such as ``operator." @@ -1664,7 +1668,7 @@ msgid "" "fields. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1439 +#: ../Doc/whatsnew/2.5.rst:1440 msgid "" "The :mod:`optparse` module was updated to version 1.5.1 of the Optik " "library. The :class:`OptionParser` class gained an :attr:`epilog` attribute, " @@ -1673,7 +1677,7 @@ msgid "" "Ward.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1444 +#: ../Doc/whatsnew/2.5.rst:1445 msgid "" "The :mod:`os` module underwent several changes. The :attr:" "`stat_float_times` variable now defaults to true, meaning that :func:`os." @@ -1682,7 +1686,7 @@ msgid "" "second; not all systems support such precision.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1450 +#: ../Doc/whatsnew/2.5.rst:1451 msgid "" "Constants named :attr:`os.SEEK_SET`, :attr:`os.SEEK_CUR`, and :attr:`os." "SEEK_END` have been added; these are the parameters to the :func:`os.lseek` " @@ -1690,7 +1694,7 @@ msgid "" "`os.O_EXLOCK`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1455 +#: ../Doc/whatsnew/2.5.rst:1456 msgid "" "Two new functions, :func:`wait3` and :func:`wait4`, were added. They're " "similar the :func:`waitpid` function which waits for a child process to exit " @@ -1702,7 +1706,7 @@ msgid "" "ID. (Contributed by Chad J. Schroeder.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1464 +#: ../Doc/whatsnew/2.5.rst:1465 msgid "" "On FreeBSD, the :func:`os.stat` function now returns times with nanosecond " "resolution, and the returned object now has :attr:`st_gen` and :attr:" @@ -1710,7 +1714,7 @@ msgid "" "platform supports it. (Contributed by Antti Louko and Diego Pettenò.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1471 +#: ../Doc/whatsnew/2.5.rst:1472 msgid "" "The Python debugger provided by the :mod:`pdb` module can now store lists of " "commands to execute when a breakpoint is reached and execution stops. Once " @@ -1720,7 +1724,7 @@ msgid "" "``next``. (Contributed by Grégoire Dooms.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1480 +#: ../Doc/whatsnew/2.5.rst:1481 msgid "" "The :mod:`pickle` and :mod:`cPickle` modules no longer accept a return value " "of ``None`` from the :meth:`__reduce__` method; the method must return a " @@ -1728,14 +1732,14 @@ msgid "" "in Python 2.4, so this completes the removal of the feature." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1485 +#: ../Doc/whatsnew/2.5.rst:1486 msgid "" "The :mod:`pkgutil` module, containing various utility functions for finding " "packages, was enhanced to support PEP 302's import hooks and now also works " "for packages stored in ZIP-format archives. (Contributed by Phillip J. Eby.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1489 +#: ../Doc/whatsnew/2.5.rst:1490 msgid "" "The pybench benchmark suite by Marc-André Lemburg is now included in the :" "file:`Tools/pybench` directory. The pybench suite is an improvement on the " @@ -1746,13 +1750,13 @@ msgid "" "reducing the result to a single number as :file:`pystone.py` does." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1497 +#: ../Doc/whatsnew/2.5.rst:1498 msgid "" "The :mod:`pyexpat` module now uses version 2.0 of the Expat parser. " "(Contributed by Trent Mick.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1500 +#: ../Doc/whatsnew/2.5.rst:1501 msgid "" "The :class:`~queue.Queue` class provided by the :mod:`Queue` module gained " "two new methods. :meth:`join` blocks until all items in the queue have been " @@ -1762,14 +1766,14 @@ msgid "" "Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1506 +#: ../Doc/whatsnew/2.5.rst:1507 msgid "" "The old :mod:`regex` and :mod:`regsub` modules, which have been deprecated " "ever since Python 2.0, have finally been deleted. Other deleted modules: :" "mod:`statcache`, :mod:`tzparse`, :mod:`whrandom`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1510 +#: ../Doc/whatsnew/2.5.rst:1511 msgid "" "Also deleted: the :file:`lib-old` directory, which includes ancient modules " "such as :mod:`dircmp` and :mod:`ni`, was removed. :file:`lib-old` wasn't on " @@ -1777,14 +1781,14 @@ msgid "" "directory to ``sys.path``, this removal shouldn't affect your code." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1515 +#: ../Doc/whatsnew/2.5.rst:1516 msgid "" "The :mod:`rlcompleter` module is no longer dependent on importing the :mod:" "`readline` module and therefore now works on non-Unix platforms. (Patch from " "Robert Kiendl.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1521 +#: ../Doc/whatsnew/2.5.rst:1522 msgid "" "The :mod:`SimpleXMLRPCServer` and :mod:`DocXMLRPCServer` classes now have " "a :attr:`rpc_paths` attribute that constrains XML-RPC operations to a " @@ -1793,7 +1797,7 @@ msgid "" "this path checking." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1528 +#: ../Doc/whatsnew/2.5.rst:1529 msgid "" "The :mod:`socket` module now supports :const:`AF_NETLINK` sockets on Linux, " "thanks to a patch from Philippe Biondi. Netlink sockets are a Linux-" @@ -1803,7 +1807,7 @@ msgid "" "represented as a tuple of 2 integers, ``(pid, group_mask)``." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1535 +#: ../Doc/whatsnew/2.5.rst:1536 msgid "" "Two new methods on socket objects, ``recv_into(buffer)`` and " "``recvfrom_into(buffer)``, store the received data in an object that " @@ -1812,20 +1816,20 @@ msgid "" "file." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1540 +#: ../Doc/whatsnew/2.5.rst:1541 msgid "" "Socket objects also gained :meth:`getfamily`, :meth:`gettype`, and :meth:" "`getproto` accessor methods to retrieve the family, type, and protocol " "values for the socket." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1544 +#: ../Doc/whatsnew/2.5.rst:1545 msgid "" "New module: the :mod:`spwd` module provides functions for accessing the " "shadow password database on systems that support shadow passwords." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1547 +#: ../Doc/whatsnew/2.5.rst:1548 msgid "" "The :mod:`struct` is now faster because it compiles format strings into :" "class:`Struct` objects with :meth:`pack` and :meth:`unpack` methods. This " @@ -1835,7 +1839,7 @@ msgid "" "them. Or you can use :class:`Struct` instances directly::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1559 +#: ../Doc/whatsnew/2.5.rst:1560 msgid "" "You can also pack and unpack data to and from buffer objects directly using " "the ``pack_into(buffer, offset, v1, v2, ...)`` and ``unpack_from(buffer, " @@ -1843,14 +1847,14 @@ msgid "" "memory-mapped file." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1564 +#: ../Doc/whatsnew/2.5.rst:1565 msgid "" "(:class:`Struct` objects were implemented by Bob Ippolito at the " "NeedForSpeed sprint. Support for buffer objects was added by Martin Blais, " "also at the NeedForSpeed sprint.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1568 +#: ../Doc/whatsnew/2.5.rst:1569 msgid "" "The Python developers switched from CVS to Subversion during the 2.5 " "development process. Information about the exact build version is available " @@ -1859,7 +1863,7 @@ msgid "" "was reporting ``('CPython', 'trunk', '45313:45315')``." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1574 +#: ../Doc/whatsnew/2.5.rst:1575 msgid "" "This information is also available to C extensions via the :c:func:" "`Py_GetBuildInfo` function that returns a string of build information like " @@ -1867,7 +1871,7 @@ msgid "" "Barry Warsaw.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1579 +#: ../Doc/whatsnew/2.5.rst:1580 msgid "" "Another new function, :func:`sys._current_frames`, returns the current stack " "frames for all running threads as a dictionary mapping thread identifiers to " @@ -1875,7 +1879,7 @@ msgid "" "function is called. (Contributed by Tim Peters.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1584 +#: ../Doc/whatsnew/2.5.rst:1585 msgid "" "The :class:`TarFile` class in the :mod:`tarfile` module now has an :meth:" "`extractall` method that extracts all members from the archive into the " @@ -1884,13 +1888,13 @@ msgid "" "members." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1589 +#: ../Doc/whatsnew/2.5.rst:1590 msgid "" "The compression used for a tarfile opened in stream mode can now be " "autodetected using the mode ``'r|*'``. (Contributed by Lars Gustäbel.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1594 +#: ../Doc/whatsnew/2.5.rst:1595 msgid "" "The :mod:`threading` module now lets you set the stack size used when new " "threads are created. The ``stack_size([*size*])`` function returns the " @@ -1899,14 +1903,14 @@ msgid "" "Windows, POSIX threading, and OS/2 all do. (Contributed by Andrew MacIntyre.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1602 +#: ../Doc/whatsnew/2.5.rst:1603 msgid "" "The :mod:`unicodedata` module has been updated to use version 4.1.0 of the " "Unicode character database. Version 3.2.0 is required by some " "specifications, so it's still available as :attr:`unicodedata.ucd_3_2_0`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1606 +#: ../Doc/whatsnew/2.5.rst:1607 msgid "" "New module: the :mod:`uuid` module generates universally unique " "identifiers (UUIDs) according to :rfc:`4122`. The RFC defines several " @@ -1918,11 +1922,11 @@ msgid "" "module.) ::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1631 +#: ../Doc/whatsnew/2.5.rst:1632 msgid "(Contributed by Ka-Ping Yee.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1633 +#: ../Doc/whatsnew/2.5.rst:1634 msgid "" "The :mod:`weakref` module's :class:`WeakKeyDictionary` and :class:" "`WeakValueDictionary` types gained new methods for iterating over the weak " @@ -1932,7 +1936,7 @@ msgid "" "`WeakValueDictionary`. (Contributed by Fred L. Drake, Jr.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1640 +#: ../Doc/whatsnew/2.5.rst:1641 msgid "" "The :mod:`webbrowser` module received a number of enhancements. It's now " "usable as a script with ``python -m webbrowser``, taking a URL as the " @@ -1946,7 +1950,7 @@ msgid "" "by Oleg Broytmann and Georg Brandl.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1652 +#: ../Doc/whatsnew/2.5.rst:1653 msgid "" "The :mod:`xmlrpclib` module now supports returning :class:`~datetime." "datetime` objects for the XML-RPC date type. Supply ``use_datetime=True`` " @@ -1954,14 +1958,14 @@ msgid "" "this feature. (Contributed by Skip Montanaro.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1659 +#: ../Doc/whatsnew/2.5.rst:1660 msgid "" "The :mod:`zipfile` module now supports the ZIP64 version of the format, " "meaning that a .zip archive can now be larger than 4 GiB and can contain " "individual files larger than 4 GiB. (Contributed by Ronald Oussoren.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1665 +#: ../Doc/whatsnew/2.5.rst:1666 msgid "" "The :mod:`zlib` module's :class:`Compress` and :class:`Decompress` objects " "now support a :meth:`copy` method that makes a copy of the object's " @@ -1969,11 +1973,11 @@ msgid "" "object. (Contributed by Chris AtLee.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1678 +#: ../Doc/whatsnew/2.5.rst:1679 msgid "The ctypes package" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1680 +#: ../Doc/whatsnew/2.5.rst:1681 msgid "" "The :mod:`ctypes` package, written by Thomas Heller, has been added to the " "standard library. :mod:`ctypes` lets you call arbitrary functions in " @@ -1982,7 +1986,7 @@ msgid "" "functions in them. The :mod:`ctypes` package is much fancier." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1686 +#: ../Doc/whatsnew/2.5.rst:1687 msgid "" "To load a shared library or DLL, you must create an instance of the :class:" "`CDLL` class and provide the name or path of the shared library or DLL. Once " @@ -1990,7 +1994,7 @@ msgid "" "attributes of the :class:`CDLL` object. ::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1696 +#: ../Doc/whatsnew/2.5.rst:1697 msgid "" "Type constructors for the various C types are provided: :func:`c_int`, :func:" "`c_float`, :func:`c_double`, :func:`c_char_p` (equivalent to :c:type:`char " @@ -2002,7 +2006,7 @@ msgid "" "interpreter crashing with a segmentation fault.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1705 +#: ../Doc/whatsnew/2.5.rst:1706 msgid "" "You shouldn't use :func:`c_char_p` with a Python string when the C function " "will be modifying the memory area, because Python strings are supposed to " @@ -2010,13 +2014,13 @@ msgid "" "modifiable memory area, use :func:`create_string_buffer`::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1714 +#: ../Doc/whatsnew/2.5.rst:1715 msgid "" "C functions are assumed to return integers, but you can set the :attr:" "`restype` attribute of the function object to change this::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1723 +#: ../Doc/whatsnew/2.5.rst:1724 msgid "" ":mod:`ctypes` also provides a wrapper for Python's C API as the ``ctypes." "pythonapi`` object. This object does *not* release the global interpreter " @@ -2026,13 +2030,13 @@ msgid "" "usage::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1736 +#: ../Doc/whatsnew/2.5.rst:1737 msgid "" "Don't forget to use :class:`py_object()`; if it's omitted you end up with a " "segmentation fault." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1739 +#: ../Doc/whatsnew/2.5.rst:1740 msgid "" ":mod:`ctypes` has been around for a while, but people still write and " "distribution hand-coded extension modules because you can't rely on :mod:" @@ -2041,23 +2045,23 @@ msgid "" "modules, now that :mod:`ctypes` is included with core Python." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1749 +#: ../Doc/whatsnew/2.5.rst:1750 msgid "http://starship.python.net/crew/theller/ctypes/" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1749 +#: ../Doc/whatsnew/2.5.rst:1750 msgid "The ctypes web page, with a tutorial, reference, and FAQ." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1751 +#: ../Doc/whatsnew/2.5.rst:1752 msgid "The documentation for the :mod:`ctypes` module." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1759 +#: ../Doc/whatsnew/2.5.rst:1760 msgid "The ElementTree package" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1761 +#: ../Doc/whatsnew/2.5.rst:1762 msgid "" "A subset of Fredrik Lundh's ElementTree library for processing XML has been " "added to the standard library as :mod:`xml.etree`. The available modules " @@ -2066,14 +2070,14 @@ msgid "" "included." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1767 +#: ../Doc/whatsnew/2.5.rst:1768 msgid "" "The rest of this section will provide a brief overview of using ElementTree. " "Full documentation for ElementTree is available at http://effbot.org/zone/" "element-index.htm." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1771 +#: ../Doc/whatsnew/2.5.rst:1772 msgid "" "ElementTree represents an XML document as a tree of element nodes. The text " "content of the document is stored as the :attr:`text` and :attr:`tail` " @@ -2082,20 +2086,20 @@ msgid "" "node, including :class:`TextNode`.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1777 +#: ../Doc/whatsnew/2.5.rst:1778 msgid "" "The most commonly used parsing function is :func:`parse`, that takes either " "a string (assumed to contain a filename) or a file-like object and returns " "an :class:`ElementTree` instance::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1789 +#: ../Doc/whatsnew/2.5.rst:1790 msgid "" "Once you have an :class:`ElementTree` instance, you can call its :meth:" "`getroot` method to get the root :class:`Element` node." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1792 +#: ../Doc/whatsnew/2.5.rst:1793 msgid "" "There's also an :func:`XML` function that takes a string literal and returns " "an :class:`Element` node (not an :class:`ElementTree`). This function " @@ -2103,132 +2107,132 @@ msgid "" "convenience of an XML literal::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1802 +#: ../Doc/whatsnew/2.5.rst:1803 msgid "" "Each XML element supports some dictionary-like and some list-like access " "methods. Dictionary-like operations are used to access attribute values, " "and list-like operations are used to access child nodes." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1807 +#: ../Doc/whatsnew/2.5.rst:1808 msgid "Operation" msgstr "Opération" -#: ../Doc/whatsnew/2.5.rst:1807 +#: ../Doc/whatsnew/2.5.rst:1808 msgid "Result" msgstr "Résultat" -#: ../Doc/whatsnew/2.5.rst:1809 +#: ../Doc/whatsnew/2.5.rst:1810 msgid "``elem[n]``" msgstr "``elem[n]``" -#: ../Doc/whatsnew/2.5.rst:1809 +#: ../Doc/whatsnew/2.5.rst:1810 msgid "Returns n'th child element." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1811 +#: ../Doc/whatsnew/2.5.rst:1812 msgid "``elem[m:n]``" msgstr "``elem[m:n]``" -#: ../Doc/whatsnew/2.5.rst:1811 +#: ../Doc/whatsnew/2.5.rst:1812 msgid "Returns list of m'th through n'th child elements." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1814 +#: ../Doc/whatsnew/2.5.rst:1815 msgid "``len(elem)``" msgstr "``len(elem)``" -#: ../Doc/whatsnew/2.5.rst:1814 +#: ../Doc/whatsnew/2.5.rst:1815 msgid "Returns number of child elements." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1816 +#: ../Doc/whatsnew/2.5.rst:1817 msgid "``list(elem)``" msgstr "``list(elem)``" -#: ../Doc/whatsnew/2.5.rst:1816 +#: ../Doc/whatsnew/2.5.rst:1817 msgid "Returns list of child elements." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1818 +#: ../Doc/whatsnew/2.5.rst:1819 msgid "``elem.append(elem2)``" msgstr "``elem.append(elem2)``" -#: ../Doc/whatsnew/2.5.rst:1818 +#: ../Doc/whatsnew/2.5.rst:1819 msgid "Adds *elem2* as a child." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1820 +#: ../Doc/whatsnew/2.5.rst:1821 msgid "``elem.insert(index, elem2)``" msgstr "``elem.insert(index, elem2)``" -#: ../Doc/whatsnew/2.5.rst:1820 +#: ../Doc/whatsnew/2.5.rst:1821 msgid "Inserts *elem2* at the specified location." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1822 +#: ../Doc/whatsnew/2.5.rst:1823 msgid "``del elem[n]``" msgstr "``del elem[n]``" -#: ../Doc/whatsnew/2.5.rst:1822 +#: ../Doc/whatsnew/2.5.rst:1823 msgid "Deletes n'th child element." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1824 +#: ../Doc/whatsnew/2.5.rst:1825 msgid "``elem.keys()``" msgstr "``elem.keys()``" -#: ../Doc/whatsnew/2.5.rst:1824 +#: ../Doc/whatsnew/2.5.rst:1825 msgid "Returns list of attribute names." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1826 +#: ../Doc/whatsnew/2.5.rst:1827 msgid "``elem.get(name)``" msgstr "``elem.get(name)``" -#: ../Doc/whatsnew/2.5.rst:1826 +#: ../Doc/whatsnew/2.5.rst:1827 msgid "Returns value of attribute *name*." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1828 +#: ../Doc/whatsnew/2.5.rst:1829 msgid "``elem.set(name, value)``" msgstr "``elem.set(name, value)``" -#: ../Doc/whatsnew/2.5.rst:1828 +#: ../Doc/whatsnew/2.5.rst:1829 msgid "Sets new value for attribute *name*." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1830 +#: ../Doc/whatsnew/2.5.rst:1831 msgid "``elem.attrib``" msgstr "``elem.attrib``" -#: ../Doc/whatsnew/2.5.rst:1830 +#: ../Doc/whatsnew/2.5.rst:1831 msgid "Retrieves the dictionary containing attributes." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1833 +#: ../Doc/whatsnew/2.5.rst:1834 msgid "``del elem.attrib[name]``" msgstr "``del elem.attrib[name]``" -#: ../Doc/whatsnew/2.5.rst:1833 +#: ../Doc/whatsnew/2.5.rst:1834 msgid "Deletes attribute *name*." msgstr "Supprime l’attribut *name*." -#: ../Doc/whatsnew/2.5.rst:1836 +#: ../Doc/whatsnew/2.5.rst:1837 msgid "" "Comments and processing instructions are also represented as :class:" "`Element` nodes. To check if a node is a comment or processing " "instructions::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1844 +#: ../Doc/whatsnew/2.5.rst:1845 msgid "" "To generate XML output, you should call the :meth:`ElementTree.write` " "method. Like :func:`parse`, it can take either a string or a file-like " "object::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1854 +#: ../Doc/whatsnew/2.5.rst:1855 msgid "" "(Caution: the default encoding used for output is ASCII. For general XML " "work, where an element's name may contain arbitrary Unicode characters, " @@ -2238,25 +2242,25 @@ msgid "" "handle any Unicode character.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1861 +#: ../Doc/whatsnew/2.5.rst:1862 msgid "" "This section is only a partial description of the ElementTree interfaces. " "Please read the package's official documentation for more details." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1867 +#: ../Doc/whatsnew/2.5.rst:1868 msgid "http://effbot.org/zone/element-index.htm" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1868 +#: ../Doc/whatsnew/2.5.rst:1869 msgid "Official documentation for ElementTree." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1876 +#: ../Doc/whatsnew/2.5.rst:1877 msgid "The hashlib package" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1878 +#: ../Doc/whatsnew/2.5.rst:1879 msgid "" "A new :mod:`hashlib` module, written by Gregory P. Smith, has been added to " "replace the :mod:`md5` and :mod:`sha` modules. :mod:`hashlib` adds support " @@ -2265,7 +2269,7 @@ msgid "" "implementations of algorithms." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1884 +#: ../Doc/whatsnew/2.5.rst:1885 msgid "" "The old :mod:`md5` and :mod:`sha` modules still exist as wrappers around " "hashlib to preserve backwards compatibility. The new module's interface is " @@ -2274,7 +2278,7 @@ msgid "" "hashing objects are named differently. ::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1913 +#: ../Doc/whatsnew/2.5.rst:1914 msgid "" "Once a hash object has been created, its methods are the same as before: " "``update(string)`` hashes the specified string into the current digest " @@ -2283,22 +2287,22 @@ msgid "" "hashing object with the same digest state." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1922 +#: ../Doc/whatsnew/2.5.rst:1923 msgid "The documentation for the :mod:`hashlib` module." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1930 +#: ../Doc/whatsnew/2.5.rst:1931 msgid "The sqlite3 package" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1932 +#: ../Doc/whatsnew/2.5.rst:1933 msgid "" "The pysqlite module (http://www.pysqlite.org), a wrapper for the SQLite " "embedded database, has been added to the standard library under the package " "name :mod:`sqlite3`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1936 +#: ../Doc/whatsnew/2.5.rst:1937 msgid "" "SQLite is a C library that provides a lightweight disk-based database that " "doesn't require a separate server process and allows accessing the database " @@ -2307,14 +2311,21 @@ msgid "" "application using SQLite and then port the code to a larger database such as " "PostgreSQL or Oracle." msgstr "" +"SQLite est une bibliothèque C qui fournit une base de données légère sur " +"disque ne nécessitant pas de processus serveur et qui utilise une variante " +"(non standard) du langage de requête SQL pour accéder aux données. Certaines " +"applications peuvent utiliser SQLite pour le stockage de données internes. " +"Il est également possible de créer une application prototype utilisant " +"SQLite, puis de modifier le code pour utiliser une base de données plus " +"robuste telle que PostgreSQL ou Oracle." -#: ../Doc/whatsnew/2.5.rst:1943 +#: ../Doc/whatsnew/2.5.rst:1944 msgid "" "pysqlite was written by Gerhard Häring and provides a SQL interface " "compliant with the DB-API 2.0 specification described by :pep:`249`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1946 +#: ../Doc/whatsnew/2.5.rst:1947 msgid "" "If you're compiling the Python source yourself, note that the source tree " "doesn't include the SQLite code, only the wrapper module. You'll need to " @@ -2323,26 +2334,28 @@ msgid "" "available." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1951 +#: ../Doc/whatsnew/2.5.rst:1952 msgid "" "To use the module, you must first create a :class:`Connection` object that " "represents the database. Here the data will be stored in the :file:`/tmp/" "example` file::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1957 +#: ../Doc/whatsnew/2.5.rst:1958 msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" +"Vous pouvez également fournir le nom spécial ``:memory:`` pour créer une " +"base de données dans la mémoire vive." -#: ../Doc/whatsnew/2.5.rst:1959 +#: ../Doc/whatsnew/2.5.rst:1960 msgid "" "Once you have a :class:`Connection`, you can create a :class:`Cursor` " "object and call its :meth:`execute` method to perform SQL commands::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1973 +#: ../Doc/whatsnew/2.5.rst:1974 msgid "" "Usually your SQL operations will need to use values from Python variables. " "You shouldn't assemble your query using Python's string operations because " @@ -2350,7 +2363,7 @@ msgid "" "attack." msgstr "" -#: ../Doc/whatsnew/2.5.rst:1977 +#: ../Doc/whatsnew/2.5.rst:1978 msgid "" "Instead, use the DB-API's parameter substitution. Put ``?`` as a " "placeholder wherever you want to use a value, and then provide a tuple of " @@ -2359,7 +2372,7 @@ msgid "" "``:1``.) For example::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:1997 +#: ../Doc/whatsnew/2.5.rst:1998 msgid "" "To retrieve data after executing a SELECT statement, you can either treat " "the cursor as an iterator, call the cursor's :meth:`fetchone` method to " @@ -2367,51 +2380,53 @@ msgid "" "the matching rows." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2002 +#: ../Doc/whatsnew/2.5.rst:2003 msgid "This example uses the iterator form::" -msgstr "" +msgstr "Cet exemple utilise la forme itérateur ::" -#: ../Doc/whatsnew/2.5.rst:2015 +#: ../Doc/whatsnew/2.5.rst:2016 msgid "" "For more information about the SQL dialect supported by SQLite, see https://" "www.sqlite.org." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2022 +#: ../Doc/whatsnew/2.5.rst:2023 msgid "http://www.pysqlite.org" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2022 +#: ../Doc/whatsnew/2.5.rst:2023 msgid "The pysqlite web page." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2026 +#: ../Doc/whatsnew/2.5.rst:2027 msgid "https://www.sqlite.org" -msgstr "" +msgstr "https://www.sqlite.org" -#: ../Doc/whatsnew/2.5.rst:2025 +#: ../Doc/whatsnew/2.5.rst:2026 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" +"Dans la page Web de SQLite, la documentation décrit la syntaxe et les types " +"de données disponibles qui sont pris en charge par cette variante SQL." -#: ../Doc/whatsnew/2.5.rst:2028 +#: ../Doc/whatsnew/2.5.rst:2029 msgid "The documentation for the :mod:`sqlite3` module." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2030 +#: ../Doc/whatsnew/2.5.rst:2031 msgid ":pep:`249` - Database API Specification 2.0" -msgstr "" +msgstr ":pep:`249` — Spécifications de l'API 2.0 pour la base de données" -#: ../Doc/whatsnew/2.5.rst:2031 +#: ../Doc/whatsnew/2.5.rst:2032 msgid "PEP written by Marc-André Lemburg." -msgstr "" +msgstr "PEP écrite par Marc-André Lemburg." -#: ../Doc/whatsnew/2.5.rst:2039 +#: ../Doc/whatsnew/2.5.rst:2040 msgid "The wsgiref package" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2041 +#: ../Doc/whatsnew/2.5.rst:2042 msgid "" "The Web Server Gateway Interface (WSGI) v1.0 defines a standard interface " "between web servers and Python web applications and is described in :pep:" @@ -2419,45 +2434,45 @@ msgid "" "specification." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2048 +#: ../Doc/whatsnew/2.5.rst:2049 msgid "" "The package includes a basic HTTP server that will run a WSGI application; " "this server is useful for debugging but isn't intended for production use. " "Setting up a server takes only a few lines of code::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2068 +#: ../Doc/whatsnew/2.5.rst:2069 msgid "http://www.wsgi.org" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2068 +#: ../Doc/whatsnew/2.5.rst:2069 msgid "A central web site for WSGI-related resources." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2070 +#: ../Doc/whatsnew/2.5.rst:2071 msgid ":pep:`333` - Python Web Server Gateway Interface v1.0" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2071 +#: ../Doc/whatsnew/2.5.rst:2072 msgid "PEP written by Phillip J. Eby." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2079 +#: ../Doc/whatsnew/2.5.rst:2080 msgid "Build and C API Changes" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2081 +#: ../Doc/whatsnew/2.5.rst:2082 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2083 +#: ../Doc/whatsnew/2.5.rst:2084 msgid "" "The Python source tree was converted from CVS to Subversion, in a complex " "migration procedure that was supervised and flawlessly carried out by Martin " "von Löwis. The procedure was developed as :pep:`347`." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2087 +#: ../Doc/whatsnew/2.5.rst:2088 msgid "" "Coverity, a company that markets a source code analysis tool called Prevent, " "provided the results of their examination of the Python source code. The " @@ -2466,7 +2481,7 @@ msgid "" "https://scan.coverity.com for the statistics." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2093 +#: ../Doc/whatsnew/2.5.rst:2094 msgid "" "The largest change to the C API came from :pep:`353`, which modifies the " "interpreter to use a :c:type:`Py_ssize_t` type definition instead of :c:type:" @@ -2474,7 +2489,7 @@ msgid "" "change." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2098 +#: ../Doc/whatsnew/2.5.rst:2099 msgid "" "The design of the bytecode compiler has changed a great deal, no longer " "generating bytecode by traversing the parse tree. Instead the parse tree is " @@ -2482,14 +2497,14 @@ msgid "" "syntax tree that's traversed to produce the bytecode." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2103 +#: ../Doc/whatsnew/2.5.rst:2104 msgid "" "It's possible for Python code to obtain AST objects by using the :func:" "`compile` built-in and specifying ``_ast.PyCF_ONLY_AST`` as the value of " "the *flags* parameter::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2116 +#: ../Doc/whatsnew/2.5.rst:2117 msgid "" "No official documentation has been written for the AST code yet, but :pep:" "`339` discusses the design. To start learning about the code, read the " @@ -2503,7 +2518,7 @@ msgid "" "questions on python-dev." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2126 +#: ../Doc/whatsnew/2.5.rst:2127 msgid "" "The AST code was developed under Jeremy Hylton's management, and implemented " "by (in alphabetical order) Brett Cannon, Nick Coghlan, Grant Edwards, John " @@ -2512,7 +2527,7 @@ msgid "" "such as PyCon." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2135 +#: ../Doc/whatsnew/2.5.rst:2136 msgid "" "Evan Jones's patch to obmalloc, first described in a talk at PyCon DC 2005, " "was applied. Python 2.4 allocated small objects in 256K-sized arenas, but " @@ -2523,7 +2538,7 @@ msgid "" "Jones, and reworked by Tim Peters.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2143 +#: ../Doc/whatsnew/2.5.rst:2144 msgid "" "Note that this change means extension modules must be more careful when " "allocating memory. Python's API has many different functions for allocating " @@ -2534,7 +2549,7 @@ msgid "" "supposed to be used for creating Python objects." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2151 +#: ../Doc/whatsnew/2.5.rst:2152 msgid "" "Previously these different families all reduced to the platform's :c:func:" "`malloc` and :c:func:`free` functions. This meant it didn't matter if you " @@ -2545,7 +2560,7 @@ msgid "" "modules with Python 2.5." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2158 +#: ../Doc/whatsnew/2.5.rst:2159 msgid "" "The built-in set types now have an official C API. Call :c:func:`PySet_New` " "and :c:func:`PyFrozenSet_New` to create a new set, :c:func:`PySet_Add` and :" @@ -2554,7 +2569,7 @@ msgid "" "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2164 +#: ../Doc/whatsnew/2.5.rst:2165 msgid "" "C code can now obtain information about the exact revision of the Python " "interpreter by calling the :c:func:`Py_GetBuildInfo` function that returns " @@ -2562,7 +2577,7 @@ msgid "" "2006, 07:42:19\"``. (Contributed by Barry Warsaw.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2169 +#: ../Doc/whatsnew/2.5.rst:2170 msgid "" "Two new macros can be used to indicate C functions that are local to the " "current file so that a faster calling convention can be used. " @@ -2576,13 +2591,13 @@ msgid "" "at the NeedForSpeed sprint.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2180 +#: ../Doc/whatsnew/2.5.rst:2181 msgid "" "``PyErr_NewException(name, base, dict)`` can now accept a tuple of base " "classes as its *base* argument. (Contributed by Georg Brandl.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2183 +#: ../Doc/whatsnew/2.5.rst:2184 msgid "" "The :c:func:`PyErr_Warn` function for issuing warnings is now deprecated in " "favour of ``PyErr_WarnEx(category, message, stacklevel)`` which lets you " @@ -2591,14 +2606,14 @@ msgid "" "function above that, and so forth. (Added by Neal Norwitz.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2189 +#: ../Doc/whatsnew/2.5.rst:2190 msgid "" "The CPython interpreter is still written in C, but the code can now be " "compiled with a C++ compiler without errors. (Implemented by Anthony " "Baxter, Martin von Löwis, Skip Montanaro.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2193 +#: ../Doc/whatsnew/2.5.rst:2194 msgid "" "The :c:func:`PyRange_New` function was removed. It was never documented, " "never used in the core code, and had dangerously lax error checking. In the " @@ -2606,17 +2621,17 @@ msgid "" "something like the following::" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2207 +#: ../Doc/whatsnew/2.5.rst:2208 msgid "Port-Specific Changes" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2209 +#: ../Doc/whatsnew/2.5.rst:2210 msgid "" "MacOS X (10.3 and higher): dynamic loading of modules now uses the :c:func:" "`dlopen` function instead of MacOS-specific functions." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2212 +#: ../Doc/whatsnew/2.5.rst:2213 msgid "" "MacOS X: an :option:`!--enable-universalsdk` switch was added to the :" "program:`configure` script that compiles the interpreter as a universal " @@ -2624,24 +2639,24 @@ msgid "" "Ronald Oussoren; :issue:`2573`.)" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2217 +#: ../Doc/whatsnew/2.5.rst:2218 msgid "" "Windows: :file:`.dll` is no longer supported as a filename extension for " "extension modules. :file:`.pyd` is now the only filename extension that " "will be searched for." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2227 +#: ../Doc/whatsnew/2.5.rst:2228 msgid "Porting to Python 2.5" msgstr "Portage vers Python 2.5" -#: ../Doc/whatsnew/2.5.rst:2229 +#: ../Doc/whatsnew/2.5.rst:2230 msgid "" "This section lists previously described changes that may require changes to " "your code:" msgstr "" -#: ../Doc/whatsnew/2.5.rst:2232 +#: ../Doc/whatsnew/2.5.rst:2233 msgid "" "ASCII is now the default encoding for modules. It's now a syntax error if " "a module contains string literals with 8-bit characters but doesn't have an " @@ -2649,14 +2664,14 @@ msgid "" "error." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2237 +#: ../Doc/whatsnew/2.5.rst:2238 msgid "" "Previously, the :attr:`gi_frame` attribute of a generator was always a frame " "object. Because of the :pep:`342` changes described in section :ref:" "`pep-342`, it's now possible for :attr:`gi_frame` to be ``None``." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2241 +#: ../Doc/whatsnew/2.5.rst:2242 msgid "" "A new warning, :class:`UnicodeWarning`, is triggered when you attempt to " "compare a Unicode string and an 8-bit string that can't be converted to " @@ -2664,7 +2679,7 @@ msgid "" "raise a :class:`UnicodeDecodeError` exception." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2246 +#: ../Doc/whatsnew/2.5.rst:2247 msgid "" "Library: the :mod:`csv` module is now stricter about multi-line quoted " "fields. If your files contain newlines embedded within fields, the input " @@ -2672,7 +2687,7 @@ msgid "" "characters." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2250 +#: ../Doc/whatsnew/2.5.rst:2251 msgid "" "Library: the :mod:`locale` module's :func:`format` function's would " "previously accept any string as long as no more than one %char specifier " @@ -2680,7 +2695,7 @@ msgid "" "with no surrounding text." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2255 +#: ../Doc/whatsnew/2.5.rst:2256 msgid "" "Library: The :mod:`pickle` and :mod:`cPickle` modules no longer accept a " "return value of ``None`` from the :meth:`__reduce__` method; the method must " @@ -2688,7 +2703,7 @@ msgid "" "deprecated *bin* keyword parameter." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2260 +#: ../Doc/whatsnew/2.5.rst:2261 msgid "" "Library: The :mod:`SimpleXMLRPCServer` and :mod:`DocXMLRPCServer` classes " "now have a :attr:`rpc_paths` attribute that constrains XML-RPC operations to " @@ -2697,7 +2712,7 @@ msgid "" "this path checking." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2266 +#: ../Doc/whatsnew/2.5.rst:2267 msgid "" "C API: Many functions now use :c:type:`Py_ssize_t` instead of :c:type:`int` " "to allow processing more data on 64-bit machines. Extension code may need " @@ -2705,7 +2720,7 @@ msgid "" "See the earlier section :ref:`pep-353` for a discussion of this change." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2271 +#: ../Doc/whatsnew/2.5.rst:2272 msgid "" "C API: The obmalloc changes mean that you must be careful to not mix usage " "of the :c:func:`PyMem_\\*` and :c:func:`PyObject_\\*` families of functions. " @@ -2713,11 +2728,11 @@ msgid "" "the corresponding family's :c:func:`\\*_Free` function." msgstr "" -#: ../Doc/whatsnew/2.5.rst:2280 +#: ../Doc/whatsnew/2.5.rst:2281 msgid "Acknowledgements" msgstr "Remerciements" -#: ../Doc/whatsnew/2.5.rst:2282 +#: ../Doc/whatsnew/2.5.rst:2283 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -2727,11 +2742,3 @@ msgid "" "Paul Prescod, James Pryor, Mike Rovner, Scott Weikart, Barry Warsaw, Thomas " "Wouters." msgstr "" - -#, fuzzy -#~ msgid "PEP 308 - Conditional Expressions" -#~ msgstr "PEP 308 : Expressions conditionnelles" - -#, fuzzy -#~ msgid "PEP 309 - Partial Function Application" -#~ msgstr "PEP 309 : Application partielle de fonction" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index 6d5c1caa1..b90566310 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" "PO-Revision-Date: 2018-07-31 23:37+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -267,8 +267,9 @@ msgstr "" #: ../Doc/whatsnew/2.6.rst:228 msgid "" "Sphinx is a standalone package that can be used for writing, and almost two " -"dozen other projects (`listed on the Sphinx web site `__) have adopted Sphinx as their documentation tool." +"dozen other projects (`listed on the Sphinx web site `__) have adopted Sphinx as their documentation " +"tool." msgstr "" #: ../Doc/whatsnew/2.6.rst:236 @@ -304,10 +305,10 @@ msgid "" "The previous version, Python 2.5, added the ':keyword:`with`' statement as " "an optional feature, to be enabled by a ``from __future__ import " "with_statement`` directive. In 2.6 the statement no longer needs to be " -"specially enabled; this means that :keyword:`with` is now always a keyword. " -"The rest of this section is a copy of the corresponding section from the " -"\"What's New in Python 2.5\" document; if you're familiar with the ':keyword:" -"`with`' statement from Python 2.5, you can skip this section." +"specially enabled; this means that :keyword:`!with` is now always a " +"keyword. The rest of this section is a copy of the corresponding section " +"from the \"What's New in Python 2.5\" document; if you're familiar with the " +"':keyword:`!with`' statement from Python 2.5, you can skip this section." msgstr "" #: ../Doc/whatsnew/2.6.rst:259 @@ -393,7 +394,7 @@ msgstr "Écrire des gestionnaires de contexte" #: ../Doc/whatsnew/2.6.rst:333 msgid "" "Under the hood, the ':keyword:`with`' statement is fairly complicated. Most " -"people will only use ':keyword:`with`' in company with existing objects and " +"people will only use ':keyword:`!with`' in company with existing objects and " "don't need to know these details, so you can skip the rest of this section " "if you like. Authors of new objects will need to understand the details of " "the underlying implementation and should keep reading." @@ -510,9 +511,9 @@ msgid "" "yield exactly one value. The code up to the :keyword:`yield` will be " "executed as the :meth:`__enter__` method, and the value yielded will be the " "method's return value that will get bound to the variable in the ':keyword:" -"`with`' statement's :keyword:`as` clause, if any. The code after the :" -"keyword:`yield` will be executed in the :meth:`__exit__` method. Any " -"exception raised in the block will be raised by the :keyword:`yield` " +"`with`' statement's :keyword:`!as` clause, if any. The code after the :" +"keyword:`!yield` will be executed in the :meth:`__exit__` method. Any " +"exception raised in the block will be raised by the :keyword:`!yield` " "statement." msgstr "" @@ -526,8 +527,9 @@ msgstr "" msgid "" "The :mod:`contextlib` module also has a ``nested(mgr1, mgr2, ...)`` function " "that combines a number of context managers so you don't need to write nested " -"':keyword:`with`' statements. In this example, the single ':keyword:`with`' " -"statement both starts a database transaction and acquires a thread lock::" +"':keyword:`with`' statements. In this example, the single ':keyword:`!" +"with`' statement both starts a database transaction and acquires a thread " +"lock::" msgstr "" #: ../Doc/whatsnew/2.6.rst:474 @@ -880,7 +882,7 @@ msgstr "" #: ../Doc/whatsnew/2.6.rst:817 msgid "``e``" -msgstr "" +msgstr "``e``" #: ../Doc/whatsnew/2.6.rst:817 msgid "" @@ -1484,7 +1486,7 @@ msgstr "C’est équivalent à ::" #: ../Doc/whatsnew/2.6.rst:1382 msgid ":pep:`3129` - Class Decorators" -msgstr "" +msgstr ":pep:`3129` -- Décorateurs de classes" #: ../Doc/whatsnew/2.6.rst:1383 msgid "PEP written by Collin Winter." @@ -1821,7 +1823,7 @@ msgid "" "An obscure change: when you use the :func:`locals` function inside a :" "keyword:`class` statement, the resulting dictionary no longer returns free " "variables. (Free variables, in this case, are variables referenced in the :" -"keyword:`class` statement that aren't attributes of the class.)" +"keyword:`!class` statement that aren't attributes of the class.)" msgstr "" #: ../Doc/whatsnew/2.6.rst:1693 @@ -3691,7 +3693,3 @@ msgid "" "Georg Brandl, Steve Brown, Nick Coghlan, Ralph Corderoy, Jim Jewett, Kent " "Johnson, Chris Lambacher, Martin Michlmayr, Antoine Pitrou, Brian Warner." msgstr "" - -#, fuzzy -#~ msgid "Documenting Python" -#~ msgstr "Portage vers Python 2.6" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 094943021..3b4361a8f 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-17 10:39+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2017-08-10 00:52+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -703,12 +703,12 @@ msgstr "" msgid "" "The :keyword:`with` statement can now use multiple context managers in one " "statement. Context managers are processed from left to right and each one " -"is treated as beginning a new :keyword:`with` statement. This means that::" +"is treated as beginning a new :keyword:`!with` statement. This means that::" msgstr "" #: ../Doc/whatsnew/2.7.rst:717 msgid "is equivalent to::" -msgstr "" +msgstr "est équivalente à ::" #: ../Doc/whatsnew/2.7.rst:723 msgid "" @@ -849,7 +849,7 @@ msgstr "" msgid "" "The :keyword:`import` statement will no longer try an absolute import if a " "relative import (e.g. ``from .os import sep``) fails. This fixes a bug, but " -"could possibly break certain :keyword:`import` statements that were only " +"could possibly break certain :keyword:`!import` statements that were only " "working by accident. (Fixed by Meador Inge; :issue:`7902`.)" msgstr "" @@ -1195,7 +1195,7 @@ msgstr "" msgid "" "Deprecated function: :func:`contextlib.nested`, which allows handling more " "than one context manager with a single :keyword:`with` statement, has been " -"deprecated, because the :keyword:`with` statement now supports multiple " +"deprecated, because the :keyword:`!with` statement now supports multiple " "context managers." msgstr "" @@ -1956,7 +1956,7 @@ msgstr "" #: ../Doc/whatsnew/2.7.rst:1752 msgid "Here are some examples::" -msgstr "" +msgstr "Voici quelques exemples :" #: ../Doc/whatsnew/2.7.rst:1763 msgid "" diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po index ffcd955de..9feb8223c 100644 --- a/whatsnew/3.0.po +++ b/whatsnew/3.0.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-02 00:10+0200\n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: 2017-09-22 10:11+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -440,7 +440,7 @@ msgstr "" msgid "" ":pep:`3104`: :keyword:`nonlocal` statement. Using ``nonlocal x`` you can " "now assign directly to a variable in an outer (but non-global) scope. :" -"keyword:`nonlocal` is a new reserved word." +"keyword:`!nonlocal` is a new reserved word." msgstr "" #: ../Doc/whatsnew/3.0.rst:378 @@ -499,7 +499,7 @@ msgstr "" #: ../Doc/whatsnew/3.0.rst:411 msgid "" -":keyword:`as` and :keyword:`with` are now reserved words. (Since 2.6, " +":keyword:`!as` and :keyword:`with` are now reserved words. (Since 2.6, " "actually.)" msgstr "" @@ -511,8 +511,8 @@ msgstr "" #: ../Doc/whatsnew/3.0.rst:417 msgid "" -"Change from :keyword:`except` *exc*, *var* to :keyword:`except` *exc* :" -"keyword:`as` *var*. See :pep:`3110`." +"Change from :keyword:`except` *exc*, *var* to :keyword:`!except` *exc* :" +"keyword:`!as` *var*. See :pep:`3110`." msgstr "" #: ../Doc/whatsnew/3.0.rst:420 @@ -650,9 +650,9 @@ msgstr "" #: ../Doc/whatsnew/3.0.rst:510 msgid "" -":ref:`pep-3110`. The :keyword:`except` *exc* :keyword:`as` *var* syntax is " -"now standard and :keyword:`except` *exc*, *var* is no longer supported. (Of " -"course, the :keyword:`as` *var* part is still optional.)" +":ref:`pep-3110`. The :keyword:`except` *exc* :keyword:`!as` *var* syntax is " +"now standard and :keyword:`!except` *exc*, *var* is no longer supported. " +"(Of course, the :keyword:`!as` *var* part is still optional.)" msgstr "" #: ../Doc/whatsnew/3.0.rst:515 @@ -1258,7 +1258,7 @@ msgstr "" #: ../Doc/whatsnew/3.0.rst:884 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/whatsnew/3.0.rst:886 msgid "" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index fc2dbc650..244df1c5d 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -24,7 +24,7 @@ msgstr "Auteur" #: ../Doc/whatsnew/3.1.rst:5 msgid "Raymond Hettinger" -msgstr "" +msgstr "Raymond Hettinger" #: ../Doc/whatsnew/3.1.rst:49 msgid "This article explains the new features in Python 3.1, compared to 3.0." diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 9d3e9edb9..9547dc3bd 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" "PO-Revision-Date: 2018-07-03 11:14+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -24,24 +24,25 @@ msgstr "Auteur" #: ../Doc/whatsnew/3.2.rst:5 msgid "Raymond Hettinger" -msgstr "" +msgstr "Raymond Hettinger" #: ../Doc/whatsnew/3.2.rst:51 msgid "" "This article explains the new features in Python 3.2 as compared to 3.1. It " "focuses on a few highlights and gives a few examples. For full details, see " -"the `Misc/NEWS `_ file." +"the `Misc/NEWS `_ file." msgstr "" -#: ../Doc/whatsnew/3.2.rst:57 +#: ../Doc/whatsnew/3.2.rst:59 msgid ":pep:`392` - Python 3.2 Release Schedule" msgstr "" -#: ../Doc/whatsnew/3.2.rst:61 +#: ../Doc/whatsnew/3.2.rst:63 msgid "PEP 384: Defining a Stable ABI" msgstr "" -#: ../Doc/whatsnew/3.2.rst:63 +#: ../Doc/whatsnew/3.2.rst:65 msgid "" "In the past, extension modules built for one Python version were often not " "usable with other Python versions. Particularly on Windows, every feature " @@ -50,7 +51,7 @@ msgid "" "interpreter internals that extension modules could use." msgstr "" -#: ../Doc/whatsnew/3.2.rst:69 +#: ../Doc/whatsnew/3.2.rst:71 msgid "" "With Python 3.2, an alternative approach becomes available: extension " "modules which restrict themselves to a limited API (by defining " @@ -62,19 +63,19 @@ msgid "" "every feature release." msgstr "" -#: ../Doc/whatsnew/3.2.rst:80 +#: ../Doc/whatsnew/3.2.rst:82 msgid ":pep:`384` - Defining a Stable ABI" msgstr "" -#: ../Doc/whatsnew/3.2.rst:81 +#: ../Doc/whatsnew/3.2.rst:83 msgid "PEP written by Martin von Löwis." msgstr "" -#: ../Doc/whatsnew/3.2.rst:85 +#: ../Doc/whatsnew/3.2.rst:87 msgid "PEP 389: Argparse Command Line Parsing Module" msgstr "" -#: ../Doc/whatsnew/3.2.rst:87 +#: ../Doc/whatsnew/3.2.rst:89 msgid "" "A new module for command line parsing, :mod:`argparse`, was introduced to " "overcome the limitations of :mod:`optparse` which did not provide support " @@ -82,7 +83,7 @@ msgid "" "and other common patterns of specifying and validating options." msgstr "" -#: ../Doc/whatsnew/3.2.rst:92 +#: ../Doc/whatsnew/3.2.rst:94 msgid "" "This module has already had widespread success in the community as a third-" "party module. Being more fully featured than its predecessor, the :mod:" @@ -91,46 +92,46 @@ msgid "" "amount of legacy code that depends on it." msgstr "" -#: ../Doc/whatsnew/3.2.rst:98 +#: ../Doc/whatsnew/3.2.rst:100 msgid "" "Here's an annotated example parser showing features like limiting results to " "a set of choices, specifying a *metavar* in the help screen, validating that " "one or more positional arguments is present, and making a required option::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:117 +#: ../Doc/whatsnew/3.2.rst:119 msgid "Example of calling the parser on a command string::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:128 +#: ../Doc/whatsnew/3.2.rst:130 msgid "Example of the parser's automatically generated help::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:147 +#: ../Doc/whatsnew/3.2.rst:149 msgid "" "An especially nice :mod:`argparse` feature is the ability to define " "subparsers, each with their own argument patterns and help displays::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:173 +#: ../Doc/whatsnew/3.2.rst:175 msgid ":pep:`389` - New Command Line Parsing Module" msgstr "" -#: ../Doc/whatsnew/3.2.rst:173 +#: ../Doc/whatsnew/3.2.rst:175 msgid "PEP written by Steven Bethard." msgstr "" -#: ../Doc/whatsnew/3.2.rst:175 +#: ../Doc/whatsnew/3.2.rst:177 msgid "" ":ref:`upgrading-optparse-code` for details on the differences from :mod:" "`optparse`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:179 +#: ../Doc/whatsnew/3.2.rst:181 msgid "PEP 391: Dictionary Based Configuration for Logging" msgstr "" -#: ../Doc/whatsnew/3.2.rst:181 +#: ../Doc/whatsnew/3.2.rst:183 msgid "" "The :mod:`logging` module provided two kinds of configuration, one style " "with function calls for each option or another style driven by an external " @@ -140,7 +141,7 @@ msgid "" "logger options from a command line." msgstr "" -#: ../Doc/whatsnew/3.2.rst:188 +#: ../Doc/whatsnew/3.2.rst:190 msgid "" "To support a more flexible style, the module now offers :func:`logging." "config.dictConfig` for specifying logging configuration with plain Python " @@ -149,25 +150,25 @@ msgid "" "dictionary::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:212 +#: ../Doc/whatsnew/3.2.rst:214 msgid "" "If that dictionary is stored in a file called :file:`conf.json`, it can be " "loaded and called with code like this::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:227 +#: ../Doc/whatsnew/3.2.rst:229 msgid ":pep:`391` - Dictionary Based Configuration for Logging" msgstr "" -#: ../Doc/whatsnew/3.2.rst:228 +#: ../Doc/whatsnew/3.2.rst:230 msgid "PEP written by Vinay Sajip." msgstr "" -#: ../Doc/whatsnew/3.2.rst:232 +#: ../Doc/whatsnew/3.2.rst:234 msgid "PEP 3148: The ``concurrent.futures`` module" msgstr "" -#: ../Doc/whatsnew/3.2.rst:234 +#: ../Doc/whatsnew/3.2.rst:236 msgid "" "Code for creating and managing concurrency is being collected in a new top-" "level namespace, *concurrent*. Its first member is a *futures* package " @@ -175,7 +176,7 @@ msgid "" "processes." msgstr "" -#: ../Doc/whatsnew/3.2.rst:238 +#: ../Doc/whatsnew/3.2.rst:240 msgid "" "The design for :mod:`concurrent.futures` was inspired by the *java.util." "concurrent* package. In that model, a running call and its result are " @@ -185,7 +186,7 @@ msgid "" "adding callbacks, and access to results or exceptions." msgstr "" -#: ../Doc/whatsnew/3.2.rst:245 +#: ../Doc/whatsnew/3.2.rst:247 msgid "" "The primary offering of the new module is a pair of executor classes for " "launching and managing calls. The goal of the executors is to make it " @@ -195,7 +196,7 @@ msgid "" "processes, or remote procedure calls." msgstr "" -#: ../Doc/whatsnew/3.2.rst:252 +#: ../Doc/whatsnew/3.2.rst:254 msgid "" "Ideally, each application should share a single executor across multiple " "components so that process and thread limits can be centrally managed. This " @@ -203,7 +204,7 @@ msgid "" "competing strategy for resource management." msgstr "" -#: ../Doc/whatsnew/3.2.rst:257 +#: ../Doc/whatsnew/3.2.rst:259 msgid "" "Both classes share a common interface with three methods: :meth:`~concurrent." "futures.Executor.submit` for scheduling a callable and returning a :class:" @@ -215,38 +216,38 @@ msgid "" "futures are done executing." msgstr "" -#: ../Doc/whatsnew/3.2.rst:266 +#: ../Doc/whatsnew/3.2.rst:268 msgid "" "A simple of example of :class:`~concurrent.futures.ThreadPoolExecutor` is a " "launch of four parallel threads for copying files::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:279 +#: ../Doc/whatsnew/3.2.rst:281 msgid ":pep:`3148` - Futures -- Execute Computations Asynchronously" msgstr "" -#: ../Doc/whatsnew/3.2.rst:279 +#: ../Doc/whatsnew/3.2.rst:281 msgid "PEP written by Brian Quinlan." msgstr "" -#: ../Doc/whatsnew/3.2.rst:281 +#: ../Doc/whatsnew/3.2.rst:283 msgid "" ":ref:`Code for Threaded Parallel URL reads`, an " "example using threads to fetch multiple web pages in parallel." msgstr "" -#: ../Doc/whatsnew/3.2.rst:284 +#: ../Doc/whatsnew/3.2.rst:286 msgid "" ":ref:`Code for computing prime numbers in parallel`, an example demonstrating :class:`~concurrent.futures." "ProcessPoolExecutor`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:290 +#: ../Doc/whatsnew/3.2.rst:292 msgid "PEP 3147: PYC Repository Directories" msgstr "" -#: ../Doc/whatsnew/3.2.rst:292 +#: ../Doc/whatsnew/3.2.rst:294 msgid "" "Python's scheme for caching bytecode in *.pyc* files did not work well in " "environments with multiple Python interpreters. If one interpreter " @@ -255,7 +256,7 @@ msgid "" "caching." msgstr "" -#: ../Doc/whatsnew/3.2.rst:297 +#: ../Doc/whatsnew/3.2.rst:299 msgid "" "The issue of \"pyc fights\" has become more pronounced as it has become " "commonplace for Linux distributions to ship with multiple versions of " @@ -263,7 +264,7 @@ msgid "" "Swallow." msgstr "" -#: ../Doc/whatsnew/3.2.rst:301 +#: ../Doc/whatsnew/3.2.rst:303 msgid "" "To solve this problem, Python's import machinery has been extended to use " "distinct filenames for each interpreter. Instead of Python 3.2 and Python " @@ -274,32 +275,32 @@ msgid "" "\"__pycache__\" directory stored under the package directory." msgstr "" -#: ../Doc/whatsnew/3.2.rst:309 +#: ../Doc/whatsnew/3.2.rst:311 msgid "" "Aside from the filenames and target directories, the new scheme has a few " "aspects that are visible to the programmer:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:312 +#: ../Doc/whatsnew/3.2.rst:314 msgid "" "Imported modules now have a :attr:`__cached__` attribute which stores the " "name of the actual file that was imported:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:319 +#: ../Doc/whatsnew/3.2.rst:321 msgid "" "The tag that is unique to each interpreter is accessible from the :mod:`imp` " "module:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:326 +#: ../Doc/whatsnew/3.2.rst:328 msgid "" "Scripts that try to deduce source filename from the imported file now need " "to be smarter. It is no longer sufficient to simply strip the \"c\" from a " "\".pyc\" filename. Instead, use the new functions in the :mod:`imp` module:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:335 +#: ../Doc/whatsnew/3.2.rst:337 msgid "" "The :mod:`py_compile` and :mod:`compileall` modules have been updated to " "reflect the new naming convention and target directory. The command-line " @@ -308,7 +309,7 @@ msgid "" "be written to their legacy location rather than *__pycache__*." msgstr "" -#: ../Doc/whatsnew/3.2.rst:342 +#: ../Doc/whatsnew/3.2.rst:344 msgid "" "The :mod:`importlib.abc` module has been updated with new :term:`abstract " "base classes ` for loading bytecode files. The " @@ -317,26 +318,26 @@ msgid "" "compatible are included with the documentation)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:350 +#: ../Doc/whatsnew/3.2.rst:352 msgid ":pep:`3147` - PYC Repository Directories" msgstr "" -#: ../Doc/whatsnew/3.2.rst:351 ../Doc/whatsnew/3.2.rst:382 +#: ../Doc/whatsnew/3.2.rst:353 ../Doc/whatsnew/3.2.rst:384 msgid "PEP written by Barry Warsaw." msgstr "" -#: ../Doc/whatsnew/3.2.rst:355 +#: ../Doc/whatsnew/3.2.rst:357 msgid "PEP 3149: ABI Version Tagged .so Files" msgstr "" -#: ../Doc/whatsnew/3.2.rst:357 +#: ../Doc/whatsnew/3.2.rst:359 msgid "" "The PYC repository directory allows multiple bytecode cache files to be co-" "located. This PEP implements a similar mechanism for shared object files by " "giving them a common directory and distinct names for each version." msgstr "" -#: ../Doc/whatsnew/3.2.rst:361 +#: ../Doc/whatsnew/3.2.rst:363 msgid "" "The common directory is \"pyshared\" and the file names are made distinct by " "identifying the Python implementation (such as CPython, PyPy, Jython, etc.), " @@ -346,21 +347,21 @@ msgid "" "installed::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:370 +#: ../Doc/whatsnew/3.2.rst:372 msgid "" "In Python itself, the tags are accessible from functions in the :mod:" "`sysconfig` module::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:381 +#: ../Doc/whatsnew/3.2.rst:383 msgid ":pep:`3149` - ABI Version Tagged .so Files" msgstr "" -#: ../Doc/whatsnew/3.2.rst:386 +#: ../Doc/whatsnew/3.2.rst:388 msgid "PEP 3333: Python Web Server Gateway Interface v1.0.1" msgstr "" -#: ../Doc/whatsnew/3.2.rst:388 +#: ../Doc/whatsnew/3.2.rst:390 msgid "" "This informational PEP clarifies how bytes/text issues are to be handled by " "the WSGI protocol. The challenge is that string handling in Python 3 is " @@ -368,14 +369,14 @@ msgid "" "protocol is itself bytes oriented." msgstr "" -#: ../Doc/whatsnew/3.2.rst:393 +#: ../Doc/whatsnew/3.2.rst:395 msgid "" "The PEP differentiates so-called *native strings* that are used for request/" "response headers and metadata versus *byte strings* which are used for the " "bodies of requests and responses." msgstr "" -#: ../Doc/whatsnew/3.2.rst:397 +#: ../Doc/whatsnew/3.2.rst:399 msgid "" "The *native strings* are always of type :class:`str` but are restricted to " "code points between *U+0000* through *U+00FF* which are translatable to " @@ -386,18 +387,18 @@ msgid "" "use :rfc:`2047` MIME encoding." msgstr "" -#: ../Doc/whatsnew/3.2.rst:405 +#: ../Doc/whatsnew/3.2.rst:407 msgid "" "For developers porting WSGI applications from Python 2, here are the salient " "points:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:408 +#: ../Doc/whatsnew/3.2.rst:410 msgid "" "If the app already used strings for headers in Python 2, no change is needed." msgstr "" -#: ../Doc/whatsnew/3.2.rst:410 +#: ../Doc/whatsnew/3.2.rst:412 msgid "" "If instead, the app encoded output headers or decoded input headers, then " "the headers will need to be re-encoded to Latin-1. For example, an output " @@ -405,14 +406,14 @@ msgid "" "from bytes to native strings using ``h.encode('utf-8').decode('latin-1')``." msgstr "" -#: ../Doc/whatsnew/3.2.rst:415 +#: ../Doc/whatsnew/3.2.rst:417 msgid "" "Values yielded by an application or sent using the :meth:`write` method must " "be byte strings. The :func:`start_response` function and environ must use " "native strings. The two cannot be mixed." msgstr "" -#: ../Doc/whatsnew/3.2.rst:419 +#: ../Doc/whatsnew/3.2.rst:421 msgid "" "For server implementers writing CGI-to-WSGI pathways or other CGI-style " "protocols, the users must to be able access the environment using native " @@ -423,23 +424,23 @@ msgid "" "dictionary." msgstr "" -#: ../Doc/whatsnew/3.2.rst:428 +#: ../Doc/whatsnew/3.2.rst:430 msgid ":pep:`3333` - Python Web Server Gateway Interface v1.0.1" msgstr "" -#: ../Doc/whatsnew/3.2.rst:429 +#: ../Doc/whatsnew/3.2.rst:431 msgid "PEP written by Phillip Eby." msgstr "" -#: ../Doc/whatsnew/3.2.rst:433 +#: ../Doc/whatsnew/3.2.rst:435 msgid "Other Language Changes" msgstr "" -#: ../Doc/whatsnew/3.2.rst:435 +#: ../Doc/whatsnew/3.2.rst:437 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:437 +#: ../Doc/whatsnew/3.2.rst:439 msgid "" "String formatting for :func:`format` and :meth:`str.format` gained new " "capabilities for the format character **#**. Previously, for integers in " @@ -449,12 +450,12 @@ msgid "" "digits follow it." msgstr "" -#: ../Doc/whatsnew/3.2.rst:449 +#: ../Doc/whatsnew/3.2.rst:451 msgid "" "(Suggested by Mark Dickinson and implemented by Eric Smith in :issue:`7094`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:451 +#: ../Doc/whatsnew/3.2.rst:453 msgid "" "There is also a new :meth:`str.format_map` method that extends the " "capabilities of the existing :meth:`str.format` method by accepting " @@ -466,13 +467,13 @@ msgid "" "meth:`__missing__` method for unknown keys::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:478 +#: ../Doc/whatsnew/3.2.rst:480 msgid "" "(Suggested by Raymond Hettinger and implemented by Eric Smith in :issue:" "`6081`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:481 +#: ../Doc/whatsnew/3.2.rst:483 msgid "" "The interpreter can now be started with a quiet option, ``-q``, to prevent " "the copyright and version information from being displayed in the " @@ -480,11 +481,11 @@ msgid "" "flags` attribute:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:493 +#: ../Doc/whatsnew/3.2.rst:495 msgid "(Contributed by Marcin Wojdyr in :issue:`1772833`)." msgstr "(Contribution par Marcin Wojdyr; :issue:`1772833`)." -#: ../Doc/whatsnew/3.2.rst:495 +#: ../Doc/whatsnew/3.2.rst:497 msgid "" "The :func:`hasattr` function works by calling :func:`getattr` and detecting " "whether an exception is raised. This technique allows it to detect methods " @@ -495,12 +496,12 @@ msgid "" "exceptions pass through::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:514 +#: ../Doc/whatsnew/3.2.rst:516 msgid "" "(Discovered by Yury Selivanov and fixed by Benjamin Peterson; :issue:`9666`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:516 +#: ../Doc/whatsnew/3.2.rst:518 msgid "" "The :func:`str` of a float or complex number is now the same as its :func:" "`repr`. Previously, the :func:`str` form was shorter but that just caused " @@ -508,11 +509,11 @@ msgid "" "`repr` is displayed by default:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:527 +#: ../Doc/whatsnew/3.2.rst:529 msgid "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:529 +#: ../Doc/whatsnew/3.2.rst:531 msgid "" ":class:`memoryview` objects now have a :meth:`~memoryview.release()` method " "and they also now support the context management protocol. This allows " @@ -520,28 +521,28 @@ msgid "" "from the original object." msgstr "" -#: ../Doc/whatsnew/3.2.rst:538 +#: ../Doc/whatsnew/3.2.rst:540 msgid "(Added by Antoine Pitrou; :issue:`9757`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`9757`.)" -#: ../Doc/whatsnew/3.2.rst:540 +#: ../Doc/whatsnew/3.2.rst:542 msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:549 +#: ../Doc/whatsnew/3.2.rst:551 msgid "" "This is now allowed. Remember that the target of an :keyword:`except` " "clause is cleared, so this code which used to work with Python 2.6, raised " "a :exc:`SyntaxError` with Python 3.1 and now works again::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:562 +#: ../Doc/whatsnew/3.2.rst:564 msgid "(See :issue:`4617`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:564 +#: ../Doc/whatsnew/3.2.rst:566 msgid "" "The internal :c:type:`structsequence` tool now creates subclasses of tuple. " "This means that C structures like those returned by :func:`os.stat`, :func:" @@ -551,25 +552,25 @@ msgid "" "as their pure Python counterparts:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:577 +#: ../Doc/whatsnew/3.2.rst:579 msgid "" "(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by " "Benjamin Peterson in :issue:`8413`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:580 +#: ../Doc/whatsnew/3.2.rst:582 msgid "" "Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` " "environment variable as an alternative to using ``-W`` at the command line:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:587 +#: ../Doc/whatsnew/3.2.rst:589 msgid "" "(Suggested by Barry Warsaw and implemented by Philip Jenvey in :issue:" "`7301`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:589 +#: ../Doc/whatsnew/3.2.rst:591 msgid "" "A new warning category, :exc:`ResourceWarning`, has been added. It is " "emitted when potential issues with resource consumption or cleanup are " @@ -578,7 +579,7 @@ msgid "" "command line." msgstr "" -#: ../Doc/whatsnew/3.2.rst:595 +#: ../Doc/whatsnew/3.2.rst:597 msgid "" "A :exc:`ResourceWarning` is issued at interpreter shutdown if the :data:`gc." "garbage` list isn't empty, and if :attr:`gc.DEBUG_UNCOLLECTABLE` is set, all " @@ -586,7 +587,7 @@ msgid "" "aware that their code contains object finalization issues." msgstr "" -#: ../Doc/whatsnew/3.2.rst:600 +#: ../Doc/whatsnew/3.2.rst:602 msgid "" "A :exc:`ResourceWarning` is also issued when a :term:`file object` is " "destroyed without having been explicitly closed. While the deallocator for " @@ -596,13 +597,13 @@ msgid "" "enabling the warning from the command line:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:614 +#: ../Doc/whatsnew/3.2.rst:616 msgid "" "(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:" "`477863`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:616 +#: ../Doc/whatsnew/3.2.rst:618 msgid "" ":class:`range` objects now support *index* and *count* methods. This is part " "of an effort to make more objects fully implement the :class:`collections." @@ -612,45 +613,45 @@ msgid "" "This makes *range* more interoperable with lists::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:632 +#: ../Doc/whatsnew/3.2.rst:634 msgid "" "(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky " "in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:635 +#: ../Doc/whatsnew/3.2.rst:637 msgid "" "The :func:`callable` builtin function from Py2.x was resurrected. It " "provides a concise, readable alternative to using an :term:`abstract base " "class` in an expression like ``isinstance(x, collections.Callable)``:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:644 +#: ../Doc/whatsnew/3.2.rst:646 msgid "(See :issue:`10518`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:646 +#: ../Doc/whatsnew/3.2.rst:648 msgid "" "Python's import mechanism can now load modules installed in directories with " "non-ASCII characters in the path name. This solved an aggravating problem " "with home directories for users with non-ASCII characters in their usernames." msgstr "" -#: ../Doc/whatsnew/3.2.rst:650 +#: ../Doc/whatsnew/3.2.rst:652 msgid "(Required extensive work by Victor Stinner in :issue:`9425`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:654 +#: ../Doc/whatsnew/3.2.rst:656 msgid "New, Improved, and Deprecated Modules" msgstr "" -#: ../Doc/whatsnew/3.2.rst:656 +#: ../Doc/whatsnew/3.2.rst:658 msgid "" "Python's standard library has undergone significant maintenance efforts and " "quality improvements." msgstr "" -#: ../Doc/whatsnew/3.2.rst:659 +#: ../Doc/whatsnew/3.2.rst:661 msgid "" "The biggest news for Python 3.2 is that the :mod:`email` package, :mod:" "`mailbox` module, and :mod:`nntplib` modules now work correctly with the " @@ -658,7 +659,7 @@ msgid "" "of messages with mixed encodings." msgstr "" -#: ../Doc/whatsnew/3.2.rst:664 +#: ../Doc/whatsnew/3.2.rst:666 msgid "" "Throughout the standard library, there has been more careful attention to " "encodings and text versus bytes issues. In particular, interactions with " @@ -666,23 +667,23 @@ msgid "" "the Windows MBCS encoding, locale-aware encodings, or UTF-8." msgstr "" -#: ../Doc/whatsnew/3.2.rst:669 +#: ../Doc/whatsnew/3.2.rst:671 msgid "" "Another significant win is the addition of substantially better support for " "*SSL* connections and security certificates." msgstr "" -#: ../Doc/whatsnew/3.2.rst:672 +#: ../Doc/whatsnew/3.2.rst:674 msgid "" "In addition, more classes now implement a :term:`context manager` to support " "convenient and reliable resource clean-up using a :keyword:`with` statement." msgstr "" -#: ../Doc/whatsnew/3.2.rst:676 +#: ../Doc/whatsnew/3.2.rst:678 msgid "email" msgstr "email" -#: ../Doc/whatsnew/3.2.rst:678 +#: ../Doc/whatsnew/3.2.rst:680 msgid "" "The usability of the :mod:`email` package in Python 3 has been mostly fixed " "by the extensive efforts of R. David Murray. The problem was that emails " @@ -692,7 +693,7 @@ msgid "" "messages in bytes format." msgstr "" -#: ../Doc/whatsnew/3.2.rst:685 +#: ../Doc/whatsnew/3.2.rst:687 msgid "" "New functions :func:`~email.message_from_bytes` and :func:`~email." "message_from_binary_file`, and new classes :class:`~email.parser." @@ -700,7 +701,7 @@ msgid "" "data to be parsed into model objects." msgstr "" -#: ../Doc/whatsnew/3.2.rst:690 +#: ../Doc/whatsnew/3.2.rst:692 msgid "" "Given bytes input to the model, :meth:`~email.message.Message.get_payload` " "will by default decode a message body that has a :mailheader:`Content-" @@ -708,20 +709,20 @@ msgid "" "and return the resulting string." msgstr "" -#: ../Doc/whatsnew/3.2.rst:695 +#: ../Doc/whatsnew/3.2.rst:697 msgid "" "Given bytes input to the model, :class:`~email.generator.Generator` will " "convert message bodies that have a :mailheader:`Content-Transfer-Encoding` " "of *8bit* to instead have a *7bit* :mailheader:`Content-Transfer-Encoding`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:699 +#: ../Doc/whatsnew/3.2.rst:701 msgid "" "Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ -" "encoded using the *unknown-8bit* character set." msgstr "" -#: ../Doc/whatsnew/3.2.rst:702 +#: ../Doc/whatsnew/3.2.rst:704 msgid "" "A new class :class:`~email.generator.BytesGenerator` produces bytes as " "output, preserving any unchanged non-ASCII data that was present in the " @@ -729,7 +730,7 @@ msgid "" "`Content-Transfer-Encoding` of *8bit*." msgstr "" -#: ../Doc/whatsnew/3.2.rst:707 +#: ../Doc/whatsnew/3.2.rst:709 msgid "" "The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string " "for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a " @@ -738,125 +739,125 @@ msgid "" "*to_addrs* addresses directly from the object." msgstr "" -#: ../Doc/whatsnew/3.2.rst:713 +#: ../Doc/whatsnew/3.2.rst:715 msgid "" "(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:" "`10321`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:716 +#: ../Doc/whatsnew/3.2.rst:718 msgid "elementtree" msgstr "elementtree" -#: ../Doc/whatsnew/3.2.rst:718 +#: ../Doc/whatsnew/3.2.rst:720 msgid "" "The :mod:`xml.etree.ElementTree` package and its :mod:`xml.etree." "cElementTree` counterpart have been updated to version 1.3." msgstr "" -#: ../Doc/whatsnew/3.2.rst:721 +#: ../Doc/whatsnew/3.2.rst:723 msgid "Several new and useful functions and methods have been added:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:723 +#: ../Doc/whatsnew/3.2.rst:725 msgid "" ":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document " "from a sequence of fragments" msgstr "" -#: ../Doc/whatsnew/3.2.rst:725 +#: ../Doc/whatsnew/3.2.rst:727 msgid "" ":func:`xml.etree.ElementTree.register_namespace` for registering a global " "namespace prefix" msgstr "" -#: ../Doc/whatsnew/3.2.rst:727 +#: ../Doc/whatsnew/3.2.rst:729 msgid "" ":func:`xml.etree.ElementTree.tostringlist` for string representation " "including all sublists" msgstr "" -#: ../Doc/whatsnew/3.2.rst:729 +#: ../Doc/whatsnew/3.2.rst:731 msgid "" ":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of " "zero or more elements" msgstr "" -#: ../Doc/whatsnew/3.2.rst:731 +#: ../Doc/whatsnew/3.2.rst:733 msgid "" ":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and " "subelements" msgstr "" -#: ../Doc/whatsnew/3.2.rst:733 +#: ../Doc/whatsnew/3.2.rst:735 msgid "" ":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over " "an element and its subelements" msgstr "" -#: ../Doc/whatsnew/3.2.rst:735 +#: ../Doc/whatsnew/3.2.rst:737 msgid "" ":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element" msgstr "" -#: ../Doc/whatsnew/3.2.rst:736 +#: ../Doc/whatsnew/3.2.rst:738 msgid "" ":meth:`xml.etree.ElementTree.TreeBuilder.doctype` handles a doctype " "declaration" msgstr "" -#: ../Doc/whatsnew/3.2.rst:739 +#: ../Doc/whatsnew/3.2.rst:741 msgid "Two methods have been deprecated:" msgstr "Deux méthodes ont été dépréciées :" -#: ../Doc/whatsnew/3.2.rst:741 +#: ../Doc/whatsnew/3.2.rst:743 msgid ":meth:`xml.etree.ElementTree.getchildren` use ``list(elem)`` instead." msgstr "" -#: ../Doc/whatsnew/3.2.rst:742 +#: ../Doc/whatsnew/3.2.rst:744 msgid ":meth:`xml.etree.ElementTree.getiterator` use ``Element.iter`` instead." msgstr "" -#: ../Doc/whatsnew/3.2.rst:744 +#: ../Doc/whatsnew/3.2.rst:746 msgid "" "For details of the update, see `Introducing ElementTree `_ on Fredrik Lundh's website." msgstr "" -#: ../Doc/whatsnew/3.2.rst:747 +#: ../Doc/whatsnew/3.2.rst:749 msgid "(Contributed by Florent Xicluna and Fredrik Lundh, :issue:`6472`.)" msgstr "(Contribution par Florent Xicluna et Fredrik Lundh; :issue:`6472`)" -#: ../Doc/whatsnew/3.2.rst:750 +#: ../Doc/whatsnew/3.2.rst:752 msgid "functools" msgstr "" -#: ../Doc/whatsnew/3.2.rst:752 +#: ../Doc/whatsnew/3.2.rst:754 msgid "" "The :mod:`functools` module includes a new decorator for caching function " "calls. :func:`functools.lru_cache` can save repeated queries to an external " "resource whenever the results are expected to be the same." msgstr "" -#: ../Doc/whatsnew/3.2.rst:756 +#: ../Doc/whatsnew/3.2.rst:758 msgid "" "For example, adding a caching decorator to a database query function can " "save database accesses for popular searches:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:769 +#: ../Doc/whatsnew/3.2.rst:771 msgid "" "To help with choosing an effective cache size, the wrapped function is " "instrumented for tracking cache statistics:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:775 +#: ../Doc/whatsnew/3.2.rst:777 msgid "" "If the phonelist table gets updated, the outdated contents of the cache can " "be cleared with:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:780 +#: ../Doc/whatsnew/3.2.rst:782 msgid "" "(Contributed by Raymond Hettinger and incorporating design ideas from Jim " "Baker, Miki Tebeka, and Nick Coghlan; see `recipe 498245 `_\\, :issue:`10586`, and :issue:`10593`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:786 +#: ../Doc/whatsnew/3.2.rst:788 msgid "" "The :func:`functools.wraps` decorator now adds a :attr:`__wrapped__` " "attribute pointing to the original callable function. This allows wrapped " @@ -873,84 +874,84 @@ msgid "" "attr:`__doc__` which might not be defined for the wrapped callable." msgstr "" -#: ../Doc/whatsnew/3.2.rst:792 +#: ../Doc/whatsnew/3.2.rst:794 msgid "" "In the above example, the cache can be removed by recovering the original " "function:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:797 +#: ../Doc/whatsnew/3.2.rst:799 msgid "" "(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and :issue:" "`8814`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:800 +#: ../Doc/whatsnew/3.2.rst:802 msgid "" "To help write classes with rich comparison methods, a new decorator :func:" "`functools.total_ordering` will use existing equality and inequality methods " "to fill in the remaining methods." msgstr "" -#: ../Doc/whatsnew/3.2.rst:804 +#: ../Doc/whatsnew/3.2.rst:806 msgid "" "For example, supplying *__eq__* and *__lt__* will enable :func:`~functools." "total_ordering` to fill-in *__le__*, *__gt__* and *__ge__*::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:817 +#: ../Doc/whatsnew/3.2.rst:819 msgid "" "With the *total_ordering* decorator, the remaining comparison methods are " "filled in automatically." msgstr "" -#: ../Doc/whatsnew/3.2.rst:820 ../Doc/whatsnew/3.2.rst:832 -#: ../Doc/whatsnew/3.2.rst:876 ../Doc/whatsnew/3.2.rst:897 -#: ../Doc/whatsnew/3.2.rst:911 ../Doc/whatsnew/3.2.rst:1781 -#: ../Doc/whatsnew/3.2.rst:1826 +#: ../Doc/whatsnew/3.2.rst:822 ../Doc/whatsnew/3.2.rst:834 +#: ../Doc/whatsnew/3.2.rst:878 ../Doc/whatsnew/3.2.rst:899 +#: ../Doc/whatsnew/3.2.rst:913 ../Doc/whatsnew/3.2.rst:1783 +#: ../Doc/whatsnew/3.2.rst:1828 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:822 +#: ../Doc/whatsnew/3.2.rst:824 msgid "" "To aid in porting programs from Python 2, the :func:`functools.cmp_to_key` " "function converts an old-style comparison function to modern :term:`key " "function`:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:829 +#: ../Doc/whatsnew/3.2.rst:831 msgid "" "For sorting examples and a brief sorting tutorial, see the `Sorting HowTo " "`_ tutorial." msgstr "" -#: ../Doc/whatsnew/3.2.rst:835 +#: ../Doc/whatsnew/3.2.rst:837 msgid "itertools" msgstr "" -#: ../Doc/whatsnew/3.2.rst:837 +#: ../Doc/whatsnew/3.2.rst:839 msgid "" "The :mod:`itertools` module has a new :func:`~itertools.accumulate` function " "modeled on APL's *scan* operator and Numpy's *accumulate* function:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:848 +#: ../Doc/whatsnew/3.2.rst:850 msgid "" "For an example using :func:`~itertools.accumulate`, see the :ref:`examples " "for the random module `." msgstr "" -#: ../Doc/whatsnew/3.2.rst:851 +#: ../Doc/whatsnew/3.2.rst:853 msgid "" "(Contributed by Raymond Hettinger and incorporating design suggestions from " "Mark Dickinson.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:855 +#: ../Doc/whatsnew/3.2.rst:857 msgid "collections" msgstr "" -#: ../Doc/whatsnew/3.2.rst:857 +#: ../Doc/whatsnew/3.2.rst:859 msgid "" "The :class:`collections.Counter` class now has two forms of in-place " "subtraction, the existing *-=* operator for `saturating subtraction `_ which is defined for only two threads." msgstr "" -#: ../Doc/whatsnew/3.2.rst:926 +#: ../Doc/whatsnew/3.2.rst:928 msgid "" "Implemented as a two-phase cyclic barrier, :class:`~threading.Barrier` " "objects are suitable for use in loops. The separate *filling* and " @@ -1017,11 +1018,11 @@ msgid "" "resets after each cycle." msgstr "" -#: ../Doc/whatsnew/3.2.rst:931 +#: ../Doc/whatsnew/3.2.rst:933 msgid "Example of using barriers::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:945 +#: ../Doc/whatsnew/3.2.rst:947 msgid "" "In this example, the barrier enforces a rule that votes cannot be counted at " "any polling site until all polls are closed. Notice how a solution with a " @@ -1030,7 +1031,7 @@ msgid "" "barrier point is crossed." msgstr "" -#: ../Doc/whatsnew/3.2.rst:951 +#: ../Doc/whatsnew/3.2.rst:953 msgid "" "If any of the predecessor tasks can hang or be delayed, a barrier can be " "created with an optional *timeout* parameter. Then if the timeout period " @@ -1039,33 +1040,34 @@ msgid "" "exception is raised::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:967 +#: ../Doc/whatsnew/3.2.rst:969 msgid "" "In this example, the barrier enforces a more robust rule. If some election " "sites do not finish before midnight, the barrier times-out and the ballots " "are sealed and deposited in a queue for later handling." msgstr "" -#: ../Doc/whatsnew/3.2.rst:971 +#: ../Doc/whatsnew/3.2.rst:973 msgid "" -"See `Barrier Synchronization Patterns `_ for more examples of how barriers can " -"be used in parallel computing. Also, there is a simple but thorough " -"explanation of barriers in `The Little Book of Semaphores `_, *section 3.6*." +"See `Barrier Synchronization Patterns `_ for more examples " +"of how barriers can be used in parallel computing. Also, there is a simple " +"but thorough explanation of barriers in `The Little Book of Semaphores " +"`_, " +"*section 3.6*." msgstr "" -#: ../Doc/whatsnew/3.2.rst:977 +#: ../Doc/whatsnew/3.2.rst:979 msgid "" "(Contributed by Kristján Valur Jónsson with an API review by Jeffrey Yasskin " "in :issue:`8777`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:981 +#: ../Doc/whatsnew/3.2.rst:983 msgid "datetime and time" msgstr "" -#: ../Doc/whatsnew/3.2.rst:983 +#: ../Doc/whatsnew/3.2.rst:985 msgid "" "The :mod:`datetime` module has a new type :class:`~datetime.timezone` that " "implements the :class:`~datetime.tzinfo` interface by returning a fixed UTC " @@ -1073,20 +1075,20 @@ msgid "" "datetime objects::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:996 +#: ../Doc/whatsnew/3.2.rst:998 msgid "" "Also, :class:`~datetime.timedelta` objects can now be multiplied by :class:" "`float` and divided by :class:`float` and :class:`int` objects. And :class:" "`~datetime.timedelta` objects can now divide one another." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1000 +#: ../Doc/whatsnew/3.2.rst:1002 msgid "" "The :meth:`datetime.date.strftime` method is no longer restricted to years " "after 1900. The new supported year range is from 1000 to 9999 inclusive." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1003 +#: ../Doc/whatsnew/3.2.rst:1005 msgid "" "Whenever a two-digit year is used in a time tuple, the interpretation has " "been governed by :attr:`time.accept2dyear`. The default is ``True`` which " @@ -1094,7 +1096,7 @@ msgid "" "POSIX rules governing the ``%y`` strptime format." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1008 +#: ../Doc/whatsnew/3.2.rst:1010 msgid "" "Starting with Py3.2, use of the century guessing heuristic will emit a :exc:" "`DeprecationWarning`. Instead, it is recommended that :attr:`time." @@ -1102,7 +1104,7 @@ msgid "" "without guesswork::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1027 +#: ../Doc/whatsnew/3.2.rst:1029 msgid "" "Several functions now have significantly expanded date ranges. When :attr:" "`time.accept2dyear` is false, the :func:`time.asctime` function will accept " @@ -1111,45 +1113,45 @@ msgid "" "corresponding operating system functions." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1033 +#: ../Doc/whatsnew/3.2.rst:1035 msgid "" "(Contributed by Alexander Belopolsky and Victor Stinner in :issue:" "`1289118`, :issue:`5094`, :issue:`6641`, :issue:`2706`, :issue:`1777412`, :" "issue:`8013`, and :issue:`10827`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1040 +#: ../Doc/whatsnew/3.2.rst:1042 msgid "math" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1042 +#: ../Doc/whatsnew/3.2.rst:1044 msgid "" "The :mod:`math` module has been updated with six new functions inspired by " "the C99 standard." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1045 +#: ../Doc/whatsnew/3.2.rst:1047 msgid "" "The :func:`~math.isfinite` function provides a reliable and fast way to " "detect special values. It returns ``True`` for regular numbers and " "``False`` for *Nan* or *Infinity*:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1053 +#: ../Doc/whatsnew/3.2.rst:1055 msgid "" "The :func:`~math.expm1` function computes ``e**x-1`` for small values of *x* " "without incurring the loss of precision that usually accompanies the " "subtraction of nearly equal quantities:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1061 +#: ../Doc/whatsnew/3.2.rst:1063 msgid "" "The :func:`~math.erf` function computes a probability integral or `Gaussian " "error function `_. The " "complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1076 +#: ../Doc/whatsnew/3.2.rst:1078 msgid "" "The :func:`~math.gamma` function is a continuous extension of the factorial " "function. See https://en.wikipedia.org/wiki/Gamma_function for details. " @@ -1158,36 +1160,36 @@ msgid "" "computing the natural logarithm of the gamma function:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1088 +#: ../Doc/whatsnew/3.2.rst:1090 msgid "(Contributed by Mark Dickinson.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1091 +#: ../Doc/whatsnew/3.2.rst:1093 msgid "abc" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1093 +#: ../Doc/whatsnew/3.2.rst:1095 msgid "" "The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` and :" "func:`~abc.abstractstaticmethod`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1096 +#: ../Doc/whatsnew/3.2.rst:1098 msgid "" "These tools make it possible to define an :term:`abstract base class` that " "requires a particular :func:`classmethod` or :func:`staticmethod` to be " "implemented::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1108 +#: ../Doc/whatsnew/3.2.rst:1110 msgid "(Patch submitted by Daniel Urban; :issue:`5867`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1111 +#: ../Doc/whatsnew/3.2.rst:1113 msgid "io" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1113 +#: ../Doc/whatsnew/3.2.rst:1115 msgid "" "The :class:`io.BytesIO` has a new method, :meth:`~io.BytesIO.getbuffer`, " "which provides functionality similar to :func:`memoryview`. It creates an " @@ -1195,15 +1197,15 @@ msgid "" "and support for slice notation are well-suited to in-place editing::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1139 +#: ../Doc/whatsnew/3.2.rst:1141 msgid "(Contributed by Antoine Pitrou in :issue:`5506`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`5506`.)" -#: ../Doc/whatsnew/3.2.rst:1142 +#: ../Doc/whatsnew/3.2.rst:1144 msgid "reprlib" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1144 +#: ../Doc/whatsnew/3.2.rst:1146 msgid "" "When writing a :meth:`__repr__` method for a custom container, it is easy to " "forget to handle the case where a member refers back to the container " @@ -1212,28 +1214,28 @@ msgid "" "representation string." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1150 +#: ../Doc/whatsnew/3.2.rst:1152 msgid "" "To help write such :meth:`__repr__` methods, the :mod:`reprlib` module has a " "new decorator, :func:`~reprlib.recursive_repr`, for detecting recursive " "calls to :meth:`__repr__` and substituting a placeholder string instead::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1165 +#: ../Doc/whatsnew/3.2.rst:1167 msgid "(Contributed by Raymond Hettinger in :issue:`9826` and :issue:`9840`.)" msgstr "(Contribution par Raymond Hettinger; :issue:`9826` et issue:`9840`)" -#: ../Doc/whatsnew/3.2.rst:1168 +#: ../Doc/whatsnew/3.2.rst:1170 msgid "logging" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1170 +#: ../Doc/whatsnew/3.2.rst:1172 msgid "" "In addition to dictionary-based configuration described above, the :mod:" "`logging` package has many other improvements." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1173 +#: ../Doc/whatsnew/3.2.rst:1175 msgid "" "The logging documentation has been augmented by a :ref:`basic tutorial " "`\\, an :ref:`advanced tutorial ` for zipfiles, uncompressed tarfiles, " @@ -1660,7 +1662,7 @@ msgid "" "tarfiles or custom formats)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1554 +#: ../Doc/whatsnew/3.2.rst:1556 msgid "" "The principal functions are :func:`~shutil.make_archive` and :func:`~shutil." "unpack_archive`. By default, both operate on the current directory (which " @@ -1669,23 +1671,23 @@ msgid "" "non-destructive (the original files are left unchanged)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1588 +#: ../Doc/whatsnew/3.2.rst:1590 msgid "sqlite3" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1590 +#: ../Doc/whatsnew/3.2.rst:1592 msgid "" "The :mod:`sqlite3` module was updated to pysqlite version 2.6.0. It has two " "new capabilities." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1592 +#: ../Doc/whatsnew/3.2.rst:1594 msgid "" "The :attr:`sqlite3.Connection.in_transit` attribute is true if there is an " "active transaction for uncommitted changes." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1595 +#: ../Doc/whatsnew/3.2.rst:1597 msgid "" "The :meth:`sqlite3.Connection.enable_load_extension` and :meth:`sqlite3." "Connection.load_extension` methods allows you to load SQLite extensions from " @@ -1693,30 +1695,30 @@ msgid "" "distributed with SQLite." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1600 +#: ../Doc/whatsnew/3.2.rst:1602 msgid "(Contributed by R. David Murray and Shashwat Anand; :issue:`8845`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1603 +#: ../Doc/whatsnew/3.2.rst:1605 msgid "html" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1605 +#: ../Doc/whatsnew/3.2.rst:1607 msgid "" "A new :mod:`html` module was introduced with only a single function, :func:" "`~html.escape`, which is used for escaping reserved characters from HTML " "markup:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1614 +#: ../Doc/whatsnew/3.2.rst:1616 msgid "socket" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1616 +#: ../Doc/whatsnew/3.2.rst:1618 msgid "The :mod:`socket` module has two new improvements." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1618 +#: ../Doc/whatsnew/3.2.rst:1620 msgid "" "Socket objects now have a :meth:`~socket.socket.detach()` method which puts " "the socket into closed state without actually closing the underlying file " @@ -1724,24 +1726,24 @@ msgid "" "Antoine Pitrou; :issue:`8524`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1623 +#: ../Doc/whatsnew/3.2.rst:1625 msgid "" ":func:`socket.create_connection` now supports the context management " "protocol to unconditionally consume :exc:`socket.error` exceptions and to " "close the socket when done. (Contributed by Giampaolo Rodolà; :issue:`9794`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1629 +#: ../Doc/whatsnew/3.2.rst:1631 msgid "ssl" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1631 +#: ../Doc/whatsnew/3.2.rst:1633 msgid "" "The :mod:`ssl` module added a number of features to satisfy common " "requirements for secure (encrypted, authenticated) internet connections:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1634 +#: ../Doc/whatsnew/3.2.rst:1636 msgid "" "A new class, :class:`~ssl.SSLContext`, serves as a container for persistent " "SSL data, such as protocol settings, certificates, private keys, and various " @@ -1749,14 +1751,14 @@ msgid "" "creating an SSL socket from an SSL context." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1639 +#: ../Doc/whatsnew/3.2.rst:1641 msgid "" "A new function, :func:`ssl.match_hostname`, supports server identity " "verification for higher-level protocols by implementing the rules of HTTPS " "(from :rfc:`2818`) which are also suitable for other protocols." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1643 +#: ../Doc/whatsnew/3.2.rst:1645 msgid "" "The :func:`ssl.wrap_socket` constructor function now takes a *ciphers* " "argument. The *ciphers* string lists the allowed encryption algorithms " @@ -1764,7 +1766,7 @@ msgid "" "openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`__." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1648 +#: ../Doc/whatsnew/3.2.rst:1650 msgid "" "When linked against recent versions of OpenSSL, the :mod:`ssl` module now " "supports the Server Name Indication extension to the TLS protocol, allowing " @@ -1773,20 +1775,20 @@ msgid "" "the *server_hostname* argument to :meth:`ssl.SSLContext.wrap_socket`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1654 +#: ../Doc/whatsnew/3.2.rst:1656 msgid "" "Various options have been added to the :mod:`ssl` module, such as :data:" "`~ssl.OP_NO_SSLv2` which disables the insecure and obsolete SSLv2 protocol." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1658 +#: ../Doc/whatsnew/3.2.rst:1660 msgid "" "The extension now loads all the OpenSSL ciphers and digest algorithms. If " "some SSL certificates cannot be verified, they are reported as an \"unknown " "algorithm\" error." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1662 +#: ../Doc/whatsnew/3.2.rst:1664 msgid "" "The version of OpenSSL being used is now accessible using the module " "attributes :data:`ssl.OPENSSL_VERSION` (a string), :data:`ssl." @@ -1794,17 +1796,17 @@ msgid "" "(an integer)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1667 +#: ../Doc/whatsnew/3.2.rst:1669 msgid "" "(Contributed by Antoine Pitrou in :issue:`8850`, :issue:`1589`, :issue:" "`8322`, :issue:`5639`, :issue:`4870`, :issue:`8484`, and :issue:`8321`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1671 +#: ../Doc/whatsnew/3.2.rst:1673 msgid "nntp" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1673 +#: ../Doc/whatsnew/3.2.rst:1675 msgid "" "The :mod:`nntplib` module has a revamped implementation with better bytes " "and text semantics as well as more practical APIs. These improvements break " @@ -1812,14 +1814,14 @@ msgid "" "dysfunctional in itself." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1678 +#: ../Doc/whatsnew/3.2.rst:1680 msgid "" "Support for secure connections through both implicit (using :class:`nntplib." "NNTP_SSL`) and explicit (using :meth:`nntplib.NNTP.starttls`) TLS has also " "been added." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1682 +#: ../Doc/whatsnew/3.2.rst:1684 msgid "" "(Contributed by Antoine Pitrou in :issue:`9360` and Andrew Vant in :issue:" "`1926`.)" @@ -1827,11 +1829,11 @@ msgstr "" "(Contribution par Antoine Pitrou, :issue:`9360`, et Andrew Vant, :issue:" "`1926`)" -#: ../Doc/whatsnew/3.2.rst:1685 +#: ../Doc/whatsnew/3.2.rst:1687 msgid "certificates" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1687 +#: ../Doc/whatsnew/3.2.rst:1689 msgid "" ":class:`http.client.HTTPSConnection`, :class:`urllib.request.HTTPSHandler` " "and :func:`urllib.request.urlopen` now take optional arguments to allow for " @@ -1839,50 +1841,50 @@ msgid "" "recommended in public uses of HTTPS." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1692 +#: ../Doc/whatsnew/3.2.rst:1694 msgid "(Added by Antoine Pitrou, :issue:`9003`.)" msgstr "(Ajouté par Antoine Pitrou; :issue:`9003`.)" -#: ../Doc/whatsnew/3.2.rst:1695 +#: ../Doc/whatsnew/3.2.rst:1697 msgid "imaplib" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1697 +#: ../Doc/whatsnew/3.2.rst:1699 msgid "" "Support for explicit TLS on standard IMAP4 connections has been added " "through the new :mod:`imaplib.IMAP4.starttls` method." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1700 +#: ../Doc/whatsnew/3.2.rst:1702 msgid "(Contributed by Lorenzo M. Catucci and Antoine Pitrou, :issue:`4471`.)" msgstr "" "(Contribution par Lorenzo M. Catucci et Antoine Pitrou; :issue:`4471`.)" -#: ../Doc/whatsnew/3.2.rst:1703 +#: ../Doc/whatsnew/3.2.rst:1705 msgid "http.client" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1705 +#: ../Doc/whatsnew/3.2.rst:1707 msgid "" "There were a number of small API improvements in the :mod:`http.client` " "module. The old-style HTTP 0.9 simple responses are no longer supported and " "the *strict* parameter is deprecated in all classes." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1709 +#: ../Doc/whatsnew/3.2.rst:1711 msgid "" "The :class:`~http.client.HTTPConnection` and :class:`~http.client." "HTTPSConnection` classes now have a *source_address* parameter for a (host, " "port) tuple indicating where the HTTP connection is made from." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1714 +#: ../Doc/whatsnew/3.2.rst:1716 msgid "" "Support for certificate checking and HTTPS virtual hosts were added to :" "class:`~http.client.HTTPSConnection`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1717 +#: ../Doc/whatsnew/3.2.rst:1719 msgid "" "The :meth:`~http.client.HTTPConnection.request` method on connection objects " "allowed an optional *body* argument so that a :term:`file object` could be " @@ -1892,14 +1894,14 @@ msgid "" "flexible than before." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1724 +#: ../Doc/whatsnew/3.2.rst:1726 msgid "" "To establish an HTTPS connection through a proxy server, there is a new :" "meth:`~http.client.HTTPConnection.set_tunnel` method that sets the host and " "port for HTTP Connect tunneling." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1728 +#: ../Doc/whatsnew/3.2.rst:1730 msgid "" "To match the behavior of :mod:`http.server`, the HTTP client library now " "also encodes headers with ISO-8859-1 (Latin-1) encoding. It was already " @@ -1908,11 +1910,11 @@ msgid "" "`10980`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1734 +#: ../Doc/whatsnew/3.2.rst:1736 msgid "unittest" msgstr "unittest" -#: ../Doc/whatsnew/3.2.rst:1736 +#: ../Doc/whatsnew/3.2.rst:1738 msgid "" "The unittest module has a number of improvements supporting test discovery " "for packages, easier experimentation at the interactive prompt, new testcase " @@ -1920,7 +1922,7 @@ msgid "" "names." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1741 +#: ../Doc/whatsnew/3.2.rst:1743 msgid "" "The command-line call ``python -m unittest`` can now accept file paths " "instead of module names for running specific tests (:issue:`10620`). The " @@ -1930,29 +1932,29 @@ msgid "" "and a directory to start discovery with ``-s``:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1752 ../Doc/whatsnew/3.2.rst:1761 -#: ../Doc/whatsnew/3.2.rst:1917 +#: ../Doc/whatsnew/3.2.rst:1754 ../Doc/whatsnew/3.2.rst:1763 +#: ../Doc/whatsnew/3.2.rst:1919 msgid "(Contributed by Michael Foord.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1754 +#: ../Doc/whatsnew/3.2.rst:1756 msgid "" "Experimentation at the interactive prompt is now easier because the :class:" "`unittest.case.TestCase` class can now be instantiated without arguments:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1763 +#: ../Doc/whatsnew/3.2.rst:1765 msgid "" "The :mod:`unittest` module has two new methods, :meth:`~unittest.TestCase." "assertWarns` and :meth:`~unittest.TestCase.assertWarnsRegex` to verify that " "a given warning type is triggered by the code under test::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1771 +#: ../Doc/whatsnew/3.2.rst:1773 msgid "(Contributed by Antoine Pitrou, :issue:`9754`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`9754`.)" -#: ../Doc/whatsnew/3.2.rst:1773 +#: ../Doc/whatsnew/3.2.rst:1775 msgid "" "Another new method, :meth:`~unittest.TestCase.assertCountEqual` is used to " "compare two iterables to determine if their element counts are equal " @@ -1960,7 +1962,7 @@ msgid "" "regardless of order)::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1783 +#: ../Doc/whatsnew/3.2.rst:1785 msgid "" "A principal feature of the unittest module is an effort to produce " "meaningful diagnostics when a test fails. When possible, the failure is " @@ -1970,13 +1972,13 @@ msgid "" "that sets maximum length of diffs displayed." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1790 +#: ../Doc/whatsnew/3.2.rst:1792 msgid "" "In addition, the method names in the module have undergone a number of clean-" "ups." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1792 +#: ../Doc/whatsnew/3.2.rst:1794 msgid "" "For example, :meth:`~unittest.TestCase.assertRegex` is the new name for :" "meth:`~unittest.TestCase.assertRegexpMatches` which was misnamed because the " @@ -1987,76 +1989,76 @@ msgid "" "has unambiguous camel-casing." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1800 +#: ../Doc/whatsnew/3.2.rst:1802 msgid "(Contributed by Raymond Hettinger and implemented by Ezio Melotti.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1802 +#: ../Doc/whatsnew/3.2.rst:1804 msgid "" "To improve consistency, some long-standing method aliases are being " "deprecated in favor of the preferred names:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1806 +#: ../Doc/whatsnew/3.2.rst:1808 msgid "Old Name" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1806 +#: ../Doc/whatsnew/3.2.rst:1808 msgid "Preferred Name" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1808 +#: ../Doc/whatsnew/3.2.rst:1810 msgid ":meth:`assert_`" msgstr ":meth:`assert_`" -#: ../Doc/whatsnew/3.2.rst:1808 +#: ../Doc/whatsnew/3.2.rst:1810 msgid ":meth:`.assertTrue`" msgstr ":meth:`.assertTrue`" -#: ../Doc/whatsnew/3.2.rst:1809 +#: ../Doc/whatsnew/3.2.rst:1811 msgid ":meth:`assertEquals`" msgstr ":meth:`assertEquals`" -#: ../Doc/whatsnew/3.2.rst:1809 +#: ../Doc/whatsnew/3.2.rst:1811 msgid ":meth:`.assertEqual`" msgstr ":meth:`.assertEqual`" -#: ../Doc/whatsnew/3.2.rst:1810 +#: ../Doc/whatsnew/3.2.rst:1812 msgid ":meth:`assertNotEquals`" msgstr ":meth:`assertNotEquals`" -#: ../Doc/whatsnew/3.2.rst:1810 +#: ../Doc/whatsnew/3.2.rst:1812 msgid ":meth:`.assertNotEqual`" msgstr ":meth:`.assertNotEqual`" -#: ../Doc/whatsnew/3.2.rst:1811 +#: ../Doc/whatsnew/3.2.rst:1813 msgid ":meth:`assertAlmostEquals`" msgstr ":meth:`assertAlmostEquals`" -#: ../Doc/whatsnew/3.2.rst:1811 +#: ../Doc/whatsnew/3.2.rst:1813 msgid ":meth:`.assertAlmostEqual`" msgstr ":meth:`.assertAlmostEqual`" -#: ../Doc/whatsnew/3.2.rst:1812 +#: ../Doc/whatsnew/3.2.rst:1814 msgid ":meth:`assertNotAlmostEquals`" msgstr ":meth:`assertNotAlmostEquals`" -#: ../Doc/whatsnew/3.2.rst:1812 +#: ../Doc/whatsnew/3.2.rst:1814 msgid ":meth:`.assertNotAlmostEqual`" msgstr ":meth:`.assertNotAlmostEqual`" -#: ../Doc/whatsnew/3.2.rst:1815 +#: ../Doc/whatsnew/3.2.rst:1817 msgid "" "Likewise, the ``TestCase.fail*`` methods deprecated in Python 3.1 are " "expected to be removed in Python 3.3. Also see the :ref:`deprecated-" "aliases` section in the :mod:`unittest` documentation." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1819 +#: ../Doc/whatsnew/3.2.rst:1821 msgid "(Contributed by Ezio Melotti; :issue:`9424`.)" msgstr "(Contribution par Ezio Melotti; :issue:`9424`)" -#: ../Doc/whatsnew/3.2.rst:1821 +#: ../Doc/whatsnew/3.2.rst:1823 msgid "" "The :meth:`~unittest.TestCase.assertDictContainsSubset` method was " "deprecated because it was misimplemented with the arguments in the wrong " @@ -2064,11 +2066,11 @@ msgid "" "``TestCase().assertDictContainsSubset({'a':1, 'b':2}, {'a':1})`` would fail." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1829 +#: ../Doc/whatsnew/3.2.rst:1831 msgid "random" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1831 +#: ../Doc/whatsnew/3.2.rst:1833 msgid "" "The integer methods in the :mod:`random` module now do a better job of " "producing uniform distributions. Previously, they computed selections with " @@ -2080,15 +2082,15 @@ msgid "" "func:`~random.sample`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1840 +#: ../Doc/whatsnew/3.2.rst:1842 msgid "(Contributed by Raymond Hettinger; :issue:`9025`.)" msgstr "(Contribution par Raymond Hettinger; :issue:`9025`)" -#: ../Doc/whatsnew/3.2.rst:1843 +#: ../Doc/whatsnew/3.2.rst:1845 msgid "poplib" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1845 +#: ../Doc/whatsnew/3.2.rst:1847 msgid "" ":class:`~poplib.POP3_SSL` class now accepts a *context* parameter, which is " "a :class:`ssl.SSLContext` object allowing bundling SSL configuration " @@ -2096,15 +2098,15 @@ msgid "" "lived) structure." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1850 +#: ../Doc/whatsnew/3.2.rst:1852 msgid "(Contributed by Giampaolo Rodolà; :issue:`8807`.)" msgstr "(Contribution par Giampaolo Rodolà; :issue:`8807`)" -#: ../Doc/whatsnew/3.2.rst:1853 +#: ../Doc/whatsnew/3.2.rst:1855 msgid "asyncore" msgstr "asyncore" -#: ../Doc/whatsnew/3.2.rst:1855 +#: ../Doc/whatsnew/3.2.rst:1857 msgid "" ":class:`asyncore.dispatcher` now provides a :meth:`~asyncore.dispatcher." "handle_accepted()` method returning a `(sock, addr)` pair which is called " @@ -2114,41 +2116,41 @@ msgid "" "dispatcher.accept()` directly." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1862 +#: ../Doc/whatsnew/3.2.rst:1864 msgid "(Contributed by Giampaolo Rodolà; :issue:`6706`.)" msgstr "(Contribution par Giampaolo Rodolà; :issue:`6706`)" -#: ../Doc/whatsnew/3.2.rst:1865 +#: ../Doc/whatsnew/3.2.rst:1867 msgid "tempfile" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1867 +#: ../Doc/whatsnew/3.2.rst:1869 msgid "" "The :mod:`tempfile` module has a new context manager, :class:`~tempfile." "TemporaryDirectory` which provides easy deterministic cleanup of temporary " "directories::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1874 +#: ../Doc/whatsnew/3.2.rst:1876 msgid "(Contributed by Neil Schemenauer and Nick Coghlan; :issue:`5178`.)" msgstr "(Contribution par Neil Schemenauer et Nick Coghlan; :issue:`5178`.)" -#: ../Doc/whatsnew/3.2.rst:1877 +#: ../Doc/whatsnew/3.2.rst:1879 msgid "inspect" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1879 +#: ../Doc/whatsnew/3.2.rst:1881 msgid "" "The :mod:`inspect` module has a new function :func:`~inspect." "getgeneratorstate` to easily identify the current state of a generator-" "iterator::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1897 +#: ../Doc/whatsnew/3.2.rst:1899 msgid "(Contributed by Rodolpho Eckhardt and Nick Coghlan, :issue:`10220`.)" msgstr "(Contribution par Rodolpho Eckhardt et Nick Coghlan; :issue:`10220`.)" -#: ../Doc/whatsnew/3.2.rst:1899 +#: ../Doc/whatsnew/3.2.rst:1901 msgid "" "To support lookups without the possibility of activating a dynamic " "attribute, the :mod:`inspect` module has a new function, :func:`~inspect." @@ -2156,26 +2158,26 @@ msgid "" "guaranteed not to change state while it is searching::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1920 +#: ../Doc/whatsnew/3.2.rst:1922 msgid "pydoc" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1922 +#: ../Doc/whatsnew/3.2.rst:1924 msgid "" "The :mod:`pydoc` module now provides a much-improved Web server interface, " "as well as a new command-line option ``-b`` to automatically open a browser " "window to display that server:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1930 +#: ../Doc/whatsnew/3.2.rst:1932 msgid "(Contributed by Ron Adam; :issue:`2001`.)" msgstr "(Contribution par Ron Adam; :issue:`2001`.)" -#: ../Doc/whatsnew/3.2.rst:1933 +#: ../Doc/whatsnew/3.2.rst:1935 msgid "dis" msgstr "dis" -#: ../Doc/whatsnew/3.2.rst:1935 +#: ../Doc/whatsnew/3.2.rst:1937 msgid "" "The :mod:`dis` module gained two new functions for inspecting code, :func:" "`~dis.code_info` and :func:`~dis.show_code`. Both provide detailed code " @@ -2183,197 +2185,197 @@ msgid "" "code object. The former returns a string and the latter prints it::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1962 +#: ../Doc/whatsnew/3.2.rst:1964 msgid "" "In addition, the :func:`~dis.dis` function now accepts string arguments so " "that the common idiom ``dis(compile(s, '', 'eval'))`` can be shortened to " "``dis(s)``::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1984 +#: ../Doc/whatsnew/3.2.rst:1986 msgid "" "Taken together, these improvements make it easier to explore how CPython is " "implemented and to see for yourself what the language syntax does under-the-" "hood." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1988 +#: ../Doc/whatsnew/3.2.rst:1990 msgid "(Contributed by Nick Coghlan in :issue:`9147`.)" msgstr "(Contribution par Nick Coghlan; :issue:`9147`.)" -#: ../Doc/whatsnew/3.2.rst:1991 +#: ../Doc/whatsnew/3.2.rst:1993 msgid "dbm" msgstr "dbm" -#: ../Doc/whatsnew/3.2.rst:1993 +#: ../Doc/whatsnew/3.2.rst:1995 msgid "" "All database modules now support the :meth:`get` and :meth:`setdefault` " "methods." msgstr "" -#: ../Doc/whatsnew/3.2.rst:1995 +#: ../Doc/whatsnew/3.2.rst:1997 msgid "(Suggested by Ray Allen in :issue:`9523`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:1998 +#: ../Doc/whatsnew/3.2.rst:2000 msgid "ctypes" msgstr "ctypes" -#: ../Doc/whatsnew/3.2.rst:2000 +#: ../Doc/whatsnew/3.2.rst:2002 msgid "" "A new type, :class:`ctypes.c_ssize_t` represents the C :c:type:`ssize_t` " "datatype." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2003 +#: ../Doc/whatsnew/3.2.rst:2005 msgid "site" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2005 +#: ../Doc/whatsnew/3.2.rst:2007 msgid "" "The :mod:`site` module has three new functions useful for reporting on the " "details of a given Python installation." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2008 +#: ../Doc/whatsnew/3.2.rst:2010 msgid "" ":func:`~site.getsitepackages` lists all global site-packages directories." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2010 +#: ../Doc/whatsnew/3.2.rst:2012 msgid "" ":func:`~site.getuserbase` reports on the user's base directory where data " "can be stored." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2013 +#: ../Doc/whatsnew/3.2.rst:2015 msgid "" ":func:`~site.getusersitepackages` reveals the user-specific site-packages " "directory path." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2028 +#: ../Doc/whatsnew/3.2.rst:2030 msgid "" "Conveniently, some of site's functionality is accessible directly from the " "command-line:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2038 +#: ../Doc/whatsnew/3.2.rst:2040 msgid "(Contributed by Tarek Ziadé in :issue:`6693`.)" msgstr "(Contribution par Tarek Ziadé; :issue:`6693`.)" -#: ../Doc/whatsnew/3.2.rst:2041 +#: ../Doc/whatsnew/3.2.rst:2043 msgid "sysconfig" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2043 +#: ../Doc/whatsnew/3.2.rst:2045 msgid "" "The new :mod:`sysconfig` module makes it straightforward to discover " "installation paths and configuration variables that vary across platforms " "and installations." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2047 +#: ../Doc/whatsnew/3.2.rst:2049 msgid "" "The module offers access simple access functions for platform and version " "information:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2050 +#: ../Doc/whatsnew/3.2.rst:2052 msgid "" ":func:`~sysconfig.get_platform` returning values like *linux-i586* or " "*macosx-10.6-ppc*." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2052 +#: ../Doc/whatsnew/3.2.rst:2054 msgid "" ":func:`~sysconfig.get_python_version` returns a Python version string such " "as \"3.2\"." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2055 +#: ../Doc/whatsnew/3.2.rst:2057 msgid "" "It also provides access to the paths and variables corresponding to one of " "seven named schemes used by :mod:`distutils`. Those include *posix_prefix*, " "*posix_home*, *posix_user*, *nt*, *nt_user*, *os2*, *os2_home*:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2059 +#: ../Doc/whatsnew/3.2.rst:2061 msgid "" ":func:`~sysconfig.get_paths` makes a dictionary containing installation " "paths for the current installation scheme." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2061 +#: ../Doc/whatsnew/3.2.rst:2063 msgid "" ":func:`~sysconfig.get_config_vars` returns a dictionary of platform specific " "variables." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2064 +#: ../Doc/whatsnew/3.2.rst:2066 msgid "There is also a convenient command-line interface:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2103 +#: ../Doc/whatsnew/3.2.rst:2105 msgid "(Moved out of Distutils by Tarek Ziadé.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2106 +#: ../Doc/whatsnew/3.2.rst:2108 msgid "pdb" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2108 +#: ../Doc/whatsnew/3.2.rst:2110 msgid "" "The :mod:`pdb` debugger module gained a number of usability improvements:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2110 +#: ../Doc/whatsnew/3.2.rst:2112 msgid "" ":file:`pdb.py` now has a ``-c`` option that executes commands as given in a :" "file:`.pdbrc` script file." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2112 +#: ../Doc/whatsnew/3.2.rst:2114 msgid "" "A :file:`.pdbrc` script file can contain ``continue`` and ``next`` commands " "that continue debugging." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2114 +#: ../Doc/whatsnew/3.2.rst:2116 msgid "The :class:`Pdb` class constructor now accepts a *nosigint* argument." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2115 +#: ../Doc/whatsnew/3.2.rst:2117 msgid "" "New commands: ``l(list)``, ``ll(long list)`` and ``source`` for listing " "source code." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2117 +#: ../Doc/whatsnew/3.2.rst:2119 msgid "" "New commands: ``display`` and ``undisplay`` for showing or hiding the value " "of an expression if it has changed." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2119 +#: ../Doc/whatsnew/3.2.rst:2121 msgid "" "New command: ``interact`` for starting an interactive interpreter containing " "the global and local names found in the current scope." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2121 +#: ../Doc/whatsnew/3.2.rst:2123 msgid "Breakpoints can be cleared by breakpoint number." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2123 +#: ../Doc/whatsnew/3.2.rst:2125 msgid "(Contributed by Georg Brandl, Antonio Cuni and Ilya Sandler.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2126 +#: ../Doc/whatsnew/3.2.rst:2128 msgid "configparser" msgstr "configparser" -#: ../Doc/whatsnew/3.2.rst:2128 +#: ../Doc/whatsnew/3.2.rst:2130 msgid "" "The :mod:`configparser` module was modified to improve usability and " "predictability of the default parser and its supported INI syntax. The old :" @@ -2383,63 +2385,63 @@ msgid "" "option duplicates are not allowed in a single configuration source." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2135 +#: ../Doc/whatsnew/3.2.rst:2137 msgid "Config parsers gained a new API based on the mapping protocol::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2163 +#: ../Doc/whatsnew/3.2.rst:2165 msgid "" "The new API is implemented on top of the classical API, so custom parser " "subclasses should be able to use it without modifications." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2166 +#: ../Doc/whatsnew/3.2.rst:2168 msgid "" "The INI file structure accepted by config parsers can now be customized. " "Users can specify alternative option/value delimiters and comment prefixes, " "change the name of the *DEFAULT* section or switch the interpolation syntax." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2170 +#: ../Doc/whatsnew/3.2.rst:2172 msgid "" "There is support for pluggable interpolation including an additional " "interpolation handler :class:`~configparser.ExtendedInterpolation`::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2203 +#: ../Doc/whatsnew/3.2.rst:2205 msgid "" "A number of smaller features were also introduced, like support for " "specifying encoding in read operations, specifying fallback values for get-" "functions, or reading directly from dictionaries and strings." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2207 +#: ../Doc/whatsnew/3.2.rst:2209 msgid "(All changes contributed by Łukasz Langa.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2212 +#: ../Doc/whatsnew/3.2.rst:2214 msgid "urllib.parse" msgstr "urllib.parse" -#: ../Doc/whatsnew/3.2.rst:2214 +#: ../Doc/whatsnew/3.2.rst:2216 msgid "" "A number of usability improvements were made for the :mod:`urllib.parse` " "module." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2216 +#: ../Doc/whatsnew/3.2.rst:2218 msgid "" "The :func:`~urllib.parse.urlparse` function now supports `IPv6 `_ addresses as described in :rfc:`2732`:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2228 +#: ../Doc/whatsnew/3.2.rst:2230 msgid "" "The :func:`~urllib.parse.urldefrag` function now returns a :term:`named " "tuple`::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2238 +#: ../Doc/whatsnew/3.2.rst:2240 msgid "" "And, the :func:`~urllib.parse.urlencode` function is now much more flexible, " "accepting either a string or bytes type for the *query* argument. If it is " @@ -2447,7 +2449,7 @@ msgid "" "func:`~urllib.parse.quote_plus` for encoding::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2249 +#: ../Doc/whatsnew/3.2.rst:2251 msgid "" "As detailed in :ref:`parsing-ascii-encoded-bytes`, all the :mod:`urllib." "parse` functions now accept ASCII-encoded byte strings as input, so long as " @@ -2456,17 +2458,17 @@ msgid "" "strings:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2258 +#: ../Doc/whatsnew/3.2.rst:2260 msgid "" "(Work by Nick Coghlan, Dan Mahn, and Senthil Kumaran in :issue:`2987`, :" "issue:`5468`, and :issue:`9873`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2262 +#: ../Doc/whatsnew/3.2.rst:2264 msgid "mailbox" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2264 +#: ../Doc/whatsnew/3.2.rst:2266 msgid "" "Thanks to a concerted effort by R. David Murray, the :mod:`mailbox` module " "has been fixed for Python 3.2. The challenge was that mailbox had been " @@ -2475,27 +2477,27 @@ msgid "" "different encodings." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2269 +#: ../Doc/whatsnew/3.2.rst:2271 msgid "" "The solution harnessed the :mod:`email` package's binary support for parsing " "arbitrary email messages. In addition, the solution required a number of " "API changes." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2273 +#: ../Doc/whatsnew/3.2.rst:2275 msgid "" "As expected, the :meth:`~mailbox.Mailbox.add` method for :class:`mailbox." "Mailbox` objects now accepts binary input." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2276 +#: ../Doc/whatsnew/3.2.rst:2278 msgid "" ":class:`~io.StringIO` and text file input are deprecated. Also, string " "input will fail early if non-ASCII characters are used. Previously it would " "fail when the email was processed in a later step." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2280 +#: ../Doc/whatsnew/3.2.rst:2282 msgid "" "There is also support for binary output. The :meth:`~mailbox.Mailbox." "get_file` method now returns a file in the binary mode (where it used to " @@ -2504,7 +2506,7 @@ msgid "" "message corresponding to a given *key*." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2286 +#: ../Doc/whatsnew/3.2.rst:2288 msgid "" "It is still possible to get non-binary output using the old API's :meth:" "`~mailbox.Mailbox.get_string` method, but that approach is not very useful. " @@ -2512,17 +2514,17 @@ msgid "" "object or to load them from binary input." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2291 +#: ../Doc/whatsnew/3.2.rst:2293 msgid "" "(Contributed by R. David Murray, with efforts from Steffen Daode Nurpmeso " "and an initial patch by Victor Stinner in :issue:`9124`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2295 +#: ../Doc/whatsnew/3.2.rst:2297 msgid "turtledemo" msgstr "turtledemo" -#: ../Doc/whatsnew/3.2.rst:2297 +#: ../Doc/whatsnew/3.2.rst:2299 msgid "" "The demonstration code for the :mod:`turtle` module was moved from the " "*Demo* directory to main library. It includes over a dozen sample scripts " @@ -2530,16 +2532,16 @@ msgid "" "from the command-line:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2306 +#: ../Doc/whatsnew/3.2.rst:2308 msgid "" "(Moved from the Demo directory by Alexander Belopolsky in :issue:`10199`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2309 +#: ../Doc/whatsnew/3.2.rst:2311 msgid "Multi-threading" msgstr "Fils d'exécution" -#: ../Doc/whatsnew/3.2.rst:2311 +#: ../Doc/whatsnew/3.2.rst:2313 msgid "" "The mechanism for serializing execution of concurrently running Python " "threads (generally known as the :term:`GIL` or :term:`Global Interpreter " @@ -2551,7 +2553,7 @@ msgid "" "setswitchinterval()`. It currently defaults to 5 milliseconds." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2320 +#: ../Doc/whatsnew/3.2.rst:2322 msgid "" "Additional details about the implementation can be read from a `python-dev " "mailing-list message `_ used in :" "meth:`list.sort` and :func:`sorted` now runs faster and uses less memory " @@ -2640,35 +2642,35 @@ msgid "" "saves time lost to delegating comparisons." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2375 +#: ../Doc/whatsnew/3.2.rst:2377 msgid "(Patch by Daniel Stutzbach in :issue:`9915`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2377 +#: ../Doc/whatsnew/3.2.rst:2379 msgid "" "JSON decoding performance is improved and memory consumption is reduced " "whenever the same string is repeated for multiple keys. Also, JSON encoding " "now uses the C speedups when the ``sort_keys`` argument is true." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2381 +#: ../Doc/whatsnew/3.2.rst:2383 msgid "" "(Contributed by Antoine Pitrou in :issue:`7451` and by Raymond Hettinger and " "Antoine Pitrou in :issue:`10314`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2384 +#: ../Doc/whatsnew/3.2.rst:2386 msgid "" "Recursive locks (created with the :func:`threading.RLock` API) now benefit " "from a C implementation which makes them as fast as regular locks, and " "between 10x and 15x faster than their previous pure Python implementation." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2388 +#: ../Doc/whatsnew/3.2.rst:2390 msgid "(Contributed by Antoine Pitrou; :issue:`3001`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`3001`.)" -#: ../Doc/whatsnew/3.2.rst:2390 +#: ../Doc/whatsnew/3.2.rst:2392 msgid "" "The fast-search algorithm in stringlib is now used by the :meth:`split`, :" "meth:`rsplit`, :meth:`splitlines` and :meth:`replace` methods on :class:" @@ -2677,21 +2679,21 @@ msgid "" "meth:`rpartition`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2396 +#: ../Doc/whatsnew/3.2.rst:2398 msgid "(Patch by Florent Xicluna in :issue:`7622` and :issue:`7462`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2399 +#: ../Doc/whatsnew/3.2.rst:2401 msgid "" "Integer to string conversions now work two \"digits\" at a time, reducing " "the number of division and modulo operations." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2402 +#: ../Doc/whatsnew/3.2.rst:2404 msgid "(:issue:`6713` by Gawain Bolton, Mark Dickinson, and Victor Stinner.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2404 +#: ../Doc/whatsnew/3.2.rst:2406 msgid "" "There were several other minor optimizations. Set differencing now runs " "faster when one operand is much larger than the other (patch by Andress " @@ -2703,11 +2705,11 @@ msgid "" "line arguments a bit faster (:issue:`7113` by Łukasz Langa)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2415 +#: ../Doc/whatsnew/3.2.rst:2417 msgid "Unicode" msgstr "Unicode" -#: ../Doc/whatsnew/3.2.rst:2417 +#: ../Doc/whatsnew/3.2.rst:2419 msgid "" "Python has been updated to `Unicode 6.0.0 `_. The update to the standard adds over 2,000 new characters " @@ -2715,7 +2717,7 @@ msgid "" "important for mobile phones." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2422 +#: ../Doc/whatsnew/3.2.rst:2424 msgid "" "In addition, the updated standard has altered the character properties for " "two Kannada characters (U+0CF1, U+0CF2) and one New Tai Lue numeric " @@ -2725,15 +2727,15 @@ msgid "" "#Database_Changes>`_." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2430 +#: ../Doc/whatsnew/3.2.rst:2432 msgid "Codecs" -msgstr "" +msgstr "Codecs" -#: ../Doc/whatsnew/3.2.rst:2432 +#: ../Doc/whatsnew/3.2.rst:2434 msgid "Support was added for *cp720* Arabic DOS encoding (:issue:`1616979`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2434 +#: ../Doc/whatsnew/3.2.rst:2436 msgid "" "MBCS encoding no longer ignores the error handler argument. In the default " "strict mode, it raises an :exc:`UnicodeDecodeError` when it encounters an " @@ -2741,40 +2743,40 @@ msgid "" "unencodable character." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2439 +#: ../Doc/whatsnew/3.2.rst:2441 msgid "" "The MBCS codec supports ``'strict'`` and ``'ignore'`` error handlers for " "decoding, and ``'strict'`` and ``'replace'`` for encoding." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2442 +#: ../Doc/whatsnew/3.2.rst:2444 msgid "" "To emulate Python3.1 MBCS encoding, select the ``'ignore'`` handler for " "decoding and the ``'replace'`` handler for encoding." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2445 +#: ../Doc/whatsnew/3.2.rst:2447 msgid "" "On Mac OS X, Python decodes command line arguments with ``'utf-8'`` rather " "than the locale encoding." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2448 +#: ../Doc/whatsnew/3.2.rst:2450 msgid "" "By default, :mod:`tarfile` uses ``'utf-8'`` encoding on Windows (instead of " "``'mbcs'``) and the ``'surrogateescape'`` error handler on all operating " "systems." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2454 +#: ../Doc/whatsnew/3.2.rst:2456 msgid "Documentation" msgstr "Documentation" -#: ../Doc/whatsnew/3.2.rst:2456 +#: ../Doc/whatsnew/3.2.rst:2458 msgid "The documentation continues to be improved." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2458 +#: ../Doc/whatsnew/3.2.rst:2460 msgid "" "A table of quick links has been added to the top of lengthy sections such " "as :ref:`built-in-funcs`. In the case of :mod:`itertools`, the links are " @@ -2782,7 +2784,7 @@ msgid "" "and memory jog without having to read all of the docs." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2463 +#: ../Doc/whatsnew/3.2.rst:2465 msgid "" "In some cases, the pure Python source code can be a helpful adjunct to the " "documentation, so now many modules now feature quick links to the latest " @@ -2790,80 +2792,80 @@ msgid "" "documentation has a quick link at the top labeled:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2468 +#: ../Doc/whatsnew/3.2.rst:2470 msgid "**Source code** :source:`Lib/functools.py`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2470 +#: ../Doc/whatsnew/3.2.rst:2472 msgid "" "(Contributed by Raymond Hettinger; see `rationale `_.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2473 +#: ../Doc/whatsnew/3.2.rst:2475 msgid "" "The docs now contain more examples and recipes. In particular, :mod:`re` " "module has an extensive section, :ref:`re-examples`. Likewise, the :mod:" "`itertools` module continues to be updated with new :ref:`itertools-recipes`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2478 +#: ../Doc/whatsnew/3.2.rst:2480 msgid "" "The :mod:`datetime` module now has an auxiliary implementation in pure " "Python. No functionality was changed. This just provides an easier-to-read " "alternate implementation." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2482 +#: ../Doc/whatsnew/3.2.rst:2484 msgid "(Contributed by Alexander Belopolsky in :issue:`9528`.)" msgstr "(Contribution par Alexander Belopolsky; :issue:`9528`.)" -#: ../Doc/whatsnew/3.2.rst:2484 +#: ../Doc/whatsnew/3.2.rst:2486 msgid "" "The unmaintained :file:`Demo` directory has been removed. Some demos were " "integrated into the documentation, some were moved to the :file:`Tools/demo` " "directory, and others were removed altogether." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2488 +#: ../Doc/whatsnew/3.2.rst:2490 msgid "(Contributed by Georg Brandl in :issue:`7962`.)" msgstr "(Contribution par Georg Brandl; :issue:`7962`.)" -#: ../Doc/whatsnew/3.2.rst:2492 +#: ../Doc/whatsnew/3.2.rst:2494 msgid "IDLE" msgstr "IDLE" -#: ../Doc/whatsnew/3.2.rst:2494 +#: ../Doc/whatsnew/3.2.rst:2496 msgid "" "The format menu now has an option to clean source files by stripping " "trailing whitespace." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2497 +#: ../Doc/whatsnew/3.2.rst:2499 msgid "(Contributed by Raymond Hettinger; :issue:`5150`.)" msgstr "(Contribution par Raymond Hettinger; :issue:`5150`.)" -#: ../Doc/whatsnew/3.2.rst:2499 +#: ../Doc/whatsnew/3.2.rst:2501 msgid "IDLE on Mac OS X now works with both Carbon AquaTk and Cocoa AquaTk." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2501 +#: ../Doc/whatsnew/3.2.rst:2503 msgid "" "(Contributed by Kevin Walzer, Ned Deily, and Ronald Oussoren; :issue:`6075`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2504 +#: ../Doc/whatsnew/3.2.rst:2506 msgid "Code Repository" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2506 +#: ../Doc/whatsnew/3.2.rst:2508 msgid "" "In addition to the existing Subversion code repository at http://svn.python." "org there is now a `Mercurial `_ repository " "at https://hg.python.org/\\ ." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2510 +#: ../Doc/whatsnew/3.2.rst:2512 msgid "" "After the 3.2 release, there are plans to switch to Mercurial as the primary " "repository. This distributed version control system should make it easier " @@ -2871,28 +2873,28 @@ msgid "" "pep:`385` for details." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2515 +#: ../Doc/whatsnew/3.2.rst:2517 msgid "" -"To learn to use the new version control system, see the `tutorial by Joel " -"Spolsky `_ or the `Guide to Mercurial Workflows `_." +"To learn to use the new version control system, see the `Quick Start " +"`_ or the `Guide to Mercurial " +"Workflows `_." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2521 +#: ../Doc/whatsnew/3.2.rst:2523 msgid "Build and C API Changes" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2523 +#: ../Doc/whatsnew/3.2.rst:2525 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2525 +#: ../Doc/whatsnew/3.2.rst:2527 msgid "" "The *idle*, *pydoc* and *2to3* scripts are now installed with a version-" "specific suffix on ``make altinstall`` (:issue:`10679`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2528 +#: ../Doc/whatsnew/3.2.rst:2530 msgid "" "The C functions that access the Unicode Database now accept and return " "characters from the full Unicode range, even on narrow unicode builds " @@ -2902,33 +2904,33 @@ msgid "" "characters as printable." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2535 +#: ../Doc/whatsnew/3.2.rst:2537 msgid "" "(Reported by Bupjoe Lee and fixed by Amaury Forgeot D'Arc; :issue:`5127`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2537 +#: ../Doc/whatsnew/3.2.rst:2539 msgid "" "Computed gotos are now enabled by default on supported compilers (which are " "detected by the configure script). They can still be disabled selectively " "by specifying ``--without-computed-gotos``." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2541 +#: ../Doc/whatsnew/3.2.rst:2543 msgid "(Contributed by Antoine Pitrou; :issue:`9203`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`9203`.)" -#: ../Doc/whatsnew/3.2.rst:2543 +#: ../Doc/whatsnew/3.2.rst:2545 msgid "" "The option ``--with-wctype-functions`` was removed. The built-in unicode " "database is now used for all functions." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2546 +#: ../Doc/whatsnew/3.2.rst:2548 msgid "(Contributed by Amaury Forgeot D'Arc; :issue:`9210`.)" msgstr "(Contribution par Amaury Forgeot D'Arc; :issue:`9210`.)" -#: ../Doc/whatsnew/3.2.rst:2548 +#: ../Doc/whatsnew/3.2.rst:2550 msgid "" "Hash values are now values of a new type, :c:type:`Py_hash_t`, which is " "defined to be the same size as a pointer. Previously they were of type " @@ -2938,34 +2940,34 @@ msgid "" "grow to that size but their performance degraded catastrophically)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2555 +#: ../Doc/whatsnew/3.2.rst:2557 msgid "" "(Suggested by Raymond Hettinger and implemented by Benjamin Peterson; :issue:" "`9778`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2558 +#: ../Doc/whatsnew/3.2.rst:2560 msgid "" "A new macro :c:macro:`Py_VA_COPY` copies the state of the variable argument " "list. It is equivalent to C99 *va_copy* but available on all Python " "platforms (:issue:`2443`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2562 +#: ../Doc/whatsnew/3.2.rst:2564 msgid "" "A new C API function :c:func:`PySys_SetArgvEx` allows an embedded " "interpreter to set :attr:`sys.argv` without also modifying :attr:`sys.path` " "(:issue:`5753`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2566 +#: ../Doc/whatsnew/3.2.rst:2568 msgid "" ":c:macro:`PyEval_CallObject` is now only available in macro form. The " "function declaration, which was kept for backwards compatibility reasons, is " "now removed -- the macro was introduced in 1997 (:issue:`8276`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2570 +#: ../Doc/whatsnew/3.2.rst:2572 msgid "" "There is a new function :c:func:`PyLong_AsLongLongAndOverflow` which is " "analogous to :c:func:`PyLong_AsLongAndOverflow`. They both serve to convert " @@ -2973,13 +2975,13 @@ msgid "" "of cases where the conversion won't fit (:issue:`7767`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2575 +#: ../Doc/whatsnew/3.2.rst:2577 msgid "" "The :c:func:`PyUnicode_CompareWithASCIIString` function now returns *not " "equal* if the Python string is *NUL* terminated." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2578 +#: ../Doc/whatsnew/3.2.rst:2580 msgid "" "There is a new function :c:func:`PyErr_NewExceptionWithDoc` that is like :c:" "func:`PyErr_NewException` but allows a docstring to be specified. This lets " @@ -2987,7 +2989,7 @@ msgid "" "Python counterparts (:issue:`7033`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2583 +#: ../Doc/whatsnew/3.2.rst:2585 msgid "" "When compiled with the ``--with-valgrind`` option, the pymalloc allocator " "will be automatically disabled when running under Valgrind. This gives " @@ -2995,19 +2997,19 @@ msgid "" "advantage of pymalloc at other times (:issue:`2422`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2588 +#: ../Doc/whatsnew/3.2.rst:2590 msgid "" "Removed the ``O?`` format from the *PyArg_Parse* functions. The format is " "no longer used and it had never been documented (:issue:`8837`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2591 +#: ../Doc/whatsnew/3.2.rst:2593 msgid "" "There were a number of other small changes to the C-API. See the :source:" "`Misc/NEWS` file for a complete list." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2594 +#: ../Doc/whatsnew/3.2.rst:2596 msgid "" "Also, there were a number of updates to the Mac OS X build, see :source:`Mac/" "BuildScript/README.txt` for details. For users running a 32/64-bit build, " @@ -3017,17 +3019,17 @@ msgid "" "\\. See https://www.python.org/download/mac/tcltk/ for additional details." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2602 +#: ../Doc/whatsnew/3.2.rst:2604 msgid "Porting to Python 3.2" msgstr "Portage vers Python 3.2" -#: ../Doc/whatsnew/3.2.rst:2604 +#: ../Doc/whatsnew/3.2.rst:2606 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2607 +#: ../Doc/whatsnew/3.2.rst:2609 msgid "" "The :mod:`configparser` module has a number of clean-ups. The major change " "is to replace the old :class:`ConfigParser` class with long-standing " @@ -3035,7 +3037,7 @@ msgid "" "number of smaller incompatibilities:" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2612 +#: ../Doc/whatsnew/3.2.rst:2614 msgid "" "The interpolation syntax is now validated on :meth:`~configparser." "ConfigParser.get` and :meth:`~configparser.ConfigParser.set` operations. In " @@ -3043,14 +3045,14 @@ msgid "" "valid: ``%(name)s`` and ``%%``, the latter being an escaped percent sign." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2618 +#: ../Doc/whatsnew/3.2.rst:2620 msgid "" "The :meth:`~configparser.ConfigParser.set` and :meth:`~configparser." "ConfigParser.add_section` methods now verify that values are actual " "strings. Formerly, unsupported types could be introduced unintentionally." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2623 +#: ../Doc/whatsnew/3.2.rst:2625 msgid "" "Duplicate sections or options from a single source now raise either :exc:" "`~configparser.DuplicateSectionError` or :exc:`~configparser." @@ -3058,32 +3060,32 @@ msgid "" "previous entry." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2628 +#: ../Doc/whatsnew/3.2.rst:2630 msgid "" "Inline comments are now disabled by default so now the **;** character can " "be safely used in values." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2631 +#: ../Doc/whatsnew/3.2.rst:2633 msgid "" "Comments now can be indented. Consequently, for **;** or **#** to appear at " "the start of a line in multiline values, it has to be interpolated. This " "keeps comment prefix characters in values from being mistaken as comments." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2635 +#: ../Doc/whatsnew/3.2.rst:2637 msgid "" "``\"\"`` is now a valid value and is no longer automatically converted to an " "empty string. For empty strings, use ``\"option =\"`` in a line." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2638 +#: ../Doc/whatsnew/3.2.rst:2640 msgid "" "The :mod:`nntplib` module was reworked extensively, meaning that its APIs " "are often incompatible with the 3.1 APIs." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2641 +#: ../Doc/whatsnew/3.2.rst:2643 msgid "" ":class:`bytearray` objects can no longer be used as filenames; instead, they " "should be converted to :class:`bytes`." @@ -3091,27 +3093,27 @@ msgstr "" "Les objets :class:`bytearray` ne peuvent plus être utilisés en tant que nom " "de fichiers : ils doivent être convertis en :class:`bytes` à la place." -#: ../Doc/whatsnew/3.2.rst:2644 +#: ../Doc/whatsnew/3.2.rst:2646 msgid "" "The :meth:`array.tostring` and :meth:`array.fromstring` have been renamed " "to :meth:`array.tobytes` and :meth:`array.frombytes` for clarity. The old " "names have been deprecated. (See :issue:`8990`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2648 +#: ../Doc/whatsnew/3.2.rst:2650 msgid "``PyArg_Parse*()`` functions:" msgstr "Les fonctions ``PyArg_Parse*()`` :" -#: ../Doc/whatsnew/3.2.rst:2650 +#: ../Doc/whatsnew/3.2.rst:2652 msgid "\"t#\" format has been removed: use \"s#\" or \"s*\" instead" msgstr "Le format \"t#\" a été supprimé : utiliser \"s#\" ou \"s*\" à la place" -#: ../Doc/whatsnew/3.2.rst:2651 +#: ../Doc/whatsnew/3.2.rst:2653 msgid "\"w\" and \"w#\" formats has been removed: use \"w*\" instead" msgstr "" "Les formats \"w\" et \"w#\" ont été supprimés : utiliser \"w*\" à la place" -#: ../Doc/whatsnew/3.2.rst:2653 +#: ../Doc/whatsnew/3.2.rst:2655 msgid "" "The :c:type:`PyCObject` type, deprecated in 3.1, has been removed. To wrap " "opaque C pointers in Python objects, the :c:type:`PyCapsule` API should be " @@ -3119,13 +3121,13 @@ msgid "" "safety information and a less complicated signature for calling a destructor." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2658 +#: ../Doc/whatsnew/3.2.rst:2660 msgid "" "The :func:`sys.setfilesystemencoding` function was removed because it had a " "flawed design." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2661 +#: ../Doc/whatsnew/3.2.rst:2663 msgid "" "The :func:`random.seed` function and method now salt string seeds with an " "sha512 hash function. To access the previous version of *seed* in order to " @@ -3133,7 +3135,7 @@ msgid "" "seed(s, version=1)``." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2666 +#: ../Doc/whatsnew/3.2.rst:2668 msgid "" "The previously deprecated :func:`string.maketrans` function has been removed " "in favor of the static methods :meth:`bytes.maketrans` and :meth:`bytearray." @@ -3143,11 +3145,11 @@ msgid "" "methods with intermediate translation tables of the appropriate type." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2674 +#: ../Doc/whatsnew/3.2.rst:2676 msgid "(Contributed by Georg Brandl; :issue:`5675`.)" msgstr "(Contribution par Georg Brandl; :issue:`5675`.)" -#: ../Doc/whatsnew/3.2.rst:2676 +#: ../Doc/whatsnew/3.2.rst:2678 msgid "" "The previously deprecated :func:`contextlib.nested` function has been " "removed in favor of a plain :keyword:`with` statement which can accept " @@ -3156,13 +3158,13 @@ msgid "" "when one of them raises an exception::" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2687 +#: ../Doc/whatsnew/3.2.rst:2689 msgid "" "(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " "`_.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2690 +#: ../Doc/whatsnew/3.2.rst:2692 msgid "" ":func:`struct.pack` now only allows bytes for the ``s`` string pack code. " "Formerly, it would accept text arguments and implicitly encode them to bytes " @@ -3171,32 +3173,32 @@ msgid "" "writing to fixed length segment of a structure." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2696 +#: ../Doc/whatsnew/3.2.rst:2698 msgid "" "Code such as ``struct.pack('<6sHHBBB', 'GIF87a', x, y)`` should be rewritten " "with to use bytes instead of text, ``struct.pack('<6sHHBBB', b'GIF87a', x, " "y)``." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2699 +#: ../Doc/whatsnew/3.2.rst:2701 msgid "" "(Discovered by David Beazley and fixed by Victor Stinner; :issue:`10783`.)" msgstr "" -#: ../Doc/whatsnew/3.2.rst:2701 +#: ../Doc/whatsnew/3.2.rst:2703 msgid "" "The :class:`xml.etree.ElementTree` class now raises an :exc:`xml.etree." "ElementTree.ParseError` when a parse fails. Previously it raised an :exc:" "`xml.parsers.expat.ExpatError`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2705 +#: ../Doc/whatsnew/3.2.rst:2707 msgid "" "The new, longer :func:`str` value on floats may break doctests which rely on " "the old output format." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2708 +#: ../Doc/whatsnew/3.2.rst:2710 msgid "" "In :class:`subprocess.Popen`, the default value for *close_fds* is now " "``True`` under Unix; under Windows, it is ``True`` if the three standard " @@ -3205,28 +3207,28 @@ msgid "" "race conditions when open file descriptors would leak into the child process." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2715 +#: ../Doc/whatsnew/3.2.rst:2717 msgid "" "Support for legacy HTTP 0.9 has been removed from :mod:`urllib.request` and :" "mod:`http.client`. Such support is still present on the server side (in :" "mod:`http.server`)." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2719 +#: ../Doc/whatsnew/3.2.rst:2721 msgid "(Contributed by Antoine Pitrou, :issue:`10711`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`10711`.)" -#: ../Doc/whatsnew/3.2.rst:2721 +#: ../Doc/whatsnew/3.2.rst:2723 msgid "" "SSL sockets in timeout mode now raise :exc:`socket.timeout` when a timeout " "occurs, rather than a generic :exc:`~ssl.SSLError`." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2724 +#: ../Doc/whatsnew/3.2.rst:2726 msgid "(Contributed by Antoine Pitrou, :issue:`10272`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`10272`.)" -#: ../Doc/whatsnew/3.2.rst:2726 +#: ../Doc/whatsnew/3.2.rst:2728 msgid "" "The misleading functions :c:func:`PyEval_AcquireLock()` and :c:func:" "`PyEval_ReleaseLock()` have been officially deprecated. The thread-state " @@ -3234,18 +3236,18 @@ msgid "" "`PyEval_RestoreThread()`) should be used instead." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2731 +#: ../Doc/whatsnew/3.2.rst:2733 msgid "" "Due to security risks, :func:`asyncore.handle_accept` has been deprecated, " "and a new function, :func:`asyncore.handle_accepted`, was added to replace " "it." msgstr "" -#: ../Doc/whatsnew/3.2.rst:2734 +#: ../Doc/whatsnew/3.2.rst:2736 msgid "(Contributed by Giampaolo Rodola in :issue:`6706`.)" msgstr "(Contribution par Giampaolo Rodola; :issue:`6706`.)" -#: ../Doc/whatsnew/3.2.rst:2736 +#: ../Doc/whatsnew/3.2.rst:2738 msgid "" "Due to the new :term:`GIL` implementation, :c:func:`PyEval_InitThreads()` " "cannot be called before :c:func:`Py_Initialize()` anymore." diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index b3a837652..713f2f41d 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2018-07-31 23:09+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -31,7 +31,7 @@ msgstr "" #: ../Doc/whatsnew/3.3.rst:55 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Résumé – Points forts de la publication" #: ../Doc/whatsnew/3.3.rst:60 msgid "New syntax features:" @@ -215,7 +215,7 @@ msgstr "" #: ../Doc/whatsnew/3.3.rst:161 ../Doc/whatsnew/3.3.rst:1122 msgid "Features" -msgstr "" +msgstr "Caractéristiques" #: ../Doc/whatsnew/3.3.rst:163 msgid "" @@ -449,7 +449,7 @@ msgid "" "application. Running ``py`` follows the same version selection rules as " "implicitly launching scripts, but a more specific version can be selected by " "passing appropriate arguments (such as ``-3`` to request Python 3 when " -"Python 2 is also installed, or ``-2.6`` to specifclly request an earlier " +"Python 2 is also installed, or ``-2.6`` to specifically request an earlier " "Python version when a more recent version is installed)." msgstr "" @@ -3649,7 +3649,7 @@ msgid "" "finder, you will need to remove keys paired with values of ``None`` **and** :" "class:`imp.NullImporter` to be backwards-compatible. This will lead to extra " "overhead on older versions of Python that re-insert ``None`` into :attr:`sys." -"path_importer_cache` where it repesents the use of implicit finders, but " +"path_importer_cache` where it represents the use of implicit finders, but " "semantically it should not change anything." msgstr "" diff --git a/whatsnew/3.4.po b/whatsnew/3.4.po index c7cf5d902..34ecbb58a 100644 --- a/whatsnew/3.4.po +++ b/whatsnew/3.4.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-02 00:10+0200\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" "Language-Team: FRENCH \n" @@ -697,7 +697,7 @@ msgstr "" #: ../Doc/whatsnew/3.4.rst:526 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/whatsnew/3.4.rst:528 msgid "" @@ -1827,8 +1827,8 @@ msgstr "" #: ../Doc/whatsnew/3.4.rst:1354 msgid "" ":class:`~shelve.Shelf` instances may now be used in :keyword:`with` " -"statements, and will be automatically closed at the end of the :keyword:" -"`with` block. (Contributed by Filip Gruszczyński in :issue:`13896`.)" +"statements, and will be automatically closed at the end of the :keyword:`!" +"with` block. (Contributed by Filip Gruszczyński in :issue:`13896`.)" msgstr "" #: ../Doc/whatsnew/3.4.rst:1360 diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index f16e0cfec..9801125ab 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-17 10:39+0200\n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2017-08-10 00:52+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -40,7 +40,7 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:58 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Résumé – Points forts de la publication" #: ../Doc/whatsnew/3.5.rst:60 msgid "New syntax features:" @@ -280,7 +280,6 @@ msgid "" msgstr "" #: ../Doc/whatsnew/3.5.rst:253 -#, fuzzy msgid "" "Starting with CPython 3.5.2, ``__aiter__`` can directly return :term:" "`asynchronous iterators `. Returning an :term:" @@ -388,7 +387,7 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:373 ../Doc/whatsnew/3.5.rst:1848 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" #: ../Doc/whatsnew/3.5.rst:381 msgid "" @@ -552,7 +551,7 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:496 msgid "and::" -msgstr "et  : ::" +msgstr "et  ::" #: ../Doc/whatsnew/3.5.rst:505 msgid "" @@ -663,7 +662,8 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:595 msgid "" "Without a ``__future__`` import, a :exc:`PendingDeprecationWarning` will be " -"raised whenever a ``StopIteration`` exception is raised inside a generator." +"raised whenever a :exc:`StopIteration` exception is raised inside a " +"generator." msgstr "" #: ../Doc/whatsnew/3.5.rst:601 @@ -896,9 +896,9 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:780 msgid "" -"New debugging APIs: :meth:`loop.set_debug() ` and :meth:`loop.get_debug() ` " -"methods. (Contributed by Victor Stinner.)" +"New debugging APIs: :meth:`loop.set_debug() ` and :" +"meth:`loop.get_debug() ` methods. (Contributed by " +"Victor Stinner.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:784 @@ -909,18 +909,17 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:787 msgid "" -"A new :meth:`loop.is_closed() ` method to " -"check if the event loop is closed. (Contributed by Victor Stinner in :issue:" -"`21326`.)" +"A new :meth:`loop.is_closed() ` method to check if " +"the event loop is closed. (Contributed by Victor Stinner in :issue:`21326`.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:791 msgid "" -"A new :meth:`loop.create_task() ` to " -"conveniently create and schedule a new :class:`~asyncio.Task` for a " -"coroutine. The ``create_task`` method is also used by all asyncio functions " -"that wrap coroutines into tasks, such as :func:`asyncio.wait`, :func:" -"`asyncio.gather`, etc. (Contributed by Victor Stinner.)" +"A new :meth:`loop.create_task() ` to conveniently " +"create and schedule a new :class:`~asyncio.Task` for a coroutine. The " +"``create_task`` method is also used by all asyncio functions that wrap " +"coroutines into tasks, such as :func:`asyncio.wait`, :func:`asyncio.gather`, " +"etc. (Contributed by Victor Stinner.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:798 @@ -938,11 +937,10 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:807 msgid "" -"New :meth:`loop.set_task_factory() ` and :meth:`loop.get_task_factory() ` methods to customize the task factory " -"that :meth:`loop.create_task() ` method " -"uses. (Contributed by Yury Selivanov.)" +"New :meth:`loop.set_task_factory() ` and :" +"meth:`loop.get_task_factory() ` methods to " +"customize the task factory that :meth:`loop.create_task() ` method uses. (Contributed by Yury Selivanov.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:814 @@ -964,9 +962,9 @@ msgstr "Nouveautés dans la 3.5.1 :" #: ../Doc/whatsnew/3.5.rst:824 msgid "" "The :func:`~asyncio.ensure_future` function and all functions that use it, " -"such as :meth:`loop.run_until_complete() `, now accept all kinds of :term:`awaitable objects " -"`. (Contributed by Yury Selivanov.)" +"such as :meth:`loop.run_until_complete() `, " +"now accept all kinds of :term:`awaitable objects `. (Contributed " +"by Yury Selivanov.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:829 @@ -984,8 +982,8 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:837 msgid "" -"The :meth:`loop.create_server() ` " -"method can now accept a list of hosts. (Contributed by Yann Sionneau.)" +"The :meth:`loop.create_server() ` method can now " +"accept a list of hosts. (Contributed by Yann Sionneau.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:841 @@ -994,16 +992,16 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:843 msgid "" -"New :meth:`loop.create_future() ` " -"method to create Future objects. This allows alternative event loop " -"implementations, such as `uvloop `_, " -"to provide a faster :class:`asyncio.Future` implementation. (Contributed by " -"Yury Selivanov.)" +"New :meth:`loop.create_future() ` method to " +"create Future objects. This allows alternative event loop implementations, " +"such as `uvloop `_, to provide a " +"faster :class:`asyncio.Future` implementation. (Contributed by Yury " +"Selivanov.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:850 msgid "" -"New :meth:`loop.get_exception_handler() ` method to get the current exception handler. " "(Contributed by Yury Selivanov.)" msgstr "" @@ -1017,18 +1015,17 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:859 msgid "" -"The :meth:`loop.create_connection() ` and :meth:`loop.create_server() ` methods are optimized to avoid calling the system " -"``getaddrinfo`` function if the address is already resolved. (Contributed by " -"A. Jesse Jiryu Davis.)" +"The :meth:`loop.create_connection() ` and :" +"meth:`loop.create_server() ` methods are " +"optimized to avoid calling the system ``getaddrinfo`` function if the " +"address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:865 msgid "" -"The :meth:`loop.sock_connect(sock, address) ` no longer requires the *address* to be resolved prior to the " -"call. (Contributed by A. Jesse Jiryu Davis.)" +"The :meth:`loop.sock_connect(sock, address) ` no " +"longer requires the *address* to be resolved prior to the call. (Contributed " +"by A. Jesse Jiryu Davis.)" msgstr "" #: ../Doc/whatsnew/3.5.rst:871 @@ -1837,7 +1834,7 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:1522 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/whatsnew/3.5.rst:1524 msgid "" @@ -3207,9 +3204,10 @@ msgid "" "the ``opt-`` tag. Because of this, the *debug_override* parameter of the " "function is now deprecated. `.pyo` files are also no longer supported as a " "file argument to the Python interpreter and thus serve no purpose when " -"distributed on their own (i.e. sourcless code distribution). Due to the fact " -"that the magic number for bytecode has changed in Python 3.5, all old `.pyo` " -"files from previous versions of Python are invalid regardless of this PEP." +"distributed on their own (i.e. sourceless code distribution). Due to the " +"fact that the magic number for bytecode has changed in Python 3.5, all old `." +"pyo` files from previous versions of Python are invalid regardless of this " +"PEP." msgstr "" #: ../Doc/whatsnew/3.5.rst:2479 @@ -3353,7 +3351,3 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:2569 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "" - -#, fuzzy -#~ msgid "PEP 488 -- Elimination of PYO files" -#~ msgstr "PEP 488 : Élimination des fichiers PYO" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index f3bf4d5e1..4c1a0be9c 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2017-05-27 14:24+0200\n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-10-13 17:48+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -40,7 +40,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:58 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Résumé – Points forts de la publication" #: ../Doc/whatsnew/3.6.rst:60 msgid "New syntax features:" @@ -171,7 +171,7 @@ msgid "" "such as account authentication, tokens, and similar." msgstr "" -#: ../Doc/whatsnew/3.6.rst:136 ../Doc/whatsnew/3.6.rst:1274 +#: ../Doc/whatsnew/3.6.rst:136 ../Doc/whatsnew/3.6.rst:1283 msgid "" "On Linux, :func:`os.urandom` now blocks until the system urandom entropy " "pool is initialized to increase the security. See the :pep:`524` for the " @@ -763,14 +763,12 @@ msgid "Checking if the GIL is held is also a new feature of Python 3.6." msgstr "" #: ../Doc/whatsnew/3.6.rst:658 -#, fuzzy msgid "" "See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python " "memory allocators." msgstr "" "Reportez-vous à la fonction :c:func:`PyMem_SetupDebugHooks` pour ce qui " -"concerne les fonctions automatiques de débogage de l'allocateur mémoire de " -"Python." +"concerne les fonctions de débogage de l'allocateur mémoire de Python." #: ../Doc/whatsnew/3.6.rst:661 msgid "" @@ -852,8 +850,8 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:742 msgid "" "A ``global`` or ``nonlocal`` statement must now textually appear before the " -"first use of the affected name in the same scope. Previously this was a " -"``SyntaxWarning``." +"first use of the affected name in the same scope. Previously this was a :exc:" +"`SyntaxWarning`." msgstr "" #: ../Doc/whatsnew/3.6.rst:746 @@ -976,9 +974,9 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:826 msgid "" "The :func:`~asyncio.ensure_future` function and all functions that use it, " -"such as :meth:`loop.run_until_complete() `, now accept all kinds of :term:`awaitable objects " -"`. (Contributed by Yury Selivanov.)" +"such as :meth:`loop.run_until_complete() `, " +"now accept all kinds of :term:`awaitable objects `. (Contributed " +"by Yury Selivanov.)" msgstr "" #: ../Doc/whatsnew/3.6.rst:831 @@ -996,22 +994,22 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:839 msgid "" -"The :meth:`loop.create_server() ` " -"method can now accept a list of hosts. (Contributed by Yann Sionneau.)" +"The :meth:`loop.create_server() ` method can now " +"accept a list of hosts. (Contributed by Yann Sionneau.)" msgstr "" #: ../Doc/whatsnew/3.6.rst:843 msgid "" -"New :meth:`loop.create_future() ` " -"method to create Future objects. This allows alternative event loop " -"implementations, such as `uvloop `_, " -"to provide a faster :class:`asyncio.Future` implementation. (Contributed by " -"Yury Selivanov in :issue:`27041`.)" +"New :meth:`loop.create_future() ` method to " +"create Future objects. This allows alternative event loop implementations, " +"such as `uvloop `_, to provide a " +"faster :class:`asyncio.Future` implementation. (Contributed by Yury " +"Selivanov in :issue:`27041`.)" msgstr "" #: ../Doc/whatsnew/3.6.rst:850 msgid "" -"New :meth:`loop.get_exception_handler() ` method to get the current exception handler. " "(Contributed by Yury Selivanov in :issue:`27040`.)" msgstr "" @@ -1032,15 +1030,15 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:863 msgid "" -"The :meth:`loop.getaddrinfo() ` method is " +"The :meth:`loop.getaddrinfo() ` method is " "optimized to avoid calling the system ``getaddrinfo`` function if the " "address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" msgstr "" #: ../Doc/whatsnew/3.6.rst:868 msgid "" -"The :meth:`loop.stop() ` method has been changed " -"to stop the loop immediately after the current iteration. Any new callbacks " +"The :meth:`loop.stop() ` method has been changed to stop " +"the loop immediately after the current iteration. Any new callbacks " "scheduled as a result of the last iteration will be discarded. (Contributed " "by Guido van Rossum in :issue:`25593`.)" msgstr "" @@ -1054,7 +1052,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:879 msgid "" -"New :meth:`loop.connect_accepted_socket() ` method to be used by servers that accept " "connections outside of asyncio, but that use asyncio to handle them. " "(Contributed by Jim Fulton in :issue:`27392`.)" @@ -1068,9 +1066,9 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:887 msgid "" -"New :meth:`loop.shutdown_asyncgens() ` to properly close pending asynchronous generators " -"before closing the loop. (Contributed by Yury Selivanov in :issue:`28003`.)" +"New :meth:`loop.shutdown_asyncgens() ` to " +"properly close pending asynchronous generators before closing the loop. " +"(Contributed by Yury Selivanov in :issue:`28003`.)" msgstr "" #: ../Doc/whatsnew/3.6.rst:892 @@ -1143,7 +1141,7 @@ msgid "" "Hettinger in :issue:`17941`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:940 ../Doc/whatsnew/3.6.rst:2269 +#: ../Doc/whatsnew/3.6.rst:940 ../Doc/whatsnew/3.6.rst:2278 msgid "" "The *verbose* and *rename* arguments for :func:`~collections.namedtuple` are " "now keyword-only. (Contributed by Raymond Hettinger in :issue:`25628`.)" @@ -1234,7 +1232,7 @@ msgstr "" msgid "(Contributed by Stefan Krah amd Mark Dickinson in :issue:`25928`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1012 ../Doc/whatsnew/3.6.rst:1977 +#: ../Doc/whatsnew/3.6.rst:1012 ../Doc/whatsnew/3.6.rst:1986 msgid "distutils" msgstr "distutils" @@ -1478,7 +1476,7 @@ msgid "" "maxlines. Clicking on a context line jumps the editor to that line. " "Context colors for custom themes is added to Highlights tab of Settings " "dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" -"`33642`, :issue:`33768`, and :issue:`33679`)" +"`33642`, :issue:`33768`, and :issue:`33679`.)" msgstr "" #: ../Doc/whatsnew/3.6.rst:1182 @@ -1487,14 +1485,28 @@ msgid "" "8.1+ or 10, with DPI compatibility properties of the Python binary " "unchanged, and a monitor resolution greater than 96 DPI, this should make " "text and lines sharper. It should otherwise have no effect. (Contributed by " -"Terry Jan Reedy in :issue:`33656`)." +"Terry Jan Reedy in :issue:`33656`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1188 +msgid "New in 3.6.7:" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1190 ../Doc/whatsnew/3.6.rst:1994 +#: ../Doc/whatsnew/3.6.rst:1190 +msgid "" +"Output over N lines (50 by default) is squeezed down to a button. N can be " +"changed in the PyShell section of the General page of the Settings dialog. " +"Fewer, but possibly extra long, lines can be squeezed by right clicking on " +"the output. Squeezed output can be expanded in place by double-clicking the " +"button or into the clipboard or a separate window by right-clicking the " +"button. (Contributed by Tal Einat in :issue:`1529353`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1199 ../Doc/whatsnew/3.6.rst:2003 msgid "importlib" msgstr "importlib" -#: ../Doc/whatsnew/3.6.rst:1192 +#: ../Doc/whatsnew/3.6.rst:1201 msgid "" "Import now raises the new exception :exc:`ModuleNotFoundError` (subclass of :" "exc:`ImportError`) when it cannot find a module. Code that current checks " @@ -1502,7 +1514,7 @@ msgid "" "Snow in :issue:`15767`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1197 +#: ../Doc/whatsnew/3.6.rst:1206 msgid "" ":class:`importlib.util.LazyLoader` now calls :meth:`~importlib.abc.Loader." "create_module` on the wrapped loader, removing the restriction that :class:" @@ -1511,18 +1523,18 @@ msgid "" "LazyLoader`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1203 +#: ../Doc/whatsnew/3.6.rst:1212 msgid "" ":func:`importlib.util.cache_from_source`, :func:`importlib.util." "source_from_cache`, and :func:`importlib.util.spec_from_file_location` now " "accept a :term:`path-like object`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1210 +#: ../Doc/whatsnew/3.6.rst:1219 msgid "inspect" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1212 +#: ../Doc/whatsnew/3.6.rst:1221 msgid "" "The :func:`inspect.signature() ` function now reports the " "implicit ``.0`` parameters generated by the compiler for comprehension and " @@ -1530,7 +1542,7 @@ msgid "" "called ``implicit0``. (Contributed by Jelle Zijlstra in :issue:`19611`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1217 +#: ../Doc/whatsnew/3.6.rst:1226 msgid "" "To reduce code churn when upgrading from Python 2.7 and the legacy :func:" "`inspect.getargspec` API, the previously documented deprecation of :func:" @@ -1540,22 +1552,22 @@ msgid "" "(Contributed by Nick Coghlan in :issue:`27172`)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1226 +#: ../Doc/whatsnew/3.6.rst:1235 msgid "json" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1228 +#: ../Doc/whatsnew/3.6.rst:1237 msgid "" ":func:`json.load` and :func:`json.loads` now support binary input. Encoded " "JSON should be represented using either UTF-8, UTF-16, or UTF-32. " "(Contributed by Serhiy Storchaka in :issue:`17909`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1234 +#: ../Doc/whatsnew/3.6.rst:1243 msgid "logging" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1236 +#: ../Doc/whatsnew/3.6.rst:1245 msgid "" "The new :meth:`WatchedFileHandler.reopenIfNeeded() ` method has been added to add the ability " @@ -1563,44 +1575,44 @@ msgid "" "in :issue:`24884`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1243 +#: ../Doc/whatsnew/3.6.rst:1252 msgid "math" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1245 +#: ../Doc/whatsnew/3.6.rst:1254 msgid "" "The tau (*τ*) constant has been added to the :mod:`math` and :mod:`cmath` " "modules. (Contributed by Lisa Roach in :issue:`12345`, see :pep:`628` for " "details.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1251 +#: ../Doc/whatsnew/3.6.rst:1260 msgid "multiprocessing" msgstr "multiprocessing" -#: ../Doc/whatsnew/3.6.rst:1253 +#: ../Doc/whatsnew/3.6.rst:1262 msgid "" ":ref:`Proxy Objects ` returned by :func:" "`multiprocessing.Manager` can now be nested. (Contributed by Davin Potts in :" "issue:`6766`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1259 ../Doc/whatsnew/3.6.rst:2008 +#: ../Doc/whatsnew/3.6.rst:1268 ../Doc/whatsnew/3.6.rst:2017 msgid "os" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1261 +#: ../Doc/whatsnew/3.6.rst:1270 msgid "" "See the summary of :ref:`PEP 519 ` for details on how " "the :mod:`os` and :mod:`os.path` modules now support :term:`path-like " "objects `." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1265 +#: ../Doc/whatsnew/3.6.rst:1274 msgid ":func:`~os.scandir` now supports :class:`bytes` paths on Windows." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1267 +#: ../Doc/whatsnew/3.6.rst:1276 msgid "" "A new :meth:`~os.scandir.close` method allows explicitly closing a :func:" "`~os.scandir` iterator. The :func:`~os.scandir` iterator now supports the :" @@ -1609,42 +1621,42 @@ msgid "" "its destructor. (Contributed by Serhiy Storchaka in :issue:`25994`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1277 +#: ../Doc/whatsnew/3.6.rst:1286 msgid "" "The Linux ``getrandom()`` syscall (get random bytes) is now exposed as the " "new :func:`os.getrandom` function. (Contributed by Victor Stinner, part of " "the :pep:`524`)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1283 +#: ../Doc/whatsnew/3.6.rst:1292 msgid "pathlib" -msgstr "" +msgstr "pathlib" -#: ../Doc/whatsnew/3.6.rst:1285 +#: ../Doc/whatsnew/3.6.rst:1294 msgid "" ":mod:`pathlib` now supports :term:`path-like objects `. " "(Contributed by Brett Cannon in :issue:`27186`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1288 +#: ../Doc/whatsnew/3.6.rst:1297 msgid "See the summary of :ref:`PEP 519 ` for details." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1292 +#: ../Doc/whatsnew/3.6.rst:1301 msgid "pdb" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1294 +#: ../Doc/whatsnew/3.6.rst:1303 msgid "" "The :class:`~pdb.Pdb` class constructor has a new optional *readrc* argument " "to control whether ``.pdbrc`` files should be read." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1299 +#: ../Doc/whatsnew/3.6.rst:1308 msgid "pickle" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1301 +#: ../Doc/whatsnew/3.6.rst:1310 msgid "" "Objects that need ``__new__`` called with keyword arguments can now be " "pickled using :ref:`pickle protocols ` older than protocol " @@ -1652,49 +1664,49 @@ msgid "" "Serhiy Storchaka in :issue:`24164`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1308 +#: ../Doc/whatsnew/3.6.rst:1317 msgid "pickletools" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1310 +#: ../Doc/whatsnew/3.6.rst:1319 msgid "" ":func:`pickletools.dis()` now outputs the implicit memo index for the " "``MEMOIZE`` opcode. (Contributed by Serhiy Storchaka in :issue:`25382`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1316 +#: ../Doc/whatsnew/3.6.rst:1325 msgid "pydoc" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1318 +#: ../Doc/whatsnew/3.6.rst:1327 msgid "" "The :mod:`pydoc` module has learned to respect the ``MANPAGER`` environment " "variable. (Contributed by Matthias Klose in :issue:`8637`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1322 +#: ../Doc/whatsnew/3.6.rst:1331 msgid "" ":func:`help` and :mod:`pydoc` can now list named tuple fields in the order " "they were defined rather than alphabetically. (Contributed by Raymond " "Hettinger in :issue:`24879`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1328 +#: ../Doc/whatsnew/3.6.rst:1337 msgid "random" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1330 +#: ../Doc/whatsnew/3.6.rst:1339 msgid "" "The new :func:`~random.choices` function returns a list of elements of " "specified size from the given population with optional weights. (Contributed " "by Raymond Hettinger in :issue:`18844`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1336 ../Doc/whatsnew/3.6.rst:2016 +#: ../Doc/whatsnew/3.6.rst:1345 ../Doc/whatsnew/3.6.rst:2025 msgid "re" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1338 +#: ../Doc/whatsnew/3.6.rst:1347 msgid "" "Added support of modifier spans in regular expressions. Examples: ``'(?i:" "p)ython'`` matches ``'python'`` and ``'Python'``, but not ``'PYTHON'``; ``'(?" @@ -1702,36 +1714,36 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`433028`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1343 +#: ../Doc/whatsnew/3.6.rst:1352 msgid "" "Match object groups can be accessed by ``__getitem__``, which is equivalent " "to ``group()``. So ``mo['name']`` is now equivalent to ``mo." "group('name')``. (Contributed by Eric Smith in :issue:`24454`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1347 +#: ../Doc/whatsnew/3.6.rst:1356 msgid "" ":class:`~re.Match` objects now support :meth:`index-like objects ` as group indices. (Contributed by Jeroen Demeyer and Xiang Zhang " "in :issue:`27177`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1354 +#: ../Doc/whatsnew/3.6.rst:1363 msgid "readline" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1356 +#: ../Doc/whatsnew/3.6.rst:1365 msgid "" "Added :func:`~readline.set_auto_history` to enable or disable automatic " "addition of input to the history list. (Contributed by Tyler Crompton in :" "issue:`26870`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1362 +#: ../Doc/whatsnew/3.6.rst:1371 msgid "rlcompleter" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1364 +#: ../Doc/whatsnew/3.6.rst:1373 msgid "" "Private and special attribute names now are omitted unless the prefix starts " "with underscores. A space or a colon is added after some completed " @@ -1739,11 +1751,11 @@ msgid "" "`25209`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1370 +#: ../Doc/whatsnew/3.6.rst:1379 msgid "shlex" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1372 +#: ../Doc/whatsnew/3.6.rst:1381 msgid "" "The :class:`~shlex.shlex` has much :ref:`improved shell compatibility " "` through the new *punctuation_chars* argument " @@ -1751,53 +1763,53 @@ msgid "" "Vinay Sajip in :issue:`1521950`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1380 +#: ../Doc/whatsnew/3.6.rst:1389 msgid "site" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1382 +#: ../Doc/whatsnew/3.6.rst:1391 msgid "" "When specifying paths to add to :attr:`sys.path` in a `.pth` file, you may " "now specify file paths on top of directories (e.g. zip files). (Contributed " "by Wolfgang Langner in :issue:`26587`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1388 +#: ../Doc/whatsnew/3.6.rst:1397 msgid "sqlite3" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1390 +#: ../Doc/whatsnew/3.6.rst:1399 msgid "" ":attr:`sqlite3.Cursor.lastrowid` now supports the ``REPLACE`` statement. " "(Contributed by Alex LordThorsen in :issue:`16864`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1395 +#: ../Doc/whatsnew/3.6.rst:1404 msgid "socket" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1397 +#: ../Doc/whatsnew/3.6.rst:1406 msgid "" "The :func:`~socket.socket.ioctl` function now supports the :data:`~socket." "SIO_LOOPBACK_FAST_PATH` control code. (Contributed by Daniel Stokes in :" "issue:`26536`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1401 +#: ../Doc/whatsnew/3.6.rst:1410 msgid "" "The :meth:`~socket.socket.getsockopt` constants ``SO_DOMAIN``, " "``SO_PROTOCOL``, ``SO_PEERSEC``, and ``SO_PASSSEC`` are now supported. " "(Contributed by Christian Heimes in :issue:`26907`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1405 +#: ../Doc/whatsnew/3.6.rst:1414 msgid "" "The :meth:`~socket.socket.setsockopt` now supports the ``setsockopt(level, " "optname, None, optlen: int)`` form. (Contributed by Christian Heimes in :" "issue:`27744`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1409 +#: ../Doc/whatsnew/3.6.rst:1418 msgid "" "The socket module now supports the address family :data:`~socket.AF_ALG` to " "interface with Linux Kernel crypto API. ``ALG_*``, ``SOL_ALG`` and :meth:" @@ -1805,17 +1817,17 @@ msgid "" "in :issue:`27744` with support from Victor Stinner.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1415 +#: ../Doc/whatsnew/3.6.rst:1424 msgid "" "New Linux constants ``TCP_USER_TIMEOUT`` and ``TCP_CONGESTION`` were added. " "(Contributed by Omar Sandoval, issue:`26273`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1420 +#: ../Doc/whatsnew/3.6.rst:1429 msgid "socketserver" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1422 +#: ../Doc/whatsnew/3.6.rst:1431 msgid "" "Servers based on the :mod:`socketserver` module, including those defined in :" "mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " @@ -1823,7 +1835,7 @@ msgid "" "Palivoda in :issue:`26404`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1428 +#: ../Doc/whatsnew/3.6.rst:1437 msgid "" "The :attr:`~socketserver.StreamRequestHandler.wfile` attribute of :class:" "`~socketserver.StreamRequestHandler` classes now implements the :class:`io." @@ -1832,30 +1844,30 @@ msgid "" "(Contributed by Martin Panter in :issue:`26721`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1436 ../Doc/whatsnew/3.6.rst:2024 +#: ../Doc/whatsnew/3.6.rst:1445 ../Doc/whatsnew/3.6.rst:2033 msgid "ssl" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1438 +#: ../Doc/whatsnew/3.6.rst:1447 msgid "" ":mod:`ssl` supports OpenSSL 1.1.0. The minimum recommend version is 1.0.2. " "(Contributed by Christian Heimes in :issue:`26470`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1441 +#: ../Doc/whatsnew/3.6.rst:1450 msgid "" "3DES has been removed from the default cipher suites and ChaCha20 Poly1305 " "cipher suites have been added. (Contributed by Christian Heimes in :issue:" "`27850` and :issue:`27766`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1445 +#: ../Doc/whatsnew/3.6.rst:1454 msgid "" ":class:`~ssl.SSLContext` has better default configuration for options and " "ciphers. (Contributed by Christian Heimes in :issue:`28043`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1449 +#: ../Doc/whatsnew/3.6.rst:1458 msgid "" "SSL session can be copied from one client-side connection to another with " "the new :class:`~ssl.SSLSession` class. TLS session resumption can speed up " @@ -1863,50 +1875,50 @@ msgid "" "by Christian Heimes in :issue:`19500` based on a draft by Alex Warhawk.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1455 +#: ../Doc/whatsnew/3.6.rst:1464 msgid "" "The new :meth:`~ssl.SSLContext.get_ciphers` method can be used to get a list " "of enabled ciphers in order of cipher priority." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1458 +#: ../Doc/whatsnew/3.6.rst:1467 msgid "" "All constants and flags have been converted to :class:`~enum.IntEnum` and :" "class:`~enum.IntFlags`. (Contributed by Christian Heimes in :issue:`28025`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1462 +#: ../Doc/whatsnew/3.6.rst:1471 msgid "" "Server and client-side specific TLS protocols for :class:`~ssl.SSLContext` " "were added. (Contributed by Christian Heimes in :issue:`28085`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1468 +#: ../Doc/whatsnew/3.6.rst:1477 msgid "statistics" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1470 +#: ../Doc/whatsnew/3.6.rst:1479 msgid "" "A new :func:`~statistics.harmonic_mean` function has been added. " "(Contributed by Steven D'Aprano in :issue:`27181`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1475 +#: ../Doc/whatsnew/3.6.rst:1484 msgid "struct" msgstr "struct" -#: ../Doc/whatsnew/3.6.rst:1477 +#: ../Doc/whatsnew/3.6.rst:1486 msgid "" ":mod:`struct` now supports IEEE 754 half-precision floats via the ``'e'`` " "format specifier. (Contributed by Eli Stevens, Mark Dickinson in :issue:" "`11734`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1483 +#: ../Doc/whatsnew/3.6.rst:1492 msgid "subprocess" msgstr "subprocess" -#: ../Doc/whatsnew/3.6.rst:1485 +#: ../Doc/whatsnew/3.6.rst:1494 msgid "" ":class:`subprocess.Popen` destructor now emits a :exc:`ResourceWarning` " "warning if the child process is still running. Use the context manager " @@ -1915,7 +1927,7 @@ msgid "" "(Contributed by Victor Stinner in :issue:`26741`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1491 +#: ../Doc/whatsnew/3.6.rst:1500 msgid "" "The :class:`subprocess.Popen` constructor and all functions that pass " "arguments through to it now accept *encoding* and *errors* arguments. " @@ -1923,18 +1935,18 @@ msgid "" "and *stderr* streams. (Contributed by Steve Dower in :issue:`6135`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1498 +#: ../Doc/whatsnew/3.6.rst:1507 msgid "sys" msgstr "sys" -#: ../Doc/whatsnew/3.6.rst:1500 +#: ../Doc/whatsnew/3.6.rst:1509 msgid "" "The new :func:`~sys.getfilesystemencodeerrors` function returns the name of " "the error mode used to convert between Unicode filenames and bytes " "filenames. (Contributed by Steve Dower in :issue:`27781`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1504 +#: ../Doc/whatsnew/3.6.rst:1513 msgid "" "On Windows the return value of the :func:`~sys.getwindowsversion` function " "now includes the *platform_version* field which contains the accurate major " @@ -1943,31 +1955,31 @@ msgid "" "by Steve Dower in :issue:`27932`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1512 +#: ../Doc/whatsnew/3.6.rst:1521 msgid "telnetlib" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1514 +#: ../Doc/whatsnew/3.6.rst:1523 msgid "" ":class:`~telnetlib.Telnet` is now a context manager (contributed by Stéphane " "Wirtel in :issue:`25485`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1519 +#: ../Doc/whatsnew/3.6.rst:1528 msgid "time" msgstr "time" -#: ../Doc/whatsnew/3.6.rst:1521 +#: ../Doc/whatsnew/3.6.rst:1530 msgid "" "The :class:`~time.struct_time` attributes :attr:`tm_gmtoff` and :attr:" "`tm_zone` are now available on all platforms." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1526 +#: ../Doc/whatsnew/3.6.rst:1535 msgid "timeit" msgstr "timeit" -#: ../Doc/whatsnew/3.6.rst:1528 +#: ../Doc/whatsnew/3.6.rst:1537 msgid "" "The new :meth:`Timer.autorange() ` convenience " "method has been added to call :meth:`Timer.timeit() ` " @@ -1975,17 +1987,17 @@ msgid "" "milliseconds. (Contributed by Steven D'Aprano in :issue:`6422`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1533 +#: ../Doc/whatsnew/3.6.rst:1542 msgid "" ":mod:`timeit` now warns when there is substantial (4x) variance between best " "and worst times. (Contributed by Serhiy Storchaka in :issue:`23552`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1539 ../Doc/whatsnew/3.6.rst:2041 +#: ../Doc/whatsnew/3.6.rst:1548 ../Doc/whatsnew/3.6.rst:2050 msgid "tkinter" msgstr "tkinter" -#: ../Doc/whatsnew/3.6.rst:1541 +#: ../Doc/whatsnew/3.6.rst:1550 msgid "" "Added methods :meth:`~tkinter.Variable.trace_add`, :meth:`~tkinter.Variable." "trace_remove` and :meth:`~tkinter.Variable.trace_info` in the :class:" @@ -1996,52 +2008,52 @@ msgid "" "Serhiy Storchaka in :issue:`22115`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1554 +#: ../Doc/whatsnew/3.6.rst:1563 msgid "traceback" msgstr "traceback" -#: ../Doc/whatsnew/3.6.rst:1556 +#: ../Doc/whatsnew/3.6.rst:1565 msgid "" "Both the traceback module and the interpreter's builtin exception display " "now abbreviate long sequences of repeated lines in tracebacks as shown in " "the following example::" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1571 +#: ../Doc/whatsnew/3.6.rst:1580 msgid "(Contributed by Emanuel Barry in :issue:`26823`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1575 +#: ../Doc/whatsnew/3.6.rst:1584 msgid "tracemalloc" msgstr "tracemalloc" -#: ../Doc/whatsnew/3.6.rst:1577 +#: ../Doc/whatsnew/3.6.rst:1586 msgid "" "The :mod:`tracemalloc` module now supports tracing memory allocations in " "multiple different address spaces." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1580 +#: ../Doc/whatsnew/3.6.rst:1589 msgid "" "The new :class:`~tracemalloc.DomainFilter` filter class has been added to " "filter block traces by their address space (domain)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1583 +#: ../Doc/whatsnew/3.6.rst:1592 msgid "(Contributed by Victor Stinner in :issue:`26588`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1589 +#: ../Doc/whatsnew/3.6.rst:1598 msgid "typing" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1591 +#: ../Doc/whatsnew/3.6.rst:1600 msgid "" "Since the :mod:`typing` module is :term:`provisional `, all " "changes introduced in Python 3.6 have also been backported to Python 3.5.x." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1595 +#: ../Doc/whatsnew/3.6.rst:1604 msgid "" "The :mod:`typing` module has a much improved support for generic type " "aliases. For example ``Dict[str, Tuple[S, T]]`` is now a valid type " @@ -2049,21 +2061,21 @@ msgid "" "com/python/typing/pull/195>`_.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1601 +#: ../Doc/whatsnew/3.6.rst:1610 msgid "" "The :class:`typing.ContextManager` class has been added for representing :" "class:`contextlib.AbstractContextManager`. (Contributed by Brett Cannon in :" "issue:`25609`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1605 +#: ../Doc/whatsnew/3.6.rst:1614 msgid "" "The :class:`typing.Collection` class has been added for representing :class:" "`collections.abc.Collection`. (Contributed by Ivan Levkivskyi in :issue:" "`27598`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1609 +#: ../Doc/whatsnew/3.6.rst:1618 msgid "" "The :const:`typing.ClassVar` type construct has been added to mark class " "variables. As introduced in :pep:`526`, a variable annotation wrapped in " @@ -2073,46 +2085,46 @@ msgid "" "pull/280>`_.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1616 +#: ../Doc/whatsnew/3.6.rst:1625 msgid "" "A new :const:`~typing.TYPE_CHECKING` constant that is assumed to be ``True`` " -"by the static type chekers, but is ``False`` at runtime. (Contributed by " +"by the static type checkers, but is ``False`` at runtime. (Contributed by " "Guido van Rossum in `Github #230 `_.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1621 +#: ../Doc/whatsnew/3.6.rst:1630 msgid "" "A new :func:`~typing.NewType` helper function has been added to create " "lightweight distinct types for annotations::" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1629 +#: ../Doc/whatsnew/3.6.rst:1638 msgid "" "The static type checker will treat the new type as if it were a subclass of " "the original type. (Contributed by Ivan Levkivskyi in `Github #189 `_.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1635 +#: ../Doc/whatsnew/3.6.rst:1644 msgid "unicodedata" msgstr "unicodedata" -#: ../Doc/whatsnew/3.6.rst:1637 +#: ../Doc/whatsnew/3.6.rst:1646 msgid "" "The :mod:`unicodedata` module now uses data from `Unicode 9.0.0 `_. (Contributed by Benjamin Peterson.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1643 +#: ../Doc/whatsnew/3.6.rst:1652 msgid "unittest.mock" msgstr "unittest.mock" -#: ../Doc/whatsnew/3.6.rst:1645 +#: ../Doc/whatsnew/3.6.rst:1654 msgid "The :class:`~unittest.mock.Mock` class has the following improvements:" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1647 +#: ../Doc/whatsnew/3.6.rst:1656 msgid "" "Two new methods, :meth:`Mock.assert_called() ` and :meth:`Mock.assert_called_once() ` method now has " "two optional keyword only arguments: *return_value* and *side_effect*. " "(Contributed by Kushal Das in :issue:`21271`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1660 +#: ../Doc/whatsnew/3.6.rst:1669 msgid "urllib.request" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1662 +#: ../Doc/whatsnew/3.6.rst:1671 msgid "" "If a HTTP request has a file or iterable body (other than a bytes object) " "but no ``Content-Length`` header, rather than throwing an error, :class:" @@ -2139,33 +2151,33 @@ msgid "" "encoding. (Contributed by Demian Brecht and Rolf Krahl in :issue:`12319`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1670 +#: ../Doc/whatsnew/3.6.rst:1679 msgid "urllib.robotparser" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1672 +#: ../Doc/whatsnew/3.6.rst:1681 msgid "" ":class:`~urllib.robotparser.RobotFileParser` now supports the ``Crawl-" "delay`` and ``Request-rate`` extensions. (Contributed by Nikolay Bogoychev " "in :issue:`16099`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1678 ../Doc/whatsnew/3.6.rst:2047 +#: ../Doc/whatsnew/3.6.rst:1687 ../Doc/whatsnew/3.6.rst:2056 msgid "venv" msgstr "venv" -#: ../Doc/whatsnew/3.6.rst:1680 +#: ../Doc/whatsnew/3.6.rst:1689 msgid "" ":mod:`venv` accepts a new parameter ``--prompt``. This parameter provides an " "alternative prefix for the virtual environment. (Proposed by Łukasz " "Balcerzak and ported to 3.6 by Stéphane Wirtel in :issue:`22829`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1686 +#: ../Doc/whatsnew/3.6.rst:1695 msgid "warnings" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1688 +#: ../Doc/whatsnew/3.6.rst:1697 msgid "" "A new optional *source* parameter has been added to the :func:`warnings." "warn_explicit` function: the destroyed object which emitted a :exc:" @@ -2174,65 +2186,65 @@ msgid "" "and :issue:`26567`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1694 +#: ../Doc/whatsnew/3.6.rst:1703 msgid "" "When a :exc:`ResourceWarning` warning is logged, the :mod:`tracemalloc` " "module is now used to try to retrieve the traceback where the destroyed " "object was allocated." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1697 +#: ../Doc/whatsnew/3.6.rst:1706 msgid "Example with the script ``example.py``::" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1707 +#: ../Doc/whatsnew/3.6.rst:1716 msgid "Output of the command ``python3.6 -Wd -X tracemalloc=5 example.py``::" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1717 +#: ../Doc/whatsnew/3.6.rst:1726 msgid "" "The \"Object allocated at\" traceback is new and is only displayed if :mod:" "`tracemalloc` is tracing Python memory allocations and if the :mod:" "`warnings` module was already imported." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1723 +#: ../Doc/whatsnew/3.6.rst:1732 msgid "winreg" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1725 +#: ../Doc/whatsnew/3.6.rst:1734 msgid "" "Added the 64-bit integer type :data:`REG_QWORD `. " "(Contributed by Clement Rouault in :issue:`23026`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1730 +#: ../Doc/whatsnew/3.6.rst:1739 msgid "winsound" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1732 +#: ../Doc/whatsnew/3.6.rst:1741 msgid "" "Allowed keyword arguments to be passed to :func:`Beep `, :" "func:`MessageBeep `, and :func:`PlaySound ` (:issue:`27982`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1738 +#: ../Doc/whatsnew/3.6.rst:1747 msgid "xmlrpc.client" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1740 +#: ../Doc/whatsnew/3.6.rst:1749 msgid "" "The :mod:`xmlrpc.client` module now supports unmarshalling additional data " "types used by the Apache XML-RPC implementation for numerics and ``None``. " "(Contributed by Serhiy Storchaka in :issue:`26885`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1747 +#: ../Doc/whatsnew/3.6.rst:1756 msgid "zipfile" msgstr "zipfile" -#: ../Doc/whatsnew/3.6.rst:1749 +#: ../Doc/whatsnew/3.6.rst:1758 msgid "" "A new :meth:`ZipInfo.from_file() ` class method " "allows making a :class:`~zipfile.ZipInfo` instance from a filesystem file. A " @@ -2241,29 +2253,29 @@ msgid "" "(Contributed by Thomas Kluyver in :issue:`26039`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1755 +#: ../Doc/whatsnew/3.6.rst:1764 msgid "" "The :meth:`ZipFile.open() ` method can now be used to " "write data into a ZIP file, as well as for extracting data. (Contributed by " "Thomas Kluyver in :issue:`26039`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1761 +#: ../Doc/whatsnew/3.6.rst:1770 msgid "zlib" msgstr "zlib" -#: ../Doc/whatsnew/3.6.rst:1763 +#: ../Doc/whatsnew/3.6.rst:1772 msgid "" "The :func:`~zlib.compress` and :func:`~zlib.decompress` functions now accept " "keyword arguments. (Contributed by Aviv Palivoda in :issue:`26243` and Xiang " "Zhang in :issue:`16764` respectively.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1770 +#: ../Doc/whatsnew/3.6.rst:1779 msgid "Optimizations" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1772 +#: ../Doc/whatsnew/3.6.rst:1781 msgid "" "The Python interpreter now uses a 16-bit wordcode instead of bytecode which " "made a number of opcode optimizations possible. (Contributed by Demur Rumed " @@ -2271,79 +2283,79 @@ msgid "" "`26647` and :issue:`28050`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1777 +#: ../Doc/whatsnew/3.6.rst:1786 msgid "" "The :class:`asyncio.Future` class now has an optimized C implementation. " "(Contributed by Yury Selivanov and INADA Naoki in :issue:`26081`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1780 +#: ../Doc/whatsnew/3.6.rst:1789 msgid "" "The :class:`asyncio.Task` class now has an optimized C implementation. " "(Contributed by Yury Selivanov in :issue:`28544`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1783 +#: ../Doc/whatsnew/3.6.rst:1792 msgid "" "Various implementation improvements in the :mod:`typing` module (such as " "caching of generic types) allow up to 30 times performance improvements and " "reduced memory footprint." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1787 +#: ../Doc/whatsnew/3.6.rst:1796 msgid "" "The ASCII decoder is now up to 60 times as fast for error handlers " "``surrogateescape``, ``ignore`` and ``replace`` (Contributed by Victor " "Stinner in :issue:`24870`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1791 +#: ../Doc/whatsnew/3.6.rst:1800 msgid "" "The ASCII and the Latin1 encoders are now up to 3 times as fast for the " "error handler ``surrogateescape`` (Contributed by Victor Stinner in :issue:" "`25227`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1795 +#: ../Doc/whatsnew/3.6.rst:1804 msgid "" "The UTF-8 encoder is now up to 75 times as fast for error handlers " "``ignore``, ``replace``, ``surrogateescape``, ``surrogatepass`` (Contributed " "by Victor Stinner in :issue:`25267`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1799 +#: ../Doc/whatsnew/3.6.rst:1808 msgid "" "The UTF-8 decoder is now up to 15 times as fast for error handlers " "``ignore``, ``replace`` and ``surrogateescape`` (Contributed by Victor " "Stinner in :issue:`25301`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1803 +#: ../Doc/whatsnew/3.6.rst:1812 msgid "" "``bytes % args`` is now up to 2 times faster. (Contributed by Victor Stinner " "in :issue:`25349`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1806 +#: ../Doc/whatsnew/3.6.rst:1815 msgid "" "``bytearray % args`` is now between 2.5 and 5 times faster. (Contributed by " "Victor Stinner in :issue:`25399`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1809 +#: ../Doc/whatsnew/3.6.rst:1818 msgid "" "Optimize :meth:`bytes.fromhex` and :meth:`bytearray.fromhex`: they are now " "between 2x and 3.5x faster. (Contributed by Victor Stinner in :issue:" "`25401`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1812 +#: ../Doc/whatsnew/3.6.rst:1821 msgid "" "Optimize ``bytes.replace(b'', b'.')`` and ``bytearray.replace(b'', b'.')``: " "up to 80% faster. (Contributed by Josh Snider in :issue:`26574`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1815 +#: ../Doc/whatsnew/3.6.rst:1824 msgid "" "Allocator functions of the :c:func:`PyMem_Malloc` domain (:c:data:" "`PYMEM_DOMAIN_MEM`) now use the :ref:`pymalloc memory allocator ` " @@ -2353,14 +2365,14 @@ msgid "" "(Contributed by Victor Stinner in :issue:`26249`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1822 +#: ../Doc/whatsnew/3.6.rst:1831 msgid "" ":func:`pickle.load` and :func:`pickle.loads` are now up to 10% faster when " "deserializing many small objects (Contributed by Victor Stinner in :issue:" "`27056`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1826 +#: ../Doc/whatsnew/3.6.rst:1835 msgid "" "Passing :term:`keyword arguments ` to a function has an " "overhead in comparison with passing :term:`positional arguments ` must now be 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/whatsnew/3.6.rst:1871 +#: ../Doc/whatsnew/3.6.rst:1880 msgid "" "New :c:func:`Py_FinalizeEx` API which indicates if flushing buffered data " "failed. (Contributed by Martin Panter in :issue:`5319`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1875 +#: ../Doc/whatsnew/3.6.rst:1884 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` now supports :ref:`positional-only " "parameters `. Positional-only parameters are " "defined by empty names. (Contributed by Serhiy Storchaka in :issue:`26282`)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1880 +#: ../Doc/whatsnew/3.6.rst:1889 msgid "" "``PyTraceback_Print`` method now abbreviates long sequences of repeated " "lines as ``\"[Previous line repeated {count} more times]\"``. (Contributed " "by Emanuel Barry in :issue:`26823`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1884 +#: ../Doc/whatsnew/3.6.rst:1893 msgid "" "The new :c:func:`PyErr_SetImportErrorSubclass` function allows for " "specifying a subclass of :exc:`ImportError` to raise. (Contributed by Eric " "Snow in :issue:`15767`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1888 +#: ../Doc/whatsnew/3.6.rst:1897 msgid "" "The new :c:func:`PyErr_ResourceWarning` function can be used to generate a :" "exc:`ResourceWarning` providing the source of the resource allocation. " "(Contributed by Victor Stinner in :issue:`26567`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1892 +#: ../Doc/whatsnew/3.6.rst:1901 msgid "" "The new :c:func:`PyOS_FSPath` function returns the file system " "representation of a :term:`path-like object`. (Contributed by Brett Cannon " "in :issue:`27186`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1896 +#: ../Doc/whatsnew/3.6.rst:1905 msgid "" "The :c:func:`PyUnicode_FSConverter` and :c:func:`PyUnicode_FSDecoder` " "functions will now accept :term:`path-like objects `." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1901 +#: ../Doc/whatsnew/3.6.rst:1910 msgid "Other Improvements" msgstr "Autres Améliorations" -#: ../Doc/whatsnew/3.6.rst:1903 +#: ../Doc/whatsnew/3.6.rst:1912 msgid "" "When :option:`--version` (short form: :option:`-V`) is supplied twice, " "Python prints :data:`sys.version` for detailed information." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1914 +#: ../Doc/whatsnew/3.6.rst:1923 msgid "Deprecated" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1917 +#: ../Doc/whatsnew/3.6.rst:1926 msgid "New Keywords" msgstr "Nouveaux mot-clefs" -#: ../Doc/whatsnew/3.6.rst:1919 +#: ../Doc/whatsnew/3.6.rst:1928 msgid "" "``async`` and ``await`` are not recommended to be used as variable, class, " "function or module names. Introduced by :pep:`492` in Python 3.5, they will " @@ -2505,18 +2517,18 @@ msgid "" "``async`` or ``await`` as names will generate a :exc:`DeprecationWarning`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1926 +#: ../Doc/whatsnew/3.6.rst:1935 msgid "Deprecated Python behavior" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1928 +#: ../Doc/whatsnew/3.6.rst:1937 msgid "" "Raising the :exc:`StopIteration` exception inside a generator will now " "generate a :exc:`DeprecationWarning`, and will trigger a :exc:`RuntimeError` " "in Python 3.7. See :ref:`whatsnew-pep-479` for details." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1932 +#: ../Doc/whatsnew/3.6.rst:1941 msgid "" "The :meth:`__aiter__` method is now expected to return an asynchronous " "iterator directly instead of returning an awaitable as previously. Doing the " @@ -2525,7 +2537,7 @@ msgid "" "`27243`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1938 +#: ../Doc/whatsnew/3.6.rst:1947 msgid "" "A backslash-character pair that is not a valid escape sequence now generates " "a :exc:`DeprecationWarning`. Although this will eventually become a :exc:" @@ -2533,7 +2545,7 @@ msgid "" "Emanuel Barry in :issue:`27364`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1943 +#: ../Doc/whatsnew/3.6.rst:1952 msgid "" "When performing a relative import, falling back on ``__name__`` and " "``__path__`` from the calling module when ``__spec__`` or ``__package__`` " @@ -2541,35 +2553,35 @@ msgid "" "Ames in :issue:`25791`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1950 +#: ../Doc/whatsnew/3.6.rst:1959 msgid "Deprecated Python modules, functions and methods" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1953 +#: ../Doc/whatsnew/3.6.rst:1962 msgid "asynchat" msgstr "asynchat" -#: ../Doc/whatsnew/3.6.rst:1955 +#: ../Doc/whatsnew/3.6.rst:1964 msgid "" "The :mod:`asynchat` has been deprecated in favor of :mod:`asyncio`. " "(Contributed by Mariatta in :issue:`25002`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1960 +#: ../Doc/whatsnew/3.6.rst:1969 msgid "asyncore" msgstr "asyncore" -#: ../Doc/whatsnew/3.6.rst:1962 +#: ../Doc/whatsnew/3.6.rst:1971 msgid "" "The :mod:`asyncore` has been deprecated in favor of :mod:`asyncio`. " "(Contributed by Mariatta in :issue:`25002`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1967 +#: ../Doc/whatsnew/3.6.rst:1976 msgid "dbm" msgstr "dbm" -#: ../Doc/whatsnew/3.6.rst:1969 +#: ../Doc/whatsnew/3.6.rst:1978 msgid "" "Unlike other :mod:`dbm` implementations, the :mod:`dbm.dumb` module creates " "databases with the ``'rw'`` mode and allows modifying the database opened " @@ -2577,7 +2589,7 @@ msgid "" "in 3.8. (Contributed by Serhiy Storchaka in :issue:`21708`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1979 +#: ../Doc/whatsnew/3.6.rst:1988 msgid "" "The undocumented ``extra_path`` argument to the :class:`~distutils." "Distribution` constructor is now considered deprecated and will raise a " @@ -2585,17 +2597,17 @@ msgid "" "Python release. See :issue:`27919` for details." msgstr "" -#: ../Doc/whatsnew/3.6.rst:1986 +#: ../Doc/whatsnew/3.6.rst:1995 msgid "grp" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1988 +#: ../Doc/whatsnew/3.6.rst:1997 msgid "" "The support of non-integer arguments in :func:`~grp.getgrgid` has been " "deprecated. (Contributed by Serhiy Storchaka in :issue:`26129`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:1996 +#: ../Doc/whatsnew/3.6.rst:2005 msgid "" "The :meth:`importlib.machinery.SourceFileLoader.load_module` and :meth:" "`importlib.machinery.SourcelessFileLoader.load_module` methods are now " @@ -2605,14 +2617,14 @@ msgid "" "exec_module`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2003 +#: ../Doc/whatsnew/3.6.rst:2012 msgid "" "The :class:`importlib.machinery.WindowsRegistryFinder` class is now " "deprecated. As of 3.6.0, it is still added to :attr:`sys.meta_path` by " "default (on Windows), but this may change in future releases." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2010 +#: ../Doc/whatsnew/3.6.rst:2019 msgid "" "Undocumented support of general :term:`bytes-like objects ` as paths in :mod:`os` functions, :func:`compile` and similar " @@ -2620,7 +2632,7 @@ msgid "" "`25791` and :issue:`26754`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2018 +#: ../Doc/whatsnew/3.6.rst:2027 msgid "" "Support for inline flags ``(?letters)`` in the middle of the regular " "expression has been deprecated and will be removed in a future Python " @@ -2628,14 +2640,14 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`22493`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2026 +#: ../Doc/whatsnew/3.6.rst:2035 msgid "" "OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " "the future the :mod:`ssl` module will require at least OpenSSL 1.0.2 or " "1.1.0." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2030 +#: ../Doc/whatsnew/3.6.rst:2039 msgid "" "SSL-related arguments like ``certfile``, ``keyfile`` and ``check_hostname`` " "in :mod:`ftplib`, :mod:`http.client`, :mod:`imaplib`, :mod:`poplib`, and :" @@ -2643,7 +2655,7 @@ msgid "" "Christian Heimes in :issue:`28022`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2035 +#: ../Doc/whatsnew/3.6.rst:2044 msgid "" "A couple of protocols and functions of the :mod:`ssl` module are now " "deprecated. Some features will no longer be available in future versions of " @@ -2651,13 +2663,13 @@ msgid "" "(Contributed by Christian Heimes in :issue:`28022` and :issue:`26470`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2043 +#: ../Doc/whatsnew/3.6.rst:2052 msgid "" "The :mod:`tkinter.tix` module is now deprecated. :mod:`tkinter` users " "should use :mod:`tkinter.ttk` instead." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2049 +#: ../Doc/whatsnew/3.6.rst:2058 msgid "" "The ``pyvenv`` script has been deprecated in favour of ``python3 -m venv``. " "This prevents confusion as to what Python interpreter ``pyvenv`` is " @@ -2665,11 +2677,11 @@ msgid "" "environment. (Contributed by Brett Cannon in :issue:`25154`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2056 +#: ../Doc/whatsnew/3.6.rst:2065 msgid "Deprecated functions and types of the C API" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2058 +#: ../Doc/whatsnew/3.6.rst:2067 msgid "" "Undocumented functions :c:func:`PyUnicode_AsEncodedObject`, :c:func:" "`PyUnicode_AsDecodedObject`, :c:func:`PyUnicode_AsEncodedUnicode` and :c:" @@ -2677,11 +2689,11 @@ msgid "" "codec based API ` instead." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2065 +#: ../Doc/whatsnew/3.6.rst:2074 msgid "Deprecated Build Options" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2067 +#: ../Doc/whatsnew/3.6.rst:2076 msgid "" "The ``--with-system-ffi`` configure flag is now on by default on non-macOS " "UNIX platforms. It may be disabled by using ``--without-system-ffi``, but " @@ -2690,15 +2702,15 @@ msgid "" "the ``--with-system-ffi`` flag when building their system Python." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2075 +#: ../Doc/whatsnew/3.6.rst:2084 msgid "Removed" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2078 +#: ../Doc/whatsnew/3.6.rst:2087 msgid "API and Feature Removals" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2080 +#: ../Doc/whatsnew/3.6.rst:2089 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter in regular " "expressions will now cause an error. In replacement templates for :func:`re." @@ -2706,14 +2718,14 @@ msgid "" "now only be used with binary patterns." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2085 +#: ../Doc/whatsnew/3.6.rst:2094 msgid "" "``inspect.getmoduleinfo()`` was removed (was deprecated since CPython 3.3). :" "func:`inspect.getmodulename` should be used for obtaining the module name " "for a given path. (Contributed by Yury Selivanov in :issue:`13248`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2090 +#: ../Doc/whatsnew/3.6.rst:2099 msgid "" "``traceback.Ignore`` class and ``traceback.usage``, ``traceback.modname``, " "``traceback.fullmodname``, ``traceback.find_lines_from_code``, ``traceback." @@ -2723,14 +2735,14 @@ msgid "" "equivalent functionality is available from private methods." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2097 +#: ../Doc/whatsnew/3.6.rst:2106 msgid "" "The ``tk_menuBar()`` and ``tk_bindForTraversal()`` dummy methods in :mod:" "`tkinter` widget classes were removed (corresponding Tk commands were " "obsolete since Tk 4.0)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2101 +#: ../Doc/whatsnew/3.6.rst:2110 msgid "" "The :meth:`~zipfile.ZipFile.open` method of the :class:`zipfile.ZipFile` " "class no longer supports the ``'U'`` mode (was deprecated since Python 3.4). " @@ -2738,7 +2750,7 @@ msgid "" "`universal newlines` mode." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2106 +#: ../Doc/whatsnew/3.6.rst:2115 msgid "" "The undocumented ``IN``, ``CDROM``, ``DLFCN``, ``TYPES``, ``CDIO``, and " "``STROPTS`` modules have been removed. They had been available in the " @@ -2748,25 +2760,25 @@ msgid "" "distribution at :source:`Tools/scripts/h2py.py`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2113 +#: ../Doc/whatsnew/3.6.rst:2122 msgid "The deprecated ``asynchat.fifo`` class has been removed." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2117 +#: ../Doc/whatsnew/3.6.rst:2126 msgid "Porting to Python 3.6" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2119 +#: ../Doc/whatsnew/3.6.rst:2128 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2123 +#: ../Doc/whatsnew/3.6.rst:2132 msgid "Changes in 'python' Command Behavior" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2125 +#: ../Doc/whatsnew/3.6.rst:2134 msgid "" "The output of a special Python build with defined ``COUNT_ALLOCS``, " "``SHOW_ALLOC_COUNT`` or ``SHOW_TRACK_COUNT`` macros is now off by default. " @@ -2775,42 +2787,42 @@ msgid "" "issue:`23034`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2133 +#: ../Doc/whatsnew/3.6.rst:2142 msgid "Changes in the Python API" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2135 +#: ../Doc/whatsnew/3.6.rst:2144 msgid "" ":func:`open() ` will no longer allow combining the ``'U'`` mode flag " "with ``'+'``. (Contributed by Jeff Balogh and John O'Connor in :issue:" "`2091`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2139 +#: ../Doc/whatsnew/3.6.rst:2148 msgid "" ":mod:`sqlite3` no longer implicitly commits an open transaction before DDL " "statements." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2142 +#: ../Doc/whatsnew/3.6.rst:2151 msgid "" "On Linux, :func:`os.urandom` now blocks until the system urandom entropy " "pool is initialized to increase the security." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2145 +#: ../Doc/whatsnew/3.6.rst:2154 msgid "" "When :meth:`importlib.abc.Loader.exec_module` is defined, :meth:`importlib." "abc.Loader.create_module` must also be defined." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2148 +#: ../Doc/whatsnew/3.6.rst:2157 msgid "" ":c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** " "argument is not set. Previously only ``NULL`` was returned." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2151 +#: ../Doc/whatsnew/3.6.rst:2160 msgid "" "The format of the ``co_lnotab`` attribute of code objects changed to support " "a negative line number delta. By default, Python does not emit bytecode with " @@ -2823,7 +2835,7 @@ msgid "" "see the :pep:`511` for the rationale." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2161 +#: ../Doc/whatsnew/3.6.rst:2170 msgid "" "The functions in the :mod:`compileall` module now return booleans instead of " "``1`` or ``0`` to represent success or failure, respectively. Thanks to " @@ -2831,7 +2843,7 @@ msgid "" "were doing identity checks for ``1`` or ``0``. See :issue:`25768`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2166 +#: ../Doc/whatsnew/3.6.rst:2175 msgid "" "Reading the :attr:`~urllib.parse.SplitResult.port` attribute of :func:" "`urllib.parse.urlsplit` and :func:`~urllib.parse.urlparse` results now " @@ -2839,13 +2851,13 @@ msgid "" "const:`None`. See :issue:`20059`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2171 +#: ../Doc/whatsnew/3.6.rst:2180 msgid "" "The :mod:`imp` module now raises a :exc:`DeprecationWarning` instead of :exc:" "`PendingDeprecationWarning`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2174 +#: ../Doc/whatsnew/3.6.rst:2183 msgid "" "The following modules have had missing APIs added to their :attr:`__all__` " "attributes to match the documented APIs: :mod:`calendar`, :mod:`cgi`, :mod:" @@ -2857,21 +2869,21 @@ msgid "" "Kołodziej in :issue:`23883`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2185 +#: ../Doc/whatsnew/3.6.rst:2194 msgid "" "When performing a relative import, if ``__package__`` does not compare equal " "to ``__spec__.parent`` then :exc:`ImportWarning` is raised. (Contributed by " "Brett Cannon in :issue:`25791`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2189 +#: ../Doc/whatsnew/3.6.rst:2198 msgid "" "When a relative import is performed and no parent package is known, then :" "exc:`ImportError` will be raised. Previously, :exc:`SystemError` could be " "raised. (Contributed by Brett Cannon in :issue:`18018`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2193 +#: ../Doc/whatsnew/3.6.rst:2202 msgid "" "Servers based on the :mod:`socketserver` module, including those defined in :" "mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " @@ -2882,20 +2894,20 @@ msgid "" "(Contributed by Martin Panter in :issue:`23430`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2202 +#: ../Doc/whatsnew/3.6.rst:2211 msgid "" ":func:`spwd.getspnam` now raises a :exc:`PermissionError` instead of :exc:" "`KeyError` if the user doesn't have privileges." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2205 +#: ../Doc/whatsnew/3.6.rst:2214 msgid "" "The :meth:`socket.socket.close` method now raises an exception if an error " "(e.g. ``EBADF``) was reported by the underlying system call. (Contributed by " "Martin Panter in :issue:`26685`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2209 +#: ../Doc/whatsnew/3.6.rst:2218 msgid "" "The *decode_data* argument for the :class:`smtpd.SMTPChannel` and :class:" "`smtpd.SMTPServer` constructors is now ``False`` by default. This means that " @@ -2905,7 +2917,7 @@ msgid "" "deprecation warning generated by 3.5 will not be affected." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2217 +#: ../Doc/whatsnew/3.6.rst:2226 msgid "" "All optional arguments of the :func:`~json.dump`, :func:`~json.dumps`, :func:" "`~json.load` and :func:`~json.loads` functions and :class:`~json." @@ -2914,7 +2926,7 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`18726`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2224 +#: ../Doc/whatsnew/3.6.rst:2233 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." @@ -2923,7 +2935,7 @@ msgstr "" "ne devraient plus utiliser la forme à un argument pour récupérer le type " "d'un objet." -#: ../Doc/whatsnew/3.6.rst:2227 +#: ../Doc/whatsnew/3.6.rst:2236 msgid "" "As part of :pep:`487`, the handling of keyword arguments passed to :class:" "`type` (other than the metaclass hint, ``metaclass``) is now consistently " @@ -2935,7 +2947,7 @@ msgid "" "__new__` (whether direct or via :class:`super`) accordingly." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2236 +#: ../Doc/whatsnew/3.6.rst:2245 msgid "" "In :class:`distutils.command.sdist.sdist`, the ``default_format`` attribute " "has been removed and is no longer honored. Instead, the gzipped tarfile " @@ -2945,13 +2957,13 @@ msgid "" "containing the following:" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2249 +#: ../Doc/whatsnew/3.6.rst:2258 msgid "" "This behavior has also been backported to earlier Python versions by " "Setuptools 26.0.0." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2252 +#: ../Doc/whatsnew/3.6.rst:2261 msgid "" "In the :mod:`urllib.request` module and the :meth:`http.client." "HTTPConnection.request` method, if no Content-Length header field has been " @@ -2962,47 +2974,47 @@ msgid "" "`12319`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2261 +#: ../Doc/whatsnew/3.6.rst:2270 msgid "" "The :class:`~csv.DictReader` now returns rows of type :class:`~collections." "OrderedDict`. (Contributed by Steve Holden in :issue:`27842`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2265 +#: ../Doc/whatsnew/3.6.rst:2274 msgid "" "The :const:`crypt.METHOD_CRYPT` will no longer be added to ``crypt.methods`` " "if unsupported by the platform. (Contributed by Victor Stinner in :issue:" "`25287`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2273 +#: ../Doc/whatsnew/3.6.rst:2282 msgid "" "On Linux, :func:`ctypes.util.find_library` now looks in ``LD_LIBRARY_PATH`` " "for shared libraries. (Contributed by Vinay Sajip in :issue:`9998`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2277 +#: ../Doc/whatsnew/3.6.rst:2286 msgid "" "The :class:`imaplib.IMAP4` class now handles flags containing the ``']'`` " "character in messages sent from the server to improve real-world " "compatibility. (Contributed by Lita Cho in :issue:`21815`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2282 +#: ../Doc/whatsnew/3.6.rst:2291 msgid "" "The :func:`mmap.write() ` function now returns the number of " "bytes written like other write methods. (Contributed by Jakub Stasiak in :" "issue:`26335`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2286 +#: ../Doc/whatsnew/3.6.rst:2295 msgid "" "The :func:`pkgutil.iter_modules` and :func:`pkgutil.walk_packages` functions " "now return :class:`~pkgutil.ModuleInfo` named tuples. (Contributed by " "Ramchandra Apte in :issue:`17211`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2290 +#: ../Doc/whatsnew/3.6.rst:2299 msgid "" ":func:`re.sub` now raises an error for invalid numerical group references in " "replacement templates even if the pattern is not found in the string. The " @@ -3011,7 +3023,7 @@ msgid "" "in :issue:`25953`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2296 +#: ../Doc/whatsnew/3.6.rst:2305 msgid "" ":class:`zipfile.ZipFile` will now raise :exc:`NotImplementedError` for " "unrecognized compression values. Previously a plain :exc:`RuntimeError` was " @@ -3021,7 +3033,7 @@ msgid "" "`RuntimeError` was raised in those scenarios." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2303 +#: ../Doc/whatsnew/3.6.rst:2312 msgid "" "when custom metaclasses are combined with zero-argument :func:`super` or " "direct references from methods to the implicit ``__class__`` closure " @@ -3031,11 +3043,24 @@ msgid "" "Python 3.8." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2311 +#: ../Doc/whatsnew/3.6.rst:2319 +msgid "" +"With the introduction of :exc:`ModuleNotFoundError`, import system consumers " +"may start expecting import system replacements to raise that more specific " +"exception when appropriate, rather than the less-specific :exc:" +"`ImportError`. To provide future compatibility with such consumers, " +"implementors of alternative import systems that completely replace :func:" +"`__import__` will need to update their implementations to raise the new " +"subclass when a module can't be found at all. Implementors of compliant " +"plugins to the default import system shouldn't need to make any changes, as " +"the default import system will raise the new subclass when appropriate." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2331 msgid "Changes in the C API" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2313 +#: ../Doc/whatsnew/3.6.rst:2333 msgid "" "The :c:func:`PyMem_Malloc` allocator family now uses the :ref:`pymalloc " "allocator ` rather than the system :c:func:`malloc`. Applications " @@ -3044,29 +3069,29 @@ msgid "" "usage of memory allocators in your application. See :issue:`26249`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2319 +#: ../Doc/whatsnew/3.6.rst:2339 msgid "" ":c:func:`Py_Exit` (and the main interpreter) now override the exit status " "with 120 if flushing buffered data failed. See :issue:`5319`." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2324 +#: ../Doc/whatsnew/3.6.rst:2344 msgid "CPython bytecode changes" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2326 +#: ../Doc/whatsnew/3.6.rst:2346 msgid "" "There have been several major changes to the :term:`bytecode` in Python 3.6." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2328 +#: ../Doc/whatsnew/3.6.rst:2348 msgid "" "The Python interpreter now uses a 16-bit wordcode instead of bytecode. " "(Contributed by Demur Rumed with input and reviews from Serhiy Storchaka and " "Victor Stinner in :issue:`26647` and :issue:`28050`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2332 +#: ../Doc/whatsnew/3.6.rst:2352 msgid "" "The new :opcode:`FORMAT_VALUE` and :opcode:`BUILD_STRING` opcodes as part of " "the :ref:`formatted string literal ` implementation. " @@ -3074,14 +3099,14 @@ msgid "" "`27078`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2337 +#: ../Doc/whatsnew/3.6.rst:2357 msgid "" "The new :opcode:`BUILD_CONST_KEY_MAP` opcode to optimize the creation of " "dictionaries with constant keys. (Contributed by Serhiy Storchaka in :issue:" "`27140`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2341 +#: ../Doc/whatsnew/3.6.rst:2361 msgid "" "The function call opcodes have been heavily reworked for better performance " "and simpler implementation. The :opcode:`MAKE_FUNCTION`, :opcode:" @@ -3093,22 +3118,22 @@ msgid "" "issue:`27095`, and Serhiy Storchaka in :issue:`27213`, :issue:`28257`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2352 +#: ../Doc/whatsnew/3.6.rst:2372 msgid "" "The new :opcode:`SETUP_ANNOTATIONS` and :opcode:`STORE_ANNOTATION` opcodes " "have been added to support the new :term:`variable annotation` syntax. " "(Contributed by Ivan Levkivskyi in :issue:`27985`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2358 +#: ../Doc/whatsnew/3.6.rst:2378 msgid "Notable changes in Python 3.6.2" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2361 +#: ../Doc/whatsnew/3.6.rst:2381 msgid "New ``make regen-all`` build target" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2363 +#: ../Doc/whatsnew/3.6.rst:2383 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " @@ -3116,43 +3141,43 @@ msgid "" "recompile generated files based on file modification times." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2368 +#: ../Doc/whatsnew/3.6.rst:2388 msgid "" "Instead, a new ``make regen-all`` command has been added to force " "regeneration of these files when desired (e.g. after an initial version of " "Python has already been built based on the pregenerated versions)." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2372 +#: ../Doc/whatsnew/3.6.rst:2392 msgid "" "More selective regeneration targets are also defined - see :source:`Makefile." "pre.in` for details." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2375 ../Doc/whatsnew/3.6.rst:2388 +#: ../Doc/whatsnew/3.6.rst:2395 ../Doc/whatsnew/3.6.rst:2408 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2381 +#: ../Doc/whatsnew/3.6.rst:2401 msgid "Removal of ``make touch`` build target" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2383 +#: ../Doc/whatsnew/3.6.rst:2403 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " "been removed." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2386 +#: ../Doc/whatsnew/3.6.rst:2406 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "" -#: ../Doc/whatsnew/3.6.rst:2394 +#: ../Doc/whatsnew/3.6.rst:2414 msgid "Notable changes in Python 3.6.4" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2396 +#: ../Doc/whatsnew/3.6.rst:2416 msgid "" "The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " "has been removed as its members being never cleared may cause a segfault " @@ -3160,17 +3185,29 @@ msgid "" "issue:`22898` and :issue:`30697`.)" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2403 +#: ../Doc/whatsnew/3.6.rst:2423 msgid "Notable changes in Python 3.6.5" msgstr "" -#: ../Doc/whatsnew/3.6.rst:2405 +#: ../Doc/whatsnew/3.6.rst:2425 msgid "" "The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE`` " "locale to the ``LC_NUMERIC`` locale in some cases. (Contributed by Victor " "Stinner in :issue:`31900`.)" msgstr "" +#: ../Doc/whatsnew/3.6.rst:2430 +msgid "Notable changes in Python 3.6.7" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2432 +msgid "" +"In 3.6.7 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " +"when provided with input that does not have a trailing new line. This " +"behavior now matches what the C tokenizer does internally. (Contributed by " +"Ammar Askar in :issue:`33899`.)" +msgstr "" + #~ msgid "|today|" #~ msgstr "|today|" diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po index aa5ceda94..b00037c70 100644 --- a/whatsnew/3.7.po +++ b/whatsnew/3.7.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" "PO-Revision-Date: 2018-08-03 23:47+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -20,7 +20,7 @@ msgstr "" #: ../Doc/whatsnew/3.7.rst:0 msgid "Editor" -msgstr "" +msgstr "Rédacteur" #: ../Doc/whatsnew/3.7.rst:5 msgid "Elvis Pranskevichus " @@ -472,27 +472,27 @@ msgid "" "module:" msgstr "" -#: ../Doc/whatsnew/3.7.rst:346 ../Doc/whatsnew/3.7.rst:1417 +#: ../Doc/whatsnew/3.7.rst:346 ../Doc/whatsnew/3.7.rst:1429 msgid ":func:`time.clock_gettime_ns`" msgstr "" -#: ../Doc/whatsnew/3.7.rst:347 ../Doc/whatsnew/3.7.rst:1418 +#: ../Doc/whatsnew/3.7.rst:347 ../Doc/whatsnew/3.7.rst:1430 msgid ":func:`time.clock_settime_ns`" msgstr "" -#: ../Doc/whatsnew/3.7.rst:348 ../Doc/whatsnew/3.7.rst:1419 +#: ../Doc/whatsnew/3.7.rst:348 ../Doc/whatsnew/3.7.rst:1431 msgid ":func:`time.monotonic_ns`" msgstr "" -#: ../Doc/whatsnew/3.7.rst:349 ../Doc/whatsnew/3.7.rst:1420 +#: ../Doc/whatsnew/3.7.rst:349 ../Doc/whatsnew/3.7.rst:1432 msgid ":func:`time.perf_counter_ns`" msgstr "" -#: ../Doc/whatsnew/3.7.rst:350 ../Doc/whatsnew/3.7.rst:1421 +#: ../Doc/whatsnew/3.7.rst:350 ../Doc/whatsnew/3.7.rst:1433 msgid ":func:`time.process_time_ns`" msgstr "" -#: ../Doc/whatsnew/3.7.rst:351 ../Doc/whatsnew/3.7.rst:1422 +#: ../Doc/whatsnew/3.7.rst:351 ../Doc/whatsnew/3.7.rst:1434 msgid ":func:`time.time_ns`" msgstr "" @@ -604,7 +604,7 @@ msgid "" "it was generated. While effective, this invalidation method has its " "drawbacks. When filesystem timestamps are too coarse, Python can miss " "source updates, leading to user confusion. Additionally, having a timestamp " -"in the cache file is problematic for `build reproduciblity `_ and content-based build systems." msgstr "" @@ -856,7 +856,7 @@ msgid "" "positional arguments. (Contributed by paul.j3 in :issue:`14191`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:628 ../Doc/whatsnew/3.7.rst:1921 +#: ../Doc/whatsnew/3.7.rst:628 ../Doc/whatsnew/3.7.rst:1942 msgid "asyncio" msgstr "asyncio" @@ -878,14 +878,13 @@ msgstr "" #: ../Doc/whatsnew/3.7.rst:639 msgid "" "asyncio gained support for :mod:`contextvars`. :meth:`loop.call_soon() " -"`, :meth:`loop.call_soon_threadsafe() " -"`, :meth:`loop.call_later() " -"`, :meth:`loop.call_at() `, and :meth:`Future.add_done_callback() ` have a new optional keyword-only *context* " -"parameter. :class:`Tasks ` now track their context " -"automatically. See :pep:`567` for more details. (Contributed by Yury " -"Selivanov in :issue:`32436`.)" +"`, :meth:`loop.call_soon_threadsafe() `, :meth:`loop.call_later() `, :meth:`loop.call_at() `, and :meth:" +"`Future.add_done_callback() ` have a new " +"optional keyword-only *context* parameter. :class:`Tasks ` now " +"track their context automatically. See :pep:`567` for more details. " +"(Contributed by Yury Selivanov in :issue:`32436`.)" msgstr "" #: ../Doc/whatsnew/3.7.rst:650 @@ -897,17 +896,17 @@ msgstr "" #: ../Doc/whatsnew/3.7.rst:654 msgid "" -"The new :meth:`loop.start_tls() ` " -"method can be used to upgrade an existing connection to TLS. (Contributed by " -"Yury Selivanov in :issue:`23749`.)" +"The new :meth:`loop.start_tls() ` method can be used " +"to upgrade an existing connection to TLS. (Contributed by Yury Selivanov in :" +"issue:`23749`.)" msgstr "" #: ../Doc/whatsnew/3.7.rst:658 msgid "" -"The new :meth:`loop.sock_recv_into() ` method allows reading data from a socket directly into a " -"provided buffer making it possible to reduce data copies. (Contributed by " -"Antoine Pitrou in :issue:`31819`.)" +"The new :meth:`loop.sock_recv_into() ` method " +"allows reading data from a socket directly into a provided buffer making it " +"possible to reduce data copies. (Contributed by Antoine Pitrou in :issue:" +"`31819`.)" msgstr "" #: ../Doc/whatsnew/3.7.rst:663 @@ -947,19 +946,19 @@ msgstr "" #: ../Doc/whatsnew/3.7.rst:686 msgid "" -"The new :meth:`loop.sock_sendfile() ` coroutine method allows sending files using :mod:`os." -"sendfile` when possible. (Contributed by Andrew Svetlov in :issue:`32410`.)" +"The new :meth:`loop.sock_sendfile() ` coroutine " +"method allows sending files using :mod:`os.sendfile` when possible. " +"(Contributed by Andrew Svetlov in :issue:`32410`.)" msgstr "" #: ../Doc/whatsnew/3.7.rst:690 msgid "" -"The new :meth:`Task.get_loop() ` and :meth:`Future." -"get_loop() ` methods return the instance of the " -"loop on which a task or a future were created. :meth:`Server.get_loop() " -"` allows doing the same for :class:`asyncio.Server` " -"objects. (Contributed by Yury Selivanov in :issue:`32415` and Srinivas Reddy " -"Thatiparthy in :issue:`32418`.)" +"The new :meth:`Future.get_loop() ` and ``Task." +"get_loop()`` methods return the instance of the loop on which a task or a " +"future were created. :meth:`Server.get_loop() ` " +"allows doing the same for :class:`asyncio.Server` objects. (Contributed by " +"Yury Selivanov in :issue:`32415` and Srinivas Reddy Thatiparthy in :issue:" +"`32418`.)" msgstr "" #: ../Doc/whatsnew/3.7.rst:698 @@ -967,14 +966,14 @@ msgid "" "It is now possible to control how instances of :class:`asyncio.Server` begin " "serving. Previously, the server would start serving immediately when " "created. The new *start_serving* keyword argument to :meth:`loop." -"create_server() ` and :meth:`loop." -"create_unix_server() `, as " -"well as :meth:`Server.start_serving() `, and :" -"meth:`Server.serve_forever() ` can be used to " -"decouple server instantiation and serving. The new :meth:`Server." -"is_serving() ` method returns ``True`` if the " -"server is serving. :class:`~asyncio.Server` objects are now asynchronous " -"context managers::" +"create_server() ` and :meth:`loop." +"create_unix_server() `, as well as :meth:" +"`Server.start_serving() `, and :meth:`Server." +"serve_forever() ` can be used to decouple " +"server instantiation and serving. The new :meth:`Server.is_serving() " +"` method returns ``True`` if the server is " +"serving. :class:`~asyncio.Server` objects are now asynchronous context " +"managers::" msgstr "" #: ../Doc/whatsnew/3.7.rst:717 @@ -983,15 +982,15 @@ msgstr "" #: ../Doc/whatsnew/3.7.rst:719 msgid "" -"Callback objects returned by :func:`loop.call_later() ` gained the new :meth:`when() ` method which returns an absolute scheduled callback " -"timestamp. (Contributed by Andrew Svetlov in :issue:`32741`.)" +"Callback objects returned by :func:`loop.call_later() ` gained the new :meth:`when() ` method " +"which returns an absolute scheduled callback timestamp. (Contributed by " +"Andrew Svetlov in :issue:`32741`.)" msgstr "" #: ../Doc/whatsnew/3.7.rst:725 msgid "" -"The :meth:`loop.create_datagram_endpoint() \\ ` method gained support for Unix sockets. " "(Contributed by Quentin Dawans in :issue:`31245`.)" msgstr "" @@ -999,9 +998,9 @@ msgstr "" #: ../Doc/whatsnew/3.7.rst:730 msgid "" "The :func:`asyncio.open_connection`, :func:`asyncio.start_server` " -"functions, :meth:`loop.create_connection() `, :meth:`loop.create_server() `, :meth:`loop.create_accepted_socket() `, :meth:`loop.create_server() `, :meth:`loop.create_accepted_socket() ` methods and their corresponding UNIX socket " "variants now accept the *ssl_handshake_timeout* keyword argument. " "(Contributed by Neil Aspinall in :issue:`29970`.)" @@ -1085,7 +1084,7 @@ msgid "" "(Contributed by Oz Tiram in :issue:`30095`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:790 ../Doc/whatsnew/3.7.rst:1936 +#: ../Doc/whatsnew/3.7.rst:790 ../Doc/whatsnew/3.7.rst:1956 msgid "collections" msgstr "" @@ -1192,7 +1191,7 @@ msgid "" "(Contributed by Alexander Belopolsky in :issue:`5288`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:866 ../Doc/whatsnew/3.7.rst:1946 +#: ../Doc/whatsnew/3.7.rst:866 ../Doc/whatsnew/3.7.rst:1966 msgid "dbm" msgstr "dbm" @@ -1237,7 +1236,7 @@ msgid "" "in :issue:`11913`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:900 ../Doc/whatsnew/3.7.rst:1956 +#: ../Doc/whatsnew/3.7.rst:900 ../Doc/whatsnew/3.7.rst:1976 msgid "enum" msgstr "enum" @@ -1381,7 +1380,7 @@ msgid "" "maxlines. Clicking on a context line jumps the editor to that line. " "Context colors for custom themes is added to Highlights tab of Settings " "dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" -"`33642`, :issue:`33768`, and :issue:`33679`," +"`33642`, :issue:`33768`, and :issue:`33679`.)" msgstr "" #: ../Doc/whatsnew/3.7.rst:1003 @@ -1390,18 +1389,32 @@ msgid "" "8.1+ or 10, with DPI compatibility properties of the Python binary " "unchanged, and a monitor resolution greater than 96 DPI, this should make " "text and lines sharper. It should otherwise have no effect. (Contributed by " -"Terry Jan Reedy in :issue:`33656`)." +"Terry Jan Reedy in :issue:`33656`.)" msgstr "" #: ../Doc/whatsnew/3.7.rst:1009 +msgid "New in 3.7.1:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1011 +msgid "" +"Output over N lines (50 by default) is squeezed down to a button. N can be " +"changed in the PyShell section of the General page of the Settings dialog. " +"Fewer, but possibly extra long, lines can be squeezed by right clicking on " +"the output. Squeezed output can be expanded in place by double-clicking the " +"button or into the clipboard or a separate window by right-clicking the " +"button. (Contributed by Tal Einat in :issue:`1529353`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1018 msgid "The changes above have been backported to 3.6 maintenance releases." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1013 ../Doc/whatsnew/3.7.rst:1975 +#: ../Doc/whatsnew/3.7.rst:1022 ../Doc/whatsnew/3.7.rst:1995 msgid "importlib" msgstr "importlib" -#: ../Doc/whatsnew/3.7.rst:1015 +#: ../Doc/whatsnew/3.7.rst:1024 msgid "" "The :class:`importlib.abc.ResourceReader` ABC was introduced to support the " "loading of resources from packages. See also :ref:" @@ -1409,32 +1422,32 @@ msgid "" "in :issue:`32248`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1020 +#: ../Doc/whatsnew/3.7.rst:1029 msgid "" ":func:`importlib.reload` now raises :exc:`ModuleNotFoundError` if the module " "lacks a spec. (Contributed by Garvit Khatri in :issue:`29851`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1024 +#: ../Doc/whatsnew/3.7.rst:1033 msgid "" -":func:`importlib.find_spec` now raises ``ModuleNotFoundError`` instead of :" -"exc:`AttributeError` if the specified parent module is not a package (i.e. " -"lacks a ``__path__`` attribute). (Contributed by Milan Oberkirch in :issue:" -"`30436`.)" +":func:`importlib.find_spec` now raises :exc:`ModuleNotFoundError` instead " +"of :exc:`AttributeError` if the specified parent module is not a package (i." +"e. lacks a ``__path__`` attribute). (Contributed by Milan Oberkirch in :" +"issue:`30436`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1029 +#: ../Doc/whatsnew/3.7.rst:1038 msgid "" "The new :func:`importlib.source_hash` can be used to compute the hash of the " "passed source. A :ref:`hash-based .pyc file ` embeds the " "value returned by this function." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1035 +#: ../Doc/whatsnew/3.7.rst:1044 msgid "io" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1037 +#: ../Doc/whatsnew/3.7.rst:1046 msgid "" "The new :meth:`TextIOWrapper.reconfigure() ` " "method can be used to reconfigure the text stream with the new settings. " @@ -1442,11 +1455,11 @@ msgid "" "`15216`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1044 +#: ../Doc/whatsnew/3.7.rst:1053 msgid "ipaddress" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1046 +#: ../Doc/whatsnew/3.7.rst:1055 msgid "" "The new ``subnet_of()`` and ``supernet_of()`` methods of :class:`ipaddress." "IPv6Network` and :class:`ipaddress.IPv4Network` can be used for network " @@ -1454,95 +1467,95 @@ msgid "" "issue:`20825`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1053 +#: ../Doc/whatsnew/3.7.rst:1062 msgid "itertools" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1055 +#: ../Doc/whatsnew/3.7.rst:1064 msgid "" ":func:`itertools.islice` now accepts :meth:`integer-like objects ` as start, stop, and slice arguments. (Contributed by Will " "Roberts in :issue:`30537`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1062 ../Doc/whatsnew/3.7.rst:1993 +#: ../Doc/whatsnew/3.7.rst:1071 ../Doc/whatsnew/3.7.rst:2013 msgid "locale" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1064 +#: ../Doc/whatsnew/3.7.rst:1073 msgid "" "The new *monetary* argument to :func:`locale.format_string` can be used to " "make the conversion use monetary thousands separators and grouping strings. " "(Contributed by Garvit in :issue:`10379`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1068 +#: ../Doc/whatsnew/3.7.rst:1077 msgid "" "The :func:`locale.getpreferredencoding` function now always returns " "``'UTF-8'`` on Android or when in the :ref:`forced UTF-8 mode `." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1073 +#: ../Doc/whatsnew/3.7.rst:1082 msgid "logging" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1075 +#: ../Doc/whatsnew/3.7.rst:1084 msgid "" ":class:`~logging.Logger` instances can now be pickled. (Contributed by Vinay " "Sajip in :issue:`30520`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1078 +#: ../Doc/whatsnew/3.7.rst:1087 msgid "" "The new :meth:`StreamHandler.setStream() ` " "method can be used to replace the logger stream after handler creation. " "(Contributed by Vinay Sajip in :issue:`30522`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1082 +#: ../Doc/whatsnew/3.7.rst:1091 msgid "" "It is now possible to specify keyword arguments to handler constructors in " "configuration passed to :func:`logging.config.fileConfig`. (Contributed by " "Preston Landers in :issue:`31080`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1088 +#: ../Doc/whatsnew/3.7.rst:1097 msgid "math" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1090 +#: ../Doc/whatsnew/3.7.rst:1099 msgid "" "The new :func:`math.remainder` function implements the IEEE 754-style " "remainder operation. (Contributed by Mark Dickinson in :issue:`29962`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1095 +#: ../Doc/whatsnew/3.7.rst:1104 msgid "mimetypes" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1097 +#: ../Doc/whatsnew/3.7.rst:1106 msgid "" "The MIME type of .bmp has been changed from ``'image/x-ms-bmp'`` to ``'image/" "bmp'``. (Contributed by Nitish Chandra in :issue:`22589`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1103 +#: ../Doc/whatsnew/3.7.rst:1112 msgid "msilib" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1105 +#: ../Doc/whatsnew/3.7.rst:1114 msgid "" "The new :meth:`Database.Close() ` method can be used " "to close the :abbr:`MSI` database. (Contributed by Berker Peksag in :issue:" "`20486`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1111 +#: ../Doc/whatsnew/3.7.rst:1120 msgid "multiprocessing" msgstr "multiprocessing" -#: ../Doc/whatsnew/3.7.rst:1113 +#: ../Doc/whatsnew/3.7.rst:1122 msgid "" "The new :meth:`Process.close() ` method " "explicitly closes the process object and releases all resources associated " @@ -1550,43 +1563,43 @@ msgid "" "running. (Contributed by Antoine Pitrou in :issue:`30596`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1119 +#: ../Doc/whatsnew/3.7.rst:1128 msgid "" "The new :meth:`Process.kill() ` method can be " "used to terminate the process using the :data:`SIGKILL` signal on Unix. " "(Contributed by Vitor Pereira in :issue:`30794`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1123 +#: ../Doc/whatsnew/3.7.rst:1132 msgid "" "Non-daemonic threads created by :class:`~multiprocessing.Process` are now " "joined on process exit. (Contributed by Antoine Pitrou in :issue:`18966`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1129 +#: ../Doc/whatsnew/3.7.rst:1138 msgid "os" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1131 +#: ../Doc/whatsnew/3.7.rst:1140 msgid "" ":func:`os.fwalk` now accepts the *path* argument as :class:`bytes`. " "(Contributed by Serhiy Storchaka in :issue:`28682`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1134 +#: ../Doc/whatsnew/3.7.rst:1143 msgid "" ":func:`os.scandir` gained support for :ref:`file descriptors `. " "(Contributed by Serhiy Storchaka in :issue:`25996`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1137 +#: ../Doc/whatsnew/3.7.rst:1146 msgid "" "The new :func:`~os.register_at_fork` function allows registering Python " "callbacks to be executed at process fork. (Contributed by Antoine Pitrou in :" "issue:`16500`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1141 +#: ../Doc/whatsnew/3.7.rst:1150 msgid "" "Added :func:`os.preadv` (combine the functionality of :func:`os.readv` and :" "func:`os.pread`) and :func:`os.pwritev` functions (combine the functionality " @@ -1594,59 +1607,59 @@ msgid "" "in :issue:`31368`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1146 +#: ../Doc/whatsnew/3.7.rst:1155 msgid "" "The mode argument of :func:`os.makedirs` no longer affects the file " "permission bits of newly-created intermediate-level directories. " "(Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1150 +#: ../Doc/whatsnew/3.7.rst:1159 msgid "" ":func:`os.dup2` now returns the new file descriptor. Previously, ``None`` " "was always returned. (Contributed by Benjamin Peterson in :issue:`32441`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1154 +#: ../Doc/whatsnew/3.7.rst:1163 msgid "" "The structure returned by :func:`os.stat` now contains the :attr:`~os." "stat_result.st_fstype` attribute on Solaris and its derivatives. " "(Contributed by Jesús Cea Avión in :issue:`32659`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1160 +#: ../Doc/whatsnew/3.7.rst:1169 msgid "pathlib" -msgstr "" +msgstr "pathlib" -#: ../Doc/whatsnew/3.7.rst:1162 +#: ../Doc/whatsnew/3.7.rst:1171 msgid "" "The new :meth:`Path.is_mount() ` method is now " "available on POSIX systems and can be used to determine whether a path is a " "mount point. (Contributed by Cooper Ry Lees in :issue:`30897`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1168 +#: ../Doc/whatsnew/3.7.rst:1177 msgid "pdb" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1170 +#: ../Doc/whatsnew/3.7.rst:1179 msgid "" ":func:`pdb.set_trace` now takes an optional *header* keyword-only argument. " "If given, it is printed to the console just before debugging begins. " "(Contributed by Barry Warsaw in :issue:`31389`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1174 +#: ../Doc/whatsnew/3.7.rst:1183 msgid "" ":mod:`pdb` command line now accepts ``-m module_name`` as an alternative to " "script file. (Contributed by Mario Corchero in :issue:`32206`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1179 +#: ../Doc/whatsnew/3.7.rst:1188 msgid "py_compile" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1181 +#: ../Doc/whatsnew/3.7.rst:1190 msgid "" ":func:`py_compile.compile` -- and by extension, :mod:`compileall` -- now " "respects the :envvar:`SOURCE_DATE_EPOCH` environment variable by " @@ -1656,46 +1669,46 @@ msgid "" "Bernhard M. Wiedemann in :issue:`29708`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1191 +#: ../Doc/whatsnew/3.7.rst:1200 msgid "pydoc" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1193 +#: ../Doc/whatsnew/3.7.rst:1202 msgid "" "The pydoc server can now bind to an arbitrary hostname specified by the new " "``-n`` command-line argument. (Contributed by Feanil Patel in :issue:" "`31128`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1199 +#: ../Doc/whatsnew/3.7.rst:1208 msgid "queue" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1201 +#: ../Doc/whatsnew/3.7.rst:1210 msgid "" "The new :class:`~queue.SimpleQueue` class is an unbounded :abbr:`FIFO` " "queue. (Contributed by Antoine Pitrou in :issue:`14976`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1206 +#: ../Doc/whatsnew/3.7.rst:1215 msgid "re" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1208 +#: ../Doc/whatsnew/3.7.rst:1217 msgid "" "The flags :const:`re.ASCII`, :const:`re.LOCALE` and :const:`re.UNICODE` can " "be set within the scope of a group. (Contributed by Serhiy Storchaka in :" "issue:`31690`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1212 +#: ../Doc/whatsnew/3.7.rst:1221 msgid "" ":func:`re.split` now supports splitting on a pattern like ``r'\\b'``, ``'^" "$'`` or ``(?=-)`` that matches an empty string. (Contributed by Serhiy " "Storchaka in :issue:`25054`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1216 +#: ../Doc/whatsnew/3.7.rst:1225 msgid "" "Regular expressions compiled with the :const:`re.LOCALE` flag no longer " "depend on the locale at compile time. Locale settings are applied only when " @@ -1703,7 +1716,7 @@ msgid "" "in :issue:`30215`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1221 +#: ../Doc/whatsnew/3.7.rst:1230 msgid "" ":exc:`FutureWarning` is now emitted if a regular expression contains " "character set constructs that will change semantically in the future, such " @@ -1711,18 +1724,18 @@ msgid "" "issue:`30349`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1226 +#: ../Doc/whatsnew/3.7.rst:1235 msgid "" "Compiled regular expression and match objects can now be copied using :func:" "`copy.copy` and :func:`copy.deepcopy`. (Contributed by Serhiy Storchaka in :" "issue:`10076`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1232 +#: ../Doc/whatsnew/3.7.rst:1241 msgid "signal" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1234 +#: ../Doc/whatsnew/3.7.rst:1243 msgid "" "The new *warn_on_full_buffer* argument to the :func:`signal.set_wakeup_fd` " "function makes it possible to specify whether Python prints a warning on " @@ -1730,18 +1743,18 @@ msgid "" "in :issue:`30050`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1241 ../Doc/whatsnew/3.7.rst:2016 +#: ../Doc/whatsnew/3.7.rst:1250 ../Doc/whatsnew/3.7.rst:2036 msgid "socket" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1243 +#: ../Doc/whatsnew/3.7.rst:1252 msgid "" "The new :func:`socket.getblocking() ` method " "returns ``True`` if the socket is in blocking mode and ``False`` otherwise. " "(Contributed by Yury Selivanov in :issue:`32373`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1247 +#: ../Doc/whatsnew/3.7.rst:1256 msgid "" "The new :func:`socket.close` function closes the passed socket file " "descriptor. This function should be used instead of :func:`os.close` for " @@ -1749,7 +1762,7 @@ msgid "" "issue:`32454`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1252 +#: ../Doc/whatsnew/3.7.rst:1261 msgid "" "The :mod:`socket` module now exposes the :data:`socket.TCP_CONGESTION` " "(Linux 2.6.13), :data:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37), and :data:" @@ -1757,31 +1770,31 @@ msgid "" "Sandoval in :issue:`26273` and Nathaniel J. Smith in :issue:`29728`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1258 +#: ../Doc/whatsnew/3.7.rst:1267 msgid "" "Support for :data:`socket.AF_VSOCK` sockets has been added to allow " "communication between virtual machines and their hosts. (Contributed by " "Cathy Avery in :issue:`27584`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1262 +#: ../Doc/whatsnew/3.7.rst:1271 msgid "" "Sockets now auto-detect family, type and protocol from file descriptor by " "default. (Contributed by Christian Heimes in :issue:`28134`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1268 +#: ../Doc/whatsnew/3.7.rst:1277 msgid "socketserver" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1270 +#: ../Doc/whatsnew/3.7.rst:1279 msgid "" ":meth:`socketserver.ThreadingMixIn.server_close` now waits until all non-" "daemon threads complete. :meth:`socketserver.ForkingMixIn.server_close` now " "waits until all child processes complete." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1274 +#: ../Doc/whatsnew/3.7.rst:1283 msgid "" "Add a new :attr:`socketserver.ForkingMixIn.block_on_close` class attribute " "to :class:`socketserver.ForkingMixIn` and :class:`socketserver." @@ -1789,29 +1802,29 @@ msgid "" "pre-3.7 behaviour." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1280 +#: ../Doc/whatsnew/3.7.rst:1289 msgid "sqlite3" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1282 +#: ../Doc/whatsnew/3.7.rst:1291 msgid "" ":class:`sqlite3.Connection` now exposes the :meth:`~sqlite3.Connection." "backup` method when the underlying SQLite library is at version 3.6.11 or " "higher. (Contributed by Lele Gaifax in :issue:`27645`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1286 +#: ../Doc/whatsnew/3.7.rst:1295 msgid "" "The *database* argument of :func:`sqlite3.connect` now accepts any :term:" "`path-like object`, instead of just a string. (Contributed by Anders " "Lorentsen in :issue:`31843`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1292 ../Doc/whatsnew/3.7.rst:2025 +#: ../Doc/whatsnew/3.7.rst:1301 ../Doc/whatsnew/3.7.rst:2045 msgid "ssl" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1294 +#: ../Doc/whatsnew/3.7.rst:1303 msgid "" "The :mod:`ssl` module now uses OpenSSL's builtin API instead of :func:`~ssl." "match_hostname` to check a host name or an IP address. Values are validated " @@ -1819,11 +1832,12 @@ msgid "" "the host name check now raises :exc:`~ssl.SSLCertVerificationError` and " "aborts the handshake with a proper TLS Alert message. The new exception " "contains additional information. Host name validation can be customized " -"with :attr:`SSLContext.host_flags `. (Contributed " -"by Christian Heimes in :issue:`31399`.)" +"with :attr:`SSLContext.hostname_checks_common_name `. (Contributed by Christian Heimes in :issue:" +"`31399`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1305 +#: ../Doc/whatsnew/3.7.rst:1314 msgid "" "The improved host name check requires a *libssl* implementation compatible " "with OpenSSL 1.0.2 or 1.1. Consequently, OpenSSL 0.9.8 and 1.0.1 are no " @@ -1831,21 +1845,20 @@ msgid "" "The ssl module is mostly compatible with LibreSSL 2.7.2 and newer." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1310 +#: ../Doc/whatsnew/3.7.rst:1319 msgid "" "The ``ssl`` module no longer sends IP addresses in SNI TLS extension. " "(Contributed by Christian Heimes in :issue:`32185`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1313 +#: ../Doc/whatsnew/3.7.rst:1322 msgid "" ":func:`~ssl.match_hostname` no longer supports partial wildcards like ``www*." -"example.org``. :attr:`SSLContext.host_flags ` has " -"partial wildcard matching disabled by default. (Contributed by Mandeep Singh " -"in :issue:`23033` and Christian Heimes in :issue:`31399`.)" +"example.org``. (Contributed by Mandeep Singh in :issue:`23033` and Christian " +"Heimes in :issue:`31399`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1319 +#: ../Doc/whatsnew/3.7.rst:1327 msgid "" "The default cipher suite selection of the ``ssl`` module now uses a " "blacklist approach rather than a hard-coded whitelist. Python no longer re-" @@ -1854,7 +1867,7 @@ msgid "" "Christian Heimes in :issue:`31429`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1325 +#: ../Doc/whatsnew/3.7.rst:1333 msgid "" "Validation of server certificates containing internationalized domain names " "(IDNs) is now supported. As part of this change, the :attr:`SSLSocket." @@ -1864,7 +1877,7 @@ msgid "" "and Christian Heimes in :issue:`28414`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1332 +#: ../Doc/whatsnew/3.7.rst:1340 msgid "" "The ``ssl`` module has preliminary and experimental support for TLS 1.3 and " "OpenSSL 1.1.1. At the time of Python 3.7.0 release, OpenSSL 1.1.1 is still " @@ -1874,7 +1887,7 @@ msgid "" "`32947`, :issue:`20995`, :issue:`29136`, :issue:`30622` and :issue:`33618`)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1340 +#: ../Doc/whatsnew/3.7.rst:1348 msgid "" ":class:`~ssl.SSLSocket` and :class:`~ssl.SSLObject` no longer have a public " "constructor. Direct instantiation was never a documented and supported " @@ -1883,32 +1896,39 @@ msgid "" "(Contributed by Christian Heimes in :issue:`32951`)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1346 +#: ../Doc/whatsnew/3.7.rst:1354 msgid "" "OpenSSL 1.1 APIs for setting the minimum and maximum TLS protocol version " "are available as :attr:`SSLContext.minimum_version ` and :attr:`SSLContext.maximum_version `. Supported protocols are indicated by serveral new flags, " +"maximum_version>`. Supported protocols are indicated by several new flags, " "such as :data:`~ssl.HAS_TLSv1_1`. (Contributed by Christian Heimes in :issue:" "`32609`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1355 +#: ../Doc/whatsnew/3.7.rst:1361 +msgid "" +"Added :attr:`SSLContext.post_handshake_auth` to enable and :meth:`ssl." +"SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " +"authentication. (Contributed by Christian Heimes in :issue:`34670`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1367 msgid "string" msgstr "*string*" -#: ../Doc/whatsnew/3.7.rst:1357 +#: ../Doc/whatsnew/3.7.rst:1369 msgid "" ":class:`string.Template` now lets you to optionally modify the regular " "expression pattern for braced placeholders and non-braced placeholders " "separately. (Contributed by Barry Warsaw in :issue:`1198569`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1363 +#: ../Doc/whatsnew/3.7.rst:1375 msgid "subprocess" msgstr "subprocess" -#: ../Doc/whatsnew/3.7.rst:1365 +#: ../Doc/whatsnew/3.7.rst:1377 msgid "" "The :func:`subprocess.run` function accepts the new *capture_output* keyword " "argument. When true, stdout and stderr will be captured. This is equivalent " @@ -1916,14 +1936,14 @@ msgid "" "(Contributed by Bo Bayles in :issue:`32102`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1371 +#: ../Doc/whatsnew/3.7.rst:1383 msgid "" "The ``subprocess.run`` function and the :class:`subprocess.Popen` " "constructor now accept the *text* keyword argument as an alias to " "*universal_newlines*. (Contributed by Andrew Clegg in :issue:`31756`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1376 +#: ../Doc/whatsnew/3.7.rst:1388 msgid "" "On Windows the default for *close_fds* was changed from ``False`` to " "``True`` when redirecting the standard handles. It's now possible to set " @@ -1932,7 +1952,7 @@ msgid "" "all supported platforms. (Contributed by Segev Finer in :issue:`19764`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1383 +#: ../Doc/whatsnew/3.7.rst:1395 msgid "" "The subprocess module is now more graceful when handling :exc:" "`KeyboardInterrupt` during :func:`subprocess.call`, :func:`subprocess.run`, " @@ -1942,23 +1962,23 @@ msgid "" "`25942`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1393 ../Doc/whatsnew/3.7.rst:2041 +#: ../Doc/whatsnew/3.7.rst:1405 ../Doc/whatsnew/3.7.rst:2061 msgid "sys" msgstr "sys" -#: ../Doc/whatsnew/3.7.rst:1395 +#: ../Doc/whatsnew/3.7.rst:1407 msgid "" "The new :func:`sys.breakpointhook` hook function is called by the built-in :" "func:`breakpoint`. (Contributed by Barry Warsaw in :issue:`31353`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1399 +#: ../Doc/whatsnew/3.7.rst:1411 msgid "" "On Android, the new :func:`sys.getandroidapilevel` returns the build-time " "Android API version. (Contributed by Victor Stinner in :issue:`28740`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1403 +#: ../Doc/whatsnew/3.7.rst:1415 msgid "" "The new :func:`sys.get_coroutine_origin_tracking_depth` function returns the " "current coroutine origin tracking depth, as set by the new :func:`sys." @@ -1968,68 +1988,68 @@ msgid "" "`32591`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1412 +#: ../Doc/whatsnew/3.7.rst:1424 msgid "time" msgstr "time" -#: ../Doc/whatsnew/3.7.rst:1414 +#: ../Doc/whatsnew/3.7.rst:1426 msgid "" ":pep:`564` adds six new functions with nanosecond resolution to the :mod:" "`time` module:" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1424 +#: ../Doc/whatsnew/3.7.rst:1436 msgid "New clock identifiers have been added:" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1426 +#: ../Doc/whatsnew/3.7.rst:1438 msgid "" ":data:`time.CLOCK_BOOTTIME` (Linux): Identical to :data:`time." "CLOCK_MONOTONIC`, except it also includes any time that the system is " "suspended." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1429 +#: ../Doc/whatsnew/3.7.rst:1441 msgid "" ":data:`time.CLOCK_PROF` (FreeBSD, NetBSD and OpenBSD): High-resolution per-" "process CPU timer." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1431 +#: ../Doc/whatsnew/3.7.rst:1443 msgid "" ":data:`time.CLOCK_UPTIME` (FreeBSD, OpenBSD): Time whose absolute value is " "the time the system has been running and not suspended, providing accurate " "uptime measurement." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1435 +#: ../Doc/whatsnew/3.7.rst:1447 msgid "" "The new :func:`time.thread_time` and :func:`time.thread_time_ns` functions " "can be used to get per-thread CPU time measurements. (Contributed by Antoine " "Pitrou in :issue:`32025`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1439 +#: ../Doc/whatsnew/3.7.rst:1451 msgid "" "The new :func:`time.pthread_getcpuclockid` function returns the clock ID of " "the thread-specific CPU-time clock." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1444 +#: ../Doc/whatsnew/3.7.rst:1456 msgid "tkinter" msgstr "tkinter" -#: ../Doc/whatsnew/3.7.rst:1446 +#: ../Doc/whatsnew/3.7.rst:1458 msgid "" "The new :class:`tkinter.ttk.Spinbox` class is now available. (Contributed by " "Alan Moore in :issue:`32585`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1451 +#: ../Doc/whatsnew/3.7.rst:1463 msgid "tracemalloc" msgstr "tracemalloc" -#: ../Doc/whatsnew/3.7.rst:1453 +#: ../Doc/whatsnew/3.7.rst:1465 msgid "" ":class:`tracemalloc.Traceback` behaves more like regular tracebacks, sorting " "the frames from oldest to most recent. :meth:`Traceback.format() " @@ -2039,11 +2059,11 @@ msgid "" "by Jesse Bakker in :issue:`32121`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1463 +#: ../Doc/whatsnew/3.7.rst:1475 msgid "types" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1465 +#: ../Doc/whatsnew/3.7.rst:1477 msgid "" "The new :class:`~types.WrapperDescriptorType`, :class:`~types." "MethodWrapperType`, :class:`~types.MethodDescriptorType`, and :class:`~types." @@ -2052,29 +2072,29 @@ msgid "" "issue:`32265`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1471 +#: ../Doc/whatsnew/3.7.rst:1483 msgid "" "The new :func:`types.resolve_bases` function resolves MRO entries " "dynamically as specified by :pep:`560`. (Contributed by Ivan Levkivskyi in :" "issue:`32717`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1477 +#: ../Doc/whatsnew/3.7.rst:1489 msgid "unicodedata" msgstr "unicodedata" -#: ../Doc/whatsnew/3.7.rst:1479 +#: ../Doc/whatsnew/3.7.rst:1491 msgid "" "The internal :mod:`unicodedata` database has been upgraded to use `Unicode " "11 `_. (Contributed by " "Benjamin Peterson.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1485 +#: ../Doc/whatsnew/3.7.rst:1497 msgid "unittest" msgstr "unittest" -#: ../Doc/whatsnew/3.7.rst:1487 +#: ../Doc/whatsnew/3.7.rst:1499 msgid "" "The new ``-k`` command-line option allows filtering tests by a name " "substring or a Unix shell-like pattern. For example, ``python -m unittest -k " @@ -2083,18 +2103,18 @@ msgid "" "Jonas Haag in :issue:`32071`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1496 +#: ../Doc/whatsnew/3.7.rst:1508 msgid "unittest.mock" msgstr "unittest.mock" -#: ../Doc/whatsnew/3.7.rst:1498 +#: ../Doc/whatsnew/3.7.rst:1510 msgid "" "The :const:`~unittest.mock.sentinel` attributes now preserve their identity " "when they are :mod:`copied ` or :mod:`pickled `. (Contributed " "by Serhiy Storchaka in :issue:`20804`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1502 +#: ../Doc/whatsnew/3.7.rst:1514 msgid "" "The new :func:`~unittest.mock.seal` function allows sealing :class:" "`~unittest.mock.Mock` instances, which will disallow further creation of " @@ -2102,33 +2122,33 @@ msgid "" "themselves mocks. (Contributed by Mario Corchero in :issue:`30541`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1510 +#: ../Doc/whatsnew/3.7.rst:1522 msgid "urllib.parse" msgstr "urllib.parse" -#: ../Doc/whatsnew/3.7.rst:1512 +#: ../Doc/whatsnew/3.7.rst:1524 msgid "" ":func:`urllib.parse.quote` has been updated from :rfc:`2396` to :rfc:`3986`, " "adding ``~`` to the set of characters that are never quoted by default. " "(Contributed by Christian Theune and Ratnadeep Debnath in :issue:`16285`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1518 +#: ../Doc/whatsnew/3.7.rst:1530 msgid "uu" msgstr "uu" -#: ../Doc/whatsnew/3.7.rst:1520 +#: ../Doc/whatsnew/3.7.rst:1532 msgid "" "The :func:`uu.encode` function now accepts an optional *backtick* keyword " "argument. When it's true, zeros are represented by ``'`'`` instead of " "spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1526 +#: ../Doc/whatsnew/3.7.rst:1538 msgid "uuid" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1528 +#: ../Doc/whatsnew/3.7.rst:1540 msgid "" "The new :attr:`UUID.is_safe ` attribute relays " "information from the platform about whether generated UUIDs are generated " @@ -2136,7 +2156,7 @@ msgid "" "`22807`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1533 +#: ../Doc/whatsnew/3.7.rst:1545 msgid "" ":func:`uuid.getnode` now prefers universally administered MAC addresses over " "locally administered MAC addresses. This makes a better guarantee for global " @@ -2145,75 +2165,86 @@ msgid "" "returned. (Contributed by Barry Warsaw in :issue:`32107`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1542 +#: ../Doc/whatsnew/3.7.rst:1554 msgid "warnings" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1544 +#: ../Doc/whatsnew/3.7.rst:1556 msgid "" "The initialization of the default warnings filters has changed as follows:" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1546 +#: ../Doc/whatsnew/3.7.rst:1558 msgid "" "warnings enabled via command line options (including those for :option:`-b` " "and the new CPython-specific :option:`-X` ``dev`` option) are always passed " "to the warnings machinery via the :data:`sys.warnoptions` attribute." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1550 +#: ../Doc/whatsnew/3.7.rst:1562 msgid "" "warnings filters enabled via the command line or the environment now have " "the following order of precedence:" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1553 +#: ../Doc/whatsnew/3.7.rst:1565 msgid "the ``BytesWarning`` filter for :option:`-b` (or ``-bb``)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1554 +#: ../Doc/whatsnew/3.7.rst:1566 msgid "any filters specified with the :option:`-W` option" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1555 +#: ../Doc/whatsnew/3.7.rst:1567 msgid "" "any filters specified with the :envvar:`PYTHONWARNINGS` environment variable" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1557 +#: ../Doc/whatsnew/3.7.rst:1569 msgid "" "any other CPython specific filters (e.g. the ``default`` filter added for " "the new ``-X dev`` mode)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1559 +#: ../Doc/whatsnew/3.7.rst:1571 msgid "any implicit filters defined directly by the warnings machinery" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1561 +#: ../Doc/whatsnew/3.7.rst:1573 msgid "" "in CPython debug builds, all warnings are now displayed by default (the " "implicit filter list is empty)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1564 +#: ../Doc/whatsnew/3.7.rst:1576 msgid "" "(Contributed by Nick Coghlan and Victor Stinner in :issue:`20361`, :issue:" "`32043`, and :issue:`32230`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1567 +#: ../Doc/whatsnew/3.7.rst:1579 msgid "" "Deprecation warnings are once again shown by default in single-file scripts " "and at the interactive prompt. See :ref:`whatsnew37-pep565` for details. " "(Contributed by Nick Coghlan in :issue:`31975`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1573 +#: ../Doc/whatsnew/3.7.rst:1585 +msgid "xml" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1587 +msgid "" +"As mitigation against DTD and external entity retrieval, the :mod:`xml.dom." +"minidom` and :mod:`xml.sax` modules no longer process external entities by " +"default. (Contributed by Christian Heimes in :issue:`17239`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1594 msgid "xml.etree" msgstr "xml.etree" -#: ../Doc/whatsnew/3.7.rst:1575 +#: ../Doc/whatsnew/3.7.rst:1596 msgid "" ":ref:`ElementPath ` predicates in the :meth:`find` " "methods can now compare text of the current node with ``[. = \"text\"]``, " @@ -2221,29 +2252,29 @@ msgid "" "readability. (Contributed by Stefan Behnel in :issue:`31648`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1582 +#: ../Doc/whatsnew/3.7.rst:1603 msgid "xmlrpc.server" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1584 +#: ../Doc/whatsnew/3.7.rst:1605 msgid "" ":meth:`SimpleXMLRPCDispatcher.register_function ` can now be used as a decorator. (Contributed by " "Xiang Zhang in :issue:`7769`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1590 +#: ../Doc/whatsnew/3.7.rst:1611 msgid "zipapp" msgstr "zipapp" -#: ../Doc/whatsnew/3.7.rst:1592 +#: ../Doc/whatsnew/3.7.rst:1613 msgid "" "Function :func:`~zipapp.create_archive` now accepts an optional *filter* " "argument to allow the user to select which files should be included in the " "archive. (Contributed by Irmen de Jong in :issue:`31072`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1596 +#: ../Doc/whatsnew/3.7.rst:1617 msgid "" "Function :func:`~zipapp.create_archive` now accepts an optional *compressed* " "argument to generate a compressed archive. A command line option ``--" @@ -2251,27 +2282,27 @@ msgid "" "Zhiming Wang in :issue:`31638`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1603 +#: ../Doc/whatsnew/3.7.rst:1624 msgid "zipfile" msgstr "zipfile" -#: ../Doc/whatsnew/3.7.rst:1605 +#: ../Doc/whatsnew/3.7.rst:1626 msgid "" ":class:`~zipfile.ZipFile` now accepts the new *compresslevel* parameter to " "control the compression level. (Contributed by Bo Bayles in :issue:`21417`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1609 +#: ../Doc/whatsnew/3.7.rst:1630 msgid "" "Subdirectories in archives created by ``ZipFile`` are now stored in " "alphabetical order. (Contributed by Bernhard M. Wiedemann in :issue:`30693`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1615 +#: ../Doc/whatsnew/3.7.rst:1636 msgid "C API Changes" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1617 +#: ../Doc/whatsnew/3.7.rst:1638 msgid "" "A new API for thread-local storage has been implemented. See :ref:" "`whatsnew37-pep539` for an overview and :ref:`thread-specific-storage-api` " @@ -2279,46 +2310,46 @@ msgid "" "`25658`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1622 +#: ../Doc/whatsnew/3.7.rst:1643 msgid "" "The new :ref:`context variables ` functionality exposes a " "number of :ref:`new C APIs `." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1625 +#: ../Doc/whatsnew/3.7.rst:1646 msgid "" "The new :c:func:`PyImport_GetModule` function returns the previously " "imported module with the given name. (Contributed by Eric Snow in :issue:" "`28411`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1629 +#: ../Doc/whatsnew/3.7.rst:1650 msgid "" "The new :c:macro:`Py_RETURN_RICHCOMPARE` macro eases writing rich comparison " "functions. (Contributed by Petr Victorin in :issue:`23699`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1633 +#: ../Doc/whatsnew/3.7.rst:1654 msgid "" "The new :c:macro:`Py_UNREACHABLE` macro can be used to mark unreachable code " "paths. (Contributed by Barry Warsaw in :issue:`31338`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1637 +#: ../Doc/whatsnew/3.7.rst:1658 msgid "" "The :mod:`tracemalloc` now exposes a C API through the new :c:func:" "`PyTraceMalloc_Track` and :c:func:`PyTraceMalloc_Untrack` functions. " "(Contributed by Victor Stinner in :issue:`30054`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1642 +#: ../Doc/whatsnew/3.7.rst:1663 msgid "" "The new :c:func:`import__find__load__start` and :c:func:" "`import__find__load__done` static markers can be used to trace module " "imports. (Contributed by Christian Heimes in :issue:`31574`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1647 +#: ../Doc/whatsnew/3.7.rst:1668 msgid "" "The fields :c:member:`name` and :c:member:`doc` of structures :c:type:" "`PyMemberDef`, :c:type:`PyGetSetDef`, :c:type:`PyStructSequence_Field`, :c:" @@ -2327,34 +2358,34 @@ msgid "" "issue:`28761`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1653 +#: ../Doc/whatsnew/3.7.rst:1674 msgid "" "The result of :c:func:`PyUnicode_AsUTF8AndSize` and :c:func:" "`PyUnicode_AsUTF8` is now of type ``const char *`` rather of ``char *``. " "(Contributed by Serhiy Storchaka in :issue:`28769`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1657 +#: ../Doc/whatsnew/3.7.rst:1678 msgid "" "The result of :c:func:`PyMapping_Keys`, :c:func:`PyMapping_Values` and :c:" "func:`PyMapping_Items` is now always a list, rather than a list or a tuple. " "(Contributed by Oren Milman in :issue:`28280`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1661 +#: ../Doc/whatsnew/3.7.rst:1682 msgid "" "Added functions :c:func:`PySlice_Unpack` and :c:func:" "`PySlice_AdjustIndices`. (Contributed by Serhiy Storchaka in :issue:`27867`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1664 +#: ../Doc/whatsnew/3.7.rst:1685 msgid "" ":c:func:`PyOS_AfterFork` is deprecated in favour of the new functions :c:" "func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` and :c:func:" "`PyOS_AfterFork_Child`. (Contributed by Antoine Pitrou in :issue:`16500`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1669 +#: ../Doc/whatsnew/3.7.rst:1690 msgid "" "The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " "has been removed as its members being never cleared may cause a segfault " @@ -2362,7 +2393,7 @@ msgid "" "issue:`22898` and :issue:`30697`." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1674 +#: ../Doc/whatsnew/3.7.rst:1695 msgid "" "Added C API support for timezones with timezone constructors :c:func:" "`PyTimeZone_FromOffset` and :c:func:`PyTimeZone_FromOffsetAndName`, and " @@ -2370,7 +2401,7 @@ msgid "" "Contributed by Paul Ganssle in :issue:`10381`." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1679 +#: ../Doc/whatsnew/3.7.rst:1700 msgid "" "The type of results of :c:func:`PyThread_start_new_thread` and :c:func:" "`PyThread_get_thread_ident`, and the *id* parameter of :c:func:" @@ -2378,14 +2409,14 @@ msgid "" "long`. (Contributed by Serhiy Storchaka in :issue:`6532`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1685 +#: ../Doc/whatsnew/3.7.rst:1706 msgid "" ":c:func:`PyUnicode_AsWideCharString` now raises a :exc:`ValueError` if the " "second argument is *NULL* and the :c:type:`wchar_t*` string contains null " "characters. (Contributed by Serhiy Storchaka in :issue:`30708`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1689 +#: ../Doc/whatsnew/3.7.rst:1710 msgid "" "Changes to the startup sequence and the management of dynamic memory " "allocators mean that the long documented requirement to call :c:func:" @@ -2396,45 +2427,45 @@ msgid "" "details." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1697 +#: ../Doc/whatsnew/3.7.rst:1718 msgid "" "The new :c:func:`PyInterpreterState_GetID` returns the unique ID for a given " "interpreter. (Contributed by Eric Snow in :issue:`29102`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1701 +#: ../Doc/whatsnew/3.7.rst:1722 msgid "" ":c:func:`Py_DecodeLocale`, :c:func:`Py_EncodeLocale` now use the UTF-8 " "encoding when the :ref:`UTF-8 mode ` is enabled. " "(Contributed by Victor Stinner in :issue:`29240`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1705 +#: ../Doc/whatsnew/3.7.rst:1726 msgid "" ":c:func:`PyUnicode_DecodeLocaleAndSize` and :c:func:`PyUnicode_EncodeLocale` " "now use the current locale encoding for ``surrogateescape`` error handler. " "(Contributed by Victor Stinner in :issue:`29240`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1709 +#: ../Doc/whatsnew/3.7.rst:1730 msgid "" "The *start* and *end* parameters of :c:func:`PyUnicode_FindChar` are now " "adjusted to behave like string slices. (Contributed by Xiang Zhang in :issue:" "`28822`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1715 +#: ../Doc/whatsnew/3.7.rst:1736 msgid "Build Changes" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1717 +#: ../Doc/whatsnew/3.7.rst:1738 msgid "" "Support for building ``--without-threads`` has been removed. The :mod:" "`threading` module is now always available. (Contributed by Antoine Pitrou " "in :issue:`31370`.)." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1721 +#: ../Doc/whatsnew/3.7.rst:1742 msgid "" "A full copy of libffi is no longer bundled for use when building the :mod:" "`_ctypes ` module on non-OSX UNIX platforms. An installed copy of " @@ -2442,7 +2473,7 @@ msgid "" "(Contributed by Zachary Ware in :issue:`27979`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1726 +#: ../Doc/whatsnew/3.7.rst:1747 msgid "" "The Windows build process no longer depends on Subversion to pull in " "external sources, a Python script is used to download zipfiles from GitHub " @@ -2451,7 +2482,7 @@ msgid "" "by Zachary Ware in :issue:`30450`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1732 +#: ../Doc/whatsnew/3.7.rst:1753 msgid "" "The :mod:`ssl` module requires OpenSSL 1.0.2 or 1.1 compatible libssl. " "OpenSSL 1.0.1 has reached end of lifetime on 2016-12-31 and is no longer " @@ -2459,11 +2490,11 @@ msgid "" "up to version 2.6.4 are missing required OpenSSL 1.0.2 APIs." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1741 +#: ../Doc/whatsnew/3.7.rst:1762 msgid "Optimizations" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1743 +#: ../Doc/whatsnew/3.7.rst:1764 msgid "" "The overhead of calling many methods of various standard library classes " "implemented in C has been significantly reduced by porting more code to use " @@ -2471,85 +2502,85 @@ msgid "" "`29300`, :issue:`29507`, :issue:`29452`, and :issue:`29286`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1749 +#: ../Doc/whatsnew/3.7.rst:1770 msgid "" "Various optimizations have reduced Python startup time by 10% on Linux and " "up to 30% on macOS. (Contributed by Victor Stinner, INADA Naoki in :issue:" "`29585`, and Ivan Levkivskyi in :issue:`31333`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1754 +#: ../Doc/whatsnew/3.7.rst:1775 msgid "" "Method calls are now up to 20% faster due to the bytecode changes which " "avoid creating bound method instances. (Contributed by Yury Selivanov and " "INADA Naoki in :issue:`26110`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1760 +#: ../Doc/whatsnew/3.7.rst:1781 msgid "" "The :mod:`asyncio` module received a number of notable optimizations for " "commonly used functions:" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1763 +#: ../Doc/whatsnew/3.7.rst:1784 msgid "" "The :func:`asyncio.get_event_loop` function has been reimplemented in C to " "make it up to 15 times faster. (Contributed by Yury Selivanov in :issue:" "`32296`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1767 +#: ../Doc/whatsnew/3.7.rst:1788 msgid "" ":class:`asyncio.Future` callback management has been optimized. (Contributed " "by Yury Selivanov in :issue:`32348`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1770 +#: ../Doc/whatsnew/3.7.rst:1791 msgid "" ":func:`asyncio.gather` is now up to 15% faster. (Contributed by Yury " "Selivanov in :issue:`32355`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1773 +#: ../Doc/whatsnew/3.7.rst:1794 msgid "" ":func:`asyncio.sleep` is now up to 2 times faster when the *delay* argument " "is zero or negative. (Contributed by Andrew Svetlov in :issue:`32351`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1777 +#: ../Doc/whatsnew/3.7.rst:1798 msgid "" "The performance overhead of asyncio debug mode has been reduced. " "(Contributed by Antoine Pitrou in :issue:`31970`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1780 +#: ../Doc/whatsnew/3.7.rst:1801 msgid "" "As a result of :ref:`PEP 560 work `, the import time of :" "mod:`typing` has been reduced by a factor of 7, and many typing operations " "are now faster. (Contributed by Ivan Levkivskyi in :issue:`32226`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1785 +#: ../Doc/whatsnew/3.7.rst:1806 msgid "" ":func:`sorted` and :meth:`list.sort` have been optimized for common cases to " "be up to 40-75% faster. (Contributed by Elliot Gorokhovsky in :issue:" "`28685`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1789 +#: ../Doc/whatsnew/3.7.rst:1810 msgid "" ":meth:`dict.copy` is now up to 5.5 times faster. (Contributed by Yury " "Selivanov in :issue:`31179`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1792 +#: ../Doc/whatsnew/3.7.rst:1813 msgid "" ":func:`hasattr` and :func:`getattr` are now about 4 times faster when *name* " "is not found and *obj* does not override :meth:`object.__getattr__` or :meth:" "`object.__getattribute__`. (Contributed by INADA Naoki in :issue:`32544`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1797 +#: ../Doc/whatsnew/3.7.rst:1818 msgid "" "Searching for certain Unicode characters (like Ukrainian capital \"Є\") in a " "string was up to 25 times slower than searching for other characters. It is " @@ -2557,7 +2588,7 @@ msgid "" "in :issue:`24821`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1802 +#: ../Doc/whatsnew/3.7.rst:1823 msgid "" "The :func:`collections.namedtuple` factory has been reimplemented to make " "the creation of named tuples 4 to 6 times faster. (Contributed by Jelle " @@ -2565,33 +2596,33 @@ msgid "" "Raymond Hettinger in :issue:`28638`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1807 +#: ../Doc/whatsnew/3.7.rst:1828 msgid "" ":meth:`date.fromordinal` and :meth:`date.fromtimestamp` are now up to 30% " "faster in the common case. (Contributed by Paul Ganssle in :issue:`32403`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1811 +#: ../Doc/whatsnew/3.7.rst:1832 msgid "" "The :func:`os.fwalk` function is now up to 2 times faster thanks to the use " "of :func:`os.scandir`. (Contributed by Serhiy Storchaka in :issue:`25996`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1815 +#: ../Doc/whatsnew/3.7.rst:1836 msgid "" "The speed of the :func:`shutil.rmtree` function has been improved by 20--40% " "thanks to the use of the :func:`os.scandir` function. (Contributed by Serhiy " "Storchaka in :issue:`28564`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1819 +#: ../Doc/whatsnew/3.7.rst:1840 msgid "" "Optimized case-insensitive matching and searching of :mod:`regular " "expressions `. Searching some patterns can now be up to 20 times " "faster. (Contributed by Serhiy Storchaka in :issue:`30285`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1823 +#: ../Doc/whatsnew/3.7.rst:1844 msgid "" ":func:`re.compile` now converts ``flags`` parameter to int object if it is " "``RegexFlag``. It is now as fast as Python 3.5, and faster than Python 3.6 " @@ -2599,7 +2630,7 @@ msgid "" "`31671`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1828 +#: ../Doc/whatsnew/3.7.rst:1849 msgid "" "The :meth:`~selectors.BaseSelector.modify` methods of classes :class:" "`selectors.EpollSelector`, :class:`selectors.PollSelector` and :class:" @@ -2607,7 +2638,7 @@ msgid "" "(Contributed by Giampaolo Rodola' in :issue:`30014`)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1833 +#: ../Doc/whatsnew/3.7.rst:1854 msgid "" "Constant folding has been moved from the peephole optimizer to the new AST " "optimizer, which is able perform optimizations more consistently. " @@ -2615,7 +2646,7 @@ msgid "" "`11549`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1838 +#: ../Doc/whatsnew/3.7.rst:1859 msgid "" "Most functions and methods in :mod:`abc` have been rewritten in C. This " "makes creation of abstract base classes, and calling :func:`isinstance` and :" @@ -2624,7 +2655,7 @@ msgid "" "`31333`)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1844 +#: ../Doc/whatsnew/3.7.rst:1865 msgid "" "Significant speed improvements to alternate constructors for :class:" "`datetime.date` and :class:`datetime.datetime` by using fast-path " @@ -2632,7 +2663,7 @@ msgid "" "in :issue:`32403`)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1849 +#: ../Doc/whatsnew/3.7.rst:1870 msgid "" "The speed of comparison of :class:`array.array` instances has been improved " "considerably in certain cases. It is now from 10x to 70x faster when " @@ -2640,18 +2671,18 @@ msgid "" "Adrian Wielgosik in :issue:`24700`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1854 +#: ../Doc/whatsnew/3.7.rst:1875 msgid "" "The :func:`math.erf` and :func:`math.erfc` functions now use the (faster) C " "library implementation on most platforms. (Contributed by Serhiy Storchaka " "in :issue:`26121`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1860 +#: ../Doc/whatsnew/3.7.rst:1881 msgid "Other CPython Implementation Changes" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1862 +#: ../Doc/whatsnew/3.7.rst:1883 msgid "" "Trace hooks may now opt out of receiving the ``line`` and opt into receiving " "the ``opcode`` events from the interpreter by setting the corresponding new " @@ -2659,7 +2690,7 @@ msgid "" "traced. (Contributed by Nick Coghlan in :issue:`31344`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1867 +#: ../Doc/whatsnew/3.7.rst:1888 msgid "" "Fixed some consistency problems with namespace package module attributes. " "Namespace module objects now have an ``__file__`` that is set to ``None`` " @@ -2670,14 +2701,14 @@ msgid "" "`32303`." msgstr "" -#: ../Doc/whatsnew/3.7.rst:1875 +#: ../Doc/whatsnew/3.7.rst:1896 msgid "" "The :func:`locals` dictionary now displays in the lexical order that " "variables were defined. Previously, the order was undefined. (Contributed " "by Raymond Hettinger in :issue:`32690`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1879 +#: ../Doc/whatsnew/3.7.rst:1900 msgid "" "The :mod:`distutils` ``upload`` command no longer tries to change CR end-of-" "line characters to CRLF. This fixes a corruption issue with sdists that " @@ -2685,15 +2716,15 @@ msgid "" "`32304`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1886 +#: ../Doc/whatsnew/3.7.rst:1907 msgid "Deprecated Python Behavior" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1888 +#: ../Doc/whatsnew/3.7.rst:1909 msgid "" "Yield expressions (both ``yield`` and ``yield from`` clauses) are now " "deprecated in comprehensions and generator expressions (aside from the " -"iterable expression in the leftmost :keyword:`for` clause). This ensures " +"iterable expression in the leftmost :keyword:`!for` clause). This ensures " "that comprehensions always immediately return a container of the appropriate " "type (rather than potentially returning a :term:`generator iterator` " "object), while generator expressions won't attempt to interleave their " @@ -2703,7 +2734,7 @@ msgid "" "Storchaka in :issue:`10544`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1899 +#: ../Doc/whatsnew/3.7.rst:1920 msgid "" "Returning a subclass of :class:`complex` from :meth:`object.__complex__` is " "deprecated and will be an error in future Python versions. This makes " @@ -2711,38 +2742,38 @@ msgid "" "__float__`. (Contributed by Serhiy Storchaka in :issue:`28894`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1908 +#: ../Doc/whatsnew/3.7.rst:1929 msgid "Deprecated Python modules, functions and methods" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1911 +#: ../Doc/whatsnew/3.7.rst:1932 msgid "aifc" msgstr "aifc" -#: ../Doc/whatsnew/3.7.rst:1913 +#: ../Doc/whatsnew/3.7.rst:1934 msgid "" ":func:`aifc.openfp` has been deprecated and will be removed in Python 3.9. " "Use :func:`aifc.open` instead. (Contributed by Brian Curtin in :issue:" "`31985`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1923 +#: ../Doc/whatsnew/3.7.rst:1944 msgid "" "Support for directly ``await``-ing instances of :class:`asyncio.Lock` and " "other asyncio synchronization primitives has been deprecated. An " "asynchronous context manager must be used in order to acquire and release " -"the synchronization resource. See :ref:`async-with-locks` for more " -"information. (Contributed by Andrew Svetlov in :issue:`32253`.)" +"the synchronization resource. (Contributed by Andrew Svetlov in :issue:" +"`32253`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1930 +#: ../Doc/whatsnew/3.7.rst:1950 msgid "" "The :meth:`asyncio.Task.current_task` and :meth:`asyncio.Task.all_tasks` " "methods have been deprecated. (Contributed by Andrew Svetlov in :issue:" "`32250`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1938 +#: ../Doc/whatsnew/3.7.rst:1958 msgid "" "In Python 3.8, the abstract base classes in :mod:`collections.abc` will no " "longer be exposed in the regular :mod:`collections` module. This will help " @@ -2750,7 +2781,7 @@ msgid "" "base classes. (Contributed by Serhiy Storchaka in :issue:`25988`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1948 +#: ../Doc/whatsnew/3.7.rst:1968 msgid "" ":mod:`dbm.dumb` now supports reading read-only files and no longer writes " "the index file when it is not changed. A deprecation warning is now emitted " @@ -2759,7 +2790,7 @@ msgid "" "Storchaka in :issue:`28847`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1958 +#: ../Doc/whatsnew/3.7.rst:1978 msgid "" "In Python 3.8, attempting to check for non-Enum objects in :class:`Enum` " "classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); similarly, " @@ -2769,18 +2800,18 @@ msgid "" "`33217`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1967 +#: ../Doc/whatsnew/3.7.rst:1987 msgid "gettext" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1969 +#: ../Doc/whatsnew/3.7.rst:1989 msgid "" "Using non-integer value for selecting a plural form in :mod:`gettext` is now " "deprecated. It never correctly worked. (Contributed by Serhiy Storchaka in :" "issue:`28692`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:1977 +#: ../Doc/whatsnew/3.7.rst:1997 msgid "" "Methods :meth:`MetaPathFinder.find_module() ` (replaced by :meth:`MetaPathFinder.find_spec() ` provides an " "example of using the SSL :source:`compatibility testing infrastructure " @@ -2941,42 +2972,42 @@ msgid "" "against OpenSSL 1.1.0 rather than an outdated system provided OpenSSL." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2102 +#: ../Doc/whatsnew/3.7.rst:2122 msgid "API and Feature Removals" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2104 +#: ../Doc/whatsnew/3.7.rst:2124 msgid "The following features and APIs have been removed from Python 3.7:" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2106 +#: ../Doc/whatsnew/3.7.rst:2126 msgid "" "The ``os.stat_float_times()`` function has been removed. It was introduced " "in Python 2.3 for backward compatibility with Python 2.2, and was deprecated " "since Python 3.1." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2110 +#: ../Doc/whatsnew/3.7.rst:2130 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter in replacement " "templates for :func:`re.sub` were deprecated in Python 3.5, and will now " "cause an error." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2114 +#: ../Doc/whatsnew/3.7.rst:2134 msgid "" "Removed support of the *exclude* argument in :meth:`tarfile.TarFile.add`. It " "was deprecated in Python 2.7 and 3.2. Use the *filter* argument instead." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2117 +#: ../Doc/whatsnew/3.7.rst:2137 msgid "" "The ``splitunc()`` function in the :mod:`ntpath` module was deprecated in " "Python 3.1, and has now been removed. Use the :func:`~os.path.splitdrive` " "function instead." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2121 +#: ../Doc/whatsnew/3.7.rst:2141 msgid "" ":func:`collections.namedtuple` no longer supports the *verbose* parameter or " "``_source`` attribute which showed the generated source code for the named " @@ -2985,14 +3016,14 @@ msgid "" "Naoki, Serhiy Storchaka, and Raymond Hettinger in :issue:`28638`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2127 +#: ../Doc/whatsnew/3.7.rst:2147 msgid "" "Functions :func:`bool`, :func:`float`, :func:`list` and :func:`tuple` no " "longer take keyword arguments. The first argument of :func:`int` can now be " "passed only as positional argument." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2131 +#: ../Doc/whatsnew/3.7.rst:2151 msgid "" "Removed previously deprecated in Python 2.4 classes ``Plist``, ``Dict`` and " "``_InternalDict`` in the :mod:`plistlib` module. Dict values in the result " @@ -3001,7 +3032,7 @@ msgid "" "access to access items of these dictionaries." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2137 +#: ../Doc/whatsnew/3.7.rst:2157 msgid "" "The ``asyncio.windows_utils.socketpair()`` function has been removed. Use " "the :func:`socket.socketpair` function instead, it is available on all " @@ -3009,14 +3040,14 @@ msgid "" "alias to ``socket.socketpair`` on Python 3.5 and newer." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2143 +#: ../Doc/whatsnew/3.7.rst:2163 msgid "" ":mod:`asyncio` no longer exports the :mod:`selectors` and :mod:`_overlapped` " "modules as ``asyncio.selectors`` and ``asyncio._overlapped``. Replace ``from " "asyncio import selectors`` with ``import selectors``." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2148 +#: ../Doc/whatsnew/3.7.rst:2168 msgid "" "Direct instantiation of :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` " "objects is now prohibited. The constructors were never documented, tested, " @@ -3025,17 +3056,17 @@ msgid "" "in :issue:`32951`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2154 +#: ../Doc/whatsnew/3.7.rst:2174 msgid "" "The unused :mod:`distutils` ``install_misc`` command has been removed. " "(Contributed by Eric N. Vander Weele in :issue:`29218`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2159 +#: ../Doc/whatsnew/3.7.rst:2179 msgid "Module Removals" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2161 +#: ../Doc/whatsnew/3.7.rst:2181 msgid "" "The ``fpectl`` module has been removed. It was never enabled by default, " "never worked correctly on x86-64, and it changed the Python ABI in ways that " @@ -3043,11 +3074,11 @@ msgid "" "Smith in :issue:`29137`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2168 ../Doc/whatsnew/3.7.rst:2440 +#: ../Doc/whatsnew/3.7.rst:2188 ../Doc/whatsnew/3.7.rst:2460 msgid "Windows-only Changes" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2170 +#: ../Doc/whatsnew/3.7.rst:2190 msgid "" "The python launcher, (py.exe), can accept 32 & 64 bit specifiers **without** " "having to specify a minor version as well. So ``py -3-32`` and ``py -3-64`` " @@ -3057,7 +3088,7 @@ msgid "" "(Contributed by Steve Barnes in :issue:`30291`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2177 +#: ../Doc/whatsnew/3.7.rst:2197 msgid "" "The launcher can be run as ``py -0`` to produce a list of the installed " "pythons, *with default marked with an asterisk*. Running ``py -0p`` will " @@ -3066,28 +3097,28 @@ msgid "" "(Contributed by Steve Barnes in :issue:`30362`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2187 +#: ../Doc/whatsnew/3.7.rst:2207 msgid "Porting to Python 3.7" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2189 +#: ../Doc/whatsnew/3.7.rst:2209 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2194 +#: ../Doc/whatsnew/3.7.rst:2214 msgid "Changes in Python Behavior" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2196 +#: ../Doc/whatsnew/3.7.rst:2216 msgid "" ":keyword:`async` and :keyword:`await` names are now reserved keywords. Code " "using these names as identifiers will now raise a :exc:`SyntaxError`. " "(Contributed by Jelle Zijlstra in :issue:`30406`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2200 +#: ../Doc/whatsnew/3.7.rst:2220 msgid "" ":pep:`479` is enabled for all code in Python 3.7, meaning that :exc:" "`StopIteration` exceptions raised directly or indirectly in coroutines and " @@ -3095,19 +3126,19 @@ msgid "" "by Yury Selivanov in :issue:`32670`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2206 +#: ../Doc/whatsnew/3.7.rst:2226 msgid "" ":meth:`object.__aiter__` methods can no longer be declared as asynchronous. " "(Contributed by Yury Selivanov in :issue:`31709`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2209 +#: ../Doc/whatsnew/3.7.rst:2229 msgid "" "Due to an oversight, earlier Python versions erroneously accepted the " "following syntax::" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2217 +#: ../Doc/whatsnew/3.7.rst:2237 msgid "" "Python 3.7 now correctly raises a :exc:`SyntaxError`, as a generator " "expression always needs to be directly inside a set of parentheses and " @@ -3116,7 +3147,7 @@ msgid "" "`32012` and :issue:`32023`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2223 +#: ../Doc/whatsnew/3.7.rst:2243 msgid "" "When using the :option:`-m` switch, the initial working directory is now " "added to :data:`sys.path`, rather than an empty string (which dynamically " @@ -3128,11 +3159,11 @@ msgid "" "place)." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2233 +#: ../Doc/whatsnew/3.7.rst:2253 msgid "Changes in the Python API" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2235 +#: ../Doc/whatsnew/3.7.rst:2255 msgid "" ":meth:`socketserver.ThreadingMixIn.server_close` now waits until all non-" "daemon threads complete. Set the new :attr:`socketserver.ThreadingMixIn." @@ -3140,7 +3171,7 @@ msgid "" "(Contributed by Victor Stinner in :issue:`31233` and :issue:`33540`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2241 +#: ../Doc/whatsnew/3.7.rst:2261 msgid "" ":meth:`socketserver.ForkingMixIn.server_close` now waits until all child " "processes complete. Set the new :attr:`socketserver.ForkingMixIn." @@ -3148,21 +3179,21 @@ msgid "" "(Contributed by Victor Stinner in :issue:`31151` and :issue:`33540`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2247 +#: ../Doc/whatsnew/3.7.rst:2267 msgid "" "The :func:`locale.localeconv` function now temporarily sets the ``LC_CTYPE`` " "locale to the value of ``LC_NUMERIC`` in some cases. (Contributed by Victor " "Stinner in :issue:`31900`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2251 +#: ../Doc/whatsnew/3.7.rst:2271 msgid "" ":meth:`pkgutil.walk_packages` now raises a :exc:`ValueError` if *path* is a " "string. Previously an empty list was returned. (Contributed by Sanyam " "Khurana in :issue:`24744`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2255 +#: ../Doc/whatsnew/3.7.rst:2275 msgid "" "A format string argument for :meth:`string.Formatter.format` is now :ref:" "`positional-only `. Passing it as a keyword " @@ -3170,7 +3201,7 @@ msgid "" "issue:`29193`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2260 +#: ../Doc/whatsnew/3.7.rst:2280 msgid "" "Attributes :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel." "value` and :attr:`~http.cookies.Morsel.coded_value` of class :class:`http." @@ -3179,7 +3210,7 @@ msgid "" "them. (Contributed by Serhiy Storchaka in :issue:`29192`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2268 +#: ../Doc/whatsnew/3.7.rst:2288 msgid "" "The *mode* argument of :func:`os.makedirs` no longer affects the file " "permission bits of newly-created intermediate-level directories. To set " @@ -3187,13 +3218,13 @@ msgid "" "``makedirs()``. (Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2274 +#: ../Doc/whatsnew/3.7.rst:2294 msgid "" "The :attr:`struct.Struct.format` type is now :class:`str` instead of :class:" "`bytes`. (Contributed by Victor Stinner in :issue:`21071`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2277 +#: ../Doc/whatsnew/3.7.rst:2297 msgid "" ":func:`~cgi.parse_multipart` now accepts the *encoding* and *errors* " "arguments and returns the same results as :class:`~FieldStorage`: for non-" @@ -3201,27 +3232,27 @@ msgid "" "(Contributed by Pierre Quentel in :issue:`29979`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2283 +#: ../Doc/whatsnew/3.7.rst:2303 msgid "" "Due to internal changes in :mod:`socket`, calling :func:`socket.fromshare` " "on a socket created by :func:`socket.share ` in older " "Python versions is not supported." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2287 +#: ../Doc/whatsnew/3.7.rst:2307 msgid "" "``repr`` for :exc:`BaseException` has changed to not include the trailing " "comma. Most exceptions are affected by this change. (Contributed by Serhiy " "Storchaka in :issue:`30399`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2291 +#: ../Doc/whatsnew/3.7.rst:2311 msgid "" "``repr`` for :class:`datetime.timedelta` has changed to include the keyword " "arguments in the output. (Contributed by Utkarsh Upadhyay in :issue:`30302`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2294 +#: ../Doc/whatsnew/3.7.rst:2314 msgid "" "Because :func:`shutil.rmtree` is now implemented using the :func:`os." "scandir` function, the user specified handler *onerror* is now called with " @@ -3229,7 +3260,7 @@ msgid "" "directory is failed." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2299 +#: ../Doc/whatsnew/3.7.rst:2319 msgid "" "Support for nested sets and set operations in regular expressions as in " "`Unicode Technical Standard #18`_ might be added in the future. This would " @@ -3240,7 +3271,7 @@ msgid "" "with a backslash. (Contributed by Serhiy Storchaka in :issue:`30349`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2310 +#: ../Doc/whatsnew/3.7.rst:2330 msgid "" "The result of splitting a string on a :mod:`regular expression ` that " "could match an empty string has been changed. For example splitting on " @@ -3251,7 +3282,7 @@ msgid "" "patterns since Python 3.5." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2319 +#: ../Doc/whatsnew/3.7.rst:2339 msgid "" "For patterns that match both empty and non-empty strings, the result of " "searching for all matches may also be changed in other cases. For example " @@ -3261,7 +3292,7 @@ msgid "" "as ``r'(?m)^[^\\S\\n]*$'``." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2326 +#: ../Doc/whatsnew/3.7.rst:2346 msgid "" ":func:`re.sub()` now replaces empty matches adjacent to a previous non-empty " "match. For example ``re.sub('x*', '-', 'abxd')`` returns now ``'-a-b--d-'`` " @@ -3269,25 +3300,25 @@ msgid "" "and the second minus replaces an empty string between 'x' and 'd')." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2332 +#: ../Doc/whatsnew/3.7.rst:2352 msgid "(Contributed by Serhiy Storchaka in :issue:`25054` and :issue:`32308`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2334 +#: ../Doc/whatsnew/3.7.rst:2354 msgid "" "Change :func:`re.escape` to only escape regex special characters instead of " "escaping all characters other than ASCII letters, numbers, and ``'_'``. " "(Contributed by Serhiy Storchaka in :issue:`29995`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2338 +#: ../Doc/whatsnew/3.7.rst:2358 msgid "" ":class:`tracemalloc.Traceback` frames are now sorted from oldest to most " "recent to be more consistent with :mod:`traceback`. (Contributed by Jesse " "Bakker in :issue:`32121`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2342 +#: ../Doc/whatsnew/3.7.rst:2362 msgid "" "On OSes that support :const:`socket.SOCK_NONBLOCK` or :const:`socket." "SOCK_CLOEXEC` bit flags, the :attr:`socket.type ` no " @@ -3296,7 +3327,7 @@ msgid "" "Selivanov in :issue:`32331`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2349 +#: ../Doc/whatsnew/3.7.rst:2369 msgid "" "On Windows the default for the *close_fds* argument of :class:`subprocess." "Popen` was changed from :const:`False` to :const:`True` when redirecting the " @@ -3306,7 +3337,7 @@ msgid "" "`STARTUPINFO.lpAttributeList `." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2357 +#: ../Doc/whatsnew/3.7.rst:2377 msgid "" ":meth:`importlib.machinery.PathFinder.invalidate_caches` -- which implicitly " "affects :func:`importlib.invalidate_caches` -- now deletes entries in :data:" @@ -3314,40 +3345,39 @@ msgid "" "Cannon in :issue:`33169`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2362 +#: ../Doc/whatsnew/3.7.rst:2382 msgid "" -"In :mod:`asyncio`, :meth:`loop.sock_recv() `, :meth:`loop.sock_sendall() `, :meth:`loop.sock_accept() `, :meth:`loop.getaddrinfo() `, :meth:`loop.getnameinfo() ` have been changed to be proper coroutine methods to match " -"their documentation. Previously, these methods returned :class:`asyncio." -"Future` instances. (Contributed by Yury Selivanov in :issue:`32327`.)" +"In :mod:`asyncio`, :meth:`loop.sock_recv() `, :meth:" +"`loop.sock_sendall() `, :meth:`loop.sock_accept() " +"`, :meth:`loop.getaddrinfo() `, :meth:`loop.getnameinfo() ` have " +"been changed to be proper coroutine methods to match their documentation. " +"Previously, these methods returned :class:`asyncio.Future` instances. " +"(Contributed by Yury Selivanov in :issue:`32327`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2373 +#: ../Doc/whatsnew/3.7.rst:2393 msgid "" ":attr:`asyncio.Server.sockets` now returns a copy of the internal list of " "server sockets, instead of returning it directly. (Contributed by Yury " "Selivanov in :issue:`32662`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2377 +#: ../Doc/whatsnew/3.7.rst:2397 msgid "" ":attr:`Struct.format ` is now a :class:`str` instance " "instead of a :class:`bytes` instance. (Contributed by Victor Stinner in :" "issue:`21071`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2381 +#: ../Doc/whatsnew/3.7.rst:2401 msgid "" ":meth:`ast.literal_eval()` is now stricter. Addition and subtraction of " "arbitrary numbers are no longer allowed. (Contributed by Serhiy Storchaka " "in :issue:`31778`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2385 +#: ../Doc/whatsnew/3.7.rst:2405 msgid "" ":meth:`Calendar.itermonthdates ` will now " "consistently raise an exception when a date falls outside of the " @@ -3359,13 +3389,13 @@ msgid "" "date`. (Contributed by Alexander Belopolsky in :issue:`28292`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2395 +#: ../Doc/whatsnew/3.7.rst:2415 msgid "" ":class:`collections.ChainMap` now preserves the order of the underlying " "mappings. (Contributed by Raymond Hettinger in :issue:`32792`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2398 +#: ../Doc/whatsnew/3.7.rst:2418 msgid "" "The ``submit()`` method of :class:`concurrent.futures.ThreadPoolExecutor` " "and :class:`concurrent.futures.ProcessPoolExecutor` now raises a :exc:" @@ -3373,7 +3403,7 @@ msgid "" "Nemec in :issue:`33097`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2403 +#: ../Doc/whatsnew/3.7.rst:2423 msgid "" "The :class:`configparser.ConfigParser` constructor now uses ``read_dict()`` " "to process the default values, making its behavior consistent with the rest " @@ -3382,7 +3412,7 @@ msgid "" "in :issue:`23835`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2409 +#: ../Doc/whatsnew/3.7.rst:2429 msgid "" "Several undocumented internal imports were removed. One example is that ``os." "errno`` is no longer available; use ``import errno`` directly instead. Note " @@ -3390,11 +3420,11 @@ msgid "" "notice, even in micro version releases." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2417 +#: ../Doc/whatsnew/3.7.rst:2437 msgid "Changes in the C API" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2419 +#: ../Doc/whatsnew/3.7.rst:2439 msgid "" "The function :c:func:`PySlice_GetIndicesEx` is considered unsafe for " "resizable sequences. If the slice indices are not instances of :class:" @@ -3406,34 +3436,34 @@ msgid "" "Storchaka in :issue:`27867`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2430 +#: ../Doc/whatsnew/3.7.rst:2450 msgid "CPython bytecode changes" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2432 +#: ../Doc/whatsnew/3.7.rst:2452 msgid "" "There are two new opcodes: :opcode:`LOAD_METHOD` and :opcode:`CALL_METHOD`. " "(Contributed by Yury Selivanov and INADA Naoki in :issue:`26110`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2435 +#: ../Doc/whatsnew/3.7.rst:2455 msgid "" "The :opcode:`STORE_ANNOTATION` opcode has been removed. (Contributed by Mark " "Shannon in :issue:`32550`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2442 +#: ../Doc/whatsnew/3.7.rst:2462 msgid "" "The file used to override :data:`sys.path` is now called ``._pth`` instead of ``'sys.path'``. See :ref:`finding_modules` for " "more information. (Contributed by Steve Dower in :issue:`28137`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2449 +#: ../Doc/whatsnew/3.7.rst:2469 msgid "Other CPython implementation changes" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2451 +#: ../Doc/whatsnew/3.7.rst:2471 msgid "" "In preparation for potential future changes to the public CPython runtime " "initialization API (see :pep:`432` for an initial, but somewhat outdated, " @@ -3448,21 +3478,21 @@ msgid "" "Stinner in a number of other issues). Some known details affected:" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2464 +#: ../Doc/whatsnew/3.7.rst:2484 msgid "" ":c:func:`PySys_AddWarnOptionUnicode` is not currently usable by embedding " "applications due to the requirement to create a Unicode object prior to " "calling `Py_Initialize`. Use :c:func:`PySys_AddWarnOption` instead." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2468 +#: ../Doc/whatsnew/3.7.rst:2488 msgid "" "warnings filters added by an embedding application with :c:func:" "`PySys_AddWarnOption` should now more consistently take precedence over the " "default filters set by the interpreter" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2472 +#: ../Doc/whatsnew/3.7.rst:2492 msgid "" "Due to changes in the way the default warnings filters are configured, " "setting :c:data:`Py_BytesWarningFlag` to a value greater than one is no " @@ -3472,7 +3502,7 @@ msgid "" "BytesWarning`` warnings filter added to convert them to exceptions." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2479 +#: ../Doc/whatsnew/3.7.rst:2499 msgid "" "Due to a change in the way docstrings are handled by the compiler, the " "implicit ``return None`` in a function body consisting solely of a docstring " @@ -3480,7 +3510,7 @@ msgid "" "function's header line." msgstr "" -#: ../Doc/whatsnew/3.7.rst:2484 +#: ../Doc/whatsnew/3.7.rst:2504 msgid "" "The current exception state has been moved from the frame object to the co-" "routine. This simplified the interpreter and fixed a couple of obscure bugs " @@ -3488,11 +3518,11 @@ msgid "" "(Contributed by Mark Shannon in :issue:`25612`.)" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2490 +#: ../Doc/whatsnew/3.7.rst:2510 msgid "Notable changes in Python 3.7.1" msgstr "" -#: ../Doc/whatsnew/3.7.rst:2492 +#: ../Doc/whatsnew/3.7.rst:2512 msgid "" "Starting in 3.7.1, :c:func:`Py_Initialize` now consistently reads and " "respects all of the same environment settings as :c:func:`Py_Main` (in " @@ -3501,3 +3531,38 @@ msgid "" "to :issue:`34247`). If this behavior is unwanted, set :c:data:" "`Py_IgnoreEnvironmentFlag` to 1 before calling :c:func:`Py_Initialize`." msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2519 +msgid "" +"In 3.7.1 the C API for Context Variables :ref:`was updated " +"` to use :c:type:`PyObject` " +"pointers. See also :issue:`34762`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2523 +msgid "" +":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " +"entities by default. See also :issue:`17239`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2526 +msgid "" +"In 3.7.1 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " +"when provided with input that does not have a trailing new line. This " +"behavior now matches what the C tokenizer does internally. (Contributed by " +"Ammar Askar in :issue:`33899`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2532 +msgid "Notable changes in Python 3.7.2" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2534 +msgid "" +"In 3.7.2, :mod:`venv` on Windows no longer copies the original binaries, but " +"creates redirector scripts named ``python.exe`` and ``pythonw.exe`` instead. " +"This resolves a long standing issue where all virtual environments would " +"have to be upgraded or recreated with each Python update. However, note that " +"this release will still require recreation of virtual environments in order " +"to get the new scripts." +msgstr ""