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